我目前正在 CODESYS 中编程/模拟一个小工厂。我有几个需要测试多次的输出(对应于引擎),所以我想创建一个包含这个测试的条件,所以我不需要编写整个条件。例如,我有条件验证是否
A=TRUE AND B=TRUE AND C=TRUE AND D=TRUE
我可以创建一个像“验证引擎”这样的条件来每次使用吗?
谢谢
我目前正在 CODESYS 中编程/模拟一个小工厂。我有几个需要测试多次的输出(对应于引擎),所以我想创建一个包含这个测试的条件,所以我不需要编写整个条件。例如,我有条件验证是否
A=TRUE AND B=TRUE AND C=TRUE AND 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
。