[EthercatDevice_DmpStepper_Generic]
説明
EtherCATスレーブデバイス上の指定されたエンコーダのエンコーダモードを設定します。この変数は EtherCATスレーブデバイスのEEPROMに書き込まれ、起動時に読み込まれるため、ユーザーはプログラムを実行する前に毎回この変数を設定する必要はありません。
このEtherCATスレーブデバイスは、次の合計6つのエンコーダモードをサポートしています:
- パルス/DIR (1 - パルス・モード)

- CW/CCW(2 モード)
このモードは 2 パルス・モードとも呼ばれます。エンコーダからの信号を受け入れるための2つの入力ピンとして CW 入力と CCW 入力があります。 CW 入力からのパルスは、エンコーダカウンタによって順方向にカウントされたパルス数を表し、 CCW 入力からのパルスは、エンコーダカウンタによって逆方向にカウントされたパルス数を表します。このモードでは、カウンタは CW 入力と CCW 入力の立ち上がりエッジと立ち下がりエッジの両方をカウントすることです。

- パルスA/B(QEI モード)
このモードは QEI (直交エンコーダインターフェイス) パルス・モードとも呼ばれます。エンコーダからの信号を受け入れるための2つの入力ピンとして パルスA 入力と パルスB があります。パルス パルスA 入力と パルスB 入力には固有の関係があります。 パルスA が パルスBより進んでいる場合、カウント方向は順方向と見なされます。 パルスA lags パルスBより遅れている場合、カウント方向は逆方向と見なされます。このモードでは、カウンタは パルスA 入力の立ち上がりエッジと立ち下がりエッジの両方でカウントすることです。

- パルス/DIR x2
このモードは Pulse/DIR モードに似ていますが、唯一の違いは、このモードのカウンタが Pulse 入力の立ち上がりエッジと立ち下がりエッジの両方でカウントすることです。

- CW/CCW x2
このモードは CW/CCW モードに似ていますが、唯一の違いは、このモードのカウンタが CW 入力と CCW 入力の立ち上がりエッジと立ち下がりエッジの両方をカウントすることです。

- Pulse A/B x2
このモードは パルス モードに似ていますが、唯一の違いは、このモードのカウンタが パルスA 入力と パルスB 入力の立ち上がりエッジと立ち下がりエッジの両方をカウントすることです。

派生クラス:
クラス名 | 製造者ID | 製品コード |
EthercatDevice_QECR11MP3S | 0x00000bc3 | 0x0086d0d6 |
EthercatDevice_QECR00MP3S | 0x00000bc3 | 0x0086d0d9 |
構文
int configEncoderMode(int encoder, uint8_t mode);
媒介変数
[in] int encoder
指定されたエンコーダ番号:
定義 | Value | 説明 |
ECAT_ENCODER_1 | 0x01 | EtherCATスレーブデバイス上のエンコーダ1 |
ECAT_ENCODER_2 | 0x02 | EtherCATスレーブデバイス上のエンコーダ2 |
ECAT_ENCODER_3 | 0x03 | EtherCATスレーブデバイス上のエンコーダ3 |
ECAT_ENCODER_X | 0x11 | エンコーダXで、マッピングは configMachineAxisMapping() によって決定されます。 |
ECAT_ENCODER_Y | 0x12 | エンコーダZで、マッピングはconfigMachineAxisMapping() によって決定されます。 |
ECAT_ENCODER_Z | 0x13 | エンコーダZで、マッピングは configMachineAxisMapping() によって決定されます。 |
[in] uint8_t mode
設定するエンコーダモード。ユーザーは、以下の表に示すように、6つのエンコーダモードから選択できます。表に記載されていない入力値の場合、デフォルトの設定は ECAT_ENCODER_MODE_AB_PHASE_x2 になります:
定義 | Value | 説明 |
ECAT_ENCODER_MODE_STEP_DIR | 0 | Please see Pulse/DIR mode. |
ECAT_ENCODER_MODE_CWCCW | 1 | Please see CW/CCW mode. |
ECAT_ENCODER_MODE_AB_PHASE | 2 | Please see Pulse A/B mode. |
ECAT_ENCODER_MODE_STEP_DIR_x2 | 5 | Please see Pulse/DIR x2 mode. |
ECAT_ENCODER_MODE_CWCCW_x2 | 6 | Please see CW/CCW x2 mode. |
ECAT_ENCODER_MODE_AB_PHASE_x2 | 7 | Please see Pulse A/B x2 mode. |
戻り値
error codeを返します。返された値が 0の場合、この関数が正常に完了したことを示します。
備考
この関数は、 EthercatMaster::begin()
が正常に実行された後に呼び出す必要があります。 この関数はブロッキングされており、コールバック関数内で呼び出すことはできません。
例
#include "Ethercat.h" EthercatMaster master; EthercatDevice_QECR11MP3S slave; void setup() { master.begin(); slave.attach(0, master); slave.configEncoderMode(ECAT_ENCODER_1, ECAT_ENCODER_MODE_AB_PHASE_x2); slave.configEncoderMode(ECAT_ENCODER_2, ECAT_ENCODER_MODE_AB_PHASE_x2); slave.configEncoderMode(ECAT_ENCODER_3, ECAT_ENCODER_MODE_AB_PHASE_x2); // ... } void loop() { // ... }
Please see EthercatDevice_DmpStepper_Generic Class for more QEC Stepper Drivers instructions and API usage.