我最近开始从事PLC结构化文本编程的工作。请问noobie问题,但是如何保留上升沿检测器的值?
我正在使用codesys v2.3,并且有一个功能块(R_TRIG),用于检测信号从假变为真。但是,功能块的输出信号会持续约1秒钟(无论循环时间->我已经尝试了很高的值)。
我试图通过一个简单的if来保留值:
IF Rtrigger.Q = true THEN Triggermemory := true;
然而,新变量(Triggermemory
)跟随边沿触发输出值(当然)。
我已经尝试过使用保留和持久全局变量(没有成功),但是我认为真正的问题是我需要以某种方式将这个真实值存储在某个地方。
为什么“触发器内存”跟随边沿触发输出变量?
仅应在您放置此处的加高条件时设置。
IF Rtrigger.Q = true THEN
Triggermemory := true;
END_IF
并且即使Rtrigger.Q变为false,也应保持为true。除非代码中的其他位置,否则将Triggermemory重置为false。
如果您只想检查变量是否为TRUE,您是否考虑过使用双稳态SR?如果变量在任何时候变为TRUE,则它将变为TRUE。即使变量返回为false,它也将保持为TRUE。
然后,您可以使用“重置”输入将其强制返回到重置位置(FALSE)。