组态王与VB的加油站实时监控系统的开发与应用
1 引言
工控领域通用组态软件--组态王是运行于microsoft windows98/nt中文平台的全中文界面的组态软件,采用了多线程、com组件等新技术,实现了实时多任务,软件运行稳定可靠。加油站实时监控系统以组态王为主要运行画面,通过对被监控系统的参数设置,在组态王的界面上可以动态地显示下位机的运行状态以及完成对多台加油机各项性能指标的测试,如油罐的液位、水位、温度、压力等值。plc对加油站中的数据进行采样,采样后的数据与预设值比较,通过控制电磁阀对加油站进行实时监控。vb技术作为后台支持,利用自身内部提供的建立数据库的工具—可视化数据管理器建立access数据库,调出组态王报表、历史纪录等,并对记录进行添加、修改或者删除等,进行保存后反馈给组态王系统,以画面形式呈现给用户。系统结构图如图1所示。
2 plc与组态王在系统中的应用
2.1 数据采样与比较
使用plc可对加油站中的数据进行采样,采样后的数据与预设值进行比较,可以对加油站进行实时监控。plc是以微处理器为基础,综合计算机技术和自动化技术而开发的新一代工业控制器。我所使用的plc为欧姆龙公司的omron cpm1a型。将plc与上位机相连,通过编程,采样后得到数据,再通过比较指令,取得结果。
当指令执行时,将通道c1+1,c1中的两个4位16进制数连成一个8位16进制数,将通道c2+1,c2中的两个4位16进制数连成一个8位16进制数,然后比较这两个8位数的大小,将比较结果送sr区的标志位。当(c1+1、c1)>(c2+1、c2)时,大于标志位25505置位为on,执行此标志位后的指令;当(c1+1、c1)=(c2+1、c2)时,等于标志位25506置位为on,执行此标志位后的指令;当(c1+1、c1)<(c2+1、c2)时,小于标志位25507置位为on,执行此标志位后的指令。而此指令通过组态王控制开关量。当采得的数据经比较大于某一个预设值或小于某一个预设值时,对开关量进行自动控制,以使对数据进行实时的监控与控制。
2.2 组态王画面与应用
本系统所使用的是北京亚控科技发展有限公司的组态王6.5版。在开发系统左侧的树形视图中选择“画面”,选择新画面选项,建立一系列新画面,包括:加油机日报表, 加油机油品分类报表, 加油明细查询, 客户信息总量查询, 营业统计,储罐实时测量系统,加油机实时作业图,主画面等。其中储罐实时测量系统、加油机实时作业图中可对加油机进行开关量的控制,而对报表都设有查询功能和打印功能,可对当天或历史的数据进行查询或打印(图2所示)。
3 vb6.0在系统中的应用
利用vb内部的visdata工具建立access数据库,调出组态王历史数据库,并用data数据控件对其中数据进行添加、修改等操作,完成加油登记等功能,对加油站相关信息进行实时更新
3.1 用vb6.0创建数据库数据表
用户可以使用vb6.0内部提供的建立数据数库的工具—可视化数据管理器(visdata)建立access数据库,其步骤如下:
(1) 选择“外接程序(addins)/可视化数据管理器”;
(2) 选择“文件/新建/microsoft/access/vesion 7.0mdb”;
(3) 在“文件名”下输入“报表”,然后按下“添加字段”添加所需字段;
(4) 最后按下“关闭”,然后进行数据的输入。
3.2 用vb6.0连接access数据库数据表
vb6.0应用内置的microsoft database jet engine实现对数据库的访问。jet数据库引擎将数据访问对象上的操作转换成对数据库文件自身的物理操作,来处理所有与各种数据库接口的问题。vb6.0中数据库编程的实质是创建数据访问对象,这些数据访问对象对应于被访问物理数据库的不同部分,如database,field和index对象。vb6.0利用对象的属性和方法实现对数据库的操作,并在vb6.0窗体中使用绑定和非绑定控件显示操作结果并接收用户输入。
数据控件(data control)是vb提供的访问数据库的内部控件,其实它是利用数据访问对象(dao)开发的可视化的工具。它可以通过microsoft jet引擎来打开access、foxpro和paradox等数据库,也可以通过odbc direct访问odbc数据库,data控件可以不用编写代码就能实现对数据库访问,大大简化了编程,使得数据库应用程序原型开发变得很容易。此外,该控件一个很大优点就是在需要的时候可以把vb代码及sql语言结合起来创建完整的应用程序,为数据处理提供高级的编程控制。
在实际使用过程中,需将data控件的几个关键属性值依次设置为:connect=access(连接数据库类型);databasename=d:qihou.mdb(连接数据库名称);recordsourse=线序表(连接记录数据源);recordsettype=2 snapshot(对象recordset的类型)。并且在窗体上放置与字段名相对应的textbox,将其属性值设置为:datasource=“data控件名”;datafield=“对应字段名”。
这样,data控件和recordset对象与数据库的绑定工作已经基本就绪,可以在窗体上放置功能按钮,并编写相应的程序代码以完成对数据库的操作。
例如,如果想添加一个记录,相关代码如下:
sub command1_click()
data1.recordset.addnew
data1.recordset.fields(“单位”)=“武汉门窗公司”
data1.recordset.fields(“车号”)=“鄂a3652”
data1.recordset.update
end sub
4 结束语
综上所述,利用plc对现场数据进行采样和比较,完成控制功能;使用组态王对系统进行画面监控,同时利用vb实现加油登记,完成对油站相关信息的实时更新。整套方案对加油站起到了较好的监控作用,并在实际使用过程中取得了很好的经济效益,具有较高实用价值。
文章版权归西部工控xbgk所有,未经许可不得转载。