设置 S7-1200 CPU 输入滤波器时间
设置 SB 信号板输入滤波器时间
下表 1 显示了输入滤波器时间和可检测到的最大输入频率:
输入滤波器时间 | 可检测到的最大输入频率 |
0.1 microsec | 1MHz |
0.2 microsec | 1MHz |
0.4 microsec | 1MHz |
0.8 microsec | 625kHz |
1.6 microsec | 312kHz |
3.2 microsec | 156kHz |
6.4 microsec | 78kHz |
10 microsec | 50kHz |
12.8 microsec | 39kHz |
20 microsec | 25kHz |
0.05 millisec | 10kHz |
0.1 millisec | 5kHz |
0.2 millisec | 2.5kHz |
0.4 millisec | 1.25kHz |
0.8 millisec | 625Hz |
1.6 millisec | 312Hz |
3.2 millisec | 156Hz |
6.4 millisec | 78Hz |
10 millisec | 50Hz |
12.8 millisec | 39Hz |
20 millisec | 25Hz |
表 1 输入滤波器时间和可检测到的最大输入频率
高速计数器的计数范围是什么?
答: 高速计数器的默认计数范围是 -231~231-1。当向上计数到最大值 231-1 时,会跳回到 -231;当向下计数到最小值 -231 时,会跳回 231-1。
断电停机或复位后,高速计数器的值会复位到什么值?
答: CPU 断电或重启后,高速计数器的值会复位到硬件组态的初始值;如果执行了外部复位,高速计数器的值默认会复位为 0,如果在程序中修改了起始值,将会复位为修改的起始值。
不编写 CTRL_HSC,高速计数器是否可以计数?
答: 只要在硬件配置里使能并组态了高速计数器,不编写 CTRL_HSC,高速计数器就可以正常计数。CTRL_HSC 只是完成参数写入的功能。
为什么高速计数器的数值不增加,总是停在一个固定的值?
答: 如果编程了 CTRL_HSC,当置位 CV 将 NEW_CV 写入当前值后,CV 位不会自动复位为 0,这时程序会一直将 NEW_CV 写入当前值,导致高速计数器不继续计数而保持在固定的 NEW_CV 值。因此必须编程复位 CV,才能避免该错误的发生。 同理,如果编程了 CTRL_HSC_EXT ,然后 HSC_Count 中的元素 EnCV 始终置位,这时程序会一直将 NewCurrentCount 写入当前值,导致高速计数器不继续计数而保持在固定的 NewCurrentCount 值。所以控制位通常使用沿触发,或者指令调用发生在硬件中断中。
为什么 CTRL_HSC 的 "STATUS" 会返回 "80C0" 多次访问高速计数器错误?
答: 如果高速计数器用做内部的运动控制的计数,则CTRL_HSC 的 "STATUS" 就会返回 "80C0" 多次访问高速计数器错误。
S7-1200 的高速计数器输入通道是否固定?
答: 早期固件版本的高速计数器输入通道是固定的。
V4.0 或更高版本的 S7-1200 的高速计数器输入通道可以在其属性中更改。如图
更改高速计数器输入通道
S7-1200 CPU 最多支持多少个高速计数器?
答: 早期固件版本的 S7-1200 CPU 中,CPU1211C 最多支持 3 个单相的高速计数器,CPU1212C 最多支持 4 个单相的高速计数器,CPU1214C 和 CPU1215C 最 多支持 6 个单相的高速计数器。
V4.0 或更高版本的所有型号的 S7-1200 CPU 都支持最多 6 个单相高速计数器。
需要注意的是 V4.0 或更高版本的 S7-1200 CPU 有默认的高速计数器通道地址,而 CPU 1211C 数字量输入地址仅有 6 个,为 I0.0-I0.5,CPU 1212C 数字量输入地址仅有 8 个,为 I0.0-I0.7。
因此如果需要使用 CPU1211C 的 HSC4,HSC5, HSC6 或 CPU1212C 的 HSC5,HSC6,则需要更改其硬件输入地址到有效的范围才能正常使用。以 CPU1211C 举例,如图