分享好友 方案首页 频道列表

利用泓格产品进行高山无人监控站的系统设计与开发

2012-04-11泓格科技上海技术服务中心

1 应用背景
  本系统用来监控杭州、温州、宁波等城市的微波站,主控站在城市机房,受控站则在内地或海边的山顶,环境比较恶劣。共有6个主控站,每个主控站带1个受控站,采用总线型的主控机和受控机两级结构,通过微波信道(图1粗黑线所示)在主控机之间传送数据,但在某一时刻只有一台主控机Polling所属受控机,被Polling受控机作应答处理,其余主控机处于侦听(Listen)状态。主控机Polling完所属受控机后,转移Polling权,由下一台主控机接管Polling权……如此循环。监控内容主要包括柴油发电机、开关电源、市电、蓄电池等的工作状态、环境温度、湿度、防盗等。系统结构如图1所示。
  
  



  
  2 硬件设计
  油机监控器是与大型柴油发电机配套的专用监控器,采用双机热备;1600与2800也是与原设备配套的专用监控器,其中1600主要用来监控市电和环境参数,2800对两组蓄电池(各12节)进行监控;报警开关量(遥信)输入模块采用7041,控制开关量(遥控)采用7067模块,受控机的主控模块则选用7188。7188有四个串行口,其中两个RS232(仅含Rx、Tx、GND信号线),一个RS485,一个9针全信号RS232口(通过内部跳线,可将此口改变为RS485口)。7188模块接口多,抗恶劣环境,同时,提供丰富的内部函数,有利于快速开发出性能可靠的下位机监控系统程序。受控站系统的硬件结构见图2所示。由于各监控模块均使用RS485接口,所以需要两个RS232/RS485转换接口。COM1口为全信号RS232,连接专用Modem,从而进入微波信道进行数据的传输。主控站通过RS232接口与专用Modem连接,进入微波信道。
  
  


  
  3 软件实现
  3.1 主控机部分
  主控机部分采用组态王5.1来实现。该系统可运行于Win98/NT平台,真正32位程序,实时多任务、多线程,采样速度快,可靠性高,同时,支持分布式历史数据库及拨号网络,具有丰富的ActiveX控件,广泛应用于钢铁、化工、环保、国防、航空航天等重大领域。
  利用组态王开发实时计算机监控系统方便快捷。首先,定义设备,加载通讯驱动程序。如对于本系统,是利用RS232接口来与受控机通讯的,其定义设备时选取的顺序如下:智能模块—I-7000系列—I-7188—Modbus RTU Extention。然后,再规定RS232的工作参数。其次,定义数据词典,规定变量名、数据类型、寄存器之间的关系。数据词典中的变量可以根据原始数值自动计算所对应的线性目标值。最后,根据组态王提供的图元控件设计用户界面,无论是字符串还是图元,均可建立“动画链接”,从而,将数据变量和数据的显示结合起来。数据显示包括两种形式,一是数据的文本格式的显示,二是数据的动画表示,如对于报警量,正常显示绿灯,报警显示红灯等。如此三步,主控机软件开发基本完工。
  
  3.2 受控机部分
  3.2.1 受控机主程序设计
  7188提供了丰富而方便的库函数,其中包括关键的看门狗、相关的数据发送和接收函数、时钟中断函数等等,同时,还提供了丰富的例程,因而,使得受控机软件逻辑简捷,开发极其迅速可靠,与其它厂家的模块也能极其友好地连接。7188的一个串口控制两台智能设备,这是通过地址来区分的。对于泓格产品的7000系列模块,其工作参数及模块地址是可调的,可在系统组装之前对其进行设置。而其它智能模块的工作参数和地址则是由厂家设定的,不可更改。
  由于7188内嵌基本的DOS环境,因而,采用TC2.0来编写受控机程序。主程序首先初始化系统,包括对各串口的初始化及系统运行参数的初始化,并安装用户时钟中断。由于该用户中断固定为1ms,因而,在中断程序中应避免接收和发送数据,因为监控系统中的波特率一般不超过9600(太高可能导致数据传输的不可靠),而对于9600的波特率,传输1个字节的数据大约需要1ms,一般情况下,所选择的波特率低于9600,而且,一次发送和接收的数据一般超过2个字节,因而,会引起DOS重入,从而使系统不可靠。所以,时钟中断程序应尽量简捷,主要完成各个工作节拍之间的协调问题,主要工作在主程序中进行,即轮询时间或节拍到,即向智能模块或设备发送查询命令,而当有数据返回时,再去读取数据并处理。其软件系统框图如图3所示。
  
  


  
  3.2.2 通讯问题及解决方案
  对于计算机监控系统,最关键的问题是数据通讯的可靠性。泓格产品的I/O设备数据传输平稳,能与7188可靠地连接,但其它厂家模块的数据传输并不象所想象的那么连续,因而,应该根据所接收的数据的不连续性作相应的等待,时间太短,数据将可能丢失,时间太长,则可能造成死机或将下一批的数据也一块接收进来。数据接收程序见算法1中的ReadDataDelay子程序。经过反复调试,对于本系统,发现延时数据大于0x0140即可,小于0x0130则数据错误率达1/4左右,并且,主要是每次丢失1~2个字节的数据。0x0130与0x0140之间为临界值。数据发送也用一个统一的子程序来完成,见算法1中的SendData子程序,数组中第一个字节用来存放收到的字节数,其后为数据内容。以下算法对嵌入式模块的程序设计具有通用性,其基本原理可以广泛使用。
  /****************************************************/
  /* ReadDataDelay:读取串口nPort中的数据,放入 */
  /* bData中,nDealy为需要等待的节拍数 */
  /****************************************************/
  void ReadDataDelay(int nPort, unsigned char *bData, int nDelay)
  {
   int nData=0; /*接收到的字节数*/
   int iCount=0; /*等待计时*/
   while(iCount < nDelay)
   {
   if(IsCom(nPort)==QueueIsNotEmpty) /*nPort口有数据*/
   {
   nData++;
   bData[nData] = ReadCom(nPort); /*读取一个字节的数据*/
   iCount = 0; /*有数据,计时清零*/
   }
   else iCount++; /*没有数据,则等待计时*/
   }
   /*bData数据中第一个字节地址存放收到的字节数,其余为字节内容*/
   bData[0] = nData;
   ClearCom(nPort); /*清除串口数据内容,为下次数据接收作准备*/
  }
  
  /*********************************************************/
  /* SendData:nPort为串口号,ComData为需要发送的数据 */
  /*********************************************************/
  void SendData(int nPort, unsigned char *ComData)
  {
   int nlength, i;
   nlength = ComData[0];
   if(2 == nPort) Set485DirToTransmit(nPort);
   for(i=0; i  {
  ToCom(nPort, ComData[i+1]);
   if(2 == nPort) WaitTransmitOver(nPort);
   }
   /*Com2为485口,应调整其数据传输方向*/
   if(2 == nPort) Set485DirToReceive(nPort);
   return;
  }
  
  4 调试及结论
  泓格产品的7000系列组合方便,而且,7188有四个RS232/485串口,价格却非常便宜,一块7188主控模块只要2000多元,且同样抗恶劣环境,曾用电吹风对其连续劲吹,使其表面发烫(温度在50℃以上),却依然可靠地工作。由于上位机提供了组态软件,因而,上位机程序开发迅速,性能可靠;下位机提供了丰富的库函数和例程,使得下位机软件的逻辑简捷,编程灵活而迅速,看门狗功能又能使其自动恢复。
  作者长期从事计算机监控方面的项目与研究工作,设计了“通用多功能计算机监控系统测试软件”,专门用来通过RS232或RS485测试监控系统或相应的智能设备 [1] 。该软件既能充当受控机用来测试主控机程序,又能充当主控机用来测试受控机程序,并在多个监控系统中得到验证。在测试过程中发现,7000系列的模块数据传输平稳,并且,连续测试48小时(5秒测试1次),非泓格产品的监控器平均发生25次数据传输错误,而对于7000系列的模块却没有一次错误记录;用该测试软件模拟受控机对主控机(组态软件)进行测试,也没有错误记录。目前,该系统已经在实验室调试通过,效果良好。由于采用了泓格产品的组态软件及7000系列的模块,该系统开发迅速,性能可靠,因而,极有推广价值(onspring@sina.com)。
  
  参考文献∶
  [1] 马玉春, 宋瀚涛. 串行通讯协议的研究与应用. 计算机应用研究, 2004.4, p228


收藏
凌华科技PCI-9846高速数字化仪在电子时间引信通用测试系统中的应用
本文介绍了电子时间引信的工作原理及测试系统要求,并说明了凌华科技PCI-9846高速数字化仪在电子时间引信通用测试系统中的应用。

0评论2012-12-21

使用LabVIEW和PXI定位飞行过程中飞机的噪声源
为了能开发出更为安静的客机,我们必须定位所有的噪声源,以加强我们对噪音生成原理的认识。在开发一架飞机时,我们可以通过数值分析和模型测试预测噪音等级。然而,实际飞机噪音的属性和特性只能在实际飞行测试中才能获得。利用声音波束成形技术来定位噪音源定位是一种有效可行的方法。

0评论2012-10-31

使用LabVIEW和PXI,以深入了解战场爆炸伤害的影响程度
在可控的实验室环境中重现战争伤害需要一个复杂的工程解决方案。使用NI最新的技术方法,我们可以获得前所未有的,对于整个事件内部原理更加精细的认识,而这一切只需要不到5毫秒的时间。

0评论2012-10-31

使用LabVIEW、PXI、DAQ和DIAdem搭建声纳导流罩监测系统
NI硬件和LabVIEW软件的结合使得我们团队即便在面对客户复杂要求的情况下,也能够在短期内开发应用程序。总体上,我们用了五个月的时间对软件应用程序进行人工设计,开发和测试。尤其是在起步阶段,我们还利用图形化编程对程序进行测试,轻松完成调试。

0评论2012-10-31

NI提供产品用于波音787航电设备检测
我们使用LabVIEW可以快速地开发新的测试软件,而且可以对CAN总线数据进行无限制的控制。PXI-CAN卡非常容易配置,而且有着高度的操作可靠性。

0评论2012-09-12

NI为美海军提供通信测试设备
利用美国国家仪器公司的PXI系统, ALE System Integration公司开发了一套用于美国海军飞机机载通信设备的测试系统。

0评论2012-09-12

NI全新技术数据管理平台特性
为什么需要采集数据?为了验证产品的安全性?是否需要依据长期的变化趋势来做出有据可依的决定?也许,您正面临着挑战,正在进行测试并通过数据来寻找解决方案或决定下一步行动。这些测试生成的数据是非常有价值的。很多情况下,您只能进行一次测试 - 随着测试复杂度和频率的增加,测试的成本也随之增加。

0评论2012-09-10

使用LabVIEW、PXI和CompactRIO快速开发太空探索飞行器结构测试系统
G Systems 使用NI软硬件组件开发各个系统,帮助我们缩短开发周期,保持高级功能。

0评论2012-08-08

HIL测试减少75%的飞机拦阻器控制系统现场测试时间
卓达宇航选择了National Instruments Alliance Partner的一员:Process Automation,为下一代飞机拦阻系统开发控制系统。Process Automation在控制系统上使用了NI LabVIEW软件与CompactRIO,在HIL测试系统上使用了NI VeriStand和 实时PXI硬件,成功开发了SmartArrest,相比之前的系统实现显著地节约了成本。

0评论2012-08-08

创建用于监控飞机噪音的分布式无线系统
在硬件评估过程中,我们决定使用NI产品,因为相比那些低成本的声级仪表,NI的产品测量质量好、坚固耐用,且十分可靠。

0评论2012-08-08