正如我们在计数器和定时器中看到的那样,一些 PLC 指令生成除简单布尔(开/关)信号之外的数字值。
计数器具有当前值 (CV) 寄存器,定时器具有经过时间 (ET) 寄存器,这两个寄存器通常都是整数值。
许多其他 PLC 指令旨在接收和操作非布尔值,例如这些指令,以执行有用的控制功能。
IEC 61131-3 标准指定了各种数据比较指令,用于比较两个非布尔值并生成布尔输出。
PLC 数据比较指令
基本比较运算“小于”(<)、“大于”(>)、“小于等于”(≤)、“大于等于”(≥)、“等于”(=) ,“不等于”(6=) 可以在 IEC 标准中作为一系列“框”指令找到:
只要评估的比较函数为“真”且使能输入 (EN) 处于活动状态,每个指令“框”的 Q 输出就会激活。
如果使能输入保持有效但比较功能为假,则 Q 输出将停用。 如果使能输入取消激活,Q 输出将保留其最后的状态。
比较功能的一个实际应用是所谓的交流电机控制,其中监控两个冗余电机的运行时间,PLC 根据哪个电机运行最少来确定接下来打开哪个电机:
在此程序中,两个保持性接通延迟定时器跟踪每个电动机的总运行时间,并将运行时间值存储在 PLC 内存中的两个寄存器中:
电机 A 运行时间和电机 B 运行时间。 这两个整数值被输入到“大于”指令框进行比较。
如果电机 A 的运行时间比电机 B 长,则下次按下“启动”开关时,将启动电机 B。
如果电机 A 的运行时间少于电机 B 或与电机 B 相同(蓝色突出显示的状态指示所示的情况),则电机 A 将启动。
两个串联的虚拟触点 OUT 电机 A 和 OUT 电机 B 确保在两个电机都停止之前不会对电机运行时间进行比较。
如果不断地进行比较,可能会出现这样的情况:如果有人碰巧在一台电机已经运行的情况下按下了启动按钮,那么两台电机都会启动。