Удалось решить этот вопрос. Теперь вместо списка сигналов я отправляю список строк состоящий из имён сигналов, после чего с помощью AliasIO привожу их к нужному виду. Выглядит это следующим образом:
PROC WaitSignalDI(string signal_array{*},dionum value_array{*},num alarmcode_array{*})
__Recheck:
__timeout:=FALSE;
__FOR i FROM 1 TO DIM(signal_array,1) DO
____AliasIO signal_array{i},actual_wait_signal;
____WaitDI actual_wait_signal,value_array{i}\MaxTime:=max_wai t_time\TimeFlag:=timeout;
____IF timeout THEN
______ALARM(alarmcode_array{i});
______GOTO Recheck;
____ENDIF
__ENDFOR
ENDPROC
Вызов программы выглядит следующим образом:
WaitSignalDI ["DI_signal_1","DI_signal_2"],[0,1],[101,102];
Надеюсь кому-нибудь это будет полезно ;D
|