基于VB與Access數(shù)據(jù)庫的InTouch報(bào)表系統(tǒng)的研究與實(shí)現(xiàn) 精靈論文_第1頁
基于VB與Access數(shù)據(jù)庫的InTouch報(bào)表系統(tǒng)的研究與實(shí)現(xiàn) 精靈論文_第2頁
基于VB與Access數(shù)據(jù)庫的InTouch報(bào)表系統(tǒng)的研究與實(shí)現(xiàn) 精靈論文_第3頁
基于VB與Access數(shù)據(jù)庫的InTouch報(bào)表系統(tǒng)的研究與實(shí)現(xiàn) 精靈論文_第4頁
基于VB與Access數(shù)據(jù)庫的InTouch報(bào)表系統(tǒng)的研究與實(shí)現(xiàn) 精靈論文_第5頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于 VB 與 Access 數(shù)據(jù)庫的 InTouch 報(bào)表系 統(tǒng)的研究與實(shí)現(xiàn)鄒孝付1,杜崗2,韓芳成35(1. 中國礦業(yè)大學(xué)信息與電氣工程學(xué)院,江蘇 徐州 221116;2. 連云港職業(yè)技術(shù)學(xué)院,江蘇 連云港 222006;3. 神華寧煤雙馬煤礦籌建處機(jī)電處,銀川 750000) 摘要:本文以河北省岳城水庫自動(dòng)化監(jiān)控系統(tǒng)為工程背景,研究了基于 VB 與 Access 的 Intouch 報(bào)表系統(tǒng)的開發(fā)。針對(duì) Intouch 報(bào)表功能的不足和相關(guān)資料在這方面介紹的不多、不10細(xì)的情況,本文詳細(xì)介紹報(bào)表制作的細(xì)節(jié)和工程應(yīng)用;實(shí)際工程的成功應(yīng)用證明了此種報(bào)表 開發(fā)的正確。關(guān)鍵詞:VB;Access

2、;Intouch;報(bào)表;PLC中圖分類號(hào):TP2915Study And Implement Of InTouch Reporting System BasedOn VB And Access DatabaseZOU Xiaofu1, DU Gang2, HAN Fangcheng3(1. School of Information and Electrical Engineering, China University of Mining andTechnology,Jiangsu Xuzhou 221116;202. Lianyungang Technical College, Jiang

3、su Liangyungang 222006;3. Electromechanical Department of Shuangma Coal-mine in Shenhua Ningxia Coal-mine, Yinchuan 750000)Abstract: This paper taking Yuecheng reservoir automation monitoring system for engineeringbackground, study a development of InTouch reporting system based on VB and Access dat

4、abase .25This paper introduce detailedly in the details of report draft and engineering applications contraposed the shortcomings of InTouch reporting system and the fewer and superficial relative information . The actual engineering of successful application prove this report development is correct

5、.Key words: VB;Access;Intouch;report forms;PLC300引言隨著工業(yè)自動(dòng)化的發(fā)展,組態(tài)軟件和 PLC 得到了很大的應(yīng)用,組態(tài)軟件的實(shí)用性和易 操作性也越來越得到工程師的重視。Intouch 作為業(yè)界組態(tài)軟件的領(lǐng)跑者在數(shù)據(jù)報(bào)表這方面 做的很不夠,這令很多工程師感到困惑,不清楚具體怎么去實(shí)現(xiàn) Intouch 報(bào)表,本文就以工 程為背景,詳細(xì)介紹 Intouch 報(bào)表的制作與實(shí)現(xiàn)。351工程背景介紹河北省岳城水庫是國家的一個(gè)大型水庫,但年代久遠(yuǎn),設(shè)備落后、老化,對(duì)其進(jìn)行自動(dòng) 化改造已不可避免。系統(tǒng)需要控制 18 道閘門,采用兩個(gè)控制柜,每個(gè)控制柜采用施奈德的

6、 Premium PLC,并通過現(xiàn)地觸摸屏和遠(yuǎn)方監(jiān)控室的工控機(jī)對(duì)系統(tǒng)進(jìn)行監(jiān)控。工控機(jī)采用 Intouch 組態(tài)軟件,但由于 Intouch 報(bào)表功能不足,因此就需要通過 VB 開發(fā)基于本地 Access40數(shù)據(jù)庫的報(bào)表系統(tǒng),這一報(bào)表系統(tǒng)的原理如圖 1:作者簡介:鄒孝付(1987-),男,碩士,控制理論與控制工程專業(yè). E-mail: hpuwindy圖 1 報(bào)表原理圖Fig 1 Statements principle diagram452報(bào)表功能簡介系統(tǒng)共需控制 18 到閘門,采集 110 個(gè)模擬量,由于采集的量多,報(bào)表的操作必須簡單 高效。此系統(tǒng)的報(bào)表實(shí)現(xiàn)的功能:對(duì)每一道閘門的模擬量進(jìn)行記

