《电子技术应用》
您所在的位置:首页 > 嵌入式技术 > 设计应用 > 嵌入式油库消防给水控制系统研究与应用
嵌入式油库消防给水控制系统研究与应用
陈承贵
怀化职业技术学院,湖南 怀化418000
摘要: 研究了基于嵌入式技术的油库消防给水控制核心系统原理和功能,配合微控制器实现远程控制和数据采集,构建了其系统硬件结构,并基于嵌入式实时操作系统设计了相应的控制软件,实现了油库消防给水控制系统的安全性和可靠性。
Abstract:
Key words :

摘  要: 研究了基于嵌入式技术的油库消防给水控制核心系统原理和功能,配合微控制器实现远程控制和数据采集,构建了其系统硬件结构,并基于嵌入式实时操作系统设计了相应的控制软件,实现了油库消防给水控制系统的安全性和可靠性。
 关键词: 嵌入式;消防控制;通信

  传统的消防给水控制采用单片机控制技术只能应对简单的控制,对于复杂环境就难以满足控制要求。目前利用嵌入式技术,结合单片机和计算机技术,便能解决复杂环境的各种控制问题,有效减少了事故的发生。本文就是基于嵌入式技术,针对某油库消防给水控制系统的实际控制环境,给出控制系统结构,分析系统控制功能,设计系统控制硬件,并进行了系统的软件实现。
1 系统概述
  油库消防给水控制系统由上位机计算机系统和下位机嵌入式系统组成。上位计算机用于数据管理并与下位机系统进行数据通信,实现总系统控制。本系统采集油库数据,再根据油库温度控制降温系统调节油库温度,降温系统由冷却降温系统和泡沫降温系统双控制系统组成。冷却降温系统由水冷实现,油库消防用水来自消防用水水池,水池水又来自水井。水池和水井分处于铁路两边。油库消防用水水池设置有1#水池和2#水池,水井有水源A和水源B,水井和水池都设计相应的数据采集电路和控制系统。水井的水位参数采集和水泵运行数据及电动阀控制由单片机无线收发器实现,在计算机监控端设置对应的无线收发器,解决远程控制和数据采集。水池水位和油库温度利用多点传感器采集,上位机与下位机通信采用RS485工业通信标准,从下位机嵌入式系统中集中采集,完成数据交换。对于冷却降温系统的井阀和泵阀、泡沫降温系统的井阀和泵阀及水池供水控制的井阀由嵌入式控制系统直接控制,并通过嵌入式与上位机进行数据通信,由上位机进行数据管理。当冷却降温系统对油库实施降温后,油库温度仍继续上升,发出报警并启动泡沫降温系统。当冷却降温系统和泡沫降温系统的井阀与泵阀出现故障时,记录分析设备故障部位与原因,并向监控室报警,同时,任何时候都可以手动控制消防供水阀,实现无间断消防供水。系统控制关系如图1所示。

1.1  油库消防控制系统
  油库消防控制系统包括下位机ARM、水泵控制子系统、水池水位监测、油库数据采集系统以及通信控制模块等。以下位机嵌入式核心控制ARM920TDMIS3C2410X[1]为核心,结合MCU芯片CY8C24X33实现远程控制和数据采集,完成下位机ARM和上位机PC机的通信以及系统各泵阀的控制。设置数据采集、泵阀控制、故障报警、GPRS模块、数据接口和LCD显示等功能,系统原理框图如图2。

1.2 油库消防控制终端的功能
   (1)MCU数据采集。水泵的过程量、电压相位和转速及水井水位数据由传感器统一采集。
   (2)MCU运行控制。MCU采集数据后进行简单处理,再根据ARM的命令控制水井水泵的调速、开启与停止。
  (3)MCU与ARM通信。由无线GPRS通信实时保持MCU控制现场与ARM控制中心的数据交换。
  (4)ARM水池水位参数和油库温度参数数据采集。水池水位分为A、B、C、D四档水位显示,每隔X分钟读取水池水位一次;通过设置在油库四周的温度传感器,实时监测油库的温度变化情况。
  (5)ARM运行控制。ARM将水池水位和油库温度数据采集后与设定的数值比较,根据比较结果对水井泵的开启、停止及切换水泵工作进行远程控制,并配合冷却降温系统和泡沫降温系统的开启与关闭实现油库温度控制功能。
    (6)故障分析与报警功能。油库温度上升到预先设定值时,发出报警,并显示温度值。在降温过程中,监测冷却降温系统和泡沫降温系统设备的故障、上传故障等信息。当PC机收到设备故障信息代码时,分析故障部位,显示设备红色故障,并播放报警声音,记录故障发生时间、故障原因和故障部位,等待解决。
  (7)数据记录和查询。记录值班人员对设备的巡查,检查日期与时间,各泵阀的启动、关闭时间及水池水位关闭工作状态。查询系统设备的工作状态,并由数据生成文件导出保存。
