Просмотр полной версии : Word to bytes
Доброго времени суток.
Как разложить WORD на BYTE в CODESYS 2.3 ?
w:word;
lo,hi:byte;
lo:=word_to_byte(w);
hi:=word_to_byte(w/256);
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);
Может сталкивался кто с такой задачей?
Евгений Кислов
10.04.2024, 07:21
Добрый день, у меня схожая задача только чуть интереснее. кодесис 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
Евгений Кислов
10.04.2024, 08:04
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"
Евгений Кислов
10.04.2024, 08:27
Приходит строка формата STRING в которой переменная float зашифрованная в НЕХ : 40 А1 0А 4А. (переменная постоянно меняется но в формат 4 байта) блоком OSU.HEX_STR_TO_WORD идея перевести в двоичный код каждый байт и объединить в одну строку формата STRING (функцией CONCAT). ну и дальше получить float переменную в нормальном виде....
но при попытке перевести BYTE в моем случае допустим"1000000"(BYTE) 40 (НЕХ) при переводе в STRING я получаю 40 хотя ожидаю "1000000"
Остальное - не интересно.
См. скриншот. Речь шла об этом?
75088
Да речь шла об этом, Спасибо большое!
Powered by vBulletin® Version 4.2.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot