Показать сообщение отдельно
Старый 25.06.2021, 21:30   #3
Орлов Макс
Бывалый
 
Регистрация: 04.03.2016
Сообщения: 22
Сказал Спасибо: 2
Сказали Спасибо 1 раз(а) в 1 сообщении
Восклицание

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