工作文件通讯协议说明_第1页
工作文件通讯协议说明_第2页
工作文件通讯协议说明_第3页
工作文件通讯协议说明_第4页
工作文件通讯协议说明_第5页
已阅读5页,还剩122页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、GB/T 前言-串行链路和 TCP/IP 上的 MODBUS 标准介绍该标准包括两个通信规程中使用的 MODBUS 应用层协议和服务规范:串行链的MODBUSMODBUS 串行链路取决于 TIA/EIA 标准:232-F 和 485-A。TCP/IP 上的 MODBUSMODBUS TCP/IP 取决于 IETF 标准:RFC793 和RFC791 有关。串行链路和 TCP/IP 上的 MODBUS 是根据相应 ISO 层模型说明的两个通信规程。下图了该标准的主要部分。绿色方框表示规范。灰色方框表示已有的国际标准(TIA/EIA 和 IETF 标准)。Modbus协议规范45 页MODBUS

2、报文传输在TCP/IP上的实现指南 49 页MODBUS 报文 传输在串行链路上的实现指南 45 页MODBUS 标准分为三部分。第一部分(“Modbus 协议规范”)描述了 MODBUS 事物处理。第二部分(“MODBUS 报文传输在 TCP/IP 上的实现指南”)提供了一个有助于开发者实现 TCP/IP 上的 MODBUS 应用层的参考信息。第三部分(“MODBUS 报文传的 MODBUS输在串行链的实现指南”)提供了一个有助于开发者实现串行链应用层的参考信息。0TIA/EIA-232-FTIA/EIA-485-A以太网物理层串行链路主站/从站以太网 II/802.3 IEEE 802.2

3、IPIETF RFC 791TCPIETF RFC 793在TCP/IP 上的 MODBUSMODBUS 应用层GB/T 第一部分:Modbus 协议1GB/T 第一部分:Modbus 协议1引言1.1 范围MODBUS 是OSI 模型第 7 层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之间提供客户机/服务器通信。自从 1979 年出现工业串行链路的事实标准以来,MODBUS 使成千上万的自动化设备能够通信。目前,继续增加对简单而雅观的 MODBUS 结构支持。互联网组织能够使 TCP/IP 栈上的保留系统端口 502MODBUS。MODBUS 是一个请求/应答协议,并且提供功

4、能码规定的服务。MODBUS 功能码是 MODBUS请求/应答 PDU 的元素。本文件的作用是描述 MODBUS 事务处理框架内使用的功能码。1.2 规范性文件RFC791,互联网协议,Sep81 DARPAMODBUS 协议参考指南 Rev J,MODICON,1996 年 6 月,doc#PI_MBUS_300MODBUS 是一项应用层报文传输协议,用于在通过不同类型的总线或网络连接的设备之间的客户机/服务器通信。目前,使用下列情况实现 MODBUS:以太网上的 TCP/IP。各种(有线:EIA/TIA-232-E、EIA-422、EIA/TIA-485-A;光纤、无线等等)上的异步串行传

5、输。MODBUS PLUS,一种高速令牌传递网络。图 1:MODBUS 通信栈2缩略语ADU应用数据单元2以太网 II/802.3以太网物理层主站/从站EIA/TIA-232 或 EIA/TIA-485MODBUS+/HDL物理层其它其它IPTCP基于TCP 的ModbusMODBUS 应用层GB/T HDLC HMI IETFI/O IP MAC MBMBAP PDU PLCTCP高级数据链路控制人机界面因特网工程工作组输入/输出设备互连网协议介质控制MODBUS 协议MODBUS 协议协议数据单元可编程逻辑控制器传输控制协议3背景概要MODBUS 协议允许在各种网络体系结构内进行简单通信。

6、MODBUS 通信PLIMODBUS ON TCP/IP网关网关网关PLCPLCMODBUS ON MB+HMII/OI/O驱动器I/OI/O驱动器驱动器图 2:MODBUS 网络体系结构的实例每种设备(PLI、控制面板、驱动程序、动作控制、输入/输出设备)都能使用 MODBUS协议来启动操作。在基于串行链路和以太 TCP/IP 网络的MODBUS 上可以进行相同通信。一些网关允许在几种使用 MODBUS 协议的总线或网络之间进行通信。总体描述44.1 协议描述MODBUS 协议定义了一个与基础通信层无关的简单协议数据单元(PDU)。特定总线或网络上的MODBUS 协议能够在应用数据单元(AD

7、U)上引入一些附加域。3MODBUS ON RS485MODBUS ON RS232I/OPLCI/OI/O驱动器GB/T ADUPDU图 3:通用 MODBUS 帧启动MODBUS 事务处理的客户机创建 MODBUS 应用数据单元。功能码向服务器指示将执行哪种操作。MODBUS 协议建立了客户机启动的请求格式。用一个字节编码 MODBUS 数据单元的功能码域。有效的码字范围是十进制 1-255(128-255 为异常响应保留)。当从客户机向服务器设备发送报文时,功能码域通知服务器执行哪种操作。向一些功能码加入能码来定义多项操作。从客户机向服务器设备发送的报文数据域包括附加信息,服务器使用这个

