You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I've been working on commissioning some elmo gold drives far a control application using fastcat, and have encountered some issues using egd_prof_pos commands. Currently, it seems the prof_pos handling state machine in jsd_egd.c does not reset bits 4 and 5 of the control word after handling a new move command. Based on my testing, it seems like these bits act as edge-triggered inputs, and thus need to be reset to 0 before a new command can be processed.
The effect is that I'm only able to execute a single prof_pos command before having to restart my ethercat master. Even resetting the drive doesn't seem to let me execute another prof_pos command.
However, it's also possible that I'm not using the egd interface, and some other piece of code I've overlooked should be handling these resets...
Also of note, I think the logic to reset the relative move bit is also faulty: state->rxpdo_prof.controlword |= (cmd.prof_pos.relative << 6);. Seems like this only has the ability to set the relative bit to True, but would never be able to set it back to False if prof_pos.relative was False.
This line and the above bug make think that either this egd positioning code was never tested on a real drive, I've missed a more recent release that fixes these, or I'm doing something terribly wrong...
The text was updated successfully, but these errors were encountered:
I've been working on commissioning some elmo gold drives far a control application using fastcat, and have encountered some issues using egd_prof_pos commands. Currently, it seems the prof_pos handling state machine in jsd_egd.c does not reset bits 4 and 5 of the control word after handling a new move command. Based on my testing, it seems like these bits act as edge-triggered inputs, and thus need to be reset to 0 before a new command can be processed.
The effect is that I'm only able to execute a single prof_pos command before having to restart my ethercat master. Even resetting the drive doesn't seem to let me execute another prof_pos command.
However, it's also possible that I'm not using the egd interface, and some other piece of code I've overlooked should be handling these resets...
Also of note, I think the logic to reset the relative move bit is also faulty:
state->rxpdo_prof.controlword |= (cmd.prof_pos.relative << 6);
. Seems like this only has the ability to set the relative bit to True, but would never be able to set it back to False if prof_pos.relative was False.This line and the above bug make think that either this egd positioning code was never tested on a real drive, I've missed a more recent release that fixes these, or I'm doing something terribly wrong...
The text was updated successfully, but these errors were encountered: