《电子技术应用》
您所在的位置:首页 > 其他 > 业界动态 > 网络仪表数据实时监测功能的实现

网络仪表数据实时监测功能的实现

2008-02-22
作者:李振宇

摘 要:通过CGI和Flash动态交互技术实现网络仪表" title="网络仪表">网络仪表数据远程实时监测" title="实时监测">实时监测的方案。描述了系统的设计框架和仪表的硬件组成,移植了ARM-Linux" title="ARM-Linux">ARM-Linux操作系统,选取Boa作为嵌入式Web Server,通过编写CGI程序并结合Flash无状态机制实现了远程监测功能。
关键词:网络仪表  ARM-Linux  嵌入式Web Server  CGI  Flash

 

    网络仪表是由指针式仪表、数字仪表、智能仪表发展起来的新一代仪表,它可以实现远程调试、诊断、数据采集和实时监测,从而提高生产效率和管理水平,并最有效地发挥设备功能[1]
  在实时性要求较高的电力参数" title="电力参数">电力参数测控系统中,为了保证观测的实时性,以往的处理方法是通过JavaScript或浏览器支持的语言定时刷新页面,但这样会导致浏览器端所显示的仪表数据不停闪动变换,令观测者无法接受;而用HTML只能直白的显示数据,无法动态描绘波形。怎样既能解决刷新问题,又能通过动态波形描绘仪表数据?通过将CGI与Shock Wave Flash相结合,可以实现仪表数据在浏览器上的实时刷新和波形动态描绘,使人机界面更加友好,数据显示更加直观,能成功地实现远程监测仪表数据的目的。
1 网络仪表数据实时监测系统结构
   系统主要由现场传感器、网络仪表和远程监控端三部分组成。现场传感器采集待检测对象的信息并传送给网络仪表。网络仪表以Web Server为核心,接收现场传感器传递来的数据,并通过RJ45网络接口连接到Internet。远程监控端可以通过浏览器直接访问网络仪表服务器,且允许多点访问,实时监测现场数据,并可以修改参数,对仪表进行相应的调试、校正[2]。系统结构如图1所示。

 

 


2  网络仪表的硬件组成
  一个完整的网络仪表硬件系统以具有Web通信功能的嵌入式微处理器为核心,处理器选用16/32-bit RISC、高性价比、低功耗、集成度高的Samsung S3C2410,该芯片采用203MHz的ARM920T内核。外围的16MB的Flash用来存储实时操作系统内核、TCP/IP协议栈、CGI程序和Web文档;SDRAM供系统运行时使用;以太网接口实现与Internet/Intranet连接。其核心硬件组成如图2所示。

 


  该网络仪表是针对电力变电站的电力参数测量而设计。主控芯片S3C2410集成了一个8路10位A/D转换器,在2.5MHz转换时钟下其最大转换率为500KSPS,非线性度为正负1位。现场传感器采集的多路信息通过A/D转换器将数字量传递给主控芯片,可实现电力参数的多通道测量[3]
3 网络仪表的软件层及关键技术
  仪表软件层根据功能可分为现场仪表数据采集处理和远程显示两部分。现场仪表软件层采用ARM-Linux操作系统下的Boa作为仪表的Web Server,建立基于B/S模式的网络结构,来实现远程网络监测功能。
3.1 ARM-Linux操作系统
  为了降低成本,选用开放源代码的ARM-Linux操作系统,主要包括交叉编译" title="交叉编译">交叉编译工具链的安装和内核的编译两部分内容。
3.1.1 安装交叉编译工具链
  交叉编译工具链是整个网络仪表软件系统开发和移植的基础工具,其正确安装可以加快系统开发的速度。主要命令如下:
   mkdir –p /usr/local/arm
   tar jxvf cross-2.95.3.tar.bz2
   mv 2.95.3 /usr/local/arm
   export PATH=$PATH:/usr/local/arm/2.95.3/bin
3.1.2 编译ARM-Linux内核
     内核的编译主要包括配置内核、编译内核、产生内核映像文件三步[4]。命令如下:
      make menuconfig
      make dep
      make zImage
3.2 Web Server的选择和移植
  因为仪表采集的数据需要在远程计算机上浏览,必须移植相应的Web Server才能实现该功能。在ARM-Linux下主要有三个Web Server:Boa、httpd和thttpd。Boa是一个单线程的HTTP服务器,它不同于其他传统的Web服务器,不为每个连接创建一个进程,只有当CGI程序运行时才创建一个新的进程。另外,Boa体积非常小,通常只有几十KB,非常适合于嵌入式系统中使用。因此通过移植Boa来实现网络仪表远程测控功能[5]。在移植过程中,需要注意以下几点:
    (1)交叉编译工具的选择
  Boa使用configure配置完成后,以arm-linux-gcc作为交叉编译工具。
    (2)ServerRoot的定义
  在编译Boa之前,通过修改defines.h文件来指定boa.conf所在的路径。
    (3)boa.conf和MIME.types的配置
  为使Web Server正常运行,必须对boa.conf和MIME.types文件进行配置,主要是指定相应的端口、服务器名称、错误日志文件存放的目录(必须为可读写)、HTML及CGI文件路径。
