Добрый день. Имеется контроллер ПЛК 110-24 [М02] и модуль аналогового ввода МВ110-8А. Пытаюсь записать параметры модуля с помощью библиотеки OwenNet.lib. Паписывает нормально любые числа (в пределах допустимых) с плавающей точкой в параметр "Itrl", кроме 1.0. Операция записи возращается с ошибкой Error = 5.
Вот код:
Код:
FUNCTION_BLOCK WriteParamsToModules
VAR_INPUT
	ModuleAddr:WORD; (*Адрес модуля*)
	ChanelAddr:WORD;		(*Номер канала*)
	Settings:POINTER TO COMSETTINGS; (*Настройки порта*)
	in_t: WORD; (*Тип датчика*)
 	in_Fd:WORD;       	(*Постоянная времени цифрового фильтра*)
	Itrl:REAL;			(*Период опроса датчика*)
	in_SH: REAL;		(*Сдвиг характеристики датчика*)
	in_SL:REAL;		(*Наклон характеристики датчика*)
	in_FG:REAL;		(*Полоса цифрового фильтра*)
	Ain_L:REAL;	(*Нижнее значение параметра, измеряемое активным датчиком*)
	Ain_H:REAL;	(*Верхнее значение параметра, измеряемое активным датчиком*)
	dP:	WORD	;	(*Смещение десятичной точки*)
END_VAR
VAR_OUTPUT
	Done:BOOL; 	(*Запись завершена*)
END_VAR
VAR_IN_OUT
	paramNum:INT;
END_VAR
VAR
	Se:COMSETTINGS;
	TimeOut:TIME:= t#50ms;

	set_di_owen_type:OWEN_SET_DINT; 	(*Тип датчика*)
	set_di_owen_Fd:OWEN_SET_DINT;	(*Постоянная времени цифрового фильтра*)
	set_fl_owen_Itrl:OWEN_SET_REAL; 	(*Период опроса датчика*)
	set_fl_owen_SH:OWEN_SET_REAL;	(*Сдвиг характеристики датчика*)
	set_fl_owen_SL:OWEN_SET_REAL;	(*Наклон характеристики датчика*)
	set_fl_owen_FG:OWEN_SET_REAL;	(*Полоса цифрового фильтра*)
	set_fl_owen_L:OWEN_SET_REAL;		(*Нижнее значение параметра, измеряемое активным датчиком*)
	set_fl_owen_H:OWEN_SET_REAL;		(*Верхнее значение параметра, измеряемое активным датчиком*)
	set_di_owen_dP:OWEN_SET_DINT;	(*Смещение десятичной точки*)

	cmpl: BOOL; 	(* признак завершения операции 1*)
	err: INT; 		(*номер ошибки 1*)

	Enable:BOOL:=TRUE;

	tempValInt:DINT;
	tempValReal:REAL;



END_VAR


Done:= FALSE;

CASE  paramNum OF
(*Тип датчика*)
0:
	set_di_owen_type(
	Enable:= Enable,
	Addr:= ModuleAddr,
	AddrLen:= A8BIT,
	Name:= 'in-t',
	Index:= ChanelAddr,
	IntType:= UINT_FRM,
	Value:= in_t,
	ComHandle:= Settings^.Port,
	TimeOut:= TimeOut,
	Complete=> cmpl,
	Error=> err);

	(*если установлен признак завершения операции, то *)
	IF Enable = FALSE THEN
		Enable := TRUE;
	END_IF
	(*Если завершен обмен и нет ошибок*)
	IF cmpl THEN
		IF (err=0) THEN
			paramNum:=1;
			cmpl:= FALSE;
		ELSE
			Enable:= FALSE;
		END_IF
	END_IF

(*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)
(*Постоянная времени цифрового фильтра*)
1:
	set_di_owen_Fd(
	Enable:= Enable,
	Addr:= ModuleAddr,
	AddrLen:= A8BIT,
	Name:= 'in.Fd',
	Index:= ChanelAddr,
	IntType:= UINT_FRM,
	Value:= in_Fd,
	ComHandle:= Settings^.Port,
	TimeOut:= TimeOut,
	Complete=> cmpl,
	Error=> err);

	(*если установлен признак завершения операции, то *)
	IF Enable = FALSE THEN
		Enable := TRUE;
	END_IF
	(*Если завершен обмен и нет ошибок*)
	IF cmpl THEN
		IF (err<>0) THEN
			Enable:= FALSE;
		END_IF
	END_IF

	IF cmpl = TRUE AND err=0 THEN
		paramNum:=2;
		cmpl:= FALSE;
	END_IF
(*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)
(*Период опроса датчика*)
2:
	set_fl_owen_Itrl(
	Enable:= Enable,
	Addr:= ModuleAddr,
	AddrLen:= A8BIT,
	Name:= 'Itrl',
	Index:= ChanelAddr,
	RealType:=3, (*FIX_BIN,*)
	Value:= Itrl,
	ComHandle:= Settings^.Port,
	TimeOut:= TimeOut,
	Complete=> cmpl,
	Error=> err);


	(*если установлен признак завершения операции, то *)
	IF Enable = FALSE THEN
		Enable := TRUE;
	END_IF
	(*Если завершен обмен и нет ошибок*)
	IF cmpl THEN
		IF (err<>0) THEN
			Enable:= FALSE;
		END_IF
	END_IF

	IF cmpl = TRUE AND err=0 THEN
		paramNum:=3;
		cmpl:= FALSE;
	END_IF
