彩色小長(cháng)圖無紙記錄儀的(de)開發和(hé)設計

摘要】:介紹了(le)在保持與中長(cháng)圖無紙記錄儀通(tōng)用(yòng)的(de)基礎上開發的(de)小長(cháng)圖無紙記錄儀。該記錄儀可(kě)全中文圖形界面顯示、萬能輸入、功

能完備,運用(yòng)了(le)數據空間擴展分(fēn)頁訪問管理(lǐ)和(hé)代碼空間擴展切換等新技術。從硬件以及軟件兩方面詳細論述了(le)這(zhè)些新技術的(de)實現。



1 主要功能



(1)組态功能:該記錄儀具有強大(dà)的(de)組态功能,用(yòng)戶可(kě)對(duì)通(tōng)道信号類型、單位、量程、顯示範圍、記錄間隔、報警上下(xià)限以及顯示畫(huà)面、曆史追憶、流量累計、PID參數等進行設置。圖形化(huà)的(de)組态界面,操作簡單。
 
(2)信号采樣:模拟輸入通(tōng)道1~8路。全隔離萬能輸入,可(kě)輸入0~10V、0~5V、0~10mA、4~20mA标準信号和(hé)PT100、Cu50熱(rè)電阻信号以及K、S、B、N、T、E、J、R熱(rè)電偶信号。用(yòng)戶直接在組态畫(huà)面選擇,無需更換輸入通(tōng)道闆。記錄間隔可(kě)設置爲1/2/4/8/20/40/60/120/240等。
 

(3)存儲功能:采用(yòng)大(dà)容量Flash作爲主要存儲設備(用(yòng)戶可(kě)選1/2/4/6M)。軟盤作爲輔助,用(yòng)戶可(kě)以将任意時(shí)間段内的(de)數據轉存到軟盤,然後在PC機上進行顯示、分(fēn)析、打印。

 

(4)顯示功能:全中文圖形界面,菜單驅動,信息直觀豐富,操作簡單。主要顯示畫(huà)面:水(shuǐ)平趨勢畫(huà)面、垂直趨勢畫(huà)面、棒圖畫(huà)面、數字畫(huà)面(以上畫(huà)面均可(kě)1~8通(tōng)道選擇)、曆史數字趨勢追憶畫(huà)面(單通(tōng)道或多(duō)通(tōng)道同時(shí))、多(duō)通(tōng)道流量累計畫(huà)面、組态畫(huà)面(包括通(tōng)道設置、顯示設置、流量累計設置、PID參數設置、曆史追憶設置等畫(huà)面)。
(5)通(tōng)訊功能:提供RS-232/RS-485通(tōng)訊接口。可(kě)遠(yuǎn)距離通(tōng)訊,多(duō)台儀表組網。配合上位PC機軟件可(kě)實現遠(yuǎn)程監控。
(6)打印功能:提供常用(yòng)微型打印機接口,打印任意時(shí)間段内數據、趨勢曲線、流量累計值等。
(7)報警功能:配有16點開關量輸出通(tōng)道(可(kě)選長(cháng)開/長(cháng)閉),根據各通(tōng)道設置的(de)上下(xià)限,在顯示畫(huà)面實時(shí)顯示報警信息的(de)同時(shí)輸出報警信号。
(8)簡單PID調節功能:具有兩路PID輸出通(tōng)道,信号類型爲1~5~/4~20mA。

2 硬件設計


作者先前開發的(de)彩色中長(cháng)圖無紙記錄儀内部采用(yòng)了(le)上下(xià)位機的(de)結構。上位機采用(yòng)ALL-IN-ONE型PC104嵌入式模闆作爲硬件平台,直接接入GB級硬盤和(hé)1.44MB軟盤、640×480的(de)10“彩色TFT液晶顯示屏、6鍵數字鍵盤。下(xià)位機采用(yòng)以PHILIPS公司80C552爲控制核心的(de)采集模塊。上位機負責畫(huà)面顯示、用(yòng)戶組态、數據管理(lǐ)、打印以及遠(yuǎn)程通(tōng)訊(RS232或485)。下(xià)位機負責信号調理(lǐ)、數據計算(suàn)、報警以及PID輸出。上下(xià)位機間通(tōng)過RS232接口連接,傳遞通(tōng)道組态信息和(hé)通(tōng)道數據值。結構框圖見圖
 
