I want to find...

Search

Libraries

Table of Content

motor.hm_IsAttained()

[EtherCAT Device CiA402]

Description

Check the status of the homing operation in Homing mode (hm). This status represents bits 12 and 13 of the controlword object.

Relevant Objects

  • Object 6041h: Statusword

Syntax

int hm_IsAttained();

Parameters

None.

Return Value

Return the status of the homing operation. When the status value equals CIA402_HM_RUNNING, it indicates that the homing process is still in progress. The bit definitions of the status are shown in the table below.

BitNameValueDescription
0CIA402_HM_ATTAINED0Homing mode not yet completed.
1Homing mode carried out successfully.
1CIA402_HM_ERROR0No homing error.
1Homing error occurred.

Comment

This function must be called after a successful execution of EthercatMaster::start(). This function is non-blocking and can be called in callback functions.

Example Code

#include "Ethercat.h"

EthercatMaster master;
EthercatDevice_CiA402 motor;

void setup() {
  int status;
  
  Serial.begin(115200);
  while (!Serial);

  master.begin();
  motor.attach(0, master);
  motor.setCiA402Mode(CIA402_HOMING_MODE);
  master.start();

  motor.enable();

  motor.hm_SetHomingMethod(CIA402_HM33);
  motor.hm_SetHomeOffset(0);
  motor.hm_SetHomingSpeeds(100, 20);
  motor.hm_SetHomingAcceleration(100);
  motor.hm_Run();
  while ((status = motor.hm_IsAttained()) == CIA402_HM_RUNNING);

  if (status & CIA402_HM_ATTAINED)
    Serial.println("Homing mode carried out successfully.");
  if (status & CIA402_HM_ERROR)
    Serial.println("Homing error occurred.");
}

void loop() {
  // put your main code here, to run repeatedly:

}

Please see the EtherCAT CiA 402 User Manual for more QEC EtherCAT instructions and API usage.

Scroll to Top