サイト内検索

検索

Shares

Table of Content

EthercatDevice_DmpStepper.machineGcode()

[EthercatDevice_DmpStepper_Generic]

説明

EtherCATスレーブデバイスにGコード・コマンドを送信します

この関数は非ブロッキング関数であり、ステート・マシンを実行するには update() 関数を継続的に呼び出す必要があるため、完了するまでに時間がかかる場合があります。そのため、 machineIsMoving().

派生クラス:

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

構文

int machineGcode(const char *fmt, ...);

媒介変数

  • [in] const char *fmt
    EtherCATスレーブデバイスに送信されるGコード・コマンドの文字列。これは、出力のフォーマット指定を含む NULLで終了する文字列へのポインタです。フォーマット文字列は Cのprintf 関数と同じ形式に従い、変数や書式設定オプションを挿入できます。
  • [in] ...
    これは、fmt文字列の書式指定子に従ってフォーマットされた文字列に挿入される可変個引数です。

戻り値

error codeを返します。返された値が 0の場合、この関数が正常に完了したことを示します。

備考

この関数は、 EthercatMaster::start() が正常に実行された後で、 EthercatMaster::stop()が正常に実行された後に呼び出す必要があります。 この関数はブロッキングされており、コールバック関数内で呼び出すことはできません。

この関数はEtherCATスレーブデバイスのGコード・コントローラ・モードでのみ動作します。詳細については、 configDeviceMode()を参照ください。

この機能は、次の場合には動作しません:

  • マシンが緊急停止している。
  • マシンがサーボ・オフになっている。
  • マシンが原点復帰している。

#include "Ethercat.h"

EthercatMaster master;
EthercatDevice_QECR11MP3S slave;

void CyclicCallback() {
  slave.update();
}

void setup() {
  master.begin();
  slave.attach(0, master);
  master.attachCyclicCallback(CyclicCallback);
  master.start();

  slave.machineServoOn();
  while (slave.machineIsServoOn() == 0);

  while (1) {
    slave.machineGcode("G1 X100 Y50 Z25");
    delay(1000);
    slave.machineGcode("G1 X0 Y0 Z0");
    delay(1000);
    // ...
  }

  slave.machineServoOff();
  while (slave.machineIsServoOn() == 1);
}

void loop() {
  // ...
}

Please see EthercatDevice_DmpStepper_Generic Class for more QEC Stepper Drivers instructions and API usage.

上部へスクロール