基于rtu油井远程测控系统的数据采集与传输层软件设计
引 言论文联盟http://
每一个油田都拥有众多的油气井, 并且分布在山川旷野里,油气井的管理方式多为由人工每日值守,定时检查设备运行情况,记录相关数据。这种方式增加了用工人数,加大了护井工劳动强度,最重要的是影响对设备的监控。当抽油机、电泵出现微小故障时,往往很难被人工及时发现,从而得不到有效地防护与控制[9]。
为了能有效地发现油井、地层、油藏的变化,可用油井远程测控系统,通过在抽油机上安装位移传感器和载荷传感器,检测抽油机的工况,实时在线监测抽油机工作参数,及时发现故障并报警,及时维护。本文提出了一种基于rtu的油井远程测控系统的数据采集与传输层设计方案,并将该方案用于实际的井场应用中。
1 油井远程测控系统总体架构
油井远程测控系统的总体架构如图1所示,整个测控系统的组网架构分为现场局域网、企业信息网两大部分。网络拓扑采用分层星型拓扑,是为了在中央测控室的中央测控服务器与现场局域网的各个测控代理服务器的测控对象之间建立更有效的连接方式。每个测控分站设测控代理服务器,实时发送或读取的井场设备数据先经测控代理服务器处理后再并行传输到中央测控服务器,这样既让等级高的设备预警信号得到现场级的及时响应,又减轻了中央测控服务器处理数据的压力。web服务器与中央测控服务器通过数据库服务器连接,这种连接方式使web服务器面向的对象是数据库服务器,有利于web服务器在处理管理用户的指令时与中央监控服务器保持一定的时差,避免了相互动作间的冲突[2]。wwW.133229.COM而所有这些数据来自于代理测控服务器通过井场数据采集与传输层得到的。it目前最常见的数据采集与传输层的工作方式有图1所示的两种情况。其中井场1针对安装多个传感器的油气井,在每个油气井处安装一个rtu从站,能够对该油气井的传感器进行统一管理,并在每个井场设置一个rtu主站,采用主叫/从响应的方式,采集各从站的传感器数据,然后将各从站数据上传到上位机(测控代理服务器);井场2针对安装几个传感器的油气井,在每个井场放置一个rtu,直接将传感器的数据采集后发送到上位机;为了能够兼容这两种工作方式,本文设计了一个基于rtu的数据采集与传输层系统软件。
2 数据采集与传输层硬件基础——rtu
有些油气田由于地理原因,不易铺设电缆,本系统引入物联网技术,加入无线通信zigbee模块,并利用其自组织原理,实现在井场无线自组织寻址和数据传输,可以简单、方便地实现井场实时数据采集,利用这些有效数据指导油田油气生产,提高产量,其构成一个物联网回路,改变了油田生产方式[5]。
油井远程测控系统rtu采用samsung公司的s3c2440a,具有400 mhz的工作频率,主要控制数据流的输入输出;采用具有2 mb存储能力的nor flash (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所示。
3 数据采集与传输层系统软件
3.1 数据采集与传输层通信协议
modbus通信协议已经非常广泛地应用于自动控制和通信领域中,通过此协议,控制器相互之间、控制器经由网络(例如以太网)和其它设备之间可以实现通信。modbus网络属于一种主从网络,允许一个主站和一个或多个从站通信。它采用命令/应答方式,每种命令报文都对应着一种应答报文。网络中的每个从站都必须分配一个唯一的地址。主站发出的命令中含有要求访问的从站地址,只有具有该地址的从站才会对该命令响应。
3.1.1 modbus/rtu通信协议
rtu主/从站串口通信时,通常使用的是modbus/rtu传输模式。在modbus报文rtu帧中,如果两个字符之间的空闲间隔大于1.5个字符时间,那就认为报文帧不完整,此时接收站应该丢弃这个报文。时长至少为3.5个字符时间的空闲间隔将报文帧区分。rtu消息帧的典型格式如表1所列。
表1 modbus/rtu消息帧典型格式
地址设备功能码数据crc校验
8 bits8 bits8n bits16 bits
3.1.2 modbus/tcp通信协议
息,对rtu进行配置,包括主从工作模式选择、ip地址设置、轮询的通信方式选择、传感器的开关状态、继电器输出状态等。若处于主站状态,还可以获取从站配置信息并配置从站,配置成功后,主站开始对各从站进行扫描,并对从站报文进行处理;每扫描完一个从站,主站就对轮询到的数据进行存储;在扫描从站的同时,如果主站传感器和外部继电器处于开状态,会同时采集模拟通道和数字通道的数据并控制外部继电器,采集到的数据存于相应寄存器中,等待上位机请求命令,按照modbus协议将相应数据打包,并上传到上位机。若处于从站,采集模拟通道和数字通道的数据并控制外部继电器论文联盟http://,采集到的数据存于相应寄存器中,并等待rtu主站轮询命令,当轮询到该从站时,按modbus协议打包数据并发送到rtu主站。不管该rtu是主站还是从站,其tcp/ip的服务器程序一直等待系统配置软件的配置信息,当收到配置信息后,将数据存入eeprom并复位系统程序,整个系统设计流程图如图6所示。
从图6中可以同时看到modbus/rtu和modbus/tcp的从站处理函数,在实际应用中,rtu处于modbus/rtu主站时,其modbus/rtu从站的处理任务不运行,modbus/tcp从站的处理任务运行,该状态下rtu可用于图1中井场1的rtu主站和井场2的rtu两种情况;处于modbus/rtu从站时,该状态下rtu可用于图1中井场1的从站情况,以太网服务器任务只等待配置信息。
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位。
pc端的modbus/tcp客户机可向rtu主站发送命令,并读取存于rtu主站输入寄存器的从站数据。当从站的数字输入端接高电平(24 v)时,从modbus poll的对应地址可读取到1,图8所示是modbus/tcp客户机接收到的轮询数据,其中地址500~507为从站1中8通道数字输入端对应的状态值;地址508~515为从站2中8通道数字输入端对应的状态值。经多次测量,均正确无误。
4.2 控制测试
pc端模拟的modbus/tcp客户机向rtu的保持寄存器写入数据,rtu会将对应寄存器的数据输出到对应的数字输出端口,例如地址100对应数字输出端口0,当对地址100置1时,对应指示灯亮,输出高电平。
4.3 数据采集测试
rtu模拟输入端0接一定频率的正弦波,数字输入端接高电平信号,利用modbus poll查询rtu模拟输入端与数字输入端的数据。