基于组态王的监控系统设计及数据处理
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于组态王的监控系统设计及数据处理
在某污水处理系统监控系统设计中,笔者采用组态王6.5、单片机、ACCESS 和E×CEL的合设计了整个监控系统。上位机采用研华的工控PC机,系统监控采用组态王软件;底层数据
采集和控制由PLC、单片机、智能仪表完成。由于组态王在数据库功能上比较薄弱,在设计中采用SQL技术将数据保存到MSACCESS2000中,并且通过VBA(VlsuaI Basic For App“cation)编程实现E×CEL对ACCESS数据库的查询。
1 系统概述
系统中存在多种不同类型的监控变量,其中有一部分需要控制的变量(如压力等),这可以用PLC实现控制;有一部分变量只需要采集(如温度、电流等),这些量可以通过用组态王支持的智能仪表进行采集;还有一部分只需要采集的数据由于所用的采集仪表不能和组态王直接通讯,所以采用单片机AT89C52编写程序实现现场数据采集,并采用通用单片机ASC JI 通信协议实现单片机和组态王的数据共享。整个系统结构上采用多级分布式结构,分为2个数据采集站和1个监控总站;按照功能划分本系统则分为设备现场控制、现场数据采集、远程设备监控三部分。底层由PLC、单片机、智能仪表组成.其中,PLC主要完成现场控制设备的控制。单片机和智能仪表完成对现场数据的采集。数据采集站作用是与底层的PLC、单机和智能仪表通讯,获取生产过程的数据,显示工艺流程,历史曲线图,实时曲线图、报警画面、生成数据库等。监控总站与数据采集站通过以太网连接,以获取生产工艺参数,报警记录等数据信息。监控总站可以根据操作人员的选择切换监视各个数据采集系统的运行情况。监控总站计算机还完成网络服务器的功能,将这些生产参数上网传输,实现网络化远程监控。
2软件设计
整个监控软件以组态王6.5作为编辑平台。整个监控系统具有如下主要功能:
1)总体监控:显示采集数据的实时值,组态王通过和底层PLC、智能仪表和单片机通讯,访问相关设备寄存器来获得各设备的运行情况,并通过动画连接、实时曲线等显示出来。
2)历史曲线:显示系统运行的时候各个主要变量的历史记录,可以查询以前的历史记录时段,任意时间的记录。
3)控制功能:在上位机端可对底层PLC、智能仪表进行控制,实现远程控制。
4)数据存储:每隔一定时间将数据保存到ACCESS中,方便以后的查询,所保存的数据
还可以通过E×CEL进行查询,进行二次处理。
5)报警功能:当有事故或故障发生时,微机通过外接音箱发出语音报警,并在微机屏幕上给出提示;报警画面上可以设置报警的上限、上上限、下限和下下限,当超过了设置的范围时就会有报警,保证了系统的安全运行。
6)打印功能:打印各种报表、历史曲线、运行记录、报警数据等。PLC和组态王所支持的智能仪表与组态王之间的通讯不需要编写程序读取设备的内部寄存器的值,相关的驱动程序已经集成在组态王中,只需要在组态王中定义对应的设备,并定义相应的I/O变量即可读取设备内部寄存器的值。而组态王所不支持的仪表则由单片机进行数据采集、转换,并且由单片机通过通用单片机ASCI|通信协议和组态王数据共享。当组态王要读取单片机的数据时,将会向单片机发送基于该协议的读命令包,单片机响应后,将数据发送给组态王,其数
据发送格式也是基于通用单片机ASC||通信协议的。
3数据处理
3.1数据存储
组态王虽然可定义数据文件在硬盘中的保存日期(超过该日期自动从硬盘中删除),但如果要保存的时间较长,保存的数据量将非常庞大,不仅造成硬盘的浪费,而且由于组态王的数据
文件结构形式复杂,年终时报表处理也需要花费大量的处理时间。因此,在本系统中使用SQL技术,将数据隔一定的时间(如1小时)保存到ACCESS2000中。具体实现步骤如下:首先,建立一个ACCESS数据库,在此命名为“变量数据”,并且建立相应的数据表“温度数据”,然后在控制面板中的ODBC数据源中添加一个基于驱动程序AC—CESS DrIver的数据源,在本系统中取名为“工作站”,并将该数据源连接到刚刚建立的ACCESS数据库“变量数据”。在组态王中用语句SQLConnect(DevicelD,“dsn=工作站;uid=;pwd=”)实现和数据库的连接。接着在组态王中建立对应的记录体,记录体名应和数据表名相同;记录体中的字段名称也需和数据表中的字段名称相同。建好记录体后,可以在组态王命令语言中的“运行时”,使用SQ LInsert(DeviceID,“温度数据”,“温度数据”)语句将组态王的数据保存到ACCESS 数据库中,当系统退出运行时语句SQLDISCONNECT(DeviceID)断开和数据库的连接。
3.2数据检索
考虑到组态王提供的报表格式有限,不能满足工程的需要,而使用EXCEL可以方便地进行表格式数据综合管理和分析等二次处理的功能,系统添加了E×CEL对ACCESS数据库进行
查询的功能。EXCEL提供了“宏”的概念来进行功能扩展,宏是存储在VisuaI BasIc模块中的一系列命令和函数,当需要执行该项任务时可随时运行宏。其开发环境称之为VBA(VjsuaIBasic For App¨cation),VBA提供了一套基于VB的面向对象的系统开发工具,很多语法继承于VB语言,可以像编写VB程序那样来编写VBA程序,实现特定的功能。支持VBA二次开发的应用程序都内建许多对象,这些对象都具有方法和属性。VBA通过改变这些对象的属性,调用相应的方法访问这些对象,实现编程目的。ExceI中的VBA,主要在VB 中增加了关于ExceI工作簿、工作表、区域、数据透视表等对象的属性、事件和方法。要使用VBA进行数据库查询必须先添加“×Iodbc.xIa”加载宏,该宏中封装了对数据库访问、搜索、查询的功能,该宏在0f—fice安装盘中可以找到,添加方式为“E×CEL一工具一宏一VisualBasic编辑器一工具一引用”。在使用VBA编程时,首先要注意在E×CEL中工作簿定义为“Workb∞k”工作表为“worksheet”区域为“range”单元为“ce¨”。在编程时对单元格进行操作,必须指明单元格所在的工作表以及所在的区域。以下语句示例将Sheetl 上A1单元格的值设置为3.1,Worksheets(“Sheetl”).Range(“A1”).VaIue=3.1 下面介绍几个重要的数据库检索函数:
chan=SQLOpen(“DSN=server,,) 建立与数据源的连接,其中server为数据源名。SQLExecQuery(ConnectIon,TeXt)函数在该数据源上执行查询。Connection指定要查询的数据源的唯一连接标识;Text要在数据源上执行的查询内容。Set output=Worksheets(“电流”).Range(“A1”)将查询结果显示在表“电流”的A1单元格中。SQLRelrIeve chan,oulput,,,True,False,FaIse 检索先前执行的查询的结果的全部或一部分。SQLCIose chan断开数据库连接。通过在VBA中编程,实现了在E×CEL中对ACCESS数据库的查询,查询的结果可以利用E×CEL强大的数据处理、统计分析功能进行数据的二次处理。