[EthercatDevice_DmpStepper_Generic]
Description
Get the current position of the specified machine axis on the EtherCAT slave device.
Derived Class:
| Class Name | Vendor ID | Product Code |
| EthercatDevice_QECR11MP3S | 0x00000bc3 | 0x0086d0d6 |
| EthercatDevice_QECR00MP3S | 0x00000bc3 | 0x0086d0d9 |
Syntax
double machineActualPosition(int machine_axis);
Parameters
[in] int machine_axis
The specified machine axis number on the EtherCAT slave device:
| Definition | Value | Description |
| ECAT_MACHINE_X_AXIS | 0 | X-axis, which mapping is determined by the configMachineAxisMapping(). |
| ECAT_MACHINE_Y_AXIS | 1 | Y-axis, which mapping is determined by the configMachineAxisMapping(). |
| ECAT_MACHINE_Z_AXIS | 2 | Z-axis, which mapping is determined by the configMachineAxisMapping(). |
Return Value
Return the current position of the specified machine axis in millimeters.
Comment
This function must be called after a successful execution of EthercatMaster::start() and before EthercatMaster::stop(). This function is blocking and cannot be called within the callback functions.
This function only works in G-code Controller mode on the EtherCAT slave device. For more details, please refer to configDeviceMode().
Example
#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.