楊 琦
(沈陽鋁鎂設計研究院有限公司,遼寧 沈陽 110001)
煅燒是預焙陽極炭塊生產工藝中一個重要環節,其生產過程是石油焦通過重力作用緩慢的進入罐式爐,在料罐內緩慢的移動,石油焦溢出的揮發分在揮發分道中匯集與空氣一起進入火道中燃燒。揮發分燃燒產生的熱量對料罐中的石油焦進行間接加熱,在此過程中生焦中的揮發分和水分被大量排除,石油焦在罐式爐中停留時間為32~36小時。通常煅燒爐的火道層數為8~10層,火道內平均溫度為1200~1300 ℃,首層入口負壓為-15~5 Pa,末層出口負壓為-250~-150 Pa。
在生產過程中,主要通過調節揮發分和預熱空氣的流量控制火道溫度,另外通過調節火道壓力也能調節火焰區域,從而進行調溫。調溫操作不僅會影響火道內溫度分布,更會影響物料最終煅燒質量,甚至產量。因此,調溫和調壓二者需要緊密配合,才能使得火道內揮發分合理分配,火道溫度控制在預定溫度范圍內。由此可見,上述生產的前提是先保證溫度和風壓能準確,穩定和連續的測量。
炭素廠中罐式煅燒爐的測溫測壓系統,其發展大致可以劃分為兩個階段。第一階段采用集散控制方式,即現場測溫或測壓點為輸出信號4~20 mA的儀表,儀表經屏蔽電纜穿管敷設至橋架后沿橋架敷設至控制系統機柜間處,在機柜內經過隔離器隔離后信號進入控制系統。這樣的缺點是顯而易見的,不僅占用了控制系統寶貴的IO資源,更由于大量的線束,極大的增加了施工成本和后期維護難度;第二階段采用現場總線的控制方式,通常是Modbus RTU模式,即現場儀表通過Modbus接口掛載在一條總線上,層數據收集器輪詢儀表數據,匯總后再轉換為其它總線形式,如Modbus TCP、Profinet或TCPIP等,實現與中控系統或其它設備的數據交換,終端顯示有用數字巡檢儀和上位機軟件畫面顯示兩種[1]。
相對于集散控制方式,采用現場總線后系統靈活度、可靠性和穩定性等方面都具有極大的提升,且實施維護成本大幅降低,因此目前總線通訊+終端上位機集中顯示已經成為業內的主流選擇。
Modbus是一種串行通信協議,是施耐德為使用可編程邏輯控制器(PLC)通信而制定的。經過數十年的發展,Modbus已經成為工業領域通信協議的業界標準,并且現在是工業電子設備之間常用的連接方式。
采用Modbus RTU模式的罐式爐測溫測壓系統,其拓撲結構通常如圖1所示。

圖1 基于Modbus RTU模式的系統拓撲結構示意圖
系統以層為單位進行劃分,比如測量一、三、八層的溫度和三層的風壓,則在每個層中,包含對應的采集儀表和層級采集模塊,采用Modbus RTU進行數據交換;各層數據匯總后,通常是再通過Modbus TCP的方式傳遞給車間的PLC或DCS,這樣構成了一個樹狀拓撲的控制網絡。
國內某炭素廠4×76罐的煅燒爐投產后,在實際使用中發現測溫測壓系統出現如下問題:
(1)經常出現監控軟件刷新較慢,數據無法更新的情況;
(2)在監控界面上提示某些儀表掉線故障,但實際該儀表可正常上報數據;
(3)當某塊儀表通信部分損壞后,造成測控網絡的整體癱瘓,且只能逐塊進行排查,工作量巨大。
經過對現場控制網絡的仔細分析,發現上述問題的產生,很大程度上是RS485總線及Modbus RTU協議本身的固有屬性導致的,且當這些問題累積發生時,就可能產生上述的現象,具體分析如下:
(1)現場通信的波特率為9600 bps,假設配置為8位數據位,1位停止位,1位起始位,無奇偶校驗位,則實際上一個字節數據為10個bit。根據Modbus協議規定,master發來的讀取指令為8個字節(1字節地址,1字節命令碼,2字節寄存器起始地址,2字節寄存器數量,2字節CRC校驗),slave回復的響應為6個字節(1字節地址,1字節命令碼,2字節溫度數據,2字節CRC校驗),以上為最簡形式。則僅兩條報文的傳輸時間為:

