日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Etas标定工具-Incacome.dll二次开发

發(fā)布時間:2023/12/8 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Etas标定工具-Incacome.dll二次开发 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

?先粘貼一個INCA軟件官網(wǎng)介紹:


????????ETAS通過INCA軟件產(chǎn)品,為汽車電子系統(tǒng)的標定、診斷和驗證提供靈活的工具。

????????INCA工具用于ECU開發(fā)和試驗,以及車輛、試驗臺、工作臺或電腦虛擬環(huán)境中電子控制系統(tǒng)的驗證和標定。在全球范圍內(nèi),超過35000臺用于開發(fā)和省擦痕那個項目的裝置使用INCA工具。INCA工具具有多種功能,包括計算機上功能模型的預(yù)標定、ECU閃存編程、測量數(shù)據(jù)分析、標定數(shù)據(jù)管理以及ECU參數(shù)的自動優(yōu)化。生成的標定和測量數(shù)據(jù)可以進行持續(xù)處理和評估。

????????這里直接進入主題,本篇主要是運用INCA官方提供的接口組件庫incacome.dll,通過c#語言在VS2013平臺上開發(fā)一個一鍵記錄相關(guān)的變量的值。實際上標定過程中,常常需要記錄一些變量的值,比如主預(yù)后噴角度和油量,TVA、EGR開度,進氣量,進氣溫度,增壓壓力,NOx,煙度等。在一些設(shè)備比較老舊,相關(guān)功能的情況下,就需要自己一邊標定,一邊記錄。所以說,你會發(fā)現(xiàn),標定工程師的工作時的電腦一直都會掛著Excel表格,這就是為了記錄數(shù)據(jù)。像現(xiàn)在AVL、Horiba公司的臺架設(shè)備,一般都能自動記錄數(shù)據(jù),如果運用asap3協(xié)議、或者借助網(wǎng)線和相關(guān)通訊協(xié)議可以實現(xiàn)將電腦的數(shù)據(jù)轉(zhuǎn)發(fā)到臺架電腦上,這樣一來就可以實現(xiàn)自動記錄數(shù)據(jù)了,甚至更進一步可以實現(xiàn)自動標定和在線優(yōu)化。

喜歡的朋友歡迎加個收藏點個贊,感謝。也歡迎各位關(guān)注公眾號,謝謝。

希望能給各位帶來靈感。

????????不多說,先上預(yù)覽效果: ????

????????具體操作,我這里只講主要部分,關(guān)于UI界面和事件處理這里略過。

????????關(guān)于一些類的一些設(shè)置,我在stackflow找到一些信息,供大家理解,這里想給文字附帶原文鏈接,那和不能富文本操作(https://stackoverflow.com/questions/17932147/in-etas-inca-what-classes-correspond-to-each-type-of-database-item?r=SearchResults):

????????首先需要創(chuàng)建一個Inca實例,實際上就是一個類。這類里面有個方法可以實現(xiàn)連接電腦inca軟件。

????????incacom.dll里面有兩個命名空間,我們主要使用用下面這一個。

????????廢話不多說,上代碼。

????????定義一些需要用到的變量。

  • private Inca m_Inca = null; private Experiment m_Experiment = null; private CalibrationScalarData m_CalibrationScalarData; private MeasureScalarData m_MeasureScalarData; string[] Measure_Lable =new string[] {}; MeasureElement[] measureArray; IList<InfoMeasureItem> MeasureSelectList = new List<InfoMeasureItem>(); IList<string> MesureList = new List<string>(); DataTable dt = new DataTable(); System.Data.DataSet ds = new System.Data.DataSet();

????? ?

初始化inca實例,意義就是使這個app連接電腦inca軟件。

  • ?
public void Connect_Inca() { if (m_Inca != null) { this.ConnectInca.Text = "連接成功"; } else { m_Inca = new Inca(); this.ConnectInca.Text = "連接成功"; } }

????????

連接試驗環(huán)境,注意這里需要事先先打開實驗:

  • ?
public void experienceGetIn() { if (m_Inca != null && m_Experiment == null) { m_Experiment = m_Inca.GetOpenedExperiment(); this.experienceIn.Text = "試驗中"; //getAllMeasureElecmentPrint(); } else { this.experienceIn.Text = "試驗中"; //getAllMeasureElecmentPrint(); } }

?

通過變量名字獲取標定變量的值:

CalibrationScalarData calibrationData = m_Experiment.GetCalibrationElement(labelname).GetValue() as CalibrationScalarData; //this.textBox2.Text = calibrationData.GetDoublePhysValue().ToString(); return Math.Round(calibrationData.GetDoublePhysValue(),2).ToString(); //this.textBox2.Text = m_CalibrationScalarData.GetDoublePhysValue().ToString();

?

獲取測量變量的值同理,需要注意的是,不連接Ecu起動發(fā)動機進入試驗環(huán)境,直接獲取測量變量的值會報錯,編程的時候需要特別注意:

MeasureScalarData measureData = m_Experiment.GetMeasureElement(labelname).GetValue() as MeasureScalarData; //this.textBox3.Text = measureData.GetDoublePhysValue().ToString(); return Math.Round(measureData.GetDoublePhysValue(),2).ToString();

?

獲取所有變量:???????

CalibrationElement[]?calibrationArray?=?MExperiment.GetAllCalibrationElements(); MeasureElement[] measureArray = m_Experiment.GetAllMeasureElements();

?

設(shè)置標定變量的值:

  • ?
?MCalibrationScalarData.SetDoublePhysValue(double.Parse(Text2number));

?

有一點需要深入了解一下,關(guān)于Map,cur結(jié)尾的變量數(shù)據(jù)該怎么處理。這里我還是一個標定新人,學(xué)習(xí)bosch策略文檔時間比較緊,目前還沒有時間去了解。等弄明白了再發(fā)文。

?

表格的設(shè)計用到一個插件:ReoGrid-2.1.0.0-All-Packages,開源免費,有需要大家可以去了解一下。

?

關(guān)于源代碼,由于本文編程格式比較隨意(其實是奇差),這里就不放GitHub了。

關(guān)于入門參考:《汽車軟件技術(shù)》這個公眾號也發(fā)表過相關(guān)文章。

下一篇應(yīng)該是講一些標定的事。

總結(jié)

以上是生活随笔為你收集整理的Etas标定工具-Incacome.dll二次开发的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。