張愛絨,謝斌紅,張英俊
(1.太原理工大學期刊中心,太原030024;2.太原科技大學計算機學院,太原030024)
隨著煤礦監控系統從單一監控功能向性能可靠、功能強大的網絡化、標準化、智能化的發展,要求各井下分站必須能相互配合,協同工作,同時也要求各分站與井上監控中心交互數據,以保證連續生產,實現全局的監控和優化。而目前,由于不同的監控系統相互獨立,兼容性差,且網絡化的監控系統采用了不同的通信技術和信息交換標準,難以做到信息共享和統一管理,容易形成“信息孤島”[1]。此外,現用井下分站大多采用不同的開發平臺、由不同的廠家開發,彼此之間形成了由不同通信協議和通信接口組成的異構系統。針對上述問題,在對傳統方法分析研究的基礎上,提出了基于Modbus協議的煤礦安全監控系統數據集成方案,井下分站采用Modbus標準通用協議實現數據實時通信,將異構設備接口通信歸一化,有效實現分站間相互操作和數據共享,解決了傳統方法在分站和協議較多時既繁瑣又效率低下的問題。
Modbus協議是1978年由Modicon公司制定的應用于電子控制器上的一種應用層報文傳輸協議,與底層的物理接口及電氣規范無關,支持傳統的RS-232/422/485設備和以太網設備等。從功能上看,可被認為是一種現場總線,不同廠家生產的控制器設備通過Modbus接口可以相互連成工業網絡,進行整個系統的集中監控。通過此協議,控制器相互之間、控制器經由網絡和其他設備之間可以進行通信,它的開放性使其逐步成為一種自動控制的通信協議標準[2]。
Modbus協議定義了一個控制器能識別和使用的報文結構,而不管它們通過何種網絡類型進行通信。該協議描述了控制器如何請求訪問其它設備,如何響應來自其它設備的請求,以及錯誤怎樣被檢測及報告的過程[3]。此外,Modbus協議采用Master-Slave技術,是一種應答方式的通信協議,將通信參與者規定為“主站(MASTER)”和“從站”(SLAVE),數據通信時,主站發出數據請求消息,從站接收到正確消息后就可以發送數據到主站以響應請求;主站亦可直接發消息修改從站的數據,實現雙向讀寫。每個從站都有相應的地址編號,數量最多可達274個。它通過多達24種的總線命令實現主站和從站之間的信息交換,具有簡單、高效、可靠和容易實現等優點。因為協議良好的適用性,已經得到了眾多大公司的支持,都把它作為一種標準的通信接口提供給用戶,并且作為與主系統通信的主要途徑[4]。
系統的數據采集軟件主要由下位機驅動模塊、分站配置管理模塊以及數據采集模塊三部分組成,上位機與井下分站之間通過Modbus協議進行通信,其架構如圖1所示。其中,下位機驅動模塊的實現基于Modbus協議的開源NModbus庫,在此基礎上進行封裝和擴展,作為數據采集軟件的“基礎設施”,并以接口的方式為其它模塊提供服務;在下位機配置管理模塊中,針對目前監控系統中的下位機存在配置不靈活、擴充性較差和不能很好適應系統環境和用戶需求變化等問題,利用XML文檔規范統一、互操作性強且與平臺無關等特點,把相關參數以XML文件進行描述,其中Slave.xml文件中保存了下位機的連接方式、速率、校驗方式、IP地址等信息;Register.xml文件中保存了各類傳感器的類型、閉鎖輸出通道、信號類型、量程、告警值、閉鎖值等參數,并設計專用的輔助類(Helper)對下位機及其各種參數進行配置管理,使得系統具有較好的適應性、靈活性和可配置性;數據采集模塊以下位機驅動模塊為基礎,并與下位機配置管理模塊相互協作,通過Modbus協議與下位機通信,實現井下各種傳感器參數的實時采集,并對采集到數據進行相應處理和持久化。三個模塊都以動態連接庫(DLL)的形式發布,以此可節省系統資源,也有利于軟件部署和安裝。

