我目前正在编程/模拟CODESYS中的一个小工厂。我有几个输出(对应于引擎),我需要多次测试,所以我想创建一个包含此测试的条件,所以我不需要编写整个条件。例如,我有条件验证是否
A = TRUE,B = TRUE,C = TRUE,D = TRUE
我可以创建每次使用“验证引擎”的条件吗?
谢谢
有很多方法可以做到这一点(如果我理解正确的话)。
以下是两种方式:
1.创建具有条件结果的变量并使用该变量。您必须在开头分配变量,然后您可以使用变量而不是长代码。
VAR
EnginesOK : BOOL;
END_VAR
//Check engines
EnginesOK := (A = TRUE AND B = TRUE AND C = TRUE AND D = TRUE);
//.. Later ..
IF EnginesOK THEN
//Do something
END_IF
2.创建一个函数,例如包含检查的F_VerifyEngines
,并将状态返回为BOOL
。注意:在此示例中,A,B,C和D需要是全局变量。您也可以将它们作为函数的参数传递。
FUNCTION F_VerifyEngines : BOOL
VAR_INPUT
//Add A,B,C,D here if needed
END_VAR
VAR
END_VAR
//Return the result
F_VerifyEngines := (A = TRUE AND B = TRUE AND C = TRUE AND D = TRUE);
然后你可以在代码中使用该函数:
IF F_VerifyEngines() THEN
//Do something
END_IF
第二种方式可能就是你想的那种方式。
顺便说一下,没有必要写A = TRUE AND B = TRUE AND C = TRUE AND D = TRUE
,在我看来,当你使用A AND B AND C AND D
代替它时,它更清楚。