宏虹分享 | 技術咖必看!Kvaser t腳本完整指南:輕鬆打造高效 CAN 網關

Kvaser t腳本完整指南

Kvaser t腳本完整指南

Kvaser設備秒變高效網關的實用方法

在工業自動化和數位化轉型的浪潮中,實現不同系統間的無縫整合與數據交換變得至關重要。在實際操作中,您可能會面臨需要整合兩條 CAN 匯流排的場景,或是需要在不同速率和協定的匯流排間進行數據傳輸。

工業自動化

圖一 - 工業自動化

通常,這可以通過引入網關設備來實現。但是,如果您擁有多通道 Kvaser 設備,也可以利用 t腳本 來創建自己的網關。Kvaser 現場應用工程師 Adam Raymer 從實際應用出發,詳細介紹了如何通過編寫 t腳本來建立自己的網關。

什麼是 t腳本?

Kvaser 的 t腳本與 C 語言類似,它允許使用者使用 “hooks” 對匯流排上的某些事件進行程式反應。t腳本在 Kvaser 設備上本地運行,一旦載入並啟動,無需再與 PC 通訊。

t腳本的特點是它可以讓 Kvaser 設備在無需連接到 PC 的情況下本地執行。這使得它特別適合於分散式工業系統,您可以通過 t腳本在多個匯流排之間進行數據交換,而不依賴外部系統的干預。具體應用包括車輛系統中的匯流排整合、工廠自動化設備之間的數據傳輸等。

開始使用 t腳本前需要準備什麼?

Kvaser網關

圖二 - Kvaser 網關

1. 支援 Kvaser t腳本的硬體

如 Kvaser Memorator Pro 2xHS 和 Memorator Pro 5xHS CAN 通訊儀和數據記錄儀。

2. 下載 CANlib

CANlib SDK 是免費的,包括 TRX 用於編寫和控制 t腳本的 IDE,以及示例庫,幫助您快速入門。

3. 下載 t腳本指南

該指南詳細介紹了 t腳本的功能,並提供了代碼片段以幫助您理解。

如何設置網關?

數據呈現

圖三 - 數據呈現

首先,您需要一台支援 t腳本的多通道設備,例如 USBcan Pro(2xHS 或 4xHS)或 Kvaser Memorator Pro(2xHS v2 或 5xHS)。將通道 1 和 2 分別連接到兩條 CAN 匯流排。如果設備有超過兩條通道,也可以接入不同的匯流排。在此示例中,我們使用通道 1 和 2。如果在獨立模式下使用 Memorator Pro,則需要為通道 1 供電。

補充說明:在使用 TRX 編寫腳本時,您應當確保設置正確的 CAN 通道號和速率。在一些應用中,CAN 通道之間的速率不同,這就要求您在 t腳本中為不同通道設置相應的數據格式和速率匹配機制。對於新手,您可以使用 TRX 中提供的範例腳本進行修改,這能幫助您快速上手。

通過 Kvaser 用於創建、編譯和運行 t腳本的整合式開發環境 TRX,您可以使用以下 t腳本,並將其下載到通道 1 上的設備中。

t腳本示例1

圖四 - t腳本示例1

在 TRX 中運行此腳本時,通道 1 和通道 2 都將以 250 kb/s 的位元速率接入匯流排。之後,第一條 CAN 匯流排上的流量將傳輸至第二條 CAN 匯流排,反之亦然。

使用 t腳本作為網關是如何運行的?

該腳本包含四個 "hooks":on start、on stop、on CANMessage 和 on CANMessage。當腳本載入並開始運行時,"on start" 將被觸發,通道將被置於匯流排上。當 TRX 通知停止腳本時,"on stop" 將被觸發並關閉通道。如果 CAN 通道 1 讀取報文,將觸發 on CANMessage,並將報文複製到 CAN 通道 2。而如果 CAN 通道 2 讀取報文,則運行 on CANMessage 中的代碼。

當設備已經在匯流排上時該怎麼辦?

