MODBUS异常响应

    当客户机设备向服务器设备发送请求时,客户机希望一个正常的响应。从主站询问中出现下面四种可能事件

1. 如果服务器设备接收到无通信错误的请求,并且可以正常地处理询问,那么服务器设备将返回一个正常响应。

2. 如果由于通信错误,服务器没有接收到请求,那么不能返回响应。客户机程序将最终处理请求的超时状态。

3.  如果服务器接收到请求,但是检测到一个通信错误(奇偶校验、LRC、CRC、.....),那么不能返回响应。客户机程序将最终处理请求超时状态。

4. 如果服务器接受到无通信错误的请求,但不能处理这个请求(例如,如果请求读一个不存在的输出或寄存器),服务器将返回一个异常响应,通知用户错误的本质特性。

异常响应报文有两个与正常响应不同的域:

    功能码域: 在正常响应中,服务器利用响应功能码域来应答最初请求的功能码。所有功能码的最高有效位(MSB)都为0(它们的值都低于十六进制80)。在异常响应中,服务器设置功能码的MSB为1。这使得异常响应中的功能码值比正常响应中的功能码值高十六进制80

    数据域: 在正常响应中,服务器可以返回数据域中数据或统计表(请求中要求的任何报文)。在异常响应中,服务器返回数据域中的异常码。这就是定义了产生异常的服务器状态。

MODBUS异常码

代码       名称                  含义

01          非法功能           对于服务器(或从站)来说,询问中接收到的功能码是不可允许的操作。这也许是因为功能码仅仅适用于                                          新设备而在被选单元中是不可实现的。同时,还指出服务器(或从站)在错误状态中处理这种请求。                                                例如: 因为它是未配置的,并且要求返回寄存器值。

02     非法数据地址          对于服务器(或从站)来说,询问中接收到的数据地址是不可允许的地址。特别是,参考号和传输长度的                                         组合是无效的。对于带有100个寄存器的控制器来说,带有偏移量96和长度4的请求会成功,带有偏移量                                            96和长度5的请求将产生异常码02

03       非法数据值            对于服务器(或从站)来说,新闻中包括的值是不可允许的值。这个值知识了组合请求剩余结构中的故障                                      例如:遗憾长度是不正确的。并不意味着,因为MODBUS协议不知道任何特殊寄存器的任何特殊值                                                   的重要意义,寄存器中被提交存储的数据项由一个应用程序期望之外的值

04         从站设备故障        当服务器(或从站)正在设法执行请求的操作时,产生不可重新获得的差错。

05            确认                 与编程命令一起使用,服务器(或从站)已经接受请求,并且正在处理这个请求,但是需要长的持续时间                                         进行这些操作。返回这个响应防止在客户机(或主站) 中发生超时错误。客户机(或从站)可以继续发送                                          轮询程序完成报文来确定是否完成处理。

06      从属设备忙          与编程命令一起使用。服务器(或从站)正在处理长持续时间的程序命令。等服务(或从站)空闲时,用户                                      (或主站)应该稍后重新传输报文。

08     存储奇偶性差错       与功能码20和21以及参考类型6一起使用,指示扩展文件区不能通过一致性校验。                                                                              服务器(或从站)设法读取记录文件,但是在存储器中发现一个奇偶校验错误。                                                                                客户机(或主站)可以重新发送请求,但可以在服务器(或从站)设备上要求服务。

0A     不可用网关路径         与网关一起使用,指示网管不能为处理请求分配输入端至输出口的内部通信路径。童话村那个意味着                                                 网关是错误配置的或过载的。

0B     网关目标设备响应失败      与网关一起使用,指示没有从目标设备中获得响应。通常意味着设备未在网络中。

你可能感兴趣的:(MODBUS)