Я использую язык 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, ты дал мне представление о том, как решить мою проблему. преобразование не требуется. ваше здоровье.

Вы не конвертируете HEX в DEC, потому что преобразования нет, это тот же набор битов. Это всего лишь вопрос представительства. Вы можете увидеть число в формате HEX или DEC.
a := 16#01F4;
b := 500;
Вы присваиваете a и b одинаковое значение, но записываете это значение в HEX или DEC.
Ура, спасибо @Сергей Романов
Либо вы что-то путаете, либо я не могу понять, что вы пытаетесь сделать. Говорить о шестнадцатеричных/десятеричных числах имеет смысл только тогда, когда мы имеем дело со строками. Если у вас есть СЛОВО с каким-то значением, вы уже можете использовать его по своему усмотрению, преобразование не требуется.