水工业分布式异构系统3级测控网络的设计实现

博主:adminadmin 12-19 14 0条评论

  1、引言

  随着计算机网络技术与自动化技术的相互融合与发展,计算机测控技术已经发展为基于局域网的集中监控与管理网络和基于Intranet/Internet的远程监控网络。基于Intranet/Internet的多级网络结构为实现管控一体化、全局优化控制与调度、异地信息共享提供了有利的硬件条件。但是对于一般企业,系统位置比较分散,同时由于多方面的原因,企业内不同设备运用了不同的控制系统,这样就造成了位置分散的多种设备、多种监控系统并存的分布式控制环境,而这其中又多存在一些软件封闭、互操作性差的异构系统,因此对设备的测控网络提出了更高的要求,这用一般测控软件是很难实现的。

  针对这种情况,本文介绍了分布式异构系统3级测控网络的设计与实现方法,该方法弥补了现有测控软件的不足,有针对性地解决了设备位置分散、系统异构给测控网络带来的难题。实践证明,该方法具有实用性强、扩展性强、运行稳定等特点。

  2、整体设计

  分布式异构系统3级测控网络是按照“两种网络,3层功能,统一结构,功能完善”的总体设计思想开发的。

  “两种网络”是指整个系统由RS-485现场总线和Intranet/Internet两种网络结构组成。

  “3层功能”是指根据功能划分为设备层、集中监控层和远程监测层(集中监控层对于下位是现场设备的可实现控制,对于下位是已有监控系统只监测不控制,远程监测层只监测不控制)。设备层与集中监控层之间采用RS-485总线连接,集中监控层与远程监测层之间采用Intranet/Internet连接。

  “统一结构”是指系统处理各种设备信息时,尽量用统一的数据格式与下级设备和子系统传送信息、存储数据和显示数据,尽量用统一的功能模块来设计不同系统设备的功能。

  “功能完善”是指系统既包括了实时数据平台、现场设备管理、现场监控组态、描述历史曲线、打印信息报表和故障报警等常规功能,也包括了基于Intranet/Internet的远程数据实时监测功能。

  系统以RS-485总线结构连接设备层和集中监控层,实现对设备的集中监控;在集中监控层设一台服务器完成WEB服务器和服务器任务,并接入企业内部网和以DDN专线或线接入Internet,实现远程的实时监测。从而把结构复杂、繁琐的系统化为具有典型分布式控制系统的网络结构。系统的整体结构如图1所示。

  

  图1 分布式异构系统3级测控网络结构图

  3、基于VC++多线程的设备集中监控与数据管理

  3.1 硬件设计

  在硬件设计上,由一台PC工控机作为上位机,用来接收并存储现场的监测数据,本地现场硬件包括已有监控计算机(通过编写软件来提取已有监控系统的数据)、可编程的PC-Based数据采集控制器(通过编程来采集现场设备的监测数据)和不可编程的I/O节点(直接进行数据采集),远程现场硬件主要是监控计算机(通过编写软件来提取已有监控系统的数据)。

  在传输线路上,根据企业现场实际,各子系统线路距离一般不会超过1200m,但位置分散,各子系统通信硬件各异,信号相互干扰会比较严重,鉴于这种情况,对各种通信方式(RS-232、RS-422、RS-485、光纤)的特点进行了比较和分析,RS-232传输方式数据传输速率较慢(一般只能达到20kb/s),传输距离短(一般装置间电缆长度为15 m之内),且接口处信号容易互相干扰;RS-422总线传输方式尽管传输距离较远,但节点太少;光纤传输通信距离远、性能稳定,但过高;RS-485传输方式不仅具有传输距离远、多节点(32个)的特点,而且传输线成本低。因此为了提高通信稳定性、减小工程成本,采用RS-485总线传输方式。

  在RS-485总线传输接口上,上位工控机需采用RS-232/RS-485转换板,将PC串口RS-232信号转换成RS-485信号,而下位机的情况较为复杂,对于以计算机为下位的子系统,也需要安装RS-232/RS-485转换板,对于以PC-BASE控制器和远程I/O节点为下位的子系统,其硬件系统支持RS-485通信,不需要安装其他硬件设备就可以实现通信。

  3.2 软件设计

  系统在VC++6.0环境下,使用多线程技术开发监控软件来实现设备系统的集中监控与数据管理,其系统功能模块如图2所示。

  

  图2 VC++监控软件功能结构模块图

  集中监控主机向各子站数据采集控制器和子系统主机发送查询数据指令,并由数据打包模块将指令整理成数据查询报文,通过通讯模块传给数据发送模块与下位设备通讯;有查询报文返回时,再通过通讯模块、数据解包模块将数据还原,然后通过管理模块对数据进行处理和存储,其中内存中的实时数据传给实时监控模块,硬盘中的数据供数据统计分析模块访问。

  软件前台功能设计上,实时监控模块主要包括动态流程图显示、动态曲线显示、实时报警显示、各线路通信状态显示等;数据统计分析模块主要包括总体运行分析、数据检索编辑、历史曲线查询、历史数据统计、输出报表及打印等功能,此外,前台功能还包括各工作线路模块、通讯信息输出模块。系统具有常规SA软件的所有功能,实现了全面监测设备和处理信息的任务。

  多线程串行通讯技术见关键技术部分。

  3.3 串行通信驱动程序的设计

  在通信功能的实现上,可以直接使用的易于实现串口的通信ACtivex控件OMM,但是根据串行通信多类型、设备多的特点,本系统采用了WIN32 API函数来编写串口通信类的方法,方便、灵活地实现了串口通信功能。

  Win32 API是一个复杂函数、消息的集合,它把对串口和其它通信设备的支持与基本输入输出驱动程序集成为一体,系统只需要通过设备控制模块DCB的数据结构对串行口和串行通信驱动程序进行配置。

  串口通信编程实现的基本步骤:打开与外设相连的串口,根据通信协议对通信控制模块(DCB结构)进行配置;然后初始化串口的接收和发送缓冲区大小;进行读写操作;通过校验,对正确接收的数据进行处理;最后在串行通信结束后,关闭串口。

  3.4 数据的提取与传输

  对于需要直接从现场采集运行数据的子系统,一般采用远程I/O节点和基于PC-Based可编程数据采集控制器进行数据采集,并将数据整理成数据帧后发送到485总线上,由上位机对数据进行处理和整合。

  对于已有监控系统的子系统,由于其监控软件大多是组态软件开发的,因此系统采用VC++6.0开发数据传输软件的方式,一般互操作性强的子系统,采用DDE方式可读取实时数据的方法,而针对于软件封闭、互操作性较差的子系统,则采用直接从其数据库或数据文件中读取最新数据的方法,下位软件周期性地监视封闭系统数据库或数据文件的属性,如果属性发生了变化,说明有新的数据写入,提取其最新数据记录,并将数据记录整理成数据帧,存入相应的动态数组中,等待收到上位的查询指令后发送。并将数据通过RS485总线,传送到上位计算机。

  3.5 数据的存储管理

  根据系统多设备、实时更新、数据量大的特点,为了方便对数据的操作,更好地管理和保存数据,整个数据库系统设有实时数据库和历史数据库。实时数据库必须满足实时更新、实时处理的特性,并要利于WEB服务器进行实时动态数据交换,因此实时数据库采用内存数据库和硬盘上的SQL Server2000数据库相结合的方式;历史数据库用来保存存放实时数据库中到期的需要永久保存的数值量数据,历史数据库存储量大,保存时间长,采用SQL Server2000数据库。实时数据库和历史数据库的配合使用,实现了数据的优化管理。

  数据的存储管理主要包括:数据的正确性处理、数据的统计、存储、压缩、备份与定时清除。其中数据的统计主要是对流量型数据进行的统计,数据的压缩主要是对实时数据在写入历史数据库之前的压缩,对于瞬时流量型数据,可以设定不同流量数据的压缩参数(压缩偏差、最小压缩、最大压缩3个条件参数),仅保留超过压缩偏差的数据;其他的实时数据不变化的数据不保存,变化的数据按照设定的数据时间间隔进行简单压缩。

  采用ADO技术实现对数据的操作管理,它能以极高的性能访问数据源,与微软的数据库管理系统SQL Server2000紧密结合。系统封装了3类以ADO方式操作数据库的函数:①创建与数据源联接的函数、提取记录集的函数,关闭记录集和连接的函数等;②记录操作函数(如增加记录函数,修改记录函数,删除记录函数等);③数据管理函数,包括数据的存储、压缩和统计等。

  4、基于WEB的远程实时监测与数据分析

  虽然现场总线对实现面向设备的自动化系统起了巨大的推动作用,但是由于现场总线开放性是有条件的、不彻底的,随着生产规模的扩大和企业的要求,其开放性也越来越不能满足要求。在遇到这一阻碍时,Internet、Intranet、Ether-net这些基于TCP/IP协议的网络发展迅速,与现场总线相比,它们具有技术成熟、网络产品低廉、开发工具丰富等明显的优势,使得测控网络技术在远程监控方面有了很大的突破。从现有的体系结构上来看,目前在工业自动化体系中较为常见且具有很大发展潜力的是B/S结构。

  B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构一种变化或者改进的结构,在传统的C/S(Client/Server)结构中间加上一层,把原来客户机所负责的功能交给中间层来实现,这个中间层即为WEB服务层。即形成了3层结构:表示层(用户界面),功能层(WEB服务器)和数据层(数据库服务器)。与C/S结构相比,B/S结构具有以下优点:①用户端只需安装单一的浏览器软件(如IE),界面统一,使用简单;②由于客户端无需安装专用软件,系统升级时只需更新WEB服务器端的软件,使系统易于维护;③B/S结构采用标准的TCP/IP协议、HTTP协议,有良好的广域网支持,扩展性好,易于实现多用户监控,信息共享程度高。

  系统远程监测采用B/S结构,如图3所示。

  

  图3 远程实时监测结构图

  其中WEB服务器采用Microsoft Windows Server2000、IIS5.0和Internet Explorer系统平台,以技术来发布系统信息。ASP(Active Server Pages,活动服务器页面)是Microsoft公司推出的一种服务器端脚本语言执行环境,ASP技术能够把HTML WEB页面、脚本语言、ActiveX组件等有机地结合起来,形成一个能够在服务器上运行的应用程序,并把按用户要求专门制作的标准HTML页面送给客户端浏览器。

  集中监控软件将实时采集的现场数据在内存中进行处理后,通过VC的ADO数据库访问技术保存到SQL Server2000中的实时数据库(临时数据库Tempdb)和历史数据库(硬盘数据库)中。远程计算机通过WEB浏览器向WEB服务器发出请求,WEB服务器处理后调用相应的ASP文件到数据库上进行查询,查询结果送回WEB服务器后,以HTML页面的形式返回到浏览器。

  基于B/S结构,运用ASP技术,系统实现了流程图动态显示、数据曲线与统计图实时显示、数据实时显示等远程实时监测与数据分析功能。

  5、关键技术

  5.1 基于VC++多线程的串行通信技术

  中央监控软件采用基于多线程的串行通信技术来实现对下位的查询和对数据的接收。上位软件采用多线程的“轮询”+“消息驱动”方式,在主线程中完成打开串口、配置串口、初始化串口并创建辅助通信线程,由辅助通信线程轮流向下位不同设备系统发送查询数据指令,并实时监视串口通信状态,等待下位的回复,一旦查询到数据已经发送到串行口上,辅助线程自动接收数据,并向主线程发送数据接收到的消息,主线程取走数据并进行处理。若上位通讯线程在设定时间内一直未收到下位某子系统对查询指令的回复,则发送查询下一子系统数据的指令,这样通过轮询的方式,所有子系统的数据都被传送到上位。根据现场实际,系统设有相应数量的通信线程,监视对应通信线路的串口状态,同时系统定义了发送、发送完成、接收、接收完成4个消息,以完成原定的消息处理功能。另外,考虑到与同构系统相比,异构系统存在多子系统并存且通信线路较长的特点,所以数据在传输上难免受到外界环境的干扰,为了克服因客观原因带来的通信不稳定,在程序设计上采用重要数据多次发送的方法。图4为RS-485总线通讯方式中上位软件通信线程流程。

  

  图4 上位软件通信线程流程图

  针对串行通信的特点,采用事件(Event)对象来同步串行通信中各线程对通信端口和内存数据的访问,避免引起多线程间的冲突和死锁。具体通过WaitForSingeObject(),SetEvent()和Reset-Event()3个函数来协调重叠I/O的操作。

  5.2 多种通信协议与配置文件的有效配合

  基于VC++的集中监控与数据管理软件相当于整个网络体系结构的心脏,它处理数据的速度、合理的编程构架决定着整个系统的性能。

  根据现场多设备、多系统并存的实际情况,在数据传输上采用了多种数据帧格式,即不同系统设备有不同的数据帧格式,既有原硬件定义帧格式(下位为远程I/O节点的子系统)又有多种自定义帧格式。在数据的校验方法上,采用校验和(CheckSum)方式来校验接收数据正误,方法是将所有传送字符的ASCII码累加后除以255得到的。

  针对系统多设备、多系统的特点,既有直接从现场采集的数据,也有从原有异构系统数据文件中读取的数据;既有模拟量,也有数字量和开关量。这样程序在运行过程中,需要不断修改子系统通信参数,采用修改源程序代码,费时又费力。为了增强程序的灵活性和可扩展性,避免以往组态软件的设计缺陷,系统采用了配置文件与多种数据帧格式相结合的方式,以读取配置文件的方法初始化涉及到每个设备的功能模块。在程序运行前,通过修改配置文件中的信息,灵活地预置了不同设备的通信参数,而无需修改复杂的原程序。系统的配置文件分为两种:通信线路信息文件和数据结构信息。前者包含每条通信线路的端口号、波特率、子系统个数等;后者包括信号个数、信号名称、校验方式等数据帧格式信息。多种数据帧格式和配置文件预置的有效配合,大大提高了系统的灵活性和可扩展性。

  5.3 数据库实现技术

  数据库服务器上应安装比较且功能强大的数据库系统,既方便于WEB服务器进行数据交换,又要能快速存储集中监控层数据。在数据库服务器上建有两种类型的数据库:实时数据库和历史数据库。前者用来存储实时数据,以供WEB服务器进行动态显示,要求有较高的存取速度。后者用来存储每一时段的历史数据,以供用户查询,绘制历史曲线,要求有较大的数据容量。

  严格来说,实时数据库应采用专用的工业实时数据库系统来实现,但是对于测控系统而言,其实时性要求不是太高,一些商用数据库系统如SQL Server 2000等已能满足其要求。考虑到集中监控层数据采集与存储速度为ms级,而远程访问刷新的速度为10s,因此实时数据库采用了内存数据库与SQL Server2000数据库相结合的方式。

  内存实时数据库通过在内存中开辟线性数据结构的顺序表来实现,实现了随机存储,存储速度快,对于存储空间估计,可通过程序提供的动态数组来解决。SQL Server2000实时数据库采用临时数据库Tempdb,由于Tempdb中数据不会象其他的数据库在硬盘中保存,因而在Tempdb中的表上进行的操作比其他数据库要快得多,专为WEB浏览器实时监测页面提供动态访问数据。

  5.4 WEB画面的动态显示技术

  在远程实现动态监测,最好能在浏览器上实现一个类似DCS系统的基于流程图动态显示的人机界面,但由ASP所产生的动态网页在客户端只能显示表格数据,很难产生组态画面、统计图形、曲线等动能,为了更为直观的显示监测画面,在WEB页面中嵌入了JPG图片和Active X控件。

  为了实现动态监测,画面要求实时刷新,系统刷新时间为10s。由于页面中包含了图片、Active X控件,有些流程图体积较大,无法通过WEB达到要求,并且画面在刷新时,由于浏览器重新载入页面资源,还会出现页面闪烁的现象。解决这些问题的唯一方法就是只刷新显示的数据而不刷新流程图,即将动态显示页面分为流程图页面和刷新数据页面,用分为两帧的页面来集成这两个页面。刷新数据页面每隔10s自动刷新,以从服务器端取得最新的数据,然后触发页面中的Javascript函数,自动将最新数据显示在流程图页面上,从而实现了流程图的动态平滑显示。

  6、结束语

  上述分布式异构系统3级测控网络的设计与实现方法,已在北京西站3级网络监测与数据管理系统中成功应用,具有可靠性强、低成本、易于使用、灵活性和可扩展性强的特点。具体体现为:①体系结构先进,方便扩展和与以太网、Internet的网络连接;②功能强大,可开辟多路后台线程,实时监控多种设备系统;③系统具有常规SCA-DA软件所有功能,实现了全面监测设备和处理信息的任务;④系统开放性好,支持TCP/IP协议、RS-485协议,支持标准的管理数据库接口;⑤系统功能灵活,模块化的结构使得用户可以方便地扩充系统功能,更改线路结构,从而很容易地对系统进行放缩。

The End

发布于:2024-12-19,除非注明,否则均为阿赫网原创文章,转载请注明出处。