(*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)
(*Сдвиг характеристики датчика*)
3:
	set_fl_owen_SH(
	Enable:= Enable,
	Addr:= ModuleAddr,
	AddrLen:= A8BIT,
	Name:='in.SH',
	Index:= ChanelAddr,
	RealType:= FIX_BIN,
	Value:= in_SH,
	ComHandle:= Settings^.Port,
	TimeOut:= TimeOut,
	Complete=> cmpl,
	Error=> err);


	(*если установлен признак завершения операции, то *)
	IF Enable = FALSE THEN
		Enable := TRUE;
	END_IF
	(*Если завершен обмен и нет ошибок*)
	IF cmpl THEN
		IF (err<>0) THEN
			Enable:= FALSE;
		END_IF
	END_IF
	IF cmpl = TRUE AND err=0 THEN
		paramNum:=4;	(*paramNum:=4;*)
		cmpl:= FALSE;
	END_IF
(*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)
(*Наклон характеристики датчика*)
4:
	set_fl_owen_SL(
	Enable:= Enable,
	Addr:= ModuleAddr,
	AddrLen:= A8BIT,
	Name:= 'in.SL',
	Index:= ChanelAddr,
	RealType:= 3,	(*FIX_BIN*)
	Value:=in_SL, (*in_SL*)
	ComHandle:= Settings^.Port,
	TimeOut:= TimeOut,
	Complete=> cmpl,
	Error=> err);

	(*если установлен признак завершения операции, то *)
	IF Enable = FALSE THEN
		Enable := TRUE;
	END_IF
	(*Если завершен обмен и нет ошибок*)
	IF cmpl THEN
		IF (err<>0) THEN
			Enable:= FALSE;
		END_IF
	END_IF

	IF cmpl = TRUE AND err=0 THEN
		paramNum:=5;
	cmpl:= FALSE;
	END_IF
(*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)
(*Полоса цифрового фильтра*)
5:
	set_fl_owen_FG(
	Enable:= Enable,
	Addr:= ModuleAddr,
	AddrLen:= A8BIT,
	Name:= 'in.FG',
	Index:= ChanelAddr,
	RealType:= FIX_BIN,
	Value:= in_FG,
	ComHandle:= Settings^.Port,
	TimeOut:= TimeOut,
	Complete=> cmpl,
	Error=> err);


	(*если установлен признак завершения операции, то *)
	IF Enable = FALSE THEN
		Enable := TRUE;
	END_IF
	(*Если завершен обмен и нет ошибок*)
	IF cmpl THEN
		IF (err<>0) THEN
			Enable:= FALSE;
		END_IF
	END_IF

	IF cmpl = TRUE AND err=0 THEN
		paramNum:=6;
		cmpl:= FALSE;
		err:= -1;
	END_IF
(*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)
(*Нижнее значение параметра, измеряемое активным датчиком*)
6:
	set_fl_owen_L(
	Enable:= Enable,
	Addr:= ModuleAddr,
	AddrLen:= A8BIT,
	Name:= 'Ain.L',
	Index:= ChanelAddr,
	RealType:= FIX_BIN,
	Value:= Ain_L,
	ComHandle:= Settings^.Port,
	TimeOut:= TimeOut,
	Complete=> cmpl,
	Error=> err);


	(*если установлен признак завершения операции, то *)
	IF Enable = FALSE THEN
		Enable := TRUE;
	END_IF
	(*Если завершен обмен и нет ошибок*)
	IF cmpl THEN
		IF (err<>0) THEN
			Enable:= FALSE;
		END_IF
	END_IF

	IF cmpl = TRUE AND err=0 THEN
		paramNum:=7;
		cmpl:= FALSE;
		err:= -1;
	END_IF
(*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)
(*Верхнее значение параметра, измеряемое активным датчиком*)
7:
	set_fl_owen_H(
	Enable:= Enable,
	Addr:= ModuleAddr,
	AddrLen:= A8BIT,
	Name:=  'Ain.H',
	Index:= ChanelAddr,
	RealType:= FIX_BIN,
	Value:= Ain_H,
	ComHandle:= Settings^.Port,
	TimeOut:= TimeOut,
	Complete=> cmpl,
	Error=> err);

	(*если установлен признак завершения операции, то *)
	IF Enable = FALSE THEN
		Enable := TRUE;
	END_IF
	(*Если завершен обмен и нет ошибок*)
	IF cmpl THEN
		IF (err<>0) THEN
			Enable:= FALSE;
		END_IF
	END_IF

	IF cmpl = TRUE AND err=0 THEN
		paramNum:=8;
		cmpl:= FALSE;
		err:= -1;
	END_IF
(*--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------*)
(*Смещение десятичной точки*)
8:
	set_di_owen_dP(
	Enable:= Enable,
	Addr:= ModuleAddr,
	AddrLen:= A8BIT,
	Name:= 'dP',
	Index:= ChanelAddr,
	IntType:= UINT_FRM,
	Value:= dP,
	ComHandle:= Settings^.Port,
	TimeOut:= TimeOut,
	Complete=> cmpl,
	Error=> err);


	(*если установлен признак завершения операции, то *)
	IF Enable = FALSE THEN
		Enable := TRUE;
	END_IF
	(*Если завершен обмен и нет ошибок*)
	IF cmpl THEN
		IF (err<>0) THEN
			Enable:= FALSE;
		END_IF
	END_IF

	IF cmpl = TRUE AND err=0 THEN
		paramNum:=9;
	END_IF
ELSE
	(*Если все прошло успешно, снимаем команду на чтение и ставим в очередь на 0*)
	IF paramNum = 9 THEN ReadWriteOwen:= 0; paramNum:= 0; Done:= TRUE;  END_IF;
	;
END_CASE
в RealType пробовал ставить FIX_BIN, FLOAT32, FIX_BCD. Результат не меняется. Может кто-нибудь сталкивался с таким?