1。采用(yòng)該種結構的(de)優點是模塊化(huà)設計,上下(xià)位機各司其職,分(fēn)工合作;應用(yòng)靈活,兼容性好;故障定位容量。該系統的(de)易用(yòng)性和(hé)可(kě)靠性已經在工廠應用(yòng)得(de)到了(le)證明(míng)。但也(yě)要看到,在該系統中,PC104模闆的(de)功能并沒有被充分(fēn)使用(yòng),硬件空間浪費嚴重(目前市場(chǎng)上已買不到4G以下(xià)容量的(de)硬盤了(le)),液晶顯示屏價格昂貴,從而導緻了(le)記錄儀價格偏高(gāo)。
在總結了(le)中長(cháng)圖無紙記錄儀的(de)研發之後,在小長(cháng)圖無紙記錄儀的(de)設計中仍然采用(yòng)了(le)上下(xià)位機的(de)結構。其中下(xià)位機數據采集模塊與中長(cháng)圖無紙記錄儀通(tōng)用(yòng),這(zhè)樣避免了(le)重複開發,并使小長(cháng)圖、中長(cháng)圖無紙記錄儀成爲一個(gè)體系。全新開發了(le)以DALLAS公司80C320爲核心的(de)上位機。結構框圖見圖2。
采用(yòng)了(le)320×240的(de)5“DSTN彩色液晶顯示屏。數據存儲主要采用(yòng)大(dà)容量的(de)Flash,輔助設備采用(yòng)1.44M軟盤,由GM82C765負責控制。使用(yòng)80C320主要基于兩點考慮:一是80C320具有兩個(gè)UART,能滿足記錄儀内部上下(xià)位機通(tōng)訊以及與外部的(de)遠(yuǎn)程通(tōng)訊,軟件編制的(de)複雜(zá)程度也(yě)大(dà)大(dà)降低;二是軟驅控制器GM82C765的(de)實時(shí)性要求比較高(gāo),而80C320的(de)4周期技術可(kě)使其在與其它51芯片采用(yòng)相同晶振的(de)條件下(xià),指令執行速度快(kuài)三倍;加上雙DPTR的(de)結構,能提高(gāo)程序執行效率,從而更好地與GM82C765配合。
由于液晶屏采用(yòng)RAM方式驅動,并且大(dà)容量的(de)并行Flash存儲器遠(yuǎn)遠(yuǎn)超出了(le)51單片機64K的(de)數據尋址空間,因此,我們對(duì)80C320進行了(le)數據空間擴展,增加了(le)8根地址線。對(duì)增加的(de)地址空間我們進行了(le)分(fēn)頁管理(lǐ)(每個(gè)頁面大(dà)小爲32K),利用(yòng)51原有的(de)高(gāo)端32K數據空間進行換頁訪問。在增加的(de)數據空間内,我們安排了(le)32K的(de)I/O空間、64K的(de)液晶顯示空間以及Flash存儲器空間,擴充的(de)數據空間達到8M。原理(lǐ)圖見圖3。

對(duì)編程而言,數據空間就是原有的(de)64K空間。當程序要訪問擴充的(de)數據空間時(shí),先向地址0x7FFF寫入高(gāo)8位地址進行頁面選擇,由硬件片選電路将被選擇的(de)頁面映射到原51的(de)高(gāo)端32K數據空間。此後對(duì)高(gāo)端32K數據空間的(de)訪問就是對(duì)所選擴展數據空間頁面的(de)訪問。擴充數據空間總共有分(fēn)爲256個(gè)頁面。低端32K數據空間的(de)訪問不受頁面選擇的(de)影(yǐng)響。


由于51系列單片機體系結構上的(de)限制,其代碼空間隻有64K。小長(cháng)圖無紙記錄儀軟件采用(yòng)C語言編寫,菜單驅動全中文圖形界面顯示,并且功能完備,軟件代碼的(de)長(cháng)度超出了(le)64K。爲了(le)解決這(zhè)個(gè)問題,我們開創性地使用(yòng)了(le)擴充代碼空間并自行控制片選從而切換代碼空間的(de)方法,可(kě)以說這(zhè)是最小長(cháng)圖無紙記錄儀在技術上的(de)一個(gè)創新。其硬件原理(lǐ)見圖4。
 
而在軟件設計上,爲了(le)保證程序能在兩塊代碼空間自由切換且保證運行正常,在軟件編寫以及編譯連接定位上均有較高(gāo)的(de)要求。
這(zhè)在下(xià)面的(de)軟件設計一節中詳細說明(míng)。


