关 闭

新闻中心

EEPW首页 > 工控自动化 > 设计应用 > 现场总线的开关量I/O模块的设计:MODBUS 现场总线技术

现场总线的开关量I/O模块的设计:MODBUS 现场总线技术

作者:时间:2013-05-27来源:网络收藏

2.4 应用层协议

2.4.1 功能码

功能码是MODBUS请求/应答PDU(Protocol Description Unit)的元素。PDU中用一个字节编码MODBUS功能码域,有效的码字范围是十进制1~255,其中128~255为异常相应保留。MODBUS定义了三类功能码:

(1)公共功能码:由Modbus.org确认的,被确切定义并保证唯一的功能码。此类功能码在MBIETFRFC中归档,可进行一致性测试。

(2)用户定义的功能码:十进制区间65~72和100~110为用户可自定义的功能码。在此区间内,用户无需Modbus组织的任何批准就可以选择和实现一个功能码,但不能保证被选功能码的使用是唯一的。用户可启动RFC将改变引入公共分类中,并且指配一个新的功能码。

(3 )保留功能码:某些公司在传统产品上使用的功能码,不作为公共使用。已定义的Modbus公共功能码按其功能可分为数据访问类和异常响应及诊断类两部分。数据访问类功能码实现对输入离散量、线圈的位访问,对寄存器、FIFO队列的16位访问以及对文件记录的读写。诊断类功能码提供了读异常状态、设备标识等功能。表2.5给出了Modbus公共功能码的定义。

2.4.2 MODBUS异常响应

当客户机设备向服务器设备发送请求时,主站的询问可能导致下列四种事件:

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

(2)由于通讯错误,服务器没有接收到请求,那么不能返回响应。客户机程序将视之为超时。

(3)服务器接收到请求,但是检测到一个通信错误(奇偶检验、LRC、CRC等),那么不能返回响应。客户机程序将视之为超时。

(4)服务器接收到无通信错误的请求,但不能处理这个请求(例如,请求读一个不存在的寄存器),服务器将返回一个异常响应,通知客户机错误的实际情况。

异常响应报文时通过功能码域和数据域区别于正常响应。对于功能码域,正常响应的服务器复制原始请求的功能码,即所有功能码的MSB都为0;异常响应的服务器设置功能码的MSB为1,即使得异常响应中的功能码值比正常响应中的功能码值高80H.对于数据域,正常响应的服务器将返回请求中要求的信息;异常响应的服务器返回异常码。客户机通过响应报文中功能码的MSB识别异常响应,并能够检测数据域中的异常码。表2 .6给出了Modbus异常码及其含义。

Modbus异常码及其含义

上一页 1 2 下一页

评论


相关推荐

技术专区

关闭