主站一般采用先進的計算機,有著良好的圖形支持,現在采用PC計算機和WINDOWS系統居多,在歷史上,曾經有很多系統采用UNIX系統和XWINDOWS圖形界面。一個主站可能的分站數量從幾十到幾百、幾千個不等。
SCADA主站系統主要包括計算機硬件和計算機軟件構成。
作為SCADA主站系統,大的系統可能有幾十個上百個工作站,多個服務器。為了保證系統的可靠性,采用雙前置系統,多服務器系統,兩個網絡。但是對于簡單的SCADA主站系統可能就只有一臺計算機,運行一套軟件。
軟件主要包括如下模塊:
1 規約接口模塊
2 實時數據庫軟件
3 圖形界面
4 制圖軟件
5 歷史數據軟件
6 上層應用軟件
7 報警模塊
龐大的主站系統一般包括如下硬件內容:
通訊前置系統,主要負責解析各種不同的規約,完成通訊接口數據處理,包括數據轉發。包括前置計算機、串口池或者MODEM池,機架,防雷措施和網絡接口。根據系統的規模可能有一個,兩個甚至多個前置計算機。串口池是多個串口構成的集合,有兩種方式,一種是插在計算機上的多串口卡,一種是以太網接口的多串口服務器。MODEM池是多個MODEM的集合,可以采用多個MODEM或者采用DSP技術的集成式MODEM(一個接口可以提供30個MODEM)。
各種數據網關把各種不同的協議進行解析,轉換成統一的數據存儲于實時數據庫中。某種意義上前置系統是一種特殊的網關設備。
實時數據庫系統,主要包括運行實時數據庫的服務器。
工程師工作站,負責系統的組態、畫面制作和系統的各種維護。
生產調度工作站,是監控系統的主要用戶,顯示畫面,畫面瀏覽,實現各種報警等。
各種監控工作站,主要用于特別龐大的系統,幾個人已經無法監控的情況,這時會根據需要,設立各種的監控工作站,每個工作站有人員工作。
歷史數據庫服務器,是SCADA系統保存歷史數據的服務器。
WEB服務器,是現在SCADA主站系統的一個流行趨勢,只要用戶裝有瀏覽器軟件,得到相應的授權,就可以訪問相應的他關心的數據。
上層應用工作站,主要用于實時數據和歷史數據的挖掘工作。在電力系統比如潮流分析,負荷預測,事故追憶,電網穩定性分析,能量管理等等。在自來水行業包括管網壓力損耗分析,管網經濟性分析,管網漏失分析等。在采油工程上,包括示功圖顯示,示功圖分析,泵況分析,功圖計產等等。
支撐硬件:
因為SCADA系統要求365D×24H連續工作,電源系統要求比較苛刻,除了雙回供電,還要求有保證系統供電的UPS系統,甚至柴油發電機。
用于系統輸出的打印機系統方便用戶了解工作狀態的模擬屏系統,這是因為有時整個SCADA系統的畫面過于龐雜,而調度人員可能關心的數據沒有那么多,而且在計算機的屏幕上無法全面顯示,為了調度人員了解全局,需要一個N平方米的模擬屏顯示,而且有些操作可以在模擬屏上演練。
大型投影裝置,主要方式有背投,投影儀,電視墻等,其原因基本與模擬屏類似,可以降低調度人員的勞動強度。安裝機柜和布線空調系統,為了系統可靠工作和人員的舒適性,需要空調系統,而且這樣的空調系統不同于家庭空調,可能要求24小時工作。
系統軟件龐大而復雜,其軟件劃分有時候類似于盲人摸象,怎么看都有其道理。軟件劃分的目的是為了軟件的編制和維護。一個好的軟件架構超過一堆程序員的辛苦努力。軟件劃分的方法一般分為模塊方法,把軟件劃成很多的模塊,軟件通過模塊通訊的方法進行耦合,對于簡單的程序一般采用模塊法。模塊間的接口只要定義清楚,修改一個模塊不會影響到其它模塊的功能。
還有一種劃分方法是層次法,把軟件分為很多層,軟件是按照層次關系進行操作,比如對于操作系統就必須按照層次進行分析,層次法的好處對于某一層不滿意,只有層間的關系劃分得很合理,就可以重新編寫一個層替換原來的層,而不需要修改其它代碼。
而實際上對于復雜的軟件系統一般采用的是模塊層次的劃分方法,既要按照層的概念定義操作的層次關系,又要按照模塊的方法劃分同層間的模塊關系。
監控系統的層次構成如下,但實際為了軟件編制的方便和軟件的效率,也未必完全按照這個層次模型進行劃分和編寫,因為完全模塊化和層次化后系統的效率可能很低,影響性能,允許跨層次的訪問,一般不允許跨模塊的訪問。
| 上層應用軟件 | 數據挖掘軟件 | 狀態分析軟件 | WEB發表 | ||||
| 圖形界面 | 圖形工具 | 報警 | 歷史數據 | 其它應用 | |||
| 實時數據庫 | 數據庫服務器/GIS服務器 | ||||||
| 規約接口 | OPC | OLE | 其它接口 | ||||
| 操作系統 | |||||||
| 硬件驅動 | 圖形接口 | 文件系統 | 網絡系統 | ||||
從軟件劃分的角度看規約接口模塊是整個監控軟件直接和控制設備打交道的,從監控系統的數據來源來看它是最底層的數據提供者,它所服務的對象是實時數據庫。它是系統數據的來源,也是系統操作執行的輸出模塊。
一般按照規約不同,進行模塊的劃分,不同的規約采用不同的模塊實現,OPC和OLE由專門的模塊實現,不同的OPC和OLE采用不同的模塊實現。
規約的實現有的是沒有層次的,很多也是有層次的。具有層次的規約好處在于在一種通訊模式下的規約很容易在其它通訊模式下實現。規約的調度可以采用單線程或者多線程的方式,單線程實現簡單,容易管理,但是效率低。多線程的優點在于效率高,缺點是編寫復雜管理復雜。
所有的規約都可以用有限狀態機模型進行描述,采用狀態機,畫出狀態轉移圖后,編寫程序時,可以非常清楚狀態間的轉移和轉移條件,避免進入死狀態或者出現餓死的狀態。
其實規約很多都是有其層次結構的,一般包括物理層、鏈路層和應用層(不可能采用七層模型,那樣太復雜效率太低,軟件編寫業太復雜),實現時也按照層次實現。協議的分層是指協議報文的頭和內容的關系,下層一般把上層的數據作為載荷使用。
規約接口模塊可以由軟件在前置系統實現,也可以通過硬件(網關設備)實現。所有的數據都寫入實時數據庫。
現在SCADA系統的規約很多,關于規約的問題在其它章節闡述。
先進的監控組態軟件都有一個實時數據庫作為整個系統數據處理、數據組織和管理的核心。也有人稱其為數據詞典。實時數據庫與基于傳統數據庫技術的數據庫(如:關系數據庫)在原理、實現技術、功能和系統性能方面有很大的不同。集成了實時數據庫功能的組態軟件的應用范圍更為廣闊,尤其是在時間關鍵型應用中。
但實時數據庫并不是數據庫技術和實時系統兩者的簡單結合,它在概念、理論、技術、方法和機制方面具備自身特點。如:數據庫的結構與組織;數據處理的優先級控制、調度和并發控制協議與算法;數據和事務特性的語義及其與一致性、正確性的關系;數據查詢/事務處理算法與優化;I/O調度、恢復、通信的協議與算法,等等,這些問題之間彼此高度相關。
實時數據庫無縫地集成了數據庫與定時性,在對數據庫能力和實時處理技術兩者均有要求的各種領域有著極其廣泛的應用前景,集成了實時數據庫的監控組態軟件,對多種工程或過程及時間關鍵型應用更是必要而迫切的,為國家的現代化尤其是自動化建設及國民經濟的發展提供有力的、必不可少的支持,在信息技術、信息高速公路及信息產業的建設中起到重大作用。
利用實時數據庫可以完成以下應用:
1.記錄實時過程的歷史數據,用于過程存檔、歷史數據查詢、事故分析、系統建模等。
2.連接各種類型的自控設備(如:DCS、PLC、智能模塊、板卡、智能儀表、控制器、變頻器等),配以監控界面,實現自動監控。
3.通過數據庫網絡通訊功能構建分布式應用系統。
4.運行在控制系統(包括DCS大型控制系統或其它中小控制系統)的上位機中,在數據庫上運行先進控制軟件、優化控制軟件和其它用戶應用程序,在客戶機上運行各種界面監控軟件,快捷方便地實現可擴展的先進控制或優化控制的目標。
5.連接多種控制系統和設備,實現車間級、分廠級及總廠級實時數據綜合利用和管理。
6.配合關系數據庫管理系統,構建生產指揮調度系統及其它管控一體化系統。
7.通過數據的Web功能,利用Internet/Intranet資源,在瀏覽器上訪問生產過程數據。
8.完全的開放功能,以實時數據庫為平臺進行再次開發。
指將采集的數據,用各種計算機圖形技術展示給使用者而提供給使用者的界面。
主要包括圖和動畫連接。圖指展示給用戶的圖形,動畫鏈接是指讓圖隨著數據的改變而發生變化。比如在圖上存在一個指示燈,與實時數據庫內的一個離散變量X進行動畫連接,那么當X=0時至少燈為綠色,X=1時指示燈為紅色。不同的軟件對動畫連接的叫法不一樣,動畫連接的詞最早見于組態軟件。
為了方便用戶根據需要產生各種方便的圖形,一般主站軟件給用戶提供了很多類型的圖元供用戶使用。圖元大體可以分為:
基本圖元如點、線、矩形、圓形、文字等,這些圖元的形狀、顏色、填充、文字等在動畫連接后可以隨著變量的改變而改變。
復雜圖元可以是綜合了很多基本圖元而生成的圖元,它的屬性更多,更為復雜,比如X-Y曲線,圓餅圖,指示儀表。
對象圖元更為復雜,也更利于用戶的使用,比如可以把一個爐子定義成一個對象圖元,把一個管道定義為對象圖元。
結合GIS系統,可以對數據進行多個層面多維度的展現。在很多的SCADA系統中需要了解采集控制對象和地理分布的關系,這就需要強大的GIS系統的支持。目前的主站軟件把這二者結合的不是很多。
提供給開發工程師的工具。因為一個軟件即使功能再強大,提供的圖元再多也有不能滿足用戶要求的時候。這時需要提供一種可以開發復雜圖元和對象圖元的工具。用戶可以根據自己的需要開發圖元。提供這樣的工具可以把原來需要軟件提供商做的工作交給用戶做,如果存在很好的交流和利益分配機制,可以把用戶變成開發者,這樣對于發展客戶和提高軟件的功能很有益處。
報警模塊主要用于提示操作人員,主要包括如下類型的報警信息.開關量輸入狀態變化報警,指開關量輸入信號的狀態發生改變,如斷路器的位置從合變為分,閥的狀態由通變為斷等待。
這種狀態的變化可能直接導致嚴重的事故或者對系統的運行有巨大的影響。模擬量超限報警,指模擬量超過或者低于設定的限值,比如管道溫度高于設定值,這種狀態的可能會導致產品質量下降或者造成人身安全事故。
模擬量報警一般包括上上限、上限、下限、下下限等,有時用顏色加以區分。報警模塊從實時數據庫讀取數據,進行處理,產生報警事件。報警事件寫入歷史報警記錄。
事故追憶(SOE),有時為了分析系統出現故障時系統的狀態,便于找出事故原因,需要知道各個重要點數據和時間。這就需要SOE。SOE事件記錄的產生是在RTU內部產生并存儲,實質是具有時標的信息(也就是把信息上打上時間標簽),主站端需要把這些數據讀出來并顯示,存入歷史報警數據庫中。SOE系統需要整個系統的時鐘同步,而且要求同步精度很高(1mS),所以對整個系統要求很高。過去很難有一種辦法解決這個問題,現在的網絡時鐘同步和GPS可以很好的解決。
歷史數據是整個SCADA系統的財富。歷史數據是按照時間或者其它規則把實時數據庫內容轉成歷史記錄。歷史數據的記錄很龐大,一年的記錄數據可能就有幾個GB甚至幾十個GB的數據量。所以對歷史數據庫服務器的內存和存儲以及CPU的速度要求比較高。因為在數據挖掘的時候,需要大量的遍歷歷史數據。
為了滿足信息化建設的要求,避免建設成為信息化孤島,現在主流的主站軟件都有網絡發布功能或者模塊。網絡發布包括很多種形式,目前最流行的是WEB發布,這是因為隨著互聯網的發展,WEB瀏覽器成為目前個人計算機的主要軟件配置,而且瀏覽器軟件大多數是免費的,功能相當的強大,用戶數量眾多。
這樣通過WEB進行發布不需要安裝軟件,不需要培訓客戶,用戶也習慣這樣獲得數據。缺點:安全性差和速度慢網絡發布的另外的形式是需要客戶安裝客戶端軟件,客戶端軟件是收費的,所以這種方式不太受歡迎。但是其優點也很明顯,安全性高,速度也快,而且甚至不需要借助于網絡,通過電話線、RS485、RS232接口都可以。網絡發布的另外一種形式是通過實時數據庫和歷史數據庫發布,這種發布一般不是給人看的,是應用軟件間的一種數據傳遞方式。其它的方式如基于網絡的OPC,COBRA等等。
主站系統按照工作階段可以分為系統開發階段和系統運行階段。系統開發階段:是設計工程師為實施其控制方案,在主站軟件的支持下進行應用程序的系統生成工作所必須依賴的工作環境。通過建立一系列用戶數據文件,生成最終的圖形目標應用系統,供系統運行環境運行時使用。系統開發環境由若干個組態程序組成,如圖形界面組態程序、實時數據庫組態程序等。其主要使用者是開發工程師和工藝工程師。
系統運行階段:在系統運行環境下,目標應用程序被裝入計算機內存并投入實時運行。系統運行環境由若干個運行程序組成,如圖形界面運行程序、實時數據庫運行程序等。主站軟件支持在線組態技術,即在不退出系統運行環境的情況下可以直接進入開發環境并修改工程內容,使修改后的工程直接生效。設計工程師最先接觸的一定是系統開發環境,通過一定工作量的系統組態和調試,最終將目標應用程序在系統運行環境投入實時運行,完成一個工程項目。
SCADA系統的上層應用比較復雜,種類繁多,應用五花八門,也就是不同SCADA系統區別的本質所在。因為各種SCADA系統應用85%都是一樣的,差異很小。而差異主要在上層應用和傳感器。應用太多種類,限于筆者的經歷和知識,只能進行一些簡單舉例。路燈監控的開燈時間計算是室外照明應用的一個重要的模塊,是要根據控制地點的經緯度計算每天的開燈關燈時間,下置給RTU設備進行開關燈控制,這個模塊不需要歷史數據,僅僅需要當地的經緯度。
電力系統的短期負荷預報,需要利用去年的歷史數據和當前幾天的歷史數據以及天氣預報情況,根據數據模型,可以進行短期的負荷預報,可以指導調度和發電。油井監控的示功圖分析和示功圖計產,需要根據每口井的示功圖數據進行泵況的分析和泵效的分析,給修井、開井和停井提供數據依據。在地形復雜(山地、丘陵、高原),無法設置計量間的地區,可以根據示功圖進行產量的估計,雖然有誤差,但誤差可以忍受,而且就是有誤差的數據也比沒有誤差好。
供熱管網的管效分析,根據管網出口的壓力和溫度,各個測壓測溫點的數據,取一個時間斷面,可以分析管網的效率,分析供熱的經濟性,甚至為增設和修改管網走向,提供數據依據。水文監控的洪水預警,根據各個RTU采集的降水信息、水位信息等,結合河流流域地區的地貌特征,建立數學模型,可以估計河流的干流和支流的流量,估算水位,發布洪水預告,找出危險地段等等。這種應用關系到人民群眾的生產生活,關系到生命和財產的安全。上層應用只能根據行業進行單獨的開發,不可能一個軟件滿足各行各業的要求。