組態(tài)王報警存儲與查詢例程說明文檔_第1頁
組態(tài)王報警存儲與查詢例程說明文檔_第2頁
組態(tài)王報警存儲與查詢例程說明文檔_第3頁
組態(tài)王報警存儲與查詢例程說明文檔_第4頁
組態(tài)王報警存儲與查詢例程說明文檔_第5頁
已閱讀5頁,還剩22頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

1、報警存儲與查詢例程說明文檔北京亞控科技發(fā)展有限公司2022年1月“報警存儲與查詢”例程說明文檔目 錄1. 功能概述12. 工程實例13. 操作步驟13.1 新建工程13.2 報警配置73.3 進入運行系統(tǒng)143.4 歷史報警查詢154. 注意事項25北京亞控科技發(fā)展有限公司 i1. 功能概述常規(guī)需求:很多工業(yè)現(xiàn)場要求將變量的報警信息進行存儲,并且可以靈活的進行歷史報警的查詢、打印。組態(tài)王中的實現(xiàn)方法:組態(tài)王支持通過ODBC接口將數(shù)據(jù)存儲到關(guān)系數(shù)據(jù)庫中,并且提供KVADODBGrid控件對存儲的歷史報警信息進行條件查詢,并可以對查詢結(jié)果進行打印。關(guān)系數(shù)據(jù)庫可以為Access數(shù)據(jù)庫或者SQLSer

2、ver數(shù)據(jù)庫。2. 工程實例我們通過一個簡單的工程對報警信息的存儲以及歷史報警信息的查詢進行講解。歷史報警的查詢主要根據(jù)日期、報警組為條件進行查詢。報警信息存儲的數(shù)據(jù)庫以Access數(shù)據(jù)庫為例進行。下面就以此為例來演示完成這一現(xiàn)場需求的設(shè)置步驟。3. 操作步驟3.1 新建工程3.1.1 定義設(shè)備新建一個工程,在設(shè)備處新建設(shè)備,我們在本例中定義一個仿真PLC的設(shè)備,設(shè)備列表為“PLC亞控仿真PLC串口” ,設(shè)備名稱為“PLC1”。此仿真PLC可以做為虛擬設(shè)備與組態(tài)王進行通訊。仿真PLC主要有如下的寄存器:自動加1寄存器INCREA,自動減1寄存器DECREA,隨機寄存器RADOM,常量寄存器 S

3、TATIC,常量字符串寄存器STRING,CommErr寄存器。具體的寄存器的使用請參考組態(tài)王IO驅(qū)動幫助。3.1.2 定義變量在數(shù)據(jù)詞典中新建兩個IO變量,變量名稱分別為 壓力、流量,變量類型為IO實數(shù),連接的設(shè)備為前面定義的仿真PLC設(shè)備“PLC1”,寄存器分別為INCREA100,DECREA100,數(shù)據(jù)類型為short,讀寫屬性為“只讀”。這樣壓力變量就會從0開始自動加1,其變化范圍是0到100,流量變量從100開始自動減1,其變化范圍是0到100。變量定義畫面如下圖一、圖二所示:圖一 定義變量壓力圖二 定義變量流量3.1.3 定義報警我們首先定義報警組,在報警組處雙擊進行報警組對話框

4、,點擊“增加”定義兩個報警組,分別為“壓力報警”、“流量報警”,確認完成報警組的定義,如圖三所示:圖三 報警組定義報警組定義完成后。重新編輯變量的定義,在變量定義的“報警定義”選項中我們對這兩個變量進行報警的定義。壓力變量定義報警組名為“壓力報警”,設(shè)置報警限為高、高高限,限值分別為70,95。流量變量定義報警組名為“流量報警”,設(shè)置報警限為低、高報警,報警限值分別為10,90。定義報警畫面如下圖四、圖五所示:圖四 壓力變量報警定義圖五 流量變量報警定義3.1.4 實時報警信息變量的報警就定義完成后,我們新建一個 “實時報警”畫面,在工具箱中選擇報警窗口,然后在畫面上完成報警窗口的制作,雙擊畫

