ARM CortexM0的油田采输物联网监控系统设计
扫描二维码
随时随地手机看文章
引言
我国石油资源分布广,开采环境比较恶劣,采油输油覆盖面广且大多在野外。随着开采规模和区域的逐年扩大,为了提高石油生产效率和管理水平,将油田生产管理方式由事后现场被动管理转变为事先远程主动管理,保障油田的安全生产,提高处理油田突发事件的应急能力。这就要求实现生产数据自动采集、远程监控、生产预警,以及“无人值守、集中监控、定期巡检、自动操作”。[1]
物联网技术的快速发展,为油田生产提供了新的思路和方法,在油田数据采集[2]、远程监控以及地面全面信息化等领域有非常广阔的应用前景。物联网控制系统不仅可以实现跨地域实时协同工作,紧密连接生产的各个环节,而且还可以实现油田业务与技术的整合,为后期的大数据云服务提供数据源基础。
1 系统总体设计
油田采输物联网监控系统由物联网监控单元、无线数据传输网和监控中心组成,如图1所示。物联网监控单元是系统的核心和基础,它获取现场数据信息、下达执行指令,并通过无线数据传输网向远程监控中心传输现场数据信息并接收监控中指令。
图1 系统应用拓扑图
物联网监控单元的物联网云控制器主要由ARM低功耗微处理器[3]、无线通信模块、外围电路构成,附加现场传感器和执行机构。实现以下主要功能:
① 实时现场感知数据的采集与处理,并建立Client与Server的连接,然后把实时数据上传到监控中心服务器,供云服务处理。
② 实时把远程监控中心云服务相关执行指令或本地闭环控制指令下发到执行机构执行。
③ 通过分布广泛的通信运营商无线通信网,实现与提供云服务的远程监控中心连接。
监控中心主要是建立监控中心数据服务器,接收现场实时数据,下达现场实时执行指令,并与云服务系统进行实时数据交互。
与现有现场控制系统相比,本系统有以下特点:
① 无线数据通信采用运营商的GPRS专用APN模式,覆盖范围广、安全性相对高,适合油田采输生产点分散、偏远、自有数据网无法覆盖的特点。
② 可远程无线实时监控,便于后端利用云计算处理。
③ 低功耗,可用电池供电,解决了电网无法覆盖偏远地区的监控问题。
2 硬件设计
物联网云控制器的硬件接口如图2所示,现场各种标准信号通过对应的I/O口输入到微处理器LPC11C14FBD48,经过处理后传送到M35,通过GPRS传输到远端监控中心。同时微处理器把接收到的远端监控中心指令或自身闭环控制指令,通过相应的I/O口传到现场执行机构。CAN总线用于物联网监控单元之间的数据与指令的交互连接,便于端口扩展。RS232[4]用于本地监控和内核程序下载、升级等。
主控板实物图如图3所示
2.1 ARM CortexM0简介
基于ARM CortexM0架构的微处理器体积小、功耗低且十分节能。该系列处理器拥有超小的硅片面积和很小的代码足迹,以8位处理器的价位就能实现32位性能。CortexM0可大大节约系统成本,同时保留了与CortexM3等功能丰富的处理器的工具和二进制兼容。[3]
CortexM0处理器在通常不到12K门的面积内的功耗仅为85 μW/MHz,可支持创建超低功耗的模拟和混合信号器件。仅有56个指令,可以使开发人员快速掌握整个CortexM0指令集,其对C语言友好的架构,使开发变得简单而快速。
2.2 主控模块
本系统主要功能是现场数据采集处理并上传至远程监控中心和云服务中心,接收远程监控中心和云服务中心的指令及自身闭环指令并下发,对现场设备进行控制[5]。现场一般比较偏远、分散且环境恶劣,同一处所需的监控点一般较少,因此功耗、成本、环境适应性、远程通信能力是主要要考虑的指标。目前微处理器种类繁多,本系统采用的LPC11C14FBD48是NXP公司基于ARM CortexM0的低成本32位微处理器,提供高性能、低功率、简单指令集和内存寻址,与现有8位/16位架构相比,代码尺寸更小;提供低动态功耗(110 μA/MHz)并减小深度睡眠电流(小于2 μA);片内功率配置可以针对任何低功率应用进行优化,使设计师通过最少的设计干预实现最佳功耗。该处理器主频为50 MHz,具有3.3 V单电源(2.6 V~3.6 V)、ADC、C_CAN控制器[4]、32 KB闪存、8 KB SRAM、LQFP48封装,外部时钟晶振频率为12 MHz,LPC11C14FBD48的关联电路及主要资源分配图略——编者注。
2.3 无线通信模块
由于主控模块上传监控数据流量较小,同时考虑日常全天候运行、偏远地区的覆盖、技术成熟与稳定性、日常运行费用等,无线通信方式采用运营商的GPRS方式。无线通信模块采用上海移远的M35无线GSM/GPRS通信模块。M35是四频GSM/GPRS模块,尺寸仅为19.9 mm×23.6 mm×2.65 mm。凭借超小的尺寸、超低功耗和宽工作温度范围,M35是M2M应用的理想解决方案。适用于车载、工业及PDA、个人跟踪、无线POS、智能计量以及其他M2M的应用,为其提供完善的GSM/GPRS短信、数据传输及语音服务。M35采用LCC封装,可通过标准SMT设备实现模块的快速生产,为客户提供高可靠性的连接方式,特别适合自动化、大规模、低成本的现代化生产方式。凭借内置独特的移远远程升级技术(QuecFOTATM),M35可实现远程升级及维护。本系统的M35无线通信模块的电路设计如图4所示。
3 软件设计
物联网云控制器的软件设计主要包括现场控制器本身的内核软件和远程的监控中心软件。内核软件是对控制器现场硬件资源进行分配与管理、数据处理和数据通信、系统初始化等。监控中心软件负责接收现场传输来的数据,进行数据处理、存储、显示以及向现场设备发送控制指令等,同时与云计算服务中心进行数据交互。
3.1 内核软件
3.1.1 系统架构
内核软件是基于μC/OSII开发的多线程程序,采用C/S模式与远程服务器进行数据通信[6]。系统共创建了6个功能任务线程,每个线程都使用一个while(1)条件语句来实现无限循环,用以实现系统24小时全天候不间断的功能任务,单个线程相当于一个功能子系统。设计的软件看门狗用于防止系统死机,心跳检测功能则用于防止与远程监控中心通信假链。内核软件系统的主流程如图5所示。
主要数据结构等内容略——编者注。
3.1.2 内核开发工具
内核软件的开发采用C++语言,开发工具选择RealView MDK4.01。RealView MDK是ARM公司推出的基于微控制器的专业嵌入式开发工具。它采用了ARM的最新技术工具RVCT,集成了享誉全球的μVision IDE,因此特别易于使用,同时具备非常高的性能。与ARM 之前的工具包ADS等相比,RealView编译器的最新版本可将性能改善超过20%。
RealView开发界面如图6所示。
3.2 监控中心软件
3.2.1 监控中心开发工具
监控中心软件使用的是C++ Builder 2010开发环境,开发语言是C++语言。C++ Builder是由Embarcadero公司推出的一款可视化集成开发工具。C++ Builder具有快速的可视化开发环境,只要简单地把控件(Component)拖到窗体(Form)上,定义它的属性,设置它的外观,就可以快速地建立应用程序界面。C++ Builder内置了许多完全封装了Windows公用特性且具有完全可扩展性(包括全面支持ActiveX控件)的可重用控件。C++ Builder具有一个专业C++开发环境所能提供的全部功能:快速、高效、灵活的编译器优化,逐步连接,CPU透视,命令行工具等。
3.2.2 系统架构
监控中心软件是基于TCP/IP开发的事件驱动型软件,采用C/S方式通过GPRS与远端现场物联网云控制器进行数据通信。通过ServerSocket控件的OnClientRead事件处理函数ServerSocketClientRead接收远程数据,根据需要进行处理后显示并存入实时库。根据系统数据处理需要,通过ServerSocket-﹥Socket-﹥Connections[i]-﹥SendText()向远端现场物联网云控制器发送数据或指令。通过定时器,定时把实时数据存入历史数据库。通过实时库、历史库与云计算服务中心进行数据交互。本软件的数据链接采用ADO控件,设计的定时发送心跳包功能为远端设备提供心跳检测信息。主监控界面图及主要数据结构等内容略——编者注。
结语
本油田采输物联网监控系统,得到了油田长输管线和偏远采油单井的实际验证,取得了令人满意的应用效果。无论是现场的软硬件,还是远程监控中心的软件都具有很好的可移植性,方便在不同的系统中应用,并且对外提供标准的软件接口和硬件接口,方便云计算等其他系统调研,解决了油田生产偏远点无法远程监控问题。该系统为油田物联网与云计算提供了一种新的建设思路,具有一定的推广价值。