SCADA是Supervisory Control And Data Acquisition的英文縮寫(xiě),國(guó)內(nèi)流行叫法為監(jiān)控組態(tài)軟件。從字面上講,它不是完整的控制系統(tǒng),而是位于控制設(shè)備之上,側(cè)重于管理的純軟件。SCADA所接的控制設(shè)備通常是PLC(可編程控制器),也可以是智能表,板卡等。
早期的SCADA運(yùn)行與DOS,UNIX,VMS.現(xiàn)在多數(shù)運(yùn)行在Windows操作系統(tǒng)中,有的可以運(yùn)行在Linux系統(tǒng)。
SCADA不只是應(yīng)用于工業(yè)領(lǐng)域,如鋼鐵、電力、化工,還廣泛用于食品,醫(yī)藥、建筑、科研等行業(yè)。其連接的I/O通道數(shù)從幾十到幾萬(wàn)不等。下面就其結(jié)構(gòu)、功能、接口、開(kāi)發(fā)工具等方面予以介紹。
一、SCADA體系結(jié)構(gòu)
1.1 硬件結(jié)構(gòu)
通常SCADA系統(tǒng)分為兩個(gè)層面,即客戶(hù)/服務(wù)器體系結(jié)構(gòu)。服務(wù)器與硬件設(shè)備通信,進(jìn)行數(shù)據(jù)處理何運(yùn)算。而客戶(hù)用于人機(jī)交互,如用文字、動(dòng)畫(huà)顯示現(xiàn)場(chǎng)的狀態(tài),并可以對(duì)現(xiàn)場(chǎng)的開(kāi)關(guān)、閥門(mén)進(jìn)行操作。近年來(lái)又出現(xiàn)一個(gè)層面,通過(guò)Web發(fā)布在Internat上進(jìn)行監(jiān)控,可以認(rèn)為這是一種"超遠(yuǎn)程客戶(hù)".
硬件設(shè)備(如PLC)一般既可以通過(guò)點(diǎn)到點(diǎn)方式連接,也可以以總線方式連接到服務(wù)器上。點(diǎn)到點(diǎn)連接一般通過(guò)串口(RS232),總線方式可以是RS485,以太網(wǎng)等連接方式??偩€方式與點(diǎn)到點(diǎn)方式區(qū)別主要在于:點(diǎn)到點(diǎn)是一對(duì)一,而總線方式是一對(duì)多,或多對(duì)多。
在一個(gè)系統(tǒng)中可以只有一個(gè)服務(wù)器,也可以有多個(gè),客戶(hù)也可以一個(gè)或多個(gè)。只有一個(gè)服務(wù)器和一個(gè)客戶(hù)的,并且二者運(yùn)行在同一臺(tái)機(jī)器上的就是通常所說(shuō)的單機(jī)版。服務(wù)器之間,服務(wù)器與客戶(hù)之間一般通過(guò)以太網(wǎng)互連,有些場(chǎng)合(如安全性考慮或距離較遠(yuǎn))也通過(guò)串口、電話撥號(hào)或GPRS方式相連。
1.2 軟件體系結(jié)構(gòu)
SCADA有很多任務(wù)組成,每個(gè)任務(wù)完成特定的功能。位于一個(gè)或多個(gè)機(jī)器上的服務(wù)器負(fù)責(zé)數(shù)據(jù)采集,數(shù)據(jù)處理(如量程轉(zhuǎn)換、濾波、報(bào)警檢查、計(jì)算、事件記錄、歷史存儲(chǔ)、執(zhí)行用戶(hù)腳本等)。服務(wù)器間可以相互通訊。有些系統(tǒng)將服務(wù)器進(jìn)一步單獨(dú)劃分成若干專(zhuān)門(mén)服務(wù)器,如報(bào)警服務(wù)器,記錄服務(wù)器,歷史服務(wù)器,登錄服務(wù)器等。各服務(wù)器邏輯上作為統(tǒng)一整體,但物理上可能放置在不同的機(jī)器上。分類(lèi)劃分的好處是可以將多個(gè)服務(wù)器的各種數(shù)據(jù)統(tǒng)一管理、分工協(xié)作,缺點(diǎn)是效率低,局部故障可能影響整個(gè)系統(tǒng)。
典型的硬件配置圖如下:
1.3 通信
1.3.1內(nèi)部通信
客戶(hù)與服務(wù)器間以及服務(wù)器與服務(wù)器間一般有三種通信形式,請(qǐng)求式,訂閱式與廣播式。請(qǐng)求式:客戶(hù)周期性向服務(wù)器發(fā)出請(qǐng)求,然后服務(wù)器為客戶(hù)準(zhǔn)備數(shù)據(jù),傳送給客戶(hù)。
訂閱式:客戶(hù)向服務(wù)器注冊(cè)所關(guān)心數(shù)據(jù),服務(wù)器記錄每個(gè)用戶(hù)關(guān)心的數(shù)據(jù)。當(dāng)數(shù)據(jù)變化通知相應(yīng)的用戶(hù)。
廣播式:當(dāng)數(shù)據(jù)的變化時(shí),服務(wù)器向所有客戶(hù)發(fā)出通知。
1.3.2與I/O設(shè)備通信
1) 通信模式
設(shè)備驅(qū)動(dòng)程序與I/O設(shè)備通訊一般采用請(qǐng)求式,大多數(shù)設(shè)備都支持這種通訊方式,當(dāng)然也有的設(shè)備支持主動(dòng)發(fā)送方式。主動(dòng)發(fā)送方式即I/O設(shè)備在數(shù)據(jù)改變時(shí)主動(dòng)向外界報(bào)告數(shù)據(jù)。有的設(shè)備也支持訂閱式通信。設(shè)備驅(qū)動(dòng)程序應(yīng)該能夠支持各種通信模式。
2) 通信協(xié)議
通信協(xié)議即與設(shè)備間的會(huì)話格式,可以理解為一種簡(jiǎn)單的交流語(yǔ)言。這些語(yǔ)言有一定的地方性,尤其是國(guó)產(chǎn)的PLC,智能儀表。常見(jiàn)的協(xié)議有Modbus, Profibus等。設(shè)備驅(qū)動(dòng)程序必須為每種協(xié)議編制相應(yīng)的代碼。開(kāi)發(fā)一設(shè)備驅(qū)動(dòng)一般為1~5周,這要根據(jù)協(xié)議的復(fù)雜程度決定。軟件商一般將該部分做成標(biāo)準(zhǔn)開(kāi)發(fā)包,用戶(hù)可以自己開(kāi)發(fā)。
服務(wù)器可同時(shí)帶有多個(gè)不同種類(lèi)的驅(qū)動(dòng)程序,這樣服務(wù)器就可以同時(shí)跟多種設(shè)備進(jìn)行通信。