概要:本文主要介紹勝利油田集輸公司下屬的大型站庫(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總線讀智能表。
關(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ǔ),采用客戶/服務(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客戶應(yīng)用程序通信完成數(shù)據(jù)交換,如圖1所示。OPC服務(wù)器屏蔽了現(xiàn)場(chǎng)層的設(shè)備驅(qū)動(dòng)程序;客戶應(yīng)用程序開(kāi)發(fā)人員看到的,只是OPC服務(wù)器提供的統(tǒng)一接口,而不必再去關(guān)心現(xiàn)場(chǎng)設(shè)備的驅(qū)動(dòng)程序。只要客戶應(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ā)的客戶應(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ù)。如果用戶需要擴(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ì)話”,從而完成數(shù)據(jù)的請(qǐng)求、應(yīng)答、傳輸,這兩個(gè)程序分別被稱為“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ī)上,但在用戶操作時(shí)感覺(jué)不到數(shù)據(jù)的分布。用戶看到的似乎不是一個(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)、電話撥號(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)客戶端應(yīng)用工具;靈活的擴(kuò)展結(jié)構(gòu)可滿足用戶的各種需求;告訴的數(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總線上的智能儀表數(shù)據(jù)讀取
有些崗位安裝了許多的智能儀表,比如氣體流量計(jì)等,這類儀表內(nèi)部集成了數(shù)字電路,可以完成部分的數(shù)據(jù)處理功能,并把數(shù)據(jù)保存在儀表的寄存器里,并支持RS485方式的數(shù)據(jù)傳輸,所以我們就把這類智能儀表分類組成一個(gè)或幾個(gè)485網(wǎng)絡(luò),把力控服務(wù)器也連在485網(wǎng)絡(luò)里,做為485網(wǎng)絡(luò)的主機(jī),總線上的其它儀表,做為從機(jī),主機(jī)通過(guò)總線按照通訊協(xié)議向從機(jī)發(fā)命令,把從機(jī)寄存里里的數(shù)據(jù)讀過(guò)來(lái)。如果485網(wǎng)絡(luò)超過(guò)2個(gè)的話,就在服務(wù)器上安裝多串口卡來(lái)解決。
然后在力控PCAUTO里設(shè)置智能儀表的I/O驅(qū)動(dòng),如果找不到這類儀表的驅(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客戶和OPC服務(wù)器進(jìn)行數(shù)據(jù)交互有2種訪問(wèn)方式:同步和異步方式。同步方式實(shí)現(xiàn)較為簡(jiǎn)單,客戶向服務(wù)器發(fā)出讀寫(xiě)請(qǐng)求,然后等待服務(wù)器返回信息,當(dāng)客戶數(shù)據(jù)較少而且同服務(wù)器交互的數(shù)據(jù)量比較少的時(shí)候可以采用這種方式,然而當(dāng)網(wǎng)絡(luò)堵塞或大量客戶訪問(wèn)時(shí),會(huì)造成系統(tǒng)的性能效率下降。
異步方式實(shí)現(xiàn)較為復(fù)雜,客戶向服務(wù)器發(fā)出讀寫(xiě)請(qǐng)求后,服務(wù)器立刻返回信息表示請(qǐng)求已接受,客戶可以進(jìn)行其他處理,當(dāng)服務(wù)器完成讀寫(xiě)操作后,通過(guò)調(diào)用回調(diào)函數(shù),通知客戶程序操作完成,并傳遞相應(yīng)的信息,因此異步方式的效率更高,能夠避免多客戶大數(shù)據(jù)請(qǐng)求的阻塞,并可以最大限度地節(jié)省CPU和網(wǎng)絡(luò)資源。
橫河的opc數(shù)據(jù)交互屬于異步方式,需要在客戶端計(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)下圖:
[align=center]
[/align]
再在力控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ù)圖: