1高速计数器 S7-1200 CPU提供了最多6个(1214C)高速计数器,其独立于CPU的扫描周期进行计数。可测量的单相脉冲频率最高为100KHz,双相或A/B相最高为30KHz,除用来计数外还可用来进行频率测量,高速计数器可用于连接增量型旋转编码器,用户通过对硬件组态和调用相关指令块来使用此功能。
2高速计数器工作模式
高速计数器定义为5种工作模式
- 计数器,外部方向控制。
- 单相计数器,内部方向控制。
- 双相增/减计数器,双脉冲输入。
- A/B相正交脉冲输入。
- 监控PTO输出。
每种高速计数器有两种工作状态。
所有的计数器无需启动条件设置,在硬件向导中设置完成后下载到CPU中即可启动高速计数器,在A/B相正交模式下可选择1X(1倍) 和4X(4倍)模式,高速计数功能所能支持的输入电压为24V DC,目前不支持5V DC的脉冲输入,表1列出了高速计数器的硬件输入定义和工作模式
描述 |
输入点定义 |
功能 |
HSC |
HSC1 |
使用CPU集成I/O或信号板或监控PTO0 |
I0.0 |
I0.1 |
I0.3 |
|
I4.0 |
I4.1 |
PTO 0 |
PTO 0 方向 |
HSC2 |
使用CPU集成I/O或监控PTO0 |
I0.2 |
I0.3 |
I0.1 |
|
PTO 1 |
PTO 1 方向 |
HSC3 |
使用CPU集成I/O |
I0.4 |
I0.5 |
I0.7 |
|
HSC4 |
使用CPU集成I/O |
I0.6 |
I0.7 |
I0.5 |
|
HSC5 |
使用CPU集成I/O或信号板 |
I1.0 |
I1.1 |
I1.2 |
|
I4.0 |
I4.1 |
HSC6 |
使用CPU集成I/O |
I1.3 |
I1.4 |
I1.5 |
|
模式 |
单相计数,内部方向控制 |
时钟 |
|
|
计数或频率 |
复位 |
计数 |
单相计数,外部方向控制 |
时钟 |
方向 |
|
计数或频率 |
复位 |
计数 |
双相计数,两路时钟输入 |
增时钟 |
减时钟 |
|
计数或频率 |
复位 |
计数 |
A/B相正交计数 |
A相 |
B相 |
|
计数或频率 |
Z相 |
计数 |
监控PTO输出 |
时钟 |
方向 |
|
计数 |
表1 高速计数器硬件输入定义与工作模式
并非所有的CPU都可以使用6个高速计数器,如1211C只有6个集成输入点,所以最多只能支持4个(使用信号板的情况下)高速计数器。 由于不同计数器在不同的模式下,同一个物理点会有不同的定义,在使用多个计数器时需要注意不是所有计数器可以同时定义为任意工作模式。 高速计数器的输入使用与普通数字量输入相同的地址,当某个输入点已定义为高速计数器的输入点时,就不能再应用于其它功能,但在某个模式下,没有用到的输入点还可以用于其它功能的输入 监控PTO的模式只有HSC1和HSC2支持,使用此模式时,不需要外部接线,CPU在内部已作了硬件连接,可直接检测通过PTO功能所发脉冲。
3高速计数器寻址 CPU将每个高速计数器的测量值,存储在输入过程映像区内,数据类型为32位双整型有符号数,用户可以在设备组态中修改这些存储地址,在程序中可直接访问这些地址,但由于过程映像区受扫描周期影响,在一个扫描周期内,此数值不会发生变化,但高速计数器中的实际值有可能会在一个周期内变化,用户可通过读取外设地址的方式,读取到当前时刻的实际值。以ID1000为例,其外设地址为“ID1000:P”。表2 所示为高速计数器寻址列表
高速计数器号 |
数据类型 |
默认地址 |
HSC1 |
DINT |
ID1000 |
HSC2 |
DINT |
ID1004 |
HSC3 |
DINT |
ID1008 |
HSC4 |
DINT |
ID1012 |
HSC5 |
DINT |
ID1016 |
HSC6 |
DINT |
ID1020 |
表1 高速计数器寻址
4频率测量 S7-1200 CPU除了提供计数功能外,还提供了频率测量功能,有3种不同的频率测量周期:1.0秒,0.1秒和0.01秒,频率测量周期是这样定义的:计算并返回新的频率值的时间间隔。返回的频率值为上一个测量周期中所有测量值的平均,无论测量周期如何选择,测量出的频率值总是以Hz(每秒脉冲数)为单位。
5高速计数器指令块
高速计数器指令块,需要使用指定背景数据块用于存储参数。图1所示为高速计数器指令块
图1高速计数器指令块
表3所示为高速计数器指令块参数说明
HSC (HW_HSC) |
高速计数器硬件识别号 |
DIR (BOOL) |
TRUE =使能新方向 |
CV (BOOL) |
TRUE = 使能新初始值 |
RV (BOOL) |
| |