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