Добрый день.
При попытке отдать модулю МВ110-224.8А команду APLY с помощью библиотеки OwenNet (CoDeSys 2.3) возвращается ошибка с кодом 0x31 (SZE).
Подскажите, пожалуйста, как правильно отправить эту команду?

Скрытый текст:

PROGRAM PLC_PRG
VAR
uComPort : USINT := 0;(* COM-порт, для ПЛК150 равен 0 *)
uComServ : COM_SERVICE;
uComSettings : COMSETTINGS;
uNeedComOpen : BOOL := FALSE;(* Открыть, или закрыть выбранный COM-порт *)
uComBaudrate : DWORD := 9600;

osdint : OWEN_SET_DINT;(* Задать новую скорость передачи порта *)
osaply : OWEN_SET_DINT;(* Отправить команду APLY *)
uExecSet : BOOL := FALSE;(* Выполнить связку osdint+osaply *)
uCompleteSet : BOOL := FALSE;(* osdint выполнен*)
uCompleteAply : BOOL := FALSE;(* osaply выполнен *)
uIndex : WORD := 16#FFFF;
uSetValue : DINT := 0;(* Значение, передаваемое в регистр скорости порта *)
uSetError : WORD := 0;(* Ошибки выполнения osdint *)
uAplyError : WORD := 0;(* Ошибки выполнения osaply *)
END_VAR

IF uNeedComOpen = TRUE THEN
uComServ.Task := 0;(* Открыть COM-порт с заданными настройками *)
ELSE
uComSettings.Port := uComPort;
uComSettings.dwBaudRate := uComBaudrate;
uComSettings.byStopBits := 0;
uComSettings.byParity := 0;
uComSettings.dwTimeout := 200;
uComServ.Task := 2;(* Закрыть COM-порт *)
END_IF;
uComServ(Enable := uNeedComOpen, Settings := uComSettings);

IF (uComServ.Ready = TRUE) AND (uNeedComOpen = TRUE) THEN
IF uExecSet = TRUE THEN
IF uCompleteSet = FALSE THEN
(* Запись в регистр значения не завершена *)
osdint(Enable := uExecSet, Addr := 16, AddrLen := A8BIT, Name := 'bPS', Index := uIndex, IntType := SINT1_FRM, Value := uSetValue, ComHandle := uComPort, TimeOut := T#500ms,
Complete => uCompleteSet, Error => uSetError);
ELSIF uCompleteAply = FALSE THEN
(* Выполнение команды APLY не завершено *)
osaply(Enable := uExecSet, Addr := 16, AddrLen := A8BIT, Name := 'APLY', Index := uIndex, IntType := SINT1_FRM, Value := 0, ComHandle := uComPort, TimeOut := T#500ms,
Complete => uCompleteAply, Error => uAplyError);
ELSE
(* Записанное в регистр значение зафиксировано *)
uExecSet := FALSE;
uCompleteSet := FALSE;
uCompleteAply := FALSE;
END_IF;
ELSE
uCompleteSet := FALSE;
uCompleteAply := FALSE;
END_IF;

END_IF;