在线观看www成人影院-在线观看www日本免费网站-在线观看www视频-在线观看操-欧美18在线-欧美1级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

ProF腳本指令介紹及解決方案

汽車ECU開發(fā) ? 來源:汽車控制器開發(fā)大講堂 ? 作者:廖振偉 ? 2022-10-08 11:13 ? 次閱讀

INCA軟件

INCA是車輛控制器標定的首選軟件之一,主要包含功能模型標定、測量數(shù)據(jù)分析(MDA)、標定數(shù)據(jù)管理(CDM)、控制器刷新(ProF)功能等。而本文將介紹常用卻又陌生的ProF腳本的擴展用法,通過編寫ProF腳本與外面程序配合可實現(xiàn)各種診斷功能。例如通過ProF腳本讀取/解析控制器的故障碼及故障碼凍結幀信息等。

ProF腳本擴展應用效果展示

1、在ProF刷新界面執(zhí)行讀取控制器故障信息Read - DTC Information,ProF會自動讀取/解析控制器故障碼狀態(tài)及凍結幀信息,最終將讀取的故障碼、凍結幀原始數(shù)據(jù)、故障信息報告記錄成文件保存到ProF文件夾中。

含:故障碼數(shù)據(jù)文件dtc.dat、凍結幀數(shù)據(jù)文件snapshot.dat、故障信息文件snapshot.txt

e5e1b7e8-4306-11ed-96c9-dac502259ad0.png

故障信息文件snapshot.txt

e6067c5e-4306-11ed-96c9-dac502259ad0.png

2、在ProF刷新界面執(zhí)行讀取控制器信息Read - Module Information,ProF會自動讀取在用戶配置文件中定義的DID信息,同樣可以生成報告保存到ProF文件夾中。

e630cde2-4306-11ed-96c9-dac502259ad0.png

控制信息文件did.txt

e66e5b12-4306-11ed-96c9-dac502259ad0.png

3、通過修改用戶配置文件,可將上述功能適配到不同的控制器或項目

故障碼/凍結幀介紹

當控制器軟件檢測到故障發(fā)生時,軟件故障管理模塊會將故障碼以及故障時刻的關鍵的變量信息保存至非易失的存儲區(qū)域。在故障碼消失前,用戶均可使用診斷儀讀取故障信息,用于分析故障產(chǎn)生的根本原因。

一、凍結幀類型分為三類:

1、OBD凍結幀:保存與整車排放的變量參數(shù)(如水溫、車速、發(fā)動機轉速、油門踏板位置等)通常僅有與排放相關控制器帶OBD凍結幀功能

2、全局凍結幀:保存整車/控制器共性的變量參數(shù)(如蓄電池電壓、整車里程、萬年歷時鐘、環(huán)境溫度等)

3、局部凍結幀:保存與觸發(fā)該凍結幀故障碼相關的變量參數(shù)(如當出現(xiàn)離合器打滑故障時,保存的參數(shù)信息可以是離合器輸入端轉速、輸出端轉速、離合器壓力、離合器傳遞扭矩等)

二、凍結幀分配機制

如下圖1所示,每個故障碼產(chǎn)生時均會保存OBD凍結幀與全局凍結幀以及一個該故障碼指定的局部凍結幀;例如:

故障碼1 保存(OBD凍結幀+全局凍結幀+局部凍結幀n)

故障碼2 保存(OBD凍結幀+全局凍結幀+局部凍結幀1)

故障碼3保存(OBD凍結幀+全局凍結幀+局部凍結幀2)

e6ae5e60-4306-11ed-96c9-dac502259ad0.png

三、故障碼/凍結幀的讀取

1、首先通過UDS 19 02 08 指令獲取當前已確認的故障碼信息。控制器反饋的故障碼包含4個字節(jié)形式如下

e6ee038a-4306-11ed-96c9-dac502259ad0.png

2、通過UDS 19 04DTC1 DTC2 DTC300/01/02/FF指令讀取該故障碼的指定類型凍結幀信息。其中DTC1DTC2DTC3表示指定故障碼,

00表示讀取OBD凍結幀信息;

01表示讀取全局凍結幀信息;

02表示讀取對應的局部凍結幀信息(博世/聯(lián)電方式)

FF表示讀取OBD凍結幀信息+全局凍結幀信息+對應的局部凍結幀信息