5、面上的報警窗口,為報警窗口命名為“報警”,根據(jù)需要可以對報警窗口進行靈活的配置,詳細的配置可以參考組態(tài)王手冊或者組態(tài)王幫助,但是必須注意報警窗口的名字一定要填寫,如果報警窗口沒有名字,則此報警窗口無效。在畫面上制作兩個按鈕,分別為“畫面切換”、“退出系統(tǒng)”。命令語言如下:畫面切換按鈕:ShowPicture("報警查詢");退出系統(tǒng)按鈕:exit(0);報警窗口定義完成后,如果此時進入運行系統(tǒng),則當出現(xiàn)報警后,報警信息會在報警窗口中出現(xiàn)。需要注意的是,報警窗口顯示的信息在計算機的內(nèi)存中,如果組態(tài)王退出后再進入運行系統(tǒng)則原來的報警并不存在了,也就是說歷史的報警信息并沒有保存下

6、來。下面我們會詳細講解一下如何將報警信息進行保存以方便以后的查詢。3.2 報警配置組態(tài)王報警配置主要分為三個配置選項:文件配置、數(shù)據(jù)庫配置、打印配置。文件配置主要是將報警信息存儲到文件中,文件格式為 *.al2 ,我們可以通過記事本打開此文件對存儲的信息進行瀏覽,因為此存儲格式瀏覽不是很方便,我們現(xiàn)在不推薦客戶使用。數(shù)據(jù)庫配置是將報警信息存儲到關(guān)系數(shù)據(jù)庫中,如Access,SQLServer等,此方式瀏覽、查詢比較方便,本文就是以數(shù)據(jù)庫配置作為講解的重點。打印配置為報警信息的實時打印,需要注意的時打印配置選擇的打印機必須為帶字庫的針式打印機。下面我們主要以Access數(shù)據(jù)庫為例講解報警存儲到數(shù)

7、據(jù)庫的使用配置。3.2.1 建立報警數(shù)據(jù)庫在Access中新建一個空數(shù)據(jù)庫,例如建立路徑為:D: 報警存儲與查詢報警數(shù)據(jù)庫.mdb。在此數(shù)據(jù)庫中創(chuàng)建一個數(shù)據(jù)表:表的名稱為:Alarm。表的字段名稱如下表,字段類型為文本類型。字段名稱說明AlarmDate報警日期AlarmTime報警時間VarName變量名GroupName報警組名AlarmValue報警值LimitValue限值A(chǔ)larmType報警類型Pri優(yōu)先級Quality質(zhì)量位AcrDate事件日期AcrTime事件時間OperatorName操作員名VarComment變量描述ResumeValue恢復值EventType事件類型

8、MachineName工作站名稱IOServerName報警服務(wù)器名稱為了方便客戶使用,在組態(tài)王的安裝盤中已經(jīng)有一個已經(jīng)做好的一個數(shù)據(jù)庫文件,我們可以直接使用。此文件在組態(tài)王的安裝盤的路徑為:Value Pack報警窗數(shù)據(jù)庫,文件名為:報警窗數(shù)據(jù)庫.mdb 。我們可以直接拷貝此文件到計算機的硬盤中直接使用。需要注意的是光盤中的文件為“只讀”屬性,必須將“只讀”屬性去掉才可以。3.2.2 設(shè)置ODBC數(shù)據(jù)源組態(tài)王通過ODBC數(shù)據(jù)源將報警信息存儲到數(shù)據(jù)庫中,因此我們必須先建立ODBC數(shù)據(jù)源。在“控制面板”“管理工具”“ODBC數(shù)據(jù)源” 中建立ODBC數(shù)據(jù)源,點擊“ODBC數(shù)據(jù)源”彈出“ODBC數(shù)據(jù)

