概要:
本文主要介紹勝利油田集輸公司下屬的大型站庫(kù)的實(shí)時(shí)數(shù)據(jù)采集及WEB發(fā)布系統(tǒng)的建設(shè),,包括整個(gè)系統(tǒng)建設(shè)的方案設(shè)計(jì),、所應(yīng)用到的技術(shù)介紹、碰到的問(wèn)題以及解決的方法,。采用的上位組態(tài)軟件是北京三維力控的PCAUTO,,應(yīng)用的主要技術(shù)有OPC、DDE,、NETDDE,、分布式實(shí)時(shí)數(shù)據(jù)庫(kù)、RS485總線(xiàn)讀智能表,。
關(guān)鍵字: 數(shù)采系統(tǒng) PCAUTO OPC DDE
1.1基本情況介紹
集輸公司下屬的孤島壓氣站,,年處理天然氣2億立方米,年產(chǎn)輕烴約一萬(wàn)三千噸以上,是一個(gè)比較大型的壓氣站,。下設(shè)50萬(wàn),、SW64、二次增壓,、離心機(jī),、配氣、熱煤爐,、配電等崗位,。其中:50萬(wàn)崗位是用的霍尼威爾HOWNIWELL的S9000型號(hào)的DCS控制系統(tǒng)、上位組態(tài)是IFix6.0,、操作系統(tǒng)是 WIN98; SW64崗位是用的美國(guó)庫(kù)伯公司的RR控制器,、上位組態(tài)軟件是INTouch、操作系統(tǒng)是WINNT4.0; 二次增壓崗位是用的日本 Omron的控制器,,上位組態(tài)是IFix6.0,、操作系統(tǒng)是WIN98;離心機(jī)崗位是用的恒河的CS1000型號(hào)的DCS控制系統(tǒng),、上位是用恒河自帶的組態(tài)軟件,、操作系統(tǒng)是WINNT4.0;配氣崗位是用的美國(guó)SIXNET公司的ST-GT-1210控制器,、上位組態(tài)軟件是北京三維力控的PCAUTO,、操作系統(tǒng)是WIN2000;熱煤爐崗位控制系統(tǒng)是三菱的PLC,,上位組態(tài)軟件是北京昆侖通態(tài)的MCGS,、操作系統(tǒng)是WIN2000;配電崗位設(shè)有許繼的配電保護(hù)系統(tǒng)以及監(jiān)控系統(tǒng),。
1.2實(shí)時(shí)數(shù)采系統(tǒng)功能設(shè)計(jì)
采用北京三維力控公司的PCAUTO做為數(shù)采系統(tǒng)的組態(tài)軟件,,把各個(gè)崗位控制系統(tǒng)的實(shí)時(shí)數(shù)據(jù)通過(guò)架設(shè)的以光纖為傳輸介質(zhì)的站內(nèi)局域網(wǎng)采集到位于壓氣站調(diào)度室的力控服務(wù)器上,這臺(tái)服務(wù)器裝有雙網(wǎng)卡,,同時(shí)連接著勝利油田廣域網(wǎng),,在油田網(wǎng)上,然后進(jìn)行實(shí)時(shí)數(shù)據(jù)的WEB發(fā)布,,同時(shí)還可以把實(shí)時(shí)的數(shù)據(jù)定點(diǎn)存儲(chǔ)到油田正在建設(shè)的源頭數(shù)據(jù)系統(tǒng)里,,生成各種報(bào)表。
1.3數(shù)采系統(tǒng)功能,、方案設(shè)計(jì)
選用北京三維力控的PCAUTO做為系統(tǒng)的組態(tài)軟件,。負(fù)責(zé)采集IFix、INTouch,、MCGS,、恒河CS1000,、許繼、力控PCAUTO等組態(tài)軟件以及支持485的智能儀表讀數(shù),;系統(tǒng)功能網(wǎng)絡(luò)拓樸圖如下,;
1.4系統(tǒng)應(yīng)用技術(shù)介紹
1.4.1OPC介紹
OPC是以Microsoft公司的OLE/COM技術(shù)為基礎(chǔ),采用客戶(hù)/服務(wù)器模型,,制定的一種工業(yè)控制領(lǐng)域的開(kāi)放式標(biāo)準(zhǔn),。OPC在工業(yè)控制設(shè)備與應(yīng)用軟件之間建立了統(tǒng)一的軟件接口標(biāo)準(zhǔn)。主要解決監(jiān)控程序與其數(shù)據(jù)源的交互問(wèn)題,。
利用OPC技術(shù),,可以對(duì)現(xiàn)場(chǎng)設(shè)備及其驅(qū)動(dòng)程序進(jìn)行封裝,形成OPC服務(wù)器,。OPC服務(wù)器向下對(duì)設(shè)備數(shù)據(jù)進(jìn)行采集,向上與OPC客戶(hù)應(yīng)用程序通信完成數(shù)據(jù)交換,,如圖1所示,。OPC服務(wù)器屏蔽了現(xiàn)場(chǎng)層的設(shè)備驅(qū)動(dòng)程序;客戶(hù)應(yīng)用程序開(kāi)發(fā)人員看到的,,只是OPC服務(wù)器提供的統(tǒng)一接口,,而不必再去關(guān)心現(xiàn)場(chǎng)設(shè)備的驅(qū)動(dòng)程序。只要客戶(hù)應(yīng)用程序符合OPC接口規(guī)范,,就可以與OPC服務(wù)器進(jìn)行數(shù)據(jù)交換,。
同樣地,硬件廠商只需要為生產(chǎn)的硬件設(shè)備開(kāi)發(fā)一個(gè)驅(qū)動(dòng)程序,,然后按照OPC標(biāo)準(zhǔn)編寫(xiě)一個(gè)OPC服務(wù)器,,那么,所有按照OPC標(biāo)準(zhǔn)開(kāi)發(fā)的客戶(hù)應(yīng)用程序都可以與該硬件設(shè)備進(jìn)行數(shù)據(jù)交互,,而無(wú)須編寫(xiě)額外的設(shè)備驅(qū)動(dòng)程序,。
這樣,在工業(yè)現(xiàn)場(chǎng)的監(jiān)測(cè)控制系統(tǒng)中,,過(guò)程或設(shè)備監(jiān)控程序(或者是監(jiān)控組態(tài)軟件),,通過(guò)工業(yè)以太網(wǎng),可以方便地與現(xiàn)場(chǎng)設(shè)備的OPC服務(wù)器進(jìn)行數(shù)據(jù)交互,,獲得所需的現(xiàn)場(chǎng)數(shù)據(jù),。一方面,監(jiān)控程序可以讀取OPC服務(wù)器緩沖區(qū)(Cache)中的數(shù)據(jù),,獲得過(guò)程或設(shè)備運(yùn)行參數(shù),,實(shí)施有效地監(jiān)視;另一方面,,對(duì)于實(shí)時(shí)性要求比較高的設(shè)備數(shù)據(jù),,監(jiān)控程序可以直接讀取設(shè)備(Device)中的數(shù)據(jù)。如果用戶(hù)需要擴(kuò)充監(jiān)控軟件的功能,可以直接將定制的OPC軟件包組態(tài)進(jìn)現(xiàn)有軟件中,,而不必?fù)?dān)心底層的設(shè)備驅(qū)動(dòng)程序,,使軟件的布署變得更加容易。
1.4.2 DDE介紹
動(dòng)態(tài)數(shù)據(jù)交換(DDE),,即Dynamic Data Exchange的縮寫(xiě),。它是又微軟公司提出的,目前主要還是應(yīng)用在win98和 winnt4.0的操作系統(tǒng)上,,在新的操作系統(tǒng)上只是給予了兼容,。DDE是基于WINDOWS的消息機(jī)制,兩個(gè)WINDOWS應(yīng)用程序通過(guò)相互之間傳遞消息進(jìn)行“對(duì)話(huà)”,,從而完成數(shù)據(jù)的請(qǐng)求,、應(yīng)答、傳輸,,這兩個(gè)程序分別被稱(chēng)為“Server”和“Client”,。Server是數(shù)據(jù)的提供者,Client 是數(shù)據(jù)的請(qǐng)求和接受者,。DDE的Server是一個(gè)維護(hù)著其他WINDOWS程序可能使用的數(shù)據(jù)的程序,,而DDE的Client則是從Server獲得這些數(shù)據(jù)的程序。
一旦“Server”和“Client”建立了連接關(guān)系,,則當(dāng)“Server”中的數(shù)據(jù)發(fā)生變化后就會(huì)馬上通知“Client”,。通過(guò)DDE方式建立的數(shù)據(jù)連接通道是雙向的,即“Client”不但能讀取“Server”中的數(shù)據(jù),,還能對(duì)其進(jìn)行修改,。
DDE方式的通訊,主要是建立在2個(gè)WINDOWS應(yīng)用程序之間,,當(dāng)前的大多數(shù)基于Windows應(yīng)用程序仍然支持DDE,,但是DDE的缺點(diǎn)也很明顯,那就是通信效率低下,,當(dāng)通信數(shù)據(jù)量大時(shí)數(shù)據(jù)的刷新慢,。
1.4.3力控區(qū)域?qū)崟r(shí)數(shù)據(jù)庫(kù)的分布式應(yīng)用。
實(shí)時(shí)數(shù)據(jù)庫(kù)是組態(tài)軟件的核心部件,,實(shí)時(shí)數(shù)據(jù)庫(kù)運(yùn)行系統(tǒng)完成對(duì)數(shù)據(jù)庫(kù)的各種操作,,包括:實(shí)時(shí)數(shù)據(jù)處理、歷史數(shù)據(jù)存儲(chǔ),、統(tǒng)計(jì)數(shù)據(jù)處理,、報(bào)警處理、數(shù)據(jù)服務(wù)請(qǐng)求處理等,。力控 的實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)同時(shí)也是一個(gè)分布式數(shù)據(jù)庫(kù)系統(tǒng),。由于許多情況要求將數(shù)據(jù)庫(kù)存儲(chǔ)在地理上分布在不同位置的不同計(jì)算機(jī)上,,通過(guò)計(jì)算機(jī)網(wǎng)絡(luò)實(shí)現(xiàn)物理上分布,邏輯上集中的數(shù)據(jù)庫(kù),,即具有分布式的透明性,。用力控創(chuàng)建的數(shù)據(jù)庫(kù),數(shù)據(jù)在物理上分布在不同的地理位置或同一位置的不同的計(jì)算機(jī)上,,但在用戶(hù)操作時(shí)感覺(jué)不到數(shù)據(jù)的分布,。用戶(hù)看到的似乎不是一個(gè)分散的數(shù)據(jù)庫(kù),而是一個(gè)數(shù)據(jù)模式為全局?jǐn)?shù)據(jù)模式的集中式數(shù)據(jù)庫(kù),。在構(gòu)建力控分布式數(shù)據(jù)庫(kù)時(shí),,力控系統(tǒng)支持的網(wǎng)絡(luò)通信方式有:TCP/IP網(wǎng)絡(luò)、串行通信(RS232/422/485),、電話(huà)撥號(hào)網(wǎng)絡(luò)等,。
力控的數(shù)據(jù)庫(kù)及管理系統(tǒng)的性能介紹:
真正的分布式結(jié)構(gòu),同時(shí)支持C/S ,、B/S應(yīng)用,;分布式數(shù)據(jù)庫(kù)結(jié)構(gòu)可任意組建各種規(guī)模的企業(yè)應(yīng)用;實(shí)時(shí)數(shù)據(jù)庫(kù)系統(tǒng)具有高可靠性和數(shù)據(jù)的完整性,;提供功能強(qiáng)大的企業(yè)級(jí)實(shí)時(shí)信息系統(tǒng)客戶(hù)端應(yīng)用工具;靈活的擴(kuò)展結(jié)構(gòu)可滿(mǎn)足用戶(hù)的各種需求,;告訴的數(shù)據(jù)存儲(chǔ)和檢索功能,;實(shí)時(shí)數(shù)據(jù)庫(kù)是單獨(dú)的進(jìn)程,可以與HMI分離運(yùn)行,;實(shí)現(xiàn)了毫秒級(jí)數(shù)據(jù)采集和采集器的時(shí)間同步,;以高壓縮比保存數(shù)據(jù),實(shí)現(xiàn)了歷史數(shù)據(jù)的海量存儲(chǔ),;支持OPC,、DDE、ODBC,、ActiveX等標(biāo)準(zhǔn),;可以從DCS、PLC,、以及其他SCADA系統(tǒng)中讀寫(xiě)過(guò)程數(shù)據(jù),。
1.4.4 RS485總線(xiàn)上的智能儀表數(shù)據(jù)讀取
有些崗位安裝了許多的智能儀表,比如氣體流量計(jì)等,,這類(lèi)儀表內(nèi)部集成了數(shù)字電路,,可以完成部分的數(shù)據(jù)處理功能,并把數(shù)據(jù)保存在儀表的寄存器里,,并支持 RS485方式的數(shù)據(jù)傳輸,,所以我們就把這類(lèi)智能儀表分類(lèi)組成一個(gè)或幾個(gè)485網(wǎng)絡(luò),,把力控服務(wù)器也連在485網(wǎng)絡(luò)里,做為485網(wǎng)絡(luò)的主機(jī),,總線(xiàn)上的其它儀表,,做為從機(jī),主機(jī)通過(guò)總線(xiàn)按照通訊協(xié)議向從機(jī)發(fā)命令,,把從機(jī)寄存里里的數(shù)據(jù)讀過(guò)來(lái),。如果485網(wǎng)絡(luò)超過(guò)2個(gè)的話(huà),就在服務(wù)器上安裝多串口卡來(lái)解決,。
然后在力控PCAUTO里設(shè)置智能儀表的I/O驅(qū)動(dòng),,如果找不到這類(lèi)儀表的驅(qū)動(dòng),可以按照儀表廠家提供的RS485通訊協(xié)議,,仿照力控提供的驅(qū)動(dòng)格式,,自己編寫(xiě)儀表的驅(qū)動(dòng)。然后就可以在力控PCAUTO里簡(jiǎn)單的進(jìn)行組態(tài)設(shè)置,,讀取智能儀表的讀數(shù),。
1.5系統(tǒng)建設(shè)過(guò)程
1.5.1 橫河CS1000系統(tǒng)取數(shù)
OPC客戶(hù)和OPC服務(wù)器進(jìn)行數(shù)據(jù)交互有2種訪問(wèn)方式:同步和異步方式。同步方式實(shí)現(xiàn)較為簡(jiǎn)單,,客戶(hù)向服務(wù)器發(fā)出讀寫(xiě)請(qǐng)求,,然后等待服務(wù)器返回信息,當(dāng)客戶(hù)數(shù)據(jù)較少而且同服務(wù)器交互的數(shù)據(jù)量比較少的時(shí)候可以采用這種方式,,然而當(dāng)網(wǎng)絡(luò)堵塞或大量客戶(hù)訪問(wèn)時(shí),,會(huì)造成系統(tǒng)的性能效率下降。
異步方式實(shí)現(xiàn)較為復(fù)雜,,客戶(hù)向服務(wù)器發(fā)出讀寫(xiě)請(qǐng)求后,,服務(wù)器立刻返回信息表示請(qǐng)求已接受,客戶(hù)可以進(jìn)行其他處理,,當(dāng)服務(wù)器完成讀寫(xiě)操作后,,通過(guò)調(diào)用回調(diào)函數(shù),通知客戶(hù)程序操作完成,,并傳遞相應(yīng)的信息,,因此異步方式的效率更高,能夠避免多客戶(hù)大數(shù)據(jù)請(qǐng)求的阻塞,,并可以最大限度地節(jié)省CPU和網(wǎng)絡(luò)資源,。
橫河的opc數(shù)據(jù)交互屬于異步方式,需要在客戶(hù)端計(jì)算機(jī)上注冊(cè)幾個(gè)相關(guān)的動(dòng)態(tài)連接庫(kù)文件到操作系統(tǒng),,這樣才能完成opc的Client和Server的數(shù)據(jù)交互,。
然后在力控PCAUTO里定義I/O設(shè)備,添加一個(gè)OPC的Client,,配好IP地址后,,刷新就可以找到對(duì)應(yīng)IP的CS1000的計(jì)算機(jī)系統(tǒng)里的OPC Server,,配置過(guò)程如下圖:
配置好OPC的Client后,在力控的數(shù)據(jù)庫(kù)組態(tài)里面,,添加相應(yīng)的數(shù)據(jù)點(diǎn),,如下圖:
這樣就完成了橫河CS1000的OPC在力控PCAUTO里的配置,可以同步橫河CS1000系統(tǒng)里的數(shù)據(jù)了,。
完成組態(tài)后的畫(huà)面之一如下
1.5.2熱媒爐崗三菱PLC的OPC取數(shù)過(guò)程
三菱的PLC比較通用,,支持這個(gè)硬件的OPC Server程序很多,我們選擇的是KepServer軟件,。這個(gè)程序支持很多硬件,,可以在和硬件建立通訊后,把底層設(shè)備實(shí)時(shí)的數(shù)據(jù)取數(shù)以O(shè)PC Server的形式發(fā)布和其它軟件進(jìn)行數(shù)據(jù)交互,,完成上位監(jiān)控,、參數(shù)設(shè)置等功能。
配置過(guò)程如下圖:
配置好OPC Server后,,同樣在力控PCAUTO里面添加I/O設(shè)備
再在力控PCAUTO的實(shí)時(shí)數(shù)據(jù)庫(kù)組態(tài)里面添加數(shù)據(jù)庫(kù)點(diǎn),。
組態(tài)完成后的畫(huà)面如下:
1.5.3DDE方式取IFIX的數(shù)
IFIX軟件支持微軟的DDE動(dòng)態(tài)數(shù)據(jù)交換,我們?cè)O(shè)計(jì)的是在崗位的從監(jiān)控機(jī)上安裝一套力控,,用力控通過(guò)DDE方式和IFIX進(jìn)行數(shù)據(jù)交互,,然后利用力控PCAUTO的網(wǎng)絡(luò)數(shù)據(jù)源功能,從服務(wù)器上間接取到IFIX的實(shí)時(shí)數(shù)據(jù),。
首先必須啟動(dòng)IFIX里面的一個(gè)DDE Server模塊,,把這個(gè)模塊設(shè)置成隨IFIX同時(shí)啟動(dòng),這樣IFIX才能在運(yùn)行中,,支持DDE的程序,。
然后在力控PCAUTO里面添加一個(gè)DDE的I/O設(shè)備:
再在力控PCAUTO的實(shí)時(shí)數(shù)據(jù)庫(kù)組態(tài)里面添加數(shù)據(jù)庫(kù)點(diǎn),。
組態(tài)完成后的畫(huà)面如下:
1.5.4NETDDE方式取INTouch的數(shù)據(jù)
Netdde是通過(guò)網(wǎng)絡(luò)借助DDE進(jìn)行數(shù)據(jù)交互的一種方式,,在使用Netdde之前,必須對(duì)2臺(tái)計(jì)算機(jī)進(jìn)行DDE的一些相關(guān)配置,,添加DDE共享,、信任共享設(shè)置等,具體設(shè)置見(jiàn)下圖:
再在力控PCAUTO的實(shí)時(shí)數(shù)據(jù)庫(kù)組態(tài)里面添加數(shù)據(jù)庫(kù)點(diǎn),。
組態(tài)完成后的畫(huà)面如下:
1.5.5取智能儀表的讀數(shù)
取智能儀表讀數(shù)的關(guān)鍵是找到合適I/O驅(qū)動(dòng),,如果是比較常見(jiàn)的儀表,力控一般都支持,,然后在力控的I/O設(shè)備里添加此儀表的驅(qū)動(dòng),,然后在數(shù)據(jù)庫(kù)里面組點(diǎn)即可。有一些不常見(jiàn)的儀表,,可以找到它的485通訊協(xié)議原文,,按照力控提供的驅(qū)動(dòng)開(kāi)發(fā)SDK包,,自己進(jìn)行開(kāi)發(fā)。
下面是我們通過(guò)485方式讀取的幾塊電表的相關(guān)參數(shù)圖:
1.6參考文獻(xiàn)
《監(jiān)控組態(tài)軟件及其應(yīng)用》 馬國(guó)華 著
OPC技術(shù)在監(jiān)控系統(tǒng)中的應(yīng)用 司紀(jì)剛 徐潔