SCL CTU — 加计数器
IEC_COUNTER 实例用 #MyCounter.CTU(...) 调用;CU 每个上升沿 CV 加 1,CV≥PV 时 Q=1。
SCL 的计数器是 IEC 计数器实例:CTU 加、CTD 减、CTUD 双向。
示例统一用 IEC_COUNTER 实例,调用写成 #MyCounter.CTU(...);实例名不要用 Counter(保留字)。
计数输入都是边沿触发:信号保持为 1 不会每个扫描都计数。
| 需求 | 指令 |
|---|---|
| 来了几个 | CTU |
| 还剩几个 | CTD |
| 既加又减 | CTUD |
1VAR
2 MyCounter : IEC_COUNTER;
3END_VAR
4
5#MyCounter.CTU (CU := #Count, R := #Reset, PV := #Preset, Q => #Q, CV => #CV);
6#MyCounter.CTD (CD := #CountDown, LD := #Load, PV := #Preset, Q => #Q, CV => #CV);
7#MyCounter.CTUD(CU := #Up, CD := #Down, R := #Reset, LD := #Load, PV := #Preset, QU => #QU, QD => #QD, CV => #CV);
实例名用 MyCounter,不要用 Counter(TIA 保留字)。
正计数用 CTU,倒计数用 CTD,既要加又要减用 CTUD。
计数器按上升沿计数;要保持为 1 只算一次,再次计数需要先回 0 再上升。
要。实例类型(IEC_COUNTER)决定 CV 范围,PV 要用兼容的整数类型。
Counter 是 TIA/SCL 的保留字,外部源导入会报错;改名为 MyCounter。