CPU 将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为 32位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周期影响,在一个扫描周期内,此数值不会发生变化,但高速计数器中的实际值有可能会在一个周期内变化,用户可通过读取外设地址的方式,读取到当前时刻的实际值。以ID1000 为例,其外设地址为“ ID1000 :P”。表 8-2 所示为高速计数器寻址列表
S7-1200 CPU 除了提供计数功能外,还提供了频率测量功能,有 3 种不同的频率测量周期:1.0 秒, 0.1 秒和 0.01秒,频率测量周期是这样定义的:计算并返回新的频率值的时间间隔。返回的频率值为上一个测量周期中所有测量值的平均,无论测量周期如何选择,测量出的频率值总是以Hz( 每秒脉冲数 )为单位。
高速计数器指令块,需要使用指定背景数据块用于存储参数。图 8-5 所示为高速计数器指令块
为了便于理解如何使用高速计数功能,通过一个例子来学习组态及应用。
假设在旋转机械上有单相增量编码器作为反馈,接入到 S7-1200 CPU, 要求在计数 25个脉冲时,计数器复位,并重新开始计数,周而复始执行此功能。
针对此应用,选择 CPU 1214C ,高速计数器为:HSC1 。模式为:单相计数,内部方向控制,无外部复位。据此,脉冲输入应接入I0.0 ,使用 HSC1 的预置值中断( CV=RV )功能实现此应用。
组态步骤:
先在设备与组态中,选择 CPU ,单击属性,激活高速计数器,并设置相关参数。此步骤必须实现执行, 1200的高速计数器功能必须要先在硬件组态中激活,才能进行下面的步骤
添加硬件中断块,关联相对应的高速计数器所产生的预置值中断
在中断块中添加高速计数器指令块,编写修改预置值程序,设置复位计数器等参数将程序下载,执行功能
1、硬件组态
选中 CPU 如图
图 3 所示为选择属性打开组态界面
激活高速计数功能如图 4
计数类型,计数方向组态如图 5 所示
1、 此处计数类型分为 3 种, Axis of motion( 运动轴 ),Frequency (频率测量),Counting(计数 )。这里选择 Counting
2、 模式分为 4 种:Single phase( 单相 ), Two phase (双相) , AB Quadrature1X(A/B 相正交 1 倍速) , AB Quadrature 4X (A/B 相正交 4 倍速)。这里选择 Singlephase
3、 输入源,这里使用的为 CPU 集成输入点。
4、 计数方向选择,这里选用 User program (internal direction control)(内部方向控制)
5、 初始计数方向。这里选择 Count up (向上计数)
初始值及复位组态如图 6
预置值中断组态如图 7
组态添加的硬件中断,如图 8
地址分配与硬件识别号如图 9
至此硬件组态部分已经完成,下面进行程序编写
2、程序编写
将高速计数指令块添加到硬件中断中
图 12 定义高速计数器背景数据块
程序视图如图 13
1、 这里就是图 9 中系统指定的高速计数器硬件识别号,这里填 1
2、 “1”为使能更新初值
3、 “0”新初始值为 0
至此程序编制部分完成,将完成的组态与程序下载到 CPU 后即可执行,当前的计数值可在 ID1000 中读出,关于高速计数器指令块,若不需要修改硬件组态中的参数,可不需要调用,系统仍然可以计数。