签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
各位前辈好,我用plc控制激光测距传感器。传感器支持modbus rtu协议。其消息报文里面要求CRC16的低8位在前,高8位在后,如下图所示。
modbus库函数MSG生成的指令中crc校验码是不是与这个不太符合?
我用自由口协议编写程序,通过端口0向传感器发单次测量指令,如果正常的话应该给我返回相应的应答信息,现在传感器什么响应都没有?串口程序如下。
接收中断
烦请前辈们指导一下,万分感谢。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1641596&b_id=3&s_id=0&num=6
既然是modbus rtu协议 ,库函数就支持的,直接使用库函数
先用MODSCAN32与激光测距传感器通讯,如果能正常通讯上,那么使用200SMART的库也一定能通讯得上。
CRC16的低8位在前,高8位在后,这本身就是标准modbus rtu协议的规定。既然200SMART的库符合modbus rtu协议,那么它的CRC16也是低8位在前,高8位在后。
谢谢YUKJ和意孤行两位老师,我用库函数指令写了一个发送单次测量的指令的程序,指令请求格式如下。
程序则为:
下载程序后,传感器无响应,且MSG报错3,查系统手册知Error3是请求超时,从站无响应。请问我是MSG指令用错了吗?
还是给你一点建议:
对于一个新的陌生通讯伙伴---指你的激光测距传感器,不要急于使用PLC直接与它通讯,因为未知因素太多,出了问题比较难处理。前期工作还是要做的。
首先外观检查,下一步激光测距传感器通电,测量串口,两根信号线A对B是2-5V之间,并且A是+,B是-。注意s7-200SMART串口的3脚是+,8脚是-。再下一步MODSCAN32与激光测距传感器通讯,使用USB/RS485通讯线,A对A、B对B连接。如果能正常通讯上,那么下一步使用200SMART的库与激光测距传感器通讯就只有接线也以及程序问题了。注意200SMART串口的3脚是+,对接激光测距传感器的A(+对+).
版主好,我用库函数读模拟量转485modubus数据时也出现error3的msg,使用485串口工具和其它测试软件时都能正常读取,有点和您的情况一样,请问您怎么解决的这个问题?谢谢!
用串口调试软件模拟modbus通讯发送通讯请求报文(当然crc校验码要自己算),然后看激光测距仪有无响应,以此判断问题出现点。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录