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