基于嵌入式云技术的油井液位远程测试系统

发布者:Enchanted2021最新更新时间:2014-10-24 来源: 21ic关键字:云测试  Linux操作系统  KVM  QEMU  Modbus 手机看文章 扫描二维码
随时随地手机看文章

在油井开采过程中,为了解油井的产油能力,掌握生产动态,测量油井的液位是一项经常性的工作。因此,对此测量液位的实时监控以及能快速的测取、分析数据和存储数据就显得尤为重要。

然而针对油井的动态液位测量必须进行人工手持发生装置、传感器和测距仪等到油井现场去测试,并且对于测距仪的计算能力,以及存储资源的不足,选用现在越来越成熟的云计算技术来解决。云计算通过网络访问非本地的计算服务(包括数据处理、存储、和信息服务等)的技术,其计算设施不在本地而在网络中,用户不需要关心他们所处的具体位置。嵌入式云计算具备通用化构件、虚拟化管理特征,也可以更加有效地降低构件成本,提高资源利用率,同时显著提高了系统的整体可靠性。传统的本地油井测量测试存在很多问题,如测试工具费用昂贵;并且由于本地测试环境的限制,难以获得超大规模的计算能力;测试环境难以部署,测试资源准备繁琐、测试积累比较匮乏等一系列问题,这些都制约了测试工作的进展。而云测试是基于云计算的一种新型测试方案。

为此,文中设计开发出一种基于开放式控制标准、具备完善通讯联网能力的嵌入式云测试系统,应用于油井动态液面测量中。云计算平台采用亚马逊公司的开源项目Eucalyptus(桉树)云,实现了云测试监控中心的功能。现场嵌入式测控服务器的终端节点作为云测试平台中的NC节点。现场测控服务器的网络接口采用无线WiFi技术或TCP/IP技术可与Internet/Intranet无缝集成,达到了“任何时间、任何地点”的测试系统。

其在嵌入式Linux系统的支撑下,通过移植KVM、QEMU虚拟机,实现了测试设备的虚拟化,测控节点和测控服务器之间采用Modbus通信协议。系统实现了实时测试和远程实时测控的功能,能有效地提高采油井的测试效率,节省人力物力财力,更节省了宝贵的时间。

1 系统体系结构

本文设计的嵌入式云测试系统是由云测试监控中心和现场测控两部分构成,现场测控设备由嵌入式测控节点与嵌入式云服务器构成。测控的总体结构如图1所示。

基于嵌入式云技术的油井液位远程测试系统

本文基于亚马逊公司的Eucalyptus(桉树)云平台实现了云测试监控中心的功能。Eucalyptus是用于完成对各种虚拟设备、虚拟机实例的全局性监控,对整个集群的计算资源、存储资源、网络资源进行动态配置。在云测试监控中心,当有远程客户端的请求命令时,其可以为应用对象提供访问服务,实现有效的远程控制与管理。网络化测控服务器作为云测试平台中重要的NC节点。其中,现场嵌入式测控节点完成数据采集和控制开关等工作;对于现场嵌入式测控服务器,实现设备的虚拟化,为远程使用现场设备提供条件。

2 嵌入式测控服务器和测控节点硬件结构

现场嵌入式测控服务器和测控节点的系统硬件按功能主要分为:核心控制模块、网络通信模块、数据分析及处理模块和数据采集、继电器控制模块等。硬件结构分别如图2、图3所示。

基于嵌入式云技术的油井液位远程测试系统
基于嵌入式云技术的油井液位远程测试系统

1)核心控制部分。以三星公司生产的S3C244OA作为主控芯片,其采用ARM920T内核。以ARM Cortex—M3内核的STM32增强型系列芯片STM 32F103VET6微处理器。

2)信号调理电路。主要是对微音器采集到的声音信号进行调理,而设计的调理电路。其目的就是将声音信号模拟量经过简单的信号调理送入到16位高分辨率的4路模拟量串行输入A/D转换器件ADS8341,将转换之后的数字量送入主控制器。