8、信息执行功能码定义的操作。这个域还包括离散项目和寄存器地址、处理的项目数量以及域中的实际数据字节数。在某种请求中,数据域可以是不存在的(0 长度),在此情况下服务器不需要任何附加信息。功能码仅说明操作。如果在一个正确接收的 MODBUS ADU 中,不出现与请求 MODBUS 功能有关的差错,那么服务器至客户机的响应数据域包括请求数据。如果出现与请求 MODBUS 功能有关的差错,那么域包括一个异常码,服务器应用能够使用这个域确定下一个执行的操作。例如,客户机能够读一组离散量输出或输入的开/关状态,或者客户机能够读/写一组寄存器的数据内容。当服务器对客户机响应时,它使用功能码域来指示正常(无差

9、错)响应或者出现某种差错(称为异常响应)。对于一个正常响应来说,服务器仅对原始功能码响应。客户机服务器图 4:MODBUS 事务处理(无差错)对于异常响应,服务器返回一个与原始功能码等同的码,设置该原始功能码的最高有效位为逻辑 1。4操作码数据响应接收响应执行操作启动响应功能码数据请求启动请求地址域功能码数据差错校验GB/T 客户机服务器图 5 MODBUS 事务处理(异常响应)注释:需要管理超时,以便明确地等待可能不会出现的应答。串行链字节)。第一个MODBUS 执行的长度约束限制了MODBUS PDU 大小(最大RS485ADU=256因此,对串行链路通信来说,MODBUS PDU=256

10、-服务器地址(1 字节)-CRC(2 字节)253字节。从而:RS232 / RS485 ADU = 253 字节+服务器地址(1 byte) + CRC (2 字节) = 256 字节。TCP MODBUS ADU = 249 字节+ MBAP (7 字节) = 256 字节。MODBUS 协议定义了三种 PDU。它们是:MODBUS 请求 PDU,mb_req_pdu MODBUS 响应 PDU,mb_rsp_pduMODBUS 异常响应 PDU,mb_excep_rsp_pdu定义mb_req_pdu 为:mb_req_pdu = function_code, request_data,

11、其中 function_code - 1 个字节 MODBUS 功能码request_data - n 个字节,这个域与功能码有关,并且通常包括诸如可变参考、变量、数据偏移量、能码等信息。定义mb_rsp_pdu 为:mb_rsp_pdu = function_code, response_ data,其中 function_code - 1 个字节 MODBUS 功能码response_data - n 个字节,这个域与功能码有关,并且通常包括诸如可变参考、变量、数据偏移量、能码等信息。定义mb_excep_rsp_pdu 为:mb_excep_rsp_pdu = function_code

12、, request_data,其中 function_code - 1 个字节 MODBUS 功能码 + 0 x80 exception_code - 1 个字节,在下表中定义了 MODBUS 异常码。4.2 数据编码MODBUS 使用一个big-Endian 表示地址和数据项。这意味着当发射多个字节时,首先发送最高有效位。例如:寄存器大小值5差错码异常码接收响应在操作中检测的差错启动差错功能码数据请求启动请求GB/T 16 比特0 x1234发送的第一字节为0 x12然后 0 x34注释:更详细的信息参见1。4.3 MODBUS 数据模型MODBUS 以一系列具有不同特征表格上的数据模型为基

13、础。四个基本表格为:输入与输出之间以及比特寻址的和字寻址的数据项之间的区别并没有暗示任何应用操作。如果这是对可疑对象部分最自然的解释,那么这种区别是可完全接受的,而且很普通,以便认为四个表格全部覆盖了另外一个表格。对于基本表格中任何一项,协议都允许单个地选择 65536 个数据项,而且设计那些项的读写操作可以越过多个连续数据项直到数据大小规格限制,这个数据大小规格限制与事务处理功能码有关。很显然,必须将通过 MODBUS 处理的所有数据放置在设备应用器中。但是,器的物理地址不应该与数据参考。要求仅仅是数据参考与物理地址的。MODBUS 功能码中使用的 MODBUS 逻辑参考数字是以 0 开始的

14、无符号整数索引。MODBUS 模型实现的实例下例实例示出了两种在设备中构造数据的方法。可能有不同的结构,这个文件中没有全部描述出来。每个设备根据其应用都有它自己的数据结构。实例 1:有 4 个独立块的设备下例实例示出了设备中的数据结构,这个设备含有数字量和模拟量、输入量和输出量。由于不同块中的数据不相关,每个块是相互独立。按不同 MODBUS 功能码每个块。6基本表格对象类型类型内容离散量输入单个比特只读I/O 系统提供这种类型数据线圈单个比特读写通过应用程序改变这种类型数据输入寄存器16-比特字只读I/O 系统提供这种类型数据保持寄存器16-比特字读写通过应用程序改变这种类型数据GB/T M

15、ODBUS 请求图 6:带有独立块的 MODBUS 数据模型实例 2:仅有 1 个块的设备在这个实例中,设备仅有 1 个数据块。通过几个 MODBUS 功能码可能得到一个相同数据,或者通过 16 比特或 1 个比特。MODBUS 请求图 7:仅带有 1 个块的 MODBUS 数据模型4.4 MODBUS 事务处理的定义下列状态图描述了在服务器侧 MODBUS 事务处理的一般处理过程。7设备应用器MODBUS输入离散量RW线圈R输入寄存器W保存寄存器MODBUS 服务器设备设备应用器MODBUSMODBUS 服务器设备输入离散量线圈输入寄存器保存寄存器GB/T 等待MB 指示发送 Modbus异

16、常响应图 8:MODBUS 事务处理的状态图一旦服务器处理请求,使用合适的 MODBUS 服务器事务建立 MODBUS 响应。根据处理结果,可以建立两种类型响应:一个正 MODBUS 响应:响应功能码 = 请求功能码一个 MODBUS 异常响应(参见第 6.14 节):5功能码分类用来为客户机提供处理过程中与被发现的差错相关的信息;响应功能码 = 请求功能码 + 0 x80;提供一个异常码来指示差错原因。有三类 MODBUS 功能码。它们是:公共功能码是较好地被定义的功能码,保证是唯一的,MODBUS 组织可改变的,公开证明的,具有可用的一致性测试,MB IETF RFC 中证明的,8异常码_

17、异常码_异常码_异常码_4_接收MB 指示确认操作码无效的1有效的确认数据地址无效的2有效的确认数据值3无效的有效的执行MB 操作 无效的5_6有效的发送 Modbus响应GB/T 包含已被定义的公共指配功能码和未来使用的未指配保留供功能码。用户定义功能码有两个用户定义功能码的定义范围,即 65 至 72 和十进制 100 至 110。用户没有MODBUS 组织的任何批准就可以选择不能保证被选功能码的使用是唯一的。一个功能码如果用户要重新设置功能作为一个公共功能码,那么用户必须启动 RFC,以便将改变引入公共分类中,并且指配一个新的公共功能码。保留功能码一些公司对传统产品通常使用的功能码,并且

18、对公共使用是无效的功能码。12711010072651图 9:MODBUS 功能码分类9公共功能码用户定义功能码公共功能码用户定义功能码公共功能码GB/T 5.1公共功能码定义6功能码描述6.1 01 (0 x01)读线圈在一个设备中,使用该功能码线圈的 1 至 2000 连续状态。请求 PDU 详细说明了起始。从零开始寻址线圈。因此寻址线圈 1-16 为 0-15。地址,即指定的第一个线圈地址和线圈根据数据域的每个比特将响应报文中的线圈分成为一个线圈。指示状态为 1= ON 和 0= OFF。第一个数据字节的 LSB(最低有效位)包括在询问中寻址的输出。其它线圈依次类推,一直到这个字节的端为

19、止,并在后续字节中从低位到的顺序。如果返回的输出数量不是八的倍数,将用零填充最后数据字节中的剩余比特(一直到字节的高位端)。字节数量域说明了数据的完整字节数。请求 PDU响应 PDU10功能码1 个字节0 x01字节数1 个字节N*线圈状态N 个字节nN 或 N+1功能码1 个字节0 x01起始地址2 个字节0 x0000 至 0 x线圈数量2 个字节1 至 2000(0 x7D0)功能码码子码(十六进制)页数据访问比特物理离散量输入读输入离散量020211比特或物理线圈读线圈010110写单个线圈050516写多个线圈150F3716 比特访问输入器读输入寄存器040414器或物理输出器读多

20、个寄存器030313写单个寄存器060617写多个寄存器161039读/ 写多个寄存器231747写寄存器22文件读文件写文件2161544封装接口读设备识别码43142BGB/T *N输出数量/8,如果余数不等于 0,那么N = N+1错误这是一个请求读离散量输出 20-38 的实例:将输出 27-20 的状态表示为十六进制字节值 CD,或二进制 1100 1101。输出 27 是这个字节的MSB,输出 20 是 LSB。通常,将一个字节内的比特表示为 MSB 位于左侧,LSB 位于右侧。第一字节的输出从左至右为 27 至 20。下一个字节的输出从左到右为 35 至 28。当串行发射比特时,

21、从 LSB 向MSB 传输:20 . . . 27、28 . . . 35 等等。在最后的数据字节中,将输出状态 38-36 表示为十六进制字节值 05,或二进制 0000 0101。输出38 是左侧第六个比特位置,输出 36 是这个字节的 LSB。用零填充五个剩余比特。注:用零填充五个剩余比特(一直到端)。11请求响应(十六进制)(十六进制)功能起始地址 Hi起始地址 Lo输出数量 Hi输出数量 Lo01功能字节数输出状态 27-20输出状态 35-28输出状态 38-3601000313CD006B1305功能码1 个字节功能码0 x80异常码1 个字节01 或 02 或 03 或 04G

22、B/T ! A8NOWX.kGlYESNOYESD-RS?OK3D-RS+fQ/t?OKNOYESNOpqfQ?OKYESaQP 10$NORSP6.2 02 (0 x02)MTUVWX56+),- kGlpqtf8. 1 - 2000 +L(Afg PDU OPJKgx&RD-RS)Pm.wx&f8RS3f8AoE#-WSf8A6yWSf8 1-16 u 0-15AEF/FQ.C&K7g/cd+.pqtf8VBux&f8AP(u 1= ON 3 0= OFFAwx&/Fab. LSBa1FBc2b#$gGe+WS.f8A.*f8HI0J)xpqn&ab.buK)igMLab+oF2q.LEA

