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