上QQ阅读APP看书,第一时间看更新
1.5.2 Modbus通信的请求与响应
Modbus是一种单主/多从的通信协议,即在同一时间里,总线上只能有一个主机,但可以有一个或多个(最多247个)从机。主机是发起通信的设备,而从机是接收请求并做出响应的设备。在Modbus网络中,通信总由主机发起,而当从机没有收到来自主机的请求时,不会主动发送数据。Modbus通信的请求与响应模型如图1-2所示。
图1-2 Modbus通信的请求与响应模型
主机发送的请求报文包括设备地址、功能码、数据段及差错检测字段。这几个字段的内容与作用介绍如下。
(1)设备地址:被选中的从机地址。
(2)功能码:告知被选中的从机要执行何种功能。
(3)数据段:包含从机所要执行功能的附加信息。如功能码“03”要求从机读保持寄存器并响应保持寄存器的内容,则数据段必须包含要求从机读取保持寄存器的起始地址及数量。
(4)差错检测:为从机提供一种数据校验方法,以保证信息内容的完整性。
从机的响应报文也包含设备地址、功能码、数据段和差错检测字段。其中设备地址为本机地址,数据段则包含从机采集的数据,如寄存器值或状态。正常响应时,响应功能码与请求报文中的功能码相同;发生异常时,功能码将被修改以指出响应报文是错误的。差错检测允许主机确认信息内容是否可用。
在Modbus网络中,主机向从机发送Modbus请求报文的模式有两种:单播模式与广播模式。
(1)单播模式:主机寻址单个从机。主机向某个从机发送请求报文,从机接收并处理完毕后向主机返回一个响应报文。
(2)广播模式:主机向Modbus网络中的所有从机发送请求报文,从机接收并处理完毕后不要求返回响应报文。广播模式请求报文的设备地址为0,且该报文的Modbus功能码为写操作。