如何在 Codesys ST 中将十六进制转换为十进制?

问题描述 投票:0回答:1

我使用的是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' 十六进制为 12 月的 '500')

我在 Codesys 中没有看到任何可以执行此操作的函数 你能帮忙吗?

提前谢谢您

function hex decimal codesys
1个回答
0
投票

您无需将 HEX 转换为 DEX,因为没有转换,它是同一组位。这只是代表性问题。您可以将数字视为十六进制或十进制

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

您为

a
b
分配相同的值。但是你写这个值是十六进制或十进制。

© www.soinside.com 2019 - 2024. All rights reserved.