Technical questions about CIA402 and homecomp.comp on A6

More
8 months 2 weeks ago - 8 months 2 weeks ago #342925 by Marcos DC
Sorry if this is drifting a bit from Andrax’s original question.
@NWE
I’m not really talking about old analog hardware or tricky retrofits. My reference is mainly the integration effort in LinuxCNC itself, comparing FPGA-based step/dir (Mesa) or ±10 V with well-documented drives versus EtherCAT + CiA402. In that context, step/dir on Mesa is a very different beast from software stepgen, and is usually much more KISS and predictable to integrate.

And by the way, thanks to rodw for the work he’s been doing—not only on this, but for his contributions to the LinuxCNC community as a whole.
Last edit: 8 months 2 weeks ago by Marcos DC.
The following user(s) said Thank You: rodw, andrax

Please Log in or Create an account to join the conversation.

More
8 months 2 weeks ago #342926 by Hakan
rodw, I kind of think of a structure like this
Code:
if drive ready   if csp   else if csv   else if pv ...   else if probing   else if homing      if homing_method == 1      else if homing_method == 2      else if homing_method == 37         Do the torque homing. Although it doesn't seem to be standard      
Keep track of what op-mode we were in last time so we recognize a transition
between op-modes. To deal with offsets and such things.
The following user(s) said Thank You: andrax

Please Log in or Create an account to join the conversation.

More
8 months 2 weeks ago #342930 by andrax
@rodw Yes, I would have implemented it in the same way in a PLC. The only thing missing is the safety timer from start homing to axis in motion. Then the homing would be practically monitored. Regarding the axis jumping, you could set the feed rates to minimum after completion until Linuxcnc has synchronized.

@Hakan, aren't the csp csv and pv modes managed by the driver? I believe that torque mode is not supported by the A6 during homing. However, it would be an option if you let Linuxcnc manage homing again. Since the Z pulse is not output by the A6, you could perform the torque search. 

 
The following user(s) said Thank You: rodw

Please Log in or Create an account to join the conversation.

More
8 months 2 weeks ago #342980 by rodw

rodw, I kind of think of a structure like this
Code:
if drive ready   if csp   else if csv   else if pv ...   else if probing   else if homing      if homing_method == 1      else if homing_method == 2      else if homing_method == 37         Do the torque homing. Although it doesn't seem to be standard       Keep track of what op-mode we were in last time so we recognize a transition between op-modes. To deal with offsets and such things.
Great feedback I wasn't really happy with what came after the state machine but I've had to put this project down for a week or so and you forget everything when its so complex. 

Please Log in or Create an account to join the conversation.

More
8 months 2 weeks ago #342982 by rodw

@rodw Yes, I would have implemented it in the same way in a PLC. The only thing missing is the safety timer from start homing to axis in motion. Then the homing would be practically monitored. Regarding the axis jumping, you could set the feed rates to minimum after completion until Linuxcnc has synchronized.
 
Can you explain this timer? I would have thought you get the homing signal from linuxcnc, pass it on to the drive then  loop until bit 12 goes true keeping lcnc in sync.. I can't remember off the top of my head how we check that the homing request has actually stuck but I seem to remember we could do this too before doing the loop. Bit 13 will tell us if there is an error during homing.

Please Log in or Create an account to join the conversation.

More
8 months 2 weeks ago #342983 by Marcos DC
While waiting for Andrax’s view, IMHO for a generic CiA402 setup there’s no standard “homing started” bit, so I’d supervise it with two simple triggers/timers.

I’d start the overall homing timeout when the drive actually confirms Homing mode (6061 == 6). Then, when we assert the homing start (opmode-specific, e.g. the bit-4 flip after 6061 confirms), I’d start a short “start→motion” watchdog and look for real motion as proof (e.g. |6064 - pos0| > eps, or 606C > threshold).
The following user(s) said Thank You: andrax

Please Log in or Create an account to join the conversation.

Time to create page: 0.075 seconds
Powered by Kunena Forum