我想找...

搜尋

函式庫參考

目錄

[Start Guides] QEC-M-01 and Panasonic A6B Series AC Servo

[教程]

我們很高興推出全新的技術 Start Guide,協助工程師與系統整合商快速上手 QEC-M-01 EtherCAT MDevice 與 Panasonic A6B 系列 EtherCAT AC 伺服馬達與驅動器。

Panasonic_acServo

這些指南提供逐步的設定流程、實用的程式碼範例,以及整合技巧,讓您能以 Cyclic Synchronous Position (CSP) 以及 Profile Position (PP) 兩種模式運行 Panasonic A6B。


1. 新指南亮點

QEC-M-01 是一款體積精巧且功能強大的 EtherCAT MDevice,採用即時(real-time)架構。搭配 86Duino Coding IDE 及其 EtherCAT 函式庫,您只需兩個函式即可啟動 EtherCAT 網路並驅動 CiA 402 伺服— setup() 負責一次性設定, loop() 負責週期性主程式。

1.1 Panasonic A6B 系列(為什麼選 Panasonic A6B?)

Panasonic A6B 系列是一款高效能、整合式的 EtherCAT AC 伺服馬達與驅動器,透過 EtherCAT 公開標準的 CiA 402 物件,因此無論您執行 PP 或 CSP,都適用相同的 QEC-M-01 工作流程。

對 EtherCAT 使用者而言的重點:

  • CiA 402 over EtherCAT — A6B 公開標準 CiA 402 物件,並同時支援 PP 與 CSP 操作,因此同一套 QEC-M-01 程式碼只需切換模式即可跨模式運作。
  • 整合式伺服驅動器 — 主電源輸入(XA)、控制電源輸入(XA1/XA2)與馬達/回生電阻連接器(XB)整合於單一精巧的驅動器中,適用 200–220 V AC 供電。
  • 高解析度回饋 — A6 編碼器介面(X6)提供精準、穩定的定位,並可透過 Panasonic 自動調諧(auto-tuning)簡化調機。
  • 菊鏈式 EtherCAT 埠 — EtherCAT 輸入(X2A)與 EtherCAT 輸出(X2B)讓您以串接方式連接驅動器,並將網路延伸至更多 SubDevice。
  • 安全與保護 — Safe Torque Off(STO)安全轉矩關閉介面(X3)必須啟用才能致能驅動器;另有 I/O 訊號介面(X4)用於感測器與警報處理、LED 狀態指示燈,以及設定站別名(station alias, ID)的旋轉開關。

請造訪 Panasonic MINAS A6B 產品頁面。

1.2 入門指南的優點

  • 逐步設定指南: 接線、EtherCAT 網路啟動,以及驅動器建議的參數檢查清單。
  • 程式範例(CSP/PP): 實用、可直接執行的程式碼片段與控制流程範例,協助您快速實作運動控制,同時提供手寫程式碼與 86EVA 低程式碼(low-code)兩種形式。
  • 整合技巧與疑難排解: 針對常見現場問題的說明——致能驅動器的順序、開發階段的 STO 短接(bridging),以及 QEC-M 環境更新。
Panasonic_acServo-1

2. 開始搭配 Panasonic A6B AC 伺服使用 QEC-M-01

無論您是新手還是經驗豐富的開發者,這些指南都能提供您上手所需的協助。以下兩個範例共用相同的 EtherCAT 網路設定:

  • EtherCAT 週期時間(Cycle Time): 1 毫秒
  • EtherCAT 模式: ECAT_SYNC
  • 分散式時鐘(DC): 啟用,跟隨週期時間

在兩個範例中,物件EthercatMaster master) represents the QEC-M-01, while the object(EthercatDevice_CiA402 motor) represents the Panasonic A6B Driver.

2.1 點對點位置(PP)模式

以下程式將 Panasonic A6B 驅動器設定為 CiA 402 Profile Position(PP)模式。

