• 基于浏览器的锅炉仿真培训系统
    • 2000-01-01 00:00:00
    • 关键字:

        工业锅炉在国民经济中应用十分广泛。工业锅炉的经济、安全运行,意义重大。为了提高工业锅炉的运行水平,对工业锅炉的运行人员进行运行培训是十分必要的。开发“SHL4工业锅炉运行仿真培训系统”,对于提高运行人员的运行水平,保证工业锅炉的安全、经济运行,有重要作用。

        工业锅炉运行仿真培训系统概述 

        工业锅炉仿真培训系统,属于原理性仿真培训系统。它适用于烧煤的过热蒸汽链条炉,用计算机仿真。 
    计算机仿真的特点是:采用目前广泛使用的、价格低廉的家用电脑(PC机),配以本仿真软件,就可以实现锅炉的运行仿真过程。主要的锅炉的现场操作,都在计算机上通过鼠标(或键盘)仿真实现,锅炉的运行参数也都通过计算机的显示屏进行仿真显示。运行人员面对计算机就可以学习锅炉的实际运行过程,熟悉锅炉的运行和各项操作,以实现对运行人员进行运行操作培训。

    基于浏览器的锅炉仿真系统

        多比图形控件介绍

    多比图形控件出现简化了这种开发难度,它是一款基于Web的矢量图形控件,能够检测浏览器类型,自动选择VML或SVG方案进行做图,类似于网页上的Visio控件,是目前国内外基于Web矢量图案解决方案。多比图形编辑器实现了图形、图像、文字的有机统一。它除了支持HTML中常用 的标记,如文本、图像、链接、交互性、CSS的使用、脚本外,还提供了大量针对图形、图像、动画的特定标记。对SVG图形文件进行编辑管理的过程为:SVG图形文件经XML解析器打开,并在内存中生成一个对象树,用鼠标事件来驱动脚本执行,脚本通过DOM接口对象进行相关的操作,来实现图形绘制、编辑等功能。

        仿真动画的实现

         图元动画在实时的显示方面有大量的用处。 例如,工业控制中的人机界面, 网络拓扑图中的设备故障信息等等。

        我们先来看看计算机的动画是如何产生的。计算机通过动画一幕一幕的连贯起来,之后就会产生动作效果,使人有身临其境的感觉与效果。一个简单的动画只有两帧,他们连续的播放,就可以产生动画效果。

        在理解了图元重绘的基础上, 我们不难知道如何绘制动画。 我们先设置一个定时器,让它半秒钟触发一个事件。我们在内部设置一个flag,当它是0 的时候我们绘制一次画面;当他是1的时候,我们绘制另外一个画面。

        我们以锅炉或某个热设备为例,如果有一个设备故障,我们可以闪烁,提示用户,设备出现了故障。

        //设计一个热设备的基类, 所有的网络

        Guolu.MonitorableDevice = StandardShapes.Image.extend({

            //标识开始动画或停止

            animation: false,

            //timer 的id

            animId: null,

            //状态为

            animCnt: 0,

            orgW:-1,

            orgH:-1,

           

            //设置开始动画或停止

            setAnimation: function(a){

                this.animation = a;

                //如果需要显示动画,

                if(a){

                    var me = this;

                    //保存状态

                    me.orgW = me.width;

                    me.orgH = me.height;

                    //设置定时器

                    this.animId = setInterval(function(){

                        me.animCnt = (me.animCnt == 1)? 0 : 1;

                        me.drawAnimation();

                    }, 500);

                //不需要显示动画

                }else{

                    //清除定时器

                    if(this.animId){

                        clearInterval(this.animId);

                    }

                    //还原宽度和高度

                    this.width = this.orgW;

                    this.height = this.orgH;

                    this.animId = null;

                    this.animCnt = 0;

                    //重绘静态页面

                    this.redraw();

                }

            },

           

            //绘制动画

            drawAnimation: function(){

                //如果是基数帧,缩小20%

                if(this.animCnt===1){

                    this.height = this.orgH*0.8;

                    this.width = this.orgW*0.8;

                //如果是偶数帧,还原比例

                }else{

                     this.height = this.orgH;

                    this.width = this.orgW;

                }

                this.redraw();

            }

        });

         

    亚洲日本旡码av