dSPACE VEOS

VEOS 原廠範例
(Demos)詳細說明

VEOS 安裝隨附一系列原廠範例:Windows 端的 demo ZIP 與自動化 Python 腳本、Linux 端的 GPU Passthrough Demo,以及供 CI/雲端使用的 Docker 範例。本文逐一詳解各範例的模擬系統、附帶腳本與使用重點。

6 個 Demo ZIP 自動化 Python 腳本 GPU Passthrough · Docker Release 2024-B

VEOS 是 dSPACE 用於程式碼層級軟體在環(SIL)模擬的整合與模擬平台。其安裝隨附的範例分佈於三處:Windows 安裝提供的 demo ZIP 檔與自動化 Python 腳本、Linux 安裝提供的 GPU Passthrough Demo,以及供 CI/雲端的 Docker 範例。本文整理自 dSPACE VEOS Manual(RLS2024-B)。

1. 範例分類與取得

Windows Demo ZIP

6 個模擬系統 + 自動化 Python 腳本

Linux GPU Passthrough

NVIDIA CUDA 流體模擬示範

Docker 範例

BuildVeos.py / RunVeos.py(CI/雲端)

  • 先解密:Windows demo 須先在 dSPACE Installation Manager 解密方可使用。
  • 複製:以 Copy Demo Files 指令將 demo 複製到使用者專屬資料夾(Documents)。
  • 執行腳本:可於外部 Python 直譯器(如 PythonWin)執行;_CLI 版使用 VEOS 命令列介面而非 COM 自動化,稍作修改亦可用於 Linux。

2. Windows Demo ZIP 檔(6 個)

Demo ZIP 模擬系統 / 容器 附帶腳本
1Ecu_Standard.zipAR_PosControl_1Ecu——單一 V-ECU(AUTOSAR 軟體);含 V-ECU 的 A2L 變數描述與原始 V-ECU 實作LoadAndRun.py / _CLI.py;VEOS_SimulationEventsLib.py
2Ecu_CanBusSimulation.zipAR_PosControl_2Ecus_Can——兩個 V-ECU 經 CAN 互連;含 A2L 與原始實作LoadAndImport.py / _CLI.py
2Ecu_LinBusSimulation.zipAR_PosControl_2Ecus_Lin——兩個 V-ECU 經 LIN 互連;含 A2L 與原始實作LoadAndImport.py / _CLI.py
2Ecu_VpuPorts.zipAR_PosControl_2Ecus_VpuPorts——兩個已連接的 V-ECU;含 A2L 與原始實作LoadAndConnect.py / _CLI.py;ImportAndModify_CLI.py
AR_Fuelsys_Smc.zipAR_Fuelsys.smc(SMC)——兩個 V-ECU + 一個 SIC;兩 V-ECU 經 CAN 互連,其一連到 Simulink 模型;匯入時自動建立 port 與 bus 連接—
ThrottleControl.zipThrottleControl.vecu(VECU)——模擬非 AUTOSAR 軟體LoadAndImport.py / _CLI.py

3. 示範腳本(Python)

腳本 示範內容
LoadAndRun.py / _CLI.py開啟 OSA、變更部分設定、啟動並控制 SIL 模擬、自動化 VEOS 事件處理
LoadAndImport.py / _CLI.py建立 OSA、匯入 OSA 內全部 VPU、移除選定 VPU、依名稱匯入選定 VPU;(ThrottleControl 版另示範匯入並建置 V-ECU、取得版本資訊)
LoadAndConnect.py / _CLI.py分別以 COM 自動化與命令列介面連接 V-ECU 的 VPU
ImportAndModify_CLI.py以單一 VEOS 命令列指令執行多項 OSA 修改
VEOS_SimulationEventsLib.pyPython 事件函式庫,用於自動化 VEOS Player 事件處理

說明:這些腳本同時涵蓋「VEOS Player 自動化」與「VEOS 命令列介面」兩種途徑(_CLI 後綴為命令列版),可作為建立自有自動化流程的範本。

4. 功能涵蓋矩陣