9、源管理器”,如下圖六所示:在“用戶DSN”中點擊“添加”,彈出“選擇數(shù)據(jù)源驅(qū)動程序”窗口,如下圖七所示:選擇“Microsoft Access Driver (*.mdb)”驅(qū)動,點擊“完成”。彈出如圖八所示窗口,填寫ODBC數(shù)據(jù)源的名稱,根據(jù)需要對數(shù)據(jù)源進行命名,如“報警”,點擊“選擇(S)”,如圖九示,選擇我們前面定義的數(shù)據(jù)庫文件“D: 報警存儲與查詢報警數(shù)據(jù)庫.mdb”。點擊“確定”完成ODBC數(shù)據(jù)源的定義,如圖十所示。其他數(shù)據(jù)庫如SQLServer的ODBC定義請參考相關(guān)文檔。圖六 ODBC數(shù)據(jù)源管理器圖七 選擇數(shù)據(jù)源的驅(qū)動程序圖八 數(shù)據(jù)源定義圖九 選擇數(shù)據(jù)庫圖十 ODBC數(shù)據(jù)源定義3

10、.2.3 報警配置數(shù)據(jù)庫以及ODBC數(shù)據(jù)源定義完成后,我們進行報警配置中的數(shù)據(jù)庫配置。雙擊組態(tài)王工程瀏覽器的“系統(tǒng)配置”中的“報警配置”,彈出如圖十一的“報警配置”對話框。選擇“數(shù)據(jù)庫配置”選項卡,如圖十二所示:我們根據(jù)需要將“記錄報警事件到數(shù)據(jù)庫”打上勾,點擊報警格式,根據(jù)實際情況對報警格式進行選擇配置,需要注意的是默認的報警格式?jīng)]有選擇報警日期、事件日期,因此必須進行報警格式的配置。圖十一 報警配置圖十二 數(shù)據(jù)庫配置“報警格式”配置如圖十三所示:需要注意的是:在6.52版本之前的報警格式配置中沒有“數(shù)據(jù)庫選項,分月保存報警數(shù)據(jù)表,以日期時間類型保存日期時間”選項。6.52版本增加了此選項。

11、其中“分月保存報警數(shù)據(jù)表”選項如果選中,則保存報警信息的數(shù)據(jù)庫中的數(shù)據(jù)表每月生成一個,并且無需建表,只需要建一個空的數(shù)據(jù)庫即可。采用分月保存的方式的優(yōu)點在于:如果報警信息數(shù)據(jù)量比較大,分表存儲可以提高查詢的速度。缺點在于:無法進行跨月的查詢,在編寫腳本進行查詢時需要考慮查詢的是那一個數(shù)據(jù)表。本文我們還是按照報警信息存儲到一個數(shù)據(jù)表的方式為例進行介紹,也就是說我們不選中“分月保存報警數(shù)據(jù)表”。其他選項需要注意的就是數(shù)據(jù)長度要根據(jù)實際情況進行設(shè)置,并且選中“報警組名”,如果使用描述則“變量描述”也需要選中。報警格式設(shè)置完成后,點擊“確定”返回“數(shù)據(jù)庫配置”畫面,在數(shù)據(jù)源處選擇我們前面定義的數(shù)據(jù)源“

12、報警”。如圖十四所示:點擊“確定”完成報警的配置。圖十三 數(shù)據(jù)庫配置圖十四 數(shù)據(jù)庫配置3.3 進入運行系統(tǒng)畫面開發(fā)完成后保存畫面,在工程瀏覽器的“系統(tǒng)設(shè)置”“設(shè)置運行系統(tǒng)”“主畫面配置”中,將新建的畫面設(shè)置為主畫面。確認后點擊工程瀏覽器的“View”按鈕切換到運行系統(tǒng)。系統(tǒng)運行后會將“實時報警”畫面打開,如下圖十五所示:圖十五 實時報警當有報警產(chǎn)生后,會在報警畫面中顯示當前的報警信息,同時也會將報警信息存儲到Access數(shù)據(jù)庫中。我們可以打開D: 報警存儲與查詢報警數(shù)據(jù)庫.mdb的數(shù)據(jù)庫,打開“Alarm”表,如圖十六所示:報警信息已經(jīng)存儲到數(shù)據(jù)庫中。圖十六 Alarm表3.4 歷史報警查詢前

