




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
我們畢業啦其實是答辯的標題地方工控組態及應用5.1報警和事件概述5.2報警定義5.3事件類型5.4聲光報警工程實例第五章報警和事件系統5.5蜂鳴器報警工程實例5.6語音報警工程實例5.7本章小結第五章報警和事件系統”5.1報警和事件概述
報警是指當系統中某些量的值超過了所規定的界限時,系統自動產生相應警告信息,表明該量的值已經超限,提醒操作人員。事件是指用戶對系統的行為、動作。如修改了某個變量的值,用戶的登錄、注銷,站點的啟動、退出等。組態王中報警和事件的處理方法是:當報警和事件發生時,組態王把這些信息存于內存中的緩沖區中,報警和事件在緩沖區中是以先進先出的隊列形式存儲,所以只有最近的報警和事件在內存中。當緩沖區達到指定數目或記錄定時時間到時,系統自動將報警和事件信息進行記錄。報警的記錄可以是文本文件、開放式數據庫或打印機。另外,用戶可以從人機界面提供的報警窗中查看報警和事件信息。5.2報警定義
往往在監控系統中,為了方便查看、記錄和區別,要將變量產生的報警信息歸到不同的組中,即使變量的報警信息屬于某個規定的報警組。報警組是按樹狀組織的結構,缺省時只有一個根節點,缺省名為RootNode(可以改成其他名字)。可以通過報警組定義對話框為這個結構加入多個節點和子節點。原理圖如圖5-1所示:5.2.1定義報警組第五章報警和事件系統”圖5-1報警組結構
組態王中最多可以定義512個節點的報警組。通過報警組名可以按組處理變量的報警事件。定義報警組后,組態王會按照定義報警組的先后順序為每一個報警組設定一個ID號。在工程瀏覽器點擊“系統→數據庫→報警組”;在左側內容框里雙擊“請雙擊這里進入<報警組>對話框...”圖標,出現“報警組定義”對話框;選中“RootNode”(默認為選中),單擊“增加”按鈕,彈出“增加報警組”對話框,如圖5-2所示,在對話框內輸入“反應車間”:圖5-2增加報警組對話框第五章報警和事件系統”
點擊“確定”后,在“RootNode”報警組下,會出現一個“反應車間”報警組節點。選中“RootNode”報警組,單擊“增加”按鈕,輸入“煉鋼車間”確定后,在“RootNode”報警組下,會再出現一個“煉鋼車間”報警組節點。選中“反應車間”報警組,單擊“增加”按鈕,輸入“液位”,則在“反應車間”報警組下,會出現一個“液位”報警組節點。最后在“報警組定義”框下點擊“確定”完成整個定義的過程。如圖5-3所示:圖5-3報警組定義對話框第五章報警和事件系統”圖5-4變量“報警定義”屬性頁
在組態王工程瀏覽器“數據庫→數據詞典”中新建一個變量或選擇一個原有變量雙擊它,在彈出的“定義變量”對話框上選擇“報警定義”屬性頁,如圖5-4所示:5.2.2定義變量的報警屬性第五章報警和事件系統”●單擊“報警組名”標簽后的按鈕,會彈出“選擇報警組”對話框,在該對話框中將列出所有已定義的報警組,選擇其一,確認后,則該變量的報警信息就屬于當前選中的報警組。●“優先級”主要是指報警的級別,主要有利于操作人員區別報警的緊急程度。報警優先級的范圍為1~999,1為最高,999最低。●“報警限”是指模擬量的值在跨越規定的高低報警限時產生的報警。越限類型的報警可以定義其中一種,任意幾種或全部類型,在變量值發生變化時,如果跨越某一個限值,立即發生越限報警,某個時刻,對于一個變量,只可能越一種限,因此只產生一種越限報警。●“變化率報警”是指模擬量的值在一段時間內產生的變化速度超過了指定的數值而產生的報警,即變量變化太快時產生的報警。系統運行過程中,每當變量發生一次變化,系統都會自動計算變量變化的速度,以確定是否產生報警。其中報警類型單位對應的值定義為:如果報警類型為秒,則該值為1;如果報警類型為分,則該值為60;如果報警類型為時,則該值為3600。取計算結果的整數部分的絕對值作為結果,若計算結果大于等于報警極限值,則立即產生報警。變化率小于報警極限值時,報警恢復。●“偏差報警”是指模擬量的值相對目標值上下波動超過指定的變化范圍時產生的報警。偏差報警可以分為小偏差和大偏差報警兩種。在使用時可以按照需要定義一種偏差報警或兩種都使用。變量變化的過程中,當波動的數值超出大小偏差范圍時,分別產生大偏差報警和小偏差報警,同一時刻不會產生兩種類型的偏差報警。第五章報警和事件系統”●“報警死區”的作用是為了防止變量值在報警限上下頻繁波動時,產生許多不真實的報警,在原報警限上下增加一個報警限的閾值,使原報警限界線變為一條報警限帶,當變量的值在報警限帶范圍內變化時,不會產生和恢復報警,而一旦超出該范圍時,才產生報警信息。這樣對消除波動信號的無效報警有積極的作用。●“報警延時”是對系統當前產生的報警信息并不提供顯示和記錄,而是進行延時,在延時時間到后,如果該報警不存在了,表明該報警可能是一個誤報警,不用理會,系統自動清除;如果延時到后,該報警還存在,表明這是一個真實的報警,系統將其添加到報警緩沖區中,進行顯示和記錄。如果定時期間,有新的報警產生,則重新開始定時。●“開關量報警”只有離散型變量能設置,在報警屬性頁中報警組名、優先級和擴展域的定義與模擬量定義相同。在“開關量報警”組內選擇“離散”選項,三種類型的選項變為有效。定義時,三種報警類型只能選擇一種:“開通”表示變量的值由0變為1時產生報警;“關斷”表示變量的值由1變為0時產生報警;“改變”表示變量的值由0變為1或由1變為0時都產生報警。選擇完成后,在報警文本中輸入不多于15個字符的類型說明。第五章報警和事件系統”5.3事件類型
事件是不需要用戶來應答的。事件在組態王運行系統中人機界面的輸出顯示是通過歷史報警窗實現的。組態王中根據操作對象和方式等的不同,事件分為以下幾類:
(1)“操作事件”是指用戶修改有“生成事件”定義的變量的值或其域的值進行修改時,系統產生的事件。如修改重要參數的值,或報警限值、變量的優先級等。這里需要注意的是,同報警一樣,字符串型變量和字符串型的域的值的修改不能生成事件。操作事件可以進行記錄,使用戶了解當時的值是多少,修改后的值是多少。
(2)“用戶登錄事件”是指用戶向系統登錄時產生的事件。系統中的用戶,可以在工程瀏覽器——用戶配置中進行配置,如用戶名、密碼、權限等,用戶登錄時,如果登錄成功,則產生“登錄成功”事件;如果登錄失敗或取消登錄過程,則產生“登錄失敗”事件;如果用戶退出登錄狀態,則產生“注銷”事件。
(3)“工作站事件”是指某個工作站站點上的組態王運行系統的啟動和退出事件,包括單機和網絡。組態王運行系統啟動,產生工作站啟動事件;運行系統退出,產生退出事件。第五章報警和事件系統”
(4)如果變量是IO變量,變量的數據源為DDE或OPC服務器等應用程序,對變量定義“生成事件”屬性后,當采集到的數據發生變化時,產生該變量的應用程序事件。
組態王中提供了多種報警記錄和顯示的方式,如報警窗口、數據庫、打印機等。組態王運行系統中報警的實時顯示是通過報警窗口實現的。報警窗口分為兩類:“實時報警窗”和“歷史報警窗”。實時報警窗主要顯示當前系統中存在的符合報警窗顯示配置條件的實時報警信息和報警確認信息,當某一報警恢復后,不再在實時報警窗中顯示。實時報警窗不顯示系統中的事件;歷史報警窗顯示當前系統中符合報警窗顯示配置條件的所有報警和事件信息。報警窗口中最大顯示的報警條數取決于報警緩沖區大小的設置。5.3.1報警記錄與顯示第五章報警和事件系統”
1.報警緩沖區大小的定義報警緩沖區是系統在內存中開辟的用戶暫時存放系統產生的報警信息的空間,其大小是可以設置的。在組態王工程瀏覽器中選擇“系統配置→報警配置”,雙擊后彈出“報警配置屬性頁”,在對話框的右上角為“報警緩沖區的大小”設置項,如圖5-5所示,報警緩沖區大小設置值按存儲的信息條數計算,值的范圍為1~10,000。報警緩沖區大小的設置直接影響著報警窗顯示的信息條數。圖5-5報警緩沖區設置
2.創建報警窗口在組態王中新建畫面并打開,在“工具箱”中單擊報警窗口按鈕,或選擇菜單“工具\報警窗口”,鼠標箭頭變為單線“十”字形,在畫面上適當位置按下鼠標左鍵并拖動,繪出一個矩形框,當矩形框大小符合報警窗口大小要求時,松開鼠標左鍵,報警窗口創建成功,如圖5-6所示:第五章報警和事件系統”圖5-6“報警”畫面
3.配置實時和歷史報警窗雙擊報警窗口,彈出報警窗口配置屬性頁,如圖5-7所示,首先顯示的是“通用屬性”頁。在該頁中有一個實時報警窗和歷史報警窗的選項,選擇當前報警窗是哪一個類型:如果選擇“實時報警窗”,則當前窗口將成為實時報警窗;否則,如果選擇“歷史報警窗”,則當前窗口將成為歷史報警窗。實時和歷史報警窗的配置選項大多數相同。在本節的說明中,如果沒有特殊說明,則配置選項為公用選項。第五章報警和事件系統”圖5-7報警窗口配置屬性頁第五章報警和事件系統”
“列屬性”主要配置報警窗口究竟顯示哪些列,以及這些列的順序,這就是所謂的列屬性。“操作屬性”頁可以設置“操作安全區”、“操作分類”、“允許報警確認”、“顯示工具條”以及“允許雙擊左鍵”;“條件屬性”在運行期間可以在線修改,包括“報警服務器名”、“報警信息源站點”、“優先級”、“報警組名”、“報警類型”以及“事件類型”;“顏色和字體屬”性屬性頁是設置報警窗口的報警和事件信息顯示的字體顏色和字體型號、字體大小等。4.運行系統中報警窗口的操作如果報警窗配置中選擇了“顯示工具條”和“顯示狀態欄”,則運行時的標準報警窗顯示如圖5-8所示。標準報警窗共分為三個部分:工具條、報警和事件信息顯示部分、狀態欄。狀態欄共分為三欄:第一欄顯示當前報警窗中顯示的報警條數;第二欄顯示新報警出現的位置;第三欄顯示報警窗的滾動狀態。運行系統中的報警窗可以按需要不配置工具條和狀態欄。圖5-8報警窗口畫面第五章報警和事件系統”
5.報警窗單擊事件轉發控件使用說明(1)“報警窗單擊事件轉發控件”:當用戶在報警窗口使用鼠標單擊某條報警(報警窗單擊事件發生)時,可以通過“報警窗單擊事件轉發控件”KvAlmWinEvControl來獲得報警窗內某條報警的報警時間,報警類型,報警值等信息。(2)“創建報警窗單擊事件轉發控件”:從工具箱中單擊“插入通用控件”,在列表中選擇“KvAlmWinEvControl”到畫面中,該控件在畫面上顯示為灰色方塊。(3)“報警窗單擊事件轉發控件的使用”:雙擊“KvAlmWinEvControl”控件,在事件屬性頁中關聯函數,如圖5-9所示,在控件事件函數命令語言中調用控件屬性。圖5-9“KvAlmWinEvControl”控件動畫連接屬性第五章報警和事件系統”
6.系統的報警信息的記錄系統的報警信息可以記錄到文本文件中,用戶可以通過這些文本文件來查看報警記錄。記錄的文本文件的記錄時間段、記錄內容、保存期限等都可定義。打開組態王工程管理器,在工具條中選擇“報警配置”,或雙擊列表項“系統配置→報警配置”,彈出報警配置屬性頁對話框。對話框中的設置有“記錄內容選擇”、“記錄報警目錄”、“當前工程路徑”、“指定”、“文件記錄時間”、“起始時間”、“文件保存時間”、“報警組名稱”以及“優先級”。在規定報警和事件信息輸出時,同時可以規定輸入的內容和每項內容的長度。這就是格式配置,格式配置在文件輸出、數據庫輸入和打印輸出中都相同,如圖5-10所示:圖5-10報警配置格式第五章報警和事件系統”在“數據庫配置”屬性頁中,可將組態王產生的報警和事件信息通過ODBC記錄到開放式數據庫中,如Access、SQLServer等。在使用該功能之前,應該做些準備工作:首先在數據庫中建立相關的數據表和數據字段,然后在系統控制面板的ODBC數據源中配置一個數據源(用戶DSN或系統DSN),該數據源可以定義用戶名和密碼等權限。在“打印配置”屬性頁中,可將組態王產生的報警和事件信息通過計算機并口實時打印出來。在打印時,某一條記錄中間的各個字段以“/”分開,每個字段包含在“<>”內,并且字段標題與字段內容之間用冒號分割,兩條報警信息之間以分隔。第五章報警和事件系統”
在組態王自定義函數中,有三個系統預置的報警自定義函數。分別為實型變量報警事件($System_RealAlarm)、整型變量報警事件($System_LongAlarm)和離散型變量報警事件($System_DiscAlarm)預置自定義函數。自定義函數的調用執行有兩種方式:1、系統產生報警事件后會自動調用相應數據類型的函數,如整型變量產生報警時,系統自動調用整型預置自定義函數;2、如果在配置報警窗的“操作屬性”時,選擇了“允許雙擊報警條”,則系統運行時雙擊報警事件報警條,也會自動調用相應數據類型的函數。5.3.2反應車間的報警系統設置第五章報警和事件系統”
“實型函數”預置如下:(以實型為例,其他都相同)void$System_RealAlarm(RealTagrTag,longtime,longnEvent,longnAction){}●rTag:表示變量,即普通變量,和組態王系統變量一樣具有值和變量所有的域,這些值都是只讀的。
●nTime:表示自從格林威治時間1970年1月1日0起到報警事件產生時的秒數,表示報警事件產生的時間;
●nEvent:表示當前產生或雙擊報警窗時的報警類型。報警類型的返回值如下:0——報警1——恢復2——確認
●nAction:表示當nAction==1時表示是雙擊報警條,當nAction==0時表示產生報警事件。
●預置自定義函數體初始內容為空,需要用戶在里面添加命令語言。利用報警預置自定義函數,可以實現用戶自己想在報警產生后做的一些處理。第五章報警和事件系統”5.4聲光報警工程實例
(1)首先新建一個工程,打開工程,在“數據詞典”中新建3個變量:表5-1定義變量
(2)在“畫面”中新建一個“聲光報警”畫面并打開。繪制圖5-11畫面。(參考:使用“工具箱”中的“圓角矩形”畫出游標管(高400)、喇叭背,“多邊形”畫出游標桿、喇叭口,“直線”和“文本”畫出游標尺并合成組合圖素,從“圖庫”選擇一個狀態燈放置到畫面中)變量名變量類型初始值溫度內存整數喇叭內存整數
燈內存離散開第五章報警和事件系統”圖5-11畫面設計
(3)雙擊文本“##”,設置“模擬值輸出”和“垂直移動”。1)“模擬值輸出”設置:●表達式:\\local\溫度;●輸出格式:整數位數3;對齊居中;顯示格式十進制;第五章報警和事件系統”2)“垂直移動”設置:●表達式:\\local\溫度;●移動距離:向上400;向下0;●對應值:最上邊400;最下邊0;(4)雙擊游標桿,設置“垂直”:●表達式:\\local\溫度;●移動距離:向上400;向下0;●對應值:最上邊400;最下邊0;(5)雙擊游標尺,設置“填充”的動畫連接。●表達式:\\local\溫度;●最小填充高度:對應值400;占據百分比0;●最大填充高度:對應值0;占據百分比100;●填充方向:向上;(6)雙擊指示燈,設置屬性。●變量名:\\local\燈;●顏色設置:正常色綠;報警色紅;●閃爍:閃爍條件\\local\溫度>350;閃爍速度100;第五章報警和事件系統”(7)雙擊喇叭口,設置“縮放”。●表達式:\\local\喇叭;●最小時:對應值0;占據百分比0;●最大時:對應值10;占據百分比100;●變化方向:向左;
(8)在畫面灰色處依次“右鍵-畫面屬性-命令語言”,設置時間為“每100毫秒”,在“存在時”寫入下面程序:if(\\local\溫度>350){ \\local\喇叭=\\local\喇叭+1; if(\\local\喇叭==11) { \\local\喇叭=0; }}else \\local\喇叭=10;第五章報警和事件系統”(9)保存畫面,回到工程瀏覽器界面,點擊“系統-文件-命令語言-事件命令語言”,雙擊添加一個“事件命令語言”。
1).“事件描述”:\\local\溫度>350
2).“發生時”程序:PlaySound("報警.wav",3);
3).“消失時”程序:PlaySound("",0);(10)在工程目錄下(如:C:\聲光報警舉例)添加一段名字為“報警”的報警的音樂,格式為(.MAV)。(11)回到工程瀏覽器,點擊“配置-運行系統”,在“主畫面配置”中選中“聲光報警”,在“特殊”中設置運行系統基準頻率為100毫秒,點擊確定返回到工程瀏覽器。點擊“VIEW”進入運行系統。我們可以往上拖動游標桿來模擬溫度的變化,當溫度大于350時,指示燈閃爍,喇叭口縮放變化,并可以聽到報警音樂;當溫度小于350時恢復正常。第五章報警和事件系統”5.5蜂鳴器報警工程實例
(1)首先新建一個工程,打開工程,在“數據詞典”中新建1個變量:“溫度——內存整數”。
(2)打開“蜂鳴器”文件夾,根據說明安裝蜂鳴器控件。本控件有三個參數:1).SartLong型,為1時蜂鳴;2).FreqLong型,發生頻率,50~40K,缺省3200;3).DurationLong型,發聲間隔,50~1000ms,缺省100ms。
(3)在“畫面”中新建一個“蜂鳴器報警”畫面并打開,設計如圖5-12畫面。(點擊“工具箱”中的“通用控件”,找到蜂鳴器控件(KingViewBeep.KingView)雙擊添加至畫面中。從“圖庫”中的儀表中選擇一個至畫面中)。雙擊蜂鳴器控件,將控件名改為“報警”。第五章報警和事件系統”圖5-12畫面設計
(4)雙擊儀表,變量名選擇“\\local\溫度”,標簽改為“溫度”。回到畫面并保存,在畫面灰色處依次“右鍵-畫面屬性-命令語言”,設置時間為“每100毫秒”,在“存在時”寫入下面程序:\\local\溫度=\\local\溫度+1;if(\\local\溫度>=80)蜂鳴器.Sart=1;else蜂鳴器.Sart=0;if(\\local\溫度>=100)\\local\溫度=0;第五章報警和事件系統”
(5)再次保存畫面,回到工程瀏覽器,點擊“配置-運行系統”,在“主畫面配置”中選中“蜂鳴器報警”,在“特殊”中設置運行系統基準頻率為100毫秒,點擊確定返回到工程瀏覽器。點擊“VIEW”進入運行系統。我們可以看到儀表的顯示再慢慢上升,當超過80時,可以聽到滴滴聲。第五章報警和事件系統”5.6語音報警工程實例
(1)首先新建一個工程,打開工程,在“數據詞典”中新建4個變量:表5-2定義變量
(2)新建“液位語音報警”畫面,圖形參考如圖5-13所示:第五章報警和事件系統”圖5-13畫面設計
(3)分別雙擊兩個小水池,設置“填充”。●表達式:\\local\小水池液位;●最小填充高度:對應值0;占據百分比0;●最大填充高度:對應值500;占據百分比100;●填充方向:向下;第五章報警和事件系統”
(4)雙擊大水池,設置“填充”。●表達式:\\local\大水池液位;●最小填充高度:對應值0;占據百分比0;●最大填充高度:對應值1000;占據百分比100;●填充方向:向下;
(5)雙擊按鈕“抽水”,在命令語言“按下時”寫入下面程序:
\\local\狀態=1;
(6)雙擊按鈕“排水”,在命令語言“按下時”寫入下面程序:
\\local\狀態=2;
(7)雙擊按鈕“停止”,在命令語言“按下時”寫入下面程序:
\\local\狀態=0;
(8)雙擊顯示小水池液位的“##”,選擇“模擬值輸出”,整數位數3,小數位數0,表達式為:
\\local\小水池液位;
(9)雙擊顯示大水池液位的“##”,選擇“模擬值輸出”,整數位數3,小數位數0,表達式為:
\\local\大水池液位;第五章報警和事件系統”
(10)分別雙擊兩節水管,設置動畫連接“流動”,流動條件為;
\\local\管道;
(11)雙擊報警窗口,設置報警窗口名為“報警”,并勾選為“實時報警窗”。
(12)準備兩段音樂作為語音,音樂格式為“.wav”,并放到工程文件夾內。
(13)雙擊“應用程序命令語言”,將時間改為“每55毫秒”,在“存在時”寫入以下程序:if(狀態==0)管道=0;if(狀態==1){
小水池液位=小水池液位+1;
大水池液位=大水池液位-2; if(大水池液位==0)管道=0;else管道=10;}if(狀態==2){
小水池液位=小水池液位-1;
大水池液位=大水池液位+2; if(小水池液位==0)管道=0; else管道=-10;}第五章報警和事件系統”
(14)雙擊“事件命令語言”;事件描述為:大水池液位<100||大水池液位>900。1)在“發生時”下入以下程序:if(大水池液位<100)PlaySound("警報.wav",2);if(大水池液位>900)PlaySound("小黃人.wav",2);2)在“消失時”下入以下程序:PlaySound("",0);
(15)在工程瀏覽器界面,點擊“配置-運行系統”,在“主畫面配置”中選擇“液位語音報警”,在“特殊”中設置“運行系統基準頻率”為55毫秒。確定返回工程瀏覽器界面,點擊圖標“VIEW”進入運行系統,如圖5-14所示,點擊“抽水”,大水池的水位下降,當低于100時有可以聽到音樂并顯示報警;點擊“放水”,大水池的水位上升,當高于900時有可以聽到音樂并顯示報警;點擊“停止”,大水池停止運作。第五章報警和事件系統”圖5-14系統運行畫面”5.7本章小結
本章主要講述了組態王中報警和事件的使用。報警和事件的主要作用是提醒操作人員,方便操作人員的管理和查看。其中報警主要檢測的是變量的值是否超出允許范圍,而事件主要檢測的是變量操作是否發生。在使用報警和事件時,首先是要對其進行定義,其次是通過控件或者數據庫等,對其進行觀察和記錄。對于數據庫以及其他的控件的使用,將根據以后章節來具體介紹。第五章報警和事件系統第五章
”
課后習題1.請分別概述報警和事件2.事件有哪些分類?3.在“報警和事件畫面”中,繪制一報警窗口。4.報警窗口有哪些分類?其主要功能是什么?5.在組態王自定義函數中,有三個系統預置的報警自定義函數,分別為?6.自定義函數的調用執行的兩種方式是什么,請詳細說明。報警和事件系統THANKSNAMEDAMEN我們畢業啦其實是答辯的標題地方工控組態軟件及應用6.1創建報表第六章報表系統6.2報表函數6.3日歷控件使用說明6.4利用報表歷史數據查詢函數實現歷史數據查詢實例6.5利用微軟日歷控件實現日報表實例6.6本章小結前言本章主要介紹組態王中報表及日歷控件的使用,包括報表基本功能,報表函數應用,日歷控件的基本屬性設置,實現日報表實例。通過本章的學習,可以詳細的了解組態王中報表控件及日歷控件的使用方法,在以后應用于各種報表數據處理中。
“”6.1創建報表打開組態王軟件后,新建一個畫面;找到工具箱中的報表窗口,用鼠標左鍵單擊“報表窗口”按鈕,鼠標變成十字形。然后在畫面上畫一個矩形框,報表控件就放到畫面上了。可任意移動、縮放報表控件。如圖6-1。
“”
創建報表是學習組態王報表系統的基礎,學會創建報表才能更好地深入學習。6.1.1創建報表窗口
圖6-1創建報表雙擊空白報表后,彈出報表設計對話框,可為報表控件命名,可根據需要設置報表的行數和列數。如下圖6-2,報表控件名為“Report0”,報表的行數和列數都為5,點擊確定即可完成設置。圖6-2報表設計窗口6.1創建報表6.1.2配置報表窗口屬性11單擊報表任意單元格即可在組態畫面中看到報表工具箱,如圖6-3。2圖6-3報表工具箱6.1創建報表36.1.3報表工具箱說明2用鼠標選擇兩個單元格以上可進行單元格的合并及拆分。3單擊對應的單元格可向其輸入文字,也可選擇文字在單元格中的對齊方式。4單擊保存圖標可將報表保存到指定的目錄。5單擊插入變量或插入函數圖標,選擇將要插入的變量或插入的函數后,單擊“√”即可。注意:在插入變量或插入函數時,必須在變量或函數前加“=”號,如圖6-4。否則在運行系統下無法顯示變量數據。圖6-4插入變量126.2報表函數3組態王中提供了很多報表函數,各種報表函數都有著各自的功能,熟練應這些函數,將會使在操作報表時方便和快速許多。6.2.1報表內部函數(1)ReportGetCellString():這個函數屬于報表專用函數。獲取指定報表的指定單元格的文本,使用格式如下:
ReportGetCellString(“報表名”,指定報表行號,指定報表列號);(2)ReportGetCellValue():這個函數屬于報表專用函數。獲取指定報表的指定單元格的數值,使用格式如下:
ReportGetCellValue(“報表名”,指定報表行號,指定報表列號);(3)ReportSaveAs():這個函數屬于報表專用函數。將報表按照所給的文件名存儲到指定目錄下,可以將報表文件保存為rtl、xls、csv這三種格式。使用格式:ReportSaveAs(“報表名”,”指定目錄及:\文件名.格式”);126.2報表函數3(4)ReportLoad():這個函數屬于報表專用函數。將指定路徑下的報表讀到當前報表中來。使用格式:ReportLoad(“報表名”,”指定目錄及:\文件名.格式”);(5)ReportSetCellString():這個函數屬于報表專用函數。將指定的字符的賦給指定報表中的指定單元格。使用格式:ReportSetCellString(“目標表格”,指定行號,指定列號,賦予的字符串);(6)ReportSetCellString2():這個函數屬于報表專用函數。將指定的字符串的賦給指定報表中的指定區域。使用用格式:ReportSetCellString(“目標表格”,指定開始行號,指定開始列號,指定終止行號,指定終止列號,賦予的字符串);126.2報表函數3(7)ReportSetCellValue():這個函數屬于報表專用函數。將指定的數據的賦給指定報表中的指定單元格。使用格式:ReportSetCellValue(“目標表格”,指定行號,指定列號,賦予的數據);(8)ReportSetCellValue2():這個函數屬于報表專用函數。將指定的數據賦給指定報表中的指定區域。使用用格式:ReportSetCellValue2(“目標表格”,指定開始行號,指定開始列號,指定終止行號,指定終止列號,賦予的字符串);(9)ReportGetColumns():這個函數屬于報表專用函數。獲取指定報表的行數。使用格式:ReportGetColumns(“指定表”)(10)ReportGetRows():這個函數屬于報表專用函數。獲取指定報表的列數。使用格式:ReportGetRows(“指定表”)126.2報表函數36.2.2報表歷史數據查詢函數(1)ReportSetHistData():這個函數屬于報表專用函數,依據給定的參數進行歷史數據查詢。使用格式;ReportSetHistData(指定表,指定參數,查詢開始時間,查詢時間間隔,查詢填充的單元范圍);(2)ReportSetHistData2:這個函數屬于報表專用函數,用于查詢歷史數據,使用格式;ReportSetHistData2(指定表起始行號,指定表起始列號);126.2報表函數36.2.3報表打印類函數(1)ReportPageSetup():這個函數屬于報表專用函數,在運行狀態下對指定表格進行頁面設置。使用格式:ReportPageSetup(“指定表”)(2)ReportPrintSetup():這個函數屬于報表專用函數,在運行狀態下對指定表格進行打印預覽。使用格式:ReportPrintSetup(“指定表”)(3)ReportPrint2():這個函數屬于報表專用函數,在運行狀態下對指定表格進行打印預覽。使用格式:ReportPrint2(“指定表”)126.2報表函數3(4)ReportSetHistData():這個函數屬于報表專用函數,依據給定的參數進行歷史數據查詢。使用格式;ReportSetHistData(指定表,指定參數,查詢開始時間,查詢時間間隔,查詢填充的單元范圍);(5)ReportSetHistData2:這個函數屬于報表專用函數,用于查詢歷史數據,使用格式;ReportSetHistData2(指定表起始行號,指定表終止列號);1在組態王新建的畫面中,單擊工具箱中的“插入通用控件”,選擇“其他控件”,在列表中選擇“MicrosoftDateandTimePickerControl”日歷控件,點擊“確定”,在畫面中拖動鼠標畫出日歷控件,如圖6-5所示。2圖6-5日歷控件6.3日歷控件使用說明36.3.1日歷控件插入要使用日歷控件,必須對日歷控件的屬性進行設置,及了解日歷控件的事件應用。1日歷控件屬性:右鍵點擊日歷控件選擇控件屬性,即可彈出日歷控件屬性設置窗口。如圖6-6。可設置日歷控件的一些基本屬性,詳見表6—2。圖6-6日歷控件屬性設置6.3日歷控件使用說明6.3.2日歷控件屬性和事件表6—1屬性詳細介紹6.3日歷控件使用說明屬性設置內容General當前系統時間(Value),最大顯示時間(MaxDate),最小顯示時間(MinDate),時間顯示格式(Forrmat),其他項不需設置默認。Font日歷控件顯示字體屬性Color日歷控件顯示顏色屬性Picture此項在組態王中已固定無法設置
2雙擊日歷控件彈出日歷控件的“動畫連接屬性”對話框,選擇“事件”圖6-7。6.3日歷控件使用說明圖6-7日歷控件動畫連接屬性在“動畫連接屬性”可對日歷命名,我們在日歷控件屬性中已設置所以無須在“屬性”中再次設置。單擊“事件”,即看到日歷控件的所有事件,如圖6-8。圖6-8日歷控件事件在組態王中我們常用這兩個事件。Change():在選擇時間時使用。CloseUp():在選擇日期時使用。雙擊對應事件的空白格可進入例如如圖6-9對應“控件事件函數”編寫畫面窗口。6.3日歷控件使用說明圖6-9日歷控件時間函數編寫窗口“控件屬性和方法”選擇函數聲明處為函數命名,如“CloseUp()”;點擊編輯窗口下方“控件”按鈕,彈出“控件屬性和控件方法”,在控件名稱中選擇“Adate”日歷控件;在查看類型中選擇“控件屬性”,如圖6-10。圖6-10日歷控件命令語言編寫“控件屬性和方法”選擇利用報表歷史數據查詢函數實現對水深度,水壓及水溫的歷史數據查詢,且可以實現打印報表的功能。6.4利用報表歷史數據查詢函數實現歷史數據查詢實例6.4.1功能概述點擊記錄和安全區即可設置數據變化靈敏,如圖6-11。6.4利用報表歷史數據查詢函數實現歷史數據查詢實例6.4.2變量定義表6-2定義變量值參考
變量名變量類型初始值最小值最大值連接設備寄存器數據類型數據變化靈敏
水深度I/O整型00100PLC1INCREA100SHORT0
水壓I/O整型00100PLC1INCREA100SHORT0
水溫I/O整型0050PLC1DECREA50SHORT06.4利用報表歷史數據查詢函數實現歷史數據查詢實例6.4.2變量定義注:狀態——保存數值必須鉤上,否則將無法查詢變量的歷史數據。如圖6-12。圖6-11數據靈敏度設置圖6-12變量定義舉例新建“歷史數據查詢”畫面,并完成變量關聯,如下圖6-136.4利用報表歷史數據查詢函數實現歷史數據查詢實例6.4.3創建畫面圖6-13“歷史數據查詢”畫面在工具箱中選擇報表窗口即可在畫面中添加報表。雙擊空白報表區域可彈出報表基本屬性設置。如圖6-14。6.4利用報表歷史數據查詢函數實現歷史數據查詢實例圖6-14報表設計窗口2函數說明ReportSetHistData2():此函數為報表專用函數。查詢歷史數據,使用該函數,只要設置查詢的數據在報表中填充的起始位置,系統會自動彈出歷史數據查詢對話框,使用格式如下:
ReportSetHistData2(輸入起始行數,輸入起始列數);ReportPrintSetup():此函數對指定的報表進行打印預覽,并且可輸出到指定的打印機上進行打印。使用格式如下:
ReportPrintSetup(表名稱);1命令語言寫入查詢按鈕命令語言:ReportSetHistData2(2,1);打印按鈕命令語言:ReportPrintSetup("歷史數據表");切換至運行系統后,點擊查詢按鈕,進行時間屬性設置及變量選擇,如圖6-15及圖6-16。6.4利用報表歷史數據查詢函數實現歷史數據查詢實例6.4.4運行系統調試圖6-15報表歷史查詢窗口中時間屬性設置圖6-16報表歷史查詢窗口中變量屬性設置6.4利用報表歷史數據查詢函數實現歷史數據查詢實例單擊確定后,返回運行系統畫面看到畫面中實現對歷史數據的查詢,如圖6-17單擊“打印”按鈕實現打印功能。圖6-17運行系統效果圖水電廠的電力監控系統在實際生產中有較大的影響作用,利用報表對電力系統進行監控不僅可以提高水電廠的安全生產水平和自動化水平,還對工廠的經濟效益和管理水平有著極為重要的提升作用。日報表主要是用來記錄電力系統中的重要參數,如電壓、轉速、頻率等,報表每一分鐘記錄一次數據,能夠對各項數據更好地進行監控。6.5利用微軟日歷控件實現日報表實例6.5.1功能概述6.5.2操作步驟<1>新建工程
在組態工程管理器中,新建“日報表工程”,并將此工程設為當前工程。<2>定義變量
進入組態王工程瀏覽器,在數據詞典中新建所需變量,在實際的工程中,需要對使用的設備進行定義,本例程使用亞控的仿真PLC設備,使用“PLC—亞控—仿真PLC—COM”驅動,并將設備名稱定義為“PLC”。新建變量如表6-3所示。6.5利用微軟日歷控件實現日報表實例表6-3變量組的定義
變量名變量類型初始值最小值最大值最大原始值連接設備寄存器數據類型變化靈敏
電壓I/O整數220180250250PLCDECREA100SHORT0
轉速I/O整數150080020002000PLCINCREA100SHORT0
功率I/O整數1502020
INCREA101SHORT0
水壓I/O實數10.00100100
DECREA101SHORT0
效率I/O實數0.601.01.0
INCREA102SHORT0查詢日期內存字符串0\\\\\\\6.5利用微軟日歷控件實現日報表實例定義I/O變量的屬性設置如圖6-18所示。圖6-18I/O整數變量“轉速”的定義<3>編輯畫面在組態王開發系統中新建“日報表”畫面。6.5利用微軟日歷控件實現日報表實例(1)創建報表在組態王工具箱中,點擊“報表窗口”,鼠標變為小“+”字形,在畫面中選中報表左上角為起始位置,按下鼠標左鍵并拖動,畫出一個矩形框,松開鼠標左鍵,報表窗口即可創建完成。雙擊報表窗口的灰色部分,可對報表控件名、表格尺寸、表格樣式進行設置,本例程中設置報表名稱為“Report0”,行數為1444,列數為6,如,圖6-19所示。圖6-19報表設計6.5利用微軟日歷控件實現日報表實例我們根據需求對報表進行編輯,通過報表工具箱或點擊右鍵在“設置單元格格式”中可對單元格進行設置,所建立的報表窗口如圖6-20所示。圖6-20報表窗口6.5利用微軟日歷控件實現日報表實例(2)創建日歷控件。
日報表中對歷史數據的記錄是根據日歷中的日期進行查詢的,我們使用微軟提供的通用控件“MicrosoftDateandTimePickerControl”,點擊工具箱中的“插入通用控件”,在列表中選擇“其他控件”再選擇“MicrosoftDateandTimePickerControl”日歷控件,點擊“確定”,在畫面中拖動鼠標畫出日歷控件,如圖6-21所示。
注:如果無法創建“MicrosoftDateandTimePickerControl”日歷控件,請打開組態王所在目錄,打開Kv655ToKv75文件夾,找到MSCOMCT2.OCX文件,將其復制到C:\Windows\System32文件夾中(如操作系統為64位操作系統,則需再在SysWOW64文件夾中也復制一份MSCOMCT2.OCX文件),之后點擊開始菜單,找到Windows系統,用管理員身份打開命令提示符,輸入如下文字進行控件注冊regsvr32"C:\Windows\SysWOW64\MSCOMCT2.OCX"regsvr32"C:\Windows\System32\MSCOMCT2.OCX"如圖6-22所示6.5利用微軟日歷控件實現日報表實例圖6-21日歷控件圖6-22日歷控件注冊
如注冊后仍無法插入控件,可考慮更換組件,點擊工具箱中的“插入通用控件”,在列表中選擇“組態王控件”再選擇“CalendarControl”,具體使用方法請參考產品幫助中“14.3.12Calendar日歷控件”這一章節,本書不再列舉。6.5利用微軟日歷控件實現日報表實例雙擊日歷控件,在“常規”欄中將控件命名為“Adate”,點擊“確定”,保存畫面。再次雙擊日歷控件,選中“事件”選項卡,點擊列表中的“CloseUp”事件,彈出“控件事件函數”窗口,在函數生命中將此函數命名為“CloseUp1()”,在編輯窗口內編寫程序,如圖6-23所示。圖6-23編輯控件事件函數6.5利用微軟日歷控件實現日報表實例事件函數程序如下:floatAyear;floatAmonth;floatAday;longx;longy;longRow;longStartTime;stringtemp;Ayear=Adate.Year;Amonth=Adate.Month;Aday=Adate.Day;temp=StrFromInt(Ayear,10);if(Amonth<10){temp=temp+"-0"+StrFromInt(Amonth,10);}else{temp=temp+"-"+StrFromInt(Amonth,10);}if(Aday<10){temp=temp+"-0"+StrFromInt(Aday,10);}else{temp=temp+"-"+StrFromInt(Aday,10);}\\local\查詢日期=temp;ReportSetCellString2("Report0",4,1,1444,6,"");ReportSetCellString("Report0",2,2,temp);//填寫日期//查詢數據StartTime=HTConvertTime(Ayear,Amonth,Aday,0,0,0);ReportSetHistData("Report0","\\local\電壓",StartTime,60,"B4:B1444");ReportSetHistData("Report0","\\local\轉速",
StartTime,60,"C4:C1444");ReportSetHistData("Report0","\\local\功率",StartTime,60,"D4:D1444");ReportSetHistData("Report0","\\local\水壓",
StartTime,60,"E4:E1444");ReportSetHistData("Report0","\\local\效率",StartTime,60,"F4:F1444");//填寫時間while(x<1440){row=4+x;y=StartTime+x*60;temp=StrFromTime(y,2);ReportSetCellString("Report0",row,1,temp);x=x+1;
}
程序編輯完成后,點擊“確認”,完成日歷控件的設置。6.5利用微軟日歷控件實現日報表實例(3)保存和打印報表報表記錄了歷史數據后,我們需要對報表進行保存和打印。在畫面中插入兩個“按鈕”控件,分別命名為“保存”和“打印”,雙擊“保存”按鈕,在動畫連接中選擇“彈起時”,編寫保存按鈕的命令語言,報表保存為“xls”文件,程序如下:stringfilename;filename=InfoAppDir()+\\local\查詢日期+".xls";ReportSaveAs("Report0",FileName);打印日報表需要用到報表的打印函數,雙擊“打印”按鈕,在動畫連接中選擇“彈起時”,打印的命令語言如下:ReportPrintSetup("Report0");“保存”和“打印”按鈕設置完成后,保存畫面,畫面如圖6-24所示。圖6-24水電廠電力監控系統日歷報表畫面6.5利用微軟日歷控件實現日報表實例<4>運行畫面點擊“切換到View”切換到運行系統,點擊“特殊”,選擇“開始執行后臺任務”(否則容易無法查詢到數據),選擇“日報表”畫面,點擊日歷控件選擇查詢日期,按時記錄到的歷史數據便可顯示在報表中,系統運行畫面如圖6-25所示。具體數據的時間請參考現在時間。若查詢當前時間的數據可選擇等待時間過去一分鐘后再進行查詢(如現在時間是15:42,可以等待至15:43再進行查詢,這樣就能查詢到15:42的數據)6.5利用微軟日歷控件實現日報表實例<4>運行畫面圖6-25日報表運行畫面點擊“保存”按鈕,可將日報表保存為xls格式文件保存在工程文件夾中。點擊“打印”按鈕,可以打印日報表,并可以進行打印預覽。繪制兩個報表,綜合使用報表函數6.6報表函數綜合應用6.6.1功能概述表6-4定義變量數值表6.6報表函數綜合應用6.6.2定義變量變量名變量類型初始值最小值最大值最大原始值連接設備寄存器數據類型記錄和安全區aI/O整型00100100PLC1INCREA100SHORT記錄(靈敏度0)bI/O整型00100100PLC1INCREA101SHORT記錄(靈敏度0)cI/O整型00100100PLC1INCREA102SHORT記錄(靈敏度0)dI/O整型00100100PLC1INCREA103SHORT記錄(靈敏度0)總值內存實型00400////不記錄最大值內存實型00默認////不記錄最小值內存實型00默認////不記錄行內存實型00默認////不記錄列內存實型00默認////不記錄讀取字符串內存實型字符串///////不記錄新建畫面“報表函數綜合應用”。編輯如圖6-26畫面6.6報表函數綜合應用6.6.3組態王畫面繪制圖6-26報表函數綜合應用畫面
1.按鈕“讀取表1的一個字符串”在彈起時的命令語言:\\local\讀取字符串=ReportGetCellString("表1",2,2);ReportGetCellString():這個函數屬于報表專用函數。獲取指定報表的指定單元格的文本,“讀取報表1數據”按鈕命令語言:總值=ReportGetCellValue("表1",8,2);最大值=ReportGetCellValue("表1",9,2);最小值=ReportGetCellValue("表1",10,2);ReportGetCellValue():這個函數屬于報表專用函數。獲取指定報表的指定單元格的數值。2.“保存表1”按鈕命令語言:ReportSaveAs("表1","\001.rtl");ReportSaveAs():這個函數屬于報表專用函數。將報表按照所給的文件名存儲到指定目錄下,可以將報表文件保存為rtl、xls、csv這三種格式。6.6報表函數綜合應用在畫面中插入兩個報表分別是“表1”、“表2”,將表1設置為10行3列,將表2設置為10行4列。編輯完成畫面后,將“讀取字符串”、“總值”、“最大值”、“最小值”、“行”、“列”變量在輸出處對應關聯。各個按鈕命令語言及函數解釋:3.“讀取表1”按鈕命令語言:ReportLoad("表2","\001.rtl");ReportLoad():這個函數屬于報表專用函數。將指定路徑下的報表讀到當前報表中來。4.“還原表2”按鈕命令語言:ReportLoad("表2","\002.rtl");在報表工具欄中點擊“保存”按鈕,將表2保存在C盤。注:必須先將表2存到指定目錄才可還原表25.“保存表2”按鈕命令語言:ReportSaveAs("表2","\002.rtl");6.“向表2中賦字符串”:ReportSetCellString("表2",2,2,\\local\$日期);ReportSetCell
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024年網絡編輯師證書考試知識點解析及試題與答案
- 國際金融理財師考試分析與總結試題及答案
- 網絡編輯師考試概覽及試題答案
- 應用情境分析國際金融理財師考試的實際問題試題及答案
- 財務報表分析的具體題目試題及答案
- 理財師備考經驗的重要反思試題及答案
- 2024年網絡編輯師案例研究方法試題及答案
- 2025年銀行從業資格證個案研究試題及答案
- 網絡編輯師職業發展試題及答案
- 2025年特許金融分析師職業道德試題及答案
- 軟件開發環境配置說明文檔
- 環保培訓管理制度
- 動物園安全檢查匯報
- 中醫護理病歷書寫基本規范
- 《基于污水處理的斜生柵藻生長及其固碳性能研究》
- 民間非營利組織會計課件講義
- 門式起重機操作證理論考試測試練習題(含答案)
- 2024年入團積極分子考試題庫及答案
- 鋼結構工程質量保證體系及措施
- 【MOOC】軟件安全之惡意代碼機理與防護-武漢大學 中國大學慕課MOOC答案
- 低空經濟的技術發展趨勢:飛行器技術創新與發展
評論
0/150
提交評論