1. 概要
86EVA (EVA、 EtherCATベース・仮想 Arduino) は、86Duino IDE のECAT ライブラリを利用する グラフィカルな EtherCAT コンフィグレーション ツールです。

86Duino 開発 キットの1つ は、下記の機能を備えたQEC マスタです:
- 自動的に 生成された Arduino 言語 (EtherCATベース仮想 Arduinoを介して)
- ネットワーク接続されたデバイスを自動的に精査
- EtherCAT マスタ/プライマ 設定:
- マスタ・オブジェクト名の設定
- サイクル・タイムの設定
- 冗長性 オプションの設定
- オプションのENI ファイル選択
- EtherCAT スレーブ/セカンダリ設定:
- セカンダリ・オブジェクト名の設定
- スレーブのエイリアス設定
- スレーブ I/O マッピング の設定
- セカンダリ・デバイス 情報の表示
- 下記の内部情報の紹介:
- 電圧値
- 電流値
- 温度
86Duino IDE ECAT ライブラリは 独自のEtherCATマスタ・デバイスと通信するリアル・タイム・オペレーティング・ システム (RTOS) ライブラリを備えたArduino 開発 環境 です。
これは、リアルタイムで EtherCAT スレーブ・ デバイスと通信することができるEtherCAT マスタ・コミュニケーション・レイヤ・ソリューションです。86Duino IDEは、プログラム作成のための豊富なArduinoアプリケーション開発データとインターフェイス (API)を提供します。
2. 手順
86EVA は、ユーザーが 簡単なキーボード操作と視覚的な表現を用いて、複数のEtherCAT ネットワーク ・バスのグループを開発することができます。
86EVAを開く → 接続されているCOMポートを選択 → EtherCATネットワークをスキャンしてデバイスを検索 → EtherCAT デバイス、個々の設定 → Arduino プログラム・スタイル・コードの生成 → 生成されたコードのアップロード
2.1 86EVAをオンする
方法 1. 86EVA コンフィギュレータを開く最初の方法は、下記の図に示すように、アプリケーションの上隅にあるショートカット・アイコンをクリックしてください。

方法 2. 2番目の方法 は 、ツール ➡ 86EVA (EtherCAT) コンフィギュレータをクリックします。 正しいデバイスが選択されていることを確認してください ➡ Board:「QEC-M070T」(または 他のデバイス)。

2.2 COM ポート選択
86EVA が起動し、接続すると、デフォルトで COM ポートが 選択されます。この例では、システムはCOM5を使用しています。別のデバイスが接続されている場合は、ドロップダウン・メニューからそのデバイスを選択してください。
複数の QEC マスター ステーションを接続している場合は、「選択」の横にあるドロップダウン メニュー (赤で強調表示) をクリックし、現在の QEC マスター ステーションで使用されている COM ポートを選択する必要があります。

COM ポートを使用して初めてアップロードする場合、どの COM ポートがQECマスタによって使われているかわからない場合、下記に示されるオペレーション設定を参照してください: https://www.qec.tw/ethercat/qec-tutorial/set-up-the-qec-m-043t-for-86duino/
2.3 EtherCAT ネットワークをスキャンする
正しい COM ポートの場所を選択した後、「接続」ボタンをクリックします。 「接続」ボタンをクリックすると、接続中の画面が表示されます。

「接続」ボタンをクリックすると、スキャン画面が表示されます。

スキャンが完了すると、QEC マスタ・ デバイスと、現在、 EtherCAT ネットワークにマウントされているすべての EtherCAT スレーブ・ デバイスが表示されます。

注: 86EVA では、スキャンにより DMP QEC シリーズの EtherCAT スレーブ ・デバイスが自動的に識別され、そのイメージと関連した設定を表示します。ユーザーが他社の EtherCAT デバイスに接続すると、不明なモジュールが表示されます。
2.4 EtherCAT デバイスのカスタム化
ユーザーは、製品画像をクリックして、EtherCAT デバイスの設定ページに入ることができます。
EtherCAT マスタ

QECマスタ画像をクリックすると、このページにて EtherCAT マスタ・オブジェクト名 (オブジェクト名) の設定、EtherCAT マスタ・サイクル・タイムの設定、冗長性オプションの設定、オプションの ENIファイル機能 (下記の画像では例として QEC‑M-01を示す) などのカスタム設定を行うことができます。詳細は、3.1 章をご参照ください。
下記の例ではQEC-M-01を使用しています。

