[企业车间监控层就成为烟草行业企业信息化工程的基础[7],应用
在实际卷烟生产操作中控制滤棒成型机的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>
3.2.2 使用httpservice获取xml
通常所需的 xml数据是动态的而不是静态的,直接来自于滤棒成型机 ,这时可以通过httpservice来获取所需的 xml动态数据。LOCALhOSt可以选择使用actionscript或mxml来创建httpservice类 ,它们是等价的 ,因为 flex本身是作为actionscript的类来实现的。可以通过 get或 post方式发送请求到一个 url,对指定的url产生一个异步调用 ,然后处理这个请求并将数据返回至 flex中。通过指定的url, httpservice对象可以访问静态的或动态创建的 xml,动态创建的 xml可以由 java、 .net、 php、 coldfusi on或其它任何服务器端技术产生。最终结果返回给 flex并存储在 actionscript对象当中 ,当然可以在mxml标签内使用属性resultformat来指定返回数据的格式。下面的代码使用flex的mxml标签来从指定的url获取xml数据。
<mx:httpservice id="plainrpc" url="getflashdata/" //读取getflashdata/中的数据
result="handleresult(event)" fault="handlefault(event)" resultformat="e4x">
<mx:request> <type>ptdetail</type> <machineid>6</machineid> </mx:request>
</mx:httpservice>
到此软件部分要实现的基本仿真程序就编写完成了,运行程序之后,将在浏览器中看到如图2中中间界面部分所示的页面内容,当在getflashdata文件中更改main_label3的value值并保存时,我们会看到,web浏览器中页面上溶胶室后面的温度数值也会变成mian_label3的value值,并且并未刷新页面,有效地实现了异步更新的监控仿真功能。
4 小结
本文简要介绍了下flex builder建设卷烟厂监控机监控系统中的特点、系统架构[8],并做了简单的系统仿真。flex强大的功能大大提高了客户端处理数据、展示数据的能力,同时软件设计较传统的客户端服务器设计架构简单,操作方便,可以多工控软件兼容,可在原有工控软件的基础之上进行二次开发。本文只是做了卷烟厂监控子机的小小仿真,为flex在更大项目工程中的应用拓展打下了坚实
[1] [2] 下一页