- 相关推荐
Flex Builder在卷接机组监控机中的应用
[论文关键词]:Flex Builder技术 卷接机组 滤棒成型监控机 web服务
[论文摘要]:车间监控层中生产数据的及时采集与更新[3] 是保证烟厂“计划”与“生产”密切配合的关键。本文通过Flex Builder软件及web服务技术模拟建设卷烟厂卷接机组滤棒成型监控机人机监控画面及实施了数据采集的实时仿真。
1 引言
随着的不断发展与完善,以及工厂信息化建设的快速发展。卷烟企业车间监控层就成为烟草行业企业信息化工程的基础[7],应用网络实现对生产作业过程中产生的大量的实时数据的自动化快速收集,并对实时事件及时处理,同时又与计划层保持双向能力,从计划层接收相应数据并反馈处理结果和生产指令,有效地解决了制造企业对生产现场作业的难题,为企业创收做出了巨大的贡献[4]。本文在此基础上,通过项目实例介绍了flex Builder在卷烟厂滤棒成型监控机建设上的应用。
传统的BS架构的监控系统客户端处理数据的能力并不强,对服务器端的依赖很大,而实时监控需要在客户端与服务器之间频繁传递数据,并且服务器同时也要把显示的页面传回给客户端,这将增大服务器的负担。针对此问题系统以Flex作为表现层,不仅提高了客户端处理数据、展示数据的能力,同时服务器端与客户端传递的只有数据而没有传统的页面,界面的布局变化完全由客户端执行处理。
2 系统结构
SHAPE \* MERGEFORMAT
Flex应用程序框架[1]由MXML、AcitonScript 3.0及Flex类库三部分组成,开发人员利用MXML及ActionScript编写Flex应用程序,利用MXML定义应用程序用户界面元素,利用ActionScript虚拟机(AVM)定义客户端及程序控制,而将Flex类库中包含的大量的组件、管理器及行为等作为辅助,来加快整个开发的进程,程序编写完成后,通过Flex编译器将其编译为字节码,最终形成以.swf为扩展的可执行的二进制文件。本文采用Flex框架作为表现层和数据交互引擎,充分利用其客户端运算能力和客户端缓存能力,从而减轻了服务器的负担,减少了响应时间和传递的数据量。在此基础上构建了一个B/S结构的卷接机组监控系统,其中人机界面与PLC的通讯采用MPI方式[2]。如图1。
(1) 串口通信层:在系统与主控机之间使用VB串口通信(采用的是RS-232串口标准)实现数据的交互[6]。VB串口通信层对滤棒成型机提供的数据进行解析,并以特定XML文件格式保存数据于服务器,供Flex端读取并进行分析和处理,同时Flex端根据数据结果实施相应的动作。
(2) 表现层:即Flex制作的用户界面,以web浏览器的形式展示。将相关业务逻辑和数据处理交给客户端来运行,减轻了服务器的压力,使服务器只用来进行相应的人员数据传输和读取原始描述滤棒成型机状态信息的XML文件[5] ,加快了系统运行速度。
(3) 业务逻辑层:通过Servlet处理Flex的请求,读取滤棒成型机状态信息XML文件,并返回于客户端;负责响应请求、记录日志、读取或保存相关数据。
(4) 数据层:由多数据服务器构成,主要有:日志文件、滤棒成型机数据设置信息数据库、滤棒成型机信息数据库、滤棒成型机实时状态信息文件的存储、管理和维护。
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>
3.2.2 使用HTTPService获取XML
通常所需的 XML数据是动态的而不是静态的,直接来自于滤棒成型机 ,这时可以通过HTTPService来获取所需的 XML动态数据。可以选择使用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] 陈显军,魏祖宽 基于Flex的XML数据通讯与应用研究[J].与现代化,2008(3).
[2] 王声决,熊刚 厂企业内部网的设计与实现[J]控制计算机,2003,(J)
[3] 接到良,烟草企业自动数据采集系统的研究与实践[J]自动化仪表,2006第27卷第3期
[4] 欧金成. 组态软件的现状和发展[J]工业控制计算机,2002,(4)
[5] Chafic Kazoun,Joey Lott. Programming Flex2,America: OReilly,2007
[6] 李长林. Visual Basic串口技术与典型实例. 清华大学出版社. 2006
[7] 陈睿.王欢.李炳法.文扬 烟草制造行业中的数据采集系统 [J].2007
[8]张志刚,黄军勤,顾桓 网络系统在包装企业的应用与开发[J]包装工程,2005年03期
【Flex Builder在卷接机组监控机中的应用】相关文章:
CAN总线在楼宇监控系统中的应用03-07
视频过程控制在设备监控中的应用03-17
FPGA在波分复用系统光监控信道中的应用03-08
关于安全监控系统在长输管线中的应用03-18
CPLD在发射机控制保护系统中的应用03-18