ATC: carousel.comp with Servo drive

More
2 years 4 months ago #303891 by wellingtoncsouza
any news about this?

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

More
2 years 2 months ago #308299 by jimwhiting
I'm just starting the same task.

Leadshine EL8 drive with absolute encoder on a Haas SL-10 retro fit. (12 pocket carousel).

 
The following user(s) said Thank You: wellingtoncsouza

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

More
2 years 2 months ago #308783 by jimwhiting
Hi,

So I have the carousel module driving my ethercat servo. I have connected the index-enable and setup the drive to allow the homing mode onboard the drive (mode 3 to index to a home switch and then the Z signal off the encoder). This indexes to a single home switch which is present on a cam on the backside of the 12 tool carousel. This bit works great.

What doesn't work great so far is the home offset - it moves, but it is quite violent... I appear to be missing a setting to control the acceleration/velocity of the moves on the carousel. The settings I have found so far will slow it down during homing, but appear to not affect the position mode once homed.

Likewise I have the jog forwards and reverse working, however still quite violent compared to what I would like.

I'm missing something simple... (Drive has been tuned with the auto tune from Leadshine).
Code:
############### # Carousel 0  # ############### setp cia402jpw.2.csp-mode 1 setp cia402jpw.2.pos-scale 100 #setp cia402jpw.2.velo-scale 10 setp cia402jpw.2.ini-ferror [JOINT_2]FERROR setp cia402jpw.2.ini-min-ferror [JOINT_2]MIN_FERROR #from servo(ethercat) to cia402 net 2-statusword      lcec.0.2.cia-statusword => cia402jpw.2.statusword net 2-opmode-display  lcec.0.2.opmode-display => cia402jpw.2.opmode-display net 2-drv-act-pos     lcec.0.2.actual-position => cia402jpw.2.drv-actual-position net 2-drv-act-velo    lcec.0.2.actual-velocity => cia402jpw.2.drv-actual-velocity #from cia402 to servo(ethercat) net 2-controlword         cia402jpw.2.controlword => lcec.0.2.cia-controlword net 2-modes-of-operation  cia402jpw.2.opmode => lcec.0.2.opmode net 2-drv-target-pos      cia402jpw.2.drv-target-position => lcec.0.2.target-position net 2-drv-target-velo     cia402jpw.2.drv-target-velocity => lcec.0.2.target-velocity # Carousel connections net 2-carousel-home carousel.0.index-enable cia402jpw.2.home #net 2-enable  carousel.0.active cia402jpw.2.enable net 2-pos-cmd  carousel.0.counts-target cia402jpw.2.pos-cmd net 2-pos-fb-s32 carousel.0.counts conv-float-s32.0.out net 2-pos-fb  conv-float-s32.0.in   <= cia402jpw.2.pos-fb net 2-vel-cmd carousel.0.motor-vel cia402jpw.2.velocity-cmd setp carousel.0.fwd-dc 0.01 setp carousel.0.rev-dc -0.01 setp carousel.0.decel-time 1 setp carousel.0.align-dc 0 setp carousel.0.scale 100 setp carousel.0.home-offset 10 # END

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

More
2 years 2 months ago #308919 by spumco

What doesn't work great so far is the home offset - it moves, but it is quite violent... I appear to be missing a setting to control the acceleration/velocity of the moves on the carousel. The settings I have found so far will slow it down during homing, but appear to not affect the position mode once homed.

Likewise I have the jog forwards and reverse working, however still quite violent compared to what I would like.

 

Andy Pugh may chime in a more accurate response, but I think carousel.comp doesn't manage velocity or accel/decel when set to 'counts' mode and the counts-target pin is used.

In the velocity modes fwd-dc, rev-dc, align-dc pins all affect the motor velocity, but there don't appear to be specific accel/decel settings.

If you read the online manual (I suspect you've done so already), 'counts' mode can be used as either a position or velocity command.  I suspect that because you are using the counts-target pin via ethercat the servo sees a position command and moves there (and stops) at fastest possible speed.

In my counts-mode carousel config the position is sent to a stepgen (itself in position mode), and the stepgen runs at the max values.  So velocity & accel are adjusted in the stepgen setting, not with carousel.comp pins or parameters.

So I think in your case the easiest thing would be to adjust the servo drive to limit the max velocity and accel.  You'd treat the servo drive essentially like I'm using my stepgen settings.

An alternative would be to put your servo in velocity mode - like a 'dumb' motor - and switch your carousel config to output a velocity & direction command to a PID component, and the PID output is sent to the drive.  Velocity & accel would be adjusted in the PID.
The following user(s) said Thank You: jimwhiting

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

More
2 years 2 months ago #309162 by jimwhiting
Thanks,

I actually managed to find the correct setting (SDO 0x2222 - set to 200) to limit the initial jolt from the servo... so it looks like I can drive directly. Just getting some tuning done and I will post up the configs.

-Jim.

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

More
2 years 2 months ago #309169 by jimwhiting
Just to follow this up, I have it working great for small movements... but the moment I try and index to a pocket further away it error's my drive out (1b0 - Bus dithering).

Looking into the mode further... it is using CSP mode, which from the docs expects to be updated periodically with a location from a "movement planner". So I think I need to use Position Profile instead - which would allow a final position to be put in the target position register and then the movement profile (accel/velocity/decell etc) would be used from the drives settings.

So I will be hacking around a cia402 module to see if I can test this.

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

Time to create page: 0.101 seconds
Powered by Kunena Forum