01
故障現(xiàn)象
一臺Manitou工程機械,客戶反饋DEF(柴油機尾氣處理液)油箱即使加注到無法再加的狀態(tài),設(shè)備仍顯示DEF 液位為空,系統(tǒng)中還存有故障代碼。由于這個DEF液位過低提示,整臺機器的功率被自動降低,嚴重影響了正常作業(yè)。
面對這種情況,傳統(tǒng)維修思路通常是直接更換液位傳感器。但這個部件的價格高達上萬元,如果診斷錯誤就會造成巨大損失。更關(guān)鍵的是,如何確保更換昂貴的部件真的能解決問題?
為此,我們將使用虹科Pico汽車示波器測量相關(guān)波形,排查故障的真正原因。
02
故障診斷
診斷思路確定
參考DEF液位傳感器工作原理手冊(如需源文件,可添加助教獲?。?/u>,DEF液位傳感器的液位數(shù)據(jù)通過CAN總線傳輸,遵循J1939標準,沒有終端電阻,標準傳輸速率為250 kbit/s。
PicoScope 7 中自帶的J1939譯碼功能,可以幫助我們翻譯和分析CAN總線上的數(shù)據(jù),并借助PGN(參數(shù)組編號)和ID進行過濾。
根據(jù)技術(shù)文檔,液位傳感器使用的ID3是0xA3。ID3(source address)即指CAN J1939的ID源地址。有了這個關(guān)鍵信息,我們就可以使用譯碼功能來捕獲和分析相關(guān)數(shù)據(jù)。
注:文檔中的傳感器和Manitou上搭載的并不是同款,但J1939標準的DEF液位相關(guān)信息具有通用性。
總線譯碼與過濾
首先使用虹科Pico汽車示波器,采集到DEF液位傳感器所在的CAN總線的信號,并利用串行譯碼功能進行J1939協(xié)議譯碼。譯碼結(jié)果如圖1所示:

圖1 J1939協(xié)議譯碼結(jié)果
如圖2,接下來進行過濾。通過添加ID3為0xA3的過濾器,我們就可以去除我們不感興趣的數(shù)據(jù),方法如下:
1.點擊譯碼結(jié)果上方的【添加過濾】按鈕,選擇您想要過濾的參數(shù)。
2.選擇【ID3】過濾。
3.操作符選擇默認的【包含】。
4.參數(shù)輸入【A3】,即你希望軟件篩選的內(nèi)容,點擊【添加】。

圖2 添加ID3為0xA3的過濾器
如圖3,現(xiàn)在我們就排除了所有無關(guān)的數(shù)據(jù),只關(guān)注液位傳感器發(fā)送的信息即可。

圖3 過濾后的數(shù)據(jù)
通過過濾,我們很快就發(fā)現(xiàn),數(shù)據(jù)中包含多個不同的ID2(PGN),即參數(shù)組編號。如圖4,參考技術(shù)文檔,我們找到了液位相關(guān)的PGN編號。

圖4 技術(shù)文檔中液位傳感器相關(guān)的PGN編號
接下來,我們添加第二個過濾器,按PGN進行過濾。
根據(jù)之前的技術(shù)資料,PGN是CAN消息ID中間的2個字節(jié)。在我們的案例中,FE56就是我們要找的液位PGN。

圖5 過濾出ID2(PGN)為FE56的數(shù)據(jù)
經(jīng)過兩層過濾后,只剩下2條報文了,現(xiàn)在處理起來就會輕松很多。
數(shù)據(jù)轉(zhuǎn)化與分析
根據(jù)技術(shù)文檔的說明,DEF液位百分比信息從第0個字節(jié)開始,占用8位(即1個字節(jié))。在我們采集的數(shù)據(jù)中,第一個數(shù)據(jù)包的這個字節(jié)值是11(十六進制)。將十六進制的11轉(zhuǎn)換成十進制,得到17。
但這并不是最終的液位百分比,需要根據(jù)技術(shù)文檔提供的轉(zhuǎn)換公式進行計算。文檔顯示,轉(zhuǎn)換需應(yīng)用0.4的縮放因子(圖4),沒有偏移量。
即DEF相對于油箱總?cè)萘康陌俜直葹椋?/p>
17 × 0.4 = 6.8%
但這里出現(xiàn)了一個問題:這個6.8%到底表示油箱實際油量占比,還是表示油箱剩余空間占比?考慮到儀表盤顯示液位為空,我們可以推測百分比越低,液位就越低。為了驗證這個推測,我們還需要分析物理液位傳感器的數(shù)據(jù)。
物理液位測量可以通過多種方式實現(xiàn),比如超聲波或浮子式來測量油箱底部到液面的高度。由于我們不確定Manitou使用的是哪種方式,所以我們將根據(jù)技術(shù)文檔中的信息進行計算,以進一步驗證。
如圖6,根據(jù)文檔中的信息,物理液位數(shù)據(jù)的位長度是16位(2個字節(jié)),起始位的位置是16。

