高速计数器
硬件级精度
捕获对于标准 PLC 周期来说太快的信号。以纳秒级的精度管理增量式编码器、频率测量和高速定位。
为什么要使用高速计数器?
标准数字量输入受 PLC 扫描时间(通常为 1-10ms)的限制,无法可靠地检测快于 100Hz 的脉冲。HSC 使用 CPU 上的专用硬件,独立于程序周期进行计数。
这种卸载确保了即使在高达 1MHz 的频率下也不会丢失脉冲,这对于运动控制、流量计量和高速包装线至关重要,因为毫秒级的延迟会导致产品报废。
高速计数
位置跟踪和事件计数
CTRL_HSC — 计数器控制
CTRL_HSC功能描述
用于在运行期间修改高速计数器参数的指令,例如加载新的初始值或参考值。
使用场景
当您需要在寻原点传感器触发后重置计数器位置或更新硬件中断的目标值时。
专业技巧
为输入参数使用 HW_HSC 数据类型,以确保正确的硬件映射。
仅在实际需要更改参数时触发 REQ 输入,以节省 CPU 资源。
在尝试后续控制命令之前,务必检查 BUSY 和 DONE 标志。
A/B 正交 — 编码器逻辑
HSC_Config功能描述
使用两个相位差为 90 度的信号(相 A 和 B)来确定旋转位置和方向的硬件计数模式。
使用场景
跟踪输送带、电机轴或任何配备增量式编码器的线性执行器的精确位置。
专业技巧
在硬件配置中配置数字滤波时间,以消除编码器线路上的电噪声。
在 TIA Portal 中使用 4 倍频评估模式,将编码器的有效分辨率提高四倍。
验证信号电平(24V DC 与 5V 差分),以匹配 CPU 的硬件能力。
测量
速度、频率和周期计算
频率测量 — RPM
IDxx:P功能描述
在特定时间窗口内计算接收到的脉冲数以确定频率 (Hz) 的硬件功能。
使用场景
在没有模拟转速计的情况下测量电机速度,或根据脉冲输出流量计计算液体流量。
专业技巧
较长的测量间隔会提高精度,但会降低值的更新速率。
结果会自动映射到硬件配置中定义的输入双字 (ID)。
对于极低速度,使用“周期测量”模式代替频率,以获得更好的稳定性。
脉冲门控 — 硬件门控
Gate功能描述
使用物理硬件输入(门控)立即启动、停止或捕获计数器值,无软件延迟。
使用场景
测量在两个传感器之间通过的产品长度,在这种情况下软件延迟会导致测量误差。
专业技巧
可以配置“同步”输入在上升沿将计数器重置为特定值。
当计数器达到参考值 (CV=RV) 时,可以触发硬件中断。
检查 Status_HSC 变量以检测计数器是否发生了上溢或下溢。
软件计数器 vs 硬件计数器
何时升级到高速硬件
| 需求 | 软件计数器 (CTU) | 硬件 HSC |
|---|---|---|
| 最大频率 | 约 100 Hz | 高达 1 MHz (1,000,000 Hz) |
| 精度 | 取决于扫描时间 | 确定性(硬件定时) |
| CPU 负载 | 在高速下非常显著 | 零(卸载到 ASIC) |
| 编码器支持 | 否(A/B 逻辑难以实现) | 原生正交(1倍、2倍、4倍) |
| 信号滤波 | 软件去抖 | 硬件滤波器(纳秒级) |
| 功能性 | 简单计数 | 频率、周期、速度 |
常见问题解答
为什么我的 HSC 值在程序中不增加?
确保在硬件配置中启用了 HSC,并且正确选择了“计数”模式。如果配置了软件启用,还必须调用一次 CTRL_HSC 并将 CV=1 以启动计数器。
S7-1200 支持的最大频率是多少?
标准 S7-1200 CPU 在板载输入上支持高达 100kHz。高端型号或信号板 (SB) 使用差分信号可达到 200kHz 或 1MHz。
如何从程序中将计数器重置为零?
使用 CTRL_HSC 指令。将 'NEW_CV' 输入设置为 0 并将 'CV' 位切换为 1。新值将在下次指令执行时加载到硬件中。
高速计数器可以使用任何数字量输入吗?
不行。只有特定的输入(小型 CPU 上通常为 I0.0 到 I0.5)硬连线到 HSC 电路。请查看设备手册以获取您特定 PLC 型号的精确映射。