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 处释放。
所以我正在用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 处释放。