技成培训网 技成学习APP 技成工具箱 技成企业服务

欢迎回到技成培训网

技成培训网

电工题库宝典

技成电工课堂

PLC练习题

技成PLC课堂

变频器故障查询

技成PLC学吧

伺服驱动故障查询

技成PLC网校

当前位置:技成首页 > 文章中心 > 技成百科 > 请教用16进制与ASCII转换问题

请教用16进制与ASCII转换问题

刘玉蓉 发布于2014-11-27 17:35 451 0 标签:

请教我想用自由口写MODBUS ASCII通信。
现在遇到的问题是。我用串口助手以ASCII方式向PLC发“010321000001”,PLC收到的是“303130333231303030303031”,请问我如何将PLC收到的16进制消息,转换成串口助手所发的“010321000001”?

问题补充:
我用MOVE指令将收到的303130333231303030303031转换成字符‘30’ ‘31’ ‘30’ ‘33’ ‘32’ ‘31’ ‘30’ ‘30’ ‘30’ ‘30’ ‘30’ ‘30’ ‘31’,然后用CHARS_TO_STRG指令将上述字符转换成字符串,再用ATH指令将字符串转换成16进制。(经测试上述步骤是可以实现。)
请问我这么做是不是太繁琐了?如果直接用收到的303130333231303030303031减30的话,我考虑可能收到41(A)等字母的话会不会出错。

佳答案

1、如果自己编写转换程序非常简单:将“303130333231303030303031”串中的每两位十六进制数(表示一个字符)与十六进制数30做减法,结果就是“010321000001”。
2、也采用系统功能块FC38 :
FC38 STRNG_I:  将字符串转换为整数。
调用方法见:
<S7-300400的系统软件和标准功能>下载:
https://www.ad.siemens.com.cn/download/SearchResult.aspx?searchText=1023

若有收获,就点个赞吧!

文章来源于网络及文献如有侵权请联系站长
分享到:

微信扫一扫分享

阅读与本文标签相同的文章

相关推荐

最新文章 热门文章
最新课程 免费课程
PLC资料下载 电工电气资料下载
应用新秀
变频器故障代码查询APP
伺服故障代码查询APP
技成
手机APP
热门标签