ControlDesk CANBUS 訊號測試功能詳解
CAN/CAN FD 訊號注入、UDS 診斷功能測試、資料回放(Data Replay),以及 V-ECU 上的資料存取——本頁逐一介紹 ControlDesk 這四類測試能力的原理、元件與自動化方式。
ControlDesk 以「平台/裝置(Platform/Device)+變數描述+工作區/儀表」為核心,涵蓋量測、校正、匯流排、診斷與資料記錄。本頁聚焦四類測試能力,並說明其可用 ControlDesk COM 自動化(Python/MATLAB/VBA/C#)或 AutomationDesk 的 ControlDesk Access 程式庫驅動。內容整理自 dSPACE 原廠 ControlDesk Automation、ControlDesk ECU Diagnostics、AutomationDesk Accessing ControlDesk 等手冊。
1. 四類測試能力總覽
CAN / CAN FD 訊號注入
以 Bus 裝置存取匯流排訊號,監控(讀)與注入(寫);Bus Navigator 監控/記錄/回放;Signal Editor 定義刺激。
UDS 診斷功能測試
ECU Diagnostics 裝置(ODX/ASAM MCD-2 D、MCD server MCD-3 D);執行診斷服務、讀清 DTC。
資料回放(Data Replay)
Bus Navigator 匯流排回放、量測資料回放;支援 HIL 環境的 Data Replay。
V-ECU 資料存取
載入變數描述、連線 VEOS 平台、online calibration,讀寫 V-ECU 變數/參數。
2. CAN / CAN FD 訊號注入測試
ControlDesk 透過 Bus 裝置存取 CAN/CAN FD 通訊。以通訊矩陣(DBC/ARXML/…)建立變數描述後,匯流排上的訊號即成為可讀寫的變數:讀=監控、寫=注入。
建立變數描述
由通訊矩陣載入 CAN/CAN FD frame 與 signal 定義,成為變數。
監控(讀)
將訊號綁定儀表或以 ReadVariableValue 讀取,觀察匯流排通訊。
注入(寫)
以 WriteVariableValue 或 ValueConverted = 寫入訊號值,注入到匯流排。
- Bus Navigator提供匯流排監控(monitoring)、記錄(logging)與回放(replay),可觀察與重現整體匯流排通訊。
- Signal Editor定義刺激訊號波形,作為注入測試的輸入來源。
- 錯誤/失效測試可搭配 XIL API EESPort 電氣錯誤模擬,測試 ECU 對錯誤匯流排通訊的反應。
# 注入一個 CAN 訊號值(COM 自動化)
sig = platform.ActiveVariableDescription.Variables.Item(
r"Platform()://.../EngineSpeed")
print(sig.ValueConverted) # 監控
sig.ValueConverted = 2500 # 注入
3. UDS 診斷功能測試
ControlDesk 以 ECU Diagnostics 裝置進行診斷。診斷服務與其提供方式定義於 ODX 資料庫(ASAM MCD-2 D);ControlDesk 透過 MCD server(ASAM MCD-3 D)與 ECU 溝通。測試以 logical link 為單位存取。
| 功能 | 自動化方法(ControlDesk Access) |
|---|---|
| 執行診斷服務(符號式) | DirectExecuteService |
| 執行 hex 服務(原始) | DirectExecuteHexService |
| 以自訂 PDU 執行服務 | DirectExecuteServiceUsingCustomPDU |
| 讀取 DTC | DirectReadDTCs |
| 讀取 DTC + 環境資料 | DirectReadDTCsWithEnvData |
| 讀取特定 DTC 環境資料 | DirectReadEnvironmentData |
| 清除單一 / 全部 DTC | DirectClearDTC / DirectClearAllDTCs |
| 取得診斷平台 / 作用中 logical link | GetDiagPlatform / GetActiveLogicalLink |
| 結果轉為報告資料 / 加入報告 | CreateDiagResultDataFromResponses / AddDiagResultDataToReport |
- 資料結構(ASAM MCD-3 D)以 ControlPrimitive(通訊原語)、Service(診斷服務)、SingleJob(單一 ECU job)組織診斷任務;服務與 job 由所選 logical link 提供。
- 遠端診斷(Remote Diagnostics COM)AutomationDesk 的 Remote Diagnostics (COM) 程式庫可經 ControlDesk(ASAM MCD-3 D 2.0.2)自動化診斷;支援符號式與 low-level(raw data)讀取。
- 典型 UDS 測試切換診斷 session、讀寫 DID、常式控制(routine control)、讀清故障碼(DTC)與環境資料、flash 等,皆可透過 service/hex service 執行。
4. 資料回放測試(Data Replay)
回放測試把先前記錄的資料重新播放,用以重現情境或驗證分析。ControlDesk 提供兩種層面的回放:
Bus Navigator 匯流排回放
先以 Bus Navigator logging 記錄匯流排通訊,再replay 重播到匯流排/模型,重現真實 CAN/CAN FD 情境。
量測資料回放
將 Measurement/Recording 記錄的量測資料回放,於相同 layout/儀表中檢視與比對。
HIL 環境的 Data Replay:在即時 HIL 環境中,ConfigurationDesk 亦支援 Data Replay,將記錄資料饋入即時應用,配合 ControlDesk 進行重播式測試。
典型流程:記錄(logging/recording)→ 選取時間區段 → 回放(replay)→ 觀察/評估。
5. V-ECU 上的資料存取
ControlDesk 以平台/裝置存取在 VEOS 上執行的 V-ECU。存取分「靜態內容」與「即時值」兩層:
靜態內容(免連線)
變數清單、型別、可讀/寫、群組、參數 metadata 等,可不連線直接讀 ActiveVariableDescription。
即時值(需連線)
量測當前值/對執行中模型注入,須先 Connect() + StartOnlineCalibration(),否則僅存取 host PC 的 mirror memory。
| 步驟 / 功能 | 方法 |
|---|---|
| 載入變數描述(.sdf / .a2l) | AddVariableDescription |
| 裝置一般設定 | ConfigureDeviceGeneralSettings |
| 連線 / 斷線平台 | ConnectPlatform / DisconnectPlatform |
| 啟動 / 停止 online calibration | StartOnlineCalibration / StopOnlineCalibration |
| 讀 / 寫變數值 | ReadVariableValue / WriteVariableValue |
| 讀 / 寫參數值 | GetParameterValue* / SetParameterValue |
| 切換記憶體頁(working/reference) | SwitchMemoryPage |
| 取得記憶體區段 / 平台狀態 | GetMemorySegments / GetPlatformStates |
* GetParameterValue 自 ControlDesk 7.0 起不再支援直接存取資料集參數,請改用 ReadVariableValue。
6. 自動化對照與注意事項
| 測試 | 核心元件 | 自動化程式庫/方法 |
|---|---|---|
| CAN/CAN FD 注入 | Bus 裝置、Bus Navigator、Signal Editor | Read/WriteVariableValue、變數 ValueConverted |
| UDS 診斷 | ECU Diagnostics 裝置、ODX、MCD server | DirectExecuteService、DirectReadDTCs、Remote Diagnostics (COM) |
| 資料回放 | Bus Navigator、Measurement Data | logging → replay;HIL Data Replay(ConfigurationDesk) |
| V-ECU 資料存取 | VEOS 平台、變數描述 | Connect + StartOnlineCalibration、Read/WriteVariableValue |
- 即時值存取須先 Connect + StartOnlineCalibration;VEOS 未連線時只存取 host PC mirror memory。
- online calibration 勿用
PromptUser(會跳對話框卡住自動化),改用Upload等。 - 兩記憶體頁裝置(如 XCP ECU)寫值前需
WorkingDataSet.Activate()/SwitchMemoryPage。 - 診斷測試須先於 ControlDesk 實驗建立 ECU Diagnostics 裝置並載入正確 ODX;更換資料庫後須重新選 logical link/service。
延伸閱讀:ControlDesk 測試腳本撰寫方式與語言、BSC/SIC 從 SIL 延伸到 HIL。
原始文件出處(dSPACE)
| 文件 | 檔名 |
|---|---|
| ControlDesk Automation(平台/變數存取、Bus Navigator、事件) | ControlDeskAutomation.pdf |
| ControlDesk ECU Diagnostics(ODX、診斷服務、DTC、flash) | ControlDeskECUDiagnostics.pdf |
| ControlDesk Bus Navigator(監控/記錄/回放) | ControlDeskBusNavigator.pdf |
| AutomationDesk Accessing ControlDesk / Remote Diagnostics (COM) | AutomationDeskAccessingControlDesk.pdf · …RDCOM.pdf |
| ControlDesk Measurement and Recording / MCD-3 Automation | ControlDeskMeasurementAndRecording.pdf · …MCD3Automation.pdf |
路徑前綴:C:\Users\Public\Acolada\Cobrili\HelpSetStorage\dSPACEPDF\RLS2024-B(ControlDesk Automation 參照 2025-A)\en\