油田应用的边缘控制器研究与设计
2021-11-29伍儒彬张雅楠李宏宏刘长远
伍儒彬,张雅楠,孙 涛,李宏宏,刘长远
(1.昆仑数智科技有限责任公司,北京 100007;2.中国石油新疆油田公司 采油二厂,新疆维吾尔自治区 克拉玛依 834011)
0 引言
随着人工智能、大数据、云计算等新技术和新概念的不断涌现,以及在各行业的成功应用案例,边缘计算作为近十年提出的新技术和新概念,也不例外。边缘计算技术在多个行业都有研究和应用。如李彬等提出的边缘计算在电力领域的应用[1];李子姝等对边缘计算在移动领域做了较为全面的综述[2];在智能汽车领域,李智勇等对边缘计算在汽车的关键任务计算进行了综述。通过上述文献可知,边缘计算的主要目的是为了减轻数据中心或者控制中心的数据计算(或处理)负担,让具备一定计算能力的设备在现场对数据进行处理,将结果(或关键信息)传输到控制中心,以减轻链路和控制中心的负担。
在油气田领域,随着油田生产不断向信息化、智能化发展,需要处理的数据和信息在不断增加,对通信链路和控制中心的计算能力提出了极高的要求和挑战。为减轻控制中心的计算和通信链路的通信负担,本文以JETSONNANO为核心计算组件,提出并设计一种具备边缘计算的控制器设备,使其具备边缘计算功能,同时又具备现场逻辑控制功能。
1 边缘计算控制器
当前,提供边缘计算解决方案的主流厂商有英特尔、英伟达、华为、比特大陆等国内外商业公司,根据其特点,本文将各厂商提供的解决方案或者平台进行总结,详见表1。
表1 边缘计算控制器简要一览表Table 1 Brief list of edge computing controllers
由表1可知,不同的厂商侧重于不同的应用场景。英特尔提供的产品侧重于移动边缘计算;英伟达侧重于单通道或双通道模式的视频采集初步计算;瑞芯微更偏重于全功能的现场应用;比特大陆的算力更高,能量消耗,适合大流量,高算力需求的应用场景。
根据业务特点并结合应用的需求,初步选定英伟达的JETSON NANO平台进行研究和设计,该平台具有以下功能:
1)四核ARM Cortex-A57
2)支持Linux操作系统
3)128-Core 英伟达MAXWELL GPU
4)4G 64-bit LPDDR
5)支持千兆以太网
6)支持HDMI&USB3.0
7)支持PCIe总线扩展功能
8)丰富的串口和SPI&IIC总线接口功能
2 硬件设计
根据油田应用需求以及升级改造需要,提出两种解决方案。一是以人工智能处理为主要功能的解决方案,侧重于现场智能计算和数据处理,具有以下基本功能:高速通信总线功能接口(千兆以太网,HDMI,USB3.0)和低速通信总线接口(串口,CAN,无线通信等),具体实现架构可参考图1。此方案主要应用于已有场站的信息化升级和改造工作,在原有的信息化基础上,配备智能计算处理设备即可。第二种解决方案是以人工智能处理和现场工业控制于一体的边缘控制器,该解决方案可以实现现场的智能计算(数据处理)与工业控制同步进行的功能,即不但是一个边缘控制器,同时也具备RTU(远程单元控制终端)的功能,其实现框架图如图2所示。智能计算部分由NANO核心板的资源进行计算和处理,而RTU控制器部分则由ARM核心资源进行命令控制和数据采集,两者之间的通信可以根据业务需求通过以太网或者串口实现,以实现数据传递和命令控制,其主从关系也可以通过软件进行设定和控制,该解决方案可应用于新开发井口和场站的智能化建设。
图1 智能计算设备硬件实现框架图Fig.1 Framework diagram of hardware implementation of smart computing equipment
图2 边缘计算及远程控制设备硬件实现框架图Fig.2 Hardware implementation framework diagram of edge computing and remote control equipment
硬件设计的一些具体细节部分可参考文献[4]和文献[5]。针对NANO核心板的设计,需要注意以下设计要素:
1)HDMI显示设计。标准的HDMI显示,属于高速总线类型,在设计时需要遵循对应的协议标准,项目对此功能进行分类,其信号可分为差分对信号、检测保护信号、简单通信信号、电源供电信号。
其中,差分对信号需要对应的交流电容进行信号耦合,并提供ESD保护;检测信号需要与电源供电信号进行联动处理;电源供电部分最好进行单独处理。
2)USB设计与实现。NANO的USB设计部分分为3个层面,分别是USB2.0USB3.0USB下载专用接口。USB2.0与USB3.0需要注意端口供电的控制,即电流超出时,系统需要对外部端口供电进行断电处理,不要影响系统其他功能的使用。USB3.0也有交流耦合电容,需要注意与ESD器件的连接处理,而USB内部下载专用接口则需要注意电源准备好的PG信号告知核心板,否则该功能无法实现。
3)电平转换设计与实现。因NANO核心板提供的IO接口或通信功能接口多数为1.8V,需要对端口电平进行必要的转换才能使用,外部功能端口多数是3.3V TTL电平或5V TTL电平。采用TI公司SN74AVC4T245芯片进行实现,具体如图3所示。
图3 电平高低转换电路图Fig.3 Circuit diagram of level high-low conversion
图3中通过DIR的高低来实现数据流的传输方向,具体方向设计定义可参考对应的芯片手册。
4)电源供电设计与实现。电源是整个产品成败的关键,拟定电源功耗为15W,同时根据业务需要,可无缝切换到20W(电源模块PIN脚兼容,只需要更换电源模块即可);支持隔离功能,并对框架中的各级供电进行必要的分级处理设计,即5V,3.3V,1.8V,通过逐级降压实现功能,24V转换为5V,5V转换为3.3V,3.3V转换为1.8V,确保电压整体的平稳和参考地平面的一致性。
另外,核心板供电电路的核心要素是当核心板没有连接在主板上,整个系统的电源不能工作,利用核心板提供的电源控制功能和系统复位信号来控制电源芯片的工作,确保整个硬件的供电稳定性。
3 软件设计
基于前文提出的两个方案,均采用Linux系统进行软件设计和实现。因方案二相对于方案一是一种包含关系,软件设计侧重于按方案二的硬件架构进行整体的设计和规划。其设计可以通过两种方式实现,一种是基于英伟达官方提供的原生态系统(提供的也是Linux系统)下进行修改和软件功能实现,其好处是开发周期较短,但弊端也显而易见,需要按照其官方的文档、架构和开发格式进行功能实现和设计;另一种是基于某个稳定版本的Linux系统进行架构重整和软件功能实现,其好处是系统可以按照实现的功能进行架构重整,整个代码量可控,设计无需遵循官方的格式和规范进行,不足之处是需要投入更多的时间和精力对底层驱动进行调试和实现。
边缘控制器的软件功能实现是指将硬件的功能端口通过对应的驱动或API应用映射到操作系统中,其简要框架如图4所示。软件实现的主要工作在于协调应用接口,内核接口以及LIB库之间的调度、数据传输、命令下达传递工作。
图4 软件整体结构框架Fig.4 The overall structure of the software framework
英伟达官方提供了HDMI以及千兆网络、USB功能为系统原生的驱动,不需要进行开发,对系统进行裁剪和检测信号功能处理即可,而ZIGBEE与485功能处理需要建立好对应的LIB文件及通信协议即可实现。
1)人工智能功能开发与实现
系统可采用Kubernetes、Nginx、postgres等大数据平台和容器化技术,结合集群及数据库技术,使用分布式技术对深度学习任务进行调度,同时可对算法、模型进行管理,并具有部署、分发、监控等功能。
AI管理系统可提供可视化的AI训练、业务应用开发、数据接入、算法管理等功能,同时提供展示界面,用于展示实时视频和报警信息。
2)Docker功能
为便于现有已开发好的功能快速转移到新平台或新产品中,在NANO核心资源充足的情况下,可以加载Docker功能。Docker提供了简单的建模方式以及逻辑上的分离,可以做到单个容器运行单个应用,如此可节省软件的开发周期。
当NANO核心处理器资源足够,又需要将原来开发的应用移植到NANO边缘计算设备中,此时采用Docker为最佳选择,其实现过程如下:
第一步:Docker安装。
第二步:确定主从关系(即客户端和服务器)。
第三步:确定依赖关系,挂载点,优先级,资源度量等参数。
第四步:启动Docker,并进行相关应用挂载。
3)处理器之间的协同处理
当NANO处理器与ARM处理器存在协同处理时,需要确定一个主从关系。确定主从关系的原则是:智能计算为主要任务的时候,由NANO处理器作为主处理器,ARM处理器为协助处理器;而现场控制为主要任务的时候,由ARM处理器作为主处理器,NANO处理器为协助处理器。其协同处理过程如下:
第一步:启动协同处理。
第二步:确定主处理器与协助处理器。
第三步:开启协同处理程序。
第四步:开启心跳互相监控程序。
第五步:是否结束协同处理,是,跳转第六步;否,继续现有程序和进程。
第六步:结束协同处理,结束相关程序和进程。
4 结语
基于本文提出的解决方案而实现的边缘计算控制器在油田现场已成功应用,其基本目标也得到实现,减少数据中心或中央控制中心计算负担,减轻通信链路的数据传输负担效果得以体现,为未来的应用场景提供了硬件基础和技术积累。下一步,基于人工智能技术在油田的应用还有待继续研究和挖掘。一是智慧化程度的功能提升,比如产量预估、自然灾害预警等;二是智能算法的鲁棒性有待继续提高,智能算法对不同区域不同场景的应用需要进行重新调整和布置。