3、控制器反饋的凍結幀數(shù)據(jù)格式如下(讀取FF類型):

5904DTC1DTC2DTC3FFDTCstatus000X Data... 01 0X Data.... 020X Data... ;OBD凍結幀和全局凍結定義都是一致的,可以按照信號定義做統(tǒng)一解析;而局部凍結幀的解析則相對較麻煩,因為每個故障碼的局部凍結幀編號是不同的;首先需要獲取故障碼的局部故障碼編號后找到對應的局部凍結幀定義來做解析。

PS:當前新一代的控制器,Nvm區(qū)域都相當充足。通常局部凍結幀的數(shù)據(jù)長度可超過200 Bytes,一個局部凍結幀可包含軟件中的幾乎所有關鍵參數(shù),因此也可將所有的故障碼均凍結同一個局部凍結幀,而該局部凍結幀已經(jīng)包含所有故障碼所需的參數(shù)變量。比如(模糊處理)

e706c6ea-4306-11ed-96c9-dac502259ad0.png

ProF腳本指令介紹

ProF的全稱是(Programimg Flasher / Flow?) 不太清楚。只知道ProF腳本中包含一些常用的配置、顯示、流控制、字符串變量、數(shù)值變量、UDS指令、調用外部程序指令、寫入/讀取文件指令(遺憾的是僅支持二進制格式寫入/讀取,這是最蛋疼的地方)然而僅使用ProF腳本是無法實現(xiàn)自動讀取每個故障碼的凍結幀,更不具備解析凍結幀信息功能。

e7340970-4306-11ed-96c9-dac502259ad0.png

解決方案 - ProF腳本+Windows控制臺程序+用戶配置文件

基于ProF腳本指令功能的不足現(xiàn)狀,結合分析當前ProF腳本支持的功能,決定采取額外使用C#編寫一個可被ProF腳本調用的Windows控制臺程序(ProFTools.exe),通過與ProF腳本配合使用實現(xiàn)讀取/解析控制器的故障碼及故障碼凍結幀信息等功能。

ProFTools.exe控制臺程序包含的功能函數(shù)及使用說明:

e74961d0-4306-11ed-96c9-dac502259ad0.png

定義一個用戶配置文件(config.ini),使用.INI格式包含的信息有

1、OBD和全局凍結幀的信號定義

e77965ec-4306-11ed-96c9-dac502259ad0.png

2、所有局部凍結幀的信號定義

e794d21e-4306-11ed-96c9-dac502259ad0.png

e7b81c88-4306-11ed-96c9-dac502259ad0.png

其中formula表示轉換公式:

asc = ASCII碼、bcd = BCD碼、dec =十進制、hex =十六進制、lin =線性轉換

physical_value = data*factor+offset 、emun =枚舉型

bytes表示數(shù)據(jù)長度:factor表示系數(shù):offset:表示偏移量 unit:表示單位

* struct 表示是信號否包含獨立DID索引號(1 =包含 0 =不包含)

舉個例子:

e7e159d6-4306-11ed-96c9-dac502259ad0.png

F4 05 表示凍結幀發(fā)動機水溫信號的DID,00是表示發(fā)動機水溫信號的數(shù)值;

F4 0C 表示凍結幀發(fā)動機轉速信號的DID,00 00表示發(fā)動機轉速信號數(shù)值;

上述狀態(tài)表示每個凍結幀信號前都附帶有獨立的DID編號,struct 值應該填入1 ;

若發(fā)動機轉速與發(fā)動機水溫共用一個DID編號,

e80830a6-4306-11ed-96c9-dac502259ad0.png

F4 05 表示凍結幀發(fā)動機水溫信號的DID,00是表示發(fā)動機水溫信號的數(shù)值,然后直接跟著發(fā)動機轉速信號00 00 。發(fā)動機轉速信號沒有獨立的DID編號,換言之 F4 05 其實是個結構體數(shù)據(jù)類型后面帶了多個信號數(shù)值。上述狀態(tài)下發(fā)動機轉速信號 struct 值應該填入0。

總之用戶配置文件的信息要確保正確,才能使故障碼及凍結幀能夠正確地解析。

3、故障碼信息定義(故障碼描述、故障碼與局部凍結幀編號對應關系)

