PLC SCL 保持变量为真

PLC SCL keeping variable true

所以我正在用SCL语言编写PLC代码,我想知道这件事:

我有一个带入口的水箱和一个用于流出的泵。只有在水箱中的水位超过一个水位(比方说 10 米)之后,泵才应该 运行。它应该一直持续到水箱水位下降到 4 米。

不确定我是应该使用更多 IF 语句还是 WHILE 语句?。问题是,如何在水位低于 10 米但尚未达到 4 米后继续运转?

此代码可能没有用:

IF (TankLevel > 10) THEN
      StartPump := TRUE;
END_IF;

感谢任何帮助。

只需添加以下内容:

IF (TankLevel < 4) THEN
      StartPump := FALSE;
END_IF;

添加一个elsif

IF (TankLevel > 10) THEN
    StartPump := TRUE;
ELSIF (TankLevel < 4) THEN
    StartPump := FALSE;
END_IF;

PLC 程序基本上是一个大 while 循环,因此可以每隔几毫秒检查一次。

另一种选择,虽然这更适合梯形图逻辑:

StartPump := ( (TankLevel > 10) OR StartPump ) AND NOT (TankLevel < 4);

StartPump 位将在 10m 处“锁定”,直到在 4m 处释放。