23、./.f8/t.DM.N/)-EOP1M/Fab+.QRK7axpqab.(2bbAab/tQJKR/F.bab/A12$i mb_exception_rsp$i mb_rsp&fl?04fgt&fl?02&fl?030 x0001fQ/t0 x07D0&fl?01,mb_req_pduGB/T 请求 PDU响应 PDU*N输出数量/8,如果余数不等于 0,那么N = N+1错误这是一个请求离散量输入 197-218 的实例:将离散量输入状态 204-197 表示为十六进制字节值 AC,或二进制 1010 1100。输入 204 是这个字节的 MSB,输入 197 是这个字节的 LSB。将离散

24、量输入状态 218-213 表示为十六进制字节值 35,或二进制 0011 0101。输入 218 位于左侧第 3 比特,输入 213 是LSB。注:用零填充 2 个剩余比特(一直到端)。13请求响应(十六进制)(十六进制)功能起始地址 Hi起始地址 Lo输出数量 Hi输出数量 Lo02功能字节数输入状态 204-197输入状态 212-205输入状态 218-213020003C4AC00DB1635差错码1 字节0 x82异常码1 字节01 或 02 或 03 或 04功能码1 个字节0 x82字节数1 个字节N*输入状态N*1 个字节功能码1 个字节0 x02起始地址2 个字节0 x00

25、00 至 0 x输入数量2 个字节1 至 2000(0 x7D0)GB/T ! A8NOWX.kGlYESNO0 x0001f8/t0 x07D0YESD-RS?OK3D-RS+f8/t?OKNOYESNOpqf8?OKYESaQ 11#QRSTUV-JK6.3 03 (0 x03)MYZgx&56+),- kGlXrs+L%.t*Afg PDU JKRD-rsRS3rs/tAoE#-WSrsA6y)WSrs 1-16 u 0-15Ag/cd+.rs/FVBC&rsB%ab)gC&ab+p,ROA2t*AOC&rs)wx&ab#ij2K7)ijw&ab#$F2K7A14kGl1 &ab0 x0

26、3D-RS2 &ab0 x0000 - 0 xrs/t2 &ab1 - 125a0 x7Db$i mb_exception_rsp$i mb_rsp&fl?04fgt&fl?02&fl?03&fl?01,mb_req_pduGB/T ! kl*N?rs./tmnnDx&fg&rs 108-110 .h%7rs 108 .t*u%&eSA2abJ 02 2B)3eA2 555Ars 109-110 .t*VYueSA2 00 00 3 00 64)3eA2 0 3 100A15fgg/aeSA2baeSA2bkG (D-RS FD-RS(rsFrs03kGab/rsJ Hia108b rsJ L

27、oa108b rsJ Hia109b rsJ Loa109b rsJ Hia110b rsJ Loa110b0300066B02002B0300000064TUl1 &ab0 x83&fl1 &ab01 3 02 3 03 3 04kGl1 &ab0 x03ab/1 &ab2bN*rsJN*b2 &abGB/T ! A8NOWX.kGlYESNO0 x0001rs/t0 x007DYESD-RS?OK3D-RS+rs/t?OKNOYESNO&m&rs?OKYESaQ 12#QWXYZ-JK6.4 04(0 x04)MWX56+),- kGl1 -=: 125 .+Lf8rsAfg PDU JK

28、RD-gx&RS3rs/tAoE#-WSrsA6y)WSf8rs 1-16 u 0-15Ag/cd+.rs/FVBC&rsu%ab)gC&ab+p,ROA2t*AOC&rs)wx&ab#2K7)ijw&ab#$F2K7Aij16kGl1 &ab0 x04D-RS2 &ab0 x0000 - 0 xf8rs/t2 &ab0 x0001 - 0 x007D$i mb_exception_rsp$i mb_rsp&fl?04fgt&fl?02&fl?03&fl?01,mb_req_pduGB/T ! kl*N?f8rs./tmnnDx&fg&f8rs 9 .h%7f8rs 9 .t*u%&eSA2a

29、bJ 00 0A)3eA2 10A17fgg/aeSA2baeSA2bkGD-RS HiD-RS Lof8rs/t Hif8rs/t Lo04kGab/f8rs 9 Hif8rs 9 Lo0400020800000A01TUl1 &ab0 x84&fl1 &ab01 3 02 3 03 3 04kGl1 &ab0 x04ab/1 &ab2bN*f8rsN*b2 &abGB/T ! A8NOWX.kGlYESNO0 x0001rs./t0 x007DYESD-RS?OK3D-RS+rs/t?OKNOYESNO&f8rs?OKYESaQ 13#QUVYZ-JK6.5 05 (0 x05)_NOgx

30、&56=),- kGl)Q&fQu ON 3 OFFAfg/FQ+.ftJKfg. ON/OFF (AeSA2J FF 00 fgfQu ONAeSA2J00 00 fgfQu OFFA.*uBJcD.)ijOfQ.Dr-Afg PDU JKRN2.2(RSAoE#-WS2(A6y)WS2( 1 u 0A2(JQ.f tJKfg. ON/OFF (AeSA2J 0XFF00 fg2(u ONAeSA2J 0X0000 fg2(uOFFA.*uBJcu.)ijO2(.Dr-A fg/Dfg./h)g)82(7M./n& fg/A18$i mb_exception_rsp$i mb_rsp&fl?

31、04fgt&fl?02&fl?03&fl?01,mb_req_pduGB/T ! ijklmnnDx&fg)2( 173 u ON .h%719fgg/aeSA2baeSA2bkG fQRS Hi fQRS Lo fQJ Hi fQJ Lo05kG fQRS Hi fQRS Lo050000ACACFfQJ Lo0000TUl1 &ab0 x85&fl1 &ab01 3 02 3 03 3 04kGl1 &ab0 x05fQRS2 &ab0 x0000 - 0 xfQJ2 &ab0 x0000 - 0 xFF00kGl1 &ab0 x05fQRS2 &ab0 x0000 - 0 xfQJ2 &

32、ab0 x0000 - 0 x00GB/T ! A8NOWX.kGlYESNOfQJ?0 x0000 3 0 xFF00YESNOfQRS?OKYESNO)Q&fQ?OKYESaQ 14#IUJK6.6 06 (0 x06)_gx&56+),- kGl)Q&XrsAfg PDU JKR0)8rs.RSAoE#-WSrsA6y)WSrs 1 u 0A fg/Dfg./h)g)8rst*7M./n& fg/Aij20kGl1 &ab0 x06rsRS2 &ab0 x0000 - 0 xrsJ2 &ab0 x0000 - 0 x$i mb_exception_rsp$i mb_rsp&fl?04fg

