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