




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、報(bào)警存儲(chǔ)與查詢例程說明文檔北京亞控科技發(fā)展有限公司2022年1月“報(bào)警存儲(chǔ)與查詢”例程說明文檔目 錄1. 功能概述12. 工程實(shí)例13. 操作步驟13.1 新建工程13.2 報(bào)警配置73.3 進(jìn)入運(yùn)行系統(tǒng)143.4 歷史報(bào)警查詢154. 注意事項(xiàng)25北京亞控科技發(fā)展有限公司 i1. 功能概述常規(guī)需求:很多工業(yè)現(xiàn)場(chǎng)要求將變量的報(bào)警信息進(jìn)行存儲(chǔ),并且可以靈活的進(jìn)行歷史報(bào)警的查詢、打印。組態(tài)王中的實(shí)現(xiàn)方法:組態(tài)王支持通過ODBC接口將數(shù)據(jù)存儲(chǔ)到關(guān)系數(shù)據(jù)庫中,并且提供KVADODBGrid控件對(duì)存儲(chǔ)的歷史報(bào)警信息進(jìn)行條件查詢,并可以對(duì)查詢結(jié)果進(jìn)行打印。關(guān)系數(shù)據(jù)庫可以為Access數(shù)據(jù)庫或者SQLSer
2、ver數(shù)據(jù)庫。2. 工程實(shí)例我們通過一個(gè)簡(jiǎn)單的工程對(duì)報(bào)警信息的存儲(chǔ)以及歷史報(bào)警信息的查詢進(jìn)行講解。歷史報(bào)警的查詢主要根據(jù)日期、報(bào)警組為條件進(jìn)行查詢。報(bào)警信息存儲(chǔ)的數(shù)據(jù)庫以Access數(shù)據(jù)庫為例進(jìn)行。下面就以此為例來演示完成這一現(xiàn)場(chǎng)需求的設(shè)置步驟。3. 操作步驟3.1 新建工程3.1.1 定義設(shè)備新建一個(gè)工程,在設(shè)備處新建設(shè)備,我們?cè)诒纠卸x一個(gè)仿真PLC的設(shè)備,設(shè)備列表為“PLC亞控仿真PLC串口” ,設(shè)備名稱為“PLC1”。此仿真PLC可以做為虛擬設(shè)備與組態(tài)王進(jìn)行通訊。仿真PLC主要有如下的寄存器:自動(dòng)加1寄存器INCREA,自動(dòng)減1寄存器DECREA,隨機(jī)寄存器RADOM,常量寄存器 S
3、TATIC,常量字符串寄存器STRING,CommErr寄存器。具體的寄存器的使用請(qǐng)參考組態(tài)王IO驅(qū)動(dòng)幫助。3.1.2 定義變量在數(shù)據(jù)詞典中新建兩個(gè)IO變量,變量名稱分別為 壓力、流量,變量類型為IO實(shí)數(shù),連接的設(shè)備為前面定義的仿真PLC設(shè)備“PLC1”,寄存器分別為INCREA100,DECREA100,數(shù)據(jù)類型為short,讀寫屬性為“只讀”。這樣壓力變量就會(huì)從0開始自動(dòng)加1,其變化范圍是0到100,流量變量從100開始自動(dòng)減1,其變化范圍是0到100。變量定義畫面如下圖一、圖二所示:圖一 定義變量壓力圖二 定義變量流量3.1.3 定義報(bào)警我們首先定義報(bào)警組,在報(bào)警組處雙擊進(jìn)行報(bào)警組對(duì)話框
4、,點(diǎn)擊“增加”定義兩個(gè)報(bào)警組,分別為“壓力報(bào)警”、“流量報(bào)警”,確認(rèn)完成報(bào)警組的定義,如圖三所示:圖三 報(bào)警組定義報(bào)警組定義完成后。重新編輯變量的定義,在變量定義的“報(bào)警定義”選項(xiàng)中我們對(duì)這兩個(gè)變量進(jìn)行報(bào)警的定義。壓力變量定義報(bào)警組名為“壓力報(bào)警”,設(shè)置報(bào)警限為高、高高限,限值分別為70,95。流量變量定義報(bào)警組名為“流量報(bào)警”,設(shè)置報(bào)警限為低、高報(bào)警,報(bào)警限值分別為10,90。定義報(bào)警畫面如下圖四、圖五所示:圖四 壓力變量報(bào)警定義圖五 流量變量報(bào)警定義3.1.4 實(shí)時(shí)報(bào)警信息變量的報(bào)警就定義完成后,我們新建一個(gè) “實(shí)時(shí)報(bào)警”畫面,在工具箱中選擇報(bào)警窗口,然后在畫面上完成報(bào)警窗口的制作,雙擊畫
5、面上的報(bào)警窗口,為報(bào)警窗口命名為“報(bào)警”,根據(jù)需要可以對(duì)報(bào)警窗口進(jìn)行靈活的配置,詳細(xì)的配置可以參考組態(tài)王手冊(cè)或者組態(tài)王幫助,但是必須注意報(bào)警窗口的名字一定要填寫,如果報(bào)警窗口沒有名字,則此報(bào)警窗口無效。在畫面上制作兩個(gè)按鈕,分別為“畫面切換”、“退出系統(tǒng)”。命令語言如下:畫面切換按鈕:ShowPicture("報(bào)警查詢");退出系統(tǒng)按鈕:exit(0);報(bào)警窗口定義完成后,如果此時(shí)進(jìn)入運(yùn)行系統(tǒng),則當(dāng)出現(xiàn)報(bào)警后,報(bào)警信息會(huì)在報(bào)警窗口中出現(xiàn)。需要注意的是,報(bào)警窗口顯示的信息在計(jì)算機(jī)的內(nèi)存中,如果組態(tài)王退出后再進(jìn)入運(yùn)行系統(tǒng)則原來的報(bào)警并不存在了,也就是說歷史的報(bào)警信息并沒有保存下
6、來。下面我們會(huì)詳細(xì)講解一下如何將報(bào)警信息進(jìn)行保存以方便以后的查詢。3.2 報(bào)警配置組態(tài)王報(bào)警配置主要分為三個(gè)配置選項(xiàng):文件配置、數(shù)據(jù)庫配置、打印配置。文件配置主要是將報(bào)警信息存儲(chǔ)到文件中,文件格式為 *.al2 ,我們可以通過記事本打開此文件對(duì)存儲(chǔ)的信息進(jìn)行瀏覽,因?yàn)榇舜鎯?chǔ)格式瀏覽不是很方便,我們現(xiàn)在不推薦客戶使用。數(shù)據(jù)庫配置是將報(bào)警信息存儲(chǔ)到關(guān)系數(shù)據(jù)庫中,如Access,SQLServer等,此方式瀏覽、查詢比較方便,本文就是以數(shù)據(jù)庫配置作為講解的重點(diǎn)。打印配置為報(bào)警信息的實(shí)時(shí)打印,需要注意的時(shí)打印配置選擇的打印機(jī)必須為帶字庫的針式打印機(jī)。下面我們主要以Access數(shù)據(jù)庫為例講解報(bào)警存儲(chǔ)到數(shù)
7、據(jù)庫的使用配置。3.2.1 建立報(bào)警數(shù)據(jù)庫在Access中新建一個(gè)空數(shù)據(jù)庫,例如建立路徑為:D: 報(bào)警存儲(chǔ)與查詢報(bào)警數(shù)據(jù)庫.mdb。在此數(shù)據(jù)庫中創(chuàng)建一個(gè)數(shù)據(jù)表:表的名稱為:Alarm。表的字段名稱如下表,字段類型為文本類型。字段名稱說明AlarmDate報(bào)警日期AlarmTime報(bào)警時(shí)間VarName變量名GroupName報(bào)警組名AlarmValue報(bào)警值LimitValue限值A(chǔ)larmType報(bào)警類型Pri優(yōu)先級(jí)Quality質(zhì)量位AcrDate事件日期AcrTime事件時(shí)間OperatorName操作員名VarComment變量描述ResumeValue恢復(fù)值EventType事件類型
8、MachineName工作站名稱IOServerName報(bào)警服務(wù)器名稱為了方便客戶使用,在組態(tài)王的安裝盤中已經(jīng)有一個(gè)已經(jīng)做好的一個(gè)數(shù)據(jù)庫文件,我們可以直接使用。此文件在組態(tài)王的安裝盤的路徑為:Value Pack報(bào)警窗數(shù)據(jù)庫,文件名為:報(bào)警窗數(shù)據(jù)庫.mdb 。我們可以直接拷貝此文件到計(jì)算機(jī)的硬盤中直接使用。需要注意的是光盤中的文件為“只讀”屬性,必須將“只讀”屬性去掉才可以。3.2.2 設(shè)置ODBC數(shù)據(jù)源組態(tài)王通過ODBC數(shù)據(jù)源將報(bào)警信息存儲(chǔ)到數(shù)據(jù)庫中,因此我們必須先建立ODBC數(shù)據(jù)源。在“控制面板”“管理工具”“ODBC數(shù)據(jù)源” 中建立ODBC數(shù)據(jù)源,點(diǎn)擊“ODBC數(shù)據(jù)源”彈出“ODBC數(shù)據(jù)
9、源管理器”,如下圖六所示:在“用戶DSN”中點(diǎn)擊“添加”,彈出“選擇數(shù)據(jù)源驅(qū)動(dòng)程序”窗口,如下圖七所示:選擇“Microsoft Access Driver (*.mdb)”驅(qū)動(dòng),點(diǎn)擊“完成”。彈出如圖八所示窗口,填寫ODBC數(shù)據(jù)源的名稱,根據(jù)需要對(duì)數(shù)據(jù)源進(jìn)行命名,如“報(bào)警”,點(diǎn)擊“選擇(S)”,如圖九示,選擇我們前面定義的數(shù)據(jù)庫文件“D: 報(bào)警存儲(chǔ)與查詢報(bào)警數(shù)據(jù)庫.mdb”。點(diǎn)擊“確定”完成ODBC數(shù)據(jù)源的定義,如圖十所示。其他數(shù)據(jù)庫如SQLServer的ODBC定義請(qǐng)參考相關(guān)文檔。圖六 ODBC數(shù)據(jù)源管理器圖七 選擇數(shù)據(jù)源的驅(qū)動(dòng)程序圖八 數(shù)據(jù)源定義圖九 選擇數(shù)據(jù)庫圖十 ODBC數(shù)據(jù)源定義3
10、.2.3 報(bào)警配置數(shù)據(jù)庫以及ODBC數(shù)據(jù)源定義完成后,我們進(jìn)行報(bào)警配置中的數(shù)據(jù)庫配置。雙擊組態(tài)王工程瀏覽器的“系統(tǒng)配置”中的“報(bào)警配置”,彈出如圖十一的“報(bào)警配置”對(duì)話框。選擇“數(shù)據(jù)庫配置”選項(xiàng)卡,如圖十二所示:我們根據(jù)需要將“記錄報(bào)警事件到數(shù)據(jù)庫”打上勾,點(diǎn)擊報(bào)警格式,根據(jù)實(shí)際情況對(duì)報(bào)警格式進(jìn)行選擇配置,需要注意的是默認(rèn)的報(bào)警格式?jīng)]有選擇報(bào)警日期、事件日期,因此必須進(jìn)行報(bào)警格式的配置。圖十一 報(bào)警配置圖十二 數(shù)據(jù)庫配置“報(bào)警格式”配置如圖十三所示:需要注意的是:在6.52版本之前的報(bào)警格式配置中沒有“數(shù)據(jù)庫選項(xiàng),分月保存報(bào)警數(shù)據(jù)表,以日期時(shí)間類型保存日期時(shí)間”選項(xiàng)。6.52版本增加了此選項(xiàng)。
11、其中“分月保存報(bào)警數(shù)據(jù)表”選項(xiàng)如果選中,則保存報(bào)警信息的數(shù)據(jù)庫中的數(shù)據(jù)表每月生成一個(gè),并且無需建表,只需要建一個(gè)空的數(shù)據(jù)庫即可。采用分月保存的方式的優(yōu)點(diǎn)在于:如果報(bào)警信息數(shù)據(jù)量比較大,分表存儲(chǔ)可以提高查詢的速度。缺點(diǎn)在于:無法進(jìn)行跨月的查詢,在編寫腳本進(jìn)行查詢時(shí)需要考慮查詢的是那一個(gè)數(shù)據(jù)表。本文我們還是按照?qǐng)?bào)警信息存儲(chǔ)到一個(gè)數(shù)據(jù)表的方式為例進(jìn)行介紹,也就是說我們不選中“分月保存報(bào)警數(shù)據(jù)表”。其他選項(xiàng)需要注意的就是數(shù)據(jù)長(zhǎng)度要根據(jù)實(shí)際情況進(jìn)行設(shè)置,并且選中“報(bào)警組名”,如果使用描述則“變量描述”也需要選中。報(bào)警格式設(shè)置完成后,點(diǎn)擊“確定”返回“數(shù)據(jù)庫配置”畫面,在數(shù)據(jù)源處選擇我們前面定義的數(shù)據(jù)源“
12、報(bào)警”。如圖十四所示:點(diǎn)擊“確定”完成報(bào)警的配置。圖十三 數(shù)據(jù)庫配置圖十四 數(shù)據(jù)庫配置3.3 進(jìn)入運(yùn)行系統(tǒng)畫面開發(fā)完成后保存畫面,在工程瀏覽器的“系統(tǒng)設(shè)置”“設(shè)置運(yùn)行系統(tǒng)”“主畫面配置”中,將新建的畫面設(shè)置為主畫面。確認(rèn)后點(diǎn)擊工程瀏覽器的“View”按鈕切換到運(yùn)行系統(tǒng)。系統(tǒng)運(yùn)行后會(huì)將“實(shí)時(shí)報(bào)警”畫面打開,如下圖十五所示:圖十五 實(shí)時(shí)報(bào)警當(dāng)有報(bào)警產(chǎn)生后,會(huì)在報(bào)警畫面中顯示當(dāng)前的報(bào)警信息,同時(shí)也會(huì)將報(bào)警信息存儲(chǔ)到Access數(shù)據(jù)庫中。我們可以打開D: 報(bào)警存儲(chǔ)與查詢報(bào)警數(shù)據(jù)庫.mdb的數(shù)據(jù)庫,打開“Alarm”表,如圖十六所示:報(bào)警信息已經(jīng)存儲(chǔ)到數(shù)據(jù)庫中。圖十六 Alarm表3.4 歷史報(bào)警查詢前
13、面我們已經(jīng)將報(bào)警存儲(chǔ)到數(shù)據(jù)庫中了,下面我們就介紹一下如何對(duì)存儲(chǔ)到數(shù)據(jù)庫中的報(bào)警進(jìn)行查詢。我們根據(jù)日期、報(bào)警組為例進(jìn)行報(bào)警的查詢。歷史報(bào)警的查詢主要是利用KVADODBGrid控件進(jìn)行查詢。3.4.1 創(chuàng)建KVADODBGrid控件在工程中新建畫面“報(bào)警查詢”,單擊工具箱中的“插入通用控件”按鈕則彈出“插入控件”對(duì)話框。在“插入控件”對(duì)話框內(nèi)選擇“KVADODBGrid Class”控件,如圖十七所示,在此畫面中放入此控件。雙擊此控件,為控件命名,控件名稱可以根據(jù)需要確定,我們命名為“KV”。圖十七 插入通用控件選擇控件,單擊右鍵,在彈出的菜單中選擇“控件屬性”。彈出控件固有屬性對(duì)話
14、框,如下圖十八所示。 點(diǎn)擊“瀏覽”按鈕彈出“數(shù)據(jù)鏈接屬性”如圖十九所示,選擇“連接”選項(xiàng)卡,在“指定數(shù)據(jù)源”處選擇“使用數(shù)據(jù)源名稱”選項(xiàng),通過下拉列表選擇我們前面所定義的ODBC數(shù)據(jù)源“報(bào)警”,點(diǎn)擊“確定”,返回圖十八畫面,“數(shù)據(jù)源”與“數(shù)據(jù)庫”連接完成,下面進(jìn)行數(shù)據(jù)表的配置。圖十八 KV控件屬性圖十九 數(shù)據(jù)鏈接屬性在“表名稱”處選擇我們需要查詢的數(shù)據(jù)表“Alarm”。選擇完成后,數(shù)據(jù)表的字段會(huì)顯示在“有效字段”欄,我們可以將需要的字段添加到右邊,在添加過程中可以對(duì)標(biāo)題以及格式等進(jìn)行相應(yīng)的修改,如圖二十所示:點(diǎn)擊“確定”完成對(duì)KV控件的配置。圖二十 KV控件配置配置完成后,同時(shí)按下鍵
15、盤的“Ctrl”“Alt”“O”可以對(duì)控件的列寬進(jìn)行設(shè)置,我們可以根據(jù)字段內(nèi)容的多少設(shè)置合適的列寬以增加畫面的美觀程度。設(shè)置完成后的畫面如圖二十一所示:圖二十一 運(yùn)行系統(tǒng)畫面3.4.2 創(chuàng)建日歷控件我們按照日期進(jìn)行歷史報(bào)警的查詢,使用微軟提供的通用控件“Microsoft Date and Time Picker Control ”,此控件在安裝VB或者VC或者Office2000后會(huì)在通用控件中找到。插入通過控件,如圖二十二所示:選擇后畫到畫面上,雙擊控件,在“常規(guī)”選項(xiàng)卡中為控件命名為“ADate”,點(diǎn)擊“確定”,保存畫面。再次雙擊日歷控件,選擇“事件”選項(xiàng)卡,在“事件”選項(xiàng)卡中點(diǎn)擊Clo
16、seUp事件,彈出控件事件函數(shù)編輯窗口,在函數(shù)聲明中為此函數(shù)命名:CloseUp1();在編輯窗口中編寫腳本程序,如圖二十三所示:在編寫腳本程序之前在數(shù)據(jù)詞典中定義字符串變量“選擇日期”,編寫腳本程序如下:float Ayear;float Amonth;float Aday;string temp;Ayear=ADate.Year;Amonth=ADate.Month;Aday=ADate.Day;temp=StrFromInt( Ayear, 10 );if(Amonth<10)temp=temp+"/0"+StrFromInt( Amonth, 10 );els
17、etemp=temp+"/"+StrFromInt( Amonth, 10 );if(Aday<10)temp=temp+"/0"+StrFromInt( Aday, 10 );elsetemp=temp+"/"+StrFromInt( Aday, 10 );本站點(diǎn)選擇日期=temp;圖二十二 日歷控件圖二十三 控件事件函數(shù)編輯完成后點(diǎn)擊“確認(rèn)”,完成對(duì)日歷控件的設(shè)置。3.4.3 編輯其他畫面如圖二十四所示:制作五個(gè)按鈕,其中各個(gè)按鈕的命令語言如下:日期報(bào)警查詢按鈕:按照選擇的日期對(duì)所選日期的所有的報(bào)警進(jìn)行查詢。string w
18、he;whe="AlarmDate='"+本站點(diǎn)選擇日期+"'"KV.Where=whe;KV.FetchData();KV.FetchEnd();壓力報(bào)警查詢按鈕:按照選擇的日期對(duì)所選日期的壓力報(bào)警進(jìn)行查詢。string whe;whe="AlarmDate='"+本站點(diǎn)選擇日期+"' and GroupName='壓力報(bào)警'"KV.Where=whe;KV.FetchData();KV.FetchEnd();流量報(bào)警查詢:按照選擇的日期對(duì)所選日期的流量報(bào)警進(jìn)行查詢。string whe;whe="AlarmDate='&qu
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 社區(qū)管線改造方案范本
- 基層醫(yī)療衛(wèi)生機(jī)構(gòu)提升改造項(xiàng)目可行性研究報(bào)告(范文參考)
- 城市地下管網(wǎng)升級(jí)改造項(xiàng)目可行性研究報(bào)告
- 修路鋪設(shè)路基施工方案
- 長(zhǎng)沙地鐵3號(hào)線施工方案
- 汽車指標(biāo)租賃協(xié)議經(jīng)典模板
- 北碚寫字樓地板施工方案
- 沖壓協(xié)議合同范例
- 醫(yī)療公司購銷合同范例
- 個(gè)人用車合同范例
- 2024年海南省煙草專賣局招聘考試真題
- GB/T 45191-2025桑蠶一代雜交種
- 2024年宿州農(nóng)商銀行社會(huì)招聘筆試真題
- 2025年黑龍江省高職單招《語文》備考重點(diǎn)試題庫(含真題)
- 食材配送服務(wù)方案投標(biāo)文件(技術(shù)標(biāo))
- 貴州省安順市2025屆高三年級(jí)第四次監(jiān)測(cè)考試2月語文試題及參考答案
- 《國(guó)防動(dòng)員實(shí)施》課件
- 2025年度教育培訓(xùn)機(jī)構(gòu)股權(quán)合作協(xié)議范本
- 《個(gè)人信息保護(hù)法》考試參考試題庫100題(含答案)
- 2024年安徽省省情知識(shí)競(jìng)賽題庫及答案
- 2024年蘇州職業(yè)大學(xué)高職單招語文歷年參考題庫含答案解析
評(píng)論
0/150
提交評(píng)論