目 錄
1 產(chǎn)品概述
2 系統(tǒng)整體架構(gòu)
3 硬件配置與通訊接口
4 J1939協(xié)議與CAN數(shù)據(jù)解析
5 故障診斷邏輯設(shè)計(jì)
6 Modbus RTU數(shù)據(jù)上報(bào)協(xié)議
7 診斷閾值與報(bào)警體系
8 核心技術(shù)優(yōu)勢
9 典型應(yīng)用場景
10 軟件功能規(guī)劃
11 產(chǎn)品資質(zhì)與認(rèn)證
12 技術(shù)服務(wù)與聯(lián)系方式
13 版權(quán)聲明
1 產(chǎn)品概述
1.1 產(chǎn)品簡介
本產(chǎn)品是山東華全動力股份有限公司自主研發(fā)的發(fā)動機(jī)CAN總線故障診斷系統(tǒng),專為柴油發(fā)電機(jī)組、燃?xì)獍l(fā)電機(jī)組配套設(shè)計(jì)。系統(tǒng)通過STM32F103微控制器實(shí)時(shí)解析發(fā)動機(jī)ECU發(fā)出的SAE J1939 CAN總線數(shù)據(jù),將發(fā)動機(jī)運(yùn)行參數(shù)與故障狀態(tài)通過RS485接口以Modbus RTU協(xié)議上報(bào)至上位監(jiān)控系統(tǒng),實(shí)現(xiàn)發(fā)電機(jī)組運(yùn)行狀態(tài)的實(shí)時(shí)在線監(jiān)測與故障預(yù)警診斷。
1.2 研發(fā)背景
傳統(tǒng)發(fā)電機(jī)組監(jiān)控系統(tǒng)普遍依賴人工巡檢或簡單的模擬信號采集,存在數(shù)據(jù)維度少、故障發(fā)現(xiàn)滯后、診斷精度低等痛點(diǎn)。隨著國六/歐六發(fā)動機(jī)全面普及,ECU已全面支持J1939 CAN總線通訊,實(shí)時(shí)獲取發(fā)動機(jī)運(yùn)行參數(shù)與故障碼已成為可能。本項(xiàng)目依托公司成熟的發(fā)電機(jī)組技術(shù)平臺,完成整套CAN總線診斷系統(tǒng)軟硬件自主開發(fā),實(shí)現(xiàn)從被動故障處理向主動預(yù)防性維護(hù)的升級。
1.3 整體技術(shù)特點(diǎn)
- 采用STM32F103 CAN轉(zhuǎn)RS485雙接口設(shè)計(jì),一端連接發(fā)動機(jī)ECU CAN總線,一端連接上位監(jiān)控系統(tǒng),協(xié)議轉(zhuǎn)換透明可靠;
- 支持SAE J1939標(biāo)準(zhǔn)協(xié)議棧,完整解析EEC1/EEC2/ET1/CCVS/DM1/AMB/LFE1/IC1等8類核心PGN數(shù)據(jù)幀;
- 內(nèi)置Modbus RTU從站,標(biāo)準(zhǔn)寄存器地址映射,上位機(jī)可直接輪詢讀取發(fā)動機(jī)實(shí)時(shí)參數(shù);
- 支持DM1實(shí)時(shí)故障碼解析,將SAE標(biāo)準(zhǔn)SPN/FMI故障碼解碼為可讀中文診斷結(jié)果;
- CAN連接狀態(tài)實(shí)時(shí)監(jiān)測,超時(shí)自動標(biāo)記通訊中斷,避免數(shù)據(jù)假性有效;
- 采用雙看門狗保護(hù),系統(tǒng)運(yùn)行穩(wěn)定可靠,滿足工業(yè)現(xiàn)場7×24小時(shí)連續(xù)運(yùn)行要求;
- 支持J1939原廠診斷報(bào)文透明轉(zhuǎn)發(fā),便于主機(jī)廠與發(fā)動機(jī)廠家聯(lián)合分析問題。
2 系統(tǒng)整體架構(gòu)
本系統(tǒng)采用分布式雙接口設(shè)計(jì),CAN側(cè)接收發(fā)動機(jī)ECU數(shù)據(jù),經(jīng)本地解析處理后,通過RS485側(cè)以Modbus RTU協(xié)議向上位系統(tǒng)上報(bào),兩側(cè)接口獨(dú)立工作,互不干擾。
系統(tǒng)拓?fù)洌?/strong>
發(fā)動機(jī)ECU(J1939 CAN)→ STM32 CAN轉(zhuǎn)RS485模塊(本地解析+故障診斷)→ 上位監(jiān)控系統(tǒng)/PLC(Modbus RTU輪詢)
下位機(jī)(STM32 CAN轉(zhuǎn)RS485模塊)
- CAN總線接收(250kbps,J1939擴(kuò)展幀)
- J1939協(xié)議解析(PGN識別+數(shù)據(jù)解碼)
- DM1故障碼實(shí)時(shí)解析
- Modbus RTU從站響應(yīng)
- CAN連接狀態(tài)監(jiān)控
- 看門狗保護(hù)
上位機(jī)(監(jiān)控系統(tǒng))
- Modbus RTU主站輪詢
- 發(fā)動機(jī)參數(shù)實(shí)時(shí)顯示
- 故障告警管理
- 歷史數(shù)據(jù)存儲與分析
- 診斷報(bào)告生成
- 遠(yuǎn)程推送告警通知
3 硬件配置與通訊接口
3.1 核心硬件清單
| 序號 | 器件名稱 | 規(guī)格型號 | 說明 |
|---|---|---|---|
| 1 | 主控MCU | STM32F103RBT6 | 72MHz ARM Cortex-M3,20KB SRAM,128KB Flash |
| 2 | CAN收發(fā)器 | TJA1050/ISO1050 | 最高1Mbps,支持120Ω終端電阻撥碼選擇 |
| 3 | RS485收發(fā)器 | SP3485/MAX485 | 9600bps,支持半雙工自動收發(fā)切換 |
| 4 | 電源 | DC 9~36V寬壓輸入 | 帶防反接保護(hù),TVS浪涌抑制 |
| 5 | 通訊接口 | CAN_H/CAN_L,RS485 A/B | 鳳凰端子3.81mm間距 |
| 6 | 指示燈 | 電源/運(yùn)行/CAN通訊/故障 | 4個(gè)LED狀態(tài)指示 |
| 7 | 看門狗 | 內(nèi)置獨(dú)立看門狗 | 超時(shí)自動復(fù)位 |
3.2 通訊接口說明
- CAN接口:配置為250kbps(J1939標(biāo)準(zhǔn)速率),使用擴(kuò)展幀(29位ID),終端電阻撥碼可調(diào),連接發(fā)動機(jī)ECU或整車CAN網(wǎng)絡(luò);
- RS485接口:采用Modbus RTU協(xié)議,從站地址撥碼可設(shè)(1~247),9600bps,8位數(shù)據(jù),1位停止位,無校驗(yàn),連接上位監(jiān)控系統(tǒng)或PLC;
- 調(diào)試接口:USART1作為調(diào)試串口,波特率921600,用于固件燒錄與日志輸出。
4 J1939協(xié)議與CAN數(shù)據(jù)解析
4.1 CAN總線參數(shù)
| 參數(shù) | 配置值 | 說明 |
|---|---|---|
| 通訊速率 | 250 kbit/s | J1939標(biāo)準(zhǔn)速率 |
| 幀類型 | 擴(kuò)展幀(29位ID) | J1939全部使用擴(kuò)展幀 |
| 終端電阻 | 120Ω(撥碼選擇) | 總線兩端需加終端電阻 |
| 采樣點(diǎn) | 87.5% | 滿足J1939規(guī)范要求 |
| 波特率 | 36MHz時(shí)鐘 / (9+1+1) / 16 = 250k | APB1=36MHz |
4.2 支持的J1939 PGN數(shù)據(jù)幀
| PGN | 名稱 | CAN ID(HEX) | 主要參數(shù) | 周期 |
|---|---|---|---|---|
| 0xF003 | EEC2 | 0C F0 03 00 | 發(fā)動機(jī)轉(zhuǎn)速/油門位置/負(fù)載百分比 | 50ms |
| 0xF004 | EEC1 | 0C F0 04 00 | 需求扭矩/實(shí)際扭矩/發(fā)動機(jī)轉(zhuǎn)速 | 50ms |
| 0xFEEE | ET1 | 18 FE EE 00 | 冷卻液溫度/燃油溫度/機(jī)油溫度 | 1000ms |
| 0xFEF1 | CCVS | 18 FE F1 00 | 車速/巡航狀態(tài)/制動/離合狀態(tài) | 100ms |
| 0xFECA | DM1 | 18 FE CA 00 | 實(shí)時(shí)故障碼(SPN+ FMI) | 1000ms |
| 0xFEF5 | AMB | 18 FE F5 00 | 大氣壓力/環(huán)境溫度/進(jìn)氣溫度 | 1000ms |
| 0xFEF2 | LFE1 | 18 FE F2 00 | 燃油消耗率/瞬時(shí)油耗/平均油耗 | 1000ms |
| 0xFEF6 | IC1 | 18 FE F6 00 | 進(jìn)氣壓力/進(jìn)氣溫度/渦輪增壓器壓力 | 500ms |
| 0xFEDF | EEC3 | 18 FE DF 00 | 發(fā)動機(jī)冷卻劑液位/需求扭矩來源 | 1000ms |
4.3 關(guān)鍵SPN參數(shù)解析規(guī)則
注意:以下解析規(guī)則符合SAE J1939-71標(biāo)準(zhǔn),實(shí)際以發(fā)動機(jī)廠家數(shù)據(jù)手冊為準(zhǔn)。
| SPN | 名稱 | PGN | 字節(jié)位置 | 分辨率 | 偏移量 | 單位 |
|---|---|---|---|---|---|---|
| 190 | 發(fā)動機(jī)轉(zhuǎn)速 | EEC2 (0xF003) | Byte 0-1 | 0.125 rpm/bit | 0 | rpm |
| 110 | 冷卻液溫度 | ET1 (0xFEEE) | Byte 0 | 1℃/bit | -40 | ℃ |
| 84 | 車速 | CCVS (0xFEF1) | Byte 1-2 | 1/256 km/h | 0 | km/h |
| 92 | 發(fā)動機(jī)負(fù)載百分比 | EEC2 (0xF003) | Byte 3 | 0.4%/bit | 0 | % |
| 183 | 燃油消耗率 | LFE1 (0xFEF2) | Byte 0-1 | 0.05 L/h | 0 | L/h |
| 174 | 燃油溫度 | ET1 (0xFEEE) | Byte 1 | 1℃/bit | -40 | ℃ |
| 175 | 機(jī)油溫度 | ET1 (0xFEEE) | Byte 2 | 1℃/bit | 0 | ℃ |
| 102 | 進(jìn)氣歧管壓力 | IC1 (0xFEF6) | Byte 0 | 2 kPa/bit | 0 | kPa |
| 105 | 進(jìn)氣溫度 | IC1 (0xFEF6) | Byte 1 | 1℃/bit | -40 | ℃ |
| 171 | 環(huán)境溫度 | AMB (0xFEF5) | Byte 1-2 | 0.5℃/bit | 0 | ℃ |
| 108 | 大氣壓力 | AMB (0xFEF5) | Byte 0 | 0.5 kPa/bit | 0 | kPa |
5 故障診斷邏輯設(shè)計(jì)
5.1 DM1故障碼解析
DM1(Active Diagnostic Trouble Codes,當(dāng)前激活故障碼)是J1939標(biāo)準(zhǔn)中最核心的故障診斷報(bào)文。當(dāng)發(fā)動機(jī)ECU檢測到故障時(shí),通過DM1幀(PGN 0xFECA)實(shí)時(shí)發(fā)送故障信息,每幀最多承載7個(gè)故障碼。
DM1幀數(shù)據(jù)結(jié)構(gòu):Byte 0低4位表示故障數(shù)量(0~15),每個(gè)故障占4字節(jié):
- Byte 1-2(SPN):故障參數(shù)編號,表示故障關(guān)聯(lián)的參數(shù)(如SPN 110=冷卻液溫度過高);
- Byte 3低5位(FMI):故障模式標(biāo)識符,表示故障類型(如FMI 3=電壓高于正常值);
- Byte 4:故障發(fā)生次數(shù)(Occurrence Counter)。
5.2 故障碼合成規(guī)則
系統(tǒng)將SPN(16位)與FMI(5位)合成為一個(gè)16位故障碼,格式如下:
combined_fault_code = (SPN << 5) | (FMI & 0x1F)
例如:SPN=100,F(xiàn)MI=3 → combined_fault_code = (100 << 5) | 3 = 0x0C83
5.3 典型故障碼對照表
| 故障碼(16進(jìn)制) | SPN | FMI | 故障名稱 | 可能原因 | 建議措施 |
|---|---|---|---|---|---|
| 0x0C83 | 100 | 3 | 機(jī)油壓力傳感器電壓高于正常值 | 傳感器短路/線束破損 | 檢查傳感器線束 |
| 0x12C3 | 300 | 2 | 冷卻液溫度傳感器數(shù)據(jù)不穩(wěn)定 | 傳感器接觸不良 | 檢查傳感器連接 |
| 0x2323 | 110 | 3 | 冷卻液溫度傳感器電壓高 | 開路/短路 | 檢查溫度傳感器 |
| 0x2324 | 110 | 4 | 冷卻液溫度傳感器電壓低 | 短路接地 | 檢查溫度傳感器 |
| 0xBE03 | 190 | 3 | 發(fā)動機(jī)轉(zhuǎn)速信號異常 | 曲軸/凸輪軸傳感器故障 | 檢查發(fā)動機(jī)轉(zhuǎn)速傳感器 |
6 Modbus RTU數(shù)據(jù)上報(bào)協(xié)議
6.1 寄存器地址映射
系統(tǒng)作為Modbus RTU從站,支持功能碼0x04(讀輸入寄存器),寄存器地址映射如下:
| 寄存器地址 | 參數(shù)名稱 | 數(shù)據(jù)類型 | 分辨率 | 單位 | 說明 |
|---|---|---|---|---|---|
| 0x0000 | 發(fā)動機(jī)轉(zhuǎn)速 | uint16 | ×0.1 | rpm | 實(shí)際值=寄存器值÷10 |
| 0x0001 | 冷卻液溫度 | uint16 | ×1 | ℃ | 直接讀取 |
| 0x0002 | 車速 | uint16 | ×0.1 | km/h | 實(shí)際值=寄存器值÷10 |
| 0x0003 | 發(fā)動機(jī)負(fù)載百分比 | uint16 | ×0.1 | % | 實(shí)際值=寄存器值÷10 |
| 0x0004 | 燃油消耗率 | uint16 | ×0.1 | L/h | 實(shí)際值=寄存器值÷10 |
| 0x0005 | 環(huán)境溫度 | uint16 | ×0.1 | ℃ | 實(shí)際值=寄存器值÷10 |
| 0x0006 | 進(jìn)氣溫度 | uint16 | ×1 | ℃ | 直接讀取 |
| 0x0007 | 機(jī)油溫度 | uint16 | ×0.1 | ℃ | 實(shí)際值=寄存器值÷10 |
| 0x0008 | 當(dāng)前故障碼 | uint16 | — | — | SPN<<5 | FMI,無故障=0 |
| 0x0009 | CAN幀計(jì)數(shù)器 | uint16 | — | 幀 | CAN幀接收總數(shù)(低16位) |
| 0x000A | Modbus請求計(jì)數(shù)器 | uint16 | — | 次 | Modbus查詢總次數(shù) |
6.2 典型Modbus輪詢示例
讀取全部11個(gè)寄存器(從站地址=0x01):
請求幀:01 04 00 00 00 0B B1 CD
響應(yīng)幀:01 04 16 07 D0 00 41 01 2C 00 C8 00 32 00 96 00 19 03 E8 00 00 00 0A 00 05 xx xx
寄存器0x0000=0x07D0=200.0 rpm,0x0001=0x0041=65℃,0x0002=0x012C=30.0 km/h……
6.3 CAN狀態(tài)寄存器(地址0x0008)
寄存器0x0008用于查詢CAN通訊狀態(tài),特殊處理邏輯如下:
- CAN_flag = 0x01:CAN通訊正常(3秒內(nèi)有CAN幀接收);
- CAN_flag = 0x00:CAN通訊中斷(超過3秒無CAN幀接收)。
7 診斷閾值與報(bào)警體系
7.1 報(bào)警分級標(biāo)準(zhǔn)
| 級別 | 顏色 | 觸發(fā)條件 | 系統(tǒng)響應(yīng) |
|---|---|---|---|
| 信息 | ● 綠色 | 參數(shù)正常范圍內(nèi) | 正常記錄,不告警 |
| 預(yù)警 | ● 黃色 | 參數(shù)接近閾值(>80%限值) | 彈窗提示,持續(xù)監(jiān)測 |
| 警告 | ● 橙色 | 參數(shù)超出正常范圍 | 聲光告警,建議停機(jī)檢查 |
| 嚴(yán)重 | ● 紅色 | 參數(shù)超限嚴(yán)重/收到ECU故障碼 | 緊急告警,觸發(fā)保護(hù)停機(jī) |
7.2 關(guān)鍵參數(shù)診斷閾值
| 參數(shù) | 正常范圍 | 預(yù)警閾值 | 告警閾值 | 嚴(yán)重閾值 |
|---|---|---|---|---|
| 發(fā)動機(jī)轉(zhuǎn)速 | 800~3000 rpm | <700 或 >3200 rpm | <600 或 >3400 rpm | <500 或 >3600 rpm |
| 冷卻液溫度 | 75~105℃ | >108℃ | >115℃ | >120℃(高溫停機(jī)) |
| 機(jī)油溫度 | 80~130℃ | >135℃ | >140℃ | >150℃ |
| 機(jī)油壓力 | 200~500 kPa | <180 kPa | <150 kPa | <100 kPa(低壓停機(jī)) |
| 燃油溫度 | 0~80℃ | >85℃ | >90℃ | >95℃ |
| 進(jìn)氣溫度 | -20~65℃ | >70℃ | >75℃ | >80℃ |
| CAN通訊狀態(tài) | 通訊正常 | — | CAN_flag=0 超時(shí) | 持續(xù)中斷>10秒 |
8 核心技術(shù)優(yōu)勢
- 全自主研發(fā):硬件架構(gòu)、J1939協(xié)議棧、故障診斷算法均為華全自主設(shè)計(jì),支持客戶個(gè)性化定制開發(fā);
- 協(xié)議完整性:完整支持SAE J1939標(biāo)準(zhǔn),兼容國內(nèi)外主流發(fā)動機(jī)品牌(康明斯、濰柴、玉柴、上柴、珀金斯、顏巴赫等)ECU通訊協(xié)議;
- 實(shí)時(shí)性強(qiáng):J1939關(guān)鍵幀(EEC2/CCVS)50ms級別更新,滿足發(fā)動機(jī)實(shí)時(shí)監(jiān)控需求;
- 診斷精準(zhǔn):基于DM1幀實(shí)時(shí)故障碼解析,支持SPN/FMI雙維度故障定位,結(jié)合閾值報(bào)警實(shí)現(xiàn)預(yù)防性維護(hù);
- 無縫集成:Modbus RTU標(biāo)準(zhǔn)化接口,可直接對接PLC、SCADA、智慧電站云平臺,無需額外驅(qū)動開發(fā);
- 穩(wěn)定可靠:獨(dú)立看門狗+CAN超時(shí)檢測,雙重保障系統(tǒng)在工業(yè)現(xiàn)場的長期穩(wěn)定運(yùn)行。
9 典型應(yīng)用場景
- 柴油發(fā)電機(jī)組/燃?xì)獍l(fā)電機(jī)組遠(yuǎn)程監(jiān)控系統(tǒng);
- 智慧電站云平臺數(shù)據(jù)采集網(wǎng)關(guān);
- 工廠備用電源集中監(jiān)控管理;
- 通信基站/數(shù)據(jù)中心應(yīng)急電源監(jiān)控;
- 發(fā)動機(jī)廠家/售后服務(wù)故障診斷工具;
- 發(fā)電機(jī)組出廠測試與老化試驗(yàn)臺數(shù)據(jù)采集。
10 軟件功能規(guī)劃
Phase 1 — 實(shí)時(shí)數(shù)據(jù)看板(2024 Q3)
- 發(fā)動機(jī)轉(zhuǎn)速/水溫/油壓/油耗等關(guān)鍵參數(shù)實(shí)時(shí)可視化;
- CAN連接狀態(tài)監(jiān)控與斷線告警;
- 歷史曲線記錄(支持導(dǎo)出Excel)。
Phase 2 — 故障碼解析系統(tǒng)(2024 Q3)
- DM1故障幀SAE J1939 SPN/FMI解碼成中文診斷結(jié)果;
- 故障歷史記錄存儲與查詢;
- 故障次數(shù)統(tǒng)計(jì)與趨勢分析。
Phase 3 — 閾值報(bào)警引擎(2024 Q4)
- 可配置參數(shù)閾值規(guī)則管理;
- 分級聲光報(bào)警與彈窗通知;
- 報(bào)警事件短信/郵件/飛書推送。
Phase 4 — 診斷報(bào)告生成(2025 Q1)
- 基于歷史數(shù)據(jù)自動生成診斷報(bào)告(Word/PDF格式);
- 設(shè)備健康度評分模型;
- 維保建議自動生成。
Phase 5 — AI輔助診斷(2025 Q2)
- 接入Qwen大模型分析故障根因;
- 自然語言查詢故障知識庫;
- 智能維保方案推薦。
11 產(chǎn)品資質(zhì)與認(rèn)證
- 電磁兼容性能滿足 GB/T 17626 系列國家標(biāo)準(zhǔn);
- 電源輸入端滿足 GB/T 17626.11 浪涌抗擾度要求;
- 支持顏巴赫(Jenbacher)發(fā)動機(jī)J1939原廠通訊協(xié)議;
- 支持康明斯( Cummins)、濰柴、上柴、玉柴、卡特彼勒等發(fā)動機(jī)ECU協(xié)議適配;
- 符合工業(yè)級寬溫工作要求(-25℃~+70℃)。