更に詳しい情報は3.1章を参照下さい。
EtherCAT スレーブ
EtherCATスレーブ・デバイスの設定では、接続されたEtherCATスレーブ・デバイスの情報(製造者ID(ベンダーID)、製品識別番号(製品コード)、内部電圧、電流値、温度など)を確認できます。 以下も設定できます: オブジェクト名、エイリアス・アドレス、I/O マッピング
QEC EtherCATスレーブ
QECシリーズのEtherCATスレーブ・デバイスは、完全な製品画像があり、ユーザーは、QEC EtherCATスレーブ・デバイスの画像をクリックしてQEC スレーブに入ることができます。
モジュールのコンフィギュレーション・ページ:

コンフィギュレーション・ページに入ると、ユーザーはまず、ベンダー ID や製品コード、アドレス指定可能なオブジェクト名、エイリアス・アドレスなどの EtherCATスレーブ・デバイスの情報を確認できます (エイリアス・アドレスの詳細については、付録1を参照)。

さらに、スレーブからは電圧値、電流値、温度などのリアルタイム情報が得られます (二酸化炭素排出量の追跡に役立ちます)。

最後に、コンフィギュレーション可能な仮想 Arduinoピン・マッピングがあります (仮想Arduinoの概念の概要については、付録 2 を参照してください)。

QEC スレーブの詳細な設定については、3.2.1 章 QEC スレーブを参照してください。
QEC EtherCATスレーブ以外のスレーブ・ユニット
86EVAがQEC EtherCATスレーブ以外のスレーブ・デバイスをスキャンすると、次のアイコンが表示されます。 注: サポートされていない不明なデバイス

不明なEtherCAT スレーブの画像をクリックすると、デバイスに関する詳細情報を取得できます。

詳細は3.2.2章を参照ください。
2.5 Arduinoコードの生成
すべてのコンフィギュレーション設定を行ったら、「Code Generation(コード生成)」ボタンをクリックします。

クリックすると、設定の完了画面が表示されます。「OK」をクリックしてプログラムを終了します。 「OK」をクリックしないと、10 秒後にプログラムが終了します。

完了後、86EVA は、コンフィギュレーション・ファイルと Arduinoコードを自動的に生成し、86Duino IDE.cpp Myeva および Myeva.h (赤いボックス) に 2つのプログラム・ファイルを生成します。これにより、ユーザーは、自分のプログラムにアクセスして独自のプログラムを追加できるようになります。

2.6 コードをアップロードする
生成されたコンフィギュレーション・ファイルとユーザー・プログラムは、[Upload(アップロード)] ボタンをクリックすることで QEC デバイスに関連付けられることに注意してください。
アップロード・ボタンを押してコンフィギュレーション設定を完了する前に、「board(ボード)」と「Serial Port(シリアル・ポート)」が正しいことを必ず確認してください。正しくない場合、86EVA で行なったコンフィギュレーション設定は無効な設定とみなされます。

「アップロード」ボタン(赤枠)をクリックしてコードをアップロードします。

アップロードを完了します。

アップロードが完了したら、ユーザーは 86EVA アプリケーションを再度開いてスレーブ・デバイスをスキャンし、デバイスが以前の構成したように実行されているかどうかを確認できます。
EtherCATデバイスのより詳細なグラフィカル開発プロセス
86Duino IDE は、開発者に完全なローコード開発プラットフォームを提供し、ユーザーは、86EVAを介してEtherCATネットワーク・パラメータを設定できます。
ビルトイン HMIエディタ (86HMI) は、ビルディング・ブロック・プログラミング・ツール ArduBlock と組み合わせて、少ないプログラミング作業で迅速にEtherCAT システムを開発できるHMI 開発ソフトウェアです。

詳細な設定については、他のツールのユーザーマニュアルを参照してください。
3. EtherCAT デバイスのコンフィギュレーション
設定作業における、EtherCATデバイスのカスタム化について説明します。 EtherCAT デバイスは、QEC マスタと EtherCATスレーブに分けることができます。
3.1 QECマスタの設定
86Duino IDE の開発環境は、QEC‑M‑01、QEC‑M‑043T、QEC‑M‑070T、QEC‑M‑090T、および QEC‑M150T を含む QEC マスタ・ ファミリでのみ利用できます。 86EVAを接続してスキャンした後、ユーザーは、グラフィック画面の製品画面を通じて EtherCAT マスタのデバイス・オブジェクト情報と製品画像を表示できます。
- QEC-M-01:

