基金项目:甘肃省省长基金项目(GS024-A25-011)
收稿日期:2005-11-08   收修改稿日期:2006-06-06
基于Modbus /TCP 工业以太网的监控系统的设计与实现
郝晓弘,刘 忠,祖守圆,李应启
(兰州理工大学 电气工程与信息工程学院,甘肃 兰州 730050)
  摘要:通过对Modbus /TCP 协议的深入研究,设计了一种了基于Modbus /TCP 协议的三层体系结构的工业以太网监控系统平台,重点阐述了三层结构中监控及网络管理级的数据通讯、数据管理及控制组态等各功能模块的设计,并对监控系统的实时性能和开环控制性能进行了测试,为将工业以太网直接应用于工业现场设备监控的研究提供了一种设计方案。关键词:Modbus /TCP ;工业以太网;Client /Server ;网络监控
中图分类号:TP319   文献标识码:A    文章编号:1002-1841(2006)09-0019-03
Design and Implementation of Monitor System Based on
Modbus /TCP Industrial Ethernet
HAO Xiao -hong ,LIU Zhong ,ZU Shou -yuan ,LI Ying -qi
(School of Electrical and Inform atio n Engineering ,Lanzhou University of Science &Techno logy ,Lanzhou 730050,C hina )Abstract :In order to design a sort of three -layer s ystem structure industrial Ethernet monitor system based on Modbus /TCP protocol ,Modbus /TCP protocol is studied deeply .The design of function modules as data communication ,data management and control configuration etc in control and s upervisory layers are presented in detail .Real -time performance and open -loop control performance are tested .A design plan for appl ying directly industrial ethernet to monitor industrial field device is offered .Key words :Modbus /TCP ;industrial ethernet ;network supervisory 1 Modbus /TCP 网络通信机制
Modbus /TCP 协议是Modbus 家族中应用于自动控制装备上的开放的通信协议。它利用TCP /IP 协议将Modbus 消息封装成IP 包,使它能在Intranet /Internet 上传输。Modbus /TCP 组件体系结构模型在通信应用层提供Client /ServerModbus 接口。
Modbus Client 允许用户程序与远程设备交换控制信息。当用户程序发送Client 命令到接口时,Client 根据其命令参数建立一个Modbus 请求和一个Modbus 对话,来等待和处理Modbus 确认。Modbus Client 接口可以让用户程序对不同的设备建立请求,来访问Modbus 应用对象。
Modbus Server 接收到客户的请求时,启动本地的读写操作。这些操作的处理过程对用户程序开发人员透明。Modbus Server 的主要功能包括等待、处理502TCP 端口的Modbus 请求,再根据设备情况作出回应。
TCP 管理层的一个主要功能是管理通信建立和结束及TCP 连接中的数据流。Client 和Server 间的通信要使用TCP 连接管理模块,该模块负责管理TCP 连接消息。Modbus /TCP 设备将TCP502端口预留为Modbus 通信所默认的监听端口。
为了进行数据流控制、地址管理和对产品或系统实行不同的连接管理,TCP /IP 栈可以进行参数化设置,通常采用BSD Socket 接口管理TCP 连接。
2 Modbus /TCP 工业以太网监控系统的体系结构
所设计的监控系统分为3个层次:现场智能节点控制级、
上位监控及网络管理级和远程监控级。
智能节点控制级以Quantum 系列的PLC 为核心。Quantu m 系列PLC 是施耐德电气公司生产的专用工业计算机系统。该系列具有模板化、可扩展的体系结构,用于工业和制造过程实时控制。Quantum 系列PLC 可通过多种现场总线与上位机通信,其中包括Modbus 、MB +、Interbus 、Lonworks 和SERCOS .
Quan -tum 系列PLC 带有以太网通信模块,支持TCP /IP 协议,有本身的IP 地址,类似一台PC 机,可以与上位机通过以太网通信。各个控制节点之间、节点与上位机之间通过集线器进行通讯,由上位机进行统一监控管理。
监控及网络管理是核心,它运行在Windows 环境下基于Modbus /TCP 协议用Visual C ++6.0开发的可视化监控管理平台,包括监控组态和网络管理2大部分。监控组态部分又包括3大模块:通讯模块、数据管理模块和控制组态模块。上位机的通讯模块和智能节点的通讯模块对应,实现上位机与智能节点的数据传输功能。数据管理模块对智能节点传来的实时数据进行存储、管理并显示实时、历史曲线。控制组态模块与智能控制器上的算法相对应,使用户可以在上位机为各个智能节点进行控制算法和控制参数设置。网络管理部分主要用来实现设置各智能节点IP 地址,检测局域网内各智能控制器的工作状态。
远程控制级是一套基于Browser /Web Server /Web Database3层结构系统,使现场采集的数据通过Web 服务器以网页发布的形式向用户PC 机上发布,用户只需在浏览器上输入相应的网页地址,即可对现场的各个参数进行实时监测,同时,用户也可
 2006年
 第9期
