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