APP下载

一种基于Modbus/TCP协议栈的远程监控系统的设计

2013-01-06王琼玫翁慧辉长江大学电子信息学院湖北荆州434023

长江大学学报(自科版) 2013年7期
关键词:应用层以太网数据包

王琼玫,翁慧辉 (长江大学电子信息学院,湖北 荆州434023)

徐仁佐 (北京龙鼎源科技有限公司,北京101500)

Modbus/TCP协议是目前发展迅猛、广泛应用于几乎所有领域的开放的TCP/IP技术,应用层采用工业控制领域标准的、开放的Modbus协议,使用户彻底摆脱了非标准的、封闭的专用工业控制网络和现场总线技术的束缚,实现了远程分布式的实时监控和在线数据分析。远程监控中心可以通过以太网实时的读取现场设备或仪表的数据,监控现场的运行状况,并且能够根据读取的现场参数对现场情况进行分析[1]。为此,笔者提出了基于Modbus/TCP协议的远程控制系统。

1 Modbus/TCP协议

Modbus现场总线协议是Modicon公司于1978年开发的一种工业控制器的网络协议,通过该协议,控制器相互之间、控制器和其他设备之间可以进行通信。它是一个请求/应答协议。Modbus和TCP/IP协议结合成为Modbus/TCP协议,是OSI模型上的应用层报文传输协议,采用了客户机/服务器通信模型。在客户端,负责把来自用户的信息封装成Modbus帧;在服务器端,负责解释来自客户端的 Modbus帧,执行相应的请求。Modbus/TCP帧的格式如图1所示。

图1 Modbus/TCP帧的格式

MBAP是Modbus协议在TCP/IP上的专用报文头,用来识别 Modbus的应用数据单元。MBAP报文头共7个字节,分为事件处理标识符 (2bytes)、协议标识符 (2bytes)、长度域 (2bytes)、单元标识符 (1bytes)。功能码规定了服务器和客户端所要执行的操作,典型的有读线圈 (0x01)、写单个 线圈 (0x05)、读输入寄存器 (0x04)、读多个寄存器(0x03)等。通过 Modbus/TCP协议将TCP/IP网络上的客户机和服务器设备连接起来,组成Modbus/TCP通信系统[2]。

图2 Modbus/TCP通信结构

该系统利用网桥、路由器或网关可以连接Modbus串行链路客户机和服务器终端设备,其通信结构如图2所示。

随着现代通信技术和计算机网络技术迅速发展,信息技术已逐步进入工业自动化领域。以太网技术以其开发性好、通信速率高、价格低廉、兼容性好以及应用广泛等优势,促进了它在工业控制领域中的大规模应用,形成了当前的工业以太网技术。由于Modbus协议和TCP协议比较方便实现互联,使得Modbus/TCP这一应用层协议广泛应用于电力、水利、冶金、化工、机械、制造等监控系统中。

2 ENC424J600芯片

ENC424J600是Microchip公司推出的快速以太网控制器,可为嵌入式系统提供远程通讯服务。该芯片是带有行业标准串行外设接口 (Serial Peripheral Interface,SPI)或柔性并行接口的独立快速以太网控制器,可用作任何配备有SPI或标准并行端口的单片机的以太网网络接口。ENC424J600器件符合IEEE 802.3中适用于10Base-TX和100Base-TX以太网的全部规范,采用了一系列数据包过滤机制以对传入数据包进行限制。该器件还提供了一个16位宽的内部DMA,以实现快速数据吞吐和硬件IP校验和计算支持。

芯片内置PHY物理层及MAC媒体访问控制层。安全引擎模块可执行 RSA、Diffie-Hellman、AES、MD5和SHA-1算法计算,以缩短代码大小、加快连接的建立和吞吐,并减少固件开发的工作量。该芯片还提供了一个通用的24Kb片内SRAM Buffer,用于执行发送和接收操作,基本不需要外接SRAM。通过SPI或并行接口与单片机通信,数据传输速率为14Mbit/s(基于SPI)至140Mbit/s(基于并行接口)。ENC424J600提供了专用于活动指示的LED接口以及发送/接收/DMA中断的引脚[3]。

图3 Modbus/TCP通讯的整体系统结构图

3 Modbus/TCP通讯系统设计与实现

3.1 系统整体结构

系统采用dsPIC30F6014的高性能数字信号处理器的SPI总线通信方式,采用美国Microchip公司的ENC424J600芯片作为以太网控制器。Modbus/TCP通讯系统通过dsPIC30F6014控制器内置的异步收发器接收现场仪表或现场设备上传的报文,将应用层数据存到dsPIC30F6014芯片的数据缓存区,将数据以Modbus消息帧的格式封装成IP包通过以太网上传给各阀室交换机,然后再通过网络上传给数据监控中心。Modbus/TCP通讯的整体系统结构图如图3所示。

