基于RTU油井远程测控系统的数据采集与传输层软件设计

发布者:CreativeMind最新更新时间:2012-06-07 来源: 电子设计工程关键字:RTU  TCP  主从轮询  可配置 手机看文章 扫描二维码
随时随地手机看文章
0 引言
    每一个油田都拥有众多的油气井,并且分布在山川旷野里,油气井的管理方式多为由人工每日值守,定时检查设备运行情况,记录相关数据。这种方式增加了用工人数,加大了护井工劳动强度,最重要的是影响对设备的监控。当抽油机、电泵出现微小故障时,往往很难被人工及时发现,从而得不到有效地防护与控制。
    为了能有效地发现油井、地层、油藏的变化,可用油井远程测控系统,通过在抽油机上安装位移传感器和载荷传感器,检测抽油机的工况,实时在线监测抽油机工作参数,及时发现故障并报警,及时维护。本文提出了一种基于RTU的油井远程测控系统的数据采集与传输层设计方案,并将该方案用于实际的井场应用中。

1 油井远程测控系统总体架构
    油井远程测控系统的总体架构如图1所示,整个测控系统的组网架构分为现场局域网、企业信息网两大部分。网络拓扑采用分层星型拓扑,是为了在中央测控室的中央测控服务器与现场局域网的各个测控代理服务器的测控对象之间建立更有效的连接方式。每个测控分站设测控代理服务器,实时发送或读取的井场设备数据先经测控代理服务器处理后再并行传输到中央测控服务器,这样既让等级高的设备预警信号得到现场级的及时响应,又减轻了中央测控服务器处理数据的压力。WEB服务器与中央测控服务器通过数据库服务器连接,这种连接方式使WEB服务器面向的对象是数据库服务器,有利于WEB服务器在处理管理用户的指令时与中央监控服务器保持一定的时差,避免了相互动作间的冲突。而所有这些数据来自于代理测控服务器通过井场数据采集与传输层得到的。IT目前最常见的数据采集与传输层的工作方式有图1所示的两种情况。其中井场1针对安装多个传感器的油气井,在每个油气井处安装一个RTU从站,能够对该油气井的传感器进行统一管理,并在每个井场设置一个RTU主站,采用主叫/从响应的方式,采集各从站的传感器数据,然后将各从站数据上传到上位机(测控代理服务器);井场2针对安装几个传感器的油气井,在每个井场放置一个RTU,直接将传感器的数据采集后发送到上位机;为了能够兼容这两种工作方式,本文设计了一个基于RTU的数据采集与传输层系统软件。

a.jpg



2 数据采集与传输层硬件基础——RTU
    有些油气田由于地理原因,不易铺设电缆,本系统引入物联网技术,加入无线通信ZigBee模块,并利用其自组织原理,实现在井场无线自组织寻址和数据传输,可以简单、方便地实现井场实时数据采集,利用这些有效数据指导油田油气生产,提高产量,其构成一个物联网回路,改变了油田生产方式。
    油井远程测控系统RTU采用Samsung公司的S3C2440A,具有400 MHz的工作频率,主要控制数据流的输入输出;采用具有2 Mb存储能力的Norflash(EN29LV160AB)存储程序;用有128 Mb存储能力的Nand flash(K9F2G08U0B)存储数据;利用AD转换器ADS7952采集8通道12位模拟数据;系统环境温度由温度传感器TMP100获得;考虑到ZigBee模块的接口以及有线方式下的长距离传输等因素,RTU的串行链路口为RS 232及RS 485;为与代理测控服务器PC机相连,RTU采用DM9000实现以太网连接;RTU的初始配置信息采用E2PROM存储;RTU内还包含隔离电路、控制单元等几个部分。RTU的硬件框图如图2所示。

b.jpg



3 数据采集与传输层系统软件
3.1 数据采集与传输层通信协议
    Modbus通信协议已经非常广泛地应用于自动控制和通信领域中,通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以实现通信。Modbus网络属于一种主从网络,允许一个主站和一个或多个从站通信。它采用命令/应答方式,每种命令报文都对应着一种应答报文。网络中的每个从站都必须分配一个唯一的地址。主站发出的命令中含有要求访问的从站地址,只有具有该地址的从站才会对该命令响应。
3.1.1 Modbus/RTU通信协议
    RTU主/从站串口通信时,通常使用的是Modbus/RTU传输模式。在Modbus报文RTU帧中,如果两个字符之间的空闲间隔大于1.5个字符时间,那就认为报文帧不完整,此时接收站应该丢弃这个报文。时长至少为3.5个字符时间的空闲间隔将报文帧区分。RTU消息帧的典型格式如表1所列。

c.jpg[page]

3.1.2 Modbus/TCP通信协议
    Modbus/TCP是一种应用层的协议,上层为Modbus协议,下层为TCP协议,它规定了网络互联节点间的请求/应答的通信方式。帧格式必须严格遵守协议所规定的ADU(Application Data Unit)格式,才能在以太网上实现数据的传输。图3所示即为Modbus/TCP的数据帧格式。

d.jpg


    MBAP报文头(Modbus Application Protocol Header)是TCP/IP使用的专用报文头,用来识别Modbus的应用数据单元。MBAP共有7个字节,其具体组成及含义如表2所列。
    国际互联网编号分配管理机构IANA(Internet Assigned Numbers Authority)专门为其赋予了一个TCP端口号502端口,利用TCP发送所有的Modbus/TCP ADU。
3.1.3 Modbus/TCP与Modbus RTU数据帧的区别
    Modbus/TCP虽然包括了从站地址、功能码和传输的数据,但是没有校验控制码,这是因为Modbus/TCP校验功能已经在下面的四层如TCP/IP协议和链路层的校验机制得到了保证。
3.2 数据采集与传输层系统软件设计
    油井远程测控系统的数据采集与传输层主要完成的功能:传感器数据的采集、传输和对继电器的控制。图1中提到了两种常见的工作方式。在井场1中存在RTU主站和从站:主站主要负责对各从站进行轮询、数据打包和向上位机发送数据,从站主要负责数据的采集、继电器的控制和轮询命令的响应,主从站之间的通信使用的是Modbus/RTU。在井场2中只存在一个RTU,主要完成数据的采集、继电器的控制和向上位机发送数据,通信使用的是Modbus/TCP。在数据采集与传输层的工作过程中,考虑到系统的兼容性,对RTU软件设计提出了可配置的要求,不需要重新下载程序,只需要使用系统配置软件就可选择不同的工作方式和通信方式,这就保证了系统的可操作性和兼容性,系统的适应性大大加强。
    在软件开发过程中,考虑到串行通信速度较慢的特点,采用多线程技术,故引入实时操作系统μC/OS_II,将Modbus/RTU通信、Modbus /TCP通信等放在单独的线程中进行,而数据采集和控制等则采用另的线程实现。
3.2.1 μC/OS_II的移植
    μC/OS_II是可移植、可剪裁的抢占式实时多任务操作系统内核,适用于工业控制中的实时监控。本系统成功地将实时操作系统μC/   OS_II移植到S3C2440A微处理器上,并实现了Modbus通信协议。
    μC/OS_II可以管理64个任务,具有信号量、互斥信号量、消息队列、任务管理、时间管理和内存块管理等系统功能。μC/OS_II的移植主要包括三部分代码:μC/OS_II核心代码、μC/OS_II配置代码、μC/OS_II移植代码。其中μC/OS_II移植代码包括1个汇编文件、1个C程序文件和1个头文件。这部分代码与微处理器相关,是移植的关键。
3.2.2 Modbus通信的实现
    RTU与上位机使用Modbus/TCP进行以太网通信时,需不断接收上位机发送的查询命令,处于服务器(从站)状态。RTU在使用。Modbus/   RTU进行串口通信时,需单独完成主从站功能。在实际应用中,不存在Modbus/TCP和Modbus/RTU的从站并存在同一RTU的情况,因而在程序编写过程中,Modbus/TCP和Modbus/RTU的从站使用同一个Modbus从站库,但对其帧头的处理略有不同。以下分别讲述Modbus/TCP服务器(从站)在TCP/IP协议栈上的实现以及Modbus/RTU主站在串口通信上的实现。
    (1)Modbus/TCP通信协议实现
    由于操作系统μC/OS_II本身没有TCP/IP协议栈,故先移植嵌入TCP/IP协议栈,再编写Modbus/TCP服务器(从站)程序。在μC/OS_II下嵌入了TCP/IP协议栈后就监听TCP502端口的连接请求,只有在与客户机建立了连接之后才能进行数据处理。服务器端在收到客户机的请求之后,会确认和客户机的连接,同时接收并分析客户机的请求报文。如果MBAP报文头正确,则读完所有的报文,只有协议类型值为0x00时才对请求帧进行下一步操作,否则直接丢弃报文。接着分析PDU中的功能代码,不同的功能对参数要求也不同,最后根据数据域中的参数规定,执行相应的操作。若有错误出现,直接丢弃报文,仍继续处理PDU的数据显得不必要,影响实时性。根据对客户端请求报文的分析处理,有两种响应结果,一种是正常的响应报文,另一种是异常响应报文,即返回的是错误信息。其Modbus/TCP的从站通信流程如图4所示。

