之前看到有博文写Codesys程序编写标准中有一条,多个判断条件的if-else-
语句,可能性最大的条件应放到最前面,这样可减少PLC处理的事件。但是根据测试,情况并非如此。下面的例子进行详细说明。
AND、OR条件并列if-else语句
- 第一个
if
语句中,第一个条件1 > 2
显然等于FALSE, 但是PLC仍执行了后面的条件;
IF 1 > 2 AND (_xTestCondition := TRUE) THEN
_iResult := 100;
END_IF
- 第二个
if
语句中,第一个条件2 > 1
已经等于TRUE, 但是PLC仍执行了后面的条件;
IF 2 > 1 OR (_xTestCondition1 := TRUE) THEN
_iResult1 := 99;
END_IF
- 第二个
if
语句中,第一个条件为TRUE, 但是PLC仍执行了后面的条件, 导致程序出现异常;
IF _iDenomina