3.2 Modbus/TCP总线接口设计

Modbus/TCP总线接口电路如图4所示。该电路中主要由以太网控制芯片ENC424J600和RJ45接口组成。ENC424J600通过SPI总线和中断与dsPIC30f6014微控制器进行数据交互。其中,ENC424J600与RJ45接口之间选用的是汉仁公司的HR911103C网络变压器,消除了双绞线上的干扰和部分谐波,实现了电气隔离功能,提高了系统的抗干扰能力和收发的稳定性。

图4 Modbus/TCP总线接口电路

以太网实现了一个差分对和电流模式发送器,它主要是当PHY发送时通过改变发送接口TX+和TX-的相对灌电流在电缆上产生差分电压[3]。以太网的接收接口RX+和RX-工作原理与发送接口类似。4个传输匹配电阻 (阻值为49.9Ω、精度为1%)R1、R2、R3和R4分别连接在发送接口和接收接口上。2个电容 (电容值为6.8nF、精度为10%)C1和C2与电阻R3和R4在接收信号路径上构成一个RC滤波器来降低基线漂移。C3和C4在防止直流电流的同时为2个差分对提供稳定的共模电压。

ENC424J600与单片机dsPIC30F6014的连接可通过SPI实现,且ENC424J600仅支持SPI模式0,0。单片机dsPIC30F6014通过SPI接口发送命令,访问ENC424J600的寄存器和读写接收/发送缓冲区,从而完成相关操作[3]。系统复位通过SPI接口由相关程序实现,其过程不影响通信接口电路中RESET引脚的状态。此外,ENC424J600有2个中断输出,分别用于事件中断触发和网络唤醒主机。

3.3 协议栈软件实现

美国Microchip公司提供标准的TCP/IP协议栈模型,该模型结构如图5所示。该协议栈采用模块化设计,每个模块只在使用的时候才被添加其中。各层实现代码驻留在一个独立的源文件里。此外,该协议栈使用协同式多任务处理技术。

协议栈在传输层采用TCP协议提供面向连接、可靠的字节流服务[4]。在应用层采用目前使用最为广泛的 MODBUS TCP协议。通过该协议,不同厂商生产的控制设备可以连成一个工业网络,以便进行集中监控[5]。

软件部分主要包括ENC424J600的初始化和在主控程序循环体中轮流执行各个功能模块,其中在主控程序循环体中轮流执行的各个模块包括串口通信模块、I/O数据处理模块、以太网数据包收发模块和应用层MODBUS协议的主从处理模块。

ENC424J600的初始化流程设计如图6所示。

4 结 语

Modbus/TCP协议规定了一种大多数工业设备都能识别的数据包格式,通过该数据包格式能更加容易地与各种厂家的系统实现无缝链接,协议广泛用于实时监控网络与现场设备的通信。笔者从开发的角度给出了一种基于Modbus/TCP协议的通讯控制系统的设计方案,在应用层上使用Modbus协议和工业现场实现数据之间的交互,从而可以达到远程监控工业设备运行状况的目的。笔者提出的方案已经成功应用于中石油长庆油田分公司某站的阀室中。实践表明,Modbus/TCP协议可靠性高,配置灵活,适于工业控制领域应用。

图5 Microchip公司的TCP/IP协议栈结构

图6 ENC424J600的初始化流程图

[1]陈志刚,张来斌,王朝晖 .基于Modbus/TCP的管道泄漏远程检测系统研究 [J].石油机械,2006,34(5):40-43.

[2]GB/Z 19582.3-2004,Modbus协议在 TCP IP上的实现指南 [S].

[3]Microchip.ENC424J600/624J600Stand-Alone 10/100Ethernet Controller with SPI or Parallel Interface[Z].Microchip Technology Inc,2010.

[4]谢希仁 .计算机网络 [M].北京:电子工业出版社,2008.

[5]朱艾春,华钢,高婷,等 .Modbus/TCP协议在监控分站中的实现 [J].媒矿安全,2011,42(4):79-81

猜你喜欢

应用层以太网数据包
二维隐蔽时间信道构建的研究*
基于Jpcap的网络数据包的监听与分析
基于1500以太网养猪场的智能饲喂控制系统的设计与实现
SmartSniff
基于分级保护的OA系统应用层访问控制研究
谈实时以太网EtherCAT技术在变电站自动化中的应用
新一代双向互动电力线通信技术的应用层协议研究
物联网技术在信息机房制冷系统中的应用
一种90W高功率以太网供电系统的设计
浅谈EPON与工业以太网在贵遵高速公路中的应用