色哟哟视频在线观看-色哟哟视频在线-色哟哟欧美15最新在线-色哟哟免费在线观看-国产l精品国产亚洲区在线观看-国产l精品国产亚洲区久久

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

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

3天內不再提示

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

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

INCA軟件

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

ProF腳本擴展應用效果展示

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

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

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

故障信息文件snapshot.txt

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

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

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

控制信息文件did.txt

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

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

故障碼/凍結幀介紹

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

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

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

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

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

二、凍結幀分配機制

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

ProF腳本指令介紹

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

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

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

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

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

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表示數據長度:factor表示系數:offset:表示偏移量 unit:表示單位

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

舉個例子:

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

F4 05 表示凍結幀發動機水溫信號的DID,00是表示發動機水溫信號的數值;

F4 0C 表示凍結幀發動機轉速信號的DID,00 00表示發動機轉速信號數值;

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

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

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

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

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

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

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

4、控制器數據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腳本讀取控制器故障碼數量(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

故障碼字節含義

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

4、使用ProF腳本調用控制臺程序ProFTools.exe,將步驟2保存“故障碼”文件轉換為“讀故障碼凍結幀”的指令集文件。ProF腳本調用外部程序函數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腳本循環讀取指令集文件(循環次數由故障碼數量VAR_DTC_NUM確定),每次讀取6個字節的數據(指令)并發送至控制器;

GET_STRING_FILE(UDS_CMD_FILE,%r,6,0)

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

UDS_MSG_RET_GET(0, 0, 0)

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

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

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

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

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

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

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

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

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

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

解決方案 - 技術細節

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

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

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

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

故障碼狀態展示

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

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

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

5904DTC1DTC1status{ 有效數據 }5904DTC2DTC2status

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

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

OBD凍結幀數據的索引 =

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

全局凍結幀數據的索引 =

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

全局凍結幀數據的索引 =

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

用戶配置文件

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

對應凍結幀數據文件

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

其他

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

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

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

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

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

審核編輯:湯梓紅

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

    關注

    112

    文章

    16334

    瀏覽量

    177813
  • 腳本
    +關注

    關注

    1

    文章

    389

    瀏覽量

    14858

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

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

收藏 人收藏

    評論

    相關推薦

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

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

    #硬聲創作季 #FPGA FPGA-17-02 按鍵抖動現象介紹解決方案分析-1

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

    #硬聲創作季 #FPGA FPGA-17-02 按鍵抖動現象介紹解決方案分析-2

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

    #硬聲創作季 #FPGA FPGA-17-02 按鍵抖動現象介紹解決方案分析-3

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

    pyinstaller解決方案概述

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

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

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

    ftpbat的指令啟動腳本介紹

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

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

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

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

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

    介紹兩種MSP430的解決方案

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

    Lua腳本簡單介紹

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

    Lua腳本簡單介紹

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

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

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

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

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

    shell腳本基礎知識

    shell腳本是一個文件,里面存放的是特定格式的指令,系統可以使用腳本解析器翻譯或解析指令并執行(無需編譯),shell腳本的本質是shel
    的頭像 發表于 04-17 15:00 ?1085次閱讀
    主站蜘蛛池模板: 黑人巨摘花破女处| 欧美亚洲日韩欧洲不卡| 涩涩视频下载| xxww69| 乱淫67194| 一道本无吗d d在线播放| 国产跪地吃黄金喝圣水合集| 欧美人妇无码精品久久| 中国明星16xxxxhd| 九九夜夜妹子| 印度人XXx| 久久国产精品久久国产精品| 午夜影院c绿象| 国产精品久久久久久久久免费下载 | 国产精品你懂的在线播放| 热久久伊大人香蕉网老师| 2224x最新网站| 老人洗澡自拍xxx互摸| 医生含着我的奶边摸边做| 久久yy99re66| 中文字幕爆乳JULIA女教师| 久久人妻少妇嫩草AV蜜桃99| 亚洲人成在线播放网站岛国| 后入式狂顶免费视频| 一二三四在线观看高清电视剧| 激情欧美日韩一区二区| 一本道手机无码在线看| 亚洲欧美一区二区三区四区| 国产亚洲美女精品久久久2020| 亚洲 成人网| 久久影院毛片一区二区| 99re热视频这里只有精品| 青青伊人国产| 国产高清视频免费在线观看| 性色香蕉AV久久久天天网| 精品亚洲国产成AV人片传媒| 18黄女脱内衣| 少妇伦子伦情品无吗| 国内精品蜜汁乔依琳视频 | FREE性丰满HD毛多多| 双手绑在床头调教乳尖|