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