基于PPI协议与SIM900A的抽油机监控系统

2014-03-21 12:05左兆辉孙耀杰马晓峥
仪表技术与传感器 2014年4期
关键词:波特率抽油机串口

左兆辉,孙耀杰,马晓峥

(河北工业大学信息工程学院,天津 300401)

0 引言

PLC(programmable logic controller),是可编程逻辑控制器。它是一种数字运算操作的电子系统,专为在工业环境应用而设计,以能适应各种恶劣的运行环境、抗干扰能力强、可靠性高等优点得到广泛的应用。

当前,随着无线通信技术的不断提高,利用无线网络实现抽油机的远程监控是抽油机监控系统发展的重要方向。常见的抽油机无线远程监控系统是以GPRS网络为传输媒介,上位机以PC为核心,通过web方式监控和管理抽油机系统。随着ZigHee技术的发展,基于ZigBee无线组网技术的油田监控系统也在快速发展中。上述两类监控系统尤其适用于所需监控的油井较多的情况,对于油井数量较少的情况,其监控成本较高,不利于小区域油田的监控。

文中所设计的无游梁式抽油机以S7-200 PLC为控制核心。由于PLC不具备键盘、显示器等人机交互设备,不能实时地对控制参数进行修改及显示系统的运行状态,而西门子公司的TD系列的文本显示器价格昂贵且不适于在恶劣环境下工作,因此,该设计开发了一款以廉价的单片机为控制核心的抽油机监控系统,监控人员仅需一部手机便可完成抽油机的远程监测与控制。通过该监控系统,可以对抽油机的运行状况进行实时监控,当抽油机运行出现异常时,通过GSM模块SIM900A进行短信报警,同时实时接收工作人员的指示,并按照指示完成抽油机的远程控制。同时,工作人员在现场可通过控制面板上的功能按钮对抽油机的运行参数进行显示与调整,完成抽油机的智能控制。

与其他无线监控系统相比,系统具有功能可靠、成本低廉、操作简单等优点,适用于小区域油田的监控。

1 监控系统原理

1.1STC12C5A16S2单片机

STC12C5A16S2系列单片机是单时钟/机器周期(1T)的单片机,是高速、低功耗、超强抗干扰的新一代8051单片机。内部集成MAX810专用复位电路,2路PWM,8路高速10位A/D转换,36个通用I/O口,2个与传统8051兼容的通用16位定时器T0和T1和一个独立波特率发生器。具有ISP/IAP功能,无需专用编程器,可通过串口直接下载用户程序。它具有16 K字节的Flash程序存储空间,1 280字节的SRAM,适宜于小型应用系统的开发使用。其工业级标准的适宜工作温度为-40~+85 ℃,能够充分满足恶劣工作环境下的要求。它具有双串口结构,能够同时满足对PLC及SIM900A的串行通信需求,设计选用该处理器作为控制核心[1]。

1.2西门子PPI协议简介

S7-200 PLC具有丰富的网络通讯方式,支持多种通信协议,如点对点接口协议(PPI协议)、多点接口协议(MPI协议)、PROFIBUS协议以及自由端口通信协议等。

在现场应用中,普遍使用自由端口协议与上位机通信。此时,需要编程者首先定义自己的自由通信格式,在PLC中编写代码,利用中断方式控制通信端口的数据收发。采用这种方式,PLC编程调试较为繁琐,占用PLC的软件中断和代码资源,而且当PLC的通信口定义为自由通信口时,PLC的编程软件无法对PLC进行监控,给PLC的程序调试带来不便[2]。

PPI协议是一个主站-从站协议:主站设备将请求发送至从站设备,然后从站设备进行响应。从站设备不发消息,只是等待主站的要求并对要求作出响应。使用PPI协议进行通信时,PLC可以不用编程,而且可读写所有数据区,快捷方便[3]。

西门子PLC上的通信接口是RS485D型连接器,PLC输出RS485信号。STC12C5A16S2单片机使用串行通信接口2,通过RS485芯片MAX485与PLC的通信口相连接,通过PPI协议与PLC进行通信,通过读取与写入特定的存储单元,完成对抽油机的工作状态的显示与调整控制。单片机与PLC的连接方式如图1所示。