如果設備已在匯流排上,則無需使用 on start 和 on stop hooks。為了便於讀取,可以刪除這些 hooks。

t腳本示例2

圖五 - t腳本示例2

如果您使用的是 Kvaser USBcan Pro 2xHS v2、Kvaser USBcan Pro 4xHS 等設備,這裡是啟動腳本的步驟:

  1. 打開匯流排監控/分析軟體
  2. 配置設備並打開通道
  3. 啟動 TRX 並載入專案
  4. 在 TRX 中將設備設置為「線上」狀態
  5. 在 TRX 中將 t腳本下載到設備上
  6. 在 TRX 中啟動 t腳本

當設備作為網關運行時,您仍可使用匯流排分析/監控軟體。這就是設置基本網關的全部內容。

如何連接兩條不同位元速率的匯流排?

您可以為 CAN 通道設置所需的位元速率。

t腳本示例3

圖六 - t腳本示例3

如果使用軟體來監控匯流排,則在軟體中進行配置。如果需要兩個以上的通道,可以為這些通道添加更多的 "CanMessage" hooks。

如何將某些報文 ID 轉移到另一個通道?

我們可以使用 hooks 根據報文 ID 進行過濾。該 hooks 事件只會將一個 11 位 ID 1019(十進位)的報文傳送到 CAN 通道 2。

t腳本示例4

圖七 - t腳本示例4

如何從 CAN 轉到 CAN FD?

從 CAN 轉到 CAN FD 更為複雜。您無法直接複製報文,需重新格式化為 CAN FD 格式。

在此示例中,我們將 CAN 通道 2 設置為 CAN FD,標稱位元速率為 500 kb/s,數據段位元速率為 2 Mb/s。CAN 通道 1 接收到的任何報文都將以 CAN FD 格式傳輸至 CAN 通道 2,反之亦然。此例中 CAN 和 CAN FD 的 DLC 均為 8。在更高級的示例中,傳輸報文時還需考慮 CAN 和 CAN FD 之間的其他差異,例如 CAN FD 幀大於 8 個數據位元組。

轉換過程中可能遇到的挑戰包括如何保持數據的一致性,特別是在報文長度和格式不匹配的情況下。您可以在腳本中加入錯誤檢測機制,來防止格式錯誤的報文進行傳輸,並根據需求進行數據截斷或重新封裝。

t腳本示例5

圖八 - t腳本示例5

如果您的設備被用作 USB 通訊儀,在程式運行時從電腦上拔下設備會導致 t腳本停止運行。此外,由於 t腳本調度程式每次只能處理一個非定時 hooks 事件,因此在處理報文時會有 1 ms 的延遲。在某些情況下,如果同時發送多條報文,可能會推遲執行,因為調度程式會以 1 ms 的處理間隔逐一處理每一條報文。請在將本示例整合到您的網路時考慮到上述內容。

使用 Kvaser t腳本的優勢

您無需購買全新設備作為網關,並且可以使用現有的、具有相容性的 Kvaser 設備作為網關。Kvaser 的 t指令碼語言允許使用現有硬體靈活地解決常見問題,以便節省您的時間和資源。

這只是使用支援 t腳本的設備和幾行代碼就能解決問題的一個示例。如需瞭解更多資訊,請聯絡我們。

產品推薦

Kvaser USBcan Pro 2xHS v2

Kvaser USBcan Pro 2xHS v2

  • 雙通道CAN/CAN FD支援:可同時處理兩個高速CAN匯流排
  • 腳本編程:支援Kvaser TRX腳本,靈活自定義功能
  • 高效小巧:性能強大且便於攜帶
  • 標準USB接口:輕鬆連接PC或移動設備
產品資訊
Kvaser Memorator 2xHS v2

Kvaser Memorator 2xHS v2

  • 雙通道CAN匯流排:即時監控與記錄兩個CAN通道數據
  • 獨立數據記錄:透過SD卡記錄數據,無需PC連接
  • 緊湊設計:適合用作便攜式數據記錄器
  • 簡單配置:用戶友好的配置工具,便於設置篩選和觸發器
產品資訊