33、t&fl?02&fl?03&fl?01,mb_req_pduGB/T ! klmnnDx&fgeSA2 00 03 )8rs 2 .h%721fgg/aeSA2baeSA2bkG rsRS Hi rsRS Lo rsJ Hi rsJ Lo06kG fQRS Hi fQRS Lo fQJ Hi fQJ Lo060000010100000303TUl1 &ab0 x86&fl1 &ab01 3 02 3 03 3 04kGl1 &ab0 x06rsRS2 &ab0 x0000 - 0 xrsJ2 &ab0 x0000 - 0 xGB/T ! A8NOWX.kGlYESNO0 x0000rsJ0 x

34、YESNOrsRS?OKYESNO)Q&rsy1zfgG/fQuONAQK720+.=y0zfgG/fQu OFFA fg/./kGl D-RS3N2.2(/tA22$i mb_exception_rsp$i mb_rsp&fl?04fgt&fl?02&fl?03&fl?01,mb_req_pduGB/T ! ij PDU*N?fQ/t/8)R/.% 0)#$N = N+1kl PDUmnnDx&fgo2( 20 #-)8 10 &2(.h%7fg./Ft*u%&ab7eSA2 CD 01 (A2 1100 1101 0000 0001)A,-LyY )A2K7O/fQAop111001101