图1 STC12C5A16S2与PLC的连接

1.3GSM模块SIM900A

SIM900A是SIMCom推出的紧凑型产品,它属于双频GSM/GPRS模块。SIM900A采用工业标准接口,工作频率为GSM/GPRS 850/900/1 800/1 900 MHz,可以低功耗实现语音、SMS、数据和传真信息的传输。SIM900A仅适用于国内市场,它具有性能稳定、外观精巧、性价比高等诸多优点[4]。

较之TC35i,SIM900A具有更宽泛的工作温度范围,可达40~+85 ℃,有着更强的适应能力,可用于抽油机工作的恶劣环境下。其与STC12C5A16S2单片机的串行通信接口1相连,完成抽油机的工作异常报警及远程监控。连接原理如图2所示。

图2 STC12C5A16S2与SIM900A的连接

2 系统程序设计

2.1STC12C5A16S2与PLC的通信程序设计

PPI协议中上位机与PLC使用主从方式进行通信,上位机作为主设备,PLC作为从设备。上位机按照通信任务,根据PPI协议向PLC发送一定格式的数据通信命令。PLC在接收到该命令后,首先判断该通信命令格式是否正确,如果格式正确则PLC向上位机发出应答信号,这时上位机检测到应答信号之后,再向PLC发送确认命令,PLC收到确认命令后,开始执行命令,完成通信任务。

S7-200 PLC的PPI协议支持9.6、19.2或187.5 kHz的波特率,其数据字节结构为:1个起始位,8个数据位,1个偶校验位,1个停止位。因此,配置STC12C5A16S2的串口2工作在方式3,使用波特率可变的9位UART,由BRT独立波特率发生器作为其波特率发生器。具体配置如下:

void Init_Serial2(void)

{

IP2 |= 0x01;//串口2,最高优先级

IP2H |= 0x01;

AUXR &= 0xf7;//波特率不倍速

S2CON = 0xd0;//9位数据,可变波特率

BRT = 0xFD;//独立波特率发生器重装值

AUXR &= 0xfb;//独立波特率发生器时钟12T

AUXR |= 0x10;//启动独立波特率发生器

IE2 &= 0xFE;//禁止串口2中断

D_R = 0;//MAX485 in Driver Mode

}

文中将上下冲程值、冲次值、滚筒直径及故障码等抽油机的运行状态信息存储到了固定的V存储区单元地址之中,通过对相应的VM存储单元进行读写,完成对抽油机的运行状况的监视与调整。如故障信息存储在VM2200单元地址中,可使用如下通信命令读出该值:68 1B 1B 68 02 00 6C 32 01 00 00 00 00 00 0E 00 00 04 01 12 0A 10 04 00 01 00 01 84 00 44 C0 6E 16。当异常发生时,可通过单片机控制PLC的启停,PLC的停止命令为:68 1D 1D 68 02 00 6C 32 01 00 00 DC DC 00 10 00 00 29 00 00 00 00 00 09 50 5F 50 52 4F 47 52 41 4D 62 16。通过PPI协议,可方便地实现对抽油机的监控[5]。

2.2STC12C5A16S2与SIM900A的通信程序设计

STC12C5A16S2通过控制SIM900A的PWRKEY引脚,配合检测STATUS引脚,可完成SIM900A的上电、下电及重启控制。通过串口1控制SIM900A完成短信的收发,完成抽油机的远程监控。

SIM900A支持多种通信波特率,这里使用9 600 bit/s的波特率,单片机串口1初始化如下:

void Init_Serial1(void)

{

PCON &= 0x7f;//波特率不倍速

SCON |= 0x50;//8位数据,可变波特率

AUXR &= 0xbf;//定时器1时钟为12T

AUXR &= 0xfe;//定时器1为波特率发生器

TMOD &= 0x0f;//清除定时器1模式位

TMOD |= 0x20;//定时器1为8位自动重装

TL1 = 0xFD;//定时初值

TH1 = 0xFD;//定时器重装值

ET1 = 0;//禁止定时器1中断

TR1 = 1;//启动定时器1

ES = 1;//允许串口1中断

EA = 1;//开总中断

}

