Недавно в процессе копипаста вызова DFB управления 92-мя задвижками, я задумался о тщетности бытия, и о том что тупой копипаст претит программисту.
К примеру есть 92 задвижки. Есть один DFB для управления ими. В DataEditor-е создано 92 экземпляра для вызова DFB вида
Код:
fb_EZ_<номер_задвижки>
И в результате в программе приходится делать 92 вызова вида.
Код:
fb_EZ_1 (i_iControl := i_iControl_EZ_1,
i_xReady := RDY_SH_04,
i_xStop := STOP_SH_04,
i_xDistance := DIST_SH_04,
i_xOpened := OP_EZ_1,
i_xClosed := CL_EZ_1,
q_xOpen => OPEN_EZ_1,
q_xClose => CLOSE_EZ_1,
q_xAlarm => q_xAlarm_EZ_1,
q_iStatus => q_iStatus_EZ_1,
q_iAlarms => q_iAlarms_EZ_1,
q_iCount => q_iCount_EZ_1);
Можно ли в UnityPro сделать это в цикле. Подставляя индекс цикла в имя экземпляра и имена переменных. ЧТо-то типа:
Код:
FOR i=1 TO 92 DO
fb_EZ_[i] (i_iControl := i_iControl_EZ_[i],
i_xReady := RDY_SH_04,
i_xStop := STOP_SH_04,
i_xDistance := DIST_SH_04,
i_xOpened := OP_EZ_[i],
i_xClosed := CL_EZ_[i],
q_xOpen => OPEN_EZ_[i],
q_xClose => CLOSE_EZ_[i],
q_xAlarm => q_xAlarm_EZ_[i],
q_iStatus => q_iStatus_EZ_[i],
q_iAlarms => q_iAlarms_EZ_[i],
q_iCount => q_iCount_EZ_[i]);
END_FOR;
Я понимаю, что использование квадратных скобок, как в обращении к массиву тут неправильно, просто я пытаюсь объяснить, что имею ввиду под подстановкой числа в идентификатор переменной или функции.
Можно ли как-то организовать такой циклический вызов DFB вместо копипаста 92-х вызовов. Может можно как-то формировать строку, и потом подставлять её в качестве идентификатора переменной?