- QEC-M-043T:

共通設定(全般)
EtherCAT マスタのオブジェクト名 (Object Name)、BIOS設定 (Apply BIOS Settings)、冗長性 (Enable Redundancy)、サイクル・タイム(Cuble Time)、オプションの ENIファイル機能 (Select ENI file)を設定することができます。
オブジェクト名
EtherCATマスタのオブジェクト名(赤枠表示)を設定します。設定後、このコンフィギュレーションは、Arduino コードが実装されるときにコードのオブジェクト名に適用されます。

BIOS 設定を適用する
EtherCAT マスタのBIOSから事前構成された設定 (赤枠表示) を優先するかどうかを選択します。

注: この設定が選択されている場合、QEC マスタ・デバイスは BIOSのプリセット設定を優先的に採用します。
冗長性オプションの設定(Enable Redundancy)
EtherCATマスタが冗長性を使用するかどうかを選択します(赤枠)。

EtherCATマスタ・サイクル・タイムの設定
EtherCAT マスタ・サイクル・タイムを 125us、250us、500us、1ms、2ms、4ms のいづれかのサイクル・タイムで設定します(赤枠表示)。
このファンクション・メニューを使用して EtherCATマスタのサイクル・タイムを設定する場合は、[Apply BIOS Settings] を選択しないでください。その場合、BIOSのプリセットが代わりに使用されます。

オプションのENIファイル機能 (Select ENI File)
ユーザーは、この機能を通じて既存の ENIファイル (赤枠表示) を選択することができ、選択したENIファイルは自動的にアップロードされ、プログラムのアップロード時にプログラム内に適用されます。

仮想Arduino:
仮想Arduinoの最大デジタル・ピン (Max Digital Pins)、最大ポート数(Max Serial Ports)、MPG数 (Max MPG)を設定できます。
注: リストにない変数のデフォルト値は 4 です。
最大デジタル・ピン数
ドロップダウン・メニューで、最大デジタル・ピン数を仮想ピンのオプション数32、64、128、256のいづれかで設定します。

最大シリアル・ポート数
ドロップダウン・メニューで最大シリアル・ポート数を、仮想ポートのオプション値4、8、16、32のいづれかで設定します。

最大MPGポート数
ドロップダウン・メニューで 最大MPG ポート数を、仮想MPG のオプション数4、8、16、32のいづれかで設定します。

3.2 EtherCAT スレーブの情報と設定
EtherCATスレーブ・デバイスの上部には、接続されているEtherCATデバイスの製品名と順番が表示されます(赤枠表示)。

EtherCAT スレーブ・ユニットの下部には、エイリアス・アドレスと製品分類が示されています (赤枠表示) (QEC ブランドのデバイスではない場合は、製造業者名が表示されます)。

3.2.1 QEC EtherCATスレーブ
左下隅の [View] ボタン(赤枠表示)をクリックすると、⻩色枠に示されるように、電圧値、電流値、温度を含むリアルタイム監視データが表示されます。
もう一度 [View] ボタンをクリックして、エイリアス・アドレスの概要に戻ります。

QEC‑RXXDシリーズ(EtherCATスレーブ・デジタルI/Oモジュール)
QEC‑RXXDシリーズは、合計 16 デジタル・チャネルを備えた EtherCAT スレーブ・デジタル I/O モジュールで、すべてのチャネルをデジタル入力およびデジタル出力機能に割り当てることができます。
QEC スレーブ・デバイス画像をクリックすると、製品名が表示されます。
以下、QEC‑R00DC4D‑Nを例に製品機能を説明します。

共通設定:
QECスレーブのオブジェクト名とエイリアス・アドレスを設定したり、QECスレーブのベンダーIDと製品(製品コード) を参照したりできます。
- オブジェクト名
EtherCATスレーブ・デバイスのオブジェクト名を設定します(赤枠内)。 設定後、このコンフィギュレーション設定は、Arduinoコードが実装されるときにコードのオブジェクト名に適用されます。