e.jpg

[page]

    (2)Modbus/RTU通信协议实现
    Modbus主站需要处理发送请求帧、等待应答、处理应答、处理差错和等待转换延时等事件。其主站设计流程如图5所示。

f.jpg


    Modbus/RTU报文帧是否完整和帧与帧之间的区分可以通过空闲间隔来实现,但这需要使用定时器完成1.5个字符和3.5个字符的定时,并在定时到后,进入接收处理函数,然后实现ADU数据到PDU数据的处理。
3.2.3 系统软件的实现
    系统上电后,首先进行初始化操作,主要包括设置串口、定时器等内容,并读取EEPROM中的配置信息,对RTU进行配置,包括主从工作模式选择、IP地址设置、轮询的通信方式选择、传感器的开关状态、继电器输出状态等。若处于主站状态,还可以获取从站配置信息并配置从站,配置成功后,主站开始对各从站进行扫描,并对从站报文进行处理;每扫描完一个从站,主站就对轮询到的数据进行存储;在扫描从站的同时,如果主站传感器和外部继电器处于开状态,会同时采集模拟通道和数字通道的数据并控制外部继电器,采集到的数据存于相应寄存器中,等待上位机请求命令,按照Modbus协议将相应数据打包,并上传到上位机。若处于从站,采集模拟通道和数字通道的数据并控制外部继电器,采集到的数据存于相应寄存器中,并等待RTU主站轮询命令,当轮询到该从站时,按Modbus协议打包数据并发送到RTU主站。不管该RTU是主站还是从站,其TCP/IP的服务器程序一直等待系统配置软件的配置信息,当收到配置信息后,将数据存入EEPROM并复位系统程序,整个系统设计流程图如图6所示。

g.jpg


    从图6中可以同时看到Modbus/RTU和Modbus/TCP的从站处理函数,在实际应用中,RTU处于Modbus/RTU主站时,其Modbus/RTU从站的
处理任务不运行,Modbus/TCP从站的处理任务运行,该状态下RTU可用于图1中井场1的RTU主站和井场2的RTU两种情况;处于Modbus/RTU从站时,该状态下RTU可用于图1中井场1的从站情况,以太网服务器任务只等待配置信息。

[page]

4 测试
    本系统的测试采用了第三方的Modbus测试工具Modbus Poll V4.3.3、Modbus Slave V4.3.1和实验室自主开发的配置软件。
4.1 轮询测试
    利用系统配置软件的界面如图7所示,设置一个RTU主站和两个RTU从站,在一台PC机上运行Modbus Poll程序,模拟Modbus/TCP客户机,通过以太网与RTU主站相连,RTU主从站之间通过无线ZigBee模块(或RS 485模块)相连。串行通信的波特率设置为38 400 b/s,无校验位,停止位为1位。

h.jpg


    PC端的Modbus/TCP客户机可向RTU主站发送命令,并读取存于RTU主站输入寄存器的从站数据。当从站的数字输入端接高电平(24 V)时,从Modbus Poll的对应地址可读取到1,图8所示是Modbus/TCP客户机接收到的轮询数据,其中地址500~507为从站1中8通道数字输入端对应的状态值;地址508~515为从站2中8通道数字输入端对应的状态值。经多次测量,均正确无误。

i.jpg


4.2 控制测试
    PC端模拟的Modbus/TCP客户机向RTU的保持寄存器写入数据,RTU会将对应寄存器的数据输出到对应的数字输出端口,例如地址100对应数字输出端口0,当对地址100置1时,对应指示灯亮,输出高电平。
