サイト内検索

検索

Shares

Table of Content

EthercatDevice_DmpStepper.configEncoderMode()

[EthercatDevice_DmpStepper_Generic]

説明

EtherCATスレーブデバイス上の指定されたエンコーダのエンコーダモードを設定します。この変数は EtherCATスレーブデバイスのEEPROMに書き込まれ、起動時に読み込まれるため、ユーザーはプログラムを実行する前に毎回この変数を設定する必要はありません。

このEtherCATスレーブデバイスは、次の合計6つのエンコーダモードをサポートしています:

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

派生クラス:

クラス名製造者ID製品コード
EthercatDevice_QECR11MP3S0x00000bc30x0086d0d6
EthercatDevice_QECR00MP3S0x00000bc30x0086d0d9

構文

int configEncoderMode(int encoder, uint8_t mode);

媒介変数

  • [in] int encoder
    指定されたエンコーダ番号:
定義Value説明
ECAT_ENCODER_10x01EtherCATスレーブデバイス上のエンコーダ1
ECAT_ENCODER_20x02EtherCATスレーブデバイス上のエンコーダ2
ECAT_ENCODER_30x03EtherCATスレーブデバイス上のエンコーダ3
ECAT_ENCODER_X0x11エンコーダXで、マッピングは configMachineAxisMapping()によって決定されます。
ECAT_ENCODER_Y0x12エンコーダZで、マッピングはconfigMachineAxisMapping()によって決定されます。
ECAT_ENCODER_Z0x13エンコーダZで、マッピングは configMachineAxisMapping()によって決定されます。
  • [in] uint8_t mode
    設定するエンコーダモード。ユーザーは、以下の表に示すように、6つのエンコーダモードから選択できます。表に記載されていない入力値の場合、デフォルトの設定は ECAT_ENCODER_MODE_AB_PHASE_x2 になります:
定義Value説明
ECAT_ENCODER_MODE_STEP_DIR0Please see Pulse/DIR mode.
ECAT_ENCODER_MODE_CWCCW1Please see CW/CCW mode.
ECAT_ENCODER_MODE_AB_PHASE2Please see Pulse A/B mode.
ECAT_ENCODER_MODE_STEP_DIR_x25Please see Pulse/DIR x2 mode.
ECAT_ENCODER_MODE_CWCCW_x26Please see CW/CCW x2 mode.
ECAT_ENCODER_MODE_AB_PHASE_x27Please 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.

上部へスクロール