 高速计数功能移植
高速计数功能移植S7-200 支持6路30KHz的高速计数器(224XP支持200KHz),支持13种模式;S7-200 SMART支持4路200KHz(CR40/60仅支持100KHz)高速计数器,支持8种模式,详细对比参看下表:
表1. S7-200 高速计数功能
| HSC0 | I0.0 | I0.1 | I0.2 | |
| HSC1 | I0.6 | I0.7 | I1.0 | I1.1 | 
| HSC2 | I1.2 | I1.3 | I1.4 | I1.5 | 
| HSC3 | I0.1 | |||
| HSC4 | I0.3 | I0.4 | I0.5 | |
| HSC5 | I0.4 | |||
| 带有内部方向控制的单相计数器 | 时钟 | |||
| 时钟 | 复位 | |||
| 时钟 | 复位 | 启动 | ||
| 带有外部方向控制的单相计数器 | 时钟 | 方向 | ||
| 时钟 | 方向 | 复位 | ||
| 时钟 | 方向 | 复位 | 启动 | |
| 带有增减计数时钟的双相计数器 | 增时钟 | 减时钟 | ||
| 增时钟 | 减时钟 | 复位 | ||
| 增时钟 | 减时钟 | 复位 | 启动 | |
| A/B相正交计数器 | 时钟A | 时钟B | ||
| 时钟A | 时钟B | 复位 | ||
| 时钟A | 时钟B | 复位 | 启动 | 
红色:S7-200 SMART 不支持的功能。
表2. S7-200高速计数器寻址
| SMD38 | SMD48 | SMD58 | SMD138 | SMD148 | SMD158 | 
| SMD42 | SMD52 | SMD62 | SMD142 | SMD152 | SMD162 | 
| HC0 | HC1 | HC2 | HSC3 | HSC4 | HSC5 | 
表3. S7-200 SMART 高速计数功能
| HSC0 | I0.0 | I0.1 | I0.4 | 
| HSC1 | I0.1 | ||
| HSC2 | I0.2 | I0.3 | I0.5 | 
| HSC3 | I0.3 | ||
| 带有内部方向控制的单相计数器 | 时钟 | ||
| 时钟 | 复位 | ||
| 带有外部方向控制的单相计数器 | 时钟 | 方向 | |
| 时钟 | 方向 | 复位 | |
| 带有增减计数时钟的双相计数器 | 增时钟 | 减时钟 | |
| 增时钟 | 减时钟 | 复位 | |
| A/B相正交计数器 | 时钟A | 时钟B | |
| 时钟A | 时钟B | 复位 | 
表4. S7-200 SMART 高速计数器寻址
| SMD38 | SMD48 | SMD58 | SMD138 | 
| SMD42 | SMD52 | SMD62 | SMD142 | 
| HC0 | HC1 | HC2 | HSC3 | 
注意:
1,S7-200 SMART 不支持模式2、模式5、模式8、模式11、模式12(在运动控制向导时勾选);
2,S7-200 SMART 做高速计数需要硬件滤波,如下图所示:
图1. S7-200 SMART 滤波时间与频率关系
注:CR40/60 两款CPU高支持 100kHz 频率
高速计数功能移植案例以S7-200 224XP举例,使用高速计数HSC0,模式9,分别利用指令与向导分别编程,移植到S7-200 SMART
向导移植将S7-200 高速计数向导与S7-200 SMART高速计数向导横向对比,如下图所示:
图2. 高速计数器及模式选择
图3. HSC 初始化选项
图4.配置中断及步骤
图5. HSC 第 1 步
图6. 完成向导
如上图所示:S7-200 高速计数向导组态与S7-200 SMART高速计数向导组态一致。
具有相同功能由向导生成的 S7-200 项目可直接用S7-200 SMART 打开,按照以下步骤移植:
步骤1:用STEP 7 Micro/Win SMART 打开S7-200 的原程序
步骤2:按照《表3. S7-200 SMART 高速计数功能》,进行高速计数通道的接线
步骤3:按照《图1. S7-200 SMART 滤波时间与频率关系》,进行高速计数通道滤波时间的设置
步骤4:编译下载,下载即可。如下图示:
图7. 程序对比
指令移植将 S7-200 高速计数的特殊存储器 ( SM ) 与 S7-200 SMART 高速计数的特殊存储器 ( SM ) 横向对比,以 HSC0 如下表所示:
表5. S7-200 与 S7-200 SMART 特殊存储器(SM)对比
| 保留 | |
| HSC0 当前计数方向状态位:1=增计数 | |
| HSC0 当前值等于预设值状态位:1=相等 | |
| HSC0 当前值大于预置值状态位:1=大于 | |
| 复位的有效电平控制位: | |
| 保留 | |
| HSC0 AB正交计数器的计数速率选择: | |
| HSC0 方向控制位:1=加计数 | |
| HSC0 更新方向:1=更新方向 | |
| HSC0 更新预设值:1=将新的预设值写入HSC0 预设值 | |
| HSC0 更新当前值:1=将新的预设值写入HSC0 当前值 | |
| HSC0 使能位:1=使能 | |
| HSC0 当前值 | |
| HSC0 预设值 | 
由上表可见,S7-200 与 S7-200 SMART 特殊存储器(SM)完全一致。
将 S7-200与 S7-200 SMART 高速计数中断事件功能横向对比,如下表所示:
表6. S7-200 与 S7-200 SMART 中断事件功能对比
| 中断号 | 中断事件 | 中断号 | 中断事件 | 
| 12 | HSC0 CV=PV | 12 | HSC0 CV=PV | 
| 13HSC1 CV=PV | HSC1 CV=PV | ||
| 14HSC1 输入方向改变 | - | ||
| 15HSC1 外部复位 | - | ||
| 16HSC2 CV=PV | HSC2 CV=PV | ||
| 17HSC2 输入方向改变 | HSC2 输入方向改变 | ||
| 18HSC2 外部复位 | HSC2 外部复位 | ||
| 27HSC0 输入方向改变 | HSC0 输入方向改变 | ||
| 28HSC0 外部复位 | HSC0 外部复位 | ||
| 29HSC4 CV=PV | - | ||
| 30HSC4 输入方向改变 | - | ||
| 31HSC4 外部复位 | - | ||
| 32HSC3 CV=PV | HSC3 CV=PV | ||
| 33HSC5 CV=PV | - | 
由上表可见,S7-200 SMART 与 S7-200 相比,S7-200 SMART 高速计数功能所支持的中断与 S7-200 相同。
具有相同功能由指令生成的 S7-200 项目可直接用S7-200 SMART 打开,按照以下步骤移植:
步骤1:用STEP 7 Micro/Win SMART 打开S7-200 的原程序
步骤2:按照《表3. S7-200 SMART 高速计数功能》,进行高速计数通道的接线
步骤4:编译下载,下载即可。如下图示:
图8. 程序对比
图9. 功能测试
常问问题 S7-200 所支持的HSC4、HSC5,及模式2、模式5、模式8、模式11、模式12(在运动控制向导时勾选)能否移植到S7-200 SMART?
 S7-200 所支持的HSC4、HSC5,及模式2、模式5、模式8、模式11、模式12(在运动控制向导时勾选)能否移植到S7-200 SMART?
答:不能,无论是向导生成,还是指令生成,都不能移植到S7-200 SMART。
 S7-200 与 S7-200 SMART相同功能,移植成功后,高速检测不到脉冲?
 S7-200 与 S7-200 SMART相同功能,移植成功后,高速检测不到脉冲?
答:S7-200 SMART必须修改硬件地址的滤波时间。