SCADA中通訊系統(tǒng)顯得非常的重要,可以看成SCADA系統(tǒng)的神經系統(tǒng)。而通訊實際是單獨的一門學科,想在這里用一個章節(jié)講清楚基本是不太可能的。這里只能給出一個粗略的說明,詳細內容可以參考有關通訊系統(tǒng)和原理的書籍。
通信系統(tǒng)的基本模型見圖3-1。圖31-1中發(fā)送端的信息源把消息m轉換成信號g(t)。為了使信號適合于在信道中傳送,由發(fā)送設備將它變換為s(t)后再送人信道。信道是指傳輸信號的通道。圖3-1中噪聲源是信道中的噪聲以及通信系統(tǒng)中其它各處噪聲的集中表示。由于噪聲的干擾,接收端收到的信號r(t)可能不同于s(t)。接收設備把以r(t)轉換為輸出信號g’(t),它是g(t)的近似或估計值,最后受信者將g’(t)轉換成對應的消息m’(t)。
由g(t)到s(t)稱為信道編碼,一般調制方式有ASK,FSK,PSK,QAM,TCM等等。信道編碼經常用在有線和無線通信。隨著DSP計算能力的提高,AD、DA速度和精度的提高,以及數學方法的發(fā)展,現在信道編碼的能力越來越接近香農信息論的理論值,在電話線上,香農信息論的理論值在64K以下,而實際的調制解調器可以達到33.6K甚至56K的速度。
正弦振蕩的載波信號可以用Asin(2*π*ω*t+φ),各種調制方式可以用下面的數學公式加以描述。
ASK 信號s(t)=Asin(2*π*ω*t+φ) g(t)=1
s(t)=0 g(t)=0
FSK 信號s(t)=Asin(2*π*ω1*t+φ) g(t)=1
s(t)=Asin(2*π*ω2*t+φ) g(t)=0
PSK 信號s(t)=Asin(2*π*ω1*t+π) g(t)=1
s(t)=Asin(2*π*ω1*t+0) g(t)=0
PSK和FSK還有很多變型的方式,如DPSK,MSK等。
QAM和TCM過于復雜,在這里不便贅述,請參考有關書籍。
由于通訊過程中存在噪聲干擾,就有可能出現差錯,那么就要進行差錯控制,差錯控制的方法就是編碼。通訊編碼的數學理論基礎是《近世代數》,里面研究群環(huán)域的概念,詳細內容可以參考相關書籍,而編碼解碼、檢錯和糾錯是通信與編碼學科研究的范疇,國內典型的教材是西安電子科技大學王新梅老師編寫的教材,其缺點過于深奧,不太好懂。
而在SCADA系統(tǒng)中經常用的是檢錯,糾錯除了特殊的場合很少使用,檢錯主要是兩種編碼方式校驗和和CRC校驗。
和校驗原理非常簡單,就是對信息進行加法運算或者模2加法運算,接收后對信息進行同樣的運算,比較運算結果和傳輸來的校驗是否一致,如果一致認為是正確的,否則認為錯誤。這個算法實現起來非常簡單,也得到了廣泛的應用,但是其基本原理存在著出現差錯檢不出的可能,適合于信道質量比較好的場合。
CRC校驗方法可以檢出的錯誤遠遠超過了和校驗,適合比較惡劣的通訊場合。
CRC校驗比較復雜一些,它有一個生成多項式g(x),信息可以看成一個i(x),設校驗位為16位,則校驗多項式r(x)=x↑16*i(x)/g(x)。則整個發(fā)送序列多項式為t(x)=x↑16*i(x)/g(x)+r(x)。接收時,如果沒有差錯則用t(x)/g(x)=0,如果有差錯就不是0。這樣就可以知道差錯了。人們已經找到很多的標準生成多項式,比如
CRC-16 g(x)=x↑16+x↑15+x↑2+1
CRC–CCITT g(x)=x↑16+x↑12+x↑5+1
而CRC的計算需要進行移位和模2加運算,計算機除非有專門的硬件設備,否則計算起來很慢,為了提高計算速度,一般采用查表計算的方法,把運算轉換成查表和字節(jié)運算,這樣使得運算速度大大提高。下面的一段程序是MODBUSCRC校驗的計算方法,體現了上述的思想。
constunsignedcharauchCRCHi[]={
0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1
0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0
0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1
0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41
0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0
0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40
0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0
0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40
0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40,0x00,0xC1,0x81,0x40,0x01,0xC0,0x80,0x41,0x00,0xC1
0x81,0x40,0x01,0xC0,0x80,0x41,0x01,0xC0,0x80,0x41,0x00,0xC1,0x81,0x40
};
constunsigned charauchCRCLo[]={
0x00,0xC0,0xC1,0x01,0xC3,0x03,0x02,0xC2,0xC6,0x06,0x07,0xC7,0x05,0xC5,0xC4,0x04,0xCC,0x0C,0x0D,0xCD,0x0F
0xCF,0xCE,0x0E,0x0A,0xCA,0xCB,0x0B,0xC9,0x09,0x08,0xC8,0xD8,0x18,0x19,0xD9,0x1B,0xDB,0xDA,0x1A,0x1E
0xDE,0xDF,0x1F,0xDD,0x1D,0x1C,0xDC,0x14,0xD4,0xD5,0x15,0xD7,0x17,0x16,0xD6,0xD2,0x12,0x13,0xD3,0x11,0xD1
0xD0,0x10,0xF0,0x30,0x31,0xF1,0x33,0xF3,0xF2,0x32,0x36,0xF6,0xF7,0x37,0xF5,0x35,0x34,0xF4,0x3C,0xFC,0xFD
0x3D,0xFF,0x3F,0x3E,0xFE,0xFA,0x3A,0x3B,0xFB,0x39,0xF9,0xF8,0x38,0x28,0xE8,0xE9,0x29,0xEB,0x2B,0x2A,0xEA
0xEE,0x2E,0x2F,0xEF,0x2D,0xED,0xEC,0x2C,0xE4,0x24,0x25,0xE5,0x27,0xE7,0xE6,0x26,0x22,0xE2,0xE3,0x23,0xE1,
0x21,0x20,0xE0,0xA0,0x60,0x61,0xA1,0x63,0xA3,0xA2,0x62,0x66,0xA6,0xA7,0x67,0xA5,0x65,0x64,0xA4,0x6C,0xAC,
0xAD,0x6D,0xAF,0x6F,0x6E,0xAE,0xAA,0x6A,0x6B,0xAB,0x69,0xA9,0xA8,0x68,0x78,0xB8,0xB9,0x79,0xBB,0x7B,0x7A,
0xBA,0xBE,0x7E,0x7F,0xBF,0x7D,0xBD,0xBC,0x7C,0xB4,0x74,0x75,0xB5,0x77,0xB7,0xB6,0x76,0x72,0xB2,0xB3,0x73,
0xB1,0x71,0x70,0xB0,0x50,0x90,0x91,0x51,0x93,0x53,0x52,0x92,0x96,0x56,0x57,0x97,0x55,0x95,0x94,0x54,0x9C,
0x5C,0x5D,0x9D,0x5F,0x9F,0x9E,0x5E,0x5A,0x9A,0x9B,0x5B,0x99,0x59,0x58,0x98,0x88,0x48,0x49,0x89,0x4B,0x8B,
0x8A,0x4A,0x4E,0x8E,0x8F,0x4F,0x8D,0x4D,0x4C,0x8C,0x44,0x84,0x85,0x45,0x87,0x47,0x46,0x86,0x82,0x42,0x43,
0x83,0x41,0x81,0x80,0x40
};
unsignedshortcrc(unsignedchar*puchMsg,unsignedshortusDataLen)
{
unsignedcharuchCRCHi=0xFF;/*highbyteofCRCinitialized*/
unsignedcharuchCRCLo=0xFF;/*lowbyteofCRCinitialized*/
unsigneduIndex;/*willindexintoCRClookuptable*/
while(usDataLen--)/*passthroughmessagebuffer*/
{
uIndex=uchCRCHi^*puchMsg++;/*calculatetheCRC*/
uchCRCHi=uchCRCLo^auchCRCHi[uIndex];
uchCRCLo=auchCRCLo[uIndex];
}
return(uchCRCHi<<8|uchCRCLo);
}
當然,還可以用編碼解碼的方法糾正錯誤,但是實現起來比較復雜,一般只有在信道非常昂貴的時候才使用如衛(wèi)星通道和深空通訊。在SCADA系統(tǒng)中采用可以糾錯的編碼的極少。
通訊由于介質的不同大體可以分為如下的三種類型:
有線、無線和網絡。單獨把網絡拿出來是因為這些年網絡技術發(fā)展很快,目前網絡成了傳輸SCADA信息的一個很重要的方式。
信道分類也可以分為半雙工和全雙工的信道,但是有時即使信道是全雙工的,而協(xié)議是半雙工的,系統(tǒng)也工作在半雙工狀態(tài)。
有線的范疇很廣,常用的包括電話線、音頻電纜、電力載波、同軸電纜、光纖等待,我們這里的有線指的是要有介質連接而且不經過網絡協(xié)議而直接進行SCADA協(xié)議的通訊方式。
在有線信道中,除了載波信道,普遍來看傳輸的速度要高于無線信道,誤碼率低于無線信道,時延也小,可靠性高于無線信道。其缺點是建設投資大,周期長,而且在有些特殊場合根本無法建設有線的通訊方式。
有線信道中有的是直接傳輸的數字信號,比如在雙絞線上走RS485/RS422信號,在雙絞線上通過長線驅動設備進項傳輸,在光纖上直接傳輸的都是數字信號。RS485可以在100KBPS的速度上傳輸1.2千米,長線驅動器可以到19.2KBPS的速度,光纖可以到幾百K甚至幾百兆的速度,傳輸距離可以在幾百米到幾十千米。
有線信道很多要用到調制解調設備,如電話線、音頻電纜、載波通道,其信道容量肯定小于香農信息論容量。電話線中的調制解調器可以達到33.6kbps的速度,而載波通道有的只能到300bps的速度。
無線信道常用的包括無線電臺、微波通訊和衛(wèi)星通訊等。GPRS/CDMA通訊方式列入網絡通訊的范疇。
無線電臺由于收到帶寬的限值,其信道一般為25KHZ,無線電管理委員會專門劃出幾個頻段用于無線數據傳輸,
主要包括150MHZ頻段,230MHZ頻段和470MHZ頻段。目前的調制解調技術可以做到的速度從600bps到19200bps不等。目前一般都是采用調制解調器和無線電臺做在一起的數傳電臺。采用無線電臺中心站要復雜一些,為了系統(tǒng)能夠更好的通訊,需要建設一個很高的全向天線,有的是安裝在樓頂,有的是建設專門的鐵塔。實施前要進行頻點干擾測試、遮擋測試、場強測試等。無線電臺受到地形和建筑的影響相當嚴重,有時會出現本來通訊很好,在中間出現一個高層建筑導致無法通訊。無線電臺有時不適宜于城市應用,也不適宜于山區(qū)、高原、丘陵地帶使用。適合于平原農村和水面應用。
無線電臺是一個典型的半雙工輪詢系統(tǒng),系統(tǒng)如果點數很多,輪詢一遍所花的時間可能會長達幾分鐘甚至更長。另外必須區(qū)分無線電臺的接口速率和空中速率,這二者是獨立的沒有關系的兩個概念??罩兴俾手傅氖请娕_在無線信道的實際數據速率,這個速度越快,說明電臺的性能越好,而且單位時間傳輸的數據越多。接口速率是電臺與RTU設備的速率,這個速率只要不小于空中速率和通訊速度沒有太大關系。無線電臺可能會受到干擾的影響,嚴重影響通信性能,甚至完全無法使用。主要干擾有:同頻干擾、高壓輸電線路電暈干擾、其它射頻設備等。一般不受天文情況的影響,如太陽黑子,太陽磁暴,電離層等。
微波通訊只有在特別重要的場合才實施,其投資巨大,而且要每大約50KM就要有一個中繼站,對于地形復雜的場合,可能為了視距原因可能很近就要有一個中繼站。一般的單位是沒有財力建設微波系統(tǒng)的。
國內的電力企業(yè)當年倒是有一套從各個大區(qū)到中央的微波通訊系統(tǒng)。微波通訊還是會收到降水和霧的影響的。衛(wèi)星通訊更是萬不得已才使用,首先其功率太大,一個小型的衛(wèi)星基站要上百瓦的功率,需要一個1M口徑的拋物天線,需要專門昂貴的設備(通訊設備要人民幣幾萬塊),而且通訊費用非常高昂,一個報文,可以承載256BYTE的數據需要0.5圓人民幣,只有海上,沙漠等實在無法借助其它通訊手段的時候才采用。衛(wèi)星通訊相當可靠,除了太陽耀斑、太陽磁暴、暴雨等情況,一般都不會出現通訊中斷現象。太陽耀斑、太陽磁暴會影響衛(wèi)星的通信,還存在所謂的星蝕效應,就是通信衛(wèi)星和太陽在同一個方向上,由于太陽是一個很大的干擾源,導致衛(wèi)星通信中斷。不過中斷時間只有幾分鐘的時間。
網絡通訊方式在無線方式上常用的包括GPRS/CDMA,ZIGBEE,無線以太網等。有線方式常用的包括以太網、ADSL、CABLEMODEM等。
網絡通訊方式的優(yōu)點在于借用現有的網絡資源,真正打破了地域的限制,可以構架分布全球的SCADA系統(tǒng),對于很多全球生產的企業(yè)非常有利。
由于網絡構建于公共網絡之上,在出現突發(fā)事件時而且要求SCADA系統(tǒng)在突發(fā)事件進行應急處理時,這樣的方式可能會因為公眾通訊的信息量大增,導致通訊設備癱瘓或者阻塞,而無法應對這樣的應用。這種通訊阻塞的情況完全有可能出現,所以在構建SCADA系統(tǒng)的時候,一定要評估這個風險,否則就是一套 在緊急情況下不能使用的系統(tǒng),這個系統(tǒng)可能就沒有建設的必要。對于這種系統(tǒng)一定要采用生存能力強的獨立系統(tǒng),比如無線電臺。
在網絡通訊上,由于GPRS/CDMA,ADSL等設備都是構建在PPP協(xié)議或者PPPOE協(xié)議之上的,其地址分配可能是動態(tài)的,也可能是靜態(tài)的。而主站的地址可能是靜態(tài)的也可能是動態(tài)的,所以二者可能存在互不知道IP地址的可能,如果沒有專門的機制是無法通訊的。為了保證RTU能和主站通訊就需要做專門的處理。就TCP/IP通訊而言,雙方必須知道對方IP地址和端口號才能通信,而且一般的通訊模型是客戶機/服務器模型,而且一般主站作為服務器使用,所以主站系統(tǒng)不能放在防火墻的后面,如果放在防火期后面,防火墻至少要開放幾個端口,而且把主機的IP地址通過NAT的方式映射到公網上,否則RTU不可能和主站通訊。
如果主站地址是靜態(tài)的,RTU端設置通訊設備時,把主站的IP地址設為主機IP地址。這樣上電后,RTU的通訊設備DTU就可以根據設定的
IP地址和端口號及通訊方式(TCP/UDP)找到主站進行通訊。如果主站是動態(tài)地址(比如采用電話撥號上網或者ADSL撥號上網),由于主機地址是動態(tài)的,RTU的通訊設備DTU的IP地址也是動態(tài)的,雙方不可能直接找到對方。
就需要申請一個動態(tài)域名解析業(yè)務以區(qū)別于靜態(tài)域名解析服務,比如動態(tài)域名為m.gzvop.com.CN,在主站端安裝動態(tài)域名解析軟件,主站只要開機就登陸到動態(tài)域名服務器,比如花生殼,注冊自己的IP地址,告知m.gzvop.com.CN的地址是XX.XX.XX.XX。RTU端的DTU設備設置時其通訊的主機不能設為IP地址,而應該設為m.gzvop.com.CN,在DTU設備上電后,首先向DNS服務器請求解析m.gzvop.com.CN的IP地址,DNS服務器根據動態(tài)域名解析軟件注冊的IP地址,告訴DTU,m.gzvop.com.CN的IP地址是XX.XX.XX.XX,這樣DTU知道了主站的IP地址和雙方約定
的端口號和通訊方式(TCP/UDP)就可以通訊了。
另外,由于通訊是TCP/IP通訊,主站和RTU端的端口號和通訊方式(TCP/UDP)要設成一致。
GPRS/CDMA的應用是無線通訊,幾乎沒有數傳電臺的缺點,其構架于無線通訊運營商的網絡之上,只要手機能夠通話就能工作,缺點是按照流量收費,費用可能略微嫌高。另外收到網絡能力限制,同時能夠發(fā)起的認證連接數和同時能夠維持的連接數有限,對于大規(guī)模的應用可能是一個相當大的制約。一般來看CDMA的通訊速度要高于GPRS,而實際應用中,SCADA系統(tǒng)應用的速度要遠遠低于其標稱速率。GPRS/CDMA還有一個重要的問題是網絡延時問題,
從用戶發(fā)出一個報文到收到響應報文,可能需要3秒甚至更長的時間,對于有些苛刻的應用無法滿足。
無線以太網是一個非常有前途的通訊方式,其價格越來越便宜,而且?guī)捄軐?,最高可以?4M,可以在上面承載語言業(yè)務、圖形監(jiān)控業(yè)務和SCADA業(yè)務,非常有發(fā)展?jié)摿?。而且可以在無線以太網上構建自組織網絡(MASH網),這樣無論網絡是固定的還是移動的,都能正常通信;即使出現個別設備的損壞,都能通過網絡的再組織,保證正常的通信。無線以太網采用全向天線時,其通訊距離受到很大的限制,只有幾百米,而采用定向高增益天線,距離可以到幾到幾十公里。
ADSL/CABLEMODEM都是大家耳目能詳的日常上網方式,其優(yōu)點缺點想必大家都很清楚,值得一提的是很少有RTU設備可以直接支持PPPOE協(xié)議,這可能需要進行配置或者增加網絡設備實現,倒是一個限制。