赵浩如 刘国柱
(青岛科技大学信息科学技术学院 山东 青岛 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开发完成,具有开放性、易扩充性和易维护性,交互界面符合实际的生产控制过程,是一个集演示、操作、交互于一体的软件系统。经过测试,系统运行良好,能够为氯化生产企业安全生产、规范操作、员工培训等提供服务。