3.3 CGI结合Flash的动态实现机理
  CGI(Common Gateway Interface)的工作流程是浏览器将用户输入的数据传递给服务器,Web Server根据接收到的数据设置环境变量,并新开一子进程来执行CGI脚本。CGI脚本从环境变量中读取数据,然后使用STDOUT输出HTML形式的结果文件,显示给远程浏览器端用户[6]。工作流程如图3所示。

 


  Flash是Macromedia公司出品的用于浏览器上动态显示且可互动的一种Active控件。因为Flash是一种完全由程序来描述且区别于点阵图的矢量控件,所以体积特别小,可轻松移植到嵌入式设备中,满足嵌入式开发的小型化需求。此外,Flash内嵌了一种强大的面向对象编程语言ActionScript,开发动态控件变得异常简单,并可用Loadvariables(url, target, method)方法接收外部变量,实现Flash的无状态刷新和无状态响应机制[7]。Flash向Boa服务器发送请求并调用CGI程序源代码如下:
    if(strcmp(getenv('REQUEST_METHOD'),'POST')) 
    //getenv()用来取得环境变量的内容
    { 
       cl = atoi(getenv('CONTENT_LENGTH')); 
      for(x=0;cl && (!feof(stdin));x++)
    //feof检查文件流是否到达文件尾
      {
       m=x;
       entries[x].val = fmakeword(stdin,'&',&cl);
       plustospace(entries[x].val);
       unescape_url(entries[x].val);
       entries[x].name = makeword(entries[x].
      val,'=');
       }
      }
4 远程仪表数据动态显示的实现
  动态功能通过Flash每秒自动向Boa服务器发送请求,CGI程序接受请求后,通过设置ADCCON模数转换控制寄存器,启动转换器,读取实时采集的数据,同时指定相应转换通道,当A/D转换结束后,读取ADCDAT模数转换数据寄存器的内容,然后再将结果以固定的字符串格式发送给Flash[8]。电力参数显示结果如图4所示。

 


    由于Flash的无状态刷新和无状态响应机制,可以无需刷新浏览器就实时读取仪表数据,同时借助Flash强大的动态绘图功能,可以实时地接受CGI发送过来的数据,并转换成波形动态描绘出来,创新性地实现了数据在浏览器上的实时刷新和动态描绘,达到了网络仪表数据远程实时监测的目的。
  基于网络仪表的电力参数测量都是以传统的静态HTML页面刷新机制来实现实时监测功能的。这一机制用于显示需要动态刷新的数据点时存在闪烁缺陷。本文基于动态Web技术,通过编写Flash程序来无刷新请求CGI,合理地解决了上述缺陷,节约了开发成本,是一种全新的软件系统构造技术。
参考文献
[1]  麦伟明,金肇光.网络仪表的原理及其在电力变电站的应用[J].电机电器技术,2004,(4):41-43.
[2]  吴锋,李成铁,何风行等.基于Web技术的远程监控系统研究[J]. 仪器仪表学报,2005,26(8):241-243.
[3]  李正军,杨洪军,宋晓庆.新型电力网络仪表的谐波测量方法与实现[J].电力系统及其自动化学报, 2006,18(3):28-33.
[4]  李长明. 基于ARM和Linux嵌入式系统的软件开发.工业控制计算机,2006,19(3):47-51.
[5]  骆懿,章坚武.嵌入式Linux Webserver软件BOA实现与应用[J].杭州电子工业学院学报,2004,24(1):52-55.
[6]  王磊, 姚成虎. 如何实际构造嵌入式Web 服务器[J].计算机应用, 2004,24(12):7-9.
[7]  王均.用Flash实现铁路列车运行组织的动态模拟[J].铁路计算机应用,2005,14(2):37-39.
[8]  江甫,黄少先.基于计算机与网络仪表的电力参数测量系统[J].仪表技术与传感器,2003,(11):26-27.

本站内容除特别声明的原创文章之外,转载内容只为传递更多信息,并不代表本网站赞同其观点。转载的所有的文章、图片、音/视频文件等资料的版权归版权所有权人所有。本站采用的非本站原创文章及图片等内容无法一一联系确认版权者。如涉及作品内容、版权和其它问题,请及时通过电子邮件或电话通知我们,以便迅速采取适当措施,避免给双方造成不必要的经济损失。联系电话:010-82306118;邮箱:aet@chinaaet.com。