[チュートリアル]
エンジニアおよびシステムインテグレーターの皆様が、 QEC-M-01 EtherCAT MDevice と Delta ASDA-B3 / ASDA-A2 サーボモータ・ドライバをすばやく使い始められるよう、新しい技術スタートガイドをご紹介します。
本ガイドでは、ステップバイステップのセットアップ手順、実用的なコーディング例、そして統合のヒントを提供します。対象は、最も広く使われている 2 つの CiA 402 モーションプロファイル—— Cyclic Synchronous Position (CSP) および Profile Position (PP) ——であり、最小限の手間で Delta サーボ軸を EtherCAT 経由で立ち上げることができます。

これらのガイドでは、ステップバイステップのセットアップ プロセス、実用的なコーディング例、統合のヒントが提供されており、CiA 402 CSP (Cyclic Synchronous Position) モードと PP (Profile Position) モードの両方がカバーされているため、立ち上げを迅速化し、エンジニアリング時間を短縮できます。
1. 新しいガイドのハイライト
QEC-M-01 は、リアルタイム・マルチタスクアーキテクチャを備えた、コンパクトかつ強力な EtherCAT MDevice です。86Duino Coding IDE と完全な EtherCAT ライブラリを実行し、使い慣れた Arduino スタイルの setup() / loop() コードで、ネットワーク設定、PDO マッピング、CiA 402 ドライバの制御が行えます。Delta ASDA サーボファミリと組み合わせることで、配線からモーションまでをスムーズに実現します。
1.1 Delta ASDA-B3/ASDA-A2(なぜ Delta ASDA なのか)
Delta ASDA-B3 と ASDA-A2 は、CiA 402 モーションプロファイルに準拠した EtherCAT インターフェースを内蔵した、広く採用されている ACサーボモータ・ドライバです。いずれも、コンパクトでコストを抑えつつ、信頼性の高いクローズドループ位置決めが求められる自動化用途に適しています。
EtherCAT ユーザー向けのポイント:
- CiA 402 over EtherCAT ——両ドライバとも標準の CiA 402 オブジェクトを公開し、PP・CSP 動作をサポートします。そのため、同一の QEC-M-01 アプリケーションロジックがどちらの機種でも利用できます。
- 幅広い電源範囲 ——ASDA-B3 は単相/三相 200–230 V(≤3 kW)および三相 380–400 V(1–7.5 kW)に対応し、ASDA-A2 は単相/三相 200–230 V で 200 W–3 kW の範囲に対応します。
- 高解像度フィードバック 正確で安定した位置決めを実現し、自動調整機能により試運転を簡素化します。
- 内蔵回生抵抗 はほとんどの用途で十分であり、高慣性負荷の場合は外部抵抗を追加できます。
- 安全と保護 ——ASDA-B3 はドライバを Enable するために有効化が必要な STO(CN10)入力を備え、さらに原点復帰やモーション保護に用いる ORG・POT/NOT リミットスイッチ用の CN1 I/O を備えています。
詳細については、 Delta ASDA-B3 およびASDA-A2の製品ページをご覧ください。
1.2 スタートガイドの利点
- ステップバイステップのセットアップガイド: 配線、EtherCAT ネットワークの立ち上げ、各ドライバの推奨パラメータチェックリスト。
- プログラミング例(CSP / PP): すぐに実行できるコードスニペットと制御フロー例で、モーションの実装を迅速に行えます。
- 統合のヒントとトラブルシューティング: 現場で典型的な問題への注意点——ドライバ Enable のシーケンス、開発中の STO 短絡、アラーム処理、そして 86EVA による QEC-M 環境の復旧(Bootloader、EtherCAT firmware、EtherCAT tool の更新)。

