1 前言
眾所周知,在工業(yè)應(yīng)用中,產(chǎn)品的穩(wěn)定性和可靠性是衡量其品質(zhì)的一個(gè)重要指標(biāo)。一般用戶對(duì)一個(gè)工業(yè)產(chǎn)品的要求是:它的性能可以不是最強(qiáng)的,但是它的穩(wěn)定性和可靠性一定要是最好的。所以為了盡可能提高產(chǎn)品的穩(wěn)定性和可靠性,“冗余”的思想在工業(yè)控制中得到了廣泛的應(yīng)用。
2 簡(jiǎn)單工業(yè)網(wǎng)絡(luò)冗余
我們以一個(gè)已經(jīng)在實(shí)際中應(yīng)用的組網(wǎng)方式為例。組網(wǎng)方式如圖 1所示。
[align=center]

圖 1 CAN-100同多個(gè)目標(biāo)主機(jī)通訊[/align]
這是一個(gè)分布式CAN網(wǎng)絡(luò)采集和控制系統(tǒng),CANET-100將CAN網(wǎng)絡(luò)中CAN設(shè)備同遠(yuǎn)端的控制主機(jī)連接起來(lái),使得以太網(wǎng)上的主機(jī)能靈活的監(jiān)視和控制各個(gè)CAN設(shè)備。為了能提高整個(gè)系統(tǒng)的可靠性和穩(wěn)定性,這里使用了三臺(tái)主機(jī)作為服務(wù)器,其中一臺(tái)為工作服務(wù)器,另外兩臺(tái)為冗余服務(wù)器。
正常情況下,只是當(dāng)前工作的服務(wù)器負(fù)責(zé)對(duì)各個(gè)CAN設(shè)備進(jìn)行監(jiān)控,其它兩臺(tái)冗余服務(wù)器和CAN設(shè)備之間沒有通訊。
一旦當(dāng)前工作的服務(wù)器出現(xiàn)故障不能正常工作時(shí),兩臺(tái)冗余服務(wù)器中的一臺(tái)就由冗余狀態(tài)變成工作狀態(tài),接替出現(xiàn)故障的服務(wù)器對(duì)CAN設(shè)備進(jìn)行監(jiān)控。同樣如果當(dāng)前服務(wù)器又出現(xiàn)故障不能正常工作,剩下的冗余服務(wù)器就變成工作服務(wù)器,繼續(xù)對(duì)各個(gè)CAN設(shè)備進(jìn)行監(jiān)控。
3 安全隱患
這種應(yīng)用方案在一般的情況下的確可以很大提高系統(tǒng)的可靠性和穩(wěn)定性,但是在一些異常情況下,這樣的冗余不起作用了,在產(chǎn)品的應(yīng)用中,我們發(fā)現(xiàn)了以下的問題。
因?yàn)槟承┩ㄓ嵽D(zhuǎn)換設(shè)備(如CANET-100)同時(shí)只能同一臺(tái)監(jiān)控主機(jī)通訊,當(dāng)冗余服務(wù)器變成工作服務(wù)器時(shí),為了不影響監(jiān)控,工作服務(wù)器必須改寫通訊轉(zhuǎn)換設(shè)備的目標(biāo)IP,而所有的目標(biāo)IP等工作參數(shù)都是存放在片外的E2PROM里。
一般E2PROM芯片大概只能進(jìn)行一百萬(wàn)次的寫入。一百萬(wàn)次看起來(lái)好像足夠大,但是在服務(wù)器的工作出現(xiàn)異常時(shí)(例如:判斷工作服務(wù)器是否正常工作時(shí)出現(xiàn)混亂),可能就會(huì)出現(xiàn)反復(fù)讀寫E2PROM的情況,一百萬(wàn)次的讀寫對(duì)于服務(wù)器來(lái)說太輕松了,隨之E2PROM芯片就會(huì)出現(xiàn)損壞,導(dǎo)致整個(gè)系統(tǒng)不能正常工作,雖然在網(wǎng)絡(luò)上做了冗余,但是問題出在轉(zhuǎn)換設(shè)備上,再多的冗余主機(jī)也無(wú)濟(jì)于事。
4 解決方案
為了解決這個(gè)問題,我們可以用支持多目標(biāo)的模塊替代原有產(chǎn)品,將原先單獨(dú)向一臺(tái)主機(jī)返回?cái)?shù)據(jù)改成同時(shí)向多臺(tái)主機(jī)通訊,因?yàn)橘Y源的有限,使用UDP模式替代TCP模式也是可以接受的。
在實(shí)際應(yīng)用中,我們使用CANET-100T代替CANET-100進(jìn)行組網(wǎng),(CANET-100T/200T的每個(gè)CAN口在UDP的方式下,最多可同時(shí)同3×254臺(tái)目標(biāo)主機(jī)通訊,TCP方式下最多可同時(shí)同2臺(tái)目標(biāo)主機(jī)通訊)。網(wǎng)絡(luò)連接方式和布線都不用改變,對(duì)于CAN設(shè)備也不需要有任何的改動(dòng),僅僅需要稍稍改動(dòng)服務(wù)器的監(jiān)控程序,連接方式如圖 2所示。
[align=center]

圖 2 CAN-100T同時(shí)同多個(gè)目標(biāo)主機(jī)通訊[/align]
這樣,在組建冗余網(wǎng)絡(luò)上,不但解決了偶然條件下的E2PROM讀寫次數(shù)問題,更加保證了冗余的實(shí)時(shí)性。
5 總結(jié)
由上面的介紹可知,在組建冗余網(wǎng)絡(luò)時(shí),不光要從網(wǎng)絡(luò)拓?fù)浞矫婵紤]主從監(jiān)控站的冗余配置,更應(yīng)當(dāng)考慮到設(shè)備故障引起的種種問題,本文所提出的問題已經(jīng)在工程應(yīng)用中出現(xiàn),并且較為隱蔽,值得大家引起重視,如果已使用冗余主機(jī)的網(wǎng)絡(luò),應(yīng)當(dāng)考慮切換次數(shù)有限的情況下,系統(tǒng)的穩(wěn)定性,避免系統(tǒng)隱患,而新設(shè)計(jì)的網(wǎng)絡(luò),則應(yīng)當(dāng)將此因素考慮在內(nèi)。