3)网络部分。包括以太网接口及WIFI网络模块。外接的以太网模块采用的是DM9000E 100M网络传输模块;WIFI网络模块采用的是基于SPI接口marvell 88w8686 wifi网络传输模块;通过其中任何一个模块都可以建立嵌入式测控服务器与该云测试系统网络之间的数据通信。

4)外围接口电路。包括:电源电路、时钟电路、复位电路、JTAG接口电路、NandFlash/NorFlash选择电路、串口电路、以太网接口。

现场测控完成了对声音和压力信号的数据采集、信号调理和继电器等控制工作。声音信号、压力信号采集模块与继电器驱动模块是实现测控的基本模块。串口RS485模块是测控节点与嵌入式测控服务器实现交互的主要通信接口。

3 软件设计

本文采用的是嵌入式Linux操作系统。Bootloader移植的是U-boot-1.1.6.tar.gz,Linux内核版本为2.6.25.8.。

3.1 虚拟化技术

3.1.1 KVM虚拟机技术

KVM(Kernel-based Virtual Machine)是一种基于Linux内核的虚拟机,它是一种全新的开源的虚拟机技术。在KVM模型中,每一个虚拟机都是一个由Linux调度程序管理的标准进程。一个普通的Linux进程有两种运行模式:内核和用户。而KVM增加了第3种模式:客户模式(有自己的内核和用户模式。)KVM由2个部分组成:一个是管理虚拟硬件的设备驱动,该驱动使用字符串设备/dev/kvm做为管理接口;另一个是模拟硬件的用户空间组件,这是一个需要做修改的qemu进程。[page]

3.1.2 移植KVM到ARM架构平台

本文采用KVM虚拟化方案,来实现在ARM处理器硬件架构平台上的虚拟化,即设备的虚拟化,为远程使用现场设备提供条件。在KVM中,通过打开设备节点“/dev/kvm”就可以创建一个虚拟机。这里需要对载有KVM模块的Linux内核进行修改,使之能够支持ARM架构。尽管KVM提供了可以被所有用户空间仿真器使用的通用接口,然而QEMU是唯一的可以执行这些数据的工具。

3.1.3 编译QEMU

QEMU拥有支持ARM主机与客户环境的仿真技术,在QEMU仿真环境下忽略了试图使KVM有效的操作,因此需要对QEMU进行修改以使KVM能够运行。QEMU是一个用户级与系统级的仿真器,它在KVM上下文环境中被当作用户空间的应用程序运行,它与用户操作系统相互配合,向内核模块发送消息并对I/O和其它设备进行仿真,通过编辑QEMU的配置和运行时的参数可以使QEMU能够支持KVM。在交叉编译时,除了需要关注交叉编译的设置外,还需要修改内核和设置KVM参数。

3.1.4 创建并运行虚拟机

Eucalyptus实现基本的简单的虚拟机管理功能,它的主要目标是将基本的虚拟化管理API化。简单易用,扩展方便。用户可以通过euca 200ls工具制作镜像,上传之后可以通过命令行运行实例。查看实例运行情况,停止,重启自己的实例。也可以通过web界面查看已上传镜像,并禁止自己上传的镜像,修改自己的资料。也可以作为用户存储文件和数据的地方。创建的镜像和运行的虚拟机,如图4所示。

基于嵌入式云技术的油井液位远程测试系统

图4中的方框部分显示出,虚拟机的内核编号、镜像编号、IP地址和运行实例,并且成功运行登入进虚拟机实例。

3.2 数据采集与测深计算

数据采集是测控系统的基础,是由以STM32F103微处理器为核心的现场测控节点完成,将采集到的声音信号发送给现场嵌入式测控服务器,其采用ModBus协议进行通信。云测试监控中心将声音信号数据通过去野值、接箍波提取、液面回波提取、FFT变换等一系列程序处理后,最终得到油井液位的深度。

