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