1 引言
工控領(lǐng)域通用組態(tài)軟件——組態(tài)王是運行于Microsoft Windows 98/NT中文平臺的全中文界面的組態(tài)軟件,采用了多線程、COM組件等新技術(shù),實現(xiàn)了實時多任務(wù),軟件運行穩(wěn)定可靠。加油站實時監(jiān)控系統(tǒng)以組態(tài)王為主要運行畫面,通過對被監(jiān)控系統(tǒng)的參數(shù)設(shè)置,在組態(tài)王的界面上可以動態(tài)地顯示下位機(jī)的運行狀態(tài)以及完成對多臺加油機(jī)各項性能指標(biāo)的測試,如油罐的液位、水位、溫度、壓力等值。PLC對加油站中的數(shù)據(jù)進(jìn)行采樣,采樣后的數(shù)據(jù)與預(yù)設(shè)值比較,通過控制電磁閥對加油站進(jìn)行實時監(jiān)控。VB技術(shù)作為后臺支持,利用自身內(nèi)部提供的建立數(shù)據(jù)庫的工具—可視化數(shù)據(jù)管理器建立Access數(shù)據(jù)庫,調(diào)出組態(tài)王報表、歷史紀(jì)錄等,并對記錄進(jìn)行添加、修改或者刪除等,進(jìn)行保存后反饋給組態(tài)王系統(tǒng),以畫面形式呈現(xiàn)給用戶。系統(tǒng)結(jié)構(gòu)圖如圖1所示。
2 PLC與組態(tài)王在系統(tǒng)中的應(yīng)用
2.1 數(shù)據(jù)采樣與比較
使用PLC可對加油站中的數(shù)據(jù)進(jìn)行采樣,采樣后的數(shù)據(jù)與預(yù)設(shè)值進(jìn)行比較,可以對加油站進(jìn)行實時監(jiān)控。PLC是以微處理器為基礎(chǔ),綜合計算機(jī)技術(shù)和自動化技術(shù)而開發(fā)的新一代工業(yè)控制器。我所使用的PLC為歐姆龍公司的OMRON CPM1A型。將PLC與上位機(jī)相連,通過編程,采樣后得到數(shù)據(jù),再通過比較指令,取得結(jié)果。
圖1 系統(tǒng)結(jié)構(gòu)框圖
當(dāng)指令執(zhí)行時,將通道C1+1,C1中的兩個4位16進(jìn)制數(shù)連成一個8位16進(jìn)制數(shù),將通道C2+1,C2中的兩個4位16進(jìn)制數(shù)連成一個8位16進(jìn)制數(shù),然后比較這兩個8位數(shù)的大小,將比較結(jié)果送SR區(qū)的標(biāo)志位。當(dāng)(C1+1、C1)>(C2+1、C2)時,大于標(biāo)志位25505置位為ON,執(zhí)行此標(biāo)志位后的指令;當(dāng)(C1+1、C1)=(C2+1、C2)時,等于標(biāo)志位25506置位為ON,執(zhí)行此標(biāo)志位后的指令;當(dāng)(C1+1、C1)<(C2+1、C2)時,小于標(biāo)志位25507置位為ON,執(zhí)行此標(biāo)志位后的指令。而此指令通過組態(tài)王控制開關(guān)量。當(dāng)采得的數(shù)據(jù)經(jīng)比較大于某一個預(yù)設(shè)值或小于某一個預(yù)設(shè)值時,對開關(guān)量進(jìn)行自動控制,以使對數(shù)據(jù)進(jìn)行實時的監(jiān)控與控制。
2.2 組態(tài)王畫面與應(yīng)用
本系統(tǒng)所使用的是北京亞控科技發(fā)展有限公司的組態(tài)王6.5版。在開發(fā)系統(tǒng)左側(cè)的樹形視圖中選擇“畫面”, 選擇新畫面選項,建立一系列新畫面,包括:加油機(jī)日報表, 加油機(jī)油品分類報表, 加油明細(xì)查詢, 客戶信息總量查詢, 營業(yè)統(tǒng)計, 儲罐實時測量系統(tǒng),加油機(jī)實時作業(yè)圖,主畫面等。其中儲罐實時測量系統(tǒng)、加油機(jī)實時作業(yè)圖中可對加油機(jī)進(jìn)行開關(guān)量的控制, 而對報表都設(shè)有查詢功能和打印功能,可對當(dāng)天或歷史的數(shù)據(jù)進(jìn)行查詢或打印(圖2所示)。
圖2 組態(tài)王畫面示意圖
3 VB6.0在系統(tǒng)中的應(yīng)用
利用VB內(nèi)部的VisData工具建立Access數(shù)據(jù)庫,調(diào)出組態(tài)王歷史數(shù)據(jù)庫,并用Data數(shù)據(jù)控件對其中數(shù)據(jù)進(jìn)行添加、修改等操作,完成加油登記等功能,對加油站相關(guān)信息進(jìn)行實時更新
3.1 用VB6.0創(chuàng)建數(shù)據(jù)庫數(shù)據(jù)表
用戶可以使用VB6.0內(nèi)部提供的建立數(shù)據(jù)數(shù)庫的工具—可視化數(shù)據(jù)管理器(VisData)建立Access數(shù)據(jù)庫,其步驟如下:
(1) 選擇“外接程序(AddIns)/可視化數(shù)據(jù)管理器”;
(2) 選擇“文件/新建/Microsoft/Access/Vesion 7.0MDB”;
(3) 在“文件名”下輸入“報表”,然后按下“添加字段”添加所需字段;
(4) 最后按下“關(guān)閉”,然后進(jìn)行數(shù)據(jù)的輸入。
3.2 用VB6.0連接Access數(shù)據(jù)庫數(shù)據(jù)表
VB6.0應(yīng)用內(nèi)置的Microsoft Database Jet Engine實現(xiàn)對數(shù)據(jù)庫的訪問。Jet數(shù)據(jù)庫引擎將數(shù)據(jù)訪問對象上的操作轉(zhuǎn)換成對數(shù)據(jù)庫文件自身的物理操作,來處理所有與各種數(shù)據(jù)庫接口的問題。VB6.0中數(shù)據(jù)庫編程的實質(zhì)是創(chuàng)建數(shù)據(jù)訪問對象,這些數(shù)據(jù)訪問對象對應(yīng)于被訪問物理數(shù)據(jù)庫的不同部分,如Database,F(xiàn)ield和Index對象。VB6.0利用對象的屬性和方法實現(xiàn)對數(shù)據(jù)庫的操作,并在VB6.0窗體中使用綁定和非綁定控件顯示操作結(jié)果并接收用戶輸入。
數(shù)據(jù)控件(Data Control)是VB提供的訪問數(shù)據(jù)庫的內(nèi)部控件,其實它是利用數(shù)據(jù)訪問對象(DAO)開發(fā)的可視化的工具。它可以通過Microsoft Jet引擎來打開Access、FoxPro和Paradox等數(shù)據(jù)庫,也可以通過ODBC Direct訪問ODBC數(shù)據(jù)庫,Data控件可以不用編寫代碼就能實現(xiàn)對數(shù)據(jù)庫訪問,大大簡化了編程,使得數(shù)據(jù)庫應(yīng)用程序原型開發(fā)變得很容易。此外,該控件一個很大優(yōu)點就是在需要的時候可以把VB代碼及SQL語言結(jié)合起來創(chuàng)建完整的應(yīng)用程序,為數(shù)據(jù)處理提供高級的編程控制。
在實際使用過程中,需將Data控件的幾個關(guān)鍵屬性值依次設(shè)置為:Connect=Access(連接數(shù)據(jù)庫類型);Databasename=d:qihou.mdb(連接數(shù)據(jù)庫名稱);Recordsourse=線序表(連接記錄數(shù)據(jù)源);Recordsettype=2 Snapshot(對象Recordset的類型)。并且在窗體上放置與字段名相對應(yīng)的Textbox,將其屬性值設(shè)置為:Datasource=“Data控件名”;Datafield=“對應(yīng)字段名”。
這樣,Data控件和RecordSet對象與數(shù)據(jù)庫的綁定工作已經(jīng)基本就緒,可以在窗體上放置功能按鈕,并編寫相應(yīng)的程序代碼以完成對數(shù)據(jù)庫的操作。
例如,如果想添加一個記錄,相關(guān)代碼如下:
Sub Command1_Click()
Data1.RecordSet.AddNew
Data1.RecordSet.Fields(“單位”)=“武漢門窗公司”
Data1.RecordSet.Fields(“車號”)=“鄂A3652”
Data1.RecordSet.Update
End Sub
4 結(jié)束語
綜上所述,利用PLC對現(xiàn)場數(shù)據(jù)進(jìn)行采樣和比較,完成控制功能;使用組態(tài)王對系統(tǒng)進(jìn)行畫面監(jiān)控,同時利用VB實現(xiàn)加油登記,完成對油站相關(guān)信息的實時更新。整套方案對加油站起到了較好的監(jiān)控作用,并在實際使用過程中取得了很好的經(jīng)濟(jì)效益,具有較高實用價值。