技术论坛

200 SMART PLC 对于MODBUS TCP协议,PLC作为服务器,如何提醒客户端请求错误

作者 主题
游民

经验值: 95
发帖数: 13
精华帖: 0
主题:【探讨】200 SMART PLC 对于MODBUS TCP协议,PLC作为服务器,如何提醒客户端请求错误


只看楼主 楼主 2021-05-06 16:51:56

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

至圣

经验值: 17196
发帖数: 2948
精华帖: 6
回复:200 SMART PLC 对于MODBUS TCP协议,PLC作为服务器,如何提醒客户端请求错误


只看楼主 1楼 2021-05-06 18:34:52

 请求码是什么意思,是不是功能码?虽然MODBUS支持多种功能码,但也得PLC程序配合,PLC实际的程序没有支持的功能码,客户发过来的功能码,PLC就是聋子。

向寄存器写入错误的数值,可以判断,错误就不执行写入并返回一个布尔量。


 
以下网友喜欢您的帖子:

  
版主

经验值: 25998
发帖数: 11809
精华帖: 43
回复:200 SMART PLC 对于MODBUS TCP协议,PLC作为服务器,如何提醒客户端请求错误


只看楼主 2楼 2021-05-06 23:22:58

1、标准库不支持的功能码、取值范围,有标准的返回信息。可查阅Modbus文本协议。

2、如果某个寄器值有取值范围限制,对于Modbus并无相应的检查机制,除了在客户端“自律”,PLC端也可以纠错,但是没有相应的返回错误机制。

当然,可以开辟一个寄存器用于记录错误码,上位机读取该寄存器值以判断是否写入有错误。


 
以下网友喜欢您的帖子:

  
游民

经验值: 95
发帖数: 13
精华帖: 0
回复:200 SMART PLC 对于MODBUS TCP协议,PLC作为服务器,如何提醒客户端请求错误


只看楼主 楼主 3楼 2021-05-08 11:18:52

例如:

电脑作为客户端发送代码00 00 00 00 00 06 00 06 00 00 00 02

PLC作为服务器收到代码后,程序判定40001的寄存器不能写入00 02这个数值,PLC程序需要发送代码给客户端,告知客户端00 02代码有错误。

使用200SMART 库中的MODBUS TCP块,PLC作为服务器。能否收到不合理的代码后,转为客户端发送代码到对方电脑。


 
以下网友喜欢您的帖子:

  
版主

经验值: 25998
发帖数: 11809
精华帖: 43
回复:200 SMART PLC 对于MODBUS TCP协议,PLC作为服务器,如何提醒客户端请求错误


只看楼主 4楼 2021-05-08 15:35:07

Modbus就象快递小哥,他只负责把东西送到,把回单传回去。

不负责送的东西是否符合要求。



 
以下网友喜欢您的帖子:

  
  • 上一页
  • 1
  • 下一页
收起
200 SMART PLC 对于MODBUS TCP协议,PLC作为服务器,如何提醒客户端请求错误
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。