HEX_TO_DINT这个指令在4024版本的TC3软件中没有,所以需要转换HEXstr的数值必须自己遍历字符串的每个字符,然后按位乘以16的0次方、1次方、2次方等后累加。
PROGRAM MAIN
VAR
hexStr : STRING := '320'; // 输入的16进制字符串
decValue : DINT := 0; // 累计运算十进制数据
decValueout: DINT; // 存储转换后的十进制数值
i : INT; len : INT; digit : INT;
END_VAR
// 获取字符串长度
len := LEN(hexStr);
// 遍历字符串的每个字符
FOR i := 1 TO len1 DOdecValue := digit* LREAL_TO_DINT(EXPT(16,i-1))+decValue; // 计算十进制值
IF i>=len1 THEN // 输出结果
decValueout:=decValue;
decValue :=0 ;
END_IF // decValueout为800,即 '320' 的十进制表示
2025.1.13 罗晓晨 编辑