天地(常州)自動化股份有限公司 奚冬芹
煤礦安全監控系統用來監測甲烷濃度、一氧化碳濃度、二氧化碳濃度、氧氣濃度、風速、風壓、溫度、煙霧、饋電狀態、風門狀態、風筒狀態、局部通風機開停、主要通風機開停等參數,并實現甲烷超限聲光報警、斷電和甲烷風電閉鎖控制等[1]。煤礦安全監控系統是煤礦進行安全生產的重要保障,它利用信息化手段對影響礦井安全生產的各種環境參數進行實時監測,使用戶能隨時了解礦井的運行狀況,并根據礦井的實際情況制定適宜的生產決策。煤礦安全監控系統運行中產生的大量監測數據往往以文本、報表、圖表等方式展現;圖表方式比單純的文本或報表更能直觀的反應環境參數的變化歷程和發展趨勢,具備更高的可讀性。MSChart、TeeChart、水晶報表等商業控件能夠實現數據信息的圖表顯示,但這些控件操作相對復雜、占用系統資源較多,需購買認證因而開發成本也高。與商業圖表控件相比,開源控件以其小巧、開發簡便、無成本等優勢正在得到越來越多的應用,ZedGraph控件是眾多開源圖表控件中比較優秀的一個[2]。
ZedGraph控件是基于C#的.Net開源圖表類庫,同時支持Windows應用程序和Asp網頁開發,能夠實現各種二維圖表如:Line、Bar、Pie、Area等。ZedGraph控件是面向對象的,因而在使用中具備較高的靈活性。基于ZedGraph開源的特性,可以免費獲得其信息、文件、更新支持和所有發布版本[3],在煤礦安全監控系統中采用ZedGraph控件開發監測數據的圖表展現模塊。
煤礦安全監控系統所收集的實時監測數據、歷史監測數據均要求能以圖表的形式展現出來。

圖1 實時圖表的繪制流程
實時圖表主要用于觀察測點在近一段時內的監測值變化趨勢和當前監測值的具體情況,以方便用戶掌握礦井當前的安全狀況。實時圖表的繪制流程如圖1所示。

圖2 開關量測點歷史圖表的繪制流程

圖3 模擬量測點歷史圖表的繪制流程
歷史圖表主要用于真實再現任意歷史時段的開關量測點狀態變化和模擬量測點監測值分布情況。歷史數據真實記錄了各個測點隨著時間推移監測值的變化情況,它為用戶分析問題查找原因提供了依據,蘊含在歷史數據中的事物發展規律也為用戶制定生產決策提供了指導。特定測點之間會存在一定的關聯關系,如風速、瓦斯、通風機開停、開停反饋等,用戶往往需要查看特定時間段內這些關聯測點的具體監測值用已排查事故原因找出問題所在,歷史圖表允許用戶選擇不同類型的多個測點進行組合查詢顯示,方便用戶分析問題。歷史圖表的繪制流程如圖2、3所示。
同坐標圖表是將同一時間段內不同類型(如:模擬量和開關量)測點的數據在同一個圖表中進行繪制,這種方式便于用戶直觀地掌握所關心的關聯測點在該時間段內的整體變化趨勢;隨著鼠標在圖表上的移動會顯示出某一時刻各測點的具體信息,有利于用戶快速分析問題。將查詢時間段內的測點數據以(時間點,數值)這種成對的方式放入到PointPairList中,再通過GraphPane(繼承自PaneBase)的AddCurve方法繪制圖表,多Y軸繪制第二個Y軸對應的圖表時需要設置曲線對象LineItem的IsY2Axis屬性為true。GraphPane的XAxis(或者YAxis)還支持對X軸(或Y軸)坐標值的顯示形式進行自定義設置,實現方法是為ScaleFormatEvent定義具體的事件內容。

圖4 測點數據同坐標圖表
同屏圖表是將同一時間段內不同類型(如:模擬量和開關量)測點的數據在同一界面中的不同圖表對象中進行繪制,便于用戶仔細觀察每個測點在該時間段內的各自變化情況,有利于用戶針對重要測點做詳細分析。同屏圖表主要是通過MasterPane(繼承自PaneBase,可控制多個GraphPane對象),為PaneList(GraphPane對象的集合)中的每個對象使用AddCurve方法一一繪制圖表。

圖5 測點數據同屏圖表
ZedGraph控件簡單、易用、功能全面,并提供豐富的屬性供開發者設置簡化開發過程;其開源性使開發者可以根據具體情況修改源碼以滿足特定需求。在煤礦安全監控系統中使用ZedGraph控件進行圖表模塊的開發,將大量的數據信息快速、直觀地展示出來,有利于用戶及時掌握井下情況以及分析蘊含在歷史數據中的規律并依此制定正確的生產決策。
[1]孫繼平.煤礦監控系統手冊[K].北京:煤炭工業出版社,2007.
[2]于國卿,李趁趁,趙雨森.ZedGraph控件在水閘監測系統開發中的應用研究[J].南水北調與水利科技,2008,6(3):43-45.
[3]孫吉,方明,顧燕偉.多維數據圖形顯示中ZedGraph控件的應用[J].電腦開發與應用,2008,21(3):55-56.