首页 理论教育 高速计数器的工作模式及输入点详解

高速计数器的工作模式及输入点详解

时间:2023-06-18 理论教育 版权反馈
【摘要】:高速计数器工作模式及输入点见表4 -3 -2。表4-3-2高速计数器工作模式及输入点高速计数器HSC0、 HSC4 具有工作模式1、 2、 3、 4、 6、 7、 9、 10; HSC1、 HSC2 具有工作模式0 ~11; HSC3、 HSC5 只具有工作模式0。表4-3-4HSC0 ~HSC5 的初始值、 预置值和当前值3) 指定中断高速计数器的计数和动作采用中断方式控制, 高速计数器的工作模式与中断事件密切相关。监视高速计数器状态的目的是使其他事件能够产生中断以完成更重要的操作。

高速计数器的工作模式及输入点详解

高速计数器指令是PLC 的功能指令之一, 常用来控制位移和速度等。 高速计数器不受扫描周期的限制, 最高频率可达30 kHz, 可以用来累计CPU 扫描速率不能控制的高速事件。在硬件连接上, 目前大多采用旋转编码器作为PLC 的高频输入信号, 只要将旋转编码器的电源线、 脉冲信号线与PLC 的相应端口接好即可。 软件编程时需要确定高速计数器的控制字节、 工作模式和高速计数器号。 用户可以设置相关特殊存储器控制高速计数器的工作。 编程时, 可将上述高速计数器的定义内容放置到子程序中, 初始化时进行扫描激活, 程序正常执行时将不再进行高速计数器的定义, 否则高速计数器将无法工作。

S7 -200 PLC CPU226 提供了6 个高速计数器(HSC0 ~HSC5)。

1. 高速计数器指令

高速计数器指令有两条: 定义(HDEF) 指令和激活(HSC) 指令。 高速计数器指令的格式及功能如表4 -3 -1 所示。

表4-3-1 高速计数器指令的格式及功能

HDEF 指令为指定的高速计数器(HSC) 分配一种工作模式(MODE), 每个高速计数器只能使用一个HDEF 指令, 可利用SM0.1 调用一个包含HDEF 指令的子程序来定义高速计数器。

HSC 指令执行时, 根据特殊存储器位的状态, 设置和控制高速计数器工作模式, 参数N用来指定高速计数器号。

1) 高速计数器工作模式

高速计数器使用时需要首先通过HDEF 指令来定义工作模式。 高速计数器最多有12 种工作模式, 不同的高速计数器适用不同的工作模式。

工作模式0、 1、 2 为具有内部方向控制的单向加/减计数器, 工作模式3、 4、 5 为具有外部方向控制的单向加/减计数器, 工作模式6、 7、 8 为具有加/减计数时钟脉冲输入端的双向计数器, 工作模式9、 10、 11 为A/B 相正交计数器。 高速计数器工作模式及输入点见表4 -3 -2。

表4-3-2 高速计数器工作模式及输入点

高速计数器HSC0、 HSC4 具有工作模式1、 2、 3、 4、 6、 7、 9、 10; HSC1、 HSC2 具有工作模式0 ~11; HSC3、 HSC5 只具有工作模式0。

2) 高速计数器输入线的连接

使用高速计数器时, 还应注意它的输入端连线, 系统已经定义了固定的输入端口。

表4 -3 -2 中给出了高速计数器的时钟、 方向、 复位和启动所使用的输入点, 这些输入点都包括在一般数字量输入点的编号范围内, 同一个输入点只能有一种功能, 如果程序使用了高速计数器, 则只有高速计数器没有使用的输入点才能用来作为I/O 中断或一般I/O 点。

2. 高速计数器编程

每个高速计数器都有固定的特殊存储器与之配合来完成计数功能。 这些存储器包括控制字节、 当前值双字、 预置值双字、 状态字节。 高速计数器编程的一般步骤如下:

(1) 根据选定的计数器工作模式, 设置相应的控制字节;

(2) 使用HDEF 指令定义高速计数器号;

(3) 设置计数方向(可选);(www.xing528.com)

(4) 设置初始值(可选);

(5) 设置预置值(可选);

(6) 指定并使能中断程序(可选);

(7) 执行HSC 指令, 激活高速计数器。

可以使用指令向导来配置高速计数器。 要启动HSC 指令向导, 可以在命令菜单选择Tools→Instruction Wizard, 然后选择HSC 指令。 向导程序需使用的信息包括: 高速计数器的类型和工作模式、 高速计数器的预置值、 高速计数器的初始值、 高速计数器的计数方向。

1) 定义控制字

每个高速计数器都有一个控制字节, 在执行高速计数器指令前, 必须把这些位设定到希望的状态, 否则, 高速计数器的工作模式为默认设置: 复位和启动为高电平有效、 正交计数率为4 倍速率。 HSC0 ~HSC5 控制字节各位定义如表4 -3 -3 所示。

表4-3-3 HSC0 ~HSC5 控制字节各位定义

2) 设置初始值和预置值

每个高速计数器都有一个32 位的初始值和一个32 位的预置值, 它们都是带符号整数。向高速计数器装入新的初始值和预置值前, 必须先设置控制字节, 并把初始值和预置值存入特殊存储器中, 然后执行HSC 指令, 从而更新其值。 HSC0 ~HSC5 的初始值、 预置值和当前值如表4 -3 -4 所示。

表4-3-4 HSC0 ~HSC5 的初始值、 预置值和当前值

3) 指定中断

高速计数器的计数和动作采用中断方式控制, 高速计数器的工作模式与中断事件密切相关。 高速计数器的中断事件大致有3 种: 当前值等于预置值产生中断、 输入方向改变产生中断和外部复位产生中断。 其中第一种中断方式是所有高速计数器都支持的。 每种中断条件都可以分别使能或禁止。 高速计数器产生的中断事件有14 个, 中断源优先级等详细情况请参见本书附录C。

当使用外部复位产生中断时, 不能写入初始值, 或在该中断程序中禁止再允许高速计数器, 否则会产生一个致命错误, 致命错误代码及描述详见附表F-1。

4) 状态字节

高速计数器都有一个状态字, 其存储位指出了当前计数方向, 当前值是否大于或者等于预置值。 HSCO ~HSC5 的状态位如表4 -3 -5 所示。

表4-3-5 HSC0 ~HSC5 的状态位

只有在执行中断程序时, 状态位才有效。 监视高速计数器状态的目的是使其他事件能够产生中断以完成更重要的操作。

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