趙浩如 劉國柱
(青島科技大學信息科學技術學院 山東 青島 266000)
隨著國內外化工企業發展和社會安全環保意識的增強,化工企業的安全環保問題日益受到人們的關注[1]。其中,尤為突出的是氯化生產過程中的所出現的安全隱患。同時,人們對化工企業氯化生產與控制過程的研究也日益深入。
本系統利用動畫設計技術[2]、ActionScript技術[3],依據經典Flash開發模式,基于Flash CS5[4]開發環境,采用場景設計與控制代碼相結合,將每一個需要模擬的部分進行場景設計,并針對每一個場景建立與之相綁定的類。通過類中代碼的編寫,實現場景的動態顯示和相應動作的控制。通過對氯化生產與控制過程中的各項流程進行模擬實現,將每個過程的關鍵環節凸現出來,呈現出一個詳細直觀的模擬過程,使管理、維護及操作人員能夠協調配合[5]。
本系統的開發從氯化生產與控制過程的每個關鍵部分入手,分模塊模擬各個部分的工作流程,采用“自上而下—>模塊劃分—>逐步求精”的總體研究思路[6]。
具體方案是:首先,將氯化生產與控制過程整體模擬顯示,將每個關鍵部分進行顯示;然后,針對各個模塊進行拆分,分別對每個部分進行模擬實現;最后,要保持整個系統的協調配合,使過程承接無誤、動作連貫。
本系統的開發分為8個流程:創建項目、繪制Flash圖形、確定系統對象、解決程序難點、繪制程序流程圖、編寫實例代碼、設置關聯信息、測試并發布產品。開發流程如圖1所示。

圖1 氯化生產與控制過程的動態模擬系統開發流程圖
化工企業氯化生產與控制過程的動態模擬實現基于Adobe Flash Professional CS5開發環境,完成具有開放式體系結構、易擴充、易維護、具有良好人機交互界面的氯化生產及控制過程的動態模擬系統,實現集演示、操作、交互于一體的軟件系統,為氯化生產企業的安全生產、規范操作、員工培訓等提供服務。
系統設計基于Adobe Flash Professional CS5開發環境,在各部分的場景設計上采用Flash建模技術,在各場景的控制和演示上運用ActionScript 3.0技術。
系統架構如圖2所示,由7部分組成:綜合部分、堿液輸入部分、氯氣輸入部分、反應釜[7]部分、成品輸出部分、控制臺部分和回收部分。

圖2 系統架構
系統中類的設計如圖3所示。whole為綜合類,naohinput為堿液輸入類,clinput為氯氣輸入類,react為反應釜類,product為成品輸出類,control為控制臺類,handle為氯氣回收處理類,各類中包含本模塊的屬性和操作。

圖3 系統類圖
綜合部分用來實現整體生產及控制流程的靜態顯示,并可通過操作有相應的響應動作,進入其他的模塊。實現流程圖如圖4所示。

圖4 綜合模擬流程圖
堿液輸入部分是氯化生產所需堿液的原料供給部分,實現動態顯示堿液的加料過程,通過相關閥門及液壓表控制加料過程,并在出現液壓超標時進行緊急處理。實現流程圖如圖5所示。

圖5 堿液輸入模擬流程圖
氯氣輸入部分是氯化生產所需氯氣的原料供給部分,實現動態顯示氯氣的加料過程,通過相關閥門液壓表控制加料過程,當出現氯氣泄漏或因廢料超標產生爆炸時進行氯氣的回收處理。實現流程圖如圖6所示。

圖6 氯氣輸入模擬流程圖
反應釜部分是氯化生產進行化學反應生成所需產品的部分,實現動態顯示反應過程,并在反應溫度過高時及時進行降溫處理。實現流程圖如圖7所示。

圖7 反應釜模擬流程圖
成品輸出部分是氯化生產生成產品之后進行產品輸出的部分,實現動態顯示產品輸出過程。實現流程圖如圖8所示。

圖8 成品輸出模擬流程圖
控制臺部分是控制相應泵或渦輪以及管道閥門的運作及停止,實現動態顯示控制過程。實現流程圖如圖9所示。

圖9 控制臺模擬流程圖
回收部分是氯化生產過程中的安全保障系統,實現動態顯示在生產過程中氯氣輸入部分或反應釜部分一旦出現氯氣泄漏,及時通過啟動噴淋裝置對泄漏氯氣進行回收。實現流程圖如圖10所示。

圖10 回收模擬流程圖
.swf[8]文件之間的通信采用LocalConnection對象。LocalConnection對象只能在同一臺客戶端計算機上的.swf文件之間進行通信,但這些文件可以在不同的應用程序中運行。一個文件被稱為發送方文件,此文件包含要調用的方法。發送方文件必須包含一個LocalConnection對象和send()方法的調用。另一個文件被稱為接收方文件,此文件為調用方法的文件。接收方文件必須包含另一個LocalConnection對象和對connect()方法的調用。示例代碼如下:
//發送方程序代碼
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);
//轉到第1幀播放
}
}
通過調用時間軸控制函數實現對影片剪輯幀播放[9]的控制。時間軸控制函數主要用來控制幀和場景的播放、停止及跳轉等,調用的函數包括如下幾種:
stop():停止當前正在放的影片。
gotoAndPlay():將播放頭轉到場景中指定的幀并從該幀開始播放,其一般用法為:gotoAndPlay(場景名稱,幀數或幀標簽)。
示例代碼如下:
naoh.swim.stop();
naoh.swim.gotoAndPlay(1);
化工企業氯化生產與控制過程的動態模擬系統基于Adobe Flash Professional CS5開發完成,具有開放性、易擴充性和易維護性,交互界面符合實際的生產控制過程,是一個集演示、操作、交互于一體的軟件系統。經過測試,系統運行良好,能夠為氯化生產企業安全生產、規范操作、員工培訓等提供服務。