发送AT指令后,如果SIM900A正确响应,那么将返回“OK”字符给STC12C5A16S2,STC12C5A16S2将接收的字符存入预先开辟好的接收缓冲区中。这样,通过C标准库函数strstr来检测接收缓冲区中是否有指定的字符,依此来判断SIM900A是否正确接收到AT命令,确保通信的正确进行。

通过检测接收缓冲区中是否有“+CMTI”字符串来判断是否接收到短信息。而后根据接收到的信息内容,执行相应的操作[6]。

图3 抽油机监控系统工作流程

2.3系统整机设计实现

系统共配置有4个按键,由单片机的P2.4~P2.7驱动,分别为功能选择键、数值调整键、数码管移位键以及确认键,工作人员通过这些按键完成对抽油机工作状态的检测及调整。通过数码管来显示上下冲程、冲次等信息,并帮助设定冲程值。为防止非工作人员进行非法操作,系统设定了管理员密码,在需要读取或设定抽油机运行参数时,需要先输入管理员密码,只有验证密码输入正确时,才能进行读写操作。系统框图如图3所示。

系统完成5个基本功能:默认功能、上下冲程值的设定、冲次值的读取、滚筒直径的读取以及故障码的读取,系统默认工作在默认功能下,每隔5 s检测1次PLC的故障状态及SIM900A的短信状态,如果PLC出现故障,则通过SIM900A进行短信报警;如果收到新的短消息,则根据短消息的内容完成相应的控制操作。如果30 min内未出现故障,则短信发送当前的施工图数据到工作人员手机上,便于工作人员了解抽油机的工作状态信息。各功能下均有相应的指示灯指示当前处于哪个功能模式下。并且,考虑到可能出现工作人员操作中途离开的情况,程序使用一个计时变量对处于任意一个模式下的时间进行计时,只要5 min内没有按键输入操作,那么程序自动返回到默认功能,以防止非工作人员的非法操作,保障抽油机系统的正常工作。

3 结束语

STC12C5A16S2单片机与S7-200 PLC通过PPI协议进行通信,充分发挥了PLC稳定可靠、抗干扰能力强的优势,省却了PLC通讯程序的编写,使PLC可完全投入到对抽油机的控制之中。通过GSM模块SIM900A,可实现工作人员对抽油机的远程监控,成本低,使用方便。

参考文献:

[1]南通国芯微电子有限公司.STC12C5A60S2系列单片机器件手册.南通:南通国芯微电子有限公司,2011.

[2]何德军,朱冰宇.PPI协议的通信过程解析与应用.电脑编程技巧与维护,2009(7):87-89.

[3]Siemens Aktiengesellschaft.S7-200可编程序控制器系统手册.德国:Siemens Aktiengesellschaft,2008.

[4]SIMCom Wireless Solutions Ltd.SIM900A_Hardware Design_V1.03.上海:SIMCom Wireless Solutions Ltd,2012.

[5]谌国森,马洪霞.Siemens PLC的PPI通信协议的解析与应用.冶金自动化,2009(9):930-933.

[6]SIMCom Wireless Solutions Ltd.SIM900A模块AT命令手册_V1.05.上海:SIMCom Wireless Solutions Ltd,2011.

猜你喜欢
波特率抽油机串口
抽油机井泵效影响因素的确定方法*
油田抽油机组节能技术分析研究
UART 波特率检测电路的FPGA 设计算法与实现
浅谈AB PLC串口跟RFID传感器的通讯应用
CAN 总线波特率自适应程序设计
可以同时应用于不同终端设备的波特率发生器
波特率自适应的CAN驱动在嵌入式Linux下的实现①
21油田丛式抽油机井群集中控制系统的设计
数字电源内部数据传输的串口通信方法实现
USB接口的多串口数据并行接收方法探索