显示工艺流程,历史曲线图,实时曲线图、报警画面、生成数据库等。监控总站与数据采集站通过以太网连接,以获取生产工艺参数报警记录等数据信息监控总站可以根据操作人员的选择切换监视各个数据采集系统的运行情况。监控总站计算机还完成网络服务器的功能,将这些生产参数上网传输,实现网络化远程监控。
二、软件设计
整个监控软件以组态王6.5作为编辑平台。整个监控系统具有如下主要功能:
1)总体监控:显示采集数据的实时值组态王通过和底层PLC,智能仪表和单片机通讯,访问相关设备寄存器来获得各设备的运行情况,并通过动画连接、实时曲线等显示出来
2)历史曲线:显示系统运行的时候各个主要变量的历史记录,可以查询以前的历史记录时段,任意时间的纪录。
3)控制功能:在上位机端可对底层PLC,智能仪表进行控制实现远程控制。
4)数据存储:每隔一定时间将数据保存到ACCESS中,方便以后的查询,所保存的数据还可以通过EXCEL进行查询,进行二次处理。
5)报警功能:当有事故或故障发生时,微机通过外接音箱发出语音报警,并在微机屏幕上给出提示;报警画面上可以设置报警的上限、上上限、下限和下下限当超过了设置的范围时就会有报警,保证了系统的安全运行。
6)打印功能:打印各种报表、历史曲线、运行记录、报警数据等
PLC和组态王所支持的智能仅表与组态王之间的通讯不需要编写程序读取设各的内部寄存器的值,相关的驱动程序已经集成在组态王中,只需要在组态王中定义对应的设备,并定义相应的I/O变量即可读取设备内部寄存器的值。而组态王所不支持的仪表则由单片机进行数据采集、转换,并且由单片机通过通用单片机ASCII通信协议和组态王数据共享。当组态王要读取单片机的数据时,将会向单片机发送基于该协议的读命令包,单片机响应后,将数据发送给组态王,其数据发送格式也是基于通用单片机ASCII通信协议的。
三、数据处理
1.数据存储
组态王虽然可定义数据文件在硬盘中的保存日期(超过该日期自动从硬盘中删除)但如果要保存的时间较长,保存的数据量将非常庞大,不仅造成硬盘的浪费,而且由于组态王的数据文件结构形式复杂,年终时报表处理也需要花费大量的处理时间。因此,在本系统中使用SQL技术,将数据隔一定的时间(如1小时)保存到ACCESS2000中。
具体实现步骤如下:首先,建立一个ACCESS数据库,在此命名为“变量数据”,并且建立相应的数据表“温度数据”,然后在控制面板中的ODBC数据源中添加一个基于驱动程序ACCESSDriver的数据源在本系统中取名为“工作站”,,并将该数据源连接到刚刚建立的ACCESS数据库“变量数据”。在组态王中用语句SQLConnect(DevicelD,“dsn=工作站;uid=;pwd=”)实现和数据库的连接。接着在组态王中建立对应的记录体,记录体名应和数据表名相同;记录体中的字段名称也需和数据表中的字段名称相同。建好记录体后,可以在组态王命令语言中的“运行时”,使用SQLlnsert(DevicelD,“温度数据”,“温度数据勺语句将组态王的数据保存到ACCESS数据库中,当系统退出运行时语句SOLDISCONNECT(DeviceID)断开和数据库的连接。
2.数据检索
考虑到组态王提供的报表格式有限,不能满足工程的需要,而使用EXCEL可以方便地进行表格式数据综合管理和分析等二次处理的功能,系统添加了EXCEL对ACCESS数据库进行查询的功能。EXCEL提供了“宏”,的概念来进行功能扩展宏是存储在Visua-Basic模块中的一系列命令和函数,当需要执行该项任务时可随时运行宏。其开发环境称之为VBA(Visual Basic For Application),VBA提供了一套基于VB的面向对象的系统开发工具很多语法继承于VB语言,可以像编写VB程序那样来编写VBA程序,实现特定的功能。支持VBA二次开发的应用程序都内建许多对象,这些对象都具有方法和属性。VBA通过改变这些对象的属性,调用相应的方法访问这些对象,实现编程目的。Excel中的VBA,主要在VB中增加了关于Excel工作簿、工作表、区域、数据透视表等对象的属性、事件和方法。
要使用VBA进行数据库查询必须先添加\加载宏,该宏中封装了对数据库访问、搜索、查询的功能,该宏在Office安装盘中可以找到,添加方式为“EXCEL-工具-宏-Visual Basic编辑器-工具-引用”
在使用VBA编程时,首先要注意在EXCEL中工作簿定义为\工作表为\区域为\range\元为“cell”在编程时对单元格进行操作必须指明单元格所在的工作表以及所在的区域。以下语句示例将Sheetl上A1单元格的值设置为3.1,Worksheets(\)Range(\)Value=3.1
下面介绍几个重要的数据库检索函数
chan=SQLOpen(\)建立与数据源的连接,其中server为数据源名。
SQLExecQuery(Connection.Text)函数在该数据源上执行查询。
Connection指定要查询的数据源的唯一连接标识Text要在数据源上执行的查询内容。
Setoutput=Worksheets(\电流\)Range(\)将查询结果显示在表“电流”的A1单元格中。
SQLRetrievechan,output,,,True,False.False检索先前执行的查询的结果的全部或一部分。SQLClosechan断开数据库连接。
通过在VBA中编程,实现了在EXCEL中对ACCESS数据库的查询,查询的结果可以利用EXCEL强大的数据处理、统计分析功能进行数据的二次处理。
四、结束语
系统采用SQL技术将数据定时保存到ACCESS数据库中,解决了历史数据库占用磁盘空间大的问题而且保存的数据可以使用EXCEL进行查询,生成EXCEL形式的报表,解决了组态王提供的报表格式不能满足实际标准或实际工程的需要的问题