Running v3.5.3.30 in our iX TxB SoftMotion terminals.
In order to execute a special function in our servo drives, we need to leave Operational mode and go to PreOperational mode. I do this the usual way (using a pointer to the slave):
pSlave^.SetOpMode(ETC_SLAVE_STATE.ETC_SLAVE_PREOPERATIONAL);
The slave wState goes to PreOp and the SoftMotion axis wCommunicationState becomes 1100 (ETC device is no longer in mode Operational). So far it seeems ok.
I carry out my special function by doing a couple of SDO parameter read/writes, when I'm done I go back to Operational state using a sequence where I command the drive to Init, then PreOp, then SafeOp, then Op and the drive wState becomes ETC_SLAVE_OPERATIONAL, so far so good.
But.... the SoftMotion axis is still stuck in wCommunicationState 1100 no matter what I do.
Neither MC_Reset or SMC3_ReinitDrive helps.
In pure desperation, I even tried doing a softreset of the EtherCAT_Master using:
g_pFirstMaster^.xRestart:=TRUE;
g_pFirstMaster^();
g_pFirstMaster^.xRestart:=FALSE;
Didn't help either, for sure the EtherCat restarts but the Softmotion axis is still stuck in 1100 and MC_Reset/SMC3_ReInitDrive still doesn't help.
The only thing that fixes this is a warm/cold start, which ofc isn't acceptable.
I hope I'm doing it wrong... Should I switch state in another way?
What to do in order to obtain a correct behaviour?
Regards,
Kim Hansen
Beijer Electronics Automation AB
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Running v3.5.3.30 in our iX TxB SoftMotion terminals.
In order to execute a special function in our servo drives, we need to leave Operational mode and go to PreOperational mode. I do this the usual way (using a pointer to the slave):
pSlave^.SetOpMode(ETC_SLAVE_STATE.ETC_SLAVE_PREOPERATIONAL);
The slave wState goes to PreOp and the SoftMotion axis wCommunicationState becomes 1100 (ETC device is no longer in mode Operational). So far it seeems ok.
I carry out my special function by doing a couple of SDO parameter read/writes, when I'm done I go back to Operational state using a sequence where I command the drive to Init, then PreOp, then SafeOp, then Op and the drive wState becomes ETC_SLAVE_OPERATIONAL, so far so good.
But.... the SoftMotion axis is still stuck in wCommunicationState 1100 no matter what I do.
Neither MC_Reset or SMC3_ReinitDrive helps.
In pure desperation, I even tried doing a softreset of the EtherCAT_Master using:
g_pFirstMaster^.xRestart:=TRUE;
g_pFirstMaster^();
g_pFirstMaster^.xRestart:=FALSE;
Didn't help either, for sure the EtherCat restarts but the Softmotion axis is still stuck in 1100 and MC_Reset/SMC3_ReInitDrive still doesn't help.
The only thing that fixes this is a warm/cold start, which ofc isn't acceptable.
I hope I'm doing it wrong... Should I switch state in another way?
What to do in order to obtain a correct behaviour?
Regards,
Kim Hansen
Beijer Electronics Automation AB
Hi Kim,
I've send you an email accoring this.
BR
Edwin
Update:
This seems to be working in v3.5.6.10 so most probably no longer an issue.
Hi.
i have the same problem.
Thank you