如何經過CANdb++建立一個新的DBC(二)

1.建立DBC

經過File-Create Database新建了一個命名爲xxx的CAN數據庫,建立後打開的是Overall View窗口。node

 2.建立Node對象

Overall VIew的左側邊欄選擇Network nodesNew一個新節點,命名後肯定。以下圖:數據庫

 

注意:初次建立時,上圖中藍框的Address是不可編輯的,咱們需設置屬性後方能編輯該值app

3.定義各項屬性(此步驟與2無前後順序的限制)

從菜單欄的View進入Attributes Definitions窗口,在窗口中New各類屬性。若不知道具體的屬性名稱,類型,值等,可查看Help文檔3d

 

 此處我只簡單的配了幾個屬性,能夠看到其中有一項是NmStationAddress,設置此項後,建立節點時的Address值就可編輯了。對象

回看剛在Overall View新建立的PEPS節點,選擇Attributes,能夠看到咱們新配置的與Node相關的屬性已經添加進來了。blog

 

 4.建立Signal對象

Overall View的左側邊欄選擇SignalsNew建立信號。填好名字、字節序、單位(可不填)、值類型、精度、偏移量, 最小值和最大值經過計算得出,肯定建立。文檔

 

 注意1:須要說明的是其中有個Init. Value,建立時我並無設置,點開藍色的連接彈出框提示以下圖,首先它與Signal對象的兩個屬性有關,並說明了原始值與物理值的轉換公式。舉個簡單例子,好比冷卻液溫度可能爲-5℃稱之爲物理值(物理意義上的值,直觀的被人們所認知),經過該公式換算後在報文中可能其原始值爲10.it

 

 注意2其中還有個Value Table,初次建立是處於none不可選狀態。能夠經過View-Vaule Tables窗口New新建,回到Overall View的Signal對象便可選擇配置value table了自動化

 

 

 

 根據信號矩陣表重複此步驟的操做建立衆多的信號對象信息io

5. 建立Message對象

Overall View的左側邊欄選擇Message對象,New建立消息,填好名字、DLC、ID,其中cycle time與在屬性視圖建立的與Message對象相關的GenMsgCycleTime關聯。

 

 選中剛建立的消息對象,經過彈出框的Add配置該Message對象的Signal對象,和發送者

 

 

 

值得一提的是屬性頁的配置能夠經過雙擊對應的屬性選項修改值,好比修改報文週期爲200ms

 

 重複步驟5建立多條消息

6. 配置Node對象的對外發送消息與接收的報文信號

經過Overall View左側邊欄的Network nodes選項,選中相應的節點,右鍵菜單的Edit Node, 分別根據Mapped Rx Sig.頁和Tx Message頁添加信息配置

 

 

 

 

 7.數據庫檢查

以上6步操做完成後,保存新建立的數據庫文件,從File選擇Consistency Check執行檢查。結果展現以下圖,提示的信息能夠不關注,由於這兩項配置點在建立DBC時能夠不填寫。

 

 最終個人DBC結構像下圖這樣

 

 -----------------------------------以上完--------------------------------

總結:單個建立仍是太慢了,並且從通訊矩陣中錄入這些信息建立DBC頗有可能人工輸入錯誤而不易發現。我們仍是推薦從數據源頭實現自動化轉換DBC的方式,本身去寫代碼實現這個功能吧。

相關文章
相關標籤/搜索