仪表技术与传感器
Instrument  Techniq ue  and  Sens or
2006 No .9 
以在线修改参数,实现远程控制。
3 监控及网络管理级各功能模块软件的设计
监控及网络管理系统是在Windows 2000环境下基于Mod -bus /TCP 协议用Visual C ++6.0开发的可视化监控管理平台,主要分为两大部分:监控组态平台和网络管理平台。3.1 监控组态平台
监控组态平台运行在上位机服务器端,分为通讯模块、数据管理模块和控制组态模块,其实现功能为接收下位机智能节点传送的实时数据,将数据存储入数据库,对数据进行实时和历史曲线显示。3.1.1 通讯模块
系统采用C /S (客户机/服务器)模型。上位机作为服务器,用来响应并为客户提供固定的服务。各智能节点做客户机,向服务器提出请求或要求某种服务。该系统采用Winsock 技术开发通讯模块。
服务器首先启动并进行初始化操作,通过调用函数socket ()创建一个套接字,然后调用函数bind ()将该套接字和本地网络地址绑定在一起,再调用函数listen ()将该套接字转换成倾听套接字,之后就调用函数accept ()来等待接收客户的请求。
客户在调用函数socket ()建立套接字后就可调用函数con -nect ()和服务器建立连接。连接一旦建立,客户和服务器之间就可以通过调用函数read ()和write ()来进行通信。最后待数据传送结束以后,双方调用函数close ()关闭套接字。如图1所示
表1中,LocalHost 指上位机,RemoteHost 指PLC .上位机的端口号设为0,表示应用程序不需要特定端口,每次连接时将选择一个随机端口作为TCP 连接的本地端口。PLC 的端口号设为502,这是因为Quantum 系列PLC 的502端口被厂家设定为Mod -bus 协议的识别端口。
tcp ip协议是全工表1 Winsock 控件的属性设置
属性
设置LocalHostIP 84.16.87.1
LocalPort 0R emoteHostIP 84.16.87.70
R emotePort 502
Protocol
0-sckTCPProt ocol
3.1.2 数据管理模块
数据管理模块分为数据存储和数据显示2个子模块。
数据存储子模块的主要功能是将刚从智能节点传来的实时数据定期存入历史数据库,以便历史数据查询显示和分析。系统采用SQL Server 数据库代替实时数据库也具有很好的实时性,且开发成本小、周期短。程序中采用ADO (ActiveX Data Ob -ject )技术作为应用程序访问数据库的接口。ADO 访问数据库的结构如图2所示
图2 ADO 访问数据库的结构
程序中利用智能指针_ConnectionPtr 取得与数据源的连接,函数原型如下:
m  pConnection ->Open (“Provider =sqloledb ;Server =Test ;DATABASE =IPserver ;UID =sa ;PWD =11111”,“”,“”,ad ModeUn -known );
为了获得结果记录集,程序中定义一个指向Recordset 对象的指针: RecordsetPtr m  pRecordset ;并为其创建Recordset 对象的实例:
m  pRecordset .CreateInstance (“ADODB .Recordset ”)
当数据源和相应的记录集被打开后,就可以对数据库中进行添加、修改、删除查询等操作了。
在使用ADO 技术对数据库进行操作时,程序中使用了定时器函数CWnd :SetTimer ()设置一个或多个定时器,以指定时间间隔触发,达到对数据进行定时操作的目的。
数据显示子模块指可对历史数据进行查询、统计后生成数据报表。曲线包括实时动态曲线和历史趋势曲
线。实时动态曲线反映了参数或变量的实时变化情况,可用来检测该智能节点的稳定性。要实现实时曲线的动态平移涉及曲线的消隐和重新绘制技术,本程序通过调用TPerformanceGraph 控件的方法来实现。历史趋势曲线反映的是过去一段时间内检测点的变
化趋势,可供工程人员分析稳定性和故障原因。它虽不需要实时的平滑移动,但通常需要进行一定的数据分析。因此,首先需根据设定的查询条件,使用SQL 语句通过ADO 获得相应的数据记录集,然后将TPerformanceGraph 空间与指定数据绑定来实现曲线的自动绘制。3.1.3 控制组态模块
控制组态模块为用户提供了良好的可视化图形组态界面,包括输入输出控件、数学运算控件、逻辑运算控件以及控制功能算法控件;在系统中采用了ActiveX 技术,它是建立在组件对象模型之上的一种对象链接与嵌入技术。该模块与智能控制器上的算法相对应,使用户可以在上位机为各个子节点进行控
 20 