2. QEC-M-01 で Delta ASDA-B3/A2 ACサーボを使い始める
初心者の方でも経験豊富な開発者の方でも、本ガイドは Delta サーボ軸を動かすために必要なサポートを提供します。以下の例では、1 つの EtherCAT ネットワーク上で 2 台 のドライバ——ASDA-B3 と ASDA-A2——を同時に制御します。設定は次のとおりです:
- EtherCAT サイクルタイム: 1 ミリ秒
- EtherCAT モード:
ECAT_SYNC - 分散クロック(DC): 有効、サイクルタイムに追従
どちらの例でも、 EthercatMaster オブジェクト(master)は QEC-M-01 を表し、 EthercatDevice_CiA402 オブジェクトは Delta ASDA-B3 と ASDA-A2 ドライバを表します。
2.1 プロファイルポジション(PP)モード
以下のプログラムは、2 台の ASDA ドライバを CiA 402 プロファイル位置(PP)モードに設定します。 setup() ではネットワークを初期化し、各ドライバを SubDevice インデックスでアタッチし、DC を有効化し、PP モードを選択し、OPERATIONAL へ遷移し、モータを Enable し、モーションプロファイル(タイプ、速度、加速度、減速度)を設定します。 loop() ではシンプルなステートマシンで各軸を +10,000,000 counts へ移動させ、到達を待ち、−10,000,000 counts へ戻して繰り返します——移動指令には pp_Run() 、到達確認には pp_IsTargetReached() を使用します。
#include "Ethercat.h"
EthercatMaster master;
EthercatDevice_CiA402 motor[2];
int pp_state[2];
void setup() {
Serial.begin(115200);
Serial.print("Begin: ");
Serial.println(master.begin());
for (int i = 0; i < 2; i++) {
Serial.print("Motor: ");
Serial.println(motor[i].attach(i, master));
motor[i].setDc(1000000);
motor[i].setCiA402Mode(CIA402_PP_MODE);
}
Serial.print("Start: ");
Serial.println(master.start(1000000, ECAT_SYNC));
for (int i = 0; i < 2; i++) {
Serial.print("Enable: ");
Serial.println(motor[i].enable());
motor[i].pp_SetMotionProfileType(0); // Linear ramp (trapezoidal profile)
motor[i].pp_SetVelocity(1000000);
motor[i].pp_SetAcceleration(1000000);
motor[i].pp_SetDeceleration(1000000);
}
}
void loop() {
for (int i = 0; i < 2; i++) {
Serial.print("Motor"); Serial.print(i); Serial.print(": ");
Serial.println(motor[i].getPositionActualValue());
switch (pp_state[i]) {
case 0:
if (motor[i].pp_Run(10000000) == 0)
pp_state[i]++;
break;
case 1:
if (motor[i].pp_IsTargetReached())
pp_state[i]++;
break;
case 2:
if (motor[i].pp_Run(-10000000) == 0)
pp_state[i]++;
break;
case 3:
if (motor[i].pp_IsTargetReached())
pp_state[i] = 0;
break;
}
}
}After uploading, open the Serial Monitor in the 86Duino IDE (match the baud rate). On a successful EtherCAT configuration each status prints 0 が表示され、ドライバは Enable: 0を返し、続いて各モータの現在位置がリアルタイムで表示されます。
2.2 サイクリック同期位置(CSP)モード
以下のプログラムは、Delta ASDA-A2 と ASDA-B3 を CiA 402 CSP モードに設定します。モーションは 1 ms の周期コールバック(myCallback)内で生成されます。コールバックは各ドライバの実際位置を読み取り、ドライバが CIA402_SWITCHED_ONの間は位置を保持し、 CIA402_OPERATION_ENABLED に入ると 1 周期あたり 1000 counts ずつ目標位置を進めて、滑らかで同期したモーションを実現します。メインの loop() は現在位置を表示するだけです。
#include "Ethercat.h"
#define CYCTIME 1000000
EthercatMaster master;
EthercatDevice_CiA402 ASDA_A2;
EthercatDevice_CiA402 ASDA_B3;
int A2_pos = 0;
int B3_pos = 0;
void myCallback() {
// Check the state of the first drive (ASDA_A2) and update its position
A2_pos = ASDA_A2.driveGetPositionActualValue();
int stateA2 = ASDA_A2.driveGetState();
if (stateA2 == CIA402_SWITCHED_ON) {
ASDA_A2.driveSetTargetPosition(ASDA_A2.driveGetPositionActualValue());
} else if (stateA2 == CIA402_OPERATION_ENABLED) {
ASDA_A2.driveSetTargetPosition(ASDA_A2.driveGetTargetPosition() + 1000);
}
// Check the state of the second drive (ASDA_B3) and update its position
B3_pos = ASDA_B3.driveGetPositionActualValue();
int stateB3 = ASDA_B3.driveGetState();
if (stateB3 == CIA402_SWITCHED_ON) {
ASDA_B3.driveSetTargetPosition(ASDA_B3.driveGetPositionActualValue());
} else if (stateB3 == CIA402_OPERATION_ENABLED) {
ASDA_B3.driveSetTargetPosition(ASDA_B3.driveGetTargetPosition() + 1000);
}
}
void setup() {
Serial.begin(115200);
while (!Serial);
Serial.println(master.begin());
Serial.println(ASDA_A2.attach(0, master));
ASDA_A2.setDc(CYCTIME);
ASDA_A2.driveSetMode(CIA402_CSP_MODE);
Serial.println(ASDA_B3.attach(1, master));
ASDA_B3.setDc(CYCTIME);
ASDA_B3.driveSetMode(CIA402_CSP_MODE);
master.attachCyclicCallback(myCallback);
Serial.println(master.start(CYCTIME, ECAT_SYNC));
delay(100);
Serial.print("ASDA_A2 Enable: ");
Serial.print(ASDA_A2.driveEnable());
Serial.print(", ASDA_B3 Enable: ");
Serial.println(ASDA_B3.driveEnable());
delay(1000);
}
void loop() {
Serial.print("A2 Pos: ");
Serial.print(A2_pos);
Serial.print("B3 Pos: ");
Serial.println(B3_pos);
}EtherCAT 設定が成功すると、Serial Monitor に 4 つの 0 が表示され、 ASDA_A2 Enable: 0 および ASDA_B3 Enable: 0が表示された後、2 台のモータの現在位置がリアルタイムで出力されます。
3. 完全ガイド
さらに詳しく知りたい方のために、配線写真、パラメータチェックリスト、PDO マッピング、グラフィカルツールのワークフローを含む完全なステップバイステップガイドを以下に用意しています:
CSP モード:
PPモード:
- Delta ASDA-B3/A2 (PP mode) – Coding
- Delta ASDA-B3/A2 (PP mode) – Coding with 86EVA
- Delta ASDA-B3/A2 (PP mode) – Coding with 86EVA and ArduBlock
私たちは、より賢く、より速いマシン統合のために、堅牢で革新的な EtherCAT 自動化プラットフォームを提供し続けます。詳細情報やサンプルのご請求は、 info@icop.com.tw最寄りの ICOP Branch、または当社までお問い合わせください 世界各国の正規代理店.