Добрый день, свою проблему решил.
Создал ФБ такого вида -
Код HTML:
(* Конвертация оперативных параметров в масив байт*)
FUNCTION_BLOCK SMI2_OPERATIVE_DATA_TO_ARRAY
VAR_INPUT
sVar: STRING(4); (* Отображаемое значение типа STRING *)
END_VAR
VAR_OUTPUT
END_VAR
VAR
pabyOperativeData: POINTER TO ARRAY [0..3] OF BYTE; (* Указатель присваивает адрес входных переменных, длинна массива 4байта *)
Byte1: BYTE;
Byte2:BYTE;
Byte3:BYTE;
Byte4:BYTE;
END_VAR
Код блока -
Код HTML:
(* Присваиваем значения входных переменных в массив Byte(1-4), для записи его в СМИ2. *)
pabyOperativeData:= ADR(sVar);
Byte1:= pabyOperativeData^[0];
Byte2:= pabyOperativeData^[1];
Byte3:= pabyOperativeData^[2];
Byte4:= pabyOperativeData^[3];
Sword1:=SHL(BYTE_TO_WORD(Byte1),8)+BYTE_TO_WORD(Byte2); (* Sword1 грузим в регистр 29(1D) по modbus 485 *)
Sword2:=SHL(BYTE_TO_WORD(Byte3),8)+BYTE_TO_WORD(Byte4); (* Sword2 грузим в регистр 30(1E) по modbus 485 *)
Работает как на 2.3 так и на 3.5, точками не занимался они в моем проекте не требуются. На мой взгляд очень простое решение, может кому будет полезно )))