黄安贻 杨中豪
摘要:针对目前油田开发与生产现状,设计一款面向油田现场的RTU系统。介绍了以STM32为核心、内嵌uc/os-ii多任务实时操作RTU系统设计方案,同时对多通道数据输入输出、RS232、RS485等功能模块的硬件设计和数据传输采用的Modbus通信协议进行了描述。
关键词:RTU;油田开发;STM32;ARM
DOIDOI:10.11907/rjdk.151452
中图分类号:TP319
文献标识码:A 文章编号文章编号:16727800(2015)008011802
0 引言
油田被称为“没有围墙的工厂”,油井、注水井星罗棋布且大部分在人烟稀少的地方,油田单位的经济效益与抽油机以及注水泵的正常运行息息相关。生产单位需要对采油井和注水井工作状态实时监控,维修工的定期检查、维护必不可少 [1]。随着油田现代化管理的发展,迫切需要一种全天候、24小时无人值守的监控手段,以保证采油井和注水井的正常工作。本文设计了一款基于ARM的RTU系统,动态监测油田多种生产数据并实时上传数据,对于有效监控油田工作状况,提高油田生产效率具有重要意义。
1 RTU系统设计
基于STM32的RTU系统结构如图1所示。系统采用STM32为CPU,主要包括模拟量输入模块及输出模块、数字量输入模块及输出模块、RS232通信模块、RS485通信模块、存储器模块、电源模块、显示模块等。数据传输采用Modbus通信协议,采用us/osii操作系统作为嵌入式系统。
设计方法如下:对采集到的模拟量和数字量,首先通过不同的信号调理电路进行处理,再进入到CPU中,进行A/D采样、软件滤波,并对不同的参数根据相应的算法进行计算,最终将处理后的数据通过不同的通讯方式向上级RTU或者上位机系统传输,并接收控制信号,实现模拟量和数字量的输出。
图1 RTU系统结构
1.1 CPU选型
油田工业现场这一特殊环境决定了CPU要有足够的可靠性和低功耗。ARM系列处理器性能高、功耗低,恰恰符合本设计要求。本系统采用ARM9系列的STM32F103VET6处理器,该处理器使用高性能的ARM CortexM3 32位的RISC内核,工作频率为72MHz,该CPU具有以下性能:①内置高速存储器,具有高达128K字节的Flash和20K字节的SRAM;②丰富的增强I/O端口,包含2个12位ADC、3个通用16位定时器和一个PWM定时器;③先进的标准通信接口:2个I2C和SPI、3个USART、一个USB和一个CAN;④供电电压2.0-3.6V,一系列省电模式保证了低功耗应用要求[2]。
1.2 模拟量输入输出模块
RTU具有8路模拟量输入和4路模拟量输出,单路的模拟量输入和输出电路原理如图2所示。8个模拟量输入通道均可跳线到0~20mA电流模式。电压模式时,增益通过软件设置。4路模拟量输出通道提供4~20mA电流信号。在前端加入适当的输入调节电路,包括精密电阻、滤波电容、瞬态抑制二极管等元器件。
图2 单路模拟量输入输出原理
模拟量输出采用OPA333芯片。OPA333是非常优异的单电源轨至轨运算放大器,具有2.7~5.5V的宽工作电压,经过测试电压输出最低为30uV,最高为VCC30uV。OPA333芯片性能优异,电路具良好的稳定性和精确性。DACOUT从STM32的DAC1或DAC2输出,经滤波后进入运放,进行1∶1缓冲,后经晶体管放大电流,由接地电容进行去抖处理,同时在接地电阻上进行电压检测,4~20mA信号由AN_OUT+/AN_OUT-输出。
1.3 数字量输入输出模块
在数字量输入输出电路中采用了光耦隔离,即采用光电耦合器进行隔离,发光二极管把输入的电信号转换为光信号,光信号经过光敏管转换为电信号输出。因没有直接的电气连接,所以在传输信号中隔离了干扰。数字量输入和数字量输出电路原理如图3所示。
图3 单路数字量输入输出原理
数字量输入时,在前端加入适当的电阻、滤波电容和发光二极管等元件,然后和光耦隔离器相连,选取恰当的与光耦串联的分压电阻、并联的分流电阻,通过调整其电阻值,得到适当的输入电压阈值。数字量输入电压通过光耦隔离后转换为合适的电压值,传输至STM32。
在数字量输出方面,采用继电器输出,光耦隔离器后接有NPN型三极管。当集电极电流不再随着基极电流的增大而增大时,该三极管进入饱和状态。发射极与集电极间电压非常小,三极管导通,后面的继电器通电,开关闭合;当基极电流为零时,三极管的集电极电流也变为零。三极管截止,开关随着继电器的断电而断开。这样,通过开关闭合和断开就实现了信号输出。
1.4 通信模块
RTU具有多种通信方式,如RS232通信和RS485通信等。RTU设计有一个RS232通信接口和一个RS485通信接口,分别采用Spiex公司的SP3232和SP3485作为RS232和RS485的收发器。SP3232满足EIA/TIA232和V.28/V.24通信协议,其片内电荷泵电路为Sipex所独有,可从3~5.5V的电源电压产生2*Vcc的RS232电压电平。SP485同时满足RS485和RS422串行协议,具有3.3V的工作电压以及10Mbps数据传输速率。
2 RTU软件设计
2.1 Modbus RTU协议
RTU系统内嵌有uc/osii多任务实时操作系统,以及用于数据传输的Modbus通讯协议。uc/osii是一个开放式的微内核,对处理器和硬件时钟进行抽象和封装,但没有提供其它硬件抽象层,这使得uc/osii具有很强的可移植性[3]。此外,它具有空间小、实时性强和执行效率高等特点,是专为嵌入式系统设计的操作系统。Modbus是一种广泛应用于自动控制和通信领域的通信协议,通过该协议,控制器之间、控制器与其它设备(经由网络)可以进行通信[4]。Modbus通信协议规定了2种传输方式:RTU和ASCII码模式。RTU模式规定在消息中,由两个4bits的16进制字符组成一个字节,数据校验采用CRC校验;ASCII码模式则规定了每个字节包含两个ASCII码,采用LRC进行数据校验。
2.2 系统软件设计
Modbus RTU协议是主从协议,即主节点和一个或多个子节点共同连接在一条串行总线。Modbus主站和从站为两个独立模块,从站主要用于处理Modbus主站功能请求,通过从站服务实现。从站RTU在进行初始化后,需要进行一系列的配置才能正常工作,通过RTU启动任务Task0实现。RTU启动任务Task0后,进入存储器(EEPROM)中读取数据,获取配置信息;根据配置信息完成各种硬件驱动的初始化,然后创建数字量输入任务Task1、数字量输出任务Task2、模拟量输入任务Task3、模拟量输出任务Task4、读保持寄存器配置任务Task5;然后进行任务调度,进行高优先级任务切换并实时响应外部中断。RTU初始任务Task0流程如图4所示。
3 结语
本文从硬件和软件两个方面阐述了基于ARM的油田RTU系统设计,通过对注水井、油井内的油田生产数据,如油压、水压、流量、载荷、位移、液位等进行实时监测,实现对注水井、油井内生产设备的有效控制,能有效提高油田的生产效率,实现油田的增产、稳产。
参考文献:
[1] 王权.油田信息化的新阶段-数字化油田时代[J].数字化工,2004(9):46.
[2] STM32F103X DATASHEET[EB/OL]. http://wenku.baidu.com/view/e095462abd64783e09122b3f.html.
[3] [美]拉伯罗斯.嵌入式实时操作系统μC/OSII [M].邵贝贝,译.第2版.北京:北京航空航天大学出版社,2003:3541.
[4] 孙月平,赵德安,曹莉.基于Modbus的智能工业控制器监控系统设计[J].微计算机信息:测控自动化,2008(24):4143.
(责任编辑:杜能钢)