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