e820bd06-4306-11ed-96c9-dac502259ad0.png

4、控制器數(shù)據(jù)DID定義,包含DID的解析方式(其中asc =ASCII碼、bcd = BCD碼、dec =十進制、hex =十六進制)

e85e71d2-4306-11ed-96c9-dac502259ad0.png

解決方案 -步驟說明

1、在INCA-ProF界面布局文件中增加"Action"下拉選項,在ProF腳本的主流程Main.prm中增加 "Action“ 對應的Calling及procedure。

e883e962-4306-11ed-96c9-dac502259ad0.png

e89bc69a-4306-11ed-96c9-dac502259ad0.png

e8b5766c-4306-11ed-96c9-dac502259ad0.png

e8d1be26-4306-11ed-96c9-dac502259ad0.png

2、使用ProF腳本讀取控制器故障碼數(shù)量(ConfirmedDTC),并保存至變量VAR_DTC_NUM

e9022e62-4306-11ed-96c9-dac502259ad0.png

3、讀取控制器故障碼(ConfirmedDTC),并保存至文件(ProF僅支持二進制格式)

e927366c-4306-11ed-96c9-dac502259ad0.png

如圖所示包括4個故障碼D404 832F,D406832F,D40383 2F, D50683 2F

e93c182a-4306-11ed-96c9-dac502259ad0.png

故障碼字節(jié)含義

e6ee038a-4306-11ed-96c9-dac502259ad0.png

4、使用ProF腳本調用控制臺程序ProFTools.exe,將步驟2保存“故障碼”文件轉換為“讀故障碼凍結幀”的指令集文件。ProF腳本調用外部程序函數(shù)RUN( xxx)

e965db2e-4306-11ed-96c9-dac502259ad0.png

轉換示例:故障碼D4 04 832F-->讀取故障碼凍結幀指令19 04 D4 04 83 FF

e93c182a-4306-11ed-96c9-dac502259ad0.png

e9a4845a-4306-11ed-96c9-dac502259ad0.png

5、使用ProF腳本循環(huán)讀取指令集文件(循環(huán)次數(shù)由故障碼數(shù)量VAR_DTC_NUM確定),每次讀取6個字節(jié)的數(shù)據(jù)(指令)并發(fā)送至控制器;

GET_STRING_FILE(UDS_CMD_FILE,%r,6,0)

ProF腳本將依次將控制器反饋的每個故障碼的凍結幀數(shù)據(jù)追加保存至凍結幀數(shù)據(jù)文件。

UDS_MSG_RET_GET(0, 0, 0)

SET_STRING_FILE(UDS_DID_FILE,0,0,1,0)

由于采取追加保存模式,因此每次循環(huán)讀取前都會先使用ClearFile 刪除上次保留的凍結幀數(shù)據(jù)文件。以免上次讀取到的數(shù)據(jù)被疊加到本次文件內

e9d47d90-4306-11ed-96c9-dac502259ad0.png

凍結幀數(shù)據(jù)文件的格式如下所示,5904DTC1DTC2DTC3FFDTCstatus000XOBD-Snapshot010X Global-Snapshot020X Local-Snapshot

即一個文件中保存著控制器反饋的每個故障碼的凍結幀原始數(shù)據(jù)。

e9f0897c-4306-11ed-96c9-dac502259ad0.png

6、使用ProF腳本調用Windows控制臺程序ProFTools,解析故障碼及凍結幀數(shù)據(jù)并保存成文本文件。RUN(PORF_TOOL_FILE, ReadDtc2Txt...)

ea172f8c-4306-11ed-96c9-dac502259ad0.png

可打開查看每個過程的數(shù)據(jù)文件dtc.dat, cmd.dat, snapshot.dat, snapshot.txt以及ProFTools程序運行的日志文件Logs

ea43beb2-4306-11ed-96c9-dac502259ad0.png

解決方案 - 技術細節(jié)

1、讀取故障碼存儲文件,將故障碼原始值轉換成標準的故障碼格式(Code categories);通過用戶配置文件定義檢索到故障碼對應的局部凍結幀編號、故障碼中文描述。

ea698750-4306-11ed-96c9-dac502259ad0.png

通過故障狀態(tài)位判斷是否為當前或歷史故障碼(bit0 testFailed)

eaa761a6-4306-11ed-96c9-dac502259ad0.png

