Я хочу просто сократить запись (ПЛК63):
Код:
(* Тест светодиодов. *)
ELSIF Step = TEST_LEDS THEN
(* Включаем все светодиоды. *)
LedGreen1 := 1;
LedGreen2 := 1;
LedRed1 := 1;
LedRed2 := 1;
(* Задержка 2 секунды. *)
TON_1( IN := TRUE, PT := T#2s, Q => btmp, ET => ttmp );
(* Выключаем все светодиоды. *)
IF btmp THEN
LedGreen1 := 0;
LedGreen2 := 0;
LedRed1 := 0;
LedRed2 := 0;
(* Переходим к тесту входов. *)
Step := TEST_CHECKINPUTS;
END_IF;
Ну и такую вещь тоже хотел бы сократить:
Код:
(* Меняем текущее состояние светодиодов на обратное. *)
IF btmp THEN
LedGreen1 := BOOL_TO_REAL( NOT REAL_TO_BOOL( LedGreen1 ) );
LedGreen2 := BOOL_TO_REAL( NOT REAL_TO_BOOL( LedGreen2 ) );
LedRed1 := BOOL_TO_REAL( NOT REAL_TO_BOOL( LedRed1 ) );
LedRed2 := BOOL_TO_REAL( NOT REAL_TO_BOOL( LedRed2 ) );
(* Переходим к тесту входов. *)
Step := TEST_CHECKINPUTS;
END_IF;
Наверняка это можно сделать как-то попроще.