1 前言
眾所周知,在工業(yè)應用中,產(chǎn)品的穩(wěn)定性和可靠性是衡量其品質(zhì)的一個重要指標。一般用戶對一個工業(yè)產(chǎn)品的要求是:它的性能可以不是最強的,但是它的穩(wěn)定性和可靠性一定要是最好的。所以為了盡可能提高產(chǎn)品的穩(wěn)定性和可靠性,“冗余”的思想在工業(yè)控制中得到了廣泛的應用。
2 簡單工業(yè)網(wǎng)絡冗余
我們以一個已經(jīng)在實際中應用的組網(wǎng)方式為例。組網(wǎng)方式如圖 1所示。
[align=center]
圖 1 CAN-100同多個目標主機通訊[/align]
這是一個分布式CAN網(wǎng)絡采集和控制系統(tǒng),CANET-100將CAN網(wǎng)絡中CAN設備同遠端的控制主機連接起來,使得以太網(wǎng)上的主機能靈活的監(jiān)視和控制各個CAN設備。為了能提高整個系統(tǒng)的可靠性和穩(wěn)定性,這里使用了三臺主機作為服務器,其中一臺為工作服務器,另外兩臺為冗余服務器。
正常情況下,只是當前工作的服務器負責對各個CAN設備進行監(jiān)控,其它兩臺冗余服務器和CAN設備之間沒有通訊。
一旦當前工作的服務器出現(xiàn)故障不能正常工作時,兩臺冗余服務器中的一臺就由冗余狀態(tài)變成工作狀態(tài),接替出現(xiàn)故障的服務器對CAN設備進行監(jiān)控。同樣如果當前服務器又出現(xiàn)故障不能正常工作,剩下的冗余服務器就變成工作服務器,繼續(xù)對各個CAN設備進行監(jiān)控。
3 安全隱患
這種應用方案在一般的情況下的確可以很大提高系統(tǒng)的可靠性和穩(wěn)定性,但是在一些異常情況下,這樣的冗余不起作用了,在產(chǎn)品的應用中,我們發(fā)現(xiàn)了以下的問題。
因為某些通訊轉(zhuǎn)換設備(如CANET-100)同時只能同一臺監(jiān)控主機通訊,當冗余服務器變成工作服務器時,為了不影響監(jiān)控,工作服務器必須改寫通訊轉(zhuǎn)換設備的目標IP,而所有的目標IP等工作參數(shù)都是存放在片外的E2PROM里。
一般E2PROM芯片大概只能進行一百萬次的寫入。一百萬次看起來好像足夠大,但是在服務器的工作出現(xiàn)異常時(例如:判斷工作服務器是否正常工作時出現(xiàn)混亂),可能就會出現(xiàn)反復讀寫E2PROM的情況,一百萬次的讀寫對于服務器來說太輕松了,隨之E2PROM芯片就會出現(xiàn)損壞,導致整個系統(tǒng)不能正常工作,雖然在網(wǎng)絡上做了冗余,但是問題出在轉(zhuǎn)換設備上,再多的冗余主機也無濟于事。
4 解決方案
為了解決這個問題,我們可以用支持多目標的模塊替代原有產(chǎn)品,將原先單獨向一臺主機返回數(shù)據(jù)改成同時向多臺主機通訊,因為資源的有限,使用UDP模式替代TCP模式也是可以接受的。
在實際應用中,我們使用CANET-100T代替CANET-100進行組網(wǎng),(CANET-100T/200T的每個CAN口在UDP的方式下,最多可同時同3×254臺目標主機通訊,TCP方式下最多可同時同2臺目標主機通訊)。網(wǎng)絡連接方式和布線都不用改變,對于CAN設備也不需要有任何的改動,僅僅需要稍稍改動服務器的監(jiān)控程序,連接方式如圖 2所示。
[align=center]
圖 2 CAN-100T同時同多個目標主機通訊[/align]
這樣,在組建冗余網(wǎng)絡上,不但解決了偶然條件下的E2PROM讀寫次數(shù)問題,更加保證了冗余的實時性。
5 總結(jié)
由上面的介紹可知,在組建冗余網(wǎng)絡時,不光要從網(wǎng)絡拓撲方面考慮主從監(jiān)控站的冗余配置,更應當考慮到設備故障引起的種種問題,本文所提出的問題已經(jīng)在工程應用中出現(xiàn),并且較為隱蔽,值得大家引起重視,如果已使用冗余主機的網(wǎng)絡,應當考慮切換次數(shù)有限的情況下,系統(tǒng)的穩(wěn)定性,避免系統(tǒng)隱患,而新設計的網(wǎng)絡,則應當將此因素考慮在內(nèi)。