圖6 技術(shù)文檔中的相關(guān)資料
圖7展示了總線數(shù)據(jù)中,前兩個字節(jié)的位位置(bit position)分配方式。物理液位數(shù)據(jù)的起始位置是16,這就意味著我們需要使用第3和第4個字節(jié)的數(shù)據(jù),其排布的邏輯和前兩位也是相同的。

圖7 位位置的分配方式
在我們的數(shù)據(jù)中,第3和第4字節(jié)是55 0F。根據(jù)J1939標準,我們需要將字節(jié)順序翻轉(zhuǎn),變成0F 55,然后將其轉(zhuǎn)換為十進制。即0F55 = 3925。再應(yīng)用技術(shù)文檔中的0.1縮放因子(圖6),可以得到:
3925 × 0.1 = 392.5mm
驗證與對比
這個392.5mm(約40厘米)的讀數(shù),是油箱底部到液面的距離,還是液面到油箱頂部的距離呢?已知故障機器的油箱是滿的,無論這個40cm指向哪一種情況,其實都說明了這個傳感器組件存在故障——這個是數(shù)據(jù)無論如何,都是錯的。
但我們是否還能收集更多證據(jù)來證明這一點?有沒有辦法確定這個40cm究竟指向什么?
有的,方法也很簡單,找一臺正常的設(shè)備進行驗證即可。
于是我們找到了一臺,沒有故障且DEF油箱在儀表盤上顯示為滿的機器。捕捉到其CAN總線數(shù)據(jù),并使用同樣的方法進行譯碼、過濾和計算:
第一個字節(jié)的十六進制值是FA。使用相同的轉(zhuǎn)換方法:0xFA = 250(十進制),250 × 0.4 = 100%。很顯然,這表明這個數(shù)值指向的是油箱實際油量占比。當(dāng)然這也驗證了,我們的轉(zhuǎn)換方法是正確的。
對于物理液位數(shù)據(jù),正常機器顯示的是4B 00,翻轉(zhuǎn)后變成004B,轉(zhuǎn)換為十進制是75,再乘以0.1得到7.5mm。顯然,這指向的是液面到油箱頂部的距離。

圖8 正常機器的相關(guān)波形與譯碼結(jié)果
03
故障排除
通過一系列的數(shù)據(jù)分析和對比,我們有充分的證據(jù)證明:故障機器的液位傳感器讀數(shù)確實是錯誤的?;谶@個準確的診斷結(jié)果,我們更換了液位傳感器,故障未再出現(xiàn),故障解決!
04
案例總結(jié)
隨著總線的應(yīng)用越來越廣、愈來愈深,如今很多傳感器的詳細數(shù)據(jù)已無法直接讀取,如:微塵傳感器、液位傳感器等。
而通過總線譯碼,對照傳感器相關(guān)技術(shù)文檔,我們就可以破譯這些隱藏的信息,將電壓信號轉(zhuǎn)化為可以直接讀取的物理量,進一步識別潛在的問題,實現(xiàn)精準維修!
-
傳感器
+關(guān)注
關(guān)注
2576文章
54956瀏覽量
790741 -
CAN總線
+關(guān)注
關(guān)注
145文章
2042瀏覽量
135166 -
DEF
+關(guān)注
關(guān)注
0文章
14瀏覽量
6591 -
虹科電子
+關(guān)注
關(guān)注
0文章
753瀏覽量
15286
發(fā)布評論請先 登錄
基于J1939協(xié)議的組合儀表的設(shè)計與實現(xiàn)
J1939基礎(chǔ)入門知識分享
基于LabVIEW和J1939協(xié)議的CAN總線通訊平臺構(gòu)建
基于J1939協(xié)議的組合儀表的設(shè)計與實現(xiàn)
基于J1939的汽車CAN總線教學(xué)實驗系統(tǒng)
SAE J1939協(xié)議分析指南
基于SAE J1939協(xié)議的車輛網(wǎng)絡(luò)通信
基于LabVIEW和J1939協(xié)議的CAN總線通訊平臺開發(fā)
CAN高層協(xié)議J1939的基礎(chǔ)和應(yīng)用以及開發(fā)介紹
基于恩智浦MPC5744P的SAE J1939協(xié)議棧開發(fā)
CAN總線之J1939地址定義
盟通方案|如何集成J1939協(xié)議
虹科工程機械診斷 | CAN總線J1939協(xié)議譯碼與分析:Manitou DEF 液位傳感器
評論