4.3 数据采集测试
    RTU模拟输入端0接一定频率的正弦波,数字输入端接高电平信号,利用Modbus Poll查询RTU模拟输入端与数字输入端的数据。
    图9所示为Modbus/TCP客户机所接收到的采集数据。

j.jpg


    RTU采集到数字输入端的脉冲值以及开关状态,地址0~7对应相应通道的脉冲值,地址8~15对应相应通道的开关状态值;地址19为RTU板上的温度传感器的值,当前RTU的温度是24℃;地址20~49为模拟通道0采集到的正弦波信号,之后为其他通道采集到的AD值,每个通道的采样点数和频率可调。

5 结语
    在油井远程测控系统数据采集与传输层系统软件设计中,由于采用了μC/OS_II的操作系统平台,可实现Modbus/RTU和Modbus/TCP通信,还可采集各种数字、模拟传感器的数据,并能对外部继电器进行控制,保障了本系统能适用于各种工作环境。此外,还可以根据实际的工作环境,利用系统配置软件进行合理的配置,保证了系统数据采集与传输层工作方式的多样性。经过一段时间的运行,本系统工作稳定、可靠。

关键字:RTU  TCP  主从轮询  可配置 引用地址:基于RTU油井远程测控系统的数据采集与传输层软件设计

上一篇:基于GPRS的野生动物远程监测系统设计
下一篇:基于微控器的植株杆径变差测量系统设计

推荐阅读最新更新时间:2024-03-30 22:26

