一种基于工业以太网的监控系统的设计与应用
关键词: 工业以太网;网络监控管理;嵌入式系统
1 引言
以太网是迄今最成功的局域网络技术,具有传输速度高、成本低、安装方便和兼容性好等方面的优势,也是目前应用最广泛的信息网络技术之一。工业以太网就是把以太网运用到控制现场,把上层信息网与底层控制网集成。当今工业以太网的应用正在从上层向下延伸,成为新型网络控制系统的一种发展方向,是控制领域的一热点话题[1]。
作者简介:庄亚俊,男,硕士研究生,研究方向:工业以太网控制系统、网络控制;刘国平,男,教授,博士导师,研究方向: 智能网络控制、生物信息处理、非线性系统辨识与控制等; 吴敏,男,教授, 博士导师,研究方向:工业过程智能集成系统、先进控制理论与应用、智能机器人系统技术及应用; 赵虹,女,博士研究生,研究方向:网络控制和工业过程控制;胡春华,男,博士研究生,研究方向:网络控制,数据库技术
一个成功的控制系统设计必须同时具有稳定可靠的硬件和软件。监控组态平台是基于系统平台的大型应用软件,它集控制技术、人机界面技术、数据库技术、网络与通信技术于一体,使控制系统开发人员不必依靠某种具体的计算机语言,只需通过可视化的组态方式,就可完成控制系统功能的构建以及对现场设备的运行状态的检测,这为控制系统设计人员带来了很大的方便。目前,监控平台有许多成熟的产品,但主要应用于不同类型(如Can,LonWorks, PROFIBUS)的现场总线,每种总线都采用不同的通讯协议和总线标准。
区别于现有的各种基于现场总线的监控系统,本文设计的系统给出了将以太网直接应用于工业现场设备(例如:气阀门等)的监控的方案,介绍了工业以太网控制系统总体结构设,并着重阐述了监控组态及网络管理平台的软件设计与应用,可以实现对智能控制节点的实时监视、组态控制以及网络管理等功能,以解决对工业以太网控制系统中的现场设备实时监视、图形组态控制和嵌入式节点网络管理的问题。
2 工业以太网控制系统总体设计
该系统分为三个层次:现场智能节点控制级、上位监控及网络管理级和远程监控级,本文的工业以太网系统总体结构如图1示。
图1 工业以太网总体结构图
智能节点控制级以32位MCF5272芯片为核心,嵌入了uClinux操作系统[2],内置各种控制程序,具有实时数据采集、实时控制、网络通讯功能。智能控制器采用以太网接口,支持TCP/IP协议,有本身的IP地址,类似一台PC机。各个控制节点之间、节点与上位机之间通过集线器进行通讯,由上位机进行统一监控管理。
监控及网络管理级是本论文介绍的核心,它运行在Windows环境里下Visual C++6.0开发研制的可视化监控管理台,包括监控组态和网络管理两大部分,监控组态部分又包括三大模块:通讯模块、数据管理模块和控制组态模块。上位机的通讯模块和智能节点的通讯模块对应,实现上位机与智能节点的数据传输功能。数据管理模块对智能节点传来的实时数据进行存储、管理并显示实时、历史曲线。控制组态模块与智能控制器上的算法相对应,使用户可以在上位机为各个智能节点进行控制算法和控制参数设置。网络管理部分主要用来实现设置各智能节点IP地址,检测局域网内各智能控制器的工作状态。
远程控制级是一套基于Brower/Web Server/Web Database三层体系结构[3],使现场采集的数据通过Web服务器以网页发布的形式向用户PC机上发布,用户只需在普通的浏览器上输入相应的网页地址,即可对现场的各个参数的进行实时监测,同时,用户也可以在线地修改参数,实现远程控制。
3 监控及网络管理系统的组成与功能
上位监控及网络管理系统是在Windows 环境下Visual C++ 6.0研制的可视化监控管理台,主要分为两大部分:监控组态平台和网络管理平台。其中监控组态平台又分为数据通讯、数据管理、组态控制模块.其实现功能为接收下位机智能节点传送的实时数据;将数据存储入数据库;对数据进行实时和历史曲线实现.网络管理平台的主要功能是对下位机各智能节点进行管理,检测各智能节点的MAC(物理)地址,分配IP,工作状态查询。
3.1监控部分各模块
3.1.1数据通讯模块
本系统采用C/S(客户机/服务器)模型。上位机做为服务器,用来响应并为客户提供固定的服务。各智能节点做为客户机,向服务器提出请求或要求某种服务。本论文采用Socket套接字做为程序通讯接口,Socket编程可分为流式套接字编程和数据报套接字编程。流式套接字是基于TCP的,它提供了一个面向连接、可靠的数据传输服务,数据无差错、无重复地发送,且按发送顺序接收。但传输速度较慢,不利于实时性控制。数据报套接字是基于UDP协议的,它提供了一个无连接服务。数据包以独立数据包形式被发送,不提供无错保证,数据可能丢失或重复,并且接收顺序混乱,具有代码小,传输速度快,系统开销小的特点。在本模块设计中,由于考虑到客户端和服务器端的传输速度和系统开销,故采用了数据报套接字进行数据交换。
由于考虑到UDP协议无连接、不可靠的缺点,在程序中采用“累加和”校验方式,通讯流程图如图2所示,上位机是通过WinSock控件启动通讯服务,绑定本地地址后监听等待智能节点请求服务。智能节点用在uCLinux环境下使用C语言进行编程[4],本系统为了以上位机WinSock组件对应故采用Socket套接字向服务器提出请求,双方“握手”后,智能节点首先将实时数据采集交给数据构造模块按照上、下位机定义的协议进行打包,再由通讯模块把数据包传递给上位机;上位机接收到数据包后再由解析模块按照同样的协议解包,得到智能节点传递来的实时数据,存入历史数据库并实时显示。
图2 上位机与智能节点通信流程图
3.1.2 数据管理模块
数据管理模块分为数据存储和数据显示两个子模块。
(1)数据存储子模块
该模块主要功能是将刚从智能节点传来的实时数据存入历史数据库,以便历史数据查询显示。
本程序采用MFC ODBC做为数据库的接口,通过CDatebase类和CRecordSet类对ODBC(开放数据库互联)的API进行了封装,从而简化了程序设计. CDatebase类用于应用程序与数据源的连接. CRecordSet类来实现对数据库中纪录集的操作,通过它的成员变量m_pDatabase与CDadabase类对象达到互联。
本程序中为数据库建立一个CDatebase对象指针,对应数据库里面的每一张表建立一个CRecordSet对象指针,由CDatabase的OpenEx()成员函数用来打开在ODBC数据源中定义的数据库数据源。CRecordset的Open()成员函数用来打开对应的数据表。当数据源和表被打开后,就可以对数据库中进行添加、修改、删除等操作。
(2)数据显示子模块
显示模块是指可对历史数据进行查询、统计后生成数据报表。曲线图包括实时动态曲线和历史趋势曲线。实时动态曲线反映了参数或变量的实时变化情况,可用来监测该智能点的稳定性。要实现实时曲线的动态平移涉及曲线的消隐和重新绘制技术,本程序通过调用TPerformanceGraph控件的方法实现。历史趋势曲线反映的是过去一段时间内监测点的变化趋势,可供工程人员分析稳定性和故障原因。它虽不需要实时的平滑移动,但通常需要进行一定的数据分析。因此,首先需根据设定的查询条件,使用SQL语句通过ODBC获得相应的数据记录集,然后将之与TPerformanceGraph 控件的数据绑定来实现曲线的自动绘制。
3.1.3控制组态控制模块
控制组态模块为用户提供了良好的可视化图形组态界面,包括输入输出控件、数学运算控件、逻辑运算控件以及控制功能算法控件;在这些组态控件的开发中,采用了ActiveX技术,它是建立在组件对象模型之上的一种对象链接与嵌入技术,目的是提供一种面向对象的、与操作系统和机器平台无关的、可以在应用程序之间互相访问对象的机制。该模块与智能控制器上的算法相对应,使用户可以在上位机为各个子智能节点进行控制算法和控制参数设置。由用户在可视化界面选择所控制的智能节点、控制算法和控制参数,由通讯模块将算法及各参数下装到相应的节点,控制节点在进行相应的运算从而实现对现场设备的控制。
3.2网络管理部分
网络管理平台主要用于对局域网内所有的智能节点进行网络管理,主要包括系统初始化时各智能节点的IP地址分配,并实时检测各智能节点的工作状态。本系统采用动态主机配置协议DHCP(Dynamic Host Configuration Protocol),对各智能节点进行动态IP地址分配,一旦有新的智能节点连接到局域网,就向上位机服务器发送一个DHCP报文,报文里含有该节点的主要网络信息包括(MAC)物理地址、工作组、主机名以及子网掩码等,服务器根据每个智能节点唯一的MAC地址手动或者自动配置它的IP地址[5]。然后建立智能节点IP地址表,包括节点编号、IP地址、所属工作组、物理(MAC)地址、加入时间等内容。网络节点的在线监控情况如图3所示。

