KingSCADA初級教程第八章與數(shù)據(jù)庫連接.doc
《KingSCADA初級教程第八章與數(shù)據(jù)庫連接.doc》由會員分享,可在線閱讀,更多相關(guān)《KingSCADA初級教程第八章與數(shù)據(jù)庫連接.doc(7頁珍藏版)》請在裝配圖網(wǎng)上搜索。
第八章 與數(shù)據(jù)庫連接 本章內(nèi)容 & 創(chuàng)建數(shù)據(jù)源及數(shù)據(jù)庫 & 創(chuàng)建表格模板 & 創(chuàng)建記錄體 & 對數(shù)據(jù)庫的操作 概述 本章我們將講解如何將閥門的狀態(tài)變化記錄到數(shù)據(jù)庫中并進行查詢。數(shù)據(jù)庫我們選擇Access數(shù)據(jù)庫,記錄的內(nèi)容包括:日期、時間、閥門描述、閥門狀態(tài)四個字段。我們利用KingSCADA3.1的SQL訪問功能來實現(xiàn)。 KingSCADA3.1 SQL訪問功能主要實現(xiàn)KingSCADA3.1和其他外部數(shù)據(jù)庫(通過ODBC訪問接口)之間的數(shù)據(jù)傳輸,它包括SQL訪問管理器和相關(guān)的SQL函數(shù)。 SQL訪問管理器用來建立數(shù)據(jù)庫字段和組態(tài)王變量之間的聯(lián)系,包括“表格模板”和“記錄體”兩部分。通過表格模板在數(shù)據(jù)庫表中建立相應(yīng)的數(shù)據(jù)表;通過記錄體建立數(shù)據(jù)庫字段和組態(tài)王變量之間的聯(lián)系。同時允許組態(tài)王通過記錄體直接操作數(shù)據(jù)庫中的數(shù)據(jù)。 第一節(jié) 創(chuàng)建數(shù)據(jù)源及數(shù)據(jù)庫 首先外建一個數(shù)據(jù)庫,這里我們選用Access數(shù)據(jù)庫(路徑:d:\培訓(xùn),數(shù)據(jù)庫名為:mydb.mdb)。 然后,用Windows控制面板中自帶的ODBC Data Sources (32bit)管理工具新建一個Microsoft Access Driver(*.mdb)驅(qū)動的數(shù)據(jù)源,名為:mine,然后配置該數(shù)據(jù)源,指向剛才建立的Access數(shù)據(jù)庫(即mydb.mdb),如圖8-1所示: 圖8-1ODBC數(shù)據(jù)源的建立 第二節(jié) 創(chuàng)建表格模板及記錄體 創(chuàng)建表格模板 表格模板是在數(shù)據(jù)庫表中創(chuàng)建數(shù)據(jù)表的模板,利用此模板在數(shù)據(jù)庫中創(chuàng)建我們需要的數(shù)據(jù)表。 第一步:在KingSCADA3.1開發(fā)環(huán)境樹型目錄中選擇“通用數(shù)據(jù)源”→“表格模板”選型,在右側(cè)內(nèi)容顯示區(qū)中單擊“新建”按鈕,在彈出的創(chuàng)建表格模板對話框中建立四個字段,如圖8-2所示: 圖8-2創(chuàng)建表格模板對話框 四個字段的數(shù)據(jù)類型都為字符串/文本類型。 第二步:單擊“確認”按鈕完成表格模板的創(chuàng)建。 建立表格模板的目的是定義數(shù)據(jù)庫格式,在后面用到SQLCreatTable()函數(shù)時以此格式在Access數(shù)據(jù)庫中自動建立表格。 如果我們在數(shù)據(jù)庫中只需要建一次表就可以,那么可以直接在數(shù)據(jù)庫中創(chuàng)建表即可,而無需利用表格模板創(chuàng)建表,也就是說在使用KingSCADA的數(shù)據(jù)庫功能的時候表格模板并不是一定要用的。 創(chuàng)建記錄體 記錄體是建立數(shù)據(jù)庫中數(shù)據(jù)表的字段和KingSCADA的變量之間的聯(lián)系。 我們在建立記錄體之前先在數(shù)據(jù)庫中定義兩個字符串變量:閥門描述、閥門狀態(tài)。定義完成后我們再進行記錄體的定義。 第一步:在KingSCADA3.1開發(fā)環(huán)境樹型目錄中選擇“通用數(shù)據(jù)源”→“記錄體”選型,在右側(cè)內(nèi)容顯示區(qū)中單擊“新建”按鈕,彈出創(chuàng)建記錄體對話框,對話框設(shè)置如下: 圖8-3創(chuàng)建記錄體對話框 記錄體中定義了Access數(shù)據(jù)庫數(shù)據(jù)表字段與組態(tài)王變量之間的對應(yīng)關(guān)系,對應(yīng)關(guān)系如下所示: Access數(shù)據(jù)庫表格字段 組態(tài)王變量 日期 \\local\$Date 時間 \\local\$Time 閥門描述 \\local\閥門描述 閥門狀態(tài) \\local\閥門狀態(tài) 即:將KingSCADA3.1中\(zhòng)\local\$Date變量值寫到Access數(shù)據(jù)庫表格日期字段中;將\\local\$Time變量值寫到Access數(shù)據(jù)庫表格時間字段中;將\\local\閥門描述值寫到Access數(shù)據(jù)庫表格閥門描述字段中;將\\local\閥門狀態(tài)值寫到Access數(shù)據(jù)庫表格閥門狀態(tài)字段中。 \\local\$Date、\\local\$Time變量為系統(tǒng)變量,表示計算機系統(tǒng)當(dāng)前的日期和時間。 第二步:單擊“確認”按鈕完成記錄體的創(chuàng)建。 注:記錄體中的字段名稱必須與表格模板中的字段名稱保持一致,記錄體中字段對應(yīng)的變量數(shù)據(jù)類型必須和表格模板中相同字段對應(yīng)的數(shù)據(jù)類型相同。 第三節(jié) 對數(shù)據(jù)庫的操作 1、連接數(shù)據(jù)庫 第一步:在KingSCADA3.1開發(fā)環(huán)境數(shù)據(jù)詞典中定義一個內(nèi)存整型變量 變量名:DeviceID 變量類型:內(nèi)存整型 第二步:在圖形編輯器中新建一畫面,名稱為:數(shù)據(jù)庫操作畫面,并在畫面上添加一按鈕,按鈕屬性設(shè)置如下: 按鈕文本:數(shù)據(jù)庫連接 “按鈕左鍵彈起”動畫鏈接設(shè)置如下: 圖8-4數(shù)據(jù)連接腳本程序 上述命令語言的作用是使組態(tài)王與mine數(shù)據(jù)源建立了連接(即與mydb.mdb數(shù)據(jù)庫建立了連接)。 在實際工程中將此命令寫入:開發(fā)環(huán)境樹型目錄 → 腳本 → 系統(tǒng)腳本 → 應(yīng)用程序腳本→應(yīng)用程序啟動時,即系統(tǒng)開始運行就連接到數(shù)據(jù)庫上。 2、斷開數(shù)據(jù)庫的連接 在數(shù)據(jù)庫操作畫面中添加一按鈕,按鈕屬性設(shè)置如下: 按鈕文本:斷開連接 “按鈕左鍵彈起”動畫鏈接設(shè)置如下: 圖8-5斷開數(shù)據(jù)庫連接腳本程序 在實際工程中將此命令寫入:開發(fā)環(huán)境樹型目錄 → 腳本 →應(yīng)用程序腳本→應(yīng)用程序關(guān)閉時,即系統(tǒng)退出后斷開與數(shù)據(jù)庫的連接。 3、創(chuàng)建數(shù)據(jù)庫表格 在數(shù)據(jù)庫操作畫面上添加一按鈕,按鈕屬性設(shè)置如下: 按鈕文本:創(chuàng)建數(shù)據(jù)表 “按鈕左鍵彈起”動畫鏈接設(shè)置如下: 圖8-6創(chuàng)建數(shù)據(jù)表格腳本程序 上述命令語言的作用是以表格模板“Table1”的格式在數(shù)據(jù)庫中建立名為“KingTable”的表格。在生成的KingTable表格中,將生成三個字段,字段名稱分別為:日期,時間,原料油液位值,每個字段的變量類型、變量長度及索引類型與表格模板“Table1”中的定義一致。 此命令語言只需執(zhí)行一次即可,如果表格摸板有改動,需要用戶先將數(shù)據(jù)庫中的表格刪除才能重新創(chuàng)建。如果只需要建立一次數(shù)據(jù)表就可以,建議直接在數(shù)據(jù)庫中建立或者在調(diào)試時將此函數(shù)執(zhí)行一次建立成功后將腳本程序刪除即可。 4、插入記錄 我們要將閥門的狀態(tài)變化記錄到數(shù)據(jù)庫中,因此利用數(shù)據(jù)改變命令語言編寫腳本程序即可。 新建一個數(shù)據(jù)改變命令語言,選擇變量:\\local\液位.Value,編寫腳本程序如下: 圖8-7插入記錄腳本程序 上述命令語言作用是當(dāng)變量\\local\液位.Value改變時在數(shù)據(jù)表KingTable中插入一條新的記錄。 同樣的方式我們可以通過數(shù)據(jù)改變命令語言將其他閥門變量的狀態(tài)變化信息記錄到數(shù)據(jù)庫中。 5、查詢記錄 用戶如果需要將數(shù)據(jù)庫中的數(shù)據(jù)調(diào)入到KingSCADA3.1中來顯示,需要另外建立一個記錄體,此記錄體的字段名稱要和數(shù)據(jù)庫表格中的字段名稱一致,連接的變量類型與數(shù)據(jù)庫中字段的類型一致,操作過程如下: 第一步:在KingSCADA3.1開發(fā)環(huán)境的數(shù)據(jù)詞典中定義四個內(nèi)存字符串變量: a、變量名:記錄日期 變量類型:內(nèi)存字符串 b、變量名:記錄時間 變量類型:內(nèi)存字符串 c、變量名:閥門描述1 變量類型:內(nèi)存字符串 c、變量名:閥門狀態(tài)1 變量類型:內(nèi)存字符串 第二步:在數(shù)據(jù)庫操作畫面上添加四個文本框,在文本框的“字符串輸出”動畫中分別連接變量記錄日期、記錄時間、閥門描述1、閥門狀態(tài)1,用來顯示查詢出來的結(jié)果。 第三步:在KingSCADA3.1開發(fā)環(huán)境中定義一個記錄體,記錄體窗口屬性設(shè)置如圖8-8所示: 圖8-8記錄體屬性設(shè)置對話框 第四步:在畫面中添加一按鈕,按鈕屬性設(shè)置如下: 按鈕文本:全部查詢 “按鈕左鍵彈起”動畫鏈接設(shè)置如下: 圖8-9記錄查詢腳本程序 此命令語言的作用是:以記錄體Bind2中定義的格式返回KingTable表格中第一條數(shù)據(jù)記錄。 進入運行系統(tǒng),運行此畫面,單擊“全部查詢”按鈕數(shù)據(jù)庫中的數(shù)據(jù)記錄顯示在文本框中。 第五步:在畫面上添加四個按鈕,按鈕屬性設(shè)置如下: a、按鈕文本:第一條記錄 “按鈕左鍵彈起”動畫鏈接:SQLFirst( DeviceID ); b、按鈕文本:下一條記錄 “按鈕左鍵彈起”動畫鏈接:SQLNext( DeviceID ); c、按鈕文本:上一條記錄 “按鈕左鍵彈起”動畫鏈接:SQLPrev( DeviceID ); d、按鈕文本:最后一條記錄 “按鈕左鍵彈起”動畫鏈接:SQLLast( DeviceID ); 上述命令語言的作用分別為查詢數(shù)據(jù)中第一條記錄、下一條記錄、上一條記錄和最后一條記錄從而達到了數(shù)據(jù)查詢的目的。 課后練習(xí): 1、 熟悉KingSCADA3.0其他SQL函數(shù),并動手練習(xí)這些函數(shù)的使用。 2、 將其他閥門、水泵的狀態(tài)變化存儲到數(shù)據(jù)庫中。- 1.請仔細閱讀文檔,確保文檔完整性,對于不預(yù)覽、不比對內(nèi)容而直接下載帶來的問題本站不予受理。
- 2.下載的文檔,不會出現(xiàn)我們的網(wǎng)址水印。
- 3、該文檔所得收入(下載+內(nèi)容+預(yù)覽)歸上傳者、原創(chuàng)作者;如果您是本文檔原作者,請點此認領(lǐng)!既往收益都歸您。
下載文檔到電腦,查找使用更方便
9.9 積分
下載 |
- 配套講稿:
如PPT文件的首頁顯示word圖標,表示該PPT已包含配套word講稿。雙擊word圖標可打開word文檔。
- 特殊限制:
部分文檔作品中含有的國旗、國徽等圖片,僅作為作品整體效果示例展示,禁止商用。設(shè)計者僅對作品中獨創(chuàng)性部分享有著作權(quán)。
- 關(guān) 鍵 詞:
- KingSCADA 初級教程 第八 數(shù)據(jù)庫連接
鏈接地址:http://www.820124.com/p-8505332.html