签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
200smart做从站,通过4GDTU传输数据,用modbuspoll读取的数据,数据正常,校验码错误,用校验码检查,如图。
通过IOT平台读取数据是02031C3EA59203408EF6843F015A123E584B803E4EF6843E584B8043E3C7BB41FD,校验码是41fd,也不对。
请问专家,smart的modbus库从站的CRC是CRC-16(modbus)算法吗?我该怎么做才能使通讯正常?
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1638978&b_id=64&s_id=0&num=7
如果可以,发源程序来看看?这是第一次发现这么奇葩的问题。
有可能是程序问题、也有可能是当前的库与PLC固件冲突、更有可能是程序的PLC型号与实际的PLC型号不符。
数据帧如下是正确的,用的Modbus Poll测试是正常的。
Tx:-02 03 00 00 00 0E C4 3D
Rx:-02 03 1C 3E A5 92 03 40 8E F6 84 3F 01 5A 12 3E 58 4B 80 3E 4E F6 84 3E 58 4B 80 43 E3 C7 BB F2 7F
项目 1.zip
这个压缩包是从站测试程序,编程软件是V02.05,PLC是SR30,固件是V2.04,MBS库版本是V3.1,没任何错误。
modbus从站.zip
麻烦你指教。你的程序里mb0.0为什么不设置为1呢?始终启用不可以吗
我的plc是st30,固件2.05,mb库是V3.1
我差不多猜到了你的问题所在,你说读短数据没问题,长了就不行了,应该是你的其它程序占用了modbus通信中缓冲区,你可以删除了其它程序试一下,或者你新建个通信程序,一试便知。
按照你的指导,把其他的程序删除测试确实是正常的。我用port0做的从站,连接DTU;用Port1做的主站连接流量计;这两个 有冲突吗?具体怎么解决这个问题呢?
smart 200的情况我不太了解,但是200的两个口好像是不能同时做modbus通信,这是由串口状态字决定的
问题解决了,是因为modbus主站的寄存器地址写的与别的程序有冲突。感谢老师的指导和帮助。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录