7、錄,能夠查詢某一天、某一 月、某一年的記錄;對(duì)上游水位進(jìn)行記錄,能夠查詢某一天、某一月、某一年的水位最大、 最小值和產(chǎn)生最值的時(shí)間;報(bào)表的打印。報(bào)表系統(tǒng)結(jié)構(gòu)如圖 2:50圖 2 報(bào)表結(jié)構(gòu)圖Fig 2 Statements structure diagram3Intouch 與 Access 數(shù)據(jù)庫的鏈接553.1 單閘門數(shù)據(jù)的記錄打開 Access,創(chuàng)建一個(gè)名為“數(shù)據(jù)報(bào)表.MDB”的數(shù)據(jù)庫1;建立一個(gè)表,命名為“閘 門 1 報(bào)表”;點(diǎn)擊“開始”-“管理工具”-“數(shù)據(jù)源(ODBC)”,在“用戶 DSN”項(xiàng)點(diǎn)擊 添加,選擇“Microsoft Access Driver(*.mdb)”;輸入“數(shù)據(jù)

8、源名”為“datareport1”和“說 明”為“datareport2”,點(diǎn)擊“選擇”,選擇剛才建立的數(shù)據(jù)庫。60打開 Intouch,點(diǎn)擊左邊列表中的“SPC”,再雙擊“數(shù)據(jù)庫”,選擇“ODBC 數(shù)據(jù)源” 為“datareport1”并保存,最后點(diǎn)擊“驗(yàn)證”,如果“連接狀態(tài)”為綠色則連接正常。本報(bào)表實(shí)現(xiàn)單閘門數(shù)據(jù)記錄的要求是:如果數(shù)據(jù)有變化則記錄,否則每小時(shí)記錄一次。65707580859095100在 Intouch 的“腳本”-“應(yīng)用程序”中的“啟動(dòng)時(shí)”輸入語句“code=SQLConnect(ConnectionId, DSN=”datareport1”);”這條語句實(shí)現(xiàn)在 Into

9、uch 啟動(dòng)時(shí)通過 ODBC 建立與 Access 數(shù)據(jù)庫的鏈 接??赏ㄟ^判斷“code”的值來查詢鏈接與否,為零則鏈接正常,否則鏈接有誤2。點(diǎn)擊“SQL 訪問管理器”-“綁定列表”,新建一個(gè)名為“datareport3”的綁定列表,在 這里對(duì)數(shù)據(jù)庫中的列與 Intouch 標(biāo)記名字典中的標(biāo)記進(jìn)行連接;再點(diǎn)擊“表模板”,命名為 “datareport4”,在這里定義數(shù)據(jù)庫中每一列數(shù)據(jù)對(duì)應(yīng)的數(shù)據(jù)類型:時(shí)間類型的為“date/time”, 數(shù)字類型的為“data”,字符串類型的為“text”。為了實(shí)現(xiàn)數(shù)據(jù)改變時(shí)記錄和數(shù)據(jù)不變時(shí)每小時(shí)記錄一次的功能,在 Intouch 的“腳本”- “數(shù)據(jù)改變”中對(duì)

10、某些標(biāo)記名和$Hour 進(jìn)行標(biāo)記并輸入腳本程序“code1=SQLInsert(Connecti onId,”閘門 1 報(bào)表”,”datareport3”),其中 ConnectionId 是 Intouch 啟動(dòng)時(shí)與數(shù)據(jù)庫建立的鏈接 腳本返回的句柄,“閘門 1 報(bào)表”是 Access 中的表的名字,“datareport3”是 Intouch 中的 綁定列表的名字。這句腳本的功能是當(dāng)數(shù)據(jù)改變或每小時(shí)把 Intouch 中的數(shù)據(jù)按照綁定列表 中的對(duì)應(yīng)關(guān)系寫入鏈接成功的數(shù)據(jù)庫中的表中,從而達(dá)到記錄的功能。3.2 上游水位的日、月、年最值的記錄在 Intouch 中的數(shù)據(jù)改變腳本中標(biāo)記上游水位,輸

11、入如下腳本:IF shangyoushuiwei > shuiweidaymaxTHEN shuiweidaymax=shangyoushuiwei ; riqidaymax = $DateString;shidaymax = $Hour; fendaymax = $Minute; miaodaymax = $Second;ENDIF;此段腳本實(shí)現(xiàn)對(duì)上游水位最大值和發(fā)生最大值時(shí)間的記錄,由于上游水位實(shí)際值大于 零,故當(dāng) Intouch 啟動(dòng)時(shí)上游水位發(fā)生改變執(zhí)行此段腳本。IF shangyoushuiwei<shuiweidayminTHENshuiweidaymin=shangy

