999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

注入站控制系統基于數據庫的報表解決方案研究

2020-01-20 14:01:58賀明慶
中國設備工程 2020年13期
關鍵詞:按鈕數據庫

賀明慶

(大慶油田第一采油廠儀表安裝維修大隊,黑龍江 大慶 163453)

1 工藝流程及主要測控點

目前,油田配注系統普遍采用“集中配置,分散注入”的工藝流程,即一個配置站對應多個注入站。其過程是在配置站將化學藥劑與清水按照一定比例混合,制成符合濃度要求的母液,母液經過熟化后,由外輸泵輸送至各個注入站,在注入站按照每口井的配比方案加入清水,然后,注入井下。

注入站工藝流程為:上游配置站輸送來的母液進入母液儲罐,經柱塞泵增壓后被輸送到母液匯管中,再經過單井母液調節閥進入混合器。注水站來的清水經過單井清水調節器進入混合器,在這里與母液充分混合后被注入井下。

注入站的測控參數主要包括母液儲罐液位、柱塞泵進出口壓力、單井壓力、單井清水流量等。

2 基本原理

采用“VBA+數據庫”的方案實現報表查詢。VBA(Visual Basic for Application)是新一代標準宏語言,是基于Visual Basic for Windows發展而來的,語言簡單易學,功能強大。

VBA是VB的應用程序版本,必須依賴于已有的應用程序,不能獨立運行。目前,WIinCC、FactoryTalk View Studio、Ifix等主流組態軟件都支持VBA編程。

具體過程是利用組態軟件SE的數據記錄功能建立數據記錄模型,將需要的數據采集并存儲在ODBC指定的數據庫中。當操作員查詢報表時,選擇日期后,按下查詢按鈕,即執行VBA代碼,將數據庫中的數據讀出來,并寫入報表模板中,生成指定日期的生產數據報表。

3 報表開發過程

3.1 添加HMI標簽

展開HMI服務器的“HMI標簽”,右鍵點擊“標簽”,點擊“打開”,在打開的標簽窗口中點擊“新建”,在標簽名稱欄中輸入標簽名“DayReport_Date”,類型選擇“字符串”,數據源類型選擇“內存”,點擊“接受”,保存標簽。

3.2 添加ActiveX控件引用

ActiveX控件是一種基于COM接口的控件,通常不能獨立使用,只能在宿主程序中運行,支持COM接口規范的編程環境均可使用它。在報表查詢畫面中,需要使用日歷控件,必須提前在“Visual Basic編輯器”中添加ActiveX控件引用。打開SE,點擊“視圖”,選擇“Visual Basic編輯器”。在打開的窗口中點擊“工具”,選擇“引用”,在列表欄中勾選“MicroSoft Calender control 2007”,點擊“確定”,保存設置。

3.3 創建并組態畫面

打開SE的應用項目瀏覽器窗口,展開HMI服務器的“圖形”,右鍵點擊“顯示”,選擇“新建”,創建畫面“Report”。打開畫面“Report”,添加日歷控件、按鈕、文本、字符串等對象。將日歷控件的“Value”屬性及字符串的表達式屬性與“DayReport_DATE”標簽相關聯,并設置字體、顏色等其他相關屬性。

3.4 設計報表模板

根據生產崗位的需求,采用Micosoft Office Excel 2007設計報表模板“日報表.xlsx”。并將報表模板文件存儲在“D:模板”路徑下備用(此路徑應與VBA代碼中指定的路徑一致)。

3.5 設置數據記錄

展開HMI服務器的“數據記錄”,右鍵點擊“數據記錄模型”,點擊“新建”,打開數據記錄模型的設置窗口。點擊“設置”標簽,選擇“ODBC數據庫”,點擊“ODBC數據源”;選擇“系統數據源”標簽,點擊“新建”;選擇“系統數據源”,點擊“下一步”;選擇“Micosoft Access Driver(?.mdb ?.accdb)”,點擊“完成”;彈出的“ODBC Micosoft Access 安裝”窗口,在“數據源名”欄中輸入“Report”,點擊“創建”按鈕,選擇保存數據庫的位置,在“數據庫名”欄中輸入“Report”,點擊“確定”。點擊“創建表”標簽,在數據庫中創建表“FloatTable”“StringTable”“TagTa ble”。點擊“路徑”標簽,勾選“啟用ODBC備用路徑”。點擊“文件管理”標簽,設置清除ODBC數據庫中保存舊記錄的天數。點擊“記錄觸發器”標簽,勾選“周期性”,根據需求,在“間隔”欄中設置數據采集周期。點擊“模型中的標簽”標簽,添加需要記錄的數據標簽。

3.6 編制 VBA程序

(1)通用中代碼

Option Explicit

Public MyTagGroup As TagGroup

Dim sDateTag As Tag

Public gS_DBPath As String

Public gO_Connection As ADODB.Connection

(2)頁面初始化代碼

Private Sub Display_AnimationStart()

gS_DBPath = “Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:dataDatabase1.accdb;”

Set gO_Connection = New ADODB.Connection

gO_Connection.CursorLocation = adUseClient

gO_Connection.Open gS_DBPath

If MyTagGroup Is Nothing Then

Set MyTagGroup=Application.CreateTagGroup(Me.AreaName)

MyTagGroup.Add “DayReport_DATE”

Set sDateTag = MyTagGroup.Item(“DayReport_DATE”)

If sDateTag.Value = “” Then

sDateTag.Value = Format(Now, “yyyy-mm-dd”)

End If

End If