- エイリアス・アドレス
エイリアス・アドレスは EEPROMに保存され、コンフィギュレーション設定されたステーションのエイリアス・アドレスによって変更されます。
QECスレーブのエイリアス・アドレスを設定します(赤枠)。

エイリアス・アドレスを設定すると、プログラムはこの番号でQECスレーブを自動的に識別します。システム要件により、ユーザーのQEC スレーブ・デバイスがEtherCATネットワーク内で変更された場合、プログラムは自動的に適応するため、新しいコンフィギュレーションの設定をする必要はありません。エイリアス・アドレスが設定されていない場合、プログラムは新しい構成に自動的に適応しません。デフォルトのスレーブ・エイリアス・アドレスは0です。1~65535の数値を設定してください。
注: 新しいコンフィギュレーション設定に適応することは、スレーブの位置の変更を指します (スレーブ・デバイスの総数の増減はありません)。デバイスを追加または削除した場合は、プログラムを再構成する必要があります。
スレーブ・デバイスの 86EVA スキャンが成功すると、スレーブによって以前に設定されたエイリアス・アドレスが自動的に読み取られ、このフィールドに表示されます。値の入力処理がキャンセルまたは中断された場合、このフィールドは前の値に戻ります。
「Set」ボタンを押すと、エイリアス・アドレスが EtherCATスレーブのEEPROM に書き込まれます。 86EVA を閉じた後、必ず EtherCATデバイスを再起動してください。デバイスは再起動時に新しいエイリアス・アドレスを採用します。
- ベンダ ID
QECスレーブ・デバイスの製造業者ID

- 製品コード
QEC スレーブデバイスの製品識別番号 (赤枠表示内)

デバイス・ステータス
デバイスのステータスでは、電圧値、電流値、温度のリアルタイムの内部監視データを表示できます(赤枠表示)。

仮想Arduino
仮想Arduinoでは、デジタル入出力ピン数を設定できます。
QEC‑R00DC4D‑N を例にとると、デジタル入力ピンが 12 個、デジタル出力ピンが 4 個あります。
ユーザーは、仮想ピン番号を選択します。最大数は、マスタ設定ページの最大デジタル ピン数(Max Digital Pins)を超えてはなりません。
- デジタル入力ピンのマッピング

- デジタル出力ピンのマッピング

- デジタル入力 DQ11 ピンとデジタル出力 DQ00 ピンの設定

