Показать сообщение отдельно
Старый 25.06.2021, 14:48   #2
Андрей Косцов
Гуру
 
Регистрация: 24.06.2015
Сообщения: 76
Сказал Спасибо: 11
Сказали Спасибо 11 раз(а) в 10 сообщении
По умолчанию

Удалось решить этот вопрос. Теперь вместо списка сигналов я отправляю список строк состоящий из имён сигналов, после чего с помощью 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
Андрей Косцов вне форума   Ответить с цитированием
cказали "Спасибо" Андрей Косцов за это сообщение:
Орлов Макс (25.06.2021)