組態(tài)軟件操作指南 與數(shù)據(jù)庫連接_第1頁
組態(tài)軟件操作指南 與數(shù)據(jù)庫連接_第2頁
組態(tài)軟件操作指南 與數(shù)據(jù)庫連接_第3頁
組態(tài)軟件操作指南 與數(shù)據(jù)庫連接_第4頁
組態(tài)軟件操作指南 與數(shù)據(jù)庫連接_第5頁
已閱讀5頁,還剩6頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

第八章 與數(shù)據(jù)庫連接本章內(nèi)容& 創(chuàng)建數(shù)據(jù)源及數(shù)據(jù)庫& 創(chuàng)建表格模板& 創(chuàng)建記錄體& 對(duì)數(shù)據(jù)庫的操作& 數(shù)據(jù)集函數(shù)在關(guān)系庫中的應(yīng)用概述本章我們將講解如何將閥門的狀態(tài)變化記錄到數(shù)據(jù)庫中并進(jìn)行查詢。數(shù)據(jù)庫我們選擇Access數(shù)據(jù)庫,記錄的內(nèi)容包括:日期、時(shí)間、閥門描述、閥門狀態(tài)四個(gè)字段。我們利用KingSCADA的SQL訪問功能來實(shí)現(xiàn)。KingSCADA SQL訪問功能實(shí)現(xiàn)KingSCADA和其他外部數(shù)據(jù)庫之間的數(shù)據(jù)傳輸。提供2種訪問方式:一種是記錄體的方式,即變量和數(shù)據(jù)庫表中的字段建立綁定關(guān)系;一種是數(shù)據(jù)集方式。記錄體方式就是通過記錄體配置項(xiàng),實(shí)現(xiàn)把數(shù)據(jù)庫里面的字段和KingSCADA的變量建立綁定關(guān)系。綁定后,可以通過SQL插入或更新函數(shù)將綁定變量插入或更新到數(shù)據(jù)庫的對(duì)應(yīng)字段中;也可以通過SQL查詢函數(shù)將數(shù)據(jù)庫中對(duì)應(yīng)字段數(shù)據(jù)查詢并保存到綁定變量中,實(shí)現(xiàn)KingSCADA和關(guān)系數(shù)據(jù)庫的數(shù)據(jù)交互。記錄體方式只能在KingSCADA服務(wù)器端應(yīng)用。數(shù)據(jù)集方式就是通過KingSCADA提供的一系列數(shù)據(jù)集函數(shù),執(zhí)行標(biāo)準(zhǔn)SQL語句,實(shí)現(xiàn)KingSCADA與關(guān)系數(shù)據(jù)庫之間的增、查、刪、改等所有數(shù)據(jù)交互功能,尤其可以通過數(shù)據(jù)集函數(shù),實(shí)現(xiàn)從數(shù)據(jù)庫內(nèi)查詢出符合SQL語句的數(shù)據(jù)集合,并在報(bào)表、曲線中進(jìn)行批量數(shù)據(jù)展示。數(shù)據(jù)集方式支持在KingSCADA服務(wù)器端、C/S客戶端、WEB上使用。在這里建議采用數(shù)據(jù)集方式,更加方便、靈活。下面具體介紹2種方式的具體使用第一節(jié) 記錄體方式在關(guān)系數(shù)據(jù)庫中的應(yīng)用(僅參考)一、創(chuàng)建數(shù)據(jù)源及數(shù)據(jù)庫以KingSCADA帶的DEMO工程中的mine.mdb數(shù)據(jù)庫為例,首先將mine.mdb文件從DEMO工程中拷貝到我們新建的這個(gè)培訓(xùn)工程中。然后,用Windows控制面板中自帶的ODBC Data Sources (32bit)管理工具新建一個(gè)Microsoft Access Driver(*.mdb)驅(qū)動(dòng)的數(shù)據(jù)源,名為:mine,然后配置該數(shù)據(jù)源,指向剛才拷貝過來的Access數(shù)據(jù)庫(即mydb.mdb),如圖8-1所示:圖8-1ODBC數(shù)據(jù)源的建立二、創(chuàng)建表及記錄體創(chuàng)建表用ACCESS打開mine.mdb數(shù)據(jù)庫,在庫中新建表“KingTable”,在表中建立三個(gè)字段日期時(shí)間、液位、溫度,如圖8-2所示:圖8-2在mine數(shù)據(jù)庫中創(chuàng)建表日期時(shí)間字段為日期時(shí)間類型。液位和溫度字段為數(shù)字類型,并都設(shè)置為單精度浮點(diǎn)型。創(chuàng)建記錄體記錄體是建立數(shù)據(jù)庫中數(shù)據(jù)表的字段和KingSCADA的變量之間的聯(lián)系。第一步:在KingSCADA工程設(shè)計(jì)器中選擇“通用數(shù)據(jù)源”“記錄體”選型,在右側(cè)內(nèi)容顯示區(qū)中單擊“新建”按鈕,彈出創(chuàng)建記錄體對(duì)話框,對(duì)話框設(shè)置如下:圖8-3創(chuàng)建記錄體對(duì)話框記錄體中定義了Access數(shù)據(jù)庫數(shù)據(jù)表字段與SCADA變量之間的對(duì)應(yīng)關(guān)系,對(duì)應(yīng)關(guān)系如下所示:Access數(shù)據(jù)庫表格字段SCADA變量日期時(shí)間local日期時(shí)間液位localliquid_level溫度localtemperature即:將KingSCADA中l(wèi)ocal日期時(shí)間變量值寫到Access數(shù)據(jù)庫表格日期時(shí)間字段中;將localliquid_level值寫到Access數(shù)據(jù)庫表格液位字段中;將localtemperature值寫到Access數(shù)據(jù)庫表格溫度字段中。local日期時(shí)間=local$Date+“ ”+local$Time;,表示計(jì)算機(jī)系統(tǒng)當(dāng)前的日期和時(shí)間。第二步:單擊“確認(rèn)”按鈕完成記錄體的創(chuàng)建。注:記錄體中的字段名稱必須與表格模板中的字段名稱保持一致,記錄體中字段對(duì)應(yīng)的變量數(shù)據(jù)類型必須和表格模板中相同字段對(duì)應(yīng)的數(shù)據(jù)類型相同。三、對(duì)數(shù)據(jù)庫的操作1、連接數(shù)據(jù)庫第一步:在KingSCADA工程設(shè)計(jì)器的數(shù)據(jù)詞典中定義一個(gè)內(nèi)存整型變量變量名:DeviceID變量類型:內(nèi)存整型第二步:在畫面編輯器中新建一畫面,名稱為:數(shù)據(jù)庫操作,并在畫面上添加一按鈕,按鈕屬性設(shè)置如下:按鈕文本:數(shù)據(jù)庫連接“按鈕左鍵彈起”動(dòng)畫鏈接設(shè)置如下:圖8-4數(shù)據(jù)連接腳本程序上述腳本的作用是使SCADA與mine數(shù)據(jù)源建立了連接(即與mydb.mdb數(shù)據(jù)庫建立了連接)。在實(shí)際工程中將此命令寫入:樹型目錄 腳本 系統(tǒng)腳本 應(yīng)用程序腳本應(yīng)用程序啟動(dòng)時(shí),即系統(tǒng)開始運(yùn)行就連接到數(shù)據(jù)庫上。2、斷開數(shù)據(jù)庫的連接在數(shù)據(jù)庫操作畫面中添加一按鈕,按鈕屬性設(shè)置如下:按鈕文本:斷開連接“按鈕左鍵彈起”動(dòng)畫鏈接設(shè)置如下:圖8-5斷開數(shù)據(jù)庫連接腳本程序在實(shí)際應(yīng)用中將此命令寫入:樹型目錄 腳本 應(yīng)用程序腳本應(yīng)用程序關(guān)閉時(shí),即系統(tǒng)退出后斷開與數(shù)據(jù)庫的連接。4、插入記錄我們要將液位和溫度定時(shí)記錄到數(shù)據(jù)庫中,因此利用定時(shí)器腳本編寫腳本程序即可。新建一個(gè)定時(shí)器腳本“定時(shí)存儲(chǔ)”,每60000毫秒執(zhí)行一次,編寫腳本程序如下:圖8-7插入記錄腳本程序上述腳本的作用是每分鐘在數(shù)據(jù)表KingTable中插入一條新的記錄。5、查詢記錄用戶如果需要將數(shù)據(jù)庫中的數(shù)據(jù)調(diào)入到KingSCADA中來顯示,需要另外建立一個(gè)記錄體,此記錄體的字段名稱要和數(shù)據(jù)庫表格中的字段名稱一致,連接的變量類型與數(shù)據(jù)庫中字段的類型一致,操作過程如下:第一步:在KingSCADA工程設(shè)計(jì)器的數(shù)據(jù)詞典中定義三個(gè)內(nèi)存變量:a、變量名:日期時(shí)間記錄變量類型:內(nèi)存字符串b、變量名:液位記錄變量類型:內(nèi)存實(shí)型c、變量名:溫度記錄變量類型:內(nèi)存實(shí)型第二步:在數(shù)據(jù)庫操作畫面上添加三個(gè)文本框,在文本框的“字符串輸出”動(dòng)畫中分別連接變量日期時(shí)間記錄、液位記錄、溫度記錄,用來顯示查詢出來的結(jié)果。第三步:在KingSCADA的通用數(shù)據(jù)源中定義一個(gè)記錄體,記錄體窗口屬性設(shè)置如圖8-8所示:圖8-8記錄體屬性設(shè)置對(duì)話框第四步:在畫面中添加一按鈕,按鈕屬性設(shè)置如下:按鈕文本:全部查詢“按鈕左鍵按下”動(dòng)畫鏈接設(shè)置如下:圖8-9記錄查詢腳本程序此腳本的作用是:以記錄體Bind2中定義的格式返回KingTable表格中第一條數(shù)據(jù)記錄。進(jìn)入運(yùn)行系統(tǒng),運(yùn)行此畫面,單擊“全部查詢”按鈕數(shù)據(jù)庫中的數(shù)據(jù)記錄顯示在文本框中。第五步:在畫面上添加四個(gè)按鈕,按鈕屬性設(shè)置如下:a、按鈕文本:第一條記錄“按鈕左鍵按下”動(dòng)畫鏈接:SQLFirst( DeviceID );b、按鈕文本:下一條記錄“按鈕左鍵按下”動(dòng)畫鏈接:SQLNext( DeviceID );c、按鈕文本:上一條記錄“按鈕左鍵按下”動(dòng)畫鏈接:SQLPrev( DeviceID );d、按鈕文本:最后一條記錄“按鈕左鍵按下”動(dòng)畫鏈接:SQLLast( DeviceID );上述腳本的作用分別為查詢數(shù)據(jù)中第一條記錄、下一條記錄、上一條記錄和最后一條記錄從而達(dá)到了數(shù)據(jù)查詢的目的。第二節(jié) 數(shù)據(jù)集函數(shù)在關(guān)系庫中的應(yīng)用(重點(diǎn)推薦)KingSCADA提供一系列數(shù)據(jù)集函數(shù),通過數(shù)據(jù)集函數(shù)使用標(biāo)準(zhǔn)SQL語句可以與關(guān)系數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,下面舉例說明通過數(shù)據(jù)集函數(shù)實(shí)現(xiàn)對(duì)關(guān)系數(shù)據(jù)庫進(jìn)行簡單的增、查、刪、改操作。以上面的mine.mdb數(shù)據(jù)庫中的KingTable表為例進(jìn)行實(shí)例說明。1、 保存數(shù)據(jù)到關(guān)系庫假如系統(tǒng)要求每10秒鐘將液位和溫度記錄到數(shù)據(jù)庫中,那么我們可以在定時(shí)器腳本中實(shí)現(xiàn)。新建一個(gè)定時(shí)器腳本“定時(shí)存儲(chǔ)”,每10000毫秒執(zhí)行一次,編寫腳本程序如下:圖8-10插入記錄腳本程序詳細(xì)腳本如下,作用是每分鐘在數(shù)據(jù)表KingTable中插入一條新的記錄。string ConnectStr,SqlCommand;/通過OLEDB方式連接ACCESS數(shù)據(jù)庫的連接字符串ConnectStr=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:培訓(xùn)培訓(xùn)工程培訓(xùn)工程mine.mdb;Persist Security Info=False;/將系統(tǒng)時(shí)間日期和時(shí)間合成一個(gè)包含日期和時(shí)間的字符串local日期時(shí)間記錄=local$Date+ +local$Time;/SQL語句,將日期時(shí)間、液位、溫度的數(shù)據(jù)值插入數(shù)據(jù)到數(shù)據(jù)庫的KingTable表中SqlCommand=insert into KingTable Values(+local日期時(shí)間記錄+,+localliquid_level+,+localtemperature+);/數(shù)據(jù)集函數(shù),執(zhí)行SQL語句KDBExecuteStatement(ConnectStr, SqlCommand);2、 查詢數(shù)據(jù)并顯示到報(bào)表在工程中新建畫面“數(shù)據(jù)集函數(shù)與關(guān)系庫”,在畫面上添加一個(gè)“查詢”按鈕,一個(gè)報(bào)表控件、兩個(gè)日期時(shí)間控件,如下圖所示。圖8-11數(shù)據(jù)集函數(shù)與關(guān)系庫畫面在查詢腳本里寫如下腳本:string ConnectStr;string SqlStr;/通過OLEDB方式連接ACCESS數(shù)據(jù)庫的連接字符串ConnectStr=Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:培訓(xùn)培訓(xùn)工程培訓(xùn)工程mine.mdb;Persist Security Info=False;/起始時(shí)間和結(jié)束時(shí)間從日期時(shí)間控件獲取string StartTime,EndTime;StartTime=UIDateTime1.Value;EndTime=UIDateTime2.Value;SqlStr=select 日期時(shí)間,液位,溫度 from KingTable where 日期時(shí)間=#+StartTime+#+ and 日期時(shí)間=#+StartTime+#+ and 日期時(shí)間=0;/Trace(SqlStr+SqlStr);/數(shù)據(jù)集函數(shù),執(zhí)行SQL語句,將溫度大于等于0的數(shù)據(jù)改

溫馨提示

  • 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)論