[EthercatDevice_DmpStepper_Generic]
説明
EtherCATスレーブデバイス上の指定された機械軸の現在の位置を取得します。
派生クラス:
| クラス名 | 製造者ID | 製品コード |
| EthercatDevice_QECR11MP3S | 0x00000bc3 | 0x0086d0d6 |
| EthercatDevice_QECR00MP3S | 0x00000bc3 | 0x0086d0d9 |
構文
double machineActualPosition(int machine_axis);
媒介変数
[in] int machine_axis
EtherCATスレーブデバイス上の指定された機械軸の番号:
| 定義 | Value | 説明 |
| ECAT_MACHINE_X_AXIS | 0 | X軸で、マッピングはconfigMachineAxisMapping()によって決定されます。 |
| ECAT_MACHINE_Y_AXIS | 1 | Y軸で、マッピングはconfigMachineAxisMapping()によって決定されます。 |
| ECAT_MACHINE_Z_AXIS | 2 | Z軸で、マッピングは configMachineAxisMapping()によって決定されます。 |
戻り値
指定された機械軸の現在の位置をミリメートル単位で返します。
備考
この関数は、 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);
}
void loop() {
if (slave.machineIsMoving() == 0) {
slave.machineGcode("G1 X0 Y0 Z0");
slave.machineGcode("G1 X100 Y50 Z25");
delay(10);
}
printf("Acutal Position => ");
printf("X:%.2f, ", slave.machineActualPosition(ECAT_MACHINE_X_AXIS));
printf("Y:%.2f, ", slave.machineActualPosition(ECAT_MACHINE_Y_AXIS));
printf("Z:%.2f\n", slave.machineActualPosition(ECAT_MACHINE_Z_AXIS));
delay(10);
// ...
}Please see EthercatDevice_DmpStepper_Generic Class for more QEC Stepper Drivers instructions and API usage.