Определите несколько переменных в условии в ST

В настоящее время я программирую / моделирую небольшой завод в CODESYS. У меня есть несколько выходов (которые соответствуют двигателям), которые мне нужно протестировать несколько раз, поэтому я хочу создать условие, которое включает этот тест, поэтому мне не нужно писать полное условие. Например, у меня есть условие, которое проверяет, если

A= ИСТИНА И B= ИСТИНА И C= ИСТИНА И D= ИСТИНА

Могу ли я создать условие, подобное "проверять двигатель", чтобы использовать его каждый раз?

Спасибо

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 вместо.

Другие вопросы по тегам