3 軟件設計
小長(cháng)圖無紙記錄儀軟件采用(yòng)C語言和(hé)彙編語言混合編寫。用(yòng)C語言進行編程能提高(gāo)開發的(de)效率以及代碼的(de)質量,但在實時(shí)性要求較高(gāo)的(de)場(chǎng)合,目前的(de)C51編譯器仍有其局限性。因此,軟件的(de)主體部分(fēn)采用(yòng)C語言編寫;而對(duì)實時(shí)性要求嚴格的(de)GM82C765軟驅控制器的(de)訪問、液晶屏有驅動等底層函數均采用(yòng)51彙編語言編寫。C程序和(hé)彙編語言模塊之間的(de)連接主要解決變量傳遞、共享及代碼調用(yòng)等問題。限于篇幅,在此就不多(duō)論述了(le),有興趣的(de)讀者論壇者請參閱參考文獻3。
軟件設計中要解決的(de)關鍵問題是代碼切換。其原理(lǐ)圖見圖5。

原理(lǐ)圖中Function1與Funciton2代碼很大(dà),當它們放在一個(gè)工程中編譯時(shí),代碼超出了(le)64K的(de)限制。因此将它們分(fēn)置于兩個(gè)代碼空間中。相應的(de)程序必須分(fēn)成兩個(gè)工程來(lái)編寫。其中Function1放在ROM1中,Function2放在ROM2中,MainLoop(主循環)與SwitchChip(空間切換函數)爲公共函數;民時(shí)爲了(le)工程能夠被正确編譯連接,在ROM1和(hé)ROM2中分(fēn)别加放了(le)Function2與Function1的(de)空函數。


代碼空間切換的(de)流程是這(zhè)樣的(de):假定上電後,程序開始運行于ROM1空間,進入MainLoop循環等待事件發生。當某一時(shí)刻,event2事件發生,程序調用(yòng)SwitchChip,參數爲2(見圖中①)。進入SwitchChip函數後,根據參數設置片選,選中ROM2,此後程序在ROM2空間運行(見圖中②)。SwitchChip函數返回,開始調用(yòng)ROM2中真正的(de)Function2函數(見圖中③)。完畢後程序在ROM2空間中的(de)MainLoop循環,等待新事件發生。
當程序運行在ROM2中的(de)MainLoop時(shí),event1事件發生,程序調用(yòng)SwitchChip,參數爲1(見圖中④)。進入SwitchChip函數後,根據參數設置片選,先中ROM1,從而程序回到ROM1空間運行(見圖中⑤)。SwitchChip函數返回,開始調用(yòng)ROM1中真正的(de)Function1函數(見圖中⑥)。執行完畢後程序在ROM1空間中的(de)MainLoop循環。
而當程序運行在ROM1中發生event1事件時(shí),調用(yòng)SwitchChip不會切換ROM空間,從而能正确調用(yòng)Function1函數。同理(lǐ)在ROM2中發生event2事件也(yě)是一樣。




從原理(lǐ)圖以及上述流程可(kě)以看出,使兩塊ROM空間進行正确切換的(de)必要條件是:
·兩塊ROM中MainLoop函數的(de)起始地址必須相同,并且語句必須完全一樣,從而保證每條語句的(de)地址是相同的(de)。在ROM切換後,函數調用(yòng)的(de)返回地址是相同的(de)。程序能正常運行而不跑飛(fēi)。

·同理(lǐ),兩塊ROM中SwitchChip函數體必須完全相同并定位在相同的(de)地址。
·兩個(gè)工程中的(de)全局變量在RAM中的(de)定位必須完全一緻,否則将出現不可(kě)預期的(de)後果。
·ROM片選線的(de)切換速率必須足夠快(kuài),使得(de)CPU在讀取下(xià)一條指令前片選信号就已穩定下(xià)來(lái)。
程序中函數以及變量的(de)定位可(kě)參考C51編譯器以及連接器的(de)定位開關,這(zhè)裏就不展開了(le)。

彩色小長(cháng)圖無紙記錄儀的(de)設計與開發保持了(le)與彩色中長(cháng)圖無紙記錄儀的(de)通(tōng)用(yòng)性。基本功能一緻,體積減小,成本降低。并且使用(yòng)了(le)數據空間(RAM)擴展分(fēn)頁訪問管理(lǐ)、代碼空間(ROM)擴展切換等新技術。
drug coupon card link viagra discounts coupons
dulcolax blog.idilbaby.com dulcolax avis

相關區(qū)域關鍵字:

河北百拓自動化科技有限公司

服務電話(huà): 400-900-5633

銷售熱(rè)線: 13795321951

郵 編:201500

地址:中國.上海.金山

Copyright @ 上海繹捷版權所有    京ICP證000000号

(周一到周六:9:00-17:00)

掃一掃,關注官方微信

分(fēn)享到: