[EthercatDevice_DmpStepper_Generic]
説明
EtherCATスレーブデバイスにGコード・コマンドを送信します
この関数は非ブロッキング関数であり、ステート・マシンを実行するには update()
関数を継続的に呼び出す必要があるため、完了するまでに時間がかかる場合があります。そのため、 machineIsMoving()
.
派生クラス:
クラス名 | 製造者ID | 製品コード |
EthercatDevice_QECR11MP3S | 0x00000bc3 | 0x0086d0d6 |
EthercatDevice_QECR00MP3S | 0x00000bc3 | 0x0086d0d9 |
構文
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.