35、00000001Lq127262524232221202928ef.wxab(eSA2 CD)WSufQ 27-20)gn50+)1FBcK7WSu1Ff Qa20bAef.Lxab(eSA2 01)WSufQ 29-28)gn50+)1FBcK7WSu1FfQa28bA/ -EOP1M/Fab+.;,-K7A23fgg/aeSA2baeSA2bkGD-RS HiD-RS LofQ/t Hi fQ/t Lo ab/ fQJ Hi fQJ Lo0FkGD-RS HiD-RS LofQ/t HifQ/t Lo0F0000131300000A0A02CD01TUl1 &ab0 x8F&fl1 &ab

36、01 3 02 3 03 3 04kGl1 &ab0 x0FD-RS2 &ab0 x0000 - 0 xfQ/t2 &ab0 x0001 - 0 x07B0kGl1 &ab0 x0FD-RS2 &ab0 x0000 - 0 xfQ/t2 &ab0 x0001 - 0 x07B0ab/1 &abN*fQJN*b1 &abGB/T ! A8*N=fQ/t/8)R/.% 0)#$ N=N+1NOWX.kGlYES0 x0001fQ/t0 x07B03ab/?N*NOYESD-RS?OK3D-RS+fQ/t?OKNOYESNO)m&fQ?OKYESaQ 16#_IU-JK6.8 16 (0 x10)a

37、gx&56+),- kGl)+Lrs%(1 -: 120 &rs)A gfg/FQ+JKRfg)8.JAC&rs/FVB%abA fg/./kGl D-RS30)8rs./tA24$i mb_exception_rsp$i mb_rsp&fl?04fgt&fl?02&fl?03&fl?01,mb_req_pduGB/T ! ij PDU*N?rs/tkl PDUmnnDx&fgeSA2 00 0A 3 01 02 )8p 2 #-.%&rs.h%725fgg/aeSA2baeSA2bkGD-RS HiD-RS Lors/t Hi rs/t Lo ab/ rsJ Hi rsJ Lo rsJ Hi

38、 rsJ Lo10kGD-RS HiD-RS Lors/t Hirs/t Lo10000001010000020204000A0102TUl1 &ab0 x90&fl1 &ab01 3 02 3 03 3 04kGl1 &ab0 x10D-RS2 &ab0 x0000 - 0 xrs/t2 &ab1 - 123a0 x7BbkGl1 &ab0 x10D-RS2 &ab0 x0000 - 0 xrs/t2 &ab0 x0001 - 0 x0078ab/1 &ab2bN*rsJN*b2 &abJGB/T ! A8NOWX.kGlYES0 x0001rs/t0 x007B3ab/?rs/ x2NOY

39、ESNOe-RS?OK3e-RS+rs/t?OKYESNO)m&rs?OKYESaQ 17#_IYZJK6.9 20 (0 x14)M./,- kGlA:dqAEFab/t !uBfg/Fwx)ijEFrs !uBwxAdqD.UVAC&dq#$ 10000 &)WSnJueA2 0000 - 9999 3eSA2 0X0000 - 0X270F)%WS12 u 12A kG;pm&AnJ;pDVq.(.+L.)xC+.&stD+L.A-B 7 &ab.&ylfgzQmLC&7&0I71 &ab(st)mu 6)dq|72 &ab26$i mb_exception_rsp$i mb_rsp&f

40、l?04fgt&fl?02&fl?03&fl?01,mb_req_pduGB/T ! dq+.D-|72 &ab0&Q.wx72 &ab0.rs/tx MODBUS cd?.wx7256 &ab)n&rs/tMfgg/+.uB.*Q-A fg/Dxyylg/z)MylfgzxxO/Aab/QDuBylg/z+.cU-ab/Ajk)C&ylg/zF#$x&=hab/.QAij PDUkl PDUmnnDx&fgo56%&.h%7 1 #$dq 4 +. 2 &rs)prs 1 #-aRS 0001bA 2 #$dq 3 +. 2 &rs)prs 9 #-aRS 0009bA27fgg/aeSA2

41、baeSA2bkGab/lfg 1)&0I lfg 1)dq| Hi lfg 1)dq| Lo lfg 1) | Hilfg 1)| Lolfg 1)wx Hilfg 1)wx Lolfg 2)&0I14kGg/Fwxlfg 1)dqg/wx lfg 1)&0I lfg 1)/F Hilfg 1)/F Lolfg 1)/F Hilfg 1)/F Lo lfg 2)dqg/wx lfg 2)&0I140C0E06050006040D00FE0100002002050606TUl1 &ab0 x94&fl1 &ab01 3 02 3 03 3 04 3 08kGl1 &ab0 x14g/Fwx1

42、&ab0 x07 - 0 xF5lfg x)dqg/wx1 &ab0 x07 - 0 xF5lfg x)&0I1 &ab6lfg x)/FNb2 &ablfg x+1,ikGl1 &ab0 x14ab/1 &ab0 x07 - 0 xF5 ablfg x)&0I1 &ab06lfg x)dq|2 &ab0 x0000 - 0 xlfg x)|2 &ab0 x0000 - 0 x270Flfg x)wx2 &abNlfg x+1,iGB/T ! A8NOWX.kGl OC&lfgYES0 x07ab/0 xF5YES&0I?OK3dq|?OK 3D-RS?OK3D-RS+rs/?OKNONO Y

43、ESNO&-&?OKYESaQr 181stuxyr6.9.1 21 (0 x15) ./,- kGlA:dq)8AEFab/t !uBfg/Fwx)ijEF 16 K7a.28$i mb_exception_rsp$i mb_rsp&fl?04fgt&fl?02&fl?03&fl?01,mb_req_pdulfg 2)dq| Hi lfg 2)dq| Lo lfg 2) | Hilfg 2) | Lolfg 2) wx Hilfg 2) wx Lo00lfg 2)/F Hilfg 2)/F Lolfg 2)/F Hilfg 2)/F Lo3303CD000009400002GB/T ! /t

44、 !uBwxAdqD.UVAC&dq#$ 10000 &)WSnJueA2 0000 - 9999 3eSA2 0X0000 - 0X270F)%WS12 u 12A kG;p)m&AnJ;pDVq.).+L.)xCt.&stD+L.A-B 7 &ab3/F.&ylfgzQmLC&7&0I71 &ab(st)mu 6)dq|72 &abdq+.D-|72 &ab0)8.wx72 &ab0)8./F7C&rsu 2 abAx MODBUS cd?.wx7256 &ab)n&rs/tMGe0)8.rs/t+.uB.*Q-A fg/Dfg./hAij PDUkl PDUmnnDx&fgx&)856.

45、h%729TUl1 &ab0 x95&fl1 &ab01 3 02 3 03 3 04 3 08kGl1 &ab0 x15g/Fwx1 &ablfg x)&0I1 &ab06lfg x)dq|2 &ab0 x0000 - 0 xlfg x)|2 &ab0 x0000 - 0 xlfg x)wx2 &ab0 x0000 - 0 xNlfg x)/FNb2 &ablfg x+1,ikGl1 &ab0 x14fg/Fwx1 &ab0 x07 - 0 xF5lfg x)&0I1 &ab06lfg x)dq|2 &ab0 x0000 - 0 xlfg x)|2 &ab0 x0000 - 0 x270Fl

46、fg x)wx2 abNlfg x)/FNb2 &ablfg x+1,iGB/T ! #$dq 4 +. 3 &rs)prs 7 #-aRS 0007bA30fgg/aeSA2baeSA2bkG fg/Fwx lfg 1)&0I lfg 1)dq| Hilfg 1)dq| Lolfg 1)| Hilfg 1)| Lolfg 1)wx Hilfg 1)wx Lolfg 1)/F Hilfg 1)/F Lolfg 1)/F Hilfg 1)/F Lolfg 1)/F Hilfg 1)rs/F Lo15kG150Dfg/Fwx lfg 1)&0I lfg 1)dq| Hi lfg 1)dq| Lo

47、lfg 1)| Hilfg 1)| Lolfg 1)wx Hilfg 1)wx Lolfg 1)/F Hilfg 1)/F Lolfg 1)/F Hilfg 1)/F Lolfg 1)/F Hilfg 1)rs/F Lo0D06060000040400000707000003030606AFAF0404BEBE10100D0DGB/T ! A8NOWX.kGlYES0 x07ab/0 xF5YES&0I?OK3dq|?OK 3D-RS?OK3D-RS+rs/?OK OC&lfgNONO YESNO)8-&?OKYESaQ 19#aJK6.10 22 (0 x16)YZ kGl-xk- AND

48、ORpurst*.-AlV7mXrs.t*A,-n&kG503mnrs+.Q&K7AfgJKR0)8.Xrs AND,-./Fpu OR,-./FAo 0 #-WSrsA6y)WSrs 1-16 u 0-15AkG.o u7U= (hJt* AND And_Mask) OR (Or_Mask AND And_Mask)%731$i mb_exception_rsp$i mb_rsp&fl?04fgt&fl?02&fl?03&fl?01 ANDaMbA And_Mask JuE)U% Or_Mask JA;p,-&XrskGakGl 03b&Qrs.t*AD)h12*Ej)rM;pVBrs.t*

49、A f.g/Dfg./hAgs)8rs7M)./g/Aij PDUkl PDUmnnDx&k-=|Jg56+Ors 5 .)8h%A32fgg/aeSA2baeSA2bkG &RS Hi &RS Lo And_Mask HiAnd_Mask Or_Mask HiOr_Mask16kG &RS Hi &RSAnd_Mask Hi And_Mask Or_Mask HiOr_Mask16000004040000F2F200002525TUl1 &ab0 x96&fl1 &ab01 3 02 3 03 3 04kGl1 &ab0 x16&RS2 &ab0 x0000 - 0 xAnd_Mask2 &

50、ab0 x0000 - 0 xOr_Mask2 &ab0 x0000 - 0 xkGl1 &ab0 x16&RS2 &ab0 x0000 - 0 xAnd_Mask2 &ab0 x0000 - 0 xOr_Mask2 &ab0 x0000 - 0 xGB/T ! A8NOWX.kGlYESNO&RS?OKYESNOAnd_Mask?OK3Or_Mask?OKYESNO)rs?OKYESaQ 20#WXYZJK6.11 23 (0 x17) Q/_IYZgx&Q& MODBUS 5+)n&kGlhiRx&Ir3x&)Ir.-AoE#-WSXrsA6y)WSXrs 1-16 u 0-15AfgJK

51、RD-RS 0.Xrs|3D-RS Xrs|pu0)8./FAg)/FQ+)ab/JKrM.ab|A fg/#$0&Q.rs./FAg&/FQ+)ab/QJKrM.ab/tAij PDU33kGl1 &ab0 x17&D-RS2 &ab0 x0000 - 0 x$i mb_exception_rsp$i mb_rsp&fl?04fgt&fl?02&fl?03&fl?01) qmb_req_pduGB/T ! *N?)./tkl PDU*N?&./tmnnDx&fgors 4 #-&S&rsijors 15 #-&v&rs.h%734fgg/aeSA2baeSA2bkG&D-RS Hi&D-RS

52、 Lo&./t Hi&./t Lo)D-RS Hi)D-RS Lo)./t Hi)./t Lo)ab/)rsJ Hi)rsJ Lo)rsJ Hi)rsJ Lo)rsJ Hi)rsJ Lo17kGab/ &rsJ Hi &rsJ Lo &rsJ Hi &rsJ Lo&rsJ Hi &rsJ Lo &rsJ Hi &rsJ Lo &rsJ Hi &rsJ Lo &rsJ Hi &rsJ Lo17000C030000FE060A00CD0E000001030006030000FF0D0000FFFF00FFTUl1 &ab0 x97&fl1 &ab01 3 02 3 03 3 04kGl1 &ab0

53、 x17ab/1 &ab2bN*&rsJN*b2 &ab&./t2 &ab0 x0001 -tu 0 x0076)D-RS2 &ab0 x0000 - 0 x)./t2 &ab0 x0001 -tu 0 x0076)ab/1 &ab2bN*)rsJN*b2 &abGB/T ! A8NOWX.kGlYES0 x0001&./t0 x007D30 x0001)./t0 x00793ab/?)./t x2NOYES&D-RS?OK3&D-RS+&./t?OK3)D-RS?OK3)D-RS+)./t?OKNOYESNO&/)m&rs?OKYESaQ 21#Q/_IYZJK35$i mb_excepti

