一种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服务器的作用是为应用对象提供访问以及为远程客户机提供服务。应用对象的访问有两种,一是简单访问,另一个是高级访问。简单访问:获得或设定应用对象的属性;