论文首页哲学论文经济论文法学论文教育论文文学论文历史论文理学论文工学论文医学论文管理论文艺术论文 |
3 KDF2滤棒成型机监控系统软件设计
3.1功能界面设计
SHAPE \* MERGEFORMAT
车间监控层由多台PC组成,它的主要功能是:一是提供车间级集中监控界面;二是采集现场层的数据,存入本地数据库;三是为一级监控系统提供数据接口。根据现场层提供的数据采集接口技术的开放程度,监控机建设有两种方案:a.在通用监控软件商作二次开发,b.由设备供应商提供监控系统。本文设计的KDF2滤棒成型机的监控主页面如图2所示。最下面一排十一个按钮,每个按钮点击进入一个子页面,虽然各个模块界面元素不同,但数采功能的原理是一样的,因此本文就不一一做说明了,只对主页面进行数据仿真。
3.2 模拟现场监控数据仿真程序设计
3.2.1 Flex与XML通讯
Flex在建立一个项目并在项目里添加项目MXML文件(MXML是XML格式的标记,主要用于编写用户界面,也用于声明一些非界面组件)后,系统自动生成一个文件头<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx=http://www.adobe.com/2006/mxml>
在实际卷烟生产操作中控制滤棒成型机的PLC组件发送XML字符串,字符串格式为<data id=" " value="" />,再此,便于模拟仿真,我们通过实际数据点从PLC读取数据,并将XML字符串转换成getflashdata/文档,此文档是一个以aspx为后缀名的XML文档,通过文档中的data id值与Flex中各标签label的id名称相对应,从而取得机器上的数据信息。比如说上图中”溶胶室:87.4 ℃中87.4为一label,而此label的id值为main_label3,那么我们的getflashdata/文档中也要有一个id值为main_label3值与之对应,才具备了数据仿真的基本条件。并且要在Flex后台source中定义一个读取xml字符串的事件,代码如下:
① 定义txt2label取值事件
public function txt2label(labelname:String,idname:String):void{
try{Label(this[labelname]).text=testxml.data.(@id==idname).@value; } catch(e:Error){} }
② 将Flex中label的id与XML中的id对应
public function ShowXml():void{ //label id XML id
txt2label("main_label3"," main_label3");}
③ Flex以HTML页面作为客户端,运行在Web浏览器之中,实时数据监控采用异步更新,在不刷新页面的情况下显现数据实时更新,大大节省了服务器资源,代码如下:
private function Init():void{ ticker = new Timer(3000); ticker.addEventListener(TimerEvent.TIMER, onTick);
ticker.start();//lblDate.text=dateFormatter.format(new Date());//ShowInit();doRequest();}
新建getflashdata/文件,并将文件存储于项目中的bin-debug文件夹下,以下即为getflashdata/文档主页中的需要从控制滤棒成型机的PLC上接收的XML字符串内容:
<?xml version="1.0" encoding="utf-8"?> <machine><data id="main_label3" value="0" /></machine>