Description
Switch the CiA 402 state.
Relevant Objects
- Object 6040h: Controlword
- Object 6041h: Statusword
Syntax
int setCiA402State(int state, uint32_t timeout_ms = 1000);
Parameters
[in] mode
The CiA 402 state to be switched:
| Definition | Code | State |
| CIA402_SWITCH_ON_DISABLED | 1 | Switch on disabled. |
| CIA402_READY_TO_SWITCH_ON | 2 | Ready to switch on. |
| CIA402_SWITCHED_ON | 3 | Switched on. |
| CIA402_OPERATION_ENABLED | 4 | Operation enabled. |
| CIA402_QUICK_STOP_ACTIVE | 7 | Quick stop active. |
[in] timeout_ms
Timeout in milliseconds.
Return Value
Return an error code. If the returned value is zero, it indicates a successful execution of this function.
Comment
This function must be called after a successful execution of EthercatMaster::start(). This function is blocking and will wait for the actual value to match the set value until a timeout occurs. When used in a callback function, it becomes non-blocking and will ignore the timeout parameter, not waiting for the actual value to match the set value.
Example Code
#include "Ethercat.h"
EthercatMaster master;
EthercatDevice_CiA402 motor;
void setup()
{ master.begin();
motor.attach(0, master);
master.start();
motor.setCiA402State(CIA402_OPERATION_ENABLED);
delay(4000);
motor.setCiA402State(CIA402_SWITCH_ON_DISABLED);
}
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.