图3 网络节点状态监控图
4 实例应用
中南大学信息科学与工程学院的过程控制实验室有三套模拟工业现场的试验系统:压力控制系统、温度控制系统、液位控制系统。我们应用上位机、数据库服务器和智能控制器构建了一个以太网控制系统。如图4所示

图4 工业以太网实验系统
以液位控制系统为例,被控对象为水箱液位。上位机通过组态控制模块对智能节点进行控制算法和控制参数设定,将给定量和各参数传递给智能控制器,液位变送器检测得到气缸输出的4-20 mA的电流模拟反馈信号,由数据采集卡通过A/D转换成数字反馈信号输入智能节点,再于组态控制模块传递过来的给定值进行比较得到偏差信号,再根据从上位机传递过来的控制算法程序,计算出控制量,经过D/A转换为1-5V的电压,再经过电压-电流转换成4-20 mA的电流控制信号,控制调节阀开度,实现对水箱的液位控制。如图5为水箱液位初始值为25 cm,给定为70 cm,控制算法为PID控制效果最佳时的试验曲线,可见该智能节点能实现对被控对象的有效控制。

图5 液位系统PID控制曲线
5 结论
本文提出了一种基于Visual C++6.0语言的上位机网络监控组态管理系统的软件设计方法以及实现情况,它把基于现场智能节点控制级、上位监控及网络管理级、远程监控级三层体系结构运用于工业以太网控制系统中,并结合一个具体的网络监控系统说明了这种设计方法的运用。随着企业信息化程度要求的不断提高,相关技术的不断成熟,工业以太网体系结构在企业的信息化建设中必将起到越来越重要的作用。
参考文献
[1] 徐皑冬, 王宏, 杨志家. 基于以太网的工业控制网络[J]. 信息与控制, 2000, 29 (2): 182-185
[2] 王锋, 王滔, 季晓勇. 一种嵌入式Linux平台的软硬件设计[J]. 电子技术应用, 2003,6(2)13-15
[3] 胡波, 吴敏. 基于Java的网络监控系统设计及应用[J]. 计算机应用研究, 2003,4 (7): 138-140
[4] 贾明, 严世贤. Linux下的C编程. 北京: 人民邮电出版社[M], 2001
[5] 李廷军, 周正欧. 嵌入式网络设备的MAC及IP地址设置[J]. 单片机与嵌入式系统用,2004,4(2):16-19
文章版权归西部工控xbgk所有,未经许可不得转载。










服务咨询