楊沼鎮 侯全師 王澴奇 王毅



關鍵詞:C#;紅外測溫;軟件開發
1引言
C#是一種精確、簡單、安全、面向對象的編程語言,同時是開發Windows桌面應用時被廣泛使用的語言。將其應用在高爐熱風系統的紅外測溫領域中,不僅能夠利用其強大的開發平臺直接調用成熟的控件,在設計人機界面時更加友好和快捷,還能提升應用軟件的語言簡潔性、安全性、可靠性。
2軟件設計
基于C#的高爐熱風系統表溫監測軟件在開發時應合理設計整體架構及各個功能模塊,切實整合多個測溫探頭的溫度數據,完善各硬件的控制邏輯,優化軟件數據處理時的響應速度,保證各個環節高質量的良好運轉,使該監測系統更加智能化和現代化。
軟件的構成包含數據采集、數據存儲、數據分析以及控制單元、報警單元、歷史查詢等6個部分。軟件結構如圖1所示。
數據采集階段是將熱成像及溫度數據通過以太網傳輸至工控機,利用廠家提供的SDK(軟件開發包)定義好的通信接口,將數據進一步采集到內存,為后續的數據處理和圖像顯示做準備。
數據分析階段則需實現兩個功能:(1)實時比較當前溫度與報警閾值溫度,判斷是否超溫;(2)分析溫度變化趨勢,判斷是否存在短期內溫度飆升的異常狀況。
數據存儲階段是將所有實時溫度數據、圖像數據、溫度變化率等過程數據存人數據庫。
報警單元是當發生超溫或升溫速率過快時,軟件界面給出相應提示,及時引起主控室操作人員的注意,提醒其聯系維護人員去現場排查和確認異常狀況。
歷史查詢功能是每個成熟的監測類軟件不可或缺的一環,所顯示的任何數據及曲線皆從數據庫中調取。
控制單元的控制對象主要有兩個:一是云臺控制器,將紅外測溫儀安裝在活動云臺上,控制其旋轉角度即可改變監控范圍:二是伺服電機,主要用來驅動活動式導軌上的云臺,優點是通過移動云臺自身的位置極大地擴充了監測范圍。控制邏輯是讓每個云臺先按預設定的角度和軌道位置自動掃描一遍,掃描完成后,若發現溫度異常,則自動返回發現異常時的角度或位置進行持續跟蹤監視,并在界面提示報警:若無異常,則返回溫度最高區域對應的云臺角度進行重點監測。
3軟件開發
SDK(軟件開發包)一般由設備廠家提供,目的是協助軟件人員進行二次開發,內含基本的采集方式和規范,以及一些可供程序調用的動態鏈接庫。不同設備廠家的SDK不一樣。本文以某進口紅外測溫儀為例,該設備具備面測溫功能,即圖像視野內的每一個像素點的溫度都可采集到,并通過以太網傳輸至工控機。再根據SDK將數據采集至內存,做進一步分析,最后將數據存儲到數據庫中。
3.1數據庫技術
使用數據庫可以高效且條理分明地存儲數據,它使人們能夠更加迅速和方便地管理數據,主要體現在:(1)數據庫可以結構化存儲大量的數據信息,方便進行有效的檢索和訪問;(2)數據庫可以有效地保持數據信息的一致性、完整性以及降低數據冗余;(3)數據庫可以滿足應用的共享和安全方面的要求,把數據存放在數據庫中在很多情況下也是出于安全的考慮。
在開發軟件時,通常會對需要存儲數據的量級進行大致評估,便于選取合適的數據庫進行開發。結合本系統的實際情況,選擇利用SQL Server數據庫來進行相關數據的存儲和查詢。
數據庫選型之后,應合理設計數據庫表,根據高爐熱風表溫監測系統的特點以及對溫度數據實時性的需求,科學設計各類數據庫表,主要包括:(1)初始化表,記錄了人機界面中各參數的設定值,如超溫報警值、升溫速率報警值。同時,記錄了各云臺的當前預置位,伺服電機的當前米數,方便在重啟計算機或軟件時重新加載數據,確保測溫儀當前的位置和角度不丟失,保障測量的準確性;(2)測溫數據匯總表,包含溫度值、時間、測量對象、測溫儀編號等字段。將每一個溫度值背后的對應關系記錄下來,包含何時測量、由幾號測溫儀以何種角度所測、測量區域具體位置等信息;(3)報警表,含有報警時間、報警類型、報警對象、報警數值等字段。
3.2多線程技術
由于該軟件須從多個測溫儀采集視頻及溫度信號,為了合理地利用工控機硬件資源,同時兼顧軟件的運行速度,因而在開發過程中,尤其進行數據處理時,將多線程技術作為有效的利用手段。
多線程技術是指程序中包含多個執行流,即在一個程序中可以同時運行多個不同的線程來執行不同的任務,也就是說允許單個程序創建多個并行執行的線程來完成各自的任務。它有三個優點:(1)使程序的響應速度更快,因為用戶界面可以在進行其他工作的同時一直處于活動狀態,避免因為線程阻塞而導致人機界面出現“假死”狀態;(2)占用大量處理時間的任務使用多線程可以提高CPU利用率,即占用大量處理時間的任務可以定期將處理器時間分配給其他任務;(3)多線程可以分別設置優先級,以優化性能。
結合本軟件的實際情況,按測溫儀數量劃分,給每個數據源單獨分配一個線程,在各自線程中完成數據采集、分析及存儲的整個過程。
4應用實例
4.1項目概況
以遷鋼3#高爐熱風系統紅外監測項目為例,主要監測對象為四個一字排開的熱風爐以及L型熱風總管。為此,設計了10個可監測位置,支持5個紅外測溫儀同時在線監測。為了使監測范圍盡可能多的覆蓋熱風爐爐體,在熱風爐兩側設計并安裝了長約60m且與熱風爐排列方向平行的滑動軌道,用來移動云臺與測溫儀。對L型熱風總管的監測是在3個端點處采用固定式安裝的方式,通過云臺調整監測角度。滑動軌道如圖2所示。
4.2信號傳遞
每個監測位置均安裝配電集線箱,通過光纖網絡將溫度及圖像信號,途經工業交換機,傳送至主控室的工控機。另外,軟件下發的控制信號,如云臺角度調整及滑軌上的伺服電機轉動控制,亦通過此網絡從工控機端傳輸至配電集線箱內,再通過光電轉換模塊,將信號傳送至云臺及伺服電機控制器。系統構成如圖3所示。
4.3軟件應用
運行“熱風系統紅外監測軟件.exe”,顯示軟件運行主畫面后,點擊“一鍵啟動”按鈕,程序開始采集數據,并在界面上顯示實時的紅外圖像及溫度值。主界面如圖4所示。
紅外圖像在黑白色調模式下越明亮表示溫度越高,另可設閾值T,當溫度超過T時,圖像像素變為紅色,便于查看圖像中的高溫區域大致面積。超溫區域如圖5所示。
為了驗證報警功能,將報警閾值S適當降低為250°,軟件能快速捕捉到報警事件并彈出報警界面,提醒相關人員進行確認。報警界面如圖6所示。
從歷史曲線圖可以看出,熱風爐表面溫度變化呈周期性規律,這跟熱風爐交替處于燃燒和送風兩種模式相關,實踐證明,爐皮溫度與爐內風溫的變化趨勢一致。歷史曲線圖如圖7所示。
5結束語
結果表明,基于C#的熱風系統紅外監測軟件運行流暢,能迅速捕獲高溫異常點,能便捷從數據庫中讀取數據并展示歷史曲線,減少了操作人員的工作量,對熱風系統的安全性提供了一層保障。