面向工控領域的組態(tài)軟件的畫面組態(tài)實現
引言
組態(tài)軟件是一種面向工業(yè)自動化領域的通用監(jiān)控與數據 采集系統(tǒng)的軟件平臺工具,具備對工業(yè)自動化系統(tǒng)的監(jiān)視、控 制、管理等功能,同時也提供豐富的、易于使用的手段和工具。
組態(tài)軟件的出現,解決了以往過程控制系統(tǒng)中圖形報表、 控制回路設計、數據變量設置等功能只能依靠編程來實現的 問題。組態(tài)軟件能適應不同的應用對象,工程師針對不同的 工程項目改變數據實體(包括控制回路、圖形或報表文件等), 而不改變系統(tǒng)的執(zhí)行代碼。組態(tài)軟件具有實時多任務特征, 滿足工業(yè)控制系統(tǒng)中同時進行工業(yè)現場實時數據的采集、處 理、存儲、檢索、顯示、圖形動畫展示、報表報警顯示和實 時通信等多個并行任務。組態(tài)軟件為用戶提供數據訪問安全機 制,只允許有特定操作權限的工程師對組態(tài)軟件中某些功能 進行操作,防止未授權用戶修改開發(fā)系統(tǒng)參數或者對工控現場 數據進行更改等操作,防止意外或非法地關閉該系統(tǒng)。組態(tài) 軟件既提高了系統(tǒng)的運行速度,又保證了系統(tǒng)軟件的成熟性、 健壯性和可靠性,為操作員提供非常方便、靈活的操作方式, 而且也便于工程師對系統(tǒng)進行修改、維護和擴展。
1組態(tài)軟件的功能結構
圖1所示是組態(tài)軟件的功能結構圖。組態(tài)軟件的功能結 構主要包括工程管理、組態(tài)配置、組態(tài)運行幾個部分,本文 將重點介紹組態(tài)配置中圖形組態(tài)的實現。
2組態(tài)軟件圖形組態(tài)實現
圖形組態(tài)可以模擬出生產過程中鍋爐、水泵、管道等各 個單元的實際形狀,并將生產過程中的模擬量和開關量與畫 面中的圖形連接起來,組成與工業(yè)控制系統(tǒng)現場匹配的動態(tài) 畫面。
生產過程現場數據變量與畫面中的圖形元素是相互雙向 對應的,生產現場產生的模擬量和開關量可以通過通訊接口 傳送到組態(tài)畫面中實時顯示。同時,用戶也可以操作運行畫面 中的圖形元素,通過通訊接口向工業(yè)控制系統(tǒng)中的現場設備發(fā) 送操作指令,這樣使得操作員清晰、簡單地監(jiān)視和控制工業(yè) 現場生產過程。
組態(tài)軟件中的圖形組態(tài)可分為兩個步驟:第一步是利用 組態(tài)參數配置模塊提供的繪圖工具編輯工業(yè)控制系統(tǒng)工藝流 程畫面,形成與工控現場相對應的靜態(tài)背景圖;二是綁定工藝 流程畫面中的某一圖形元素對象和數據變量,通過實現動畫 連接,生成隨實時數據變化而變化的動態(tài)畫面。
2.1組態(tài)軟件的畫面生成
組態(tài)軟件運行時的各種顯示畫面是在圖形組態(tài)參數配置環(huán)境中編輯而成的,這個環(huán)境提供了一個面向對象的圖形編輯器,提供用戶繪制矩形、直線、圓、文本對象和其他管道和矢量繪圖工具,該環(huán)境為用戶提供了一個面向目標的圖形編輯 器,為工程師提供了如矩形、工控設備示意圖、線條、圓、管 道以及文本等圖元對象的矢量圖編輯工具,每種圖元類型均 能分別設置其基本屬性和動畫屬性孔矢量圖保存的是圖元 各點的坐標,圖形無論放大或縮小均不會變形和失真,并且所 占用的存儲空間也比其他圖形格式(如bmp、jpeg等)小,圖 元的存取采用MFQMicrosoft Function Classes)的串行化技術, 通過串行化可以方便地保存數據,簡化程序操作流程。
圖元繪制的實現需結合鼠標左鍵按下、鼠標移動和松開 鼠標左鍵3個事件,其創(chuàng)建過程分為3個步驟[2]:
(1)創(chuàng)建組態(tài)畫面圖元示例(即鼠標左鍵按下動作)
創(chuàng)建畫面圖元時,首先選擇確定圖元所屬類型,當工程 師按下左鍵時,即創(chuàng)建了相應圖元類型的類實例,并將該圖元 類型實例指針保存在成員m_objects中;
(2)跟蹤鼠標移動修改圖元,實現圖元實時顯示效果(即 鼠標移動動作)
當鼠標移動時,圖元大小將隨之變化,該過程在圖元編 輯工具CDrawTool類的OnMouseMove事件(鼠標移動事件) 程序中實現。該事件可實現圖元創(chuàng)建所見即所得的效果,使 工程師在繪制靜態(tài)背景圖時即時獲取繪圖效果,便于整體畫 面編輯和修改,并增強畫面編輯的友好型和互動性;
(3)保存新建圖元類型示例(即鼠標左鍵抬起動作) 當工程師抬起鼠標左鍵時,表示圖元對象繪制完成。程
序需保存該圖元數據和更新視圖顯示,并恢復畫面繪制前的 相應程序設置。因此,需在CDrawTool中加入的鼠標釋放事 件 OnLButtonUp。
2.2組態(tài)軟件動畫連接
集散控制系統(tǒng)組態(tài)軟件能夠模擬工控現場系統(tǒng)的實際運 行情況,要求圖形界面友好,通過綁定工藝流程畫面中的某一 圖形對象和數據變量,將數據變化在畫面中實時形象地反應 出來,即實現動畫叫通過制作工藝流程圖,操作員可以監(jiān)視 工業(yè)現場的情況,及時對緊急情況做出應急處理,防止災難 發(fā)生和造成損失。
對于畫面組態(tài)中的工藝流程圖,其圖形元素分為兩類, 一類是為了畫面完整的靜態(tài)圖,主要對畫面起修飾作用;另一 類是反映現場儀表檢測量的變化或者工業(yè)現場開關、閥門等 控制裝置的狀態(tài)的動態(tài)圖形。
動態(tài)圖形元素能實時反映檢測量的變化,這就需要將這 些動態(tài)圖形元素和工業(yè)控制系統(tǒng)現場控制儀表的輸出數據聯 系起來,即變量綁定。由于在組態(tài)畫面參數設置時,已為每 個現場檢測量設置了唯一的變量名,現場數據采集設備的輸 出數據會根據工程師所設置的時間間隔傳送到上位機數據庫 /80物聯網技術2014年/第3期 的對應變量中,進行變量綁定則是為動畫圖形元素添加數據 驅動源,讓工作站組態(tài)運行環(huán)境知道各個圖形對象應該根據 哪些變量值進行變化。組態(tài)軟件在運行狀態(tài)時會按設定時間 間隔到讀取實時數據,并通過動態(tài)圖形元素的動畫進行展示。
動畫屬性與相應設備的I/O變量相關,變量的變化表現 為畫面中動態(tài)圖形元素的顏色變化、大小變化、位置變化、可 見度變化和閃爍性變化,圖形元素的存在形態(tài)隨著所綁定的 變量值的變化而變化。在組態(tài)軟件運行環(huán)境下,畫面中建立了 動畫連接的圖形即根據數據變量或表達式的變化進行顯示。
用戶可選中畫面中的圖形元素進行動態(tài)圖形元素的動畫 連接設置,雙擊圖形元素,即彈出動畫連接設置對話框,再 選擇該圖形的動畫類型,例如需要給該圖形設置填充屬性, 則點擊“填充屬性”按鈕,彈出填充屬性設置對話框,在此 對話框內,對圖元填充動畫進行設置。用戶可根據生產運行 實際情況設置相應圖元對應的動畫連接,利用動畫連接,系 統(tǒng)將生成一系列畫面組態(tài)信息動畫信息,并將他們保存在數 據文件中,供組態(tài)運行程序調用。圖2所示是動畫連接設置 界面,圖3所示是其組態(tài)運行界面圖。
2.3畫面編輯界面閃爍的解決方法
隨著工業(yè)現場監(jiān)測點增加,組態(tài)畫面中的圖形元素將越 來越多,在對界面中圖元進行添加、刪除、修改等操作時會造 成延遲,甚至是繪圖界面閃爍,大大降低了用戶的操作體驗。
通常由OnPaint函 數調用OnDraw函 數,OnDraw和 OnPaint函數完成繪圖過程叫 在MFC繪圖處理機制中,重 繪畫面時會先清除顯示區(qū),使之成為背景色,然后再調用 OnPamt函數進行繪制,而當窗口中圖元顏色、位置等變化后 均會重繪畫面。為了畫面元素易于識別,通常將畫面背景色與 圖元顏色設置為不同顏色,當重繪畫面時背景色與畫面中的 顯示圖形將在極短的時間內交替出現,造成畫面窗口刷新閃 爍,影響用戶體驗。因此,本文采用雙緩沖機制來解決界面閃 爍的問題。
雙緩沖機制繪圖的實現即在畫面顯示在屏幕上之前,在 內存中創(chuàng)建一個緩沖區(qū)對象,該對象與組態(tài)畫面繪圖區(qū)域 一致,將圖形元素繪制到內存的這個對象上,再通過調用 BOOLBitBlt(intx,inty,intnWidth,intnHeight,CDC*pSrcDC, intxSrc,intySrc,DWORDdwRop)函數,將這個對象上的圖形 一并拷貝到畫面繪圖區(qū)域中,由于繪圖的速度較快,人眼無法 感覺到閃爍,從而解決了繪圖界面閃爍的問題。
其中:x為目標矩形區(qū)域的左上角x軸坐標點;y為目 標矩形區(qū)域的左上角y軸坐標點;nWidth為在目標設備中 繪制位圖的寬度;nHight為在目標設備中繪制位圖的高度; pSrcDC為源設備上下文對象指針;xSrc為源設備上下文的起 點x軸坐標,函數從該起點復制位圖到目標設備;ySrc為源 設備上下文的起點y軸坐標,函數從該起點復制位圖到目標設 備;dwRop為光柵操作代碼。
圖4所示是采用雙緩沖機制繪圖的過程圖。
3結語
通過組態(tài)軟件中圖形組態(tài)的實現,將生產過程中的實時 數據動態(tài)展示在組態(tài)畫面中,組成與生產過程現場相對應的 動態(tài)畫面,提高了工業(yè)控制系統(tǒng)項目管理的靈活性和擴展性, 并為工程師和操作員執(zhí)行權限范圍內的操作提供了方便。
隨著電力、石化、能源等領域控制系統(tǒng)規(guī)模的不斷擴大, 設備逐漸增多,工業(yè)控制系統(tǒng)現場環(huán)境也變得更復雜,因此 對組態(tài)軟件系統(tǒng)結構的功能要求、性能要求和安全要求也變 得越來越高。同時,軟件工程的理論和工控領域控制系統(tǒng)技術 的不斷發(fā)展,組態(tài)軟件的整體設計要求也變得越來越高,對 組態(tài)軟件的擴充和完善將是工控領域長久的需求。
20211120_61988d5ff1184__面向工控領域的組態(tài)軟件的畫面組態(tài)實現