摘要:介紹了一種基于單片機(jī)系統(tǒng)的起重機(jī)“黑匣子”設(shè)計(jì)方法。詳細(xì)闡述了“黑匣子”軟硬件設(shè)計(jì)方法及其基于VB6.0的上位機(jī)通訊軟件的設(shè)計(jì)方法,并解決了軟件設(shè)計(jì)中容易遇到的問題。
關(guān)鍵字:黑匣子,力矩限制器,串行通訊,上位機(jī)
引言
“黑匣子”是飛機(jī)專用的電子記錄設(shè)備之一,即航空飛行記錄器。它能夠把飛行相關(guān)技術(shù)數(shù)據(jù)和狀態(tài)信息等記錄下來(lái),必要時(shí)取出來(lái),供實(shí)驗(yàn)、事故分析用。如今,“黑匣子”已經(jīng)成功“著陸”,被更多的民用交通工具使用,比如汽車黑匣子、機(jī)車黑匣子、船舶黑匣子等。“黑匣子”技術(shù)在起重機(jī)上也大有作為。自動(dòng)記錄式力矩限制器能夠自動(dòng)記錄起重機(jī)非正常狀態(tài)和某些參數(shù),在功能和結(jié)構(gòu)上,都與傳統(tǒng)的“黑匣子”相似,亦可稱為起重機(jī)“黑匣子”,主要功能有:
(1)分析故障:起重機(jī)調(diào)試和維護(hù)中,可以利用其記錄的故障數(shù)據(jù),幫助分析調(diào)試時(shí)的狀態(tài)和維修重點(diǎn)。
(2)超載記錄:自動(dòng)記錄超載相應(yīng)信息,便于車主或主管部門翻查分析。
(3)狀態(tài)監(jiān)視:“黑匣子”與安全警告裝置聯(lián)系緊密,發(fā)生故障或超載的時(shí)候,向操作人員報(bào)警。
(4)修改參數(shù):將起重機(jī)一些參數(shù)存儲(chǔ)到“黑匣子”里,通過(guò)通訊手段就可以方便的進(jìn)行修改,使得力限器能夠適應(yīng)不同的起重機(jī)的要求。
1.硬件設(shè)計(jì)
起重機(jī)“黑匣子”除具有傳統(tǒng)的事后事故分析功能外,還能在發(fā)生故障和超載的時(shí)候,利用液晶字段顯示、指示燈和蜂鳴器等一些聲光手段提醒操作人員采取相應(yīng)的措施。此外還采用了一系列防潮、防水、防腐蝕、抗干擾、抗撞擊的技術(shù),比如采用鐵質(zhì)外殼來(lái)屏蔽系統(tǒng),使用防水隔潮橡膠圈等。
1.1芯片的選擇
片外存儲(chǔ)芯片選用AT28C64B,它具有8K尋址空間,軟硬件數(shù)據(jù)保護(hù)措施,寫入的同時(shí)自動(dòng)擦除,寫入周期短(10ms),掉電數(shù)據(jù)不丟失,斷電后數(shù)據(jù)保存10年,功耗低,而且它不需要其他部件、能夠像普通的靜態(tài)RAM那樣進(jìn)行讀寫操作。時(shí)鐘芯片選用DS1302串行實(shí)時(shí)時(shí)鐘,它可對(duì)秒、分、時(shí)、日、周、月以及帶閏年補(bǔ)償?shù)哪赀M(jìn)行計(jì)數(shù),功耗低。串行通訊芯片選用MAXIM公司的MAX232CPA,其功耗低,波特率高,使用普遍,與PC機(jī)通訊很方便。單片機(jī)采用WINBOD公司的W78E58,52系列單片機(jī),32K片內(nèi)EPROM,256字節(jié)片內(nèi)RAM,64K片外尋址空間,1個(gè)全雙工串口。
1.2工作原理
系統(tǒng)框圖如圖一所示。單片機(jī)將采集到的傳感器信號(hào)代入計(jì)算程序進(jìn)行分析處理,根據(jù)鍵盤掃描信號(hào)所決定的顯示對(duì)象,將處理后要顯示的數(shù)據(jù)傳輸過(guò)去。如果在工作中出現(xiàn)故障或超載,單片機(jī)會(huì)將當(dāng)時(shí)的時(shí)間、相關(guān)起重?cái)?shù)據(jù)和狀態(tài)等信息存放到AT28C64B的固定地址中,完成“黑匣子”的數(shù)據(jù)采集工作。需要向上位機(jī)(如筆記本電腦)傳輸故障區(qū)數(shù)據(jù)、超載數(shù)據(jù)以及更改起重機(jī)某些參數(shù)的時(shí)候,需要從AT28C64B中讀取出相應(yīng)的數(shù)據(jù),利用MAX232CPA按字節(jié)發(fā)送到上位機(jī)上,完成數(shù)據(jù)通訊工作。這些參數(shù)變量要代入力矩計(jì)算公式進(jìn)行計(jì)算的,它們的改變將直接影響力限器的計(jì)算結(jié)果。力矩計(jì)算公式具有一定的代表性和適用性,實(shí)際上改變參數(shù)的值意味著滿足不同起重機(jī)對(duì)力限器的要求。
1.3AT28C64的存儲(chǔ)方法
“黑匣子”記錄的數(shù)據(jù)存儲(chǔ)到EEPROM需要統(tǒng)籌規(guī)劃,不僅考慮尋址方便,而且盡量壓縮空間的使用便于今后擴(kuò)展,這三種記錄的數(shù)據(jù)按類型分片管理。
起重機(jī)參數(shù)變量分成兩種:?jiǎn)巫止?jié)數(shù)據(jù),如工況,調(diào)零調(diào)滿值等;雙字節(jié)數(shù)據(jù),如基本臂臂長(zhǎng),二節(jié)臂臂長(zhǎng)等。故障分為10種,分別放在10個(gè)故障區(qū),每區(qū)占用250個(gè)字節(jié)。超載區(qū)最多存放100條超載記錄,每條包括超載發(fā)生的相關(guān)時(shí)間信息、峰值、當(dāng)時(shí)的工況、幅度等,根據(jù)這些參數(shù)就能知道超載發(fā)生時(shí)起重機(jī)的狀況,這是起重機(jī)“黑匣子”的主要功能。涉及到記錄浮點(diǎn)數(shù)的,一律將其轉(zhuǎn)變?yōu)檎麛?shù)進(jìn)行存儲(chǔ)。上位機(jī)接收后,再把它們轉(zhuǎn)換回相應(yīng)的浮點(diǎn)數(shù)進(jìn)行處理和顯示。這樣不僅節(jié)省了空間,而且便于上位機(jī)處理。
2.軟件設(shè)計(jì)
2.1串行通訊原理簡(jiǎn)介
串行通訊分為同步和異步兩種模式,異步使用較多。串行通訊雙方只有遵守一定的通信規(guī)則才能正常工作,該規(guī)則就是通信端口的初始化,包括設(shè)置數(shù)據(jù)傳輸速度、發(fā)送單位、起始位或停止位以及校驗(yàn)碼。
2.2串行通訊的步驟
單片機(jī)上電自檢后,液晶屏上會(huì)出現(xiàn)“————”,表示當(dāng)前處于串行通訊狀態(tài)。如果此時(shí)接收到握手信號(hào),系統(tǒng)將處于串行通訊狀態(tài)并向上位機(jī)發(fā)送反饋信號(hào),否則進(jìn)入正常工作狀態(tài)。進(jìn)入串行通訊狀態(tài),單片機(jī)會(huì)按上位機(jī)發(fā)出的指令與其進(jìn)行通訊。通訊流程圖見圖二所示。指令分為兩大類:松手指令和正常通訊指令。松手指令雙方可以相互約定不易混淆的代碼充當(dāng)。正常通訊指令由三部分組成的:指令代碼(讀/寫)、操作對(duì)象地址、操作對(duì)象數(shù)量范圍,以此指導(dǎo)單片機(jī)尋址、操作。指令設(shè)定八位一個(gè)字節(jié),作為最小的通訊單位,單片機(jī)一次最多發(fā)送256個(gè)字節(jié)(單片機(jī)本身所限)。指令代碼的設(shè)置應(yīng)具有一定的安全性,穩(wěn)定性,可靠性。
3.上位機(jī)軟件
3.1VB6.0串行通訊控件及其界面簡(jiǎn)介
起重機(jī)“黑匣子”如實(shí)地將起重機(jī)非正常狀態(tài)記錄下來(lái)以后,還需要在上位機(jī)上通過(guò)專用軟件再現(xiàn)出來(lái)才算完成完整的功能。系統(tǒng)利用VB6.0有效地完成我們完成串行通訊的任務(wù)。VB6.0自帶的MSComm控件提供了事件響應(yīng)功能開發(fā)串行通訊工程,另外還可以利用定時(shí)器或是DO…Loop,以輪詢來(lái)達(dá)到自動(dòng)化的目的。為了節(jié)省系統(tǒng)資源,上位機(jī)對(duì)串行數(shù)據(jù)的讀取采用事件觸發(fā)方式。接收緩沖區(qū)接收到數(shù)據(jù)便會(huì)觸發(fā)OnComm事件,根據(jù)CommEvent屬性值的當(dāng)時(shí)值,建立一個(gè)事件驅(qū)動(dòng)的通訊程序進(jìn)行處理。
上位機(jī)通訊軟件界面如圖三所示。該界面能夠完成多種功能。開始運(yùn)行時(shí),軟件按選擇的端口不斷發(fā)出握手信號(hào),直到接收到單片機(jī)正確的反饋信號(hào)。這時(shí)便處于連通狀態(tài),可進(jìn)行多種操作:選擇故障區(qū)并讀取和保存、讀取超載區(qū)并保存、選擇讀或?qū)懫鹬貦C(jī)參數(shù)變量、松手退出等。寫入?yún)?shù)時(shí),會(huì)有提示框彈出防止誤操作,輸入數(shù)據(jù)超過(guò)指定范圍,軟件拒絕寫入。
3.2上位機(jī)軟件內(nèi)部處理
上位機(jī)從單片機(jī)得到的是二進(jìn)制代碼,但是顯示的對(duì)象有單、雙字節(jié)之分,這就要將其轉(zhuǎn)變成相應(yīng)的10進(jìn)制數(shù)據(jù)。單字節(jié)數(shù)據(jù)轉(zhuǎn)變?yōu)?0進(jìn)制數(shù)據(jù)相對(duì)簡(jiǎn)單,調(diào)用VB6.0相應(yīng)函數(shù)即可。雙字節(jié)數(shù)據(jù)需要兩個(gè)字節(jié)連在一起轉(zhuǎn)換,涉及到數(shù)據(jù)正負(fù)的問題:轉(zhuǎn)換后的數(shù)據(jù)最高位是1的話,VB6.0認(rèn)為是符號(hào)位,自動(dòng)將其變成負(fù)數(shù)。遇到這種情況,只要將最高位的1以0代替,將得出的10進(jìn)制數(shù)加上32768就能解決。時(shí)間數(shù)據(jù)按單字節(jié)數(shù)據(jù)的轉(zhuǎn)換、顯示方法處理。
5.結(jié)論
隨著“黑匣子”技術(shù)的民用化的普及,起重機(jī)安裝“黑匣子”已是大勢(shì)所趨。文章基于單片機(jī)系統(tǒng)開發(fā)出一種適應(yīng)范圍廣泛的起重機(jī)“黑匣子”,并已完成現(xiàn)場(chǎng)調(diào)試。實(shí)踐證明,起重機(jī)“黑匣子”具有反應(yīng)靈敏、操作方便、性能穩(wěn)定、成本低廉,深受客戶好評(píng)。
參考文獻(xiàn):
[1]范逸之,陳立元;VisualBasic與RS-232串行通訊控制;清華大學(xué)出版社;2002
[2]張培仁;基于C語(yǔ)言編程MCS-51單片機(jī)原理與應(yīng)用;清華大學(xué)出版社;2003
[3]劉欣;大屏幕液晶顯示在力矩限制器中的應(yīng)用;現(xiàn)代電子技術(shù);2004.10
作者簡(jiǎn)介:劉欣,男,生于1956年,大連理工大學(xué)副教授,主要從事自動(dòng)控制及智能儀表方面的研究。(end)