功能 1Ecu 2Ecu Can 2Ecu Lin VpuPorts Fuelsys SMC Throttle
CAN 匯流排通訊—✓——✓—
LIN 匯流排通訊——✓———
載入 OSA✓✓✓✓—✓
匯入 V-ECU 實作—————✓
匯入 VPU—✓✓✓——
連接 VPU———✓——
啟動 / 控制 SIL 模擬✓————✓
版本資訊 / 事件處理事件✓————版本✓

5. Linux GPU Passthrough Demo

VEOS on Linux 安裝包含 GPU Passthrough Demo,示範如何讓 adaptive V-ECU 在離線模擬應用中使用主機 PC 的 GPU——關鍵是把 GPU 直通(passthrough)到執行 adaptive V-ECU 的虛擬機。範例以 NVIDIA CUDA 流體模擬(fluid simulation)為基礎。

Console 文字輸出

流體模擬的簡單主控台文字輸出

GTK3 圖形輸出

經 GTK3 的圖形化輸出

Server / Client 分離

模擬與圖形輸出分為 server 與 client 應用

示範流程:準備主機 PC → 於主機執行流體模擬 → 啟用 GPU passthrough(讓虛擬機存取主機 GPU)→ 以 VeosQemu 啟動含 GPU passthrough 的虛擬機 → 以 VEOS 執行流體模擬。另提供 Dev Container 設定檔,可用 Visual Studio Code 的 Dev Containers 擴充功能重建 VEOS Linux kernel。

6. Docker 範例(CI/雲端)

dSPACE 提供 Dockerfile 與隨附 Python 腳本,供在 Linux Docker 容器中執行 VEOS,用於 CI/雲端叢集環境。

項目 說明
取得自 dSPACE ProductsForLinux 頁面下載 dspace-veos-<版本>-docker-example.tar.gz(含 Dockerfile 與腳本)與 dspace-veos-<版本>.tar.gz
BuildVeos.py建置 VEOS Docker 映像(online / offline);以 --target veosAdaptive 支援 adaptive V-ECU 模擬
RunVeos.py依映像啟動容器;以 --dockerRunArgs "--shm-size …" 指定共享記憶體大小
程序管理採 supervisord;容器內含 CodeMeter、Port mapper、VEOS Kernel、VEOS Simulator 與 VPU
需求Docker(Linux/Windows)、supervisord 4.2.x、Microsoft .NET 8.0、Ubuntu 22.04 base image
# 建置含 Adaptive 支援的映像
BuildVeos.py online <acceptEula> <veosImage> <veosInstallFile> --target veosAdaptive
# 運行容器(指定共享記憶體)
RunVeos.py <veosImage> <licenseServer> --dockerRunArgs "--shm-size 300m --cpus 3"

於容器模擬 archive-based adaptive V-ECU 較複雜,建議先由 archive 建立 QEMU image 作為實作層;且不可將舊 Release 的 Dockerfile 用於新 Release(CodeMeter Runtime 變更)。

7. 在 Linux 使用 _CLI 示範腳本

Windows 端的 _CLI.py 示範腳本亦可用於 VEOS on Linux,但須手動複製到 Linux 並做下列準備:

  • 要於 demo 執行期載入的 OSA,須先在 Windows 為 Linux 目標建置,再複製到 Linux 上腳本所在資料夾。
  • 若 demo 含 OSA 建置,須在 Windows 為 Linux 目標建置後複製過去,並移除/註解腳本中所有與 veos-build 相關的部分再執行(例如 2Ecu_VpuPorts 的 ImportAndModify_CLI.py 需移除 ImportVEcuImplementation 呼叫與 boardName/compiler 區塊)。

原始文件出處(dSPACE RLS2024-B)

文件章節 內容
VEOS ManualDemos for VEOS(Windows demos and sample scripts、Features covered、Linux demos)、Demos for Automating the VEOS Player、Working with the GPU Passthrough Demo、Running SIL Simulations in a Linux Docker Container(BuildVeos.py / RunVeos.py)

來源:dSPACE VEOS Manual(RLS2024-B)。適用版本:VEOS 2024-B (24.3)。Windows demo 須先於 Installation Manager 解密並以 Copy Demo Files 複製。實際腳本、路徑與參數請以安裝版本為準。相關文件另見同資料夾之《VEOS Player 用途與腳本操作說明》與《SMC 簡介與製作指南》。