故障碼狀態(tài)展示

eb1cc1f8-4306-11ed-96c9-dac502259ad0.png

2、提取凍結幀數(shù)據(jù)文件中單個故障碼凍結幀的有效數(shù)據(jù)(下圖中帶顏色填充的部分)

技術方案:兩個故障碼凍結幀正反饋幀頭之間即是凍結幀有效數(shù)據(jù)

5904DTC1DTC1status{ 有效數(shù)據(jù) }5904DTC2DTC2status

eb473366-4306-11ed-96c9-dac502259ad0.png

3、提取單個凍結幀有效數(shù)據(jù)中,OBD凍結幀、全局凍結幀、局部凍結幀信號數(shù)據(jù),技術方案是完全根據(jù)用戶配置文件中各個凍結幀信號定義索引實現(xiàn)。

OBD凍結幀數(shù)據(jù)的索引 =

凍結幀幀頭(6 bytes) + OBD凍結幀標識(2bytes) +DID數(shù)據(jù)標識( struct* 2bytes)

全局凍結幀數(shù)據(jù)的索引 =

OBD凍結幀數(shù)據(jù)的索引 +全局凍結幀標識(2bytes) +DID數(shù)據(jù)標識(struct* 2bytes)

全局凍結幀數(shù)據(jù)的索引 =

OBD凍結幀數(shù)據(jù)的索引+全局凍結幀數(shù)據(jù)的索引+ 全局凍結幀標識(2bytes) +DID數(shù)據(jù)標識(struct* 2bytes)

用戶配置文件

e77965ec-4306-11ed-96c9-dac502259ad0.png

對應凍結幀數(shù)據(jù)文件

eb9061a8-4306-11ed-96c9-dac502259ad0.png

其他

1、為何基于INCAroF腳本制作了讀取/解析故障碼凍結幀的工具?

市面上暫未發(fā)現(xiàn)有工具可以的直接讀取/解析上述格式的局部凍結幀(貌似該格式是博世/聯(lián)電系統(tǒng)獨有)

或許使用CANoE和VehicleSPY3更容易實現(xiàn)上述功能,標定工程師通常都INCA +ES581/592打天下.. (CANoE和VehicleSPY3貴...)

2、本文結尾處會提供擴展應用所涉及的源代碼,首先說明本人不是專業(yè)碼農,對于語言的使用“只求功能實現(xiàn)即可”,因此代碼僅供參考。讀取INI文件部分代碼源于github,特此說明。

3、本文只是提供了一種基于INCAroF腳本擴展應用思路,或許有更便捷的方法。

審核編輯:湯梓紅

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權轉載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制器
    +關注

    關注

    114

    文章

    17019

    瀏覽量

    183261
  • 腳本
    +關注

    關注

    1

    文章

    397

    瀏覽量

    28374

原文標題:INCA軟件ProF腳本擴展應用 | 附下載

