TSMaster信號映射模塊可以將數據庫變量映射為系統變量,經過映射后的系統變量就等同于數據庫中的變量,該系統變量的讀寫操作就等同于讀寫數據庫變量。其在系統軟件中的位置如下圖所示:
信號映射模塊設計的目的,就是為了實現上層應用層邏輯和下層數據庫變量的解耦合。如果上層應用層直接操作數據庫中的變量,一旦數據庫發生變動,介于這種強耦合關系,會造成上層開發,比如Panel,測試腳本等需要修改對應的數據庫變量,對于大型工程項目來說,這種變動是不可接受的。采用信號映射模塊,上層映射層不用直接操作數據庫變量,直接使用映射后的系統變量,當下層數據庫等發生變動時,只需重新將映射數據庫變量到對應的系統變量即可,而不用修改上層的應用。本文將重點介紹TSMaster中添加信號映射的操作方法。
本文關鍵字:信號映射、系統變量、表達式映射
目錄
Catalog
1. 直接映射的操作方法
2. 表達式映射的操作方法
3. 信號映射轉換實例
直接映射的操作方法
1、信號映射模塊路徑:
仿真-環境-信號映射
打開信號映射后,點擊模塊左上角激活按鈕使能信號映射模塊。如圖1。
圖1
選擇數據庫中的信號進行映射,以CAN數據庫為例,如圖2所示:
▲ Step1:選擇【通道1】的數據庫報文信號;
▲ Step2:選擇需要映射的信號,比如“EngSpeed”信號;
▲ Step3: 鼠標右鍵,選擇【自動創建映射】;
▲ Step4:在【映射目標系統變量列表】自動生成目標系統變量,默認為直接映射類型。
圖2
▲ Step5: 當自動創建映射后,在【仿真-系統變量-用戶變量列表】中會自動生成同名系統變量,如圖3。
圖3
2、映射方向的三種方式
直接映射方式可以理解為一對一的映射方式,可以選擇信號映射的方向,TSMaster提供了三種方式:雙向傳遞、僅從信號映射至系統變量、僅從系統變量映射至信號,以適配不同的映射需求,如圖4。
1)雙向傳遞:系統變量值的改變會同步到信號,信號值的改變會同步到系統變量。
2)僅從信號映射至系統變量:信號值的改變會同步到系統變量,系統變量值的改變不會同步到信號。
3)僅從系統變量映射至信號:系統變量值的改變會同步到信號,信號值的改變不會同步到系統變量。
圖4
操作步驟如下:
①選擇映射列表條目中目標系統變量;
②點擊【映射方向】彈出菜單;
③選擇映射方向;
④點擊【設置】完成選擇。
表達式映射操作方法
1、表達式映射的說明
將所選表達式設置為表達式映射后可以編輯表達式,最終將自定義的算法表達式計算得到的結果映射到系統變量,自變量可以選擇常量、系統變量、FlexRay信號、CAN信號、LIN信號。
TSMaster提供了一系列的數學函數列表及表達式,其中數學函數列表:
abs, acos, asin, atan, atan2, ceil, cos, cosh, e, exp, fac, floor, ln.
log, log10, max, min, ncr, npr, pi, pow, sign, sin, sinh, sqrt, tan, tanh
表達式示例:
[1] sqrt(x1n1.5 + x2n2.5)
[2] x1 * 3 + x2 / 1.2 - 11.9
[3] (1/(x1+1)+2/(x2+2)+3/(x3+3))
[4] (x1 > 50) & ((x2 <30) |(x3 = 1)
2、表達式映射的操作步驟
選擇映射對后點擊設置為表達式映射,在窗口右側編輯計算方法,如圖5。
圖5
①選擇映射目標系統變量
②設置為表達式映射
③點擊加號添加自變量
:添加自變量
:刪除自變量
:查看任意表達式幫助
:復制當前表達式映射的C代碼
④編輯計算方法表達式
⑤給計算表達式中的自變量賦值,自變量可以選擇常量、系統變量、FlexRay信號、CAN信號、LIN信號
【檢查映射】:完成信號映射列表的添加和配置后,可以選擇檢查當前映射,可以避免出現無效映射的情況。
【配置】:自動激活對應的RBS發送信號。勾選后映射列表中涉及的信號將會以RBS的方式仿真發送,如圖6。
圖6
配置好的映射信號列表,可以進行配置文件的保存與導入,如圖7。
【配置文件保存】:信號映射對配置完成后可以將當前映射對配置導出到本地。
【配置文件導入】:可以將當前信號映射列表導出.ini文件。
圖7
信號映射轉換實例
汽車車速與發動機轉速之間有一種常見的轉換關系計算,車速(km/小時)=發動機轉速x 60 x 3.14 x輪胎直徑/(1000X主減速比x對應檔位傳動比)。通常輪胎直徑、主減速比、對應檔位傳動比可以通過汽車手冊查得,再通過已知的發動機轉速,使用信號映射計算出汽車的車速,即:車速CarSpeed= 發動機轉速*60*3.14*0.724/(1000*3.683*0.672)。
在TSMaster的信號映射里創建好目標系統變量“CarspeedMappingFromEngSpeed”,設置為表達式映射,x1綁定汽車發動機轉速EngSpeed,如圖8。
CarspeedMappingFromEngSpeed = x1*60*3.14*0.724/(1000*3.683*0.672)
圖8
配置好信號映射表達式后,可以修改EngSpeed的發送值為1000 rpm,經過信號映射后可以自動計算車速為55.1 km/h, 如圖9。
圖9
同樣,繼續修改EngSpeed的發送值為2000 rpm,經過信號映射后可以自動計算車速約為110.2 km/h, 如圖10。
以上是信號映射模塊使用操作流程和示例,信號映射出來的系統變量可以直接被我們的panel模塊、信號測試模塊、信號比較模塊、C小程序、圖形模塊等模塊訪問和使用,信號映射是我們TSMaster中實現模塊互通的一員,合理使用信號映射模塊可以有效提高基于TSMaster的工程開發效率。
-
測試
+關注
關注
8文章
5269瀏覽量
126599 -
信號
+關注
關注
11文章
2789瀏覽量
76730 -
數據庫
+關注
關注
7文章
3794瀏覽量
64362
發布評論請先 登錄
相關推薦
評論