Flash的远程工业监控系统设计方案_第1页
Flash的远程工业监控系统设计方案_第2页
Flash的远程工业监控系统设计方案_第3页
Flash的远程工业监控系统设计方案_第4页
Flash的远程工业监控系统设计方案_第5页
已阅读5页,还剩3页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、【Word版本下载可任意编辑】 Flash的远程工业监控系统设计方案 目前,监控领域的产品普遍关注现场级别,即采用客户端/服务器(C/S)模式,其目的是保证监控系统的稳定性和可靠性。但随着计算机技术、网络技术、控制技术的不断发展,同时为了使现场总线、企业信息网、外部互联网能够充分的融合,提高企业自动化水平和设备的维护管理水平,基于网络化的Web远程监控将会在以后的监控系统中得到广泛的应用。 1 现状分析 当前,基于Web的远程工业监控方案一般有3种:1)将OPC或其他通信方式采集的数据通过中间软件存入到数据库中,然后通过Web页面与数据库开展交互,以到达设备监控的目的:2)通过做插件嵌入到we

2、b浏览器中,实现与控制器的交互;3)通过Web service实现与控制器的交互,即将设备的控制接口以及数据信息通过部署Web service的方式发送出去,监控中心通过网络发现并调用这些web service方法,完成现场设备的控制和数据采集。种方案,中间过程过于复杂,违背了监控系统的稳定性和可靠性的原则,中间环节的限制因素较多,并且不便于控制,监控的延时也非常明显,时效性缺陷;第二种方案,在网页中插入开发的监控设备的控件,则需要降低浏览器的安全性,同时针对每一台监控的主机都要提前控件后才能使用,并且此类控件与Web浏览器的其他Web页面的功能融合性以及监控页面显示效果等方面较差,较难实现B

3、/S模式下丰富的显示效果;第三种方案,通过Web service建立非实时连接的传输,就必须通过循环体来不断的刷新数据,不仅会增加设备的负担,同时将会存在固定的延时问题。因此文中基于以上监控方案的缺陷,提出了基于Flash的远程监控系统实现方案。该方案利用Flash的交互性强,本身导出的文件小,适合网络传输,利用AS提高了与其他语言的交互性等特点,将会大大改良以上3种方案各自的缺陷,使基于Web的远程监控系统在可靠性、稳定性、时效性、与Web的兼容性、页面显示效果和用户交互的体验效果大大改善。 2 基于Flash远程工业监控系统体系构造 基于Flash远程监控系统的体系构造可以分为4层:现场设

4、备的检测与控制、Web发布系统、客户端数据的接收与命令的发送和数据存储与转发。现场设备检测与控制一方面负责采集现场各个控制节点的运行数据,经过汇总、预处理后传递给中间层子系统;另一方面接收中间层子系统转发来的控制命令,对命令开展解析、验证,然后指导现场的各个控制节点采取相应的动作。Web发布系统主要是由Web服务器提供Web服务,实现客户端的发布,Web服务器为中间环节,完成与客户子系统以及现场子系统的交互。客户子系统是与用户直接交互的部分,它接收用户的输入,从现场设备的检测与控制子系统中获取监测数据或向其发送命令。数据存储与转发系统主要由数据库服务器和提供Web ser vice的服务组成,

5、数据库服务器则完成采集数据的存储功能。通过这4个过程的作用来实现设备的远程监控。其体系构造如图1所示。 图1 基于flash的远程设备监控系统体系构造 3 基于Flash远程监控系统的设计 3.1 系统硬件连接设计 现场设备通过串口与数据采集模块通讯,数据采集模块通过工业以太网与Web服务器连接,Web服务器通过以太网与数据库服务器连接。数据采集模块采用PAC(可编程自动化控制器),支持Modbus/TEP通信协议。Web服务器和数据库服务器采用HP服务器,安装操作系统为Windo ws Server 20* Enterprise.网络拓扑构造采用星型拓扑构造,是为了能够与现场采集设备建立更有

6、效的连接。Web服务器存储数据直接面向数据库服务器,便于减轻整个网络负担,防止由于数据量过大而引起网络阻塞。同时数据库服务器实现双机热备,来提高系统的可靠性。将数据库分为两部分:中心数据库和企业级数据库,中心数据库主要存放当前数据,企业级数据库则存放历史数据以及设备和用户的管理数据,实现动态数据与静态数据的隔离。网络拓扑图如图2所示。 图2 系统总体架构图 3.2 系统软件设计 软件设计的内容为PAC编程和客户端Flash编程。PAC编程语言为C语言,编辑环境为BC编译器,Flash编程语言为Action Script,编辑环境为Flash builder4.5. 本系统通过创立一个以TCP数

7、据流方式建立的Socket从而实现PAC服务端与基于Web的Flash客户端的数据传输。建立通信的过程为:首先PAC服务端通过Socket监听自身的Modbus/TCP专用端口502,客户端程序则通过此端口及PAC服务端的IP地址作为连接Socket参数,创立一个Socket与PAC服务端建立连接。网络无故障,则连接建立。客户端通过Flash中Socket的SendMessage()和ReadBytes()方法来发送和接收信息。 利用Flash创立的基于Modbus/TCP套接字模型为如图3所示。 图3 Modbus/TCP套接字模型 3.2.1 1PAC服务端程序实现 PAC服务端的实现主要

