首页 > 解决方案 > 在 ST 的一个条件中定义多个变量

问题描述

我目前正在 CODESYS 中编程/模拟一个小工厂。我有几个需要测试多次的输出(对应于引擎),所以我想创建一个包含这个测试的条件,所以我不需要编写整个条件。例如,我有条件验证是否

A=TRUE AND B=TRUE AND C=TRUE AND D=TRUE

我可以创建一个像“验证引擎”这样的条件来每次使用吗?

谢谢

标签: conditional-statementsstcodesys

解决方案


有很多方法可以做到这一点(如果我理解正确的话)。

例如,这里有两种方法:

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


推荐阅读