師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

我是依據組態王幫助文件裡面的案例,不過我寫的會更詳細!

以某工業現場應用為例,需要對原料進行稱量,並記錄原料的生產廠家、原料編號、稱量日期、稱量時間,值班人員、原料重量。針對這種關係數據,使用組態王的歷史庫是無法記錄的,因此我們使用關係數據庫Access 進行記錄。下面就以此為例來演示完成這一現場需求的設置步驟。

操作步驟:

1、新建數據庫以及表:

1.1)在Access 中新建一個空數據庫,例如建立路徑為:D:\\數據庫存儲例程\\數據.mdb。

1.2)在數據庫D:\\數據庫存儲例程\\數據.mdb 中創建一個數據表:表的名稱為:原料數據。字段為:稱量日期、稱量時間、原料重量、原料廠家、原料編號、值班人員、datetime(這個變量是我自己需要歷史曲線用的)。如下圖所示:(下面的值是我測試的)

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

其中原料重量字段類型為“數字”設置為“單精度”,datetime設置為日期/時間默認值改為now()。其餘為“文本”類型。(這裡默認的視圖是數據表視圖,要切換到設計視圖,如圖所示:)

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

在這下面設置字段大小為單精度型,小數位數為2(這個按自己需求設置位數)。

2、設置ODBC 數據源:

2.1) 在“控制面板”-----“管理工具”----“ODBC 數據源” 中建立ODBC 數據源,點擊“ODBC數據源”彈出“ODBC 數據源管理器”,如下圖所示:(這裡注意的是如果系統是64位系統的話,則打開C:\\Windows\\SysWOW64\\odbcad32.exe)

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

2.2) 在“用戶DSN”中點擊“添加”,彈出“選擇數據源驅動程序”窗口,如下圖所示:選擇“Microsoft Access Driver (*.mdb)”驅動,點擊“完成”。彈出如圖所示窗口,填寫ODBC數據源的名稱,根據需要對數據源進行命名,如“數據”,點擊“選擇(S)”,如圖所示,選擇我們前面定義的數據庫文件“D:\\數據庫存儲例程\\數據.mdb”。點擊“確定”完成ODBC 數據源的定義,如圖所示。其他數據庫如SQLServer 的ODBC 定義請參考相關文檔。

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

3.組態王中定義變量:

3.1) 定義變量:

在組態王中定義四個變量:原料廠家(內存字符串)、原料編號(內存字符串)、原料重量(內存實數)、DeviceID(內存整數),其中原料重量是從稱重儀表設備中採集的。DeviceID變量是使用組態王SQL 函數時需要用到的變量。其他需要記錄的稱量日期、稱量時間為系統的日期、時間,值班人員為組態王登錄的用戶。

稱重儀表的判穩可以通過儀表上傳穩定信號也可以通過操作人員來判斷,因為此例程中需要輸入原料廠家以及編號,因此有操作人員進行重量穩定的判斷,並有操作人員確定後記入數據庫。

4.組態王中定義記錄體:

記錄體是用來連接數據庫的表格的字段和組態王數據詞典中的變量。

創建記錄體:如圖七所示:記錄體名:Bind,字段名稱為數據庫中表的字段名稱,變量名稱為組態王數據詞典中的變量。字段類型與變量類型需要一致。字段名稱要與數據庫中表的字段名稱一致。變量名稱與字段名稱可以不同。

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

5.建立組態王與數據庫的關聯:

組態王與數據庫建立與斷開關聯主要是通過 SQL 函數來實現。

通過 SQLConnect()函數建立組態王與數據庫的連接。

通過 SQLDisconnect()函數斷開組態王與數據庫的連接。

對於本例程用到的函數的詳細說明請參考函數手冊或者幫助文檔。

本例程中數據庫無用戶名和密碼,具體用法如下:

SQLConnect( DeviceID, "dsn=數據;uid=;pwd=");

其中DeviceID 是用戶在數據詞典中創建的內存整型變量,用來保存SQLConnect()為每個數據庫連接分配的一個數值。

建議將建立數據庫連接的命令函數放在組態王的應用程序命令語言的啟動時執行,這樣當組態王進入運行系統後自動連接數據庫。如下圖八所示:

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

建議將斷開數據庫連接的命令函數放在組態王的應用程序命令語言的停止時執行,這樣當組態王退出運行系統時自動斷開數據庫的連接。如下圖圖九所示:

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

注意:此函數在組態王運行中只須進行一次連接,不要把此語句寫入“運行時”,多次執行此命令而造成錯誤。

6.記錄數據到數據庫:

數據庫連接成功後,我們就可以通過執行 SQLinsert()函數插入數據到創建好的Access數據庫的表格中。

首先利用組態王提供的畫圖工具新建一個組態王畫面,如下圖所示:

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

日期、時間、值班人員動畫連接為字符串輸出,連接的變量為\\\\本站點\\$日期、\\\\本站點\\$時間、\\\\本站點\\$用戶名。原料廠家、原料編號動畫連接為字符串輸入、字符串輸出,連接的變量為\\\\本站點\\原料廠家、\\\\本站點\\原料編號。原料重量動畫連接為模擬值輸出,連接的變量為\\\\本站點\\原料重量。

“用戶登錄”按鈕的彈起時命令語言為登錄函數:LogOn();

“用戶註銷”按鈕的彈起時命令語言為註銷函數:LogOff();

“稱量確認”按鈕的彈起時命令語言為SQL 插入函數:SQLInsert( DeviceID, "原料數據",

"Bind" ); 其中“原料數據”為數據庫的表的名稱,“Bind”為記錄體的名稱。

“稱量確認”的優先級設置為300,這樣就要求值班人員必須登錄並且權限大於300 才可以進行稱量確認。

“系統退出”按鈕的彈起時命令語言為系統退出函數:Exit( 0 );

關於使用到的函數的詳細使用方法請參考函數使用手冊或者幫助文檔。

7.進入運行系統:

畫面開發完成後保存畫面,在工程瀏覽器的“系統設置”-“設置運行系統”-“主畫面配置”中,將新建的畫面設置為主畫面。確認後點擊工程瀏覽器的“View”按鈕切換到運行系統。

系統運行後會將主畫面打開,如下圖所示:

如果操作人員不進行登錄則“稱量確認”按鈕為灰色,不允許進行“稱量確認”操作。

只有值班人員以自己的用戶名、密碼登錄後此按鈕才處於激活狀態,操作人員才可以操作。其中“原料廠家”、“原料編號”可以有操作人員手動輸入,原料重量來自於稱量儀表採集的數據。

師傅給的,組態王連接Accesss數據庫與歷史曲線顯示

打開UC瀏覽器 查看更多精彩圖片

當值班人員確認本次稱量有效時可以執行“稱量確認”,點擊“稱量確認”後會將數據存入Access數據庫“數據.mdb”的數據表“原料數據”中。我們可以打開數據庫看數據是否寫入數據表中。歷史曲線顯示

正常的添加控件,時間選擇datetime,毫秒選擇ID即可。


分享到:


相關文章: