高速计数器寻址

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

多次访问高速计数器