文献标识码:A
文章编号: 0258-7998(2015)02-0048-03
0 引言
石油化工企业在生产过程中使用的原料、半成品及制成品多属易燃、易爆、有毒有害、腐蚀性的化学物质,这些化学性毒物在生产加工过程中,多数以气态存在车间空气中,比如硫化氢、苯、液化气体等有毒气体。虽然属于低浓度接触,但也可以引起机体急性或慢性病理变化;另外,生产过程中的噪声污染不仅影响听觉系统,还会对心血管及消化系统产生影响。有调查显示,困扰石油职工的主要疾病情况中消化系统、呼吸系统、心血管系统和运动器官疾病排在前四位, 各种职业病患者占总人数4.4%[1]。石油化工产业生产过程的不安全因素大大超过其他行业,危险事故发生的概率较高[2]。
国内外对面向石油化工安全预警系统进行了大量的研究,如西门子公司的SIMATIC PCS7,Matricon公司的Alarm Manager及其配套工具;戴靓等人研发的石油化工设备智能预警系统[3];潘红磊研发石油石化企业预警系统[4],诸多产品主要应用在设备和厂区环境等方面,对于石化厂区职工健康安全预警系统鲜见报道。
本文针对石油化工生产环境复杂、存在威胁人身安全的多种环境参数的问题,设计了石化厂区职工健康安全预警系统。通过在普通头盔上搭载传感器(温度、湿度、可燃气、二氧化硫、硫化氢、心率、GPS定位)检测生产人员周边环境参数、生命体征以及地理位置,利用无线射频芯片nRF24L01传输到腕表上显示,以供查看。同时腕表可以接收来自监控中心的通信信息以及当危险事故发生时的撤离警报。
1 系统总体框图
本系统由安全预警头盔、腕表以及监控中心的PC组成。系统总体框图如图1所示。通过传感器检测人员周边环境,并利用射频技术实时将数据传输到腕表。同时监测人员的心率,通过摄像头拍摄图像,利用WiFi技术将心率、环境参数和视频流发送到监控中心。监控中心播放及保存传回的视频和环境参数,可发送信息到腕表显示以及触发头盔上的语音报警。数据传输采用WiFi无线传输模块以及nRF24L01无线射频传输模块。
2 系统硬件设计
2.1 安全预警头盔硬件设计
安全预警头盔的硬件框图如图2所示,设备以STM32F103芯片为主要处理芯片,在主处理芯片上搭载了如图所示的各种传感器模块,主处理芯片将传感器模块的数据采集了之后由nRF24L01无线射频模块和RT5350 WiFi模块发送出去。同时,主处理芯片接收来自无线射频模块的LED照明灯的控制命令和来自RT5350 WiFi模块的语音报警控制命令。
2.2 腕表硬件设计
同样以STM32F103芯片为主要处理芯片,由主处理芯片控制TFT_LCS触摸屏模块,并根据nRF24L01无线射频模块接收到的数据,在TFT_LCD触摸屏上显示出相应数据。nRF24L01是一款新型单片射频收发器件,工作于2.4 GHz~2.5 GHz ISM频段。内置频率合成器、功率放大器、晶体振荡器、调制器等功能模块,并融合了增强型ShockBurst 技术,其中输出功率和通信频道可通过程序进行配置。nRF24L01功耗低,在以-6 dBm的功率发射时,工作电流也只有9 mA;接收时,工作电流只有12.3 mA,多种低功率工作模式(掉电模式和空闲模式)使节能设计更方便[5]。
3 软件系统设计
本系统的软件设计整体图如图3所示。
3.1 头盔软件设计
头盔开机启动后,初始化硬件,并开始监测各个传感器参数,通过nRF24L01发送到腕表上,同时将数据通过WiFi发送到监控中心上。当监控中心发来信息时,头盔便进入了最高优先级的中断,以监控中心的命令为最高优先级,实时地将监控中心命令反馈给头盔穿戴者。
3.2 腕表软件设计
腕表启动时,优先初始化nRF24l01,准备接收头盔发送过来的信息,然后开启屏幕并监听nRF24l01是否收到数据。一旦收到数据则判断其数据的类型,用以更新显示。腕表启动后不停地轮询监听是否有信息发送到,有则显示,没有则继续轮询。
3.3 监控中心软件设计
监控中心的应用软件使用Qt中心编写,Qt是一个跨平台C++图形用户界面应用程序开发框架,具有优良的跨平台特性、面向对象、丰富的API等优点。运行监控中心应用软件时,当有数据通过TCP协议上行至监控中心软件监听的网络端口时,触发接收信号槽,就会执行网络端口读取数据的操作。接收完数据后校验数据的完整性以及正确性,如果数据正确,则执行数据分类存储及分析;如果校验接收的数据是错误的,则将数据丢弃。接着进行数据分析、存储,对达到报警条件的数据进行报警。
4 关键技术设计
4.1 nRF24L01无线射频模块设计
头盔与腕表之间的通信使用nRF24L01无线射频模块进行数据的传输,头盔为通信主机,配置为发射模式。腕表为通信从机,配置为接收模式。
当发射数据时,首先通过配置模块的寄存器位PRIM_RX为低电平,当要进行数据发送时,通过SPI接口将接收的节点地址TX_ADDR和有效数据(TX_PLD)写入nRF-24L01模块,把发送数据的长度写入TX_FIFO。当CSN为低电平时,数据会一直写入发送端直到发送完成。之后将通道设置为接收模式来接收应答信号,接收地址(RX_ADDR_P0)应与接收端地址(TX_ADDR)相同,否则无法接受信号。最后,将CE设置为高电平,启动发射。CE高电平持续时间最小为10 s。发送部分关键代码如下:
while(1) {
Transmit(Tx_Buf);
Delay(10);
sta=SPI_Read(READ_REG + STATUS);
if(TX_DS){
Status=sta; //当前发送的STATUS状态
Delay(100);
SPI_RW_Reg(WRITE_REG + STATUS,sta);
}
if(MAX_RT){ //如果是发送超时
Status = false; //发送超时时是false
Delay(150);
SPI_RW_Reg(WRITE_REG + STATUS,sta);
}
}
当接收数据时,首先通过设置寄存器中PRIM_RX位为高电平来选择,使能EN_RXADDR寄存器打开准备接收数据通道,以及使能EN_AA寄存器来启动数据通道的自动应答功能,通过设置RX_PW_Px寄存器来设置有效数据宽度。之后,设置CE为高电平来启动接收模式,等待130 s后开始检测信号。当接收到数据包后,进行地址匹配以及CRC检验,若正确时,将数据存储在RX_FIFO中,并将RX_DR位置为高电平,产生中断通知处理器。相应的通道信息会存储在状态寄存器RX_P_NO中。最后,如果有使能EN_AA寄存器,则会自动发送确认接收的信号;若没有使能,则直接退出接收。
4.2 WiFi数据传输模块设计
本设计采用OpenWrt系统来进行WiFi路由器开发,OpenWrt可以被描述为一个嵌入式的Linux发行版,而不是试图建立一个单一的、静态的系统。OpenWrt的包管理提供了一个完全可写的文件系统,从应用程序供应商提供的选择和配置,并允许自定义的设备,以适应任何应用程序。由于OpenWrt具有以上优点,故采用该系统进行WiFi数据传输。
由于OpenWrt系统是基于Linux的,在进行数据读写时完全和Linux下的设备读写一样。首先定义一个句柄,用于TCP socket通信的控制以及判断,开辟数据缓冲区,并定义目标设备IP地址以及端口。接着客户程序发起连接请求,若成功才可以进行读写操作,失败则返回负值。
部分关键代码如下:
sockfd=socket(AF_INET,SOCK_STREAM,0);
//客户程序开始建立 sockfd描述符
connect(sockfd,(struct sockaddr *)(&server_addr),sizeof
(struct sockaddr);//客户程序发起连接请求
write(sockfd,sendData,strlen(sendData);//写入数据
nbytes=read(sockfd,buffer,1024);//读取数据
4.3 基于QT监控中心模块设计
4.3.1 数据库存储数据以及查询数据流程
在构造函数里,首先定义一个数据库对象,并创建相应数目的表和表中的各项元素及其类型,使用数据库命令:create table 表名(类型 元素)建立表;当需要插入数据到对应的表,使用命令:insert into表名values(元素)来插入数据到对应的表;查询数据时,使用命令:select 元素from表名where元素 查询条件;若有符合条件的元素时,会以链表的形式返回,直接获得数据的地址。
4.3.2 视频播放使用开源项目Opencv进行视频数据处理以及显示
使用mingw32-make编译套件编译出适合Qt使用的工具插件,便可以供Qt调用。文字通信功能和紧急撤离现场警报使用WiFi技术实现,发送特定的字符串到头盔上,头盔接收后判断,采取相应的操作。
监控中心部分关键代码如下:
tcpServer->listen(QHostAddress::Any,10008);
//监听任何连接上本机10008端口的设备
connect(tcpServer,SIGNAL(newConnection()),this,SLOT
(newConnect()));//连接建立信号槽
tcpSocket = tcpServer->nextPendingConnection();
//建立新的连接
tcpSocket->readAll();//读取所有数据
5 系统调试运行
开启上位机,设置串口1波特率9 600 b/s;串口2波特率19 200 b/s;定时器采用8位的定时器3,操作模式采用Clear Timer On Compare,通道模式采用Output Compare比较输出模式,设置每1 ms产生一次定时中断,中断中实现Count变量的累加,当累加到设定的值时便产生一个任务事件,实现定时采集数据、定时发送数据、定时进入休眠、定时唤醒等一系列有序的工作。实验装置由智能腕表、智能头盔和计算机三部分组成。系统调试分为数据接收测试和监控中心测试。
5.1 智能腕表数据测试
腕表是通过nRF24l01接收来自头盔的数据,头盔每隔1 s就会发送一次数据给腕表,这个信息是可能包含着传感器数据的数据包,也可能是包含着时间信息的数据包,也可能是监控中心通过WiFi发送到头盔有头盔转发的通信数据包。测试结果表1所示。
从表1数据看出,数据接收虽然有丢包,但是丢包率在可承受的范围内,不影响使用效果。
5.2 监控中心测试
监控中心支持实时视频播放、视频录制、实时数据显示、历史数据查询、文字通信功能以及紧急撤离现场警报等功能。监控中心效果图如图4所示。图4(a)清晰显示头盔摄像头传来的视频,并有视频录制、自动保存的功能;图4(b)显示温度、湿度、CO、可燃气体、体征参数的实时数据,当心率出现异常时,会发生报警信息;图4(c)显示历史数据以及历史数据查询时间。
6 结束语
系统在成功研发后,在广东石油化工学院工业安全实验室运行1年,实现了预期功能,主要包括:(1)实时监测佩戴头盔的生产人员周边的环境参数、生命体征参数、运动轨迹、视频等信息,当某种危险参数超过正常范围时,进行报警;(2)实时地将人员前方的情况画面通过WiFi发送至生产监控中心,管理人员在监控软件上进行实时视频浏览、监控以及存储管理;(3)职工与生产监控中心双向通信,可接收来自监控中心的撤离生产现场的警报信息,实现监控中心与生产人员的联系;(4)佩戴头盔的的生产人员能通过腕表观察当前自身存在的环境和身体的状况,以对自身的状况做出正确的判断。
本设计为石化厂区的生产人员提供安全保障和及时报警信息,更好地保护生产人员的健康安全。同时也为石化厂处理危险情况提供了一定的参考价值,可以通过在厂区布置无线网络,将每一个安全预警头盔联网,可以在危险情况发生时及时的通知疏散人员,准确地找出事故发生原因,将危险和损失降低。
参考文献
[1] 高香.某精细化工厂职工健康体检结果分析[J].职业与健康,2006,22(11):1805-1806.
[2] 胡相明,张乐涛.石油化工企业常见危险源分析及其安全对策研究[J].安全与环境工程,2011,18(2):96-99.
[3] 戴靓,张礼敬,陶刚.石油化工智能预警系统[J].科技与产业,2014,14(8):150-154.
[4] 潘红磊.石油石化企业预警系统研究[J].中国安全生产科学技术,2011,7(2):142-145.
[5] 时志云,盖建平,王代华,等.新型高速无线射频器件nRF-24L01及其应用[J].国外电子元器件,2007(8):42-44.