12、oushuiwei ; riqidaymin = $DateString; shidaymin = $Hour;fendaymin = $Minute;miaodaymin= $Second; ENDIF;由于 內(nèi)存 變 量 shuiweidaymin 在 Intouch 啟動(dòng)時(shí) 初始 值是 零, 不可 能大 于shangyoushuiwei,故此段腳本永遠(yuǎn)不被執(zhí)行,故需要在起始腳本中另 i 變量為 1,并在上游 水位改變腳本中輸入如下腳本:IF i=1THENshuiweidaymin = shangyoushuiwei;i=0; ENDIF;這樣當(dāng) Intouch 啟動(dòng)后,shangyou

13、shuiwei 值發(fā)生變化執(zhí)行上面的腳本,從而把此時(shí)的上游水位的值賦予內(nèi)存變量 shuiweidaymin。 在$Day 數(shù)據(jù)改變腳本中輸入如下腳本:code2 = SQLInsert( ConnectionId, "水位最大值日?qǐng)?bào)表", "datareport5" );105110115120125130135140145IF code2 = 0THEN shuiweidaymax = shangyoushuiwei; riqidaymax = $DateString; shidaymax=$Hour;fendaymax = $Minute;miaod

14、aymax = $Second; ENDIF;code3 = SQLInsert( ConnectionId, "水位最小值日?qǐng)?bào)表", "datareport7" ); IF code3 = 0THENshuiweidaymin = shangyoushuiwei; riqidaymin= $DateString; shidaymin=$Hour;fendaymin = $Minute; miaodaymin = $Second; ENDIF;此段腳本實(shí)現(xiàn)水位最值和產(chǎn)生最值時(shí)間的記錄,當(dāng)水位不變化時(shí),上游水位變化腳本中的程序不會(huì)執(zhí)行,此時(shí)需要對(duì)產(chǎn)生最值的

15、時(shí)間進(jìn)行刷新,上面 IFTHEN 中的腳本實(shí)現(xiàn)時(shí)間 刷新功能。上游水位月、年最值數(shù)據(jù)記錄原理與上游水位日最值數(shù)據(jù)記錄原理一樣,改變一 些變量即可。4VB 從 Access 中讀取數(shù)據(jù)通過前面的步驟,Intouch 實(shí)現(xiàn)了與 Access 數(shù)據(jù)庫的鏈接并記錄相關(guān)數(shù)據(jù)到數(shù)據(jù)庫中的 表中,現(xiàn)在通過 VB 從 Access 中讀取數(shù)據(jù)。新建一個(gè) VB 工程,建立窗體。點(diǎn)擊“工程”-“添加 Data Environment”,此時(shí)在右邊 的設(shè)計(jì)器下添加了一個(gè) Data Environment1 控件,雙擊 Data Environment1,再右擊 Connection1 選擇“屬性”-“Microso

16、ft Jet 4.0 OLE DB Provider”,點(diǎn)擊“下一步”選擇剛才創(chuàng)建的 Access 數(shù)據(jù)庫。再次右擊“Connection1”-“添加命令”,右擊出現(xiàn)的 Command1 選擇“屬性”- “SQL 語句”,輸入“Select * From 閘門 1 報(bào)表 Where riqi=?”。此語句實(shí)現(xiàn)從 Access 數(shù)據(jù)庫的“閘門 1 報(bào)表”表中讀取“riqi=?”的所有數(shù)據(jù),“riqi”是“閘門 1 報(bào)表”的日 期列。繼續(xù)添加“Data Report”,把“Data Environment1”中的列拖拽到“Data Report1”中, 形成報(bào)表的外觀3。在窗體中添加按鈕和文本輸入

17、框,雙擊按鈕輸入如下語句:Private Sub Command1_Click() Dim ca As StringIf DataEnvironment1.rsCommand1.State <> adStateClosed ThenDataEnvironment1.rsCommand1.CloseEnd Ifca = "select * from 閘門 1 報(bào)表 where riqi like '%" & Text1.Text & "%' " DataEnvironment1.Commands("Co

18、mmand1").CommandText = ca DataReport1.RefreshDataReport1.ShowEnd Sub現(xiàn)在可通過在 Text1 中輸入日期查詢閘門 1 報(bào)表,例如輸入“2011-1-1”、“2011-1”、150155160“2011”可查詢閘門 1 數(shù)據(jù)的日、月、年記錄。另外 Text1 中輸入空白,直接點(diǎn)擊按鈕可查 詢閘門 1 數(shù)據(jù)的所有記錄4。圖 3 單閘門報(bào)表查詢界面Fig 3 Inquires interface of singular gates statements對(duì)于上游水位最值的日、月、年的查詢的思路與上面完全一樣,可繼續(xù)填加“DataEnvironment”和“Data Report”,

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論