张平全
为国出力的时候到了
级别: 家园常客
精华主题: 0
发帖数量: 955 个
工控威望: 965 点
下载积分: 1895 分
在线时间: 466(小时)
注册时间: 2008-04-25
最后登录: 2022-11-19
查看张平全的 主题 / 回贴
楼主  发表于: 2020-12-21 20:36
我们现有用西门子S7-200SMART读取仪表温度数据,仪表面板显示为18度,但是在PLC读取到数据为无符号显示分别为49,56,转为16进制后显示16#31,16#38换为ASCII码分别是“1”,“8”两个字,但我需要的是在一个数据内的数据显示为“18”这个数字,但命令栏中有ASCII转16进制,偏偏没有16进制转10进制的指令,请朋友们帮助指导一下,谢谢
gxtmdb82164
级别: 论坛先锋
精华主题: 0
发帖数量: 660 个
工控威望: 1038 点
下载积分: 131 分
在线时间: 533(小时)
注册时间: 2019-09-22
最后登录: 2024-05-10
查看gxtmdb82164的 主题 / 回贴
1楼  发表于: 2021-01-08 16:01
其实16进制的0x31 0x38就是ASCII编码的'1','8',如果要真正的数字18直接每个字节减去0x30也就是'0'得到的就是对应位上的数字1和8,再加乘起来就对了,但是我印象中记得S7是有ascii直接转数字的指令的,应该可以一条指令搞定,无非是转换完了以后的数字是16进制显示还是10进制显示,比如你这里转完了应该是HEX格式 0x12,那么就是18,这就是个显示问题,而不是转换问题