如果考慮master和slave的處理及運算時間,一次交互以30 ms估算,則76個測溫點最小的輪詢周期約為2.28 s。
(2)由于Modbus中具有超時重發機制,通常超時時間設置為100 ms,超時重發次數為3次,就意味著如果某個slave在規定的時間內沒有及時給出響應,則master會連續發送三個報文;另一方面,現場的master設備為工控機,且設置的輪詢間隔也為100 ms,這就可能造成超時報文和正常輪詢報文幾乎同時發出的情況,而slave設備也可能同時響應,由于Modbus總線沒有仲裁機制,上述情況導致總線上電平信號的疊加,從而產生數據錯誤。
(3)由于RS485總線沒有完善的錯誤處理機制,所以2中描述的問題反復發生,最終可能演變為“信息風暴”,導致總線的錯誤累積,且無法自我糾正,最嚴重的后果是總線數據傳輸的完全癱瘓。
(4)當某個slave儀表的Modbus芯片故障或處理器邏輯混亂時,可能產生對總線的干擾,比如一直向總線上發送數據報文,或者導致總線電平的異常等。
雖然可以通過增加光電隔離或增加代碼的容錯性方面對上述問題進行規避,但是Modbus RTU協議和RS485自身的特性,決定了無法從根本上解決刷新周期長、總線沖突等問題。因此,在現場改造中,決定應用更先進的CAN總線技術。
CAN是控制器域網(Controller Area Network, CAN)的簡稱,由研發和生產汽車電子產品著稱的德國BOSCH公司在1986年2月發布第一版(1.0版本),并于20世紀90年度初,BOSCH發布了CAN 2.0版規范,該規范包括A和B兩部分,2.0A明確給出了曾在1.0版本中定義的CAN報文格式,2.0B則提出了標準幀和擴展幀的概念。CAN 2.0最終成為國際標準(ISO11898),目前已經成為國際上應用最廣泛的現場總線之一[2]。
CAN總線協議建立在國際標準組織開放系統ISO7層互連參考模型基礎之上。其模型結構只有3層,即只取ISO底層的物理層、數據鏈層和傳輸層,保證了節點間無差錯的數據傳輸。CAN技術的報文傳輸為多主方式工作,網絡上任意節點均可在任意時刻主動地向網絡上其它節點發送信息,而不分主從。CAN節點只需通過對報文的標示符濾波即可實現點對點、一點對多點及全局廣播等幾種方式發送、接收數據[3]。
CAN總線的主要特點總結如下[2-4]:
(1)CAN為多主工作方式,不分主從,方式靈活;
(2)CAN網絡節點可以安排優先級順序,以滿足和協調各自不同的實時性要求;
(3)采用非破壞性的總線仲裁技術,多點同時發送信息時,按優先級順序通信,節省總線沖突仲裁時間,避免網絡癱瘓;
(4)通信速率最高可達1Mbps(40 m以內),最長傳遞距離達10 km(速率為5 kbps以下);
(5)網絡節點在錯誤嚴重的情況下可以自動關閉輸出功能,脫離網絡。
上圖為CAN擴展幀的報文格式,從中可以看到,CAN報文中的仲裁域可以解決報文沖突后的避讓及重發,數據域中最多8個字節應用數據,可完全滿足測溫測壓系統中測量數據以及其他控制指令的傳輸。
CAN雖然起源于汽車領域,但近年來逐漸被工程師認知,并以其傳輸距離遠、通信速率高、總線利用率高、具備完善的錯誤檢測機制、開發難度小、使用靈活等突出特點,逐漸有取代MODBUS總線的趨勢。并且在器件價格上,二者逐漸持平,因此在儀表領域,得到了越來越廣泛的應用。
MODBUS和CAN更詳細的對比如表1所示。

