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