3.3 ModBus通讯协议和协议栈移植

本文选用完全符合工业标准的Modbus通讯协议。Mod bus通讯协议,读保持寄存器(0x03)、读输入寄存器(0x04)等15个常用功能码,完全能满足工业应用要求。

Modbus协议支持Modbus RTU/ASCII/TCP 3种传输方式,其移植可以基于串口或网口来完成,从而实现MobusRTU/ASCII或Mobus TCP帧的处理,这点与协议栈具体应用场景、使用的处理器平台、硬件接口密切相关。本文采用ModBus RTU传输方式进行现场嵌入式测控设备之间的通讯。ModBus主机协议中Commun层和从机协议中Port层,都是将Modbus的物理层链路与具体平台的硬件驱动联系起来,该层本质上完成不同链路上数据帧的接收工作。Modbus中的各个功能码操作函数都是平台无关的,应用程序通过解析数据帧中的功能码查找函数指针,并最终执行功能码函数。Mbm.c和mb.c文件为用户应用程序提供了调用接口,对Modbus不同的传输方式(RTU、ASCII、TCP)进行了统一的管理。

Modbus RTU属于Modbus数据帧在串行链路上的传输模式。基于RTU的Modbus主要移植步骤如下:

1)232/485接口驱动。在主机协议的Commun层和从机协议port层portserial.c中完成串口相关函数的编写,包括串口初始化、数据发送、数据接收、中断处理等。

2)定时器功能。在主机协议的mbm.c中,采用线程进行定时器;在从机协议的port层porttimer.c中完成定时器相关函数的编写,包括定时器的初始化、定时器的使能与禁止、超时中断函数等。

现场测控系统采用Modbus RTU数据帧进行传输,设计中利用操作系统提供的多任务环境,创建Modbus RTU服务任务来管理和响应数据帧。

根据实际需要,用户可以删减不必要的功能码或增加自定义功能码,协议的可裁剪性与扩展性非常好。本设计中使用到的功能码与Modbus地址间的对应关系如表1所示。在程序中可以根据表1所对应的功能码来读写数据。

基于嵌入式云技术的油井液位远程测试系统

4 系统测试

采用本文提出的方法,设计出的这套云测试系统。在华北油田进行了30多口井次试验,其中包括多种井况,得到声速、时间和深度,声速的范围335~343 m/s,深度的误差范围1.0~3.0 m,通过浏览器远程访问本节点,启动数据采集,得到的结果如表2所示。

基于嵌入式云技术的油井液位远程测试系统

现场试验结果表明,通过得到的声音信号波形与油井动态液面的深度测量值,其误差较小,满足实际应用需求。

5 结束语

文中基于云测试技术,设计实现了一套网络化嵌入式云测控系统,在开源Linux系统的支撑下,通过网络化传感器和虚拟化等技术实现了远程数据的采集、实时测试和远程实时监控;对采集到的声音信号进行滤波、测深算法很好的消除了由现场恶劣环境带来的噪声并得到了相应的接箍波和液面回波的波形曲线,在华北油田试验结果得到的波形也比较理想。在现场网络化嵌入式测控系统中,系统提供了多接口,实现了智能测控节点的远程维护。以S3C2440A为核心的主控制器,作为现场嵌入式测控服务器,通过RS485硬件接口,采用ModBus通讯协议,分别监控多个以STM32F103为核心主控制器的现场嵌入式测控节点;在Linux操作系统的支撑下,通过KVM,QEMU完成了设备的虚拟化,为远程使用现场设备提供条件;在Linux和μC/OS-II操作系统上,分别移植符合工业标准的Modbus主机协议栈和从机协议栈,并基于多线程、多任务环境实现了对Modbus RTU数据帧的响应和处理,实现系统终端设备的多通道、智能化、网络化控制。

