Доброго времени суток.
Как разложить WORD на BYTE в CODESYS 2.3 ?
Вид для печати
Доброго времени суток.
Как разложить WORD на BYTE в CODESYS 2.3 ?
w:word;
lo,hi:byte;
lo:=word_to_byte(w);
hi:=word_to_byte(w/256);
Добрый день, у меня схожая задача только чуть интереснее. кодесис 3.5. нужно преобразовать число в формате НЕХ в двоичный код, но выходит некорректно. число WORDформат переводится в двоичный код(формулой выше), а при переводе двоичного кода в STRING, чтобы дальнейшие операции совершать (выделить знак и пр) вместо двоичного кода я получаю число WORD в формате STRING, а не byte в формате STRING.
w := OSU.HEX_STR_TO_WORD(HEX_STR,HEX_STR_1);
lo:=word_to_byte(w);
paramtr:= BYTE_TO_STRING(lo);
Может сталкивался кто с такой задачей?
VAR
HEX_STR : STRING;
HEX_STR_1 : STRING;
w:WORD;
lo,hi:byte;
paramtr : STRING;
END_VAR
w := OSU.HEX_STR_TO_WORD(HEX_STR,HEX_STR_1);
lo:=WORD_TO_BYTE(w);
paramtr:= BYTE_TO_STRING(lo);
Вложение 75087
Ну все правильно. Вопрос то в чем?
Приходит строка формата STRING в которой переменная float зашифрованная в НЕХ : 40 А1 0А 4А. (переменная постоянно меняется но в формат 4 байта) блоком OSU.HEX_STR_TO_WORD идея перевести в двоичный код каждый байт и объединить в одну строку формата STRING (функцией CONCAT). ну и дальше получить float переменную в нормальном виде....
но при попытке перевести BYTE в моем случае допустим"1000000"(BYTE) 40 (НЕХ) при переводе в STRING я получаю 40 хотя ожидаю "1000000"
Остальное - не интересно.
См. скриншот. Речь шла об этом?
Вложение 75088