吳杰長 吳雄學(xué) 陳國鈞
(海軍工程大學(xué)船舶與動(dòng)力學(xué)院 武漢 430033)
柴油機(jī)試驗(yàn)和測試過程中,有大量工作參數(shù)需要實(shí)時(shí)監(jiān)測、記錄、保存和繪制圖表曲線進(jìn)行分析,并可隨時(shí)調(diào)閱歷史數(shù)據(jù),因此在試驗(yàn)測試系統(tǒng)研制中更需關(guān)注軟件界面人機(jī)交互性能和硬件通用性、可維性等方面的設(shè)計(jì).根據(jù)上述要求,以及從提高開發(fā)效率、使用方便性、易推廣性和功能易擴(kuò)充性出發(fā),有必要充分應(yīng)用工業(yè)自動(dòng)化領(lǐng)域已發(fā)展成熟和得到廣泛應(yīng)用的技術(shù)成果,如現(xiàn)場總線技術(shù)、組態(tài)軟件技術(shù)等.在目前國際上具有廣泛影響的幾種現(xiàn)場總線[1](CAN-controller area network,LON-local operating network,PROFIBUS-process field bus,F(xiàn)F-foundation field Bus)中,CAN 總線在20世紀(jì)80年代以來即得到了Motorola,Intel,Philips,Siemens,NEC 等公司的支持,其支持器件非常豐富,且由于采用了許多新技術(shù)和獨(dú)特的設(shè)計(jì)手段,其數(shù)據(jù)通信的可靠性、實(shí)時(shí)性、靈活性和錯(cuò)誤管理能力尤為突出,因而被公認(rèn)為是適于工業(yè)現(xiàn)場、具有良好發(fā)展前景的總線標(biāo)準(zhǔn).此外,考慮到基于微機(jī)的虛擬監(jiān)測平臺具有開發(fā)容易、可靠性高、移植性好、成本低和界面友好、便于數(shù)據(jù)記錄分析等諸多優(yōu)點(diǎn),且開發(fā)工具極為豐富,既可以采用各種高級語言(如Visual C++,Dephi,Visual Basic),也可采用工控組態(tài)軟件開發(fā),而且采用組態(tài)軟件編程更易于實(shí)現(xiàn)友好的人機(jī)界面[2]和進(jìn)行數(shù)據(jù)分析,滿足工程要求.
基于上述考慮,本文特基于CAN 現(xiàn)場總線和Intouch組態(tài)軟件的柴油機(jī)試驗(yàn)和測試系統(tǒng)進(jìn)行研究.
基于CAN 總線的典型網(wǎng)絡(luò)測控系統(tǒng)[3-7]包括若干個(gè)CAN 現(xiàn)場監(jiān)控節(jié)點(diǎn),用來進(jìn)行外部輸入信號的調(diào)理、驅(qū)動(dòng)外部執(zhí)行器,其特定功能由開發(fā)人員根據(jù)需求設(shè)計(jì)與實(shí)現(xiàn);一個(gè)或多個(gè)PC 機(jī)CAN適配器節(jié)點(diǎn),用來將CAN 網(wǎng)上信息與PC機(jī)進(jìn)行交換通信,配置多個(gè)此類節(jié)點(diǎn)可方便地構(gòu)成多機(jī)、多點(diǎn)備份系統(tǒng)和總線監(jiān)視器.CAN 節(jié)點(diǎn)間的互連網(wǎng)線可采用光纜、同軸電纜、雙絞線等物理媒介.
根據(jù)實(shí)驗(yàn)室測試平臺構(gòu)成情況,本文構(gòu)建的柴油機(jī)試驗(yàn)測試系統(tǒng)總體構(gòu)成如圖1所示,共配置1個(gè)上位PC機(jī)節(jié)點(diǎn)和3個(gè)現(xiàn)場CAN 節(jié)點(diǎn),現(xiàn)場節(jié)點(diǎn)分別采集以下參數(shù):柴油機(jī)轉(zhuǎn)速、柴油機(jī)油門位置、測功器進(jìn)出水閥開度參數(shù);油水溫度和排氣溫度參數(shù);油水壓力和排氣背壓參數(shù).試驗(yàn)平臺中,柴油機(jī)采用電子調(diào)速器進(jìn)行控制,故轉(zhuǎn)速的電控單元與CAN 總線網(wǎng)絡(luò)測試系統(tǒng)完全獨(dú)立.
圖1 基于CAN 總線的柴油機(jī)試驗(yàn)測試系統(tǒng)
對于網(wǎng)絡(luò)中的任意節(jié)點(diǎn),都涉及CAN 總線接口的電路設(shè)計(jì)問題,這與電路設(shè)計(jì)時(shí)所選用的器件密切相關(guān),可根據(jù)元器件生產(chǎn)商所提供技術(shù)資料中的參考電路進(jìn)行設(shè)計(jì).本文選用帶CAN 控制器的P80C592單片機(jī)和82C250型CAN 總線驅(qū)動(dòng)器進(jìn)行電路設(shè)計(jì),具體實(shí)現(xiàn)電路參見文獻(xiàn)[3].
CAN 節(jié)點(diǎn)軟件是實(shí)現(xiàn)CAN 總線測控系統(tǒng)優(yōu)良特性的重要保證,在本文所設(shè)計(jì)的電路中,CAN 控制器對于CPU 來說,是以確保雙方獨(dú)立工作的存儲器映象外圍設(shè)備出現(xiàn)的,因此軟件編程工作主要針對CAN寄存器而進(jìn)行,下文中以CAN報(bào)文接收濾波和CAN 中斷的編程予以說明.
在P80C592單片機(jī)的CAN 寄存器中,接收碼寄存器ACR 和接收屏蔽寄存器AMR 是用來進(jìn)行報(bào)文接收濾波、決定CAN 控制器是否接收總線信息的.在CAN 通信中,只有滿足式(1)的報(bào)文才能被接收,不符合該條件的報(bào)文則被忽略,基于這一特點(diǎn)即可實(shí)現(xiàn)特定的節(jié)點(diǎn)間通信或全局廣播通信,文中報(bào)文接收濾波編程依據(jù)下式進(jìn)行.ID.10,ID.9,…,ID.3=AC.7,AC.6,…,AC.0或
在本文程序設(shè)計(jì)中,CAN 通信是在CAN 中斷程序中借助DMA 邏輯、在后臺實(shí)現(xiàn)高速傳送完成的.首先應(yīng)在初始化中設(shè)置CAN 允許中斷,在滿足式(1)條件下,只要CAN 接收器無差錯(cuò)地接收到一則報(bào)文,CPU 就進(jìn)入CAN 中斷子程序.在CAN 中斷子程序?qū)崿F(xiàn)DMA 傳送的步驟是:首先確定緩沖區(qū)地址并寫入CANSTA,然后將CANADR.7(DMA)位置“1”,待傳送報(bào)文即可由指定緩沖區(qū)開始傳送至RAM.
現(xiàn)場節(jié)點(diǎn)所要完成的如信號A/D 轉(zhuǎn)換、軟件濾波、LED 顯示刷新等常規(guī)功能編程與CAN 控制器無關(guān),電路設(shè)計(jì)及編程方法與通常測控電路相同.
對圖1所示的柴油機(jī)試驗(yàn)測試系統(tǒng),PC微機(jī)CAN 適配器的開發(fā)是功能實(shí)現(xiàn)的關(guān)鍵.通過微機(jī)CAN 適配器,上位微機(jī)才能訪問所有柴油機(jī)試驗(yàn)數(shù)據(jù).在CAN 總線系統(tǒng)中,CAN 適配器(CAN-adapter)是插于PC 機(jī)ISA 總線或其他總線插槽的CAN 通信接口板.要實(shí)現(xiàn)PC 機(jī)和CAN 控制器之間的數(shù)據(jù)交換,首先必須在PC 機(jī)和適配器之間建立雙向的數(shù)據(jù)交換通道,實(shí)現(xiàn)這類數(shù)據(jù)交換的方式有I/O 端口法和內(nèi)存映象法.
I/O端口法的基本實(shí)現(xiàn)途徑是:PC機(jī)利用I/O端口“讀/寫”方式將數(shù)據(jù)傳送到適配器上的微控制器,然后,微控制器再將數(shù)據(jù)存儲在適配器的外部數(shù)據(jù)存儲器中,等待CAN 控制器進(jìn)行數(shù)據(jù)通信.PC機(jī)中的CPU 采用I/O獨(dú)立編址方式,在軟件實(shí)現(xiàn)上采用專門的I/O 指令(如C 語言中的inport()、outport()庫函數(shù))來對接口地址進(jìn)行操作.
采用雙口RAM 是以內(nèi)存映象法實(shí)現(xiàn)CAN適配器的關(guān)鍵,其基本原理是:將適配器上雙口RAM(Dual-port RAM)的地址配置于PC機(jī)的內(nèi)存高端區(qū),PC機(jī)采用“讀/寫”內(nèi)存的方式訪問適配器的雙口RAM,在PC機(jī)不訪問適配器的雙口RAM 時(shí),適配器微控制器可以訪問雙口RAM;反之,在微控制器訪問雙口RAM 時(shí),PC 機(jī)不能訪問雙口RAM.內(nèi)存映象法數(shù)據(jù)交換的橋梁是雙口RAM,“握手”是由雙口RAM 內(nèi)置的接口管理邏輯自動(dòng)完成.選用IDT7132SA25P 雙口RAM 設(shè)計(jì)的適配器電路原理框圖見圖2.圖中CAN 適配器占用的PC 機(jī)地址空間為DA00:0000H~DA00:07FF,不可配置為其他用途.
圖2 CAN 適配器電路原理圖
本文采用組態(tài)軟件作為上位機(jī)數(shù)據(jù)管理和分析軟件的開發(fā)平臺.與其他組態(tài)軟件[8]一樣,Intouch軟件對構(gòu)建虛擬測控人機(jī)界面極其快速簡便,各種邏輯或數(shù)值運(yùn)算功能依賴于4類腳本(程序模塊):按時(shí)間間隔循環(huán)執(zhí)行、按是否滿足預(yù)定條件而執(zhí)行、由數(shù)據(jù)變量的更改觸發(fā)執(zhí)行、或只對特定窗口起作用的腳本,程序的協(xié)調(diào)運(yùn)行可以理解為基于事件驅(qū)動(dòng)調(diào)度機(jī)制.Intouch與底層硬件的通信主要借助于DDE方式實(shí)現(xiàn).
對于圖1所示的系統(tǒng),對CAN 適配器進(jìn)行報(bào)文接收濾波和DMA 通信編程便可將CAN 現(xiàn)場節(jié)點(diǎn)監(jiān)測的數(shù)據(jù)根據(jù)需要傳送至適配器RAM 空間.所以,此處DDE通信程序的任務(wù)是:通過編程,確保Intouch與CAN 適配器數(shù)據(jù)的雙向交流.
為了實(shí)現(xiàn)對CAN 適配器數(shù)據(jù)的訪問,DDE程序采用C 語言開發(fā),借助C 中的標(biāo)準(zhǔn)庫函數(shù)MK_FP(segment,offset)實(shí)現(xiàn)雙口RAM 中segment:offset地址單元數(shù)據(jù)訪問.此外在編程中還必須正確設(shè)置DDE 客戶端的LinkTopic,以便DDE作為服務(wù)器程序知道所服務(wù)的對象即客戶為Intouch軟件,從而建立雙向通信.
在Intouch編程環(huán)境下,由于其本身提供了Windows環(huán)境下的DDE 機(jī)制,DDE 通信的實(shí)現(xiàn)只在于正確設(shè)置以下項(xiàng)目:DDE 訪問名、DDE 應(yīng)用程序/服務(wù)程序名稱、DDE 主題名,以及進(jìn)行DDE標(biāo)記名(變量)定義.
為實(shí)現(xiàn)柴油機(jī)動(dòng)力參數(shù)的全面、實(shí)時(shí)監(jiān)測和性能考核,在圖1 基礎(chǔ)上另配置獨(dú)立于CAN 總線網(wǎng)絡(luò)的3臺湘儀動(dòng)力測試儀器廠的JC 型轉(zhuǎn)矩測量儀、3塊基于ISA 總線的PI900轉(zhuǎn)矩測量卡進(jìn)行轉(zhuǎn)矩測量,其最小采樣間隔為10ms,滿足動(dòng)態(tài)轉(zhuǎn)矩實(shí)時(shí)測量要求.在軟件設(shè)計(jì)中,按板卡I/O通信要求在上位監(jiān)控微機(jī)中將其地址配置為300~31,340~35 和380~39FH,中斷號配置為IRQ10,IRQ11 和IRQ12,在VB環(huán)境下采用PI900的DLL函數(shù)開發(fā)專用DDE 服務(wù)器程序與Intouch進(jìn)行通信.綜合CAN 總線網(wǎng)絡(luò)和轉(zhuǎn)矩測量的全試驗(yàn)測試系統(tǒng)軟件模塊化構(gòu)成及交互關(guān)系如圖3所示,包括上位監(jiān)測數(shù)據(jù)分析及人機(jī)界面程序、DDE通信程序(含CAN 總線通信參數(shù)和轉(zhuǎn)矩參數(shù))、CAN 適配器驅(qū)動(dòng)程序,以及現(xiàn)場CAN節(jié)點(diǎn)數(shù)據(jù)采集處理程序,圖中的上位監(jiān)測分析軟件借助Intouch的豐富控件、實(shí)時(shí)及歷史曲線向?qū)Чぞ邔?shí)現(xiàn),由此提供了完整的數(shù)據(jù)管理、分析功能和友好的圖形化交互界面.
圖3 試驗(yàn)測試系統(tǒng)軟件模塊化構(gòu)成及交互
圖4 柴油機(jī)轉(zhuǎn)速、功率試驗(yàn)實(shí)時(shí)曲線
集成后的全系統(tǒng)主要監(jiān)測和記錄柴油機(jī)的轉(zhuǎn)速、油門位置、輸出轉(zhuǎn)矩、油水溫度和壓力,以及齒輪箱滑油壓力等參數(shù),同時(shí)可通過微機(jī)自控方式實(shí)現(xiàn)柴油機(jī)啟停、離合器離合、測功器負(fù)載的控制.采集記錄的參數(shù)用以對柴油機(jī)雙機(jī)或單機(jī)運(yùn)行過程進(jìn)行試驗(yàn)測試.以上參數(shù)全部以虛擬儀表形式實(shí)時(shí)顯示在基于Intouch編程實(shí)現(xiàn)的虛擬監(jiān)測平臺上,并自動(dòng)繪制成以時(shí)間為橫坐標(biāo)的實(shí)時(shí)變化曲線,同時(shí)亦可隨時(shí)調(diào)用歷史試驗(yàn)數(shù)據(jù)庫繪制歷史曲線,便于分析柴油機(jī)工作特性.圖4即為試驗(yàn)過程中軟件自動(dòng)記錄的雙機(jī)共同工作、在設(shè)置多檔轉(zhuǎn)速及負(fù)荷調(diào)節(jié)過程中,柴油機(jī)轉(zhuǎn)速和功率隨時(shí)間變化的實(shí)時(shí)曲線.
本文研究工作和實(shí)機(jī)試驗(yàn)表明,基于CAN總線和組態(tài)軟件進(jìn)行柴油機(jī)試驗(yàn)測試系統(tǒng)的開發(fā)具有電路設(shè)計(jì)及調(diào)試維護(hù)簡便、編程快捷、界面友好的特點(diǎn),適于相關(guān)領(lǐng)域工業(yè)測控系統(tǒng)開發(fā),總體而言具有如下優(yōu)點(diǎn):
1)通過采用CAN 總線、取消傳統(tǒng)繁雜線路,使系統(tǒng)硬件設(shè)計(jì)得以極大簡化,安裝調(diào)試方便,可維性顯著改善.
2)按CAN 協(xié)議進(jìn)行程序設(shè)計(jì),可實(shí)現(xiàn)基于競爭的多主工作方式、通過編程報(bào)文數(shù)據(jù)的優(yōu)先級實(shí)現(xiàn)高實(shí)時(shí)性、實(shí)現(xiàn)非破壞性總線仲裁和報(bào)文接收濾波編程、以及暫時(shí)錯(cuò)誤和永久性故障節(jié)點(diǎn)自動(dòng)判別自動(dòng)脫離等多項(xiàng)優(yōu)良特性.
3)易于實(shí)現(xiàn)標(biāo)準(zhǔn)化、模塊化設(shè)計(jì)思想,具有更好的擴(kuò)充性、移植性.
4)軟件編程工作量大大減少,人機(jī)界面更友好,易實(shí)現(xiàn)基于微機(jī)的虛擬監(jiān)測平臺.
[1]陳鐵軍.發(fā)展現(xiàn)場總線技術(shù),提高我國過程工業(yè)自動(dòng)化水平[J].儀器儀表與傳感器,2000(9):89-92.
[2]張淑紅,陶自春.基于組態(tài)王的傳感器實(shí)驗(yàn)臺監(jiān)控系統(tǒng)[J].自動(dòng)化儀表,2008(5):102-106.
[3]吳杰長,吳家明.基于P80C592的CAN 監(jiān)控網(wǎng)絡(luò)設(shè)計(jì)與應(yīng)用[J].測控技術(shù),2004(6):55-58.
[4]Anthony P L,Crawley H B,F(xiàn)ischer P A,et al.CANbus and microcontroller use in the BaBar dector at SLAC[J].IEEE Transactions on Nuclear Science,2000,47(2):166-169.
[5]王福友,郝燕玲,袁贛南,等.艦船導(dǎo)航系統(tǒng)CAN 總線網(wǎng)絡(luò)設(shè)計(jì)的關(guān)鍵技術(shù)[J].中國造船,2008,49(2):81-86.
[6]慎石磊.基于CAN/LIN 總線的即插即用式監(jiān)控系統(tǒng)[J].機(jī)電工程,2009,26(10):15-18.
[7]千承輝,蘇 建,潘洪達(dá).基于CAN 總線的汽車檢測技術(shù)研究[J].武漢理工大學(xué)學(xué)報(bào):交通科學(xué)與工程版,2006,30(3):489-491.
[8]李瑞先.組態(tài)軟件在監(jiān)控系統(tǒng)中的應(yīng)用[J].電氣傳動(dòng)自動(dòng)化,2006(5):112-116.