实际运行结果表明,该智能云测控节点稳定可靠,性价比高,通用性与适应性强。该嵌入式云测试系统及相关技术还可适用于其他网络化测控系统,在云测试发展的各个热点领域有着广泛的应用前景。

关键字:云测试  Linux操作系统  KVM  QEMU  Modbus 引用地址:基于嵌入式云技术的油井液位远程测试系统

上一篇:STM32再学习 -- 工程师眼中的SPI
下一篇:ARM发布两款“非计算内核”SoC新品CCN-512/502

推荐阅读最新更新时间:2024-03-16 13:43

利用MLD自动化操作系统移植降低Linux的成本
随着基于 Linux 的嵌入式系统得到日益广泛的应用,人们不禁要问,类似 Linux 这样的免费开放源代码操作系统的真正成本到底是多少?其实,最主要的成本是在劳动力上。要将 Linux 内核移植到定制嵌入式处理系统,您必须对产品所需要的内核功能、这些功能对其他内核服务的依赖程度以及您的工程团队的技能都有深入的了解。更重要的是,要了解可以借助哪些新技术来使这些任务自动化,以达到节省成本的目标。 开放源代码与商业操作系统 我们很多人都看过为如何使用 Linux 源代码提供指导的 GNU 通用公共许可证 (GPL)。要确定在系统中使用 Linux 的成本,一般来说,第一步是了解 Linux 的哪些部分是真正免费且不受法律约束的,哪些
[嵌入式]
Modbus转PROFIBUS适配器应用于智能温湿度仪表数据采集
  背景:   现代科学技术和工业的迅速发展,不断促进着自动化控制技术及设备通信技术的创新和发展。当前, PLC 、 DCS 、智能仪表等已广泛应用到现场生产 控制系统 中,本应用案例是在半导体行业的温湿度监控系统中,西门子 S7-300 PLC与智能温湿度仪表的通讯。上海泗博自动化技术有限公司为工业现场提供了一系列的通信解决方案。   半导体和精密电子制造厂对内部的温度、湿度和洁净度等有着极其特殊的要求,其生产必须在高洁净度的洁净室中进行的。没有洁净的生产条件,会妨碍产品的功能,或者会降低产品的使用寿命,甚至毁坏半导体。因此,对洁净室进行测试,确保其各项参数达到并继续保持在设计标准范围内是半导体和精密电子等制造业不可或缺
[嵌入式]
基于ARM-LinuxModbus串口服务器设计
串口服务器的功能 串口服务器是一种通信协议转换器,它设有两类通信端口:一类是标准的RS232/422/485格式的串行端口,远程的RTU(远程终端设备)监控模块通过串行控制总线接入串口服务器的此类端口;另一类是以太网口,通过网线将串口服务器接入局域网的交换机等设备中。 串口服务器在工作中可自动将RS232/422/485格式的串行数据与基于TCP/IP协议的以太网数据包进行透明转换。一方面,串口服务器收到来自某一串行端口的现场数据,将其转换为TCP/IP格式的数据,通过以太网口进行网络上传;另一方面,串口服务器在局域网中捕获合法的数据协议包,通过解包来解析出有效的控制信息,通过监控机指定的串行端口将控制命令以串行数据的方式
[单片机]
基于ARM-<font color='red'>Linux</font>的<font color='red'>Modbus</font>串口服务器设计
基于Modbus协议与MCX314的自动钻孔系统设计
  本文基于Modbus串口协议的威伦触摸屏与通用型C8051系列单片机作为硬件平台,结合MCX314运动控制芯片,实现了一个结构简单、成本低、有良好人机交互且控制精度高的自动钻孔系统。   1 自动钻孔系统架构   为实现良好的人机交互,系统通过触摸屏实时显示钻头运行状态,包括位置,转速,钻孔速度等参数,同时可以对转速,钻孔速度,钻孔深度,攻牙牙距等参数进行设置,设置完成后通过触摸屏上的按键分别进行自动钻孔、自动攻牙、啄钻等操作。   系统中,钻头运行距离以毫米为基本单位,要求达到小数点后2位的精度,也即10-2mm,对钻孔速度则以10-2mm/s为最小调节精度。最高转速200 r/s,最大钻孔深度为200 mm。攻牙过程
[单片机]
基于<font color='red'>Modbus</font>协议与MCX314的自动钻孔系统设计
NI最新虚拟仪器工具支持Linux操作系统,助降系统成本
美国国家仪器有限公司(National Instruments,简称NI)日前发布了其最新用于Linux操作系统的虚拟仪器技术工具,包括NI-DAQmx 8驱动软件和用于模块化仪器的全新仪器驱动。这些具有革新性的产品不仅将NI支持Linux操作系统的设备数量增加了3倍,而且使得全球越来越多的Linux用户更轻松地享受到虚拟仪器技术的优势。这些新产品都是基于全新推出的NI LabVIEW 8图形化开发平台,现在NI公司的旗舰软件LabVIEW已经在Linux操作系统上得到了全面的支持。 通过采用先进的PC和商业技术,虚拟仪器技术将易于集成的NI LabVIEW软件,以及开放的、高性价比的测量和控制硬件组合在一起。随着NI-DAQm
[新品]
基于Modbus协议的三相电力智能配电系统设计
  随着电力自动化技术的发展和电力智能配电系统建设的需要,具有数字化、智能化、网络化、多功能的配电系统日渐成为中低压配电的最基本要求,采用专用的三相电参量采集芯片和高性价比的16位MSP430处理器构建的智能配电系统,并通过RS 485总线实现电力系统通用的Modbus协议,具有适时遥测数据精度高、遥控可靠、遥信号时、低功耗、扩展性好等优点。    1 三相电力配电系统的硬件设计   1.1 TI MSP430F149处理器   TI MSP430F149是一款超低功耗的高性价比精简指令集16位单片机,最小指令周期125 ns,32 kB的FLASH和2 kB RAM,具有丰富的片上外设资源和5个双向8位IO口,并具有
[电源管理]
STM32 RS485 modbus通讯源程序,亲测有效
Modbus 一个工业上常用的通讯协议、一种通讯约定。Modbus协议包括RTU、ASCII、TCP。其中MODBUS-RTU最常用,比较简单,在单片机上很容易实现。modbus协议简单解析如下: 1、主机对从机写数据操作 如果单片机接收到一个报文那么就对报文进行解析执行相应的处理,如上面报文: 01 06 00 01 00 17 98 04 从机地址 功能号 数据地址 数据 CRC校验 假如本机地址是 1 ,那么单片机接收到这串数据根据数据计算CRC校验判断数据是否正确,如果判断数据无误,则结果是: HoldDataReg = 0x0017
[单片机]
STM32 RS485 <font color='red'>modbus</font>通讯源程序,亲测有效
基于DSP和Modbus总线的智能断路器控制器设计
作为输配电网络中保护用的 电力 断路器(包括框架式断路器和塑壳式断路器),在设备过载、短路时,能安全、可靠地切断故障电流,防止事故扩大危及到整个输配电系统。随着科学技术的进步,人们对供配电系统的自动化程度要求越来越高,传统断路器的功能已不能满足供配电系统自动化的需要。断路器 控制 器正在向智能化、多功能、模块化及可通信的方向发展。对于供电系统中的多台断路器要求能实现联网通信、集中监控等功能,即第四代断路器,同时对高分断能力、多保护功能、高可靠性提出了更高的应用要求。本文着重研究和设计了一种基于DSP的Modbus 总线 的新型可通信智能断路器 控制 器,并给出结合断路器的上位监控软件的完整应用实现。该控制器不仅具有三段保护的基本功
[模拟电子]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
随便看看
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved