推荐星级:
- 1
- 2
- 3
- 4
- 5
GBZ19582.1-2004 基于Modbus协议的工业自动化网络规范 第1部分:Modbus应
资料介绍
本指导性技术文件包括两个通信规程中使用的 Modbus应用层协议和服务规范:
— 串行链路上的 Modbus
Modbus串行链路基于 TIA/EIA标准 :232-F和 485-A o
— TCP/IP上的 Modbus
Modbus TCP/IP基于 IETF文件 :RFC 793和 RFC 7910
串行链路和 TCP/IP上的 Modbus是根据相应 ISO分层模型说明的两个通信规程 。下图强调指出
了本指导性技术文件的主要部分。深色方框表示规范,浅色方框表示已有的国际标准(TIA/EIA和
IETF标准)。
基于 Modbu。协议的工业自动化网络规范分为三部分。
— 第 1部分 :Modbus应用协议
— 第 2部分:Modbus协议在串行链路上的实现指南
— 第 3部分 :Modbus协议在 TCP/IP -}的实现指南
第 1部分描述 了Modbus事务处理 ;第 2部分提供了一个有助于开发者实现串行链路上的 Modbus
应用层的参考信息;第 3部分提供了一个有助于开发者实现 TCP/IP上的 Modbus应用层的参考信息。
本部分的附录 A是资料性 附录。
本部分 由中国机械工业联合会提出。
本部分 由全国工业过程测量和控制标准化技术委员会归口。
1 范围
Modbus是 OSI模型第 7层上的应用层报文传输协议,它在连接至不同类型总线或网络的设备之
间提供客户机/服务器通信,见图 to
从 1979年开始,Modbus作为工业串行链路的事实标准,Modbus使成千上万的自动化设备能够通
信。目前,对简单而精致的 Modbus结构的支持仍在增长。互联网用户能够使用 TCP/IP栈上的保留
系统端口502访问Modbus,
Modbus是一个请求/应答协议,并且提供功能码规定的服务 。Modbu、功能码是 Modbus请求/应
答 PDU的元素。本部分描述了 Modbus事务处理框架内使用的功能码 。
Modbus是一种应用层报文传输协议,用于在通过不同类型的总线或网络连接的设备之间的客户
机/服务器通信。
目前,通过下列方式实现 Modbus通信:
— 以太网上的TCP/IP,
— 各种介质(有线 :EIA/TIA-232-F, EIA-422, EIA/TIA-485-A;光纤、无线等等)上的异步串行
传输。
— Modbus PLUS,一种高速令牌传递网络
2 规范性引用文件
下列文件 中的条款通过 GB/Z 19582本部 分的引用而成为本部分 的条款 。凡是 注 日期的引用文
件,其随后所有的修改单(不包括勘误的内容)或修订版均不适用于本部分 ,然而 ,鼓励根据本部分达成
协议的各方研究是否可使用这些文件的最新版本。凡是不注 日期 的引用文件 ,其最新版本适用于本
部分。
GB/T 15969 可编程序控制器
RFC 791,Internet Protocol,Sep81 DARPA‘
每种设备 (PLC, HMI、控制面板、变频器 、运动控制、I/O设备……)都能使用 Modbus协议来启动
远程操作 。
同样的通信能够 在基 于串行链 路和 以太 网 TCP/IP网络上进 行。网关 能够 实现 在各 种使 用
Modbus协议的总线或网络之间的通信。
启动 Modbus事务处理的客户机创建 Modbus应用数据单元。功能码 向服务器指示将执行哪种操
作。Modbus协议建立了客户机启动的请求格式。
用一个字节编码 Modbus数据单元的功能码域。有效的码字范围是十进制 1--255028^-255为异
常响应保留)。当从客户机向服务器设备发送报文时 ,功能码域通知服务器执行哪种操作 。
向一些功能码加入子功能码来定义多项操作 。
从客户机 向服务器设备发送 的报文数据域包括附加信息 ,服务器使用这个信息执行功能码定义的
操作。这个域还包括离散量和寄存器地址、处理的项 目数量以及域中的实际数据字节数 。
在某种请求中,数据域可以是不存在的((0长度),在此情况下服务器不需要任何 附加信息。功能码
仅说明操作。
如果在一个正确接收的 Modbus ADU 中.不出现与所请求 的 Modbus功能有关的差错,那么服务
器至客户机的响应数据域包括所请求的数据 。如果出现与所请求的 Modbus功能有关 的差错 ,那么该
域包括一个异常码 ,服务器应用能够使用这个域确定下一个执行的操作。
例如,客户机能够读一组离散量输出或输人的开/关状态 ,或者客户机能够读/写一组寄存器的数据
内容。
当服务器对客户机响应时,它使用功能码域来指示正常 (无差错)响应(见图 4)或者出现某种差错
(称为异常响应),见图 5。对于一个正常响应来说 ,服务器仅复制原始功能码。
Modbus 最初在串行链路上的实现(最大 RS 485 ADU-256 字节)限制了 Modbus PDU 的长度。
因此,对串行链路通信来说,Modbus PDU=256一 服务器地址(1 字节)-CRC(2 字节)-253字节。从而:
RS 232/RS 485 ADU=253 字节+服务器地址(1 字节)+CRC(2 字节)-256 字节。
TCP Modbus ADU=253 字节+MBAP(7 字节)=260 字节Modbus 协议定义了三种 PDU,它们是:
Modbus 请求 PDU.mb_req_pdu;Modbus 响应 PDU.mb_rsp_pdu;Modbus 异常响应 PDU,mb_excep_rsp_pdu.
定义 mb_req_pdu 为:
mb_req_pdu-{function_code,request_data),其中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+request_data).其中function_code;[1 字节]Modbus 功能码+0x80.
exception_code;[1 字节],在第 7 章中定义了 Modbus 异常码。
5.2 数据编码
Modbus 使用最高有效字节在低地址存储的方式表示地址和数据项。这意味着当发送多个字节时,首先发送最高有效字节,例如:
寄存器大小
值
注:更详细的信息参见[1]。
16位
0x1234发送的第一字节为
0x12然后 0x345.3 Modbus 数据模型
Modbus 的数据模型是以一组具有不同特征的表为基础建立的。4个基本表见表 1:
输人与输出之间以及位寻址的和字寻址的数据项之间的区别并不意味着应用特性的差别。如果所有 4 个表相互覆盖是对该目标机器最自然的解释,也是完全可接受的,而且很普遍。
对于每个基本表,协议都允许单个地选择65536个数据项,而且其读写操作被设计为可以越过多个连续数据项直到数据大小规格限制,这个数据大小规格限制与事务处理功能码有关。
很显然,必须将 Modbus处理的所有数据(位,寄存器)放置在设备应用存储器中。但是,存储器的物理地址不应该与寄存器编号混淆。仅要求将寄存器编号与物理地址链接。
Modbus 功能码中使用的 Modbus 寄存器逻辑编号是以 D 开始的无符号整数索引。
——Modbus 模型实现的实例
下列实例表示了两种在设备中组织数据的方法,有多种组织数据的方法,在本部分中没有被全部描述。每个设备根据其应用都有它自己的组织数据的方法。
实例 1:有 4 个独立块的设备
图6表示了含有数字量和模拟量、输入量和输出量的设备中的数据组织,由于不同块中的数据不相关,每个块是相互独立的,可通过不同 Modbus功能码访问每个块。
部分文件列表
文件名 | 大小 |
GBZ19582.1-2004_基于Modbus协议的工业自动化网络规范_第1部分:Modbus应用协议.pdf | 3M |
全部评论(0)