楊斌斌,李 霏,黃振華,張松陽,胡淋翔
(中國衛(wèi)星海上測控部 江蘇 江陰214431)
基于VB的電機溫度實時在線監(jiān)測報警系統(tǒng)設計
楊斌斌,李 霏,黃振華,張松陽,胡淋翔
(中國衛(wèi)星海上測控部 江蘇 江陰214431)
本文針對船舶機艙電機溫度監(jiān)測手段智能化水平不高的現(xiàn)狀,利用VB串口通信技術(shù)和單片機技術(shù),設計開發(fā)了一套電機溫度實時在線監(jiān)測報警系統(tǒng),給出了單片機系統(tǒng)的軟硬件設計過程,重點對VB應用程序的設計過程進行描述。通過測試,該系統(tǒng)可以將電機溫度以數(shù)值和趨勢圖的形式在PC上位機上直觀顯示,當溫度超過給定的報警上下限值時可以及時發(fā)出報警提示,實現(xiàn)了船舶機艙電機溫度實時在線監(jiān)測報警的功能。
電機;溫度測量;單片機;VB;串口通信
船舶機艙電機眾多,以發(fā)電柴油機海水冷卻泵電機為例,當電機長期過載運行或電機軸承工況不良時,電機軸承部位的溫度短時間內(nèi)會明顯升高,若不及時發(fā)現(xiàn)這一情況并進行處置將會使電機損壞,直接影響發(fā)電柴油機的冷卻降溫。因此,設計一套電機溫度實時在線監(jiān)測系統(tǒng)顯得很有必要。
某船機艙自動化程度雖然很高,但是電機溫度監(jiān)測手段落后,主要靠點溫計和人手感觸進行測量。由于電機眾多和人力有限,平均每臺電機的巡視間隔時間為1小時,若電機溫度因故短時間內(nèi)快速升高,工作人員無法及時發(fā)現(xiàn)這一情況并進行處置,這就使設備發(fā)生故障損壞的概率大大增加。
文中運用主從分布式思想,由一臺上位機(PC機)和下位機(單片機)組成兩級分布式溫度測量監(jiān)測系統(tǒng),通過上位機(PC)控制下位機(單片機)進行現(xiàn)場溫度采集,并將溫度值發(fā)送至PC機進行數(shù)據(jù)處理和顯示[1]。下位機采用的是單片機基于數(shù)字溫度傳感器DS18B20的系統(tǒng)[2],可以方便地實現(xiàn)電機溫度的測量,系統(tǒng)框圖如圖1所示[3]。

圖1 方案設計系統(tǒng)框圖
文中設計的電機溫度實時在線監(jiān)測報警系統(tǒng)由溫度傳感器DS18B20、單片機、驅(qū)動電路,串口通信及PC上位機等構(gòu)成[4]。
文中運用宏晶公司的STC89C52單片機進行系統(tǒng)控制,運用到了復位電路,時鐘電路,串口,I/O口[5]。單片機上電后,由于電容充電,使RST持續(xù)一段高電平時間即可是系統(tǒng)復位。當已在運行時,按下K1復位鍵也能使RST持續(xù)一段時間的高電平,從而實現(xiàn)上電且開關(guān)復位的操作[6]。

圖2 單片機最小系統(tǒng)
RS232是目前異步串行通信中應用最廣泛的標準總線,使用時可利用電平轉(zhuǎn)換芯片MAX232把微處理器的信號電平(TTL電平)轉(zhuǎn)換為RS232電平[7]。
采用MAX232作為PC機與單片機的串行通信接口芯片時,可從MAX232中的2路發(fā)送器和接收器中任選一路,只要注意發(fā)送與接收的引腳對應關(guān)系即可。接口電路如圖3所示。
STC89C52單片機通過1-Wire協(xié)議與DS18B20進行通信時,只需把DS18B20的數(shù)據(jù)引腳和單片機的一個IO口接上即可[8]。DS18B20的溫度測量范圍是從-55度到+125度,增量值為0.5度,可在1 s(典型值)內(nèi)把溫度變換成數(shù)字[9]。設計中將DQ引腳通過一個上拉電阻接到了單片機的 P2.4口上,VCC引腳與+5 V電源相連接,GND引腳接地,如圖4所示。