End Sub

(3)查詢按鈕部分代碼

Private Sub 按鈕 3_Released()

Dim sSql As String

Dim rsData As New ADODB.Recordset

Dim i As Integer

Dim ExcelID As Excel.Application

Dim rptName As String

Dim sDate As String

If sDateTag.Value =“”Then

sDate = Format(Now, “yyyy-mm-dd”)

Else

sDate = sDateTag.Value

End If

Set ExcelID = New Excel.Application

ExcelID.Workbooks.Open (“d: 模 板 日 報 表.xlsx”)

ExcelID.Worksheets(1).Activate

sSql = “select ? from tagtable inner join floattable on tagtable.tagindex = floattable.tagindex where tagtable.tagName like ‘%MBFT%ACC%’ and floattable.dateandtime in (select min(dateandtime) from floattable where floattable.dateandtime between #” +CStr(DateAdd(“d”, -1, sDate)) + “ 10:00:00# and #+ CStr(DateAdd(“d”, -1, sDate)) + “ 10:05:00#)order by tagtable.tagindex desc”

rsData.Open sSql, gO_Connection, adOpenKeyset,adLockReadOnly

For i = 0 To rsData.RecordCount - 1

ExcelID.Cells(i + 7, 11) = Format(rsData.Fields(“val”), “###0.00”) ‘ 將 結 果 集 記 錄 寫 入Excel

rsData.MoveNext

Next i

rsData.Close: Set rsData = Nothing

ExcelID.DisplayAlerts = False

rptName =“D:data”+Format(DateAdd(“d”,1, sDate), “yyyy-mm-dd”)+“日報表 .xlsx”

ExcelID.ActiveWorkbook.SaveAs rptName

ExcelID.ActiveWorkbook.Close

ExcelID.Quit: Set ExcelID = Nothing

End Sub

4 結語

采用“VBA+數據庫”的方式實現報表功能,比單純使用VBA開發報表的方式更為簡單靈活,但應當注意的是,采用Office Access數據庫,當數據記錄達到數萬條時,查詢效率較低,有時需要一兩分鐘,甚至出現系統無響應的情況。為了提高查詢效率,也可以采用Micosoft SQL數據庫,原理相同,只需對數據庫連接的代碼略作改動,并添加相應的ODBC數據源即可,此處不再贅述。

猜你喜歡
按鈕數據庫
這些按鈕能隨便按嗎?
哪個是門鈴真正的按鈕
當你面前有個按鈕
數據庫
財經(2017年15期)2017-07-03 22:40:49
死循環
數據庫
財經(2017年2期)2017-03-10 14:35:35
數據庫
財經(2016年15期)2016-06-03 07:38:02
數據庫
財經(2016年3期)2016-03-07 07:44:46
數據庫
財經(2016年6期)2016-02-24 07:41:51
內心不能碰的按鈕
商業評論(2014年9期)2015-02-28 04:32:41
主站蜘蛛池模板: 五月六月伊人狠狠丁香网| 色综合天天综合中文网| 狠狠综合久久久久综| 香蕉久久国产精品免| 在线精品视频成人网| 在线观看免费人成视频色快速| 久久亚洲国产最新网站| 国产免费a级片| 69视频国产| 国产理论精品| 五月婷婷欧美| 天堂在线www网亚洲| 亚洲视频a| 五月婷婷综合在线视频| 色噜噜狠狠色综合网图区| 国产精品久久精品| 91视频99| 青草视频网站在线观看| 国产亚洲欧美在线视频| 久草性视频| 国产精品手机视频一区二区| 国产午夜人做人免费视频| 国产精品手机视频| 国产成人三级| 国产在线观看第二页| 好紧太爽了视频免费无码| 亚洲欧美日韩精品专区| 五月天福利视频| 日韩无码精品人妻| jijzzizz老师出水喷水喷出| 中文天堂在线视频| 亚洲精品国产自在现线最新| 中文字幕波多野不卡一区| 91啪在线| 日韩av在线直播| 免费啪啪网址| 国产免费好大好硬视频| 久久人妻系列无码一区| 激情乱人伦| 一级毛片高清| 国产浮力第一页永久地址| 精品久久久久久久久久久| 97超爽成人免费视频在线播放| 国产毛片高清一级国语 | 国产精品爆乳99久久| 亚洲aⅴ天堂| 亚洲 欧美 偷自乱 图片| 国产一级毛片yw| 亚洲人成网站在线观看播放不卡| 免费观看成人久久网免费观看| 婷婷色一区二区三区| 国产精品大白天新婚身材| 老司机午夜精品视频你懂的| 一级毛片在线免费看| 71pao成人国产永久免费视频| 日韩A∨精品日韩精品无码| 欧美视频在线观看第一页| 国产裸舞福利在线视频合集| 亚洲中文精品人人永久免费| 玖玖免费视频在线观看| 精品亚洲国产成人AV| 91无码视频在线观看| 日韩一区二区三免费高清| 特级毛片免费视频| 久久精品66| 成年免费在线观看| 国产一二视频| 亚洲精品国产综合99久久夜夜嗨| 成人va亚洲va欧美天堂| 国产一区自拍视频| 日韩精品成人在线| 四虎影视库国产精品一区| 婷婷午夜天| 亚洲欧美成aⅴ人在线观看| 青青操国产| 国产欧美网站| 国产一区二区三区日韩精品| 免费女人18毛片a级毛片视频| 亚洲成a人片| 亚洲精品在线影院| 国产区网址| 2021国产v亚洲v天堂无码|