长庆油田油井一级工况预警实现短信提示功能的探讨

时间:2022-05-13 12:49:09

长庆油田油井一级工况预警实现短信提示功能的探讨

【摘要】长庆油田油井工况分析系统通过对功图的数据采集与分析为油田管理和决策提供了有效的技术手段。油井工况预警能够在第一时间反映油井工况情况。本文着重介绍了如何通过VB编程实现功图诊断一级预警(隐形躺井)向手机短信发送预警信息的功能拓展及深度应用。

【关键词】VB编程 短信 一级预警 邮箱

1 需求分析

油水井生产工况分析页面中的一级报警内容包括固定凡尔失灵、拉杆断脱或游动凡尔常开或柱塞未进泵筒、抽油杆断脱、卡泵、气锁、严重脱筒,因此一级报警对修井、地质及油井产量稳定的意义重大。但人工查询又费时费力。因此,通过获取工况分析中的一级报警内容,使用VB程序短信形式发送到指定手机,为技术员及时获取一级报警信息提供了一个新型选择。

2 程序步骤与设计

2.1 发送手机短信优缺点

优点: 经济:信息发送接收免费并且不需要添置任何硬件。接收方便:信息通过随身携带的手机来接收。针对性强:信息发送后,只需极短时间即可传送到目标。

省时高效:同一信息可同时向多个目标发送。

缺点:接收手机需注册一个信箱。

2.2 程序步骤

Vb加入webbrowser控件访问一级报警页面,提取页面报警内容用以下代码实现。

WebBrowser1.Navigate "http://10.78.144.7/Monitor/FaultLevelInfo.aspx?organlevel=3&organ=%d0%c2%d5%af% d7%f7%d2%b5%c7%f8&from=" & Date &"&faultlevel=1"。

访问一级报警网页。

Text1.Text = ""

For i = 1 To WebBrowser1.Document. getElementsByTagName("tr").Length - 1

If WebBrowser1.Document. getElementsByTagName("tr")(i). className = "item" Then

Text1.Text = Text1.Text & WebBrowser1. Document.getElementsByTagName("tr")(i).innerText & vbCrLf

此方法访问一级报警的网页就可以得到想要的信息,获取到一级报警页面表格信息如下:”采油三厂新寨作业区吴一联旗15-282013-1-19 23:14:002013-1-21 5:02:35抽油杆断脱详细信息”

Visual Basic 4.0以上的版本编制具有收发电子邮件功能的VB程序,利用电子邮件收发功能的核心控件:MAPI会话控件和MAPI消息控件实现短信控制。MAPI会话控件用于建立和控制一个Microsoft Mail会话,MAPI消息控件用于创建和收发邮件消息。此外,程序必须运行在采用遵从MAPI的消息系统(如:Microsoft Exchange、Microsoft Mail、Outlook等)环境中。

在开始编程之前,首先需要将MAPI控件加入VB工具箱,在VB菜单栏中选择Tools菜单项中的Custom Controls命令,调出””Custom Controls””对话框,在其中的””Available Controls””列表框中选中””Microsoft MAPI Controls””表项,然后按””OK””命令按钮退出该对话框。此后,工具箱中将新添两个图标,这就是MAPI会话控件和MAPI消息控件的图标。

根据用户输入信息组成邮件,然后使用MAPI消息控件的Send方法将邮件发出。编程步骤如下:

(1)新建一个VB项目。

(2)将缺省窗体Form1的Caption属性设置为””发送邮件””。

(3)将MAPI控件加入VB工具框。

(4)在Form1中加入一个MAPI会话控件MAPISession1和一个MAPI消息控件APIMessages1。

(5)在Form1中加入三个文本框控件,将它们的Name属性分别设置为txtSendTo、txtSubject、txtMessage,并将txtMessage的Multiline属性设置为True。这三个文本框控件将分别用于填写邮件的收件人、主题和内容。

(6)在Form1中加入三个标签控件,将它们的Caption属性分别设置为””收件人””、””主题””和””内容””,并将它们放在合适的位置用以标注相应的文本框控件。

(7)在Form1中加入一个命令按钮控件,将其Caption属性和Name属性分别设置为””发送””和””cmdSend””。

(8)将下列代码加入Form1的Form_ Load事件:

Private Sub Form_Load()

MAPISession1.SignOn

End Sub

(9)将下列代码加入Form1的Form_ Unload事件:

Private Sub Form_Unload(Cancel As Integer)

MAPISession1.SignOff End Sub

(10)将下列代码加入cmdSend的Click事件:

Private Sub cmdSend_Click()

With MAPIMessages1

.MsgIndex = -1

.RecipDisplayName = txtSendTo.Text.MsgSubject = txtSubject.Text

.MsgNoteText = txtMessage.Text

.SessionID = MAPISession1.SessionID.Send

End With End Sub

最后加入一个循环去刷新一级报警页面获取报警信息进行比对是最新的报警信息则发送至指定信箱,本程序使用139的信箱提供免费的手机提醒业务,即收到VB程序发送的报警邮件后139信箱短信形式自动发送至开通信箱的用户手机号码上,旗15-28一级预警故障名称和时间等详细信息。

3 总结

该工具的使用深度应用了生产指挥系统平台信息,拓展了数字化功能,优化简化了日常上网查看报警信息的工作,节约了时间,提高了修井,地质等工作效率。

参考文献

[1] 李湘江,彭建.基于VB的实时数据采集设计[J]. 微计算机信息,2003(10)

[2] 李化斌,姚伟明,李峰,李录兵,孙明,宁莹.油井功图计量系统在靖安油田的应用[J]. 石油化工应用,2010(04)

上一篇:二氧化碳的俘获与存储技术研究 下一篇:裸眼测井技术的发展分析