8、分为通过Socket与上位机的通信和通过串口服务与外围设备的通信两大部分。 通过Socket与上位机的通信主要分为监听和连接。在监听状态下负责监听客户端的请求连接,并负责承受此连接。本系统PAC端设计监听类为ServerListen,监听类首先通过int bind(int sockfd,struct sockaddr*my_addr,int addrten)绑定了本地的502端口,然后通过函数int listen (int sockfd,intbacklog)将客户端的连接请求放入队列中等待,直到函数intaccept(int sockfd,void*addr,int*addrlen)处理它,

9、然后返回一个全新的套接字文件来描述此单个连接。这样,对于同一个连接就有两个文件描述符,原先的一个文件描述符正在监听你指定的端口,新的文件描述符可以用来调用send()和recv()。在连接状态下负责与客户端开展数据的接收和发送,通过数据传输类Server Custom来实现。在此类中利用int send(SOCKETs,const char FAR*buf,int len,int flags)函数将PAC服务端的数据发送到客户端,如果网络发生故障或待发送数据的长度len小于当前程序要发送数据的缓冲区的长度,则返回SOCKET_ERROR,利用int recv(SOCKETs,char FAR*

10、 buf,int len,int flags)从客户端接收数据。函数先等待s的发送缓冲中的数据被协议传送完毕,如果协议在传送s的发送缓冲中的数据时出现网络错误,则函数返回SOCKET_ERROR错误,如果s的发送缓冲中没有数据或者数据被协议成功发送完毕后,函数先检查套接字s的接收缓冲区,如果s的接收缓冲区中没有数据或者协议正在接收数据,那么函数就一直等待,直到协议把数据接收完毕。 对于外围设备开展通信主要是通过串口服务,首先调用自己定义的COM口初始化函数InstallCom将端口初始化,然后通过build_REQ_Read函数实现根据ModBusRtu通讯协议将COM口读取的外围设备的数据放

11、入自定义的数组中,并通过CRC16_modbus开展CRC校验。接收的数据正确,则通过analyse_Read_Result分析从串口读取的数据,并将读取的数据位存放到Share_Mem数组中。然后将Share_Mem数组作为REMOTCP_ModServer_Create参数与上位机开展通讯。对外围设备发送指令,则是通过函数SendCommand选择控制对象的COM后,将指令发送到外围设备,外围设备接收到指令后动作。 3.2.2 客户端程序与PAC服务端通讯的实现 客户端的实现主要分为3个部分:通过Flash的Socket与PAC服务端的数据交互,将接收的数据在页面上动态显示和将获取的数据实

12、时存入到数据库,实现实时数据库的历史存储功能。 客户端Flash与PAC服务端的数据交互主要是通过Socket开展的。首先定义Socket,利用connect连接PAC服务器的地址和端口号502,利用mysocket.addEventListener(Event.CONNECT,OnConnect)监听是否已建立连接,利用mysocket.addEventListener (IOErrorEvent.IO_ ERROR,ioErrorHandler)来监听连接过程中出现的错误,利用mysoeket.addEventListener(Event.CLOSE,OnClose)监听连接是否关闭,利用

13、mysocket.addEventListener(ProgressEvent.SOCKET DATA,receivedata) 中的mysoeket.readMultiByte(mysocket.bytesAvailabl e,utf8)接收PAC服务端发送过来的数据。添加控制功能则是通过flash页面中的控件的触发事件来完成。在触发事件中添加mysocket. writeUTFBytes(data),并调用mysocket.flush()方法将触发的事件发送出去,从而完成了与服务端的数据交换。 在发送与接收数据的过程中由于遵循的为Modbus/TCP协议,发送和接收的数据要遵循Modbus

14、标准的数据帧格式,因此需要根据Modbus协议的标准格式对所接收和发送的数据帧开展转化。在接收的数据中,要对接收的数据开展分析,根据自己的定义,将地址与监控终端的信息取出,并转换为String类型,在页面上对应显示。 3.2.3 客户端与数据库的交互 对采集来的数据除了在页面上显示,需要存入数据库作为历史备份。客户端Flash与Oracle数据库无法直接交互,可以通过服务器端技术连接数据库,这3种连接方式为:HttpService、WebService和RemoteObject.3种通讯方式比较如下表1所示。 表1 Flash与Oracle数据库3种交互方式比较 从上表中可以看出,前两种通信数

15、据量较小,要传输大量的数据或是实现不同对象的序列化传输,需要利用高效的传输协议AMF(Aetion Script Message Format)来代替SOAP协议传输的方案。 开源项目FluorineFx就是专门针对。net平台与Flex通信提供的AMF协议通信网关,笔者可以通过FluorineFx方便地完成与。net的通信。 要使用开源项目FluorineFx需要使用FluroineFx通信的。net和Flex配置,分为以下3步: 1)NET服务端的开发 建立解决方案,并添加FluroineFx服务器库。添加成功后项目模板会自动创立一个Sample类和Echo方法。接着添加FluorineF

16、x网站到解决方案,添加成功后网站会自动引用FluorineFx服务库的DLL. 2)Flex开发 在Flex开发中需要根据以上的参数开展配置。首先创立Flex项目,并将项目路径指向先前建立的FluorineFx网站的根路径。项目创立完毕后,可以通过FluorineFx与。net开展通信。 3)远程访问 在Flex的mxml文件下通过标签来访问远程对象,如下所示: 下面通过ID调用远程方法,利用。net的服务端与数据库开展交互,定时存储和读取数据库中的内容: 4 结论 本文提出的基于Flash的远程设备监控系统的设计,对于当前的基于Web的远程设备监控提供了一种新的方式。利用了Flash的Socket实现了与PAC的Modbus/TCP协议的数据通信。由于Flash的限制,当前还无法实现Flash

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论