圖1 數據采集軟件總體架構
井下分站電路結構如圖2所示,主要包括數據處理、通訊、模擬量采集、開關量輸入采集、開關量輸出采集、人機接口等六大電路模塊。在外部電器信號和處理器之間采用光電隔離的保護措施,確保了外部干擾不會影響CPU的正常數據流程,所有接口設計采用三級或以上的電磁兼容標準,大大提高了電路系統的抗干擾能力,確保分站能在復雜電磁環境下穩定運行。以下分模塊闡述各部分電路系統設計:
1)分站選用ST公司的STR710FZ2T6微處理器作為核心數據處理單元,該處理器采用了ARM 7TDMI內核結構,并在內部集成了64KRAM、512KFlash、定時器及常見的通訊總線和多達64個GPIO口等。其豐富的片上外圍簡化了系統電路設計,使得分站電路結構更加簡潔穩固。
2)系統在邏輯層面實現了 Modbus協議的ASCII、RTU和TCP等 3種傳輸模式,并提供了RS485、100BaseTX和 100BaseFX等多種通訊接口。其中RS485選用Maxim公司的MAX3485電平轉化芯片并與CPU之間采用高速光電隔離;以太網PH Y層采用DM9161;MAC層采用DM 9000連接于CPU的EMI總線接口上。PHY層和MAC層之間采用MII總線連接。
3)模擬量輸入信號為(200~1 000 Hz)方波,經光電隔離后連接于CPU的外部中斷引腳上,由FirmWare實現頻率的采集。
4)開關量輸入和輸出采用光電隔離的方案連接于CPU的GPIO引腳,由FirmWare來實現輸入輸出控制邏輯。
5)電路系統采用按鍵作為信息輸入接口,采集用戶的輸入,并通過一塊12864點陣的單色LED屏把系統的設置信息和采集數據等顯示給用戶,這部分電路直接連接于CPU的GPIO口上,由 Firm-ware來實現按鍵的采集和數據的展示。
系統采用模塊化設計,既提高了電路系統的可靠性和可維護性,也給日后系統電路的功能擴展和故障檢修提供了方便。

圖2 井下分站硬件電路結構圖
根據分層模式的軟件體系結構和業務功能,數據采集模塊采用三層架構,包括表示層、業務層、數據訪問層,其架構如圖3所示。其中,表示層通過GUI技術提供用戶與系統的交互接口;業務邏輯層主要通過數據采集類中提供的方法完成了包括正常數據、告警數據、歷史數據、閉鎖四類數據的采集;數據訪問層把業務邏輯層采集的數據保存到后臺數據庫,并提供了相關數據的查詢、瀏覽等操作。三層架構降低了層與層之間的依賴關系,能夠保持各層邏輯上相對獨立性,從而使整個系統的邏輯結構更為清晰,提高系統和軟件的可維護性和可擴展性。

圖3 數據采集模塊架構
數據采集程序的流程如圖4所示,首先,從下位機配置文件Slave.xml中讀取所有下位機的連接信息,存放到SlaveList數組中;然后采用輪詢方法遍歷每一臺下位機,根據當前下位機的編號從Regis-ter.xml中獲取與該下位機連接的各傳感器參數,并存放到PointList數組中;若當前待采集的下位機連接正常,則分別采集對應傳感器的正常數據、告警數據、閉鎖數據和歷史數據。同時,對采集過程中關鍵信息在日志文件中進行記錄。

圖4 數據采集程序流程圖
針對目前煤礦安全監控系統中井下分站具有開發平臺異構、通信協議多樣性,以及存在著配置不靈活、擴充性較差和不能很好適應系統環境和用戶需求變化等問題,通過對Modbus協議特點和通信過程的分析,本文提出并實現了基于Modbus協議的煤礦安全監控系統數據集成方案,設計了井下分站,編制了數采程序,研發的系統在某大型企業的應用達到了預期效果,但還是滿足不了用戶數據集成和共享快速發展的需求。通過統一接口,實現從工廠底層的設備信息到高層的企業決策信息都能有效集成的OPCUA產品的研發將是下一步研究工作的重點。
[1] 司馬莉萍,賀貴明,陳明榜.基于Modbus/TCP協議的工業控制通信[J].計算機應用,2005,25(12):29-31.
[2] 王念春.基于Modbus協議的PC與下位機PLC間的通信程序[J].自動化儀表,2001,22(8):44-46.
[3] 劉沛津,谷立臣.基于Modbus/TCP的火電廠實時數據集成及網絡通信控制器研制[J].電力自動化設備,2009,29(8):129.
[4] 盧文俊,冷杉,楊建軍.基于Modbus協議的控制器遠程監控系統[J].電力自動化設備,2003,23(6):56-57.