当前位置:首页 >> 客户服务技术资料

ZigBee无线压力表标定程序设计

发布时间:2018-05-29 16:17:40 浏览:

由于受到石油矿井工作规程限制,为了使压力表方便操作,采用ZigBee模块间无线通信方式,实现标定 软件与压力表的数据传输,校正压力表传感器的精度,保证计量的准确性。这就要使基于数据链路层的Modbus 议与基于网络层的API模式下ZigBee进行通信,采用在Modbus的基础上加上API的协议层的方法来实现。实验 结果表明,无线通信模式提高了传输数据的准确性。

1.引言

石油气井压力表头用于采集气井的压力、温度等数据。压力表头内部有传感器,故需要用压力表标定软件来 校正压力表传感器的精度,保证压力表计量的准确性。但是由于受到石油矿井工作规程限制,压力表工作时完全 处于密封状态,压力表与采集中心是通过ZigBee传感器无线网络实现数据通信。之前的标定软件以有线的方式 连接压力表,这样标定时就需要暂停压力表工作,将工作现场压力表拆下并换上另一个表,然后将此压力表带回 标定办公室标定拆封,标定完成后工作人员再将此压力表放回到工作现场。一般情况下标定办公室与工作现场 路程遥远,来来回回不仅耗费工作人员的时间,而且拆封压力表接线也比较麻烦。基于此,直接通过ZigBee无线 通信方式,实现标定软件与压力表的数据传输,从而实现标定工作,这样一来工作人员即可在现场在线方式下实 现对压力表的标定,无需任何设备拆装,标定完成后即可使用。

研究基于ZigBee技术设计了一种新型的压力表标定通讯系统。

2.ZigBee技术概述

ZigBee是IEEE 802. 15.4协议的代名词,根据这个协议规定的技术是一种短距离、低功耗的无线通信技术, 其特点是近距离、低复杂度、自组织、低功耗、低数据速率、低成本。ZigBee技术还具有较高的可靠性和安全 性。它在MAC(Media Access Control)层米用了 talk-whemready的碰撞避免机制,在这种完全确认的数据传输机制下,当有数据传送需求时则立刻传送,发送的每个数据包都必须等待接收方的确认信息,并进行确认回复,若没 有得到确认信息的回复,就表示发生碰撞,将再传一次;ZigBee提供了基于循环冗余校验CRC的数据包完整性检 查功能,支持鉴权和认证,采用了 AES-128的加密算法,对所传输的数据信息进行加密处理,各个应用可以灵活 确定其安全属性⑴。ZigBee栈体系结构是基于标准开放网络互联(0SI)七层协议模型,其物理层及MAC层为 IEEE 802. 15.4协议标准定义,网络层为技术联盟制定⑷。ZigBee技术的较低数据速率以及较小通信范围的特 点决定了 ZigBee技术适用于承载数据量较小的业务。简而言之ZigBee就是一种便宜的、低功耗的近距离无线 组网通讯技术。


3.压力表标定软件设计

3.1设计语言以及运行环境

因为C#语言是微软为.NET Framework平台打造的一门新语言,具有与系统平台无关,与C/C++语言一脉相承、开发周期短、维护容易等优点,所以在Visual Studio 2010集成开发平台上使用C #语言编写和调试程序。 此标定软件的工作环境为PC机下的Windows XP操作系统。

3. 2 ZigBee工作模式

在PC机的RS-232串行通信接口上外接一个RS-232/RS-485转接器,然后与压力表的RS-485端口对接。 压力表的通信协议采用Modbus仪表协议。标定软件通过串行通信对压力表的寄存器实现读和写。当前压力表 使用的ZigBee模块支持透明方式(AT)和应用程序接口APFApplication Programming Interface)两种操作方式。

前者为缺省操作方式,以字节为单位操作各种信息,后者是以一定格式的数据帧为单位操作各种信息。但由 AT模式适合在点对点的通信模式,当应用在多点通信时,传输效率极低,所以现如今的压力表都使用API 议模式。当工作在API模式时,所有进出模块的数据均被包含在定义模块的操作和事件的帧结构中。API操作 要求模块之间采用一种结构化的接口数据通过一种定义好序列的帧来交互通信来进行通信)进行通信,同时 API规定了通过串口数据帧如何发命令、命令响应以及模块状态信息的传送与接收。

3. 3设计与实现

标准的Modbus是使用RS-232兼容串行接口定义了连接口的针脚、电缆、信号位、传输波特率、奇偶校验。 控制器能直接或经由Modem组网。原来的标定软件采用Modbus协议是基于数据链路层的通信,而ZigBee API模式是网络层的通信。这样就要求在Modbus的基础上加上API的协议层,才能让标定软件实现ZigBee 顺利通信。ZigBee的API模式帧结构框架如图1所示,数据帧中API标识符cmdID表明cmdData中包含何种数 据。在本程序设计使用的XBee系列2模块中当cmdID = 0X10时,表明ZigBee传输数据请求;cmdID = 0X90 时,表明ZigBee接受数据包。最后一位的校验码(数据校验和)是用来检验数据的完整性。

在发送信息时,此设计将Modbus协议RTU (远程终端单元)模式发送命令作为帧数据的一部分发送。网 络中所有设备都拥有一个16bit的IEEE地址,用来确 定表号。由于事先不知道压力表头IEEE地址,故首先 PC机通过RS-485串口发送广播信息,此时API帧结构 中的 64 位地址bytes 6 - 13)是 0x0000000000000000。

PC机ZigBee模块发送广播模式的API帧结构如图2所示。由于此信息包含有Modbus协议,包含表头地址。此压力表头收到广播后,将响应PC机,返回数据,然后 通过PC机上的标定软件程序处理,去掉帧头帧尾,可以获取压力表头的IEEE地址。图3为压力表头中ZigBee 模块接收数据的API结构,可以看到64位地址(bytes 5 - 12)是0x0013A2004030100B ,即压力表头的IEEE地

址。此时PC机直接发信息给表头的IEEE地址,而不再发送广播,相应的64位地址(bytes 6-13)更改为压力表 头的IEEE地址。PC机ZigBee模块发送地址模式的API帧结构如图4所示。当处于广播模式时,接收到的数据 只占发送数据的1/3,然而发送IEEE地址时,发送的数据都能被接收到。这样一来,大大节省了时间,从而确保 了数据传送的完整性与准确性。整个过程模式如图5所示,此种传输模式属于半双工模式。

在接收数据时,接收数据帧中包含有设备响应数据,经过拆分数据包,获取Modbus协议返回的数据,然后通 过解包、跨线程处理,即可将压力表头的压力、温度、电量等数据在窗口上显示出来。

4.实验测试结果与分析

在Visual Studio 2010集成开发平台上运行程序,结果表明能够完成压力表各项数据的标定。表1是1分钟 接收数据和发送数据大小。


从表1可以看出,改进后的压力表头对数据的接收与发送能力增强了 ,而且无线通信下的地址模式基本上不 存在丢失数据的现象,说明了 ZigBee传输数据的准确性。

5.结束语

提出并设计完成了一种基于ZigBee无线压力表的标定程序,将原有的有线通信方式更改为无线通信方式, 直接实现标定软件与压力表头的数据传输。此设计利用ZigBee技术,采用无线收发设备传输数据,通过传感器 网络直接控制每只压力表的标定,无需专门架线,而且提高了传输数据的准确性。ZigBee作为一种新型的通讯技 术必将在无限传感网络中发挥巨大作用。