[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.