Instrument Techniq ue and Sens or
Sep .2006 
制算法和控制参数设置。由用户在可视化界面选择所控制的智能节点、控制算法和控制参数,由通讯模块将算法及各参数下装到响应的节点,控制节点在进行相应的运算,从而实现对现场设备的控制。3.2 
网络管理平台
网络管理平台主要用于对局域网内所有的智能节点进行网络管理,主要包括系统初始化时各智能节点的IP 地址分配,并实时检测各智能节点的工作状态。该系统采用动态主机配置协议DHCP (Dynamic Host Configuration Protocol ),对各智能节点进行动态IP 地址分配,一旦有新的智能节点连接到局域网,就向上位机服务器发送一个DHCP 报文,报文里含有该节点的主要网络信息包括(MAC )物理地址、工作组、主机名以及子网掩码等,服务器根据每个智能节点唯一的MAC 地址手动或者自动配置它的IP 地址。然后建立智能节点IP 地址表,包括节点编号、IP 地址、所属工作组、物理(MAC )地址、加入时间等内容。系统的在线监控情况如图3所示
图3 系统在线监控界面4 监控系统的性能测试4.1 系统的实时性测试
根据监控软件的构架设计,选择了套接字(Socket )作为C /S 进程间的通信接口,选择以太网和TCP /IP 作为网络互连架构。程序运行结果如图4所示。
通过对实时性测试程序的运行,该监控软件的实时性能基本符合控制网络的实时性要求。考虑到多数实时系统网络相对专用,数据流量基本恒定,所以在这种设计构架下的监控软件是完全可行的。事实上,Berkely 实验室的实验表明,在一个数据传输速率为10MB /s 的以太网上,2条工作站间的TCP 连接能够传输8MB /s 的数据
图4 监控软件网络实时性测试程序运行结果
4.2 监控系统开环控制性能测试
在监控系统开环控制性能测试中,当给电机输入转速为10000r /m ,旋转编码器显示的转速也是10000r /m .在测试中,共测试了10组数据,均符合该测试的要求。5 结语
从实验测试的效果看,这种基于工业以太网的控制系统在设计原理上是合理的,采用的软硬件能保证系统控制功能的实现。该系统应用在中小型控制系统中可望能替代现有的基于现场总线的控制系统。对于大型控制系统,由于其结构和控制功能复杂、实时性和可靠性要求更高,构建基于工业以太网的控制系统目前存在着一定的技术难点,这正是今后的研究方向。参考文献:
[1] Modbus appl ication protocol V1.1.http ://www .modbus .org /default .
htm .
[2] Modicon TSX Quantum 硬件手册.施耐德电气公司.
[3] 胡春华,孙光.工业以太网监控系统的软件设计及应用.计算技术
与自动化,2005(1):95-98.
[4] 乔新晓,贾智平.基于Modbus /TCP 的自动化监控系统.计算机工
程,2004(8),181-182.
[5] 边宁宁,费敏锐.一种基于工业以太网的控制系统的设计与实现.
仪器仪表学报,2003(4):366-368.
[6] Modbus over Serial Line Specification &Implementation guide (V1.0).
http ://www .Modbus .org .
[7] 邓全良.Wins ock 网络程序设计.北京:中国铁道出版社,2002.[8] 求是科技.Visual C ++6.0数据库开发技术与工程实践.北京:人民
邮电出版社,2004.
[9] 求是科技.Visual C ++6.0程序设计与开发技术大全.北京:人民邮
电出版社,2004.
作者简介:郝晓弘(1960—),教授,博士生导师,主要研究方向是网络控
制、现场总线与工业以太网、电机控制。
(上接第14页)参考文献:
[1] SGALLA M ,VA NGI D .A device for meas uring the velocit y of ultrasonic
waves :An application to s tress analys is .Experimental Mechanics ,2004,44(1):85-90.
[2] BR AY D E ,TANG W .Subsurface stres s evaluation in s teel plates and bars
using the L CR ultras onic wave .Nuclear Engineering and Design ,2001,207(2):231-240.
[3] 杨媛.CPLD 在超声波传感器驱动控制电路中的应用.西安理工大
学学报,2000(4):381-383.
[4] 刘君华.现代检测技术与测试系统设计.西安:西安交通大学出版
社,1999.
作者简介:王彦龙(1974—),硕士,研究方向为传感器与检测技术。
 第9期
郝晓弘等:基于Modbus /TCP 工业以太网的监控系统的设计与实现
21 

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。