2 系统通信协议
  通用无线分组业务GPRS(General Packet Radio Service)是一种基于GSM系统的无线分组交换技术,提供端到端的、广域的无线IP连接[2]。水井水位数据采集及水泵控制通信利用GPRS实现,嵌入式中央控制系统与上位机PC的通信采用RS485工业通信标准接口实现。上位机与下位机的帧协议的通信格式如表1。


  系统在通信过程中帧传输以一个字符为传输单位,对字符的位定义为:1 bit起始位、8 bit数据位、1 bit停止位、无校验位、波特率9 600 b/s。帧起始符固定为0xBFH,命令码占1 B,地址码为00H,其中最大地址范围是00H~0FFH,而00H为PC机地址,数据长度为1 B,信息随命令码不同而不同;CRC16由地址码、命令码、数据长度和信息共16位循环冗余校验码组成,生成多项式为X-16+X12+X5+1,其中高8位在设置前,结束帧为固定的0xEFH。

  系统中数据帧通信格式分为3种:(1)PC机发送命令。帧的起始符为0BFH,水池水位读取用0A0H表示,水池地址编码01H,数据长度01H,发送信息码为00H,CRC16循环冗余校验码为2 B,水池水位读取与检测的结束帧用0EFH;(2)PC机向ARM读取数据成功。帧起始符和命令码与发送命令相同,地址码为00H,数据长度为03H,信息码为:AA0104H(0AAH表示接收CRC校验成功,01H表示1#水池,04H表示第4档水位),CRC16,结束帧与发送命令内容一样;(3)PC机向ARM读取数据失败。当信息码出现5501H时,说明1#水池数据上传CRC校验失败并要求上位机PC把上次信息再发一遍。
3 控制系统设计
  系统控制核心采用嵌入式控制芯片进行油库数据交换并控制冷却降温系统和泡沫降温系统,同时保持与MCU控制的无线GPRS数据通信,实现对水井取水远程供水控制。当水池水位低于设定数值时,启动水井A泵为1#池供水;当水池水位到达最高点时,停止水泵工作;当井内水位到达低水位点而水池还没满时,停止A泵,切换到水井B泵工作。当水池水位到达最高点时,停止水泵工作;当井内水位到达低水位点时也停止水泵工作,完成一次供水过程。X小时之内将不再启动设备,用以保护设备无为地频繁动作。MCU控制部分电路选用PSoC片上系统芯片CY8C24X33。CY8C24X33具有8 kB Flash和ADC转换,采用SSoP封装。MCU串口由四芯屏蔽电缆连接,用MAX485进行数字电平转换成GPRS无线传输通信,这样就解决了工业标准信号传送的问题。MCU控制部分单元如图3所示。

4  软件系统设计与实现
4.1  操作系统
  本系统采用μC/OS-II操作系统,它是一种基于优先级可抢先的硬实时内核,提供任务调度与管理、时间管理、任务间同步与通信、内存管理和中断服务等功能。对于多任务系统,内核给每项任务分配CPU时间,并且负责各任务之间的通信[4]。在ARM920S3C2410X处理器上移植μC/OS-II操作系统,对于控制设备的各种工作状态,使用Ready队列通过内存映射表实现高效率的快速查询。μC/OS-II首先初始化,利用函数OSInit()建立一个空闲任务(idle task),等待其他任务进入。当调用OSStart()启动多任务时,处于就绪态且优先级最高的任务开始运行。
4.2 控制任务实现
  油库消防供水控制运行状态的主要任务是完成水泵和电动阀的运行参数、水位与温度数据采集及对设备故障的分析,将MCU控制水井设备运行所采集的数据和分析结果,通过无线GPRS发送给ARM控制系统,ARM核心控制汇集油库、水池和MCU控制数据,并进行处理与分析上传给上位机PC,同时简单显示泵阀和水池水位的各种运行状态等实时信息。
  系统采用32位ARM920TDMI内核的SamsungS3C2410X嵌入式微处理器和源码开放的μC/OS-II操作系统平台,系统控制程序大部分源代码采用C语言编程,但仍需要用C语言和汇编语言混合编程,完成一些与处理器相关代码。如主程序框架采用C语言编制,而读写处理器、寄存器和一些算法只能用汇编语言来实现,以提高代码执行效率和增加软件的可读性。
  在主程序中,程序启动后,自动执行查询命令,获取每台设备的当前状态,加以数据处理并显示。油库温度经过采集和滤波后,得到实际温度值,如温度大于初始设定温度值,启动相应的冷却水降温系统,此时油库温度如继续上升,进一步启动泡沫降温系统,实现油库消防降温控制。主程序流程图如图4所示。

4.3 系统接口
  系统选用嵌入式ARM920的S3C2410X芯片,它提供了3 个通道的异步串行通信(UART),UART包括线控制寄存器、控制寄存器、错误状态寄存器、接收/发送状态寄存器、发送缓冲寄存器、接收缓冲寄存器和波特率因子寄存器[3]。由于系统数据和控制命令收发采用通用的RS485和无线RS485GPRS通信协议,而GPRS模块与系统之间的通信利用系统的UART串口通信。因此,各系统在互相通信之间,都要进行电平转换。嵌入式系统将信号电平转换为RS485工业通信标准接口,实现远程数据交换及有效防止数据通信过程中的干扰。对于UART串口的驱动程序利用串口Uart_SendByte( )发送函数和串口Uart_Getch( )接收函数,采用C语言编写,其部分程序结构如下:
  //main.c
  Void Uart_SendByten(int Uartnum,U8 data)//发送数据
    {If(Uartnum= =0)
    { While(!(rUTRSTAT0 & 0x4));
        hudelay(10);
        WrUTXH0(data);
  }
    Eles
  { While(!(rUTRSTAT1 & 0x4));
    hudelay(10);
    WrUTXH1(data);
  }
     Eles
  { While(!(rUTRSTAT2 & 0x4));
    hudelay(10);
    WrUTXH2(data);
   }
  }
  Char Uart_Getchn(char*Revdata,int Uartnum,int timeout)
                     //接收数据
  {If(Uartnum= =0)
     { While(!(rUTRSTAT0 & 0x1));
      *Revdata=RdURXH0();
    returnTRUE;
   }
      Else{While(!(rUTRSTAT1 & 0x1));

    *Revdata=RdURXH1();
    returnTRUE;
     }
       Else{While(!(rUTRSTAT2 & 0x1));
    *Revdata=RdURXH2();
    returnTRUE;
       }
  }
   本系统以32位高性能嵌入式ARM920TDMIS3C2410X芯片和实时多任务μC/OS-II操作系统为核心,用RS485工业通信标准接口与上位计算机进行数据协调处理,配合远程MCU控制单元,有效地解决了复杂环境实时性和多任务之间的矛盾。系统实现了远程取水控制、消防降温控制、故障分析与报警,以及数据记录查询的功能。同时系统的各种控制参数集中处理,简化了软硬件设计,构建了低成本、高可靠性、多功能、安全经济运行的控制系统,在实际生产生活中具有广泛的应用价值和市场前景。
参考文献
[1] Samsung Electronics CO.,Ltd.S3C2410X 32-Bit RISC   Microprocessor User,s manual.2003.
[2] 蔚承英,陈勇刚,杨利平,等.基于GPRS和嵌入式计算机的远程监控系统研究.无线通信技术,2007(4):45-48.
[3] 熊茂华,杨震伦.ARM9嵌入式系统设计与开发应用.北京:清华大学出版社,2008.
[4] LABROSSE J J著.嵌入式实时操作系统μC/OS-II.邵贝贝译.北京:北京航空航天大学出版社,2003.
 

此内容为AET网站原创,未经授权禁止转载。