我想找...

搜尋

分享

目錄

EthercatDevice_DmpStepper.machineActualPosition()

[EthercatDevice_DmpStepper_Generic]

描述

Get the current position of the specified machine axis on the EtherCAT slave device.

衍生類別:

Class NameVendor IDProduct Code
EthercatDevice_QECR11MP3S0x00000bc30x0086d0d6
EthercatDevice_QECR00MP3S0x00000bc30x0086d0d9

語法

double machineActualPosition(int machine_axis);

參數

  • [in] int machine_axis
    The specified machine axis number on the EtherCAT slave device:
定義描述
ECAT_MACHINE_X_AXIS0X-axis, which mapping is determined by the configMachineAxisMapping().
ECAT_MACHINE_Y_AXIS1Y-axis, which mapping is determined by the configMachineAxisMapping().
ECAT_MACHINE_Z_AXIS2Z-axis, which mapping is determined by the configMachineAxisMapping().

回傳值

Return the current position of the specified machine axis in millimeters.

備註

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().

範例

#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 類別 for more QEC Stepper Drivers instructions and API usage.

返回頂端