高速计数器寻址
CPU 将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为 32 位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周期影响,读取到的值并不是当前时刻的实际值,在一个扫描周期内,此数值不会发生变化,但计数器中的实际值有可能会在一个周期内变化,用户无法读到此变化。用户可通过读取外设地址的方式,读取到当前时刻的实际值。以 ID1000 为例,其外设地址为 “ID1000:P”。表1. 所示为高速计数器寻址列表。
表1. 高速计数器寻址
高速计数器号 数据类型 默认地址 HSC1 DINT ID1000 HSC2 DINT ID1004 HSC3 DINT ID1008 HSC4 DINT ID1012 HSC5 DINT ID1016 HSC6 DINT ID1020
中断功能
S7-1200 在高速计数器中提供了中断功能,用以处理某些特定条件下触发的程序
共有 3 种中断事件:
1.当前值等于预置值
2.使用外部信号复位
3.带有外部方向控制时,计数方向发生改变
频率测量
S7-1200 除了提供计数功能外,还提供了频率测量功能,有 3 种不同的频率测量周期:1.0 秒,0.1 秒和0.01 秒。
频率测量周期是这样定义的:计算并返回新的频率值的时间间隔。返回的频率值为上一个测量周期中所有测量值的平均,无论测量周期如何选择,测量出的频率值总是以 Hz (每秒脉冲数)为单位。
高速计数器指令块
高速计数器指令块,需要使用指定背景数据块用于存储参数, 如图1所示。
图1. 高速计数器指令块
表2. 高速计数器参数说明
HSC (HW_HSC) 高速计数器硬件识别号 DIR (BOOL) TRUE 使能新方向 CV (BOOL) TRUE 使能新起始值 RV (BOOL) TRUE 使能新参考值 PERIODE (BOOL) TRUE 使能新频率测量周期 NEW_DIR (INT) 方向选择1:=正向;-1 :=反向 NEW_CV (DINT) 新起始值 NEW_RV (DINT) 新参考值 NEW_PERIODE (INT) 更新频率测量周期
表3. STATUS 错误代码
错误代码(十六进制) 描述 0 无错误 80A1
高速计数器的硬件标识符无效 80B1
计数方向 (NEW_DIR) 无效 80B2 计数值 (NEW_CV) 无效 80B3 参考值 (NEW_RV) 无效 80B4 频率测量周期 (NEW_PERIOD) 无效 80C0 多次访问高速计数器