一个关于小程序与单片机的通信实例(TCP/IP)
前言 这是一个18年初的创业项目的核心功能要求,我们当时打算做一个共享类的项目,项目的主题是共享图书,线下的形式租借图书,我们当时是考虑做一个借书柜的形式,然后线下生产投放借书柜,这些借书柜本身能存放24本书,大约24个柜子,且均有单片机控制。 用户通过扫码借书柜上的二维码,可以直接看到共享小程序里面的,针对这个借书柜的当前存在的图书,如果有用户喜欢的图书,那么用户可以直接点击小程序选择借书,那么这是小程序需要向后台发起API请求,由后台针对对应的借书柜的单片机进行通信,下发指令要求单片机打开对应该书的柜子。 大致步骤 后台构建 我选择用netty,当时使用的SSM的后台系统,不过最近一次整理我采用了SpringBoot
[单片机]
一个关于小程序与单片机的通信实例(<font color='red'>TCP</font>/IP)
SIM900A与网络调试助手进行TCP收发通信
硬件平台:正点原子ATK-SIM900A GSM/GPRS模块开发板 软件平台:PC端串口调试工具&网络调试工具 测试目的:测试开发板GPRS功能、熟悉AT指令 1.设置网络 因为我这里是通过路由器上网,所以要先进行一些设置。 先查看自己本机IP,这里是192.168.1.103,如图1. 图1 通过自己的路由器,查看本机对外的IP,如图2. 图2 路由器的设置里面有一项“转发规则”,如图3,选择“DMZ主机”。 图3 在“DMZ主机”中,启动DMZ主机状态,将DMZ主机IP设置为前面查到的192.168.1.103,然后保存,如图4. 图4 这样就把本机的IP映射到外网上,就可以从外网直接访问自己的电脑。 2
[单片机]
SIM900A与网络调试助手进行<font color='red'>TCP</font>收发通信
嵌入式TCP/IP协议单片机技术在网络通信中的应用
摘要:介绍了嵌入式TCP/IP协议单片机在网络通信中的数据传输技术。将TCP/IP协议嵌入式单片机中,借助网卡芯片CS8900实现了单片机在局域网内和通过局域网在因特网上的数据传输。用户终端以单片机系统板为媒介,通过网络与远程数据终端实现数据通信。 关键词:TCP/IP协议 单片机 因特网 局域网 网卡芯片 在因特网上,TCP/IP协议每时每刻保证了数据的准确传输。在数据采集领域,如何利用TCP/IP协议在网络中进行数据传输成为一个炙手可热的话题。在本系统中,笔者利用TCP/IP协议中的UDP(用户数据报协议)、IP(网络报文协议)、ARP(地址解析协议)及简单的应用层协议成功地实现了单片机的网络互连,既提高了数据传输的速度,
[工业控制]
基于Linux操作系统下的TCP/IP网络通信研究与应用
1 引言 Linux是一种自由的Unix类多用户,多任务的操作系统,可在运行在Intel 80386及更高档次的PC机、ARMS、MIPS和PowerPC等多种计算机平台,已成为应用广泛、可靠性高、功能强大的计算机操作系统,Linux具有内核小、效率高、源代码开放等优点,还内含了TCP/IP网络协议,很适合在服务器领域使用,而服务器主要用途之一就是进行网络通信,随着计算机办公自动化处理技术的应用与推广,网络的不断普及,传统的纸张式文件传输方式已经不再适合发展的需要,人们更期待一种便捷、高效、环保、安全的网络传输方式。 本文就是考虑到这一现状,结合基于Linux操作系统下的TCP/IP网络通信原理,给出了一种基于TCP/IP编程
[应用]
基于SRAM的配置电路
基于SRAM的可重配置PLD(可编程逻辑器件)的出现,为系统设计者动态改变运行电路中PLD的逻辑功能创造了条件。PLD使用SRAM单元来保存字的配置数据决定了PLD内部互连和功能,改变这些数据,也就改变了器件的逻辑功能。由于SRAM的数据是易失的,因此这些数据必须保存在PLD器件以外的EPROM,EEPROM或FLASH ROM等非易失存储器内,以便系统在适当的时候将其下载到PLD中,从而实现在电路可重配置ICR(In-Circuit Reconfigurability,在电路可重配置)。 如何实现ICR?ALTER公司的应用方案AN88中详细介绍一种基于DS87C520微控制器的ISP&ICR设计方法,并
[半导体设计/制造]
具有卫星链路的TCP/IP网络性能测量方法
1概述 一个用于测控的TCP/IP网络系统,传输了包括视频、语音和实时数据等多媒体信息。由于该系统运行在一个不可到达的环境,对其业务承载能力及传输质量的评估需要在模拟系统上进行,包括建设网络实验平台、设计合理的测量方法、研制性能测试综合软件等。通过在模拟平台上测量信号传输质量及网络性能,整理和分析测试数据,参考设计实际网络配置和对实际网络进行性能评估。该网络包括一条长链路的卫星接入信道,传输速率具有可任意设置的特点。 为了实现上述目标,开展了以下工作:①构建仿真网络实验平台,具有大延时特性和莱斯噪声的卫星模拟链路;可手动设置接入带宽,最高传输速率为2Mb/s,可变速率为n64Kb/s;②模拟接入多路数字视频和语音,通
[测试测量]
在TMS320VC5402上实现的嵌入式TCP/IP协议栈
摘要:实现一个运行在16位数字信号处理器TMS320VC5402上的小型嵌入式TCP/IP协议栈。对TCP/IP协议中的IP协议、ARP协议、UDP协议进行分析,完成基于TCP/IP协议的嵌入式网络系统。 关键词:DSP TMS320VC5402 TCP/IP协议栈 嵌入式系统 引言 随着嵌入式系统应用范围的不断扩展及网络应用的日益普及,使得越来越多的嵌入式系统需要支持网络功能。TCP/IP是目前一种被广泛采用的网络协议。TCP/IP是一套把因特网上的各种系统互连起来的协议组,已成为事实上最常用的网络标准之一。本文对TCP/IP协议中的IP协议、ARP协议和UDP协议进行了分析,利用DSP的专用汇编语言实现了自己的通信协议
[嵌入式]
分析TCP/IP协议栈代码之ARP(STM32平台)
1. ARP的简介 Address Resolution Protocol-地址解析协议 ARP为IP地址到对应的硬件地址之间提供动态映射。从逻辑Internet地址到对应的物理硬件地址需要进行翻译。这就是ARP的功能。ARP的功能是在32 bit的IP地址和采用不同网络技术的硬件地址之间提供动态映射。 2. ARP的应答流程 任何时候我们敲入下面这个形式的命令: view plain copy % ftp bsdi //示例而已 都会进行以下这些步骤。这些步骤的序号如图 4 - 2所示。 1) 应用程序FTP客户端调用函数gethostbyname(3)把主机名(bsdi)转换成32 bit的IP地址。
[单片机]
分析<font color='red'>TCP</font>/IP协议栈代码之ARP(STM32平台)
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
最新测试测量文章
换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved