- 相關推薦
Flex Builder在卷接機組監(jiān)控機中的應用
[論文關鍵詞]:Flex Builder技術(shù) 卷接機組 濾棒成型監(jiān)控機 web服務
[論文摘要]:車間監(jiān)控層中生產(chǎn)數(shù)據(jù)的及時采集與更新[3] 是保證煙廠“計劃”與“生產(chǎn)”密切配合的關鍵。本文通過Flex Builder軟件及web服務技術(shù)模擬建設卷煙廠卷接機組濾棒成型監(jiān)控機人機監(jiān)控畫面及實施了數(shù)據(jù)采集的實時仿真。
1 引言
隨著的不斷發(fā)展與完善,以及工廠信息化建設的快速發(fā)展。卷煙企業(yè)車間監(jiān)控層就成為煙草行業(yè)企業(yè)信息化工程的基礎[7],應用網(wǎng)絡實現(xiàn)對生產(chǎn)作業(yè)過程中產(chǎn)生的大量的實時數(shù)據(jù)的自動化快速收集,并對實時事件及時處理,同時又與計劃層保持雙向能力,從計劃層接收相應數(shù)據(jù)并反饋處理結(jié)果和生產(chǎn)指令,有效地解決了制造企業(yè)對生產(chǎn)現(xiàn)場作業(yè)的難題,為企業(yè)創(chuàng)收做出了巨大的貢獻[4]。本文在此基礎上,通過項目實例介紹了flex Builder在卷煙廠濾棒成型監(jiān)控機建設上的應用。
傳統(tǒng)的BS架構(gòu)的監(jiān)控系統(tǒng)客戶端處理數(shù)據(jù)的能力并不強,對服務器端的依賴很大,而實時監(jiān)控需要在客戶端與服務器之間頻繁傳遞數(shù)據(jù),并且服務器同時也要把顯示的頁面?zhèn)骰亟o客戶端,這將增大服務器的負擔。針對此問題系統(tǒng)以Flex作為表現(xiàn)層,不僅提高了客戶端處理數(shù)據(jù)、展示數(shù)據(jù)的能力,同時服務器端與客戶端傳遞的只有數(shù)據(jù)而沒有傳統(tǒng)的頁面,界面的布局變化完全由客戶端執(zhí)行處理。
2 系統(tǒng)結(jié)構(gòu)
SHAPE \* MERGEFORMAT
Flex應用程序框架[1]由MXML、AcitonScript 3.0及Flex類庫三部分組成,開發(fā)人員利用MXML及ActionScript編寫Flex應用程序,利用MXML定義應用程序用戶界面元素,利用ActionScript虛擬機(AVM)定義客戶端及程序控制,而將Flex類庫中包含的大量的組件、管理器及行為等作為輔助,來加快整個開發(fā)的進程,程序編寫完成后,通過Flex編譯器將其編譯為字節(jié)碼,最終形成以.swf為擴展的可執(zhí)行的二進制文件。本文采用Flex框架作為表現(xiàn)層和數(shù)據(jù)交互引擎,充分利用其客戶端運算能力和客戶端緩存能力,從而減輕了服務器的負擔,減少了響應時間和傳遞的數(shù)據(jù)量。在此基礎上構(gòu)建了一個B/S結(jié)構(gòu)的卷接機組監(jiān)控系統(tǒng),其中人機界面與PLC的通訊采用MPI方式[2]。如圖1。
(1) 串口通信層:在系統(tǒng)與主控機之間使用VB串口通信(采用的是RS-232串口標準)實現(xiàn)數(shù)據(jù)的交互[6]。VB串口通信層對濾棒成型機提供的數(shù)據(jù)進行解析,并以特定XML文件格式保存數(shù)據(jù)于服務器,供Flex端讀取并進行分析和處理,同時Flex端根據(jù)數(shù)據(jù)結(jié)果實施相應的動作。
(2) 表現(xiàn)層:即Flex制作的用戶界面,以web瀏覽器的形式展示。將相關業(yè)務邏輯和數(shù)據(jù)處理交給客戶端來運行,減輕了服務器的壓力,使服務器只用來進行相應的人員數(shù)據(jù)傳輸和讀取原始描述濾棒成型機狀態(tài)信息的XML文件[5] ,加快了系統(tǒng)運行速度。
(3) 業(yè)務邏輯層:通過Servlet處理Flex的請求,讀取濾棒成型機狀態(tài)信息XML文件,并返回于客戶端;負責響應請求、記錄日志、讀取或保存相關數(shù)據(jù)。
(4) 數(shù)據(jù)層:由多數(shù)據(jù)服務器構(gòu)成,主要有:日志文件、濾棒成型機數(shù)據(jù)設置信息數(shù)據(jù)庫、濾棒成型機信息數(shù)據(jù)庫、濾棒成型機實時狀態(tài)信息文件的存儲、管理和維護。
3 KDF2濾棒成型機監(jiān)控系統(tǒng)軟件設計
3.1功能界面設計
SHAPE \* MERGEFORMAT
車間監(jiān)控層由多臺PC組成,它的主要功能是:一是提供車間級集中監(jiān)控界面;二是采集現(xiàn)場層的數(shù)據(jù),存入本地數(shù)據(jù)庫;三是為一級監(jiān)控系統(tǒng)提供數(shù)據(jù)接口。根據(jù)現(xiàn)場層提供的數(shù)據(jù)采集接口技術(shù)的開放程度,監(jiān)控機建設有兩種方案:a.在通用監(jiān)控軟件商作二次開發(fā),b.由設備供應商提供監(jiān)控系統(tǒng)。本文設計的KDF2濾棒成型機的監(jiān)控主頁面如圖2所示。最下面一排十一個按鈕,每個按鈕點擊進入一個子頁面,雖然各個模塊界面元素不同,但數(shù)采功能的原理是一樣的,因此本文就不一一做說明了,只對主頁面進行數(shù)據(jù)仿真。
3.2 模擬現(xiàn)場監(jiān)控數(shù)據(jù)仿真程序設計
3.2.1 Flex與XML通訊
Flex在建立一個項目并在項目里添加項目MXML文件(MXML是XML格式的標記,主要用于編寫用戶界面,也用于聲明一些非界面組件)后,系統(tǒng)自動生成一個文件頭<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx=http://www.adobe.com/2006/mxml>
在實際卷煙生產(chǎn)操作中控制濾棒成型機的PLC組件發(fā)送XML字符串,字符串格式為<data id=" " value="" />,再此,便于模擬仿真,我們通過實際數(shù)據(jù)點從PLC讀取數(shù)據(jù),并將XML字符串轉(zhuǎn)換成getflashdata/文檔,此文檔是一個以aspx為后綴名的XML文檔,通過文檔中的data id值與Flex中各標簽label的id名稱相對應,從而取得機器上的數(shù)據(jù)信息。比如說上圖中”溶膠室:87.4 ℃中87.4為一label,而此label的id值為main_label3,那么我們的getflashdata/文檔中也要有一個id值為main_label3值與之對應,才具備了數(shù)據(jù)仿真的基本條件。并且要在Flex后臺source中定義一個讀取xml字符串的事件,代碼如下:
、 定義txt2label取值事件
public function txt2label(labelname:String,idname:String):void{
try{Label(this[labelname]).text=testxml.data.(@id==idname).@value; } catch(e:Error){} }
、 將Flex中l(wèi)abel的id與XML中的id對應
public function ShowXml():void{ //label id XML id
txt2label("main_label3"," main_label3");}
③ Flex以HTML頁面作為客戶端,運行在Web瀏覽器之中,實時數(shù)據(jù)監(jiān)控采用異步更新,在不刷新頁面的情況下顯現(xiàn)數(shù)據(jù)實時更新,大大節(jié)省了服務器資源,代碼如下:
private function Init():void{ ticker = new Timer(3000); ticker.addEventListener(TimerEvent.TIMER, onTick);
ticker.start();//lblDate.text=dateFormatter.format(new Date());//ShowInit();doRequest();}
新建getflashdata/文件,并將文件存儲于項目中的bin-debug文件夾下,以下即為getflashdata/文檔主頁中的需要從控制濾棒成型機的PLC上接收的XML字符串內(nèi)容:
<?xml version="1.0" encoding="utf-8"?> <machine><data id="main_label3" value="0" /></machine>
3.2.2 使用HTTPService獲取XML
通常所需的 XML數(shù)據(jù)是動態(tài)的而不是靜態(tài)的,直接來自于濾棒成型機 ,這時可以通過HTTPService來獲取所需的 XML動態(tài)數(shù)據(jù)?梢赃x擇使用ActionScript或MXML來創(chuàng)建HTTPService類 ,它們是等價的 ,因為 Flex本身是作為ActionScript的類來實現(xiàn)的?梢酝ㄟ^ GET或 POST方式發(fā)送請求到一個 URL,對指定的URL產(chǎn)生一個異步調(diào)用 ,然后處理這個請求并將數(shù)據(jù)返回至 Flex中。通過指定的URL, HTTPService對象可以訪問靜態(tài)的或動態(tài)創(chuàng)建的 XML,動態(tài)創(chuàng)建的 XML可以由 Java、 .NET、 PHP、 ColdFusi on或其它任何服務器端技術(shù)產(chǎn)生。最終結(jié)果返回給 Flex并存儲在 ActionScript對象當中 ,當然可以在MXML標簽內(nèi)使用屬性resultFormat來指定返回數(shù)據(jù)的格式。下面的代碼使用Flex的MXML標簽來從指定的URL獲取XML數(shù)據(jù)。
<mx:HTTPService id="plainRpc" url="getflashdata/" //讀取getflashdata/中的數(shù)據(jù)
result="handleResult(event)" fault="handleFault(event)" resultFormat="e4x">
<mx:request> <type>ptdetail</type> <machineid>6</machineid> </mx:request>
</mx:HTTPService>
到此軟件部分要實現(xiàn)的基本仿真程序就編寫完成了,運行程序之后,將在瀏覽器中看到如圖2中中間界面部分所示的頁面內(nèi)容,當在getflashdata文件中更改main_label3的value值并保存時,我們會看到,web瀏覽器中頁面上溶膠室后面的溫度數(shù)值也會變成mian_label3的value值,并且并未刷新頁面,有效地實現(xiàn)了異步更新的監(jiān)控仿真功能。
4 小結(jié)
本文簡要介紹了下Flex Builder建設卷煙廠監(jiān)控機監(jiān)控系統(tǒng)中的特點、系統(tǒng)架構(gòu)[8],并做了簡單的系統(tǒng)仿真。Flex強大的功能大大提高了客戶端處理數(shù)據(jù)、展示數(shù)據(jù)的能力,同時軟件設計較傳統(tǒng)的客戶端服務器設計架構(gòu)簡單,操作方便,可以多工控軟件兼容,可在原有工控軟件的基礎之上進行二次開發(fā)。本文只是做了卷煙廠監(jiān)控子機的小小仿真,為Flex在更大項目工程中的應用拓展打下了堅實的基礎,有著良好的開發(fā)應用前景。
參考文獻
[1] 陳顯軍,魏祖寬 基于Flex的XML數(shù)據(jù)通訊與應用研究[J].與現(xiàn)代化,2008(3).
[2] 王聲決,熊剛 廠企業(yè)內(nèi)部網(wǎng)的設計與實現(xiàn)[J]控制計算機,2003,(J)
[3] 接到良,煙草企業(yè)自動數(shù)據(jù)采集系統(tǒng)的研究與實踐[J]自動化儀表,2006第27卷第3期
[4] 歐金成. 組態(tài)軟件的現(xiàn)狀和發(fā)展[J]工業(yè)控制計算機,2002,(4)
[5] Chafic Kazoun,Joey Lott. Programming Flex2,America: OReilly,2007
[6] 李長林. Visual Basic串口技術(shù)與典型實例. 清華大學出版社. 2006
[7] 陳睿.王歡.李炳法.文揚 煙草制造行業(yè)中的數(shù)據(jù)采集系統(tǒng) [J].2007
[8]張志剛,黃軍勤,顧桓 網(wǎng)絡系統(tǒng)在包裝企業(yè)的應用與開發(fā)[J]包裝工程,2005年03期
【Flex Builder在卷接機組監(jiān)控機中的應用】相關文章:
軟件鎖相技術(shù)在柴油發(fā)電機組監(jiān)控系統(tǒng)中的應用03-18
Openprocess在熱網(wǎng)監(jiān)控系統(tǒng)中的應用01-11
CAN總線在樓宇監(jiān)控系統(tǒng)中的應用03-07
談Openprocess在熱網(wǎng)監(jiān)控系統(tǒng)中的應用01-14
探析Openprocess在熱網(wǎng)監(jiān)控系統(tǒng)中的應用01-07
FPGA在波分復用系統(tǒng)光監(jiān)控信道中的應用03-08