Определите несколько переменных в условии в ST - PullRequest
0 голосов
/ 18 сентября 2018

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

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

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

Спасибо

1 Ответ

0 голосов
/ 19 сентября 2018

Есть много способов сделать это (если я вас правильно понял).

Вот два способа, например:

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.

...