2006年北京化工大学学报
JOURNALOFBEIJINGUNIVERSITYOFCHEMICALTECHNOLOGY
Vol.33,No.1
2006
基于以太网的数据采集及监控系统的数据通信研究
王学伟 王彦硕
(北京化工大学信息科学与技术学院,北京 100029)
摘 要:介绍了基于以太网的数据采集及监控系统的网络构成,提出了使用传输控制协议(TCP)的点对点通信方式与传统的WEB方式相结合的混合型通信方案,讨论了该通信方案实现的关键技术,并简要介绍了通信软件的开发,实验证明该方案数据传输可靠、实时性好,可行性高。关键词:以太网;数据采集;监控系统;TCP中图分类号:TN91912
引言
近些年来,以太网通信速率的提高及交换式以太网技术的出现,使得以太网的通信性能大为改善,原来阻碍以太网进入工业控制领域的不确定性等问题基本得到解决,以太网开始从不同的途径进入到工业自动化和过程控制市场,很多组织和厂家开始开发基于以太网的数据采集与监控系统[122]。目前基于以太网的数据采集及监控系统普遍采用的通信方案是将数据采集到上位机,进行初步的处理,存入数据库,然后使用WEB方式进行数据的远程发布。这种方式实现了现场采集数据的远程发布,使企业的管理部门可以观察到现场采集的数据,但事实上由于使用这种方式要先将数据存入数据库,然后再将数据发布到广域网,客户端观察到数据的时间与采集到数据的时间有很大间隔,这使得用户观察现场数据的实时性较差,并且操作不够灵活,交互性不好。本文提出的数据采集与监控系统通信方案,结合使用TCP协议的点对点通信方式和传统的WEB两种方式进行数据远程发布,能更好的实现数据的实时的远程采集与监控。
图1 系统网络构成
Fig.1 Networkstructureofthesystem
(1)设备层 主要包括现场设备和通信控制模
块等,完成数据的采集、前端数据的处理等任务。通信模块是能独立编程并运行的智能设备,完成TCP/IP协议转换等功能。
(2)控制层 由企业内部以太网构成,包括上位机、数据库服务器、WEB服务器等,主要功能是将采集到的现场信息通过上位机进行处理并存入数据库,并通过一定的方式(如WEB方式)向企业管理部门发布。
(3)远程网络层 通过Internet网络,连接位于不同地点的企业的各个部门,使位于不同地点的企业部门可以观看到现场的工作情况等信息,实现远程数据采集与监控。
1 基于以太网的数据采集及监控系统
的网络构成
基于以太网的数据采集及监控系统网络构成如图1所示,它主要由3部分组成:
收稿日期:2005206211
第一作者:男,1958年生,教授,工学博士E2mail:wangxw@mail.buct.edu.cn
2 系统通信方案
211 通信协议的选择
以太网只定义了物理层和链路层,但目前在传输层和网络层已基本上统一,TCP/IP协议被普遍采用。传输层协议包括UDP协议和TCP协议。无论是基于UDP协议或者TCP协议,都要保证网络
・110・北京化工大学学报 2006年
传输的一定的可靠性和实时性。由于UDP协议具
有实现机制简单、传输效率高的特点,其较多地被应用到高效率的实时系统中。但为了实现传输的可靠性,就需要在应用层采用一些差错控制机制,而这些措施与TCP协议中自带的传输机制非常相似。实际上,在许多实时性的系统中,采用TCP协议也基本可以满足传输时间的要求,还避免了在应用层进行繁琐的处理[324]。因此在本方案中传输层选择使用TCP协议。
应用层的协议目前还没有统一,本文旨在研究一个可广泛适用于多种应用场合和多种应用层协议的通用的通信方案,用户可根据需要选择不同的应用层协议,也可以定义自己的数据包格式。212 系统数据流程
目前远程监控系统的数据流程一般如图2(a)所示:从工业现场采集的数据经过上位机处理并存入数据库,然后通过WEB的方式将数据向企业的管理部门发布。如前文所述,这种方式虽然实现了数据的远程发布,但存在实时性不理想、交互性较差等问题。
将采集的现场数据,按照TCP/IP协议打包,通过以太网通讯模块发往以太网及Internet,远程用户通过与以太网通讯模块进行通讯,接收现场采集的数据,向现场设备发送命令。采用这种方式可以真正的实现现场数据的实时观测。但由于通信模块功能的限制及通信速率和安全性的考虑,同时与模块进行通信的PC机不能太多。因此,为了满足更多的用户及不同情况的需求,将这种方式与WEB方式结合起来,就构成了图2(b)所示的混合系统。
一部分用户通过WEB的方式,查看现场数据;一部分用户直接连接以太网通信模块,监测现场数据。使用后者进行数据采集的用户,可以在PC机装有数据库,将采集的数据存库。若仅仅是为了实时观测数据,也可以只运行一个简单的通信软件,观测现场数据,不将数据存库,实现起来非常方便。
3 通信软件的设计
WEB方式的实现与传统远程监控系统大同小
异,在此不再赘述。本文重点讨论TCP方式的通信软件设计。在本方案中,设备层采用以太网通信控制模块来完成通信功能,该模块支持TCP/IP协议,可以在UDP及TCP方式下工作,能连接具有RS232或RS485等接口的现场设备,并按照TCP/IP协议将数据打包,进行传输。通信控制模块程序同一般智能仪表控制模块的编制方法大体一致,需要注意的是,为了使通信模块可以同时与多个PC机进行通信,以满足多个用户同时连接的情况,并同时保证数据传输的可靠性,需要将其设置为TCP服务器端,并采用多线程技术,使其可以监听来自客户端的连接,并将采集到的数据发往与之连接的客户端。但是为了保证系统安全性,需采用一定的安全机制,只允许一部分用户采用这种方式观测现场数据,并且只允许指定的客户端(如主监控机)向设备发送控制命令,其它用户只能接收来自设备的数据,不能对其进行控制。
上位机及用户工作在TCP客户端模式。系统中有一台上位机作为主监控机,它与服务器建立连接后,向服务器发送数据采集命令。服务器端接收到采集命令后开始采集数据,并且当它再监听到其它连接时不再等待采集命令,而是将它所采集到的数据发往所有与它建立连接的客户端。也就是说只有当主监控机开始采集数据时,其它的客户端才能接收到数据,当主监控机停止数据采集时,所有客户端的数据采集都将中止。
本文选择便捷高效的Delphi7作为客户端软件开发工具,并使用WindowsSockets(简称Winsock)进行通讯编程。使用套接字进行客户端通讯编程步骤如下所示[5]:
(1)建立套接字,在TCP方式下要使用流式套
图2 系统数据流程
Fig.2 Flowchartofthesystemdata
接字SOCK-STREAM;
(2)设置本地端口号及服务器的IP和端口号,
第1期 王学伟等:基于以太网的数据采集及监控系统的数据通信研究・111・
并与服务器建立连接;(3)发送和接收数据;(4)关闭套接字。部分程序如下所示:
AcceptSock[0]:=Socket(AF-INET,SOCK-STREAM,0);
SockLocal.sin-family:=AF-INET;
SockLocal.sin-port:=htons(strtoint(EditHost2port.Text));
SockRemot[0].sin-family:=AF-INET;
SockRemot[0].sin-port:=htons(strtoint(Ed2itRemoteport.Text));
SockRemot[0].SIn-Addr.S-addr:=inet-addr(PChar(EditRemoteHost.Text));connect(Accept2Sock[0],SockRemot[0],sizeof(SockRemot[0]));
sendto(AcceptSock[0],SEND-PACKAGE,sizeof(SEND-PACKAGE),0,SockRemot[0],size2of(SockRemot[0]));WSAAsyncSelect(AcceptSock[0],Handle,WM-SOCK,FD-READorFD-CLOSE);
ifEvent=FD-READthen len:=recv(AcceptSock[Index],Receive-PACKAGE,sizeof(Receive-PACKAGE),0);CloseSocket(AcceptSock[0]);
据通过通信模块传输到网络上。然后分别在哈尔滨。河北廊坊等地的PC机上运行客户端通信软件,连接该以太网模块,接收来自万用表的数据,向万用表发送命令。我们使用一台装有WinDump和Ethereal网络监视软件的PC机监视网络。经过多次实验验证,数据传输的误码率很低,在10-5数量级。在同一局域网内数据传输的往返时间大部分集中在100ms~200ms之间。在不同的局域网内,往返时间也保证在115s以内。基本达到了对传输时间的要求,网络传输中断的情况也很少出现。因此,本文所提出的基于以太网的数据采集与监控系统的通信方案,实时性较好,可靠性较高,能够实现对现场设备的远程实时数据采集与监控的功能,是切实可行的。且其开放性、可操作性也较高,能够适用于很多数据采集与监控场合。
参
考
文
献
[1] 冉全,杨志方.以太网在工业控制领域的应用探讨
[C].∥中国计算机学会网络与数据通信学术会议论
文集.北京:中国计算机学会,2002.782-788.
[2] 项敏,王学军.嵌入式工业以太网控制方案的研究
[J].现代电子技术,2004,27(6):49-51,62.
[3] VitturiS.Ontheuseofethernetatlowleveloffactory
communicationsystems[J].ComputerStandards&In2terfaces,2001,23(4):267-277.
[4] 宋真君,李京,凌志浩,等.基于工业以太网的分布式
4 实验验证
为了验证本方案的可行性,我们在北京的实验
室内,使用以太网通信模块,通过RS232连接HP34401A多用表,该多用表每100ms向外传送一组数据,每帧数据的长度在72~100字节之间。数
控制系统的通信研究[J].厦门大学学报(自然科学版),2001,40(增刊1):269-273.
[5] 甘志,李幼仪,陈宜凯.Delphi7高级应用开发篇[M].
北京:清华大学出版社,2003.
Developmentofdatacommunicationprograminadata
acquisitionandsupervisorycontrolsystembasedonethernet
WANGXue2wei WANGYan2shuo
(CollegeofInformationScienceandTechnology,BeijingUniversityofChemicalTechnology,Beijing100029,China)
Abstract:Thenetworkstructureofdataacquisitionandsupervisorycontrolsystemwasintroducedfirstinthispaper.Andthenacommunicationschemewhichintegratethepoint2to2pointcommunicationmodeoftransmis2
sioncontrolprotocol(TCP)andthetraditionalWEBmodewaspresented.Thekeytechnologyoftheschemeandthedevelopmentofthecommunicationsoftwarewerediscussed.Finallythereliabilityandthereal2timeperfor2manceoftheschemewerevalidatedbymeansofexperiments.Keywords:ethernet;dataacquisition;supervisorycontrol;TCP
因篇幅问题不能全部显示,请点此查看更多更全内容