表1 MODBUS和CAN對比表
本項目結合國內某碳素廠為背景,以盡量減少原系統改動為原則,設計方案確定如下:
(1)保留現場光電測溫儀和風壓變送器,開發專用的協議轉換模塊,一端通過Modbus RTU方式連接儀表,讀取其溫度或風壓數據;一端通過CAN bus方式連接到總線,與對應的層采集模塊完成數據的上報和指令的接收;
(2)沿用現場原有已經部署好的供電線纜和通信線纜、橋架、分線器等,在處于拓撲結構兩端的協議轉換模塊增加終端匹配電阻,保證網絡的阻抗匹配;
(3)開發專用的層數據采集模塊,一端通過CAN bus方式收集協議轉換模塊的數據,一端支持標準的Modbus TCP或Modbus RTU方式,實現測量數據到工控機或DCS系統的上報;
(4)優化監控軟件的數據查詢、曲線繪制、狀態報警等功能,使現場操作人員更容易使用。
其中關鍵的技術點包括:傳輸延時物理模型、通信協議制定兩個方面。
CAN 的通信延時可細分為兩個部分: 隊列延時和傳輸延時。隊列延時是指從報文幀進入 CAN總線控制器的發送緩存到該報文幀獲得總線控制權之間所經歷的時間。傳輸延時是指從報文幀占據總線到該報文幀脫離總線之間所經歷的時間,簡單起見,這里僅考慮物理傳輸延時[4]。
信號傳輸延時主要發生在3個環節:發送節點、線束和接收節點,具體包括節點MCU 處理時間、收發器傳輸延時、電感延時、節點之間的線束傳輸延時、晶振偏差、振鈴和同步。波特率與延時的關系為:
2×(T收發器+Tmcu+Tcan線纜+T電感)+TRing+Tsyn≤A采樣點×T位時間
(1)
這里協議轉換模塊和層收集模塊使用的處理器為STM32F103RC,主頻72 M,MCU 處理時間約為2000 ns,收發器傳輸延時為 250 ns,線束長度80 m、線束單位傳輸延時5 ns/m,晶振偏差0.5%,共模電感傳輸延時38 ns,反射、振鈴占整個位比例為 10%,根據公式(1)可推出如下公式T位時間。
(2)
由位時間與波特率的倒數關系可知,波特率為:
(3)
當采樣點為80%時,計算可得波特率≤121 K。
在實際應用中,波特率的選擇和總線布局、材質、類型、現場干擾以及總線上設備的數量都有關系,而且有些因素的影響無法具體量化,因此保險起見,選擇的波特率為100 K。
CAN雖然為多主模式,可以通過總線仲裁來避免碰撞,但是如果單純依賴CAN本身的調度機制,在一定程度上會影響系統的實時性。以某層的溫度測量為例,共包含76個協議轉換模塊,模塊的地址為1~76,每次上報的數據為4個字節(1字節的類型,1字節的設備狀態,2字節的溫度)。由于每個周期中只有溫度數據需要上報且各個模塊報文無優先級差別,因此發送策略為各個模塊按照一定的時間間隔逐次上報。
逐次上報有兩種實現方式,一是無令牌方式,即各個模塊經時鐘同步后按照調度規則主動上報。該方法更靈活且效率高,但是實現復雜,而且受晶振差異和代碼執行方式的影響,容易產生抖動和無法預計的時延;二是令牌方式,及令牌的持有者控制總線,當發送結束后令牌傳遞給下一需要控制總線的發送者。該方法實現簡單,而且特別適合各個發送者平等且無需動態調度的場景,因此在本應用中也采用了令牌方式。
以100 K的波特率通信,采用擴展幀的形式,一個模塊完成一次數據上報的字節數為12(由圖2可知,其中包括5字節報文頭,4字節應用數據,3字節報文尾),時間為960 us,由總的控制要求可知,在1 s內完成一個爐的數據更新顯示和上報即可滿足要求,因此設置模塊間的發送間隔ΔT為5 ms,這樣,在每個控制周期的起始時刻,層數據收集模塊廣播令牌后,各個協議轉換模塊依照各自的地址精確延時5 ms的倍數,即可實現預定的控制邏輯。調度示意圖如圖3所示,由圖可知最壞情況下,控制周期約為780 ms,仍滿足≤1 s的要求。

圖2 CAN擴展幀結構圖

圖3 報文發送時序示意圖
結合國內某碳素廠煅燒爐的實際改造案例,新系統上線后運行穩定,實施后現成效果如圖4所示。

圖4 現場應用照片
利用CAN總線分析工具對各儀表數據進行了數據分析,截圖如圖5所示。

圖5 捕獲的報文發送時序
從圖5可以看出,當采集模塊發出令牌后,各個協議轉換模塊按照自身地址,依次延后5 ms上報數據,其中最大間隔抖動為100 us,平均間隔抖動約為40 us,遠小于設定上報間隔的5000 us,因此不會對系統正常運行造成影響。實現了罐式爐測溫測壓系統數據的高速傳輸。
從現場改造后運行數據結果表明,基于CAN總線的系統方案完全解決了原有MODBUS總線網絡中出現的問題。除了具備以往MODBUS總線的優點外,還具有傳輸速率高、單一儀表故障不會影響總線其他儀表數據傳輸的特點,為煅燒車間罐式爐測溫測壓系統以及未來的自動調溫系統提供了一種全新的技術思路,具有積極的現實意義。