Добрый день, свою проблему решил.
Создал ФБ такого вида -
Код блока -Код 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
Работает как на 2.3 так и на 3.5, точками не занимался они в моем проекте не требуются. На мой взгляд очень простое решение, может кому будет полезно )))Код 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 *)




Ответить с цитированием