文章出處:【微信號:eng2mot,微信公眾號:汽車ECU開發(fā)】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦
    熱點推薦

    立體智慧倉儲解決方案.#云計算

    解決方案智能設備
    學習電子知識
    發(fā)布于 :2022年10月06日 19:45:47

    #硬聲創(chuàng)作季 #FPGA FPGA-17-02 按鍵抖動現(xiàn)象介紹解決方案分析-1

    fpga解決方案
    水管工
    發(fā)布于 :2022年10月29日 02:13:54

    #硬聲創(chuàng)作季 #FPGA FPGA-17-02 按鍵抖動現(xiàn)象介紹解決方案分析-2

    fpga解決方案
    水管工
    發(fā)布于 :2022年10月29日 02:14:15

    #硬聲創(chuàng)作季 #FPGA FPGA-17-02 按鍵抖動現(xiàn)象介紹解決方案分析-3

    fpga解決方案
    水管工
    發(fā)布于 :2022年10月29日 02:14:41

    pyinstaller解決方案概述

    最近給運維寫一個系統(tǒng)維護的python腳本,但是被告知生產(chǎn)環(huán)境有很多服務器沒有安裝python解釋器,于是在網(wǎng)上搜索多pyinstaller解決方案,本文簡單記錄之。
    發(fā)表于 07-12 06:24

    WCDMA基站的測試解決方案介紹

    兩種技術(WCDMA與CDMA2000)也將會走進我們的生活,更加豐富國人對技術的選擇性。然而,決定網(wǎng)絡是否良好的一個關鍵因素便是其基站設備的射頻性能。因此如何對其測試,便成為當前熱點。對于3G的這三種技術,羅德與施瓦茨公司均可提供全面的測試解決方案。本文則主要介紹WCD
    發(fā)表于 07-24 06:33

    ftpbat的指令啟動腳本介紹

    ftp -n -s:"ftpdown.bat"指令啟動腳本
    發(fā)表于 11-04 08:50

    介紹一種汽車無線接入技術的解決方案

    本文介紹了一種汽車無線接入技術的解決方案
    發(fā)表于 05-12 06:40

    幾種驅動解決方案介紹和比較

    專用芯片的主要參數(shù)是什么?幾種驅動解決方案介紹和比較
    發(fā)表于 06-04 06:05

    介紹兩種MSP430的解決方案

    在MSP430上如何去使用ADPCM庫?介紹兩種MSP430的解決方案
    發(fā)表于 06-08 06:27

    Lua腳本簡單介紹

    Lua簡單介紹Lua[1]是一個小巧的腳本語言。作者是巴西人。該語言的設計目的是為了嵌入應用程序中,從而為應用程序提供靈活的擴展和定制功能。Lua腳本能夠非常easy的被C/C++ 代碼調用,也能夠
    發(fā)表于 08-20 08:06

    解決方案系列課:HarmonyOS Connect解決方案整體介紹(第一期)

    介紹鴻蒙智聯(lián)解決方案的整體內容,包括服務包、賦能套件、服務平臺與開發(fā)工具,助力伙伴快速低成本開發(fā)。
    發(fā)表于 11-30 11:33

    DTU腳本編程_本地采集腳本指令詳解

    前言:通過配置 DTU 的腳本指令實現(xiàn) DTU 定時自動采集,用戶只需知道外接儀表、無需再單獨 增加控制器 傳感器的采集流程,然后通過編寫腳本指令即可讓 DTU 按照用戶的流程自動采集
    的頭像 發(fā)表于 06-01 17:02 ?5160次閱讀
    DTU<b class='flag-5'>腳本</b>編程_本地采集<b class='flag-5'>腳本</b><b class='flag-5'>指令</b>詳解

    shell腳本基礎知識

    shell腳本是一個文件,里面存放的是特定格式的指令,系統(tǒng)可以使用腳本解析器翻譯或解析指令并執(zhí)行(無需編譯),shell腳本的本質是shel
    的頭像 發(fā)表于 04-17 15:00 ?1333次閱讀

    解決方案】安科瑞智慧用電產(chǎn)品解決方案介紹

    解決方案】安科瑞智慧用電產(chǎn)品解決方案介紹
    的頭像 發(fā)表于 02-19 08:42 ?449次閱讀
    【<b class='flag-5'>解決方案</b>】安科瑞智慧用電產(chǎn)品<b class='flag-5'>解決方案</b><b class='flag-5'>介紹</b>
    主站蜘蛛池模板: 欧美a欧美 | 色.com| 手机看片精品国产福利盒子 | 久久久久久久久综合影视网 | 全部免费特黄特色大片农村 | 天天摸天天碰天天碰 | 三级黄色在线观看 | 伊人网络| 高清一级做a爱视频免费 | 乱码一区二区三区完整视频 | 91一区二区三区四区五区 | 在线视频网址免费播放 | 美国bj69 video18| 欧美黄色一级片视频 | 亚洲成人精品 | 爱婷婷视频在线观看 | 综合婷婷丁香 | 性试验k8经典 | 精品国产自在现线看久久 | 日韩xx00 | 1024毛片| 人人干人人爱 | 另类激情网 | 色综合美国色农夫网 | 免费黄色在线观看 | 人人干人人爱 | 国产精品免费看久久久 | 激情六月综合 | 日本三级午夜 | 欧美黄页| 婷婷丁香综合网 | 免费看h视频| 欧美成人3d动漫在线播放网站 | 午夜女同影院 | 免费观看视频在线 | 国产伦精品一区二区三区免费 | 特级毛片免费看 | 国产区一区二区三 | 91大神精品在线观看 | 黄色大片视频在线观看 | 成人看的午夜免费毛片 |