找答案的高端用户(找答案钻石及双钻级别的用户)将尽可能从此问题下的所有回
答中,为您推荐最佳答案。届时您可以根据推荐数采纳答案。
如果自提问时间起7天内您仍无法选出最佳答案,您可以选择“无满意答案”关闭此问
题。
悬赏西币:3 对过期问题进行处理,可以获得系统返还的1分 问题为何被关闭
使用S7-200SMART的modbus库指令读取外部模块地址中的数据,用串口助手和外部设备进行485通讯能得到返回值,使用PLC的modbus指令老是通讯不上。我怀疑是不是寄存器地址写错了。下面分别是模块的寄存器地址和我的modbus指令,我这边的指令是想读0X0A的值。另外指令一直报错8,但是我把485的信号线对调以后还是报错,不过报错的是3。实在是不知道该怎么搞了,请各位帮忙看看。
产品版区:SIMATIC S7-200 SMART
提问时间:2021-01-15 20:39:59 提问者: snky - 新生  第1级
问题ID: 247195
换个外部模块试试
回答者: hhl456- 助理工程师  第8级
2021-01-16 07:21:39
S7-200 或S7-200 SMART的PLC实现modbus通讯的时候,其不能直接读写16进制数据,需要转换为10进制数据,由于是从40001或400001开始,故其地址需要加上40001。如你的0X0A转换为十进制就是40011你需要使用40011才可以。
参考以下链接
modbus rtu
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/020.html
modbus tcp
http://www.ad.siemens.com.cn/productportal/prods/s7-200-smart-portal/200smarttop/smartsms/077.html
回答者: Sykblue- 中级技术员  第6级
2021-01-19 08:29:21
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!