丁 遠,劉 鵬,于曉珉
(1.煤科集團沈陽研究院有限公司,遼寧 撫順113122;2.煤礦安全技術國家重點實驗室,遼寧 撫順113122;3.遼寧經濟干部管理學院 信息工程系,遼寧 沈陽110122)
煤礦安全監控系統,作為煤礦6 大系統之首,在煤礦安全中起著重要作用。現有的煤礦安全監控系統通常存在數據通信傳輸抗干擾弱,實時性差,誤碼率高等問題,導致傳感器發生故障或甲烷超限時斷電時間過長,不符合AQ 6201—2006[1]標準規定的斷電時間,極大的影響了煤礦安全。針對上述現有問題,在結合調研實際環境與分析研究多種通信方案后,設計了基于CAN 無主通信技術[2]的煤礦安全監控系統[3],對模擬量與開關量傳感器參數進行實時監測,當傳感器發生故障或者數據超限時,及時切斷相應的非本質安全型電源或風機閉鎖,使煤礦企業能夠及時進行險情處理,避免安全事故發生,對煤礦安全生成具有重大意義。
Controller Area Network(CAN),即控制器局域網絡,是目前國際上現場總線應用最多的總線之一。CAN 總線是一種有效支持分布式控制系統的串行通信網絡。CAN2.0B 根據幀標識符長度定義了標準幀、拓展幀2 種幀格式[4],其中標準幀含有11 位標識符,拓展幀含有29 位標識符,每一位標識符有顯性、隱性2 種互補的邏輯數值表示。當CAN 總線的CAN_H 與CAN_L 的電位差為0 V 時,CAN 總線為隱性邏輯,當CAN_H 與CAN_L 電位差時2.0 V 時,CAN 總線為顯性邏輯。CAN 通信采用短幀結構,為了保證通信的實時性,1 幀數據傳輸時間短,受干擾率低,為了保證幀數據的正確性,傳輸出錯率低,每一數據幀均有CRC 校驗。CAN 總線使用串行通信方式[5],總線上的節點通過廣播形式將數據發送到總線,對于總線上每個節點,接收所有數據,只要總線空閑,任何節點都可以向總線發送報文。如果有2個或2 個以上的節點同時發送報文,就會引起總線訪問碰撞,標識符的逐位仲裁可以解決這個碰撞,仲裁的機制確保了報文和時間均不損失。當具有相同標識符的數據幀和遠程幀同時發送時,數據幀優先于遠程幀。仲裁期間,每一個發送器都對發送位的電平與被監控的總線電平進行比較。如果電平相同,這個單元可以繼續發送,如果發送的是“隱性”電平而監視到的是“顯性”電平,那么這個單元就失去了仲裁,必須退出發送狀態。
標準幀與拓展幀是CAN 總線2 種數據幀格式,兩者異處在于標識符長度,2 種幀格式根據應用分為4 種不同的幀類型:數據幀、遠程幀、錯誤幀、過載幀,幀類型應用表見表1。
表1 幀類型應用表Table 1 Frame type application table
用戶只能配置CAN 幀是數據幀或者遠程幀,設計的方案中使用標準幀格式數據幀。節點CAN 控制器發送數據時,先發送1 個顯性幀起始位來通知總線其他節點做好接收數據準備。CAN 控制器在發送數據的同時檢測數據總線的電平是否與發送電平相同,如果不同進入總線仲裁階段,本階段是CAN 實現無主通信的硬件核心階段。3 個節點發送仲裁過程如圖1。
圖1 仲裁過程Fig.1 Arbitration process
假設總線上A、B、C 3 個節點同時發送數據幀,如圖1 第1 個虛線處,節點B 的ID 位時隱性位,節點A 與節點C 的ID 位是顯性,總線電平為顯性,故節點B 退出當次總線競爭。在下1 個虛線處,節點C的ID 位是隱性,節點A 是顯性,總線電平顯性,故節點C 退出總線競爭,所以節點A 獲得本次發送數據幀權,本次沒有獲取發送權限的子節點,在總線空閑時自動重發。當總線出現遠程幀與數據幀時,由于數據幀的RTR 位是顯性,遠程幀是隱性,在同等幀ID 時,優先發送數據幀。
幀ID 越小優先級越高,標識符ID 并非報文的目的地址,所以用戶可以通過對標識符的自定義以及設置CAN 控制器的寄存器與可屏蔽寄存器實現基于CAN 總線無主通訊方式的單播、組播、廣播。可見CAN 總線上節點間的數據通信實時性高,并且容易構建冗余結構,提高可靠性。
設計的煤礦安全監控系統采用無主通信模式,傳感器主動上傳數據于監控分站,監控分站整合數據后主控上傳中心站,全程無輪詢機制,當井下傳感器超限或故障,本地斷電可2 s 內完成,監控分站間的異地控制在井下組網,無需中心站控制,異控時間可以控制在5 s 內。監控分站硬件結構圖如圖2,主控制器選用ARM 內核32 位芯片LPC2194, 此芯片內部帶有4 個CAN 2.0B 控制器,4 個CAN 分別與下層傳感器層通信,數據整合后通過網口接口進入環網交換機。此外監控分站具有8 路開關量輸入與8 路開關量輸出。
圖2 硬件結構圖Fig.2 Hardware structure diagram
傳感器層可以配節甲烷、一氧化碳、風量等數字式模擬量傳感器以及局部通風機開停、斷電器等數字式開關量傳感器。這些傳感器實時采集井下環境參數與設備工作狀態、參數,以及執行監控分站下發的控制指令。通過設計特定的協議,傳感器可實現即插即用,無需人為設定類型,通過使用CAN 總線,有效解決原頻率型系統中傳感器因為電磁干擾產生異常數據與誤報警,井下設備可以將自診斷信息主動上傳中心站,由用戶使用。
實現強實時性系統,軟件上需設計穩定、可靠、實時性強。設計軟件采用Freertos[6]作為軟件的操作系統,此系統開源,可免費用于商業,且結構簡單,問題修復及時。軟件上設計的任務與中斷系統(ISR)要保證數目合理、簡單,遵循低內聚、高耦合的軟件工程規范,軟件設計[7]的任務與ISR 之間的同步需要使用操作系統提供的方法,如共享內存、信號量、互斥鎖等,減少全局變量作為共享資源。經過過系統地分析,軟件結構圖如圖3。
圖3 軟件結構圖Fig.3 Software structure diagram
軟件系統設計主任務1 個,接收任務1 個,數據上傳任務1 個,狀態變換任務1 個,環網發送任務1個以及環網接收任務1 個,共6 個任務。主任務完成系統配置以及建立其他子任務,數據上傳任務周期性上傳傳感器數據,狀態任務只有當傳感器狀態改變時觸發,CAN 接收處理任務負責將CAN 中斷接收到的數據處理后加入共享內存,因為系統具有4 路CAN 接口,為了保證數據不丟幀,以及遵循中斷處理“短、平、快”的規范,當CAN 中斷接收到數據后,不在中斷函數處理,將數據加入freertos 系統自帶的數據隊列后,觸發信號量通知處理任務,處理后的數據根據協議規定會存放到共享內存后通知相應的任務來取數據,這樣保證了系統的實時性。環網[8]發送與接收任務屬于觸發性任務,只有信號量觸發,才進行數據上傳工作。
保證強實時性[9],任務優先級分配至關重要,根據系統分析,接收中心站消息的任務優先級最高,處理下層傳感器數據的CAN 接收任務次高,下層傳感器狀態改變時,需要立即通知上位機,所以狀態上傳任務優先級較高,環網發送隨后,因為數據上傳任務屬于周期性任務,所以優先級比較低,因為主任務創建子任務后,負責將數據顯示到屏幕上,所以優先級最低,故優先級從高到低為:環網接收,CAN 接收處理、狀態上傳、環網發送、數據上傳、主任務。
此外,為了降低更換程序的難度,系統內的各個部件需要增加IAP[10]功能,方便后續實現程序遠程在線更新。
在實驗室利用仿真線搭建環境后,模擬大型煤礦所需設備量,系統接入32 臺監控分站,每臺監控分站接入16 臺傳感器與斷電器。使用CAN 總線分析儀對總線通信狀態監測,使用Wireshark 軟件工具在PC 端進行以太網異常數據監測。在系統不間斷運行40 d 后,查看相應監測軟件,無異常中斷與數據,進行傳感器斷電實驗,本地斷電與異地斷電實測時間均達到AQ 6201—2006 行標要求。
針對目前煤礦安全監控系統存在實時性低、通信不穩定易中斷、傳感器故障或超限時斷電控制時間過長等問題,對CAN 總線特點、軟件工程、煤安監函[2016]5 號《煤礦安全監控系統升級改造技術方案》以及煤礦井下真實環境等進行了詳細調研與分析研究,設計了一種強實時性通信方案,并進行了系統軟硬件設計。采用設計的強實時性煤礦安全監控系統,各個節點可任意時間主動發送數據,無需輪詢,可以任意單播、組播、廣播,不僅提高了系統實時性,還增加了系統的穩定性與通信可靠性,減少了因通信問題導致的煤礦安全事故。