中石油A11项目的混合组网方案和避坑指南

早期的油气生产自动化项目中,采用了XBee S2C的ZigBee组网方案,随着ZigBee标准的演进,出现了ZigBee 3.0标准,也逐渐被油田项目所采用。ZigBee 3.0相较于传统的ZigBee,在安全管理等方面有一些改进,从而导致一些产品因配置和软件逻辑原因导致的兼容性问题。为了解决这个问题,Digi的XBee3经过长期演进,已经实现最少的配置和程序逻辑就可以正常运行。

ZigBee 3.0及XBee3的新特性

Digi XBee 3 Zigbee 3.0引入一些新的特性,如:

  • 在原有标准XBee封装基础上,额外提供迷你贴片型号MMT封装;
  • 基于最新的ZigBee 3.0标准构建
  • 新的基于ZCL OTA标准,可靠且安全的的FOTA无线升级技术
  • 更低待机功耗
  • 在所有型号上支持全部信道
  • 提升无线灵敏度和发射功率
  • 自带蓝牙BLE
  • 支持MicroPython脚本,并支持无线升级
  • I2C接口支持MicroPython
  • 安全远程访问

零地址问题: 在ZigBee 3.0引入之前,ZigBee协议按角色分为协调器,路由器和终端节点。协调器是一类特殊的网络管理设备,负责建网,管理网络,并将0地址赋予协调器。而在ZigBee 3.0时代,协调器这一角色已不再被使用,取而代之的是升级版的网络信任中心来管理网络。 在分布式信任中心模式下(EO=0),ZigBee网络可由一台路由器构成,但这台路由器会充当“网络管理器”的角色。在大多数情况下,这台设备的功能相当于协调器,可以将其视为协调器来使用。不过由于早期S2C的ZigBee协议固件,只认协调器和网络信任中心作为0地址,直到S2C的4064固件才能支持ZigBee 3.0的网络管理器为0地址,而在XBee3已经大量在油田中使用,其默认的EO=2信任中心天然支持0地址的识别。因此已经成为油田系统中的标配。

一句话:在XBee3和S2C混合组网中,如果使用XBee3作为RTU,要使用S2C时一样的分布式信任中心配置(EO=0),则所有网络内的S2C设备需升级到固件4064。由于实践中,大量的老旧油田设备不方便升级固件,因此这个方案在事实上并没有在油田系统中采用。油田中的XBee3 RTU方案大多采用XBee3的默认EO=2配置,本身就天然解决了0地址问题。

APS加密通信问题: 早期的油田数据通信API帧中,部分设备采用了非必要的APS叠加加密,即在ZigBee加密网络中,对无线数据包内容再做一层加密。APS加密实际上是在加密网络中,另有一套端到端的密钥来加密传输内容,在ZigBee 3.0中,集中式信任中心的用法时,因为安全标准升级,Link key不再能无限度使用,而是有个超时时间,这会导致超时后S2C不再能得到独有的端到端密钥更新。因此,在新RTU和仪表设备中,应摒弃APS加密的选项,并且把KT选项设置为0xFFFF。

其它杂散问题: 主要集中在S2C固件版本上,建议S2C设备在贴片之前检查固件版本,升级到最新4064固件。

几种常见的油田设备解决方案

由于S2C已经逐渐淡出历史舞台,因此主要讨论的是如何配置XBee3来最佳适配各油田现场的实际情况。

一、全新油田设备的配置 对于全新的油田设备,建议都采用XBee3 1014及其以上的固件版本。

二、混合组网中

配置建议: 协调器

XBee3的参数配置和数据发送方式

避免采用APS加密,即新的RTU设置和传感器的数据发送选项上,不必再采用APS加密了,所谓APS加密是指在已经加密的ZigBee网络中,对传输数据需再叠加一层加密,这是没有必要的,它会导致入网的设备和协调器(信任中心)之前定期更新它们之间单独的密钥,而对于S2C来说,不具备新的ZigBee 3.0的安全要求,无法获取XBee3的更新的密钥,从而在KT时间之后,无法成功发送选项带0x20或0x60的包(因为独一无二密钥过期而无法更新)

为了实现对传统S2C的支持,还需要XBee3 RTU设置一个最高的KT值,同时对失联的在网节点进行ATNR0操作,从而确保所有节点能长期同新XBee3 RTU通信。