Перестановка байт
Тут два варианта для разных значений Byte Sequence в UMD - height и height_2Код:PROGRAM PLC_PRG VAR ptFl: POINTER TO REAL; ptDw: POINTER TO DWORD; height: REAL; height_2: REAL; SWAP_BYTE_C: DWORD; END_VAR ptDw:=ADR(height_tmp); (*В зависимости от параметра Byte Sequence в UMD нужно использовать или этот вариант*) SWAP_BYTE_C:=(ROL(ptDw^,8) AND 16#FF00FF00) OR (ROR(ptDw^,8) AND 16#00FF00FF); ptFl:=ADR(SWAP_BYTE_C); height:=ptFl^; (*Или этот вариант*) SWAP_BYTE_C:=(ROR(ptDw^,8) AND 16#FF00FF00) OR (ROL(ptDw^,8) AND 16#00FF00FF); ptFl:=ADR(SWAP_BYTE_C); height_2:=ptFl^;
height_tmp - это именованная переменная в слейве ПЛК
Захват-2.png
Результат с Вашим значением
Захват-1.png
Можно код оформить в виде функции




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