Как преобразовать Hex в Dec в Codesys ST?

Я использую язык Codesys V3 ST. Я пишу код для связи с блоком контроллера двигателя, который использует протокол CANOpen. Я хочу использовать необработанные сообщения CAN для связи

Я помещаю байты сообщений CAN-шины в массив. -- myDataFF82 : МАССИВ [0..7] БАЙТОВ; //(входящее сообщение)

Затем я соединил первый байт и второй байт.

raw := UserVarGlobal.myDataFF82[1] ; 
raw1 := UserVarGlobal.myDataFF82[0] ;
raw2 := MEM.PackBytesToWord(byHighByte:=raw1 , byLowByte:=raw); //real message is '01F4' which is Hex

На этом этапе я хочу преобразовать «01F4» в десятичное значение (шестнадцатеричное значение «01F4» равно «500» в декабре)

Я не вижу никакой функции для этого в Codesys. Вы можете помочь?

заранее спасибо

Либо вы что-то путаете, либо я не могу понять, что вы пытаетесь сделать. Говорить о шестнадцатеричных/десятеричных числах имеет смысл только тогда, когда мы имеем дело со строками. Если у вас есть СЛОВО с каким-то значением, вы уже можете использовать его по своему усмотрению, преобразование не требуется.

Guiorgy 06.07.2024 15:01

Спасибо @Guiorgy, ты дал мне представление о том, как решить мою проблему. преобразование не требуется. ваше здоровье.

deepsdog 07.07.2024 08:00
Что такое компоненты React? Введение в компоненты | Типы компонентов
Что такое компоненты React? Введение в компоненты | Типы компонентов
Компонент - это независимый, многократно используемый фрагмент кода, который делит пользовательский интерфейс на более мелкие части. Например, если мы...
0
2
62
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы не конвертируете HEX в DEC, потому что преобразования нет, это тот же набор битов. Это всего лишь вопрос представительства. Вы можете увидеть число в формате HEX или DEC.

a := 16#01F4;
b := 500;

Вы присваиваете a и b одинаковое значение, но записываете это значение в HEX или DEC.

Ура, спасибо @Сергей Романов

deepsdog 09.07.2024 03:43

Другие вопросы по теме

Шестнадцатеричное преобразование в Ascii увеличивает длину в два раза
Странное поведение CountIf() для шестнадцатеричных значений
Как я могу распечатать или суммировать один шестнадцатеричный код большего размера в bash
Странное поведение в C, когда шестнадцатеричное значение (более 0x7f) присваивается (подписанному) символу
Оператор if не выполняется, когда к переменной применяется маска, хотя она должна
Преобразование шестнадцатеричного значения в изображение на C#
Самый эффективный способ преобразования значения шестнадцатеричной строки в Java с форматом
Можно ли разделить такую ​​шестнадцатеричную строку, используя только регулярное выражение?
Преобразование строки C# в шестнадцатеричное представление ее символов в кодировке UTF8
Как вручную преобразовать шестнадцатеричное представление fprintf с плавающей запятой в десятичное