CANopen 運動控制安全流程基礎:掌握 NMT 狀態機與 DS402 安全控制機制

引言

在工業自動化與智慧製造環境中,CANopen 已成為伺服驅動器、馬達控制器、I/O 模組及機器人系統的重要通訊協定。然而,許多工程師在導入 CANopen 運動控制系統時,往往專注於功能實現,而忽略了系統狀態管理與安全機制的重要性。

本文將深入解析 CANopen NMT(Network Management)狀態機的運作方式,以及如何透過正確的狀態轉換流程,建立安全、可靠且符合工業標準的運動控制系統。

為什麼 CANopen 安全流程如此重要?

在運動控制系統中,任何錯誤的狀態切換都可能導致:

  • 馬達非預期啟動
  • 設備碰撞
  • 人員安全風險
  • 生產線停機
  • 控制器與驅動器通訊異常

CANopen 透過 NMT(Network Management)狀態管理機制,明確規範設備從上電、參數設定、正常運作到停機的完整流程。

這種設計能夠確保:

  • 設備在參數配置完成之前不會執行動作
  • 運動控制命令只能於特定狀態下執行
  • 發生故障時可立即停止即時控制通訊
  • 系統具備可預測且可驗證的安全行為

I. 五大核心狀態分類

1. Initialization(初始化狀態,虛線框內自動上電流程)

此階段包含兩個自動執行的子狀態。設備上電後無須任何外部指令,即會直接進入 Reset Application 狀態。

Reset Application

功能: 清除應用層資料、馬達閉環控制變數、I/O 訊號、DS402 運動狀態以及故障旗標,並將物件字典(Object Dictionary)還原至預設設定。

自動轉換: 透過深色箭頭自動切換至 Reset Communication,無需任何外部訊號介入。

Reset Communication

功能: 重置 CAN 通訊硬體、PDO/SDO/SYNC 配置、COB-ID、Heartbeat 參數以及匯流排濾波器。

自動轉換: 初始化完成後自動進入 Pre-operational 狀態。

技術提示: 狀態圖中未標示 NMT 指令的深色箭頭代表自動狀態轉換(Automatic State Transition),不需由主站發送任何 NMT 控制命令。

2. Pre-operational(預運行狀態,參數設定階段)

設備完成初始化後預設進入此狀態。所有運動控制系統的啟動參數設定作業皆在此階段完成。

可用功能: 透過 SDO 讀寫物件字典,可設定馬達參數、PDO Mapping、加減速度、限位開關及 DS402 運作模式;Heartbeat 與 EMCY(Emergency Message)緊急訊息亦可正常運作。

停用功能: 不允許即時 PDO 訊息收發;無法下達位置控制或速度控制命令;馬達維持待機狀態,不會執行任何運動。

應用情境: 設備上電後,主站透過 SDO 完成驅動器的所有運動參數配置。

3. Operational(運行狀態,即時運動控制核心狀態)

當主站發送 Start Remote Node NMT 指令後,設備即進入 Operational 狀態。這是 CANopen 系統中唯一允許執行即時運動控制的狀態。

完整功能啟用: SDO、PDO、SYNC 同步機制、Heartbeat 以及 EMCY 故障通報功能皆可正常運作。

運動控制邏輯: RPDO 用於接收主站下達的目標位置與控制字(Control Word),TPDO 則回傳編碼器回授資料與設備狀態資訊。搭配 SYNC 訊號可實現多軸同步閉環控制。

安全規則: 設備一旦離開 Operational 狀態,PDO 傳輸會立即停止。馬達失去即時控制命令後,系統將觸發停機保護機制。

4. Stopped(停止狀態,匯流排休眠模式)

當主站發送 Stop Remote Node 指令後,設備即進入 Stopped 狀態,此時所有服務通訊功能均被停用。

保留功能: 僅保留 NMT 網路管理訊息與 Heartbeat 心跳訊號。

停用功能: SDO、PDO、SYNC 以及 EMCY 功能全部失效,無法進行參數讀寫與馬達控制。

應用情境: 適用於設備維護、全軸暫停運作等場景,此時匯流排僅維持節點在線狀態監控。

II. 狀態轉換控制指令(NMT Master Commands)

狀態機圖中所有標示的狀態轉換皆透過主站發送 NMT 訊息實現。

Start Remote Node

  • Pre-operational → Operational(啟用即時運動控制)
  • Stopped → Pre-operational

Stop Remote Node

  • Operational → Stopped
  • Pre-operational → Stopped

Enter Pre-operational

  • Operational → Pre-operational(停止 PDO 傳輸並允許透過 SDO 重新配置參數)
  • Stopped → Pre-operational

Reset Application

  • 任意狀態 → Reset Application

清除馬達與應用層資料,並自動完成初始化流程後返回 Pre-operational。

Reset Communication

  • 任意狀態 → Reset Communication

僅重置匯流排通訊設定,完成後自動返回 Pre-operational。

III. 運動控制系統標準上電流程(State Machine Execution Flow)

1. 系統上電與初始化

設備上電後,依序自動進入:

Reset Application 狀態 → Reset Communication 狀態 → Pre-operational 狀態 →

無需主站介入即可完成初始化程序。

2. DS402 運動參數設定

主站透過 SDO 批次設定 DS402 相關參數,包括:

  • 運作模式(Position Mode)
  • 加速度與減速度
  • PDO Mapping
  • 軟體限位參數

3. 啟動運動控制

主站發送:Start Remote Node 命令
→ 使設備進入 Operational 狀態。

4. 執行即時閉環控制

主站週期性發送:

  • SYNC 同步訊號
  • RPDO 控制訊息

→ 實現馬達即時位置閉環控制。

5. 修改運動參數

若需調整設定,主站應先發送:Enter Pre-operational
→ 停止 PDO 傳輸後,再透過 SDO 修改參數。

6. 設備停機維護

主站發送:Stop Remote Node
→ 使設備進入 Stopped 狀態,以利維護與檢修作業。

7. 恢復出廠設定

主站發送:Reset Application
→ 重新執行完整初始化流程並恢復預設狀態。

參考資料:

Microchip Application Notes

更多相關技術主題: