西门子S7-200高速计数器使用
西门子PLC计数器有普通计数器和高速计数器,今天主要介绍下高速计数器的使用方法。在一些采集频率较高的场合下,比如编码器信号,每转发出的脉冲数比较多,如果用普通计数器,反应速度慢,容易丢失脉冲,因此采用了高速计数器。高速计数器的最高采集频率为200KHz,不受PLC扫描周期的影响,高速计数器用于对S7--200扫描速率无法控制的高速事件进行计数。高速计数器的最高计数频率取决于您的CPU类型。
一般来说,高速计数器被用作驱动鼓式计时器,该设备有一个安装了增量轴式编码器的轴,以恒定的速度转动。轴式编码器每圈提供一个确定的计数值和一个复位脉冲。来自轴式编码器的时钟和复位脉冲作为高速计数器的输入。
高速计数器编程
可以使用指令向导来配置计数器。向导程序使用下列信息:计数器的类型和模式、计数器的预置值、计数器的初始值和计数的初始方向。要启动HSC指令向导,可以在命令菜单窗口中选择Tools >Instruction Wizard ,然后在向导窗口中选择HSC指令。
对高速计数器编程,必须完成下列基本操作:
A 定义计数器的模式和输入
B设置控制字节
C 设置初始值
D设置预置值
E指定并使能中断服务程序
F 激活高速计数器
1、定义计数器的模式和输入
使用高速计数器定义指令来定义计数器的模式和输入。
表1中给出了与高速计数器相关的时钟、方向控制、复位和启动输入点。同一个输入点不能用于两个不同的功能,但是任何一个没有被高速计数器的当前模式使用的输入点,都可以被用作其它用途。
例如,如果HSC0正被用于模式1,它占用I0.0和I0.2,则I0.1可以被边缘中断或者HSC3占用。
2、设置控制字节
只有定义了计数器和计数器模式,才能对计数器的动态参数进行编程。每个高速计数器都有一个控制
字节,包括以下内容:
- 使能或者禁止计数器
- 控制计数方向(只对模式0、1和2有效)或者对所有其它模式定义初始化计数方向。
- 装载初始值
- 装载预置值
3、设置初始值和预置值
每个高速计数器都有一个32位的初始值和一个32位的预置值。初始值和预置值都是符号整数。为了向高速计数器装入新的初始值和预置值,必须先设置控制字节,并且把初始值和预置值存入特殊存储器中,然后执行HSC指令,从而将新的值传送到高速计数器。表中对保存新的初始值和预置值的特殊存储器作了说明。除去控制字节和新的初始值与预置值保存字节外,每个高速计数器的当前值只能使用数据类型HC(高速计数器当前值)后面跟表中列出的计数器号(0、1、2、3、4或5)的格式进行读取。可用读操作直接访问的当前值,但是写操作只能用HSC指令来实现。
高速计数器的新当前值和新预设值
4、指定中断
所有计数器模式都支持在HSC的当前值等于预设值时产生一个中断事件。使用外部复位端的计数模式支持外部复位中断。除去模式0、1和2之外,所有计数器模式支持计数方向改变中断。每种中断条件都可以分别使能或者禁止。要得到关于使用中断的更多信息,参见通讯和中断指令一节。
注意当使用外部复位中断时,不要写入初始值,或者是在该中断服务程序中禁止再允许高速计数器,否则会产生一个致命错误。
状态字节
每个高速计数器都有一个状态字节,其中的状态存储位指出了当前计数方向,当前值是否大于或者等于预置值。表6-31给出了每个高速计数器状态位的定义。提示只有在执行中断服务程序时,状态位才有效。监视高速计数器状态的目的是使其它事件能够产生中断以完成更重要的操作。
系统为每个高速计数器都在特殊寄存器区SMB提供了一个状态字节,为了监视高速计数器的工作状态,执行由高速计数器引用的中断事件,其格式如表
閱讀更多 北喬風919 的文章