13、面我們已經(jīng)將報警存儲到數(shù)據(jù)庫中了,下面我們就介紹一下如何對存儲到數(shù)據(jù)庫中的報警進行查詢。我們根據(jù)日期、報警組為例進行報警的查詢。歷史報警的查詢主要是利用KVADODBGrid控件進行查詢。3.4.1 創(chuàng)建KVADODBGrid控件在工程中新建畫面“報警查詢”,單擊工具箱中的“插入通用控件”按鈕則彈出“插入控件”對話框。在“插入控件”對話框內(nèi)選擇“KVADODBGrid  Class”控件,如圖十七所示,在此畫面中放入此控件。雙擊此控件,為控件命名,控件名稱可以根據(jù)需要確定,我們命名為“KV”。圖十七 插入通用控件選擇控件,單擊右鍵,在彈出的菜單中選擇“控件屬性”。彈出控件固有屬性對話

14、框,如下圖十八所示。 點擊“瀏覽”按鈕彈出“數(shù)據(jù)鏈接屬性”如圖十九所示,選擇“連接”選項卡,在“指定數(shù)據(jù)源”處選擇“使用數(shù)據(jù)源名稱”選項,通過下拉列表選擇我們前面所定義的ODBC數(shù)據(jù)源“報警”,點擊“確定”,返回圖十八畫面,“數(shù)據(jù)源”與“數(shù)據(jù)庫”連接完成,下面進行數(shù)據(jù)表的配置。圖十八 KV控件屬性圖十九 數(shù)據(jù)鏈接屬性在“表名稱”處選擇我們需要查詢的數(shù)據(jù)表“Alarm”。選擇完成后,數(shù)據(jù)表的字段會顯示在“有效字段”欄,我們可以將需要的字段添加到右邊,在添加過程中可以對標題以及格式等進行相應的修改,如圖二十所示:點擊“確定”完成對KV控件的配置。圖二十 KV控件配置配置完成后,同時按下鍵

15、盤的“Ctrl”“Alt”“O”可以對控件的列寬進行設(shè)置,我們可以根據(jù)字段內(nèi)容的多少設(shè)置合適的列寬以增加畫面的美觀程度。設(shè)置完成后的畫面如圖二十一所示:圖二十一 運行系統(tǒng)畫面3.4.2 創(chuàng)建日歷控件我們按照日期進行歷史報警的查詢,使用微軟提供的通用控件“Microsoft Date and Time Picker Control ”,此控件在安裝VB或者VC或者Office2000后會在通用控件中找到。插入通過控件,如圖二十二所示:選擇后畫到畫面上,雙擊控件,在“常規(guī)”選項卡中為控件命名為“ADate”,點擊“確定”,保存畫面。再次雙擊日歷控件,選擇“事件”選項卡,在“事件”選項卡中點擊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 );本站點選擇日期=temp;圖二十二 日歷控件圖二十三 控件事件函數(shù)編輯完成后點擊“確認”,完成對日歷控件的設(shè)置。3.4.3 編輯其他畫面如圖二十四所示:制作五個按鈕,其中各個按鈕的命令語言如下:日期報警查詢按鈕:按照選擇的日期對所選日期的所有的報警進行查詢。string w

18、he;whe="AlarmDate='"+本站點選擇日期+"'"KV.Where=whe;KV.FetchData();KV.FetchEnd();壓力報警查詢按鈕:按照選擇的日期對所選日期的壓力報警進行查詢。string whe;whe="AlarmDate='"+本站點選擇日期+"' and GroupName='壓力報警'"KV.Where=whe;KV.FetchData();KV.FetchEnd();流量報警查詢:按照選擇的日期對所選日期的流量報警進行查詢。string whe;whe="AlarmDate='&qu

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論