發布日期:2022-04-22 點擊率:54 品牌:組態王_Kingview
1 引言
人機界面組態技術廣泛應用于以ipc(工控機)為核心的計算機控制系統中。組態軟件通過plc采集現場的數據,構造人機界面以動畫顯示、趨勢曲線以及數據報表等方式提供plc控制系統現場的運行狀況。操作人員通過對數據的分析,能夠更好地對控制過程進行優化。
對采集到的大量分散型數據進行分析時,通過報表輸出的方式顯然存在著不夠靈活、實時性差以及難以進一步處理的問題。
作者提出一種解決的方法,即將數據采集與數據處理分開,組態王具有odbc(ms開放式數據庫互連標準)數據庫訪問功能,一方面在ipc中建立相應的數據 庫,由組態王將采集到的數據動態寫入庫中保存,另一方面操作人員可脫離控制系統隨時隨地利用ms access、visual foxpro等數據庫強大的功能實現數據的處理。
2 組態王數據庫訪問
組態王數據庫訪問功能實現組態王與其他odbc數據庫之間的數據傳輸。它支持的數據庫主要有oracle6、oracle7.2、sybase或 sqlserver數據庫、dbase數據庫及microsoft access數據庫。先在系統odbc數據源中添加數據庫,后通過組態王sql訪問管理器和sql函數實現連接、斷開數據庫,寫入、查詢數據等各種操作。
組態王sql訪問管理器包括表格模板和記錄體兩部分。表格模板用來定義表格的結構,包括字段名稱,字段類型等。記錄體用來連接表格的列和組態王數據詞典中的變量。當執行sql函數sqlcreattable()時,使用的表格模板將定義創建的表格結構;當執行sqlinsert()、 sqlselect();或update()時,根據記錄體中的定義使組態王中的變量和數據表格中的變量相關聯。
3 組態王sql函數
組態王使用sql(結構化查詢語言)函數和數據庫交換信息。這些函數是組態王標準函數的擴充,可以在組態王的任一種命令語言中使用,這些函數允許操作人員 選擇、修改、插入、刪除數據庫表中的數據。sql主要函數如附表所示。
附表 sql主要函數
除sqlnumrows()外,所有sql函數都返回結果代碼,如果代碼不為零,表示調用失敗,結果代碼可以通過sqlerrormsg()獲得。
4 組態王與odbc數據庫連接
4.1 odbc
odbc(open database connectivity)稱為開放式數據庫互連,目的是實現異構數據庫的互聯。在此之前,由于各種數據庫產品都有自己獨立的編程語言和文件格式,要想實現異構數據庫之間的數據共享和訪問,就必須為特定的應用單獨編寫程序。這種臨時編寫的程序不具備絲毫的通用性,當數據庫的結構字段等屬性發生變化時,原來 的程序就不可以再次使用了。access、sql server、sybase等數據庫都支持odbc。
一個完整的odbc由下列幾個部件組成:
(1) 應用程序(application);
(2) dbc管理器(administrator)。該程序位于WINOOWs控制面板(control panel)的32位odbc內,其主要任務是管理安裝的odbc驅動程序和管理數據源;
(3) 驅動程序管理(driver manager)。驅動程序管理器包含在odbc32.dll中,對用戶是透明的。其任務是管理odbc驅動程序,是odbc中最重要的部件;
(4) odbc api函數;
(5) odbc驅動程序,提供了odbc和數據庫之間的接口;
(6) 數據源。數據源包含了數據庫位置和數據庫類型等信息,實際上是一種數據連接的抽象。
4.2 數據源的建立
首先在ipc上建立一個數據庫存儲和處理采集到的各種數據,名為“系統數據庫.mdb”,然后在控制面板上的odbc 數據源控制臺中定義一個數據源。這里選擇microsoft access數據庫。
雙擊數據源選項,彈出odbc數據源管理器對話框,點擊“系統 dsn”屬性頁,增加microsoft access driver(*.mdb)驅動程序,單擊“完成”按鈕,進入odbc microsoft access安裝。輸入數據源名稱“mydata- source”選擇相應數據庫(“系統數據庫.mdb”),完成數據源定義。
4.3 數據源與odbc數據庫連接
在組態王中定義變量,名為“deviceid”,變量類型:內存整型。建立plc設備,定義i/o變量,名為“plcdata”,負責采集數據。新建一個 名為“mybind”的記錄體,增加字段“mydata”, 與“plcdata”相關聯。新建一個名為“mytemplate”的表格模板,增加字段“mytabledata”, 定義相應變量類型、字段長度、索引類型。
建立人機界面,通過sqlconnect()函數建立與“系統數據庫.dbc”的連接。如 下:sqlconnect(device1id,“dsn=mydatasource;uid=mine;pwd=”);
其中deviceid 用來保存sqlconnect()函數為每個數據庫連接分配的一個數值, deviceid最多為255。
組態王與數據庫連接成功后,通過組態王sql函數調用就可以在數據庫中創建表格寫入數據了。
4.4 數據動態寫入
通過sqlcreatetable()函數按照表格模板“mytem- plate”結構新建數據庫表格,名稱為“采集數據表”,具體如下:
sqlcreatetable(deviceid,“采集數據表”,“mytemplate”);
通過sqlinsert函數根據記錄體“mybind”向表中插入數據,具體如下:
sqlinsert(device1id,“plc數據”,“mybind”);
該命令執行后,組態王運行系統會將從plc采集到的“plcdata”的當前值插入到“系統數據庫”中表格“采集數據表”中“plc數據”字段的最后一條 記錄中。
5 系統設計案例
plc選用三菱fx2n,通信參數設置為96波特率9600,偶校驗,7為數據位,1位停止位。
整個系統通過plc由傳感器等設備獲取現場數據,ipc安裝組態王6.5,完成監控和數據采集,同時連接odbc數據庫以表(dbf)的形式保存有用數 據,這樣操作人員可以脫離控制系統,利用ms access或visual foxpro等對數據進行處理。
6 結束語
由組態軟件本身(sql函數)或vc、vb等高級語言處理采集到數據往往需要十分復雜的編程,而通過組態王數據庫訪問功能,只需簡單編程就可將數據采集與數據處理分離,這樣一方面極大地減輕了編程人員的工作量,另一方面數據處理人員可以脫離控制系統獨立的完成數據分析處理,靈活性實用性大大增強。
下一篇: PLC、DCS、FCS三大控
上一篇: 索爾維全系列Solef?PV