Я так и не понял.
Где у меня в коде хоть как то при записи используется буфер до тех пор, пока Complete не будет равно 1
PHP код:
3:
Buffer[1] := DINT_TO_BYTE(out_5);(* Записываем данные в буфер*)
Buffer[0] := DINT_TO_BYTE( SHR(out_5,8));
set5(
Enable:= TRUE, (* Разрешение работы блока *)
Mode:=MB_RTU , (* Режим передачи ASCII/ RTU *)
DevAddr:=5 , (* Адрес ведомого устройства *)
FirstAddr:= 50, (* Номер первого регистра для чтения *)
Quantity:= 1, (* Количество записываемых регистров *)
ComHandle:=Settings.Port , (* Номер COM-порта *)
TimeOut:=TimeOut , (* Таймаут T#ХХХms *)
Buffer:=Buffer , (* Буфер данных *)
Complete=>cmpl , (* Скопировать признак завершения операции *)
Exception=>Error); (* Скопировать регистр ошибок *)
IF cmpl THEN (* Если завершено *)
master := 1;
set5(
Enable:=FALSE , (* Завершаем работу блока *)
Mode:=MB_RTU , (* Режим передачи ASCII/ RTU *)
DevAddr:=5 , (* Адрес ведомого устройства *)
FirstAddr:= 50, (* Номер первого регистра для чтения *)
Quantity:= 1, (* Количество записываемых регистров *)
ComHandle:=Settings.Port , (* Номер COM-порта *)
TimeOut:=TimeOut , (* Таймаут T#ХХХms *)
Buffer:=Buffer); (* Буфер данных *)
END_IF