圖3 PC機與單片機通信接口電路

圖4 DS18B20溫度傳感器接線圖
根據(jù)整個系統(tǒng)的要求,單片機接收傳感器的溫度信號,通過MAX232驅(qū)動轉(zhuǎn)換,然后利用串口通信將數(shù)據(jù)傳至PC機[10]顯示和報警,單片機測溫系統(tǒng)主程序流程圖[11]如圖5所示。

圖5 單片機測溫系統(tǒng)主程序流程圖
單片機通過串口與上位機通信,可以實時向上位機發(fā)送溫度值[12],相應的程序如下:

單片機通過串口與上位機通信,可以實時向上位機發(fā)送溫度值,接收上位機控制指令的相應的程序如下:


當enable=1時啟動測溫程序,enable=0時停止測溫程序,上位機停止刷新溫度顯示。
利用VB中的MSComm的通訊控件,可以輕松地實現(xiàn)串口通訊[13]。文中設計的VB電機溫度顯示應用程序,既可以在文本窗口顯示溫度值,也能在X和Y坐標平面中顯示溫度變化趨勢,并能對溫度報警上下限值進行設定。
為了使單片機與PC機串行通訊時有足夠的串口號供選擇,需對MSComm控件中的CommPort屬性進行設置。編程時利用Addltems方法向串口設置列表框中添加 COM1、COM2、COM3、COM4 4 個串口號,并且將ListIndex的索引值設為0,這樣設置后COM1、COM2、COM3、COM4 的索引值分別為0、1、2、3。由于CommPort的屬性值為1(默認值)時對應的是PC機的COM1,因此在將Combo1.ListIndex賦值給CommPort時加上1就能使選擇的串口號與實際串口號相一致[14]。對應的VB程序如下:

控制按鈕設啟動、停止、退出3個。當按下啟動按鈕時,VB程序?qū)?H1賦值給 buff(0),然后執(zhí)行MSComm.output=buff,將1發(fā)送給下位機。下位機接收到1后,即開始運行測溫程序,并將測得的溫度數(shù)據(jù)按千位、百位、十位、個位的順序發(fā)送給上位機。當按下停止按鈕時,VB程序?qū)?H2賦值給buff(0),然后執(zhí)行MSComm.output=buff,將2發(fā)送給下位機。下位機接收到2后,停止運行測溫程序,上位機顯示的溫度值不再變化。當按下退出按鈕時,VB程序?qū)⑼V惯\行并關(guān)閉。
單片機發(fā)送給PC上位機的電機溫度值為4位不帶小數(shù)點的數(shù)據(jù),當VB程序判定4位數(shù)據(jù)接收完畢后,首先用Val函數(shù)將接收到的數(shù)據(jù)轉(zhuǎn)換為數(shù)值,然后再除以10得到帶小數(shù)點的與實際溫度相符合的溫度值,并在文本框顯示出來[15],當高于給定的上限值或低于給定的下限值時均能發(fā)出報警提示,對應的指示燈會由綠色變成紅色。對應的VB程序如下:

由于從單片機發(fā)送過來的數(shù)據(jù)為4位數(shù),設計時將X坐標均分為300等份,對應時間值;將Y坐標均分為1 250等份,對應電機溫度值。當時間每遞增一個單位時,就有一個電機溫度值與之對應,將這些不斷變化的點連接起來就形成溫度變化趨勢圖。因為VB中Y軸的方向是向下的,為了使顯示的溫度變化曲線與實際相符,設計時Y軸顯示的溫度值實際上是1 250與實際溫度值的差值,X軸的時間值則不需改變。對應的VB程序如下:

圖6即為本文設計的電機溫度實時在線監(jiān)測報警系統(tǒng)軟件運行界面,其中串行通信的串口為COM4,給定溫度報警下限值為20℃,上限值為80℃。當電機溫度從40℃逐漸升高時溫度曲線逐漸往上走,超過80℃時“過高”指示燈由綠變紅,從而發(fā)出高溫報警提示。

圖6 上位機溫度顯示界面
文中設計的基于VB的電機溫度實時在線監(jiān)測報警系統(tǒng),利用DS18B20高精度溫度傳感器檢測電機溫度,通過VB的MSComm控件實現(xiàn)下位機和上位機的數(shù)據(jù)通信,可以將電機溫度以數(shù)值和趨勢圖的形式直觀顯示出來,當溫度超過給定的報警上下限范圍值時可以發(fā)出報警提示,具有實時、直觀的優(yōu)點。利用該系統(tǒng),工作人員可以在第一時間發(fā)現(xiàn)電機故障,及早開展有針對性的檢查維護,從而將故障消除在萌芽狀態(tài)。
[1]張潤華.使用Visual Basic實現(xiàn)PC與89C51單片機之間的串行通信[J].機電技術(shù),2011,10(7):98-100.
[2]王麗娟,王艷.基于DS18B20的多通道溫度測試儀[J].制造業(yè)自動化,2013(1):123-127.
[3]劉勇,卞紹順.溫度數(shù)據(jù)采集系統(tǒng)的設計與實現(xiàn)[J].機電技術(shù),2013(6):66-68.
[4]何健.基于DS18B20傳感器測溫系統(tǒng)的設計與實現(xiàn)[J].湖南農(nóng)機,2013(3):66-68.
[5]張江印.基于單片機的多點測溫系統(tǒng)[J].實驗室研究與探索,2012(10):74-78.
[6]杜洋.愛上單片機[M].2版.北京:人民郵電出版社,2011.
[7]宋雪松,李冬明.手把手教你學51單片機[M].北京:清華大學出版社,2015.
[8]易麗華,黃俊.基于AT89C51單片機與DS18B20的溫度測量系統(tǒng)[J].電子與封裝,2009(5):39-43.
[9]張軍.智能溫度傳感器DS18B20及其應用[J].儀表技術(shù),2010(4):68-70.
[10]魏延萍.基于VB的 PC機與單片機串口通訊技術(shù)的實現(xiàn)[J].信息技術(shù),2011(7):38-40.
[11]張維君,王珠忠.基于PC機串口與DS18B20的單線多點溫度測量[J].儀表技術(shù)與傳感器,2009(4):52-54.
[12]李江全.案例解說Visual Basic典型控制應用[M].北京:電子工業(yè)出版社,2011.
[13]上官勝剛.VB串口編程基礎(chǔ)及實現(xiàn)[J].科技廣場,2012(5):49-52.
[14]張輝.Visual Basic串口通信及編程實例[M].北京:化學工業(yè)出版社,2011.
[15]喬平安.Visual Basic 6.0程序設計[M].北京:人民郵電出版社,2013.
Design of real time online monitoring and alarming system for motor temperature based on VB
YANG Bin-bin,LI Fei,HUANG Zhen-hua,ZHANG Song-yang,HU Lin-xiang
(China Satellite Maritime Tracking Control Department,Jiangyin 214431,China)
In this paper,the ship cabin motor temperature monitoring means the intelligence level is not high status,the use of VB serial communication and microcontroller technology,design and development of a real-time online monitoring of the motor temperature alarm system,software and hardware design process gives the SCM system,the focus for VB application design process is described.By testing,the system can be the motor temperature in the form of numerical values and trends of visual display on a PC host computer,when the temperature exceeds a given alarm upper and lower limit can timely alarm prompt,It realizes the functions of the motor ship cabin temperature line monitoring alarms.
electric motor; temperature measure; single chip processor; VB; serial communication
TN06
A
1674-6236(2017)16-0171-04
2016-07-08稿件編號:201607074
楊斌斌(1985—),男,湖南懷化人,助理工程師。研究方向:船舶電氣設備。