在ST中的条件中定义多个变量

问题描述 投票:0回答:1

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

A = TRUE,B = TRUE,C = TRUE,D = TRUE

我可以创建每次使用“验证引擎”的条件吗?

谢谢

conditional-statements st codesys
1个回答
1
投票

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

以下是两种方式:

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代替它时,它更清楚。

© www.soinside.com 2019 - 2024. All rights reserved.