签到有奖
消息提醒
运维工程师专区
官方商城
扫码分享好友 任选多种周边
200 SMART PLC与上位机电脑通讯,
通讯协议为 MODBUS TCP,
PLC作为服务器,电脑作为客户端。
如果电脑发送错误的请求码或者向寄存器写入错误的数值,如何向客户端发送错误码。
著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。
帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1694331&b_id=64&s_id=0&num=4
请求码是什么意思,是不是功能码?虽然MODBUS支持多种功能码,但也得PLC程序配合,PLC实际的程序没有支持的功能码,客户发过来的功能码,PLC就是聋子。
向寄存器写入错误的数值,可以判断,错误就不执行写入并返回一个布尔量。
1、标准库不支持的功能码、取值范围,有标准的返回信息。可查阅Modbus文本协议。
2、如果某个寄器值有取值范围限制,对于Modbus并无相应的检查机制,除了在客户端“自律”,PLC端也可以纠错,但是没有相应的返回错误机制。
当然,可以开辟一个寄存器用于记录错误码,上位机读取该寄存器值以判断是否写入有错误。
例如:
电脑作为客户端发送代码00 00 00 00 00 06 00 06 00 00 00 02
PLC作为服务器收到代码后,程序判定40001的寄存器不能写入00 02这个数值,PLC程序需要发送代码给客户端,告知客户端00 02代码有错误。
使用200SMART 库中的MODBUS TCP块,PLC作为服务器。能否收到不合理的代码后,转为客户端发送代码到对方电脑。
Modbus就象快递小哥,他只负责把东西送到,把回单传回去。
不负责送的东西是否符合要求。
分享
扫码分享好友 任选多种好礼
收藏
有帮助
欢迎您访问支持中心!
丰富的视频,全方位的文档,大量的网友交流精华……
为了更好的完善这些内容,我们诚邀您在浏览结束后,花20秒左右的时间,完成一个用户在线调查!
感谢您的支持!
密码至少8位,包含大、小写字母,数字和符号至少三种。
允许邮箱和手机接收来自支持中心网站的信息
我已同意《支持中心网站注册协议和隐私政策》
微信登录扫码一键登录
验证码登录
密码登录
二维码失效点击重试
打开微信扫一扫,快速登录/注册
未注册手机验证后自动登录,注册即代表同意《支持中心网站注册协议和隐私政策》
三日内免验证登录
短信登录
登录