Virtual Arduino の詳細については、付録 2 を参照してください。
QEC‑RXXHU (EtherCAT スレーブ・ゲートウェイ・コントローラ (UART + MPG + キーパッド + LCM)
QEC‑RXXHU シリーズは、最大 2 UART (RS232/RS485)ポート、1 MPGハンドホイール、1 キーパッドおよび LCM ディスプレイをサポートするEtherCAT スレーブ・モジュールです。
- QEC‑R00HU5S‑N (RS232 + MPG + キーパッド + LCM)
- QEC‑R00HU9S‑N (RS232/485 + MPG + キーパッド + LCM)
QEC スレーブ・デバイスをクリックすると、製品名が表示されます。以下、QEC‑R00HU9S‑Nを例として機能の説明をします。

共通設定:
TQEC‑RXXDシリーズと同じです。QEC‑RXXDの共通設定を参照してください。
デバイス・ステータス
QEC‑RXXDシリーズのデバイス・ステータスと同様の情報については、QEC‑RXXDシリーズのデバイス設定を参照してください。
仮想Arduino
仮想Arduinoでは、シリアル・ポート数、MPGポート、LCMマッピング、キーパッド・マッピング、ブザー・ピンを設定できます。
QEC‑R00HU9S‑N を例にとると、シリアルポートは合計 2グループに設定でき、残りは 1グループになります。
ユーザーは仮想ピン番号を選択しますが、その最大数はマスタ設定ページの最大数 (Max Serial Posts 及び Max MPG Ports) を超えられません。
- シリアル・ポート・マッピングでは何も設定されていません(赤枠表示):

選択した後:

- MPG ポート マッピングは、何も選択されていません(赤枠表示):

選択した後:

- LCM マッピング(赤枠表示)とキーパッド・マッピング (⻩色枠表示)は、選択されていません:

選択した後:

- ブザーのマッピング(赤枠表示)は,何も選択されていません:

選択した後:

Virtual Arduino の詳細については、付録 2 を参照してください。
3.2.2 QEC EtherCAT スレーブ以外のスレーブ
86EVA に接続されている、他のEtherCATスレーブ・ユニットには、不明なQECスレーブ製品画像が表示されます。設定ページでは「未対応」(赤枠)と表示されます。

設定ページに移動すると、「サポートされていません」(以下赤枠)が表示されます。

共通設定:
TQEC‑RXXDシリーズと同じです。QEC‑RXXDの共通設定を参照してください。
4. 詳細設定
86EVAでは、共通設定に加えて、いくつかの詳細な設定をこのツールで行うことができます。本章では、詳細設定を調整する方法を紹介します。
4.1 エイリアス・アドレス(自動設定)
左下隅にある"Auto"設定ボタンをクリックします(赤枠表示)。 (highlighted in red).

"Auto Set Alias Address of All Slave Devices(すべてのスレーブ・デバイスのエイリアス・アドレスを自動設定)"ボタンと "Auto Set Digital Pin Mapping of the Virtual Arduino(仮想Arduinoのデジタル・ピン・マッピングを自動設定)"ボタンが表示されます。 ユーザーは上側のボタン (赤枠表示) をクリックすることで、現在の EtherCATネットワークにエイリアス・アドレスを自動的に設定できます。

EtherCATデバイスに先にエイリアス・アドレスが割り当てられていなかった場合(エイリアス・アドレスが 0)、 [Auto Set Alias Address of All Slave Devices] ボタンをクリックした後、各EtherCAT スレーブ・デバイスに 100 から始まるエイリアス・アドレスがソート順に設定されます。これは、スレーブ・デバイスが多い場合や迅速なセットアップが必要なEtherCATで使用できます。

4.2 デジタル・ピンの仮想Arduino
左下隅の「Auto」設定ボタン(赤枠表示)をクリックします。
注: 仮想 Arduino デジタル・ピンは QEC‑RXXDシリーズ製品でのみ利用可能です

「Auto Set Alias Address of All Slave Devices」ボタンと「Auto Set Digital Pin Mapping of the Virtual Arduino」ボタンが表示されます。ユーザーは下側のボタン (赤枠表示) をクリックして、現在の EtherCAT ネットワーク上に仮想ピン・マップを自動的に設定できます。

QEC‑RXXDデバイスで先に仮想ピンが設定されていない状態で使用される場合、「Auto Set Digital Pin Mapping of the Virtual Arduino」ボタンをクリックすると、0 から始まる仮想ピンが設定されます。

付録
A1. エイリアス・アドレス
エイリアス・アドレスは、EtherCATでデバイスのエイリアスを設定する方法であり、通常、すでに識別されているスレーブ・デバイスを検索するために使用されます。
スレーブ・エイリアス・アドレスを設定すると、ESI‑EEPROM (ESI、EtherCATスレーブ情報) に保存されます。エイリアス・アドレスはマスタによってアクティブ化される必要があり、また、EtherCATスレーブ・デバイスによって変更できます。
ノード・アドレスがエイリアス・アドレスと一致する場合、相当するノードに対する命令が実行されます。
QECではどのように機能しますか?
エイリアス・アドレスを設定すると、プログラムはこの番号でQEC スレーブを自動的に識別します。ユーザーのQEC スレーブが要求によりEtherCATネットワーク上の位置を変更すると、プログラムは自動的に適応しますので、新しいコンフィギュレーションを再度アップロードする必要はありません; エイリアス・アドレスが設定されていない場合は、プログラムは自動的には新しいグループに適応しません。
86EVAスキャンが実行されると、スレーブによって以前に設定されたエイリアス・アドレスが自動的に読み取られます。次の図は、エイリアス・アドレスが設定されていないスレーブ・デバイスを示しています。

次の図は、エイリアス・アドレスが設定されたスレーブ・デバイスを示しています。デフォルトのスレーブ・エイリアス・アドレスは、0です。1~65535の数値を設定してください。

エイリアス・アドレスは、スレーブ・デバイスの[General]の[Alias Address]欄に表示されます。このフィールドは、値の入力途中でキャンセルされた場合、以前の数値に変更されます。

「Set」ボタンを押すと、エイリアス・アドレスが EtherCATスレーブのEEPROM に書き込まれます。 86EVA を閉じた後、必ず EtherCATデバイスを再起動してください。デバイスは再起動時に新しいエイリアス・アドレスを採用します。
注意: デバイスは再起動時に新しいエイリアス アドレスを採用します
A2. 仮想Arduino
一般的なArduinoボードでは、ピンの数、順序、機能が固定されており、製造後に変更することはできません。仮想 Arduino のコンセプトは、仮想ArduinoとしてEtherCATネットワークをシミュレートし、そのピン番号、順序、機能をユーザーの希望に応じて調整できるようにすることです。

仮想 Arduinoは、複数のEtherCATスレーブのさまざまなピンで構成されており、仮想 Arduino上のさまざまなポートとピンは、異なるEtherCAT スレーブ・デバイスから来ており、EtherCATネットワークを通じて相互に接続されています。
仮想Arduinoでサポートされる機能
現在、仮想Arduinoは、デジタル I/O、シリアル・ポート、MPGポート、キーパッド、ブザーをサポートしています。これらは、次のQEC デバイスにあります:
- QEC‑RXXD シリーズ (EtherCAT スレーブ・デジタル I/O モジュール): デジタル I/O
- QEC‑RXXHU シリーズ (EtherCAT スレーブ・ゲートウェイ・コントローラ(UART + MPG + キーパッド + LCM)): シリアル ・ポート、MPG ポート、キーパッド、MPG、ブザー
詳しい設定については、各製品紹介をご参照ください。
86Duino IDEで仮想Arduinoを使用するには、どうすればよいですか?
本章では、86Duino IDEで正常に構成された仮想Arduino デジタル I/O ピンを使用する方法について説明します。
この例は、8入力接点と 8出力接点を持つ QEC‑R00D88D‑C (EtherCAT デジタル入出力モジュール)を備えた QEC‑M‑043T (EtherCAT マスタ) を使用して紹介します。

86EVA ツールを起動する方法については、第 2 章を参照してください。
まず、クリックして QEC‑R00D88D‑C デバイスに移動し、仮想Arduinoでセットアップします(QEC‑RXXDシリーズのEtherCATスレーブ関連)。

このデモでは、デジタル入力ピン・マッピングの DI00 と、デジタル出力ピン・マッピングの DQ00 をそれぞれ仮想ピン D0 と仮想ピン D1 に設定します。

セットアップ後、この 86EVA 設定の Arduino コードを生成し、「Code Generation」ボタン(赤枠表示) をクリックします。

完了後、ユーザーは 86Duino IDE のメイン・プログラム LOOP() 内の EVA クラス (Class) (赤枠表示) を使用して、86EVA に設定されたピンを制御できます。

この例では、QEC‑R00D88D‑C のDI0ピン(INPUT) と DQ0ピン(OUTPUT) に対応する、2つの仮想ピンである仮想デジタル D0 および D1 を使用します。次に、D0状態を読み、D1 を HIGH に設定します。そのコードを次の図に示します。

このコードが正常にアップロードされると、QEC‑R00D88D‑C のDQ0ピンのライトが点灯するのが確認できます。
注: loop() では、EVA.digitalRead(0)は、以前に設定されたデジタル入力ピン・マッピングの仮想ピン0を表し、EVA.digitalWrite(1, HIGH) は、以前に設定されたデジタル出力ピン・マッピングの仮想ピン1を表します。
他の例:
ユーザーは、シリアル・ポートを介してデジタル入力によって読み取られた値を印刷できます。そのコードは以下に示されています:
void setup() { Serial.begin(115200); EVA.begin(); } void loop { Serial.println(EVA.digitalRead(0)); EVA.digitalWrite(1, HIGH); }
ユーザーは、次のコードを使用して、Arduino クラシック エントリ例にデジタル出力を適用できます。
void setup() { EVA.begin(); } void loop { EVA.digitalWrite(0, HIGH); delay(1000); EVA.digitalWrite(0, LOW); delay(1000); }
86Duino のリファレンスのテキストは Arduino レファレンス を編集したもので、 Creative Commons Attribution-ShareAlike 3.0 License下でライセンスされています。リファレンス内のコードサンプルはパブリックドメインとして公開されています。