基于Flash的远程工业监控系统设计方案 - 中国一卡通网
用户名密码 [免费注册] [找回密码] 推广技巧 发布求购 建商铺  发产品  会员体制比较  
 

基于Flash的远程工业监控系统设计方案

来源:中国一卡通网  作者:不详  发布时间:2012-07-04 09:37:50  字体:[ ]

关键字:远程工业监控系统  Flash  网络传输  

摘   要:根据当前基于Web远程工业监控方案的不足,利用Flash的交互性强,本身导出的文件小,适合网络传输、利用AS(ActiON Script)提高了与其他语言的交互性等特点,提出了基于flash的远程工业监控系统设计思路。提出了本系统的4层体系结构,并基于这4层的体系结构,对本系统进行了详细的硬件连接设计和系统软件设计。该系统的核心思想是利用Socket实现了Flash客户端和服务器端的数据通信,利用RemoteObiect实现历史数据的存储。本系统的设计对基于Web远程工业监控提供了新的思路,具有实际的应用价值。


  对于外围设备进行通信主要是通过串口服务,首先调用自己定义的COM口初始化函数InstallCom将端口初始化,然后通过build_REQ_Read函数实现根据ModBusRtu通讯协议将COM口读取的外围设备的数据放入自定义的数组中,并通过CRC16_modbus进行CRC校验。接收的数据正确,则通过analyse_Read_Result分析从串口读取的数据,并将读取的数据位存放到Share_Mem[MaxShareMemNum]数组中。然后将Share_Mem数组作为REMOTCP_ModServer_Create参数与上位机进行通讯。对外围设备发送指令,则是通过函数SendCommand选择控制对象的COM后,将指令发送到外围设备,外围设备接收到指令后动作。

  3.2.2 客户端程序与PAC服务端通讯的实现

  客户端的实现主要分为3个部分:通过Flash的Socket与PAC服务端的数据交互,将接收的数据在页面上动态显示和将获取的数据实时存入到数据库,实现实时数据库的历史存储功能。

  客户端Flash与PAC服务端的数据交互主要是通过Socket进行的。首先定义Socket,利用conNECt连接PAC服务器的地址和端口号502,利用mysocket.addEventListener(Event.CONNECT,OnConnect)监听是否已建立连接,利用mysocket.addEventListener (IOErrorEvent.IO_ ERROR,ioErrorHandler)来监听连接过程中出现的错误,利用mysoeket.addEventListener(Event.CLOSE,OnClose)监听连接是否关闭,利用mysocket.addEventListener(ProgressEvent.SOCKET DATA,receivedata) 中的mysoeket.readMultiByte(mysocket.bytesAvailabl e,"utf8")接收PAC服务端发送过来的数据。添加控制功能则是通过flash页面中的控件的触发事件来完成。在触发事件中添加mysocket. writeUTFBytes(data),并调用mysocket.flush()方法将触发的事件发送出去,从而完成了与服务端的数据交换。

  在发送与接收数据的过程中由于遵循的为Modbus/TCP协议,发送和接收的数据要遵循Modbus标准的数据帧格式,因此需要根据Modbus协议的标准格式对所接收和发送的数据帧进行转化。在接收的数据中,要对接收的数据进行分析,根据自己的定义,将地址与监控终端的信息取出,并转换为String类型,在页面上对应显示。 

  3.2.3 客户端与数据库的交互

  对采集来的数据除了在页面上显示,需要存入数据库作为历史备份。客户端Flash与Oracle数据库无法直接交互,可以通过服务器端技术连接数据库,这3种连接方式为:HttpService、WebService和RemoteObject.3种通讯方式比较如表1所示。


  表1 Flash与Oracle数据库3种交互方式比较 

  从上表中可以看出,前两种通信数据量较小,要传输大量的数据或是实现不同对象的序列化传输,需要利用高效的传输协议AMF(Aetion Script Message Format)来代替SOAP协议传输的方案。

  开源项目FluorineFx就是专门针对。net平台与Flex通信提供的AMF协议通信网关,笔者可以通过FluorineFx方便地完成与。net的通信。

  要使用开源项目FluorineFx需要使用FluroineFx通信的。net和Flex配置,分为以下3步:

  1)NET服务端的开发

  建立解决方案,并添加FluroineFx服务器库。添加成功后项目模板会自动创建一个Sample类和Echo方法。接着添加FluorineFx网站到解决方案,添加成功后网站会自动引用FluorineFx服务库的DLL.

  2)Flex开发

  在Flex开发中需要根据以上的参数进行配置。首先创建Flex项目,并将项目路径指向先前建立的FluorineFx网站的根路径。项目创建完毕后,可以通过FluorineFx与。net进行通信。

  3)远程访问

  在Flex的mxml文件下通过<mx:RemoteObject>标签来访问远程对象,如下所示: 


  下面通过ID调用远程方法,利用。net的服务端与数据库进行交互,定时存储和读取数据库中的内容: 


  4 结论

  本文提出的基于Flash的远程设备监控系统的设计,对于当前的基于Web的远程设备监控提供了一种新的方式。利用了Flash的Socket实现了与PAC的Modbus/TCP协议的数据通信。由于Flash的限制,当前还无法实现Flash与Oracle数据库直接的数据交互,在本设计中由于只存取历史数据和操作日志,数据传输频率不是很高,因此对本设计并没有太多影响。但ActionScript3可以独立实现与MySOL进行数据交互,因此我们相信在AS下一版本的推出将会实现与Oracle的独立交互。本系统中利用Flash的各种特性,在可靠性、稳定性、时效性、与Web的兼容性、页面显示效果和用户交互的体验效果上将会有很大的改善。如果在现有的开发环境中,对数据交互和Flash页面的动画展示部分进行封装,将会大大减少软件的开发强度,具有实际的应用价值。

更多

新闻投稿合作邮箱:yktchina-admin@163.com    字体[ ] [收藏] [进入论坛]

推荐文章

论坛热帖