54、on_rsp$i mb_rsp&fl?04fgt&fl?02&fl?03&fl?01,mb_req_pduGB/T 6.12 43 (0 x2B)读设备识别码这个功能码允许与设备的物理描述和功能描述相关的识别码和附加报文。将读设备识别码接口模拟为一个地址空间,这个地址空间由一组可寻址数据元素组成。数据元素是被叫对象,并且对象 Id 确定这个数据元素。接口由 3 种对象组成:基本设备识别码。所有此种对象都是必备的:厂商名称、产品代码和修订本号。正常设备识别码。除基本数据对象以外,设备提供了附加的和可选择的识别码以及数据对象描述。按标准定义所有种类的对象,但是这种对象的执行是可选的。扩展设备识别码

55、。除正常数据对象以外,设备提供了附加的和可选的识别码以及描述。所有这些数据都是与设备有关的。数据请求 PDU响应 PDU36功能码1 个字节0 x2BMEI 类型1 个字节0 x0EReadDevId 代码1 个字节01/02/03/04一致性等级1 个字节随后1 个字节00/FF下一个对象 Id1 个字节对象 ID 号对象号1 个字节对象 ID 的列表1 个字节对象长度1 个字节对象值1 个字节功能码1 个字节0 x2BMEI 类型1 个字节0 x0EReadDevId 码1 个字节01/02/03/04对象 id1 个字节0 x00 至 0 xFF对象 Id对象名称/描述类型M/O种类0

56、x00厂商名称ASCII 字符串强制的基本0 x01产品代码ASCII 字符串强制的0 x02主要修订本ASCII 字符串强制的0 x03VendorUrlASCII 字符串可选的规则0 x04产品名称ASCII 字符串可选的0 x05模式名称ASCII 字符串可选的0 x06用户应用名称ASCII 字符串可选的0 x070 x7F保留可选的0 x800 xFF可选择地定义对象范围0 x800 xFF与产品有关相关设备可选的扩展GB/T 错误请求参数描述:指配号为 14 的MODBUS 封装接口识别读识别码请求。定义四种类型:01:请求获得基本设备识别码(流02:请求获得正常设备识别码(流03

57、:请求获得扩展设备识别码(流04:请求获得特定识别码对象()在识别码数据不适合单独响应的情况下,可以需要几个请求/响应事务处理。对象 id 字节给出了获得的第一个对象识别码。对于第一个事物处理来说,客户机必须设置对象 id 为 0,以便获得设备识别码数据的开始。对于下列事务来说,客户机必须设置对象 id 为前面响应中服务器的返回值。如果对象 id 不符合任何已知对象,那么服务器象指象 0 那样响应(从头开始)。在单个的情况下:ReadDevId 代码 04,请求中的对象 id 给出了获得的对象识别码。如果对象 id 不符合任何已知对象,那么服务器返回一个异常码02(应。数据地址)的异常响响应参

58、数描述:功能码:MEI 类型: ReadDevId 码:一致性等级:功能码 43(十进制)0 x2B (十六进制)为设备识别码接口指配号的 14 (0 x0E) MEI 类型与请求 ReadDevId 码相同:01、02、03 或 04设备的识别码一致性等级和支持的类型01:基本识别码(仅流)和单个和单个和单个02:正别码(仅流03:扩展识别码(仅流81:基本识别码(流)82:正别码(流83:扩展识别码(流随后:在ReadDevId 码 01、02 或 03 (流)的情况下,如果识别码数据不符合单个响应,那么需要几个请求/响应事务处理。00:对象不再是可利用的FF:其它识别码对象是可利用的,并

59、且需要MODBUS 事务处理在 ReadDevId 码 04(单个必须设置这个域为 00。)的情况下,如果“随后如果“随后=FF”,那么请求下一个对象的识别码=00”,那么必须设置为 00 (无用的)下一个对象 Id:对象号在响应中返回的对象识别码号(对于单个,对象号码= 1)对象 0.idPDU 中返回的第一个对象识别码(流问)第一个对象的字节长度)或请求对象的识别码(单个访Object0.长度37功能码1 字节0 xAB:Fc 0 x2B+0 x80MEI 类型1 字节异常码字节GB/T Object0.值 ObjectN.id ObjectN.长度ObjectN.值第一个对象的值(对象

60、0.长度字节)最后对象的识别码(在响应中)最后对象的字节长度最后对象的值(对象 N.长度字节)“基本设备识别码”的读设备识别码请求的实例:在这个实例中,一个响应 PDU 中发送所有的报文。如果一个设备需要几个事务处理发送响应,那么启动下列事务处理。第一个事务处理:38请求响应值值功能MEI 类型 ReadDevId 码对象 id2B功能MEI 类型 ReadDevId 码一致性等级继续下一个对象 id对象号 对象 id 对象长度对象值对象 id2B0E0E01010001FF02030016“公司识别码”01请求响应值值功能MEI 类型 ReadDevId 码对象 id2B功能MEI 类型 R

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论