setup() 中初始化通訊、將驅動器設定為 PP 模式、致能馬達,並設定運動輪廓(motion-profile)參數。在 loop() 中,一個小型狀態機使用 pp_Run() 下達目標位置命令,並以 pp_IsTargetReached() 等待完成,因此馬達會在 100000000 與 -100000000 單位之間往復循環移動。

#include "Ethercat.h"

EthercatMaster master;
EthercatDevice_CiA402 motor;
int pp_state = 0;

void setup() {
  Serial.begin(115200);
  Serial.print("Begin: "); Serial.println(master.begin());
  Serial.print("Slave: "); Serial.println(motor.attach(0, master));
  motor.setCiA402Mode(CIA402_PP_MODE);
  motor.setDc(1000000);
  Serial.print("Start: "); Serial.println(master.start(1000000, ECAT_SYNC));
  Serial.print("Enable: "); Serial.println(motor.enable());
  motor.pp_SetMotionProfileType(0); // Linear ramp (trapezoidal profile)
  motor.pp_SetVelocity(10000000);
  motor.pp_SetAcceleration(10000000);
  motor.pp_SetDeceleration(10000000);
}

void loop() {
  Serial.print("Pos: "); Serial.println(motor.getPositionActualValue());
  switch (pp_state)
  {
    case 0:
      if (motor.pp_Run(100000000) == 0)
        pp_state++;
      break;
    case 1:
      if (motor.pp_IsTargetReached())
        pp_state++;
      break;
    case 2:
      if (motor.pp_Run(-100000000) == 0)
        pp_state++;
      break;
    case 3:
      if (motor.pp_IsTargetReached())
        pp_state = 0;
      break;
  }
}

上傳後,在 86Duino IDE 中開啟序列埠監控視窗(Serial Monitor,並比對鮑率)。
當 EtherCAT 設定成功時,序列埠監控視窗會印出 0 與 Enable: 0,接著持續串流馬達目前的位置,同時馬達在兩個目標位置之間往復循環。


2.2 週期同步位置(CSP)模式

運動是在以 attachCyclicCallback() 註冊的回呼函式(myCallback)內週期性產生:一旦驅動器達到 CIA402_OPERATION_ENABLED,每個週期便將目標位置增加 1000 單位。setDc() 呼叫會將驅動器的分散式時脈與 1 ms 的 EtherCAT 週期同步,而 loop() 則印出馬達目前的位置。

#include "Ethercat.h"

EthercatMaster master;
EthercatDevice_CiA402 motor;
int32_t position = 0;

void myCallback() {
  if (motor.getCiA402State() != CIA402_OPERATION_ENABLED)
    return;
  motor.setTargetPosition(position += 1000);
}

void setup() {
  Serial.begin(115200);
  Serial.print("Begin: ");
Serial.println(master.begin());

  Serial.print("Slave: "); 
Serial.println(motor.attach(0, master));

  motor.setCiA402Mode(CIA402_CSP_MODE);
  motor.setDc(1000000);
  master.attachCyclicCallback(myCallback);

  Serial.print("Start: "); 
Serial.println(master.start(1000000, ECAT_SYNC));

  motor.setTargetPosition(position = motor.getPositionActualValue());
  Serial.print("Enable: "); 
Serial.println(motor.enable());
}

void loop() {
  Serial.print("Pos: "); 
Serial.println(motor.getPositionActualValue());
  // ...
}

當 EtherCAT 設定成功時,序列埠監控視窗會印出 0 與 Enable: 0,接著持續串流馬達目前的位置,並以每週期 1000 單位的幅度前進。

*註: 為了安全,在致能開始時會先將第一個目標位置設定為目前位置—— setTargetPosition(getPositionActualValue()—如此當驅動器切換至 CIA402_OPERATION_ENABLED.


3. 完整指南

如果您想深入了解,包含接線照片、參數檢查清單,以及 86EVA 低程式碼工作流程的完整逐步指南如下。

CSP 模式:

PP 模式:


我們將持續提供穩健且創新的 EtherCAT 自動化平台,實現更智慧、更快速的整合。如有任何問題或需要支援,請透過 info@icop.com.tw、您當地的 ICOP分公司或 全球官方經銷商.

返回頂端