MODBUS RTU 转ASCII

我CP 341 用ASCII 和仪表通信 
   我首先用串口调试助手和他通信 
  
在RTU 的情况下 
  
 我用  08 04 00 00 00 04 31 56  能够读取到数据 
08 (8号站号)04(功能码)00 00 (数据起始地址)00 04(4个数据)
31 56 (效验)

但是现在我要用 ACSII 通信 
  我应该 发什么样的指令给仪表???


我今天下午 反复试了一下午 然后质询厂家 
   厂家说 直接发 08 04 00 00 00 04 3156  但是我始终通信不上


还有就是我资料上  说 ASCII 协议是 3A开头  0D 0A 结束 LRC 效验
  我今天好像试了也不行 

 把08 04 00 00 00 04 3156  改成


30 38 30 34 30 30 30 30 30 30 30 34 33 31 35 36 我不记得是否测试了


如果 这样发送 数据的话  是在串口调试软件上 
 按HEX 发送 还是ASCII发送

是否 要加 3A   开头   0D 0A  结束 然后 换成ASCII 的 LRC 效验
  这个方法我好像试也试了 


 有的朋友说  直接在串口调试软件 上选择 ASCII 发送  
 
输入 08 04 00 00 00 0D 31 56 

这个我好像没试 

或者还是 用其他方法
 


问厂家 打了 十几个电话 厂家 最后自己说 自己也不知道

通信口  串口调试 软件 都没问题 

除非仪表本身不支持ASCII 通信  其他 原因可以都排除 

厂家说仪表支持  ASCII

求大家帮忙啊   公司老催回去 
 客户 到是不急  老是改东 改西 一个几十万的项目 陆陆续续来个
2个月了 哎 急啊

最佳答案

一般仪表支持ModbusRTU,从你测试的情况来看,是支持的,ModbusASCII就不一定支持了
这里我想你对CP341的ASCII协议理解错了,它并不是ModbusASCII协议,只是以ASCII字符方式通讯,就相当于S7-200的自由口通讯,也就是自定义协议,我想你是没有买ModbusRTU协议转换插件吧(俗称狗),所以用ASCII协议要自编校验程序,你按ModbusRTU协议来编写就可以了。
以下网友编的Modbus程序你可以参考一下
http://bbs.e10000.cn/a/a.asp?B=302&ID=1136979&p=2&q=1&r=127841

提问者对于答案的评价:
ok

原创文章,作者:more0621,如若转载,请注明出处:https://www.zhaoplc.com/plc297970.html

(1)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2020年10月31日 下午2:07
下一篇 2020年10月31日

相关推荐