趙浩如 劉國柱
(青島科技大學(xué)信息科學(xué)技術(shù)學(xué)院 山東 青島 266000)
隨著國內(nèi)外化工企業(yè)發(fā)展和社會安全環(huán)保意識的增強,化工企業(yè)的安全環(huán)保問題日益受到人們的關(guān)注[1]。其中,尤為突出的是氯化生產(chǎn)過程中的所出現(xiàn)的安全隱患。同時,人們對化工企業(yè)氯化生產(chǎn)與控制過程的研究也日益深入。
本系統(tǒng)利用動畫設(shè)計技術(shù)[2]、ActionScript技術(shù)[3],依據(jù)經(jīng)典Flash開發(fā)模式,基于Flash CS5[4]開發(fā)環(huán)境,采用場景設(shè)計與控制代碼相結(jié)合,將每一個需要模擬的部分進(jìn)行場景設(shè)計,并針對每一個場景建立與之相綁定的類。通過類中代碼的編寫,實現(xiàn)場景的動態(tài)顯示和相應(yīng)動作的控制。通過對氯化生產(chǎn)與控制過程中的各項流程進(jìn)行模擬實現(xiàn),將每個過程的關(guān)鍵環(huán)節(jié)凸現(xiàn)出來,呈現(xiàn)出一個詳細(xì)直觀的模擬過程,使管理、維護(hù)及操作人員能夠協(xié)調(diào)配合[5]。
本系統(tǒng)的開發(fā)從氯化生產(chǎn)與控制過程的每個關(guān)鍵部分入手,分模塊模擬各個部分的工作流程,采用“自上而下—>模塊劃分—>逐步求精”的總體研究思路[6]。
具體方案是:首先,將氯化生產(chǎn)與控制過程整體模擬顯示,將每個關(guān)鍵部分進(jìn)行顯示;然后,針對各個模塊進(jìn)行拆分,分別對每個部分進(jìn)行模擬實現(xiàn);最后,要保持整個系統(tǒng)的協(xié)調(diào)配合,使過程承接無誤、動作連貫。
本系統(tǒng)的開發(fā)分為8個流程:創(chuàng)建項目、繪制Flash圖形、確定系統(tǒng)對象、解決程序難點、繪制程序流程圖、編寫實例代碼、設(shè)置關(guān)聯(lián)信息、測試并發(fā)布產(chǎn)品。開發(fā)流程如圖1所示。
圖1 氯化生產(chǎn)與控制過程的動態(tài)模擬系統(tǒng)開發(fā)流程圖
化工企業(yè)氯化生產(chǎn)與控制過程的動態(tài)模擬實現(xiàn)基于Adobe Flash Professional CS5開發(fā)環(huán)境,完成具有開放式體系結(jié)構(gòu)、易擴(kuò)充、易維護(hù)、具有良好人機交互界面的氯化生產(chǎn)及控制過程的動態(tài)模擬系統(tǒng),實現(xiàn)集演示、操作、交互于一體的軟件系統(tǒng),為氯化生產(chǎn)企業(yè)的安全生產(chǎn)、規(guī)范操作、員工培訓(xùn)等提供服務(wù)。
系統(tǒng)設(shè)計基于Adobe Flash Professional CS5開發(fā)環(huán)境,在各部分的場景設(shè)計上采用Flash建模技術(shù),在各場景的控制和演示上運用ActionScript 3.0技術(shù)。
系統(tǒng)架構(gòu)如圖2所示,由7部分組成:綜合部分、堿液輸入部分、氯氣輸入部分、反應(yīng)釜[7]部分、成品輸出部分、控制臺部分和回收部分。
圖2 系統(tǒng)架構(gòu)
系統(tǒng)中類的設(shè)計如圖3所示。whole為綜合類,naohinput為堿液輸入類,clinput為氯氣輸入類,react為反應(yīng)釜類,product為成品輸出類,control為控制臺類,handle為氯氣回收處理類,各類中包含本模塊的屬性和操作。
圖3 系統(tǒng)類圖
綜合部分用來實現(xiàn)整體生產(chǎn)及控制流程的靜態(tài)顯示,并可通過操作有相應(yīng)的響應(yīng)動作,進(jìn)入其他的模塊。實現(xiàn)流程圖如圖4所示。
圖4 綜合模擬流程圖
堿液輸入部分是氯化生產(chǎn)所需堿液的原料供給部分,實現(xiàn)動態(tài)顯示堿液的加料過程,通過相關(guān)閥門及液壓表控制加料過程,并在出現(xiàn)液壓超標(biāo)時進(jìn)行緊急處理。實現(xiàn)流程圖如圖5所示。
圖5 堿液輸入模擬流程圖
氯氣輸入部分是氯化生產(chǎn)所需氯氣的原料供給部分,實現(xiàn)動態(tài)顯示氯氣的加料過程,通過相關(guān)閥門液壓表控制加料過程,當(dāng)出現(xiàn)氯氣泄漏或因廢料超標(biāo)產(chǎn)生爆炸時進(jìn)行氯氣的回收處理。實現(xiàn)流程圖如圖6所示。
圖6 氯氣輸入模擬流程圖
反應(yīng)釜部分是氯化生產(chǎn)進(jìn)行化學(xué)反應(yīng)生成所需產(chǎn)品的部分,實現(xiàn)動態(tài)顯示反應(yīng)過程,并在反應(yīng)溫度過高時及時進(jìn)行降溫處理。實現(xiàn)流程圖如圖7所示。
圖7 反應(yīng)釜模擬流程圖
成品輸出部分是氯化生產(chǎn)生成產(chǎn)品之后進(jìn)行產(chǎn)品輸出的部分,實現(xiàn)動態(tài)顯示產(chǎn)品輸出過程。實現(xiàn)流程圖如圖8所示。
圖8 成品輸出模擬流程圖
控制臺部分是控制相應(yīng)泵或渦輪以及管道閥門的運作及停止,實現(xiàn)動態(tài)顯示控制過程。實現(xiàn)流程圖如圖9所示。
圖9 控制臺模擬流程圖
回收部分是氯化生產(chǎn)過程中的安全保障系統(tǒng),實現(xiàn)動態(tài)顯示在生產(chǎn)過程中氯氣輸入部分或反應(yīng)釜部分一旦出現(xiàn)氯氣泄漏,及時通過啟動噴淋裝置對泄漏氯氣進(jìn)行回收。實現(xiàn)流程圖如圖10所示。
圖10 回收模擬流程圖
.swf[8]文件之間的通信采用LocalConnection對象。LocalConnection對象只能在同一臺客戶端計算機上的.swf文件之間進(jìn)行通信,但這些文件可以在不同的應(yīng)用程序中運行。一個文件被稱為發(fā)送方文件,此文件包含要調(diào)用的方法。發(fā)送方文件必須包含一個LocalConnection對象和send()方法的調(diào)用。另一個文件被稱為接收方文件,此文件為調(diào)用方法的文件。接收方文件必須包含另一個LocalConnection對象和對connect()方法的調(diào)用。示例代碼如下:
//發(fā)送方程序代碼
var
jianye:LocalConnection=new LocalConnection();
//建立LocalConnection對象
jianye.send(″jianye″,″fjieshou″,bf1);
//send()方法
private var jianbeng:LocalConnection=new LocalConnection ();
//建立LocalConnection對象
jianbeng.connect(″jianye″);
//connect()方法
jianbeng.client=this;
public function fjieshou(e:Boolean):void
{
bf3=e;
if(e==false)
{
naoh.swim.stop();
//渦輪停止
}
else
{
naoh.swim.gotoAndPlay(1);
//轉(zhuǎn)到第1幀播放
}
}
通過調(diào)用時間軸控制函數(shù)實現(xiàn)對影片剪輯幀播放[9]的控制。時間軸控制函數(shù)主要用來控制幀和場景的播放、停止及跳轉(zhuǎn)等,調(diào)用的函數(shù)包括如下幾種:
stop():停止當(dāng)前正在放的影片。
gotoAndPlay():將播放頭轉(zhuǎn)到場景中指定的幀并從該幀開始播放,其一般用法為:gotoAndPlay(場景名稱,幀數(shù)或幀標(biāo)簽)。
示例代碼如下:
naoh.swim.stop();
naoh.swim.gotoAndPlay(1);
化工企業(yè)氯化生產(chǎn)與控制過程的動態(tài)模擬系統(tǒng)基于Adobe Flash Professional CS5開發(fā)完成,具有開放性、易擴(kuò)充性和易維護(hù)性,交互界面符合實際的生產(chǎn)控制過程,是一個集演示、操作、交互于一體的軟件系統(tǒng)。經(jīng)過測試,系統(tǒng)運行良好,能夠為氯化生產(chǎn)企業(yè)安全生產(chǎn)、規(guī)范操作、員工培訓(xùn)等提供服務(wù)。