|
嵌入式网络监控系统设计方案
摘 要:本文介绍了一种适合于工业场合、基于客户机/服务器模型的嵌入式网络监控系统的设计。服务器采用32位的Freescale ColdFire系列MCF5272为CPU,以mClinux为操作系统,客户机可以是网络上任何装有客户机软件的PC机,系统中的监控界面由客户端设计,可以通过升级客户机软件来满足新的监控任务。该系统的通用性和灵活性强,利于用户的二次开发。
关键词:嵌入式; 客户机/服务器;网络监控;PLC;二次开发
引言
目前,嵌入式网络监控系统以其本身体积小、功能多、支持以太网技术等优点,已成为工控领域中的新热点。网络监控系统的方式可分为B/S(浏览器/服务器)和C/S(客户机/服务器)两种。对于B/S形式,要求嵌入式服务器的存储器容量足够大,而且对于监控设备结构调整或对监控内容更改频繁的应用场合,就必须对嵌入式服务器中的网页和CGI程序进行更改,这无疑会使普通用户在对服务器进行维护和二次开发时遇到很大的困难。本文介绍的一种采用C/S结构的系统设计可以克服以上问题。由于监控对象和监控页面的设置都由客户机完成,服务器只需进行数据采集、响应客户请求、利用TCP/IP网络发送客户请求数据等工作,同时客户机的监控页面采用通用的微软Windows风格,降低了对操作人员的要求,利于二次开发。
嵌入式网络监控系统的
总体框架
以工厂生产自动化中监控PLC和CAN总线设备为例,为了实现工厂生产透明化,希望在任何地方都能通过网络监控生产情况,并能够随着工厂生产内容的调整更换监控内容,因此,可采用C/S形式使监控对象及监控页面由客户自己根据具体要求定义。服务器由32位Freescale Coldfire系列中支持网络通信的MCF5272芯片和专用于微控制的mClinux操作系统构成。
该系统的总体框架如图1所示。由客户机发出对设备的监控命令,嵌入式服务器接收并处理信息,根据客户机请求对监控对象发出控制命令,或通过串口和CAN接口获得客户机感兴趣的状态,并将此信息通过网络协议经过网络连接返回客户端,由客户端分析并与设计的监控界面建立动画连接或将现场设备的运行状态显示在界面上,并将此信息存储到客户端历史数据库供用户打印输出或统计。
客户端软件设计
客户端系统要完成的任务是监控界面的制定和监控任务的执行,所以客户端软件有两个功能模块:界面开发环境和界面运行环境。本系统使用的是由VC6.0开发的组态软件,客户可以自定义监控界面风格,也可与国内生产组态软件厂商合作设计通用的客户端界面软件。
客户端软件的结构如图2所示。其中界面开发环境的任务是生成监控的人机界面,开发环境应提供构成现场画面所需要的对象,如线、填充图形、文本及可直接调用的图库,对于有实际意义的图形运行界面,还将提供会话式的对话框来使这些图形与现场的控制单元建立动画连接。当用户通过开发环境自定义监控界面后,开发环境会根据此界面建立一系列数据文件,并生成最终的图形目标应用文件,供运行环境使用。运行环境将开发环境生成的目标应用文件装入内存并投入实时运行,一般由多个线程来完成。界面运行线程接收用户请求事件,将用户的请求按一定的数据格式发送到运行与内存的上行/ 下行消息队列,实时消息管理线程将对消息队列进行管理并收发数据。为了满足监控对象的多样性,消息收发线程在将用户消息发送到服务器时,就会根据开发环境提供的监控PLC类型,在监控设备协议解释层将发送消息根据此设备的通信协议进行组织。利用此方式可以方便地监控各种设备。同时,驱动程序用动态连接库的形式给出,方便系统升级。
嵌入式服务器端系统设计
嵌入式服务器采用32位Freescale Coldfire 系列的MCF5272加mClinux微操作系统的方案,硬件结构如图3所示。5272是Freescale生产的基于68K第二代Coldfire内核、可用于工业场合的嵌入式芯片,它集成以太网接口,运算速度66MIPS。ColdFire 微处理器上可以运行很多操作系统,但是mClinux 可以说是最合适,性价比最高的操作系统。
本系统中服务器端运行的mClinux系统的主要模块有TCP/IP协议栈、PPPD模块、以太网口、CAN驱动和串口驱动,应用程序有PPP拨号服务器模块和经过网络通信响应客户机请求及与被控对象通信的服务程序。在编译mClinux内核时要加入所需组件,应用程序编译采用交叉编译的方式,在运行REDHAT9.0的PC机上用Freescale Coldfire系列 专用编译器编译后下载到服务器的FLASH中。在以太网接收及与PLC的通信驱动程序中,服务器不断监听网络端口,将客户机发来的消息通过网络通信得到,并将其转发到连接PLC的串口。定义客户机端发向服务器的请求消息就是符合该监控对象通信协议的请求消息,这样服务器可连接任意系统支持的设备而不必设置监控对象的类型,因为该任务已经由客户机在设计界面时完成。PPP服务器守护进程主要在客户机通过modem经电话网拨入建立网络连接时使用。
网络通信及冗余技术
在监控系统的客户机上运行的Windows操作系统中的客户机监控界面与嵌入式服务器之间的TCP/IP网络通信编程方法是使用BSD Socket (套接口)界面编程。通过它,网络端点 (IP地址和端口地址)以套接口的形式出现。这种套接IPC(进程间通讯)方式的设计是为了能让网络程序的设计独立于不同的底层通信设施。本系统中客户机和服务器之间的Socket通信是在异构环境中进行的,客户机采用WinSocket,服务器采用Linux下的Socket。
为了保证通信畅通,在利用以太网端口进行通信的基础上,同时提供利用串口和modem拨号的方式作为与远端服务器建立通信链路的冗余。为了实现modem拨号连接,必须在客户机端运行拨号软件,在服务器端运行拨号服务器程序。客户机可以使用Windows自带的拨号软件,而在服务器端就必须在后台运行拨号服务监控程序。拨号通信采用的是PPP点对点协议,mClinux中带有这个协议组件,同时通过PPPD协议例程来提供PPP连接时的LCP(链路控制协议)、用户认证、和IPCP(网络协议配置)。
运行在嵌入式服务器端的拨号服务器守护进程的工作机理如下:对串口进行设置并打开串口 ,发送AT指令检查外部modem的存在;如modem正常,用标准AT指令设置自动应答模式,之后进入检测串口输入循环;当有远程modem拨入的铃流,即串口有RING字符收到后,软件将强制摘机,进入物理链路建立连接阶段;连接成功后,串口出现CONNECT字符,此时程序将vfork一个进程,启动PPPD进入PPP连接阶段与拨入客户机进行握手协商协议,用户认证、配置远程计算机IP,成功后将建立PPP连接;PPPD在连接成功后,将更改mClinux系统的路由表添加新的直接到达的路由路径,这样就可以在客户端和嵌入式服务器端通过串口收发IP包进行网络通信了。
结语
本文介绍的监控系统的服务器端采用32位CPU加mClinux操作系统的嵌入式方案,利于设备的小型化,采用C/S形式将监控界面交由客户端设计,并且系统对监控对象无依赖性,可通过升级客户机软件来增加驱动以满足新的监控任务,这样的设计模式增加了该系统的通用性、灵活性和产品生命周期,利于用户的二次开发。在嵌入式网络设备日益渗透到工业生产和各种监控应用中的趋势下,这种系统将会有很好的利用前景。 |
|