我们在思考如何计数时肯定会想到上加下减这个方法,但如何实现这个算法,并且不会出现计数结果紊乱,能够准确的被后续群控中距离调控所计算,是值得思考并且不断优化的。本文提供一个较为精简的算法来供大家学习应用。
电梯在到达端限后开始计数,具体梯形图如下图1.1所示
图1.1 梯形图
在图1.1中使用CTUD(加减计数)指令,递增和递减输出 CV 的计数器值。
CTUD函数解释
如果输入 CU 的信号状态从“0”变为“1”(信号上升沿),则当前计数器值加 1 并存储在输出 CV 中。
如果输入 CD 的信号状态从“0”变为“1”(信号上升沿),则输出 CV 的计数器值减 1。
如果在一个程序周期内,输入 CU 和 CD 都出现信号上升沿,则输出 CV 的当前计数器值保持不变。
计数器值可以一直递增,直到其达到输出 CV 处指定数据类型的上限。
达到上限后,即使出现信号上升沿,计数器值也不再递增。达到指定数据类型的下限后,计数器值便不再递减。
输入 LD 的信号状态变为“1”时,将输出 CV 的计数器值置位为参数 PV 的值。只要输入 LD 的信号状态仍为“1”,输入 CU 和 CD 的信号状态就不会影响该指令。
当输入 R 的信号状态变为“1”时,将计数器值置位为“0”。
只要输入 R 的信号状态仍为“1”,输入 CU、CD 和 LD 信号状态的改变就不会影响“加减计数”指令。 可以在 QU 输出中查