一种Modbus/TCP工业以太网协议的结构
摘要:本文主要介绍了一种Modbus/TCP工业以太网协议的规范和主要功能分类,在处理Modbus/TCP转换的时候可以参考。
关键词:工业以太网;Modbus/TCP协议
中图分类号:TP393文献标识码:A文章编号:
1009-3044(2008)31-0855-02
The Achievement of the Modbus/TCP of Industrial Ethernet
HUO Heng-yu
(School of Computer Science & Technology,Soochow University,Suzhou215500, China)
Abstract: This article introduced a Modbus/TCP industrial Ethernet protocol norms and the main function of the classification.
Key words: industrial ethernet; modbus/TCP
1 引言
自法国施耐德电气公司推出“透明工厂”战略以来,其已经成为在工业领域中应用以太网的坚决倡导者。
Modbus/TCP是目前工业以太网事实上的标准之一,并促进以太网在传感器和设备级的应用。
2003年IDA和Modbus
合并为Modbus-IDA,实时工业以太网部分称为
Modbus/TCP(RTSP),成为IEC61784-2成员之一。
Modbus/TCP协议:用简单方式将Modbus帧嵌入TCP 帧,是一种面向连接的传送,它需要响应,请求/响应技术适用于Modbus的主站/从站特性。
物理层和数据链路层是标准的以太网协议,网际层是标准的IP协议,运输层是标准的TCP协议,应用层嵌入Modbus协议。
2 Modbus/TCP协议规范
2.1 报文类型
Modbus报文传输服务提供设备之间的客户机/服务器通信,而这些设备联接在一个以太网上,信息传递分4类报文:Modbus请求、Modbus证实、Modbus指示和Modbus响应,如图1。
Modbus请求是客户机在网络上发送用来启动事务处理的报文;Modbus指示是服务器接收的请求报文;Modbus响应是服务器发送的响应报文;Modbus证实是客户机接收的响应报文。
2.2 通信结构
Modbus/TCP基本是用简单方式将Modbus帧嵌入TCP 帧,是一种面向连接的传送,它需要响应,请求/响应技术适用于Modbus的主站/从站特性,交换式以太网为用户提供了确定性特征。
系统可以包括不同类型的设备:客户机、服务
器、网桥、路由器、网关等。
2.3 报文规范
Modbus协议定义了一个与基础通信层无关的简单协议数据单元(PDU),它包括功能码和数据。
当Modbus协议作为应用层协议在不同的连接中会用不同的报文格式,这体现在附加单元上。
下面给出了完整的报文格式,但这只是一个总体应用数据单元(ADU),不同连接中应该映射为具体报文格式,如图2。
■
图2 Modbus的ADU报文
Modbus协议ADU在串行链路上映射为Modbus SERIAL LINE ADU,如图3。
■
图3 Modbus SERIAL LINE的ADU报文
Modbus协议ADU在以太网上映射为Modbus TCP/IP ADU,如图4。
■
图4 Modbus TCP/IP的ADU报文
Modbus TCP/IP ADU使用一种专用报文头来识别Modbus应用数据单元,该报文头称为MBAP。
1) 报文头(MBAP)格式
事务处理标识符:用于事务处理配对。
在响应中,Modbus
服务器复制请求的事务处理标识符。
事务处理标识符用于将请求和未来响应之间建立联系,对TCP连接来说同一时刻事务处理标识符是唯一的。
2) 功能码(FUNCTION CODE)
功能码分为三类:公共功能码、用户定义功能码和保留功能码。
公共功能码:有确切定义,唯一的,公开的,由Modbus 组织确认的。
用户定义功能码:用户无需Modbus组织的任何批准就可以选择和实现一个功能码,不保证唯一性。
保留功能码:用户可以选择使用保留,但有些传统产品可能不支持,但具有确切的定义。
异常功能码:当与请求而回应的请求非正常时,功能码为异常码。
3) 数据段(DATA)
DATA:具体的读写数据值。
3 Modbus/TCP协议功能描述
Modbus组件结构包括:通信应用层(Communication Application Layer)、TCP管理层(TCP Management Layer)和TCP/IP协议栈。
3.1 通信应用层
通信应用层包括:Modbus客户机(Modbus Client)、
Modbus服务器(Modbus Server)、Modbus客户机接口(Modbus Client Interface)、Modbus后端接口(Modbus Backend Interface)。
Modbus客户机允许用户应用明确地控制与远程设备的信息交换,根据用户应用向Modbus客户机接口发送的要求中所包含的参数来建立一个Modbus请求,即用户决定了建立怎样的请求。
Modbus客户机接口使得用户应用能够生成各类Modbus 请求,该服务包括对Modbus应用对象的访问,即用户用来建立请求的模板,Modbus协议没有对Modbus客户机接口加以定义和限制。
Modbus服务器收到请求后,激活一个本地操作进行读、写、或完成其它操作,这些操作的处理对应用程序开发人员都是透明的。
Modbus服务器的主要功能是等待来自TCP502口的Modbus请求,处理这一请求然后根据设备状况生成一个Modbus应答。
Modbus后端接口是一个从Modbus服务器到定义应用对象的应用程序之间的接口。
3.2 通信应用层在服务器设计中的作用
Modbus服务器的作用是为应用对象提供访问以及为远程客户机提供服务。
应用对象的访问有两种,一是简单访问,另一个是高级访问。
简单访问:获得或设定应用对象的属性;
高级访问:启动一个特定的应用服务。
在网关适配器中主要考虑高级访问,因为应用对象访问网关适配器时其属性是特定的,访问目的就是完成一定的应用服务。
Modbus服务器本身可以立即处理一些服务,还可以与被处理的用户应用进行显式交互操作;有些高级服务需要调用特定的接口即后端服务。
简而言之,通信应用层就是把用户应用的计算机可以识别的语言转换为符合Modbus协议要求的帧格式,它是负责管理Modbus通信的功能模块。
通信应用层在断路器网关适配器中的中心工作是把Modbus客户机的请求和响应之间用户应用服务实时地完成。
3.3 TCP管理层
TCP管理层的主要功能之一是管理通信的建立和结束,以及管理在所建立的TCP连接上的数据流。
连接管理(Connection Management):负责全面管理报文传输TCP连接。
访问控制(ACCESS Control):在某些重要的场合,必须禁止无关的主机对设备内部数据的访问。
TCP层参数配置(TCP Stack Parmeterization):可以调整TCP/IP协议栈的一些参数以使得其特性适应产品或系统的限制。
3.4 IP参数配置
IP参数可以选择A、B、C类中的一类,本适配器采用C类。
子网掩码用来规划子网,其类型和IP地址一致。
3.5 TCP/IP协议栈
TCP/IP协议栈为标准的协议栈,由操作系统来管理,对用户来说是隐含的。
3.6 MODEBUS PDU校验
Modbus PDU校验首先分析MBAP报文头,如果协议类型不同,则简单废弃这个指示;如果协议类型符合Modbus,则启动事务处理,如果事务处理标识符无效,服务器生成异常响应;如果事务处理标识符有效,则存储用于发送指示的TCP连接标识符、Modbus事务处理标识符和单元标识符等信息,分析功能码的正确与否,不正确则生成异常响应;如果功能码正确,则启动一个Modbus服务;如果超时则进入超时管理并生成异常响应;无超时则正常通信。
3.7 超时管理
Modbus/TCP协议没有对超时时间作强制规定,因为考虑到Modbus/TCP协议可能用于最宽范的通信场合,从豪秒级的I/O扫描到延时几秒的远程无线链接。
所以,超时时间的具体设定应该根据现场设备状况、功能、网络拓扑结构、服务器、客户机、用户组态等具体情况而定。
随着计算机技术、通信技术、网络技术的日益发展,以太网技术在电力、工业自动化和过程自动化领域得到了越来
越广泛的应用。
目前,工业以太网开始逐渐渗透工业系统现场总线网络之中,据业界人士预测工业以太网系统在未来
3~5年将成为应用的主流,为了抓住未来最大的市场,世界各大公司对今后的电器产品都已明确提出了全面推广应用
基于工业以太网的通信控制方式。
而目前工业电器和自动化产品还都是以现场总线为主,所以对各个现场总线和工业以太网的协议转换,还是很有必要的,本文的出发点也在于此。
参考文献:
[1] 施耐德电气公司透明工厂――开放的自动化世界.
[2] (美)W.Richard Stevens. TCP/IP详解[M]. 机械工业出版社, 2003.
[3] 以太网和IEEE802.3. 2002.。