carousel - persisting the last state & homing - what is best practice?

More
18 Oct 2026 17:13 - 18 Oct 2026 17:15 #350322 by dirkx
I've got a Deckel/Maho DMC70V here with a 30 slot carousel for its tools; its Dialog112/MELDAS600 brain has been replaced by Ethercat & LinuxCNC.

I've automated part of this with the carousel(9) real time component; and this works well overall & is quite reliable Actual config at the end of the message. Now I am struggling with two things:
  1. How does one trigger this cleanly when normal homing completes (the spindle needs to be in the home position for the carousel/arm to safely home) -- and then ideally so that if the carousel homing does not come complete/come-on - the machine is not declared fully homed; just like it would for an axis ?
  2. On startup - if the tool changer is in a low slot - it will insist on doing  a full rotation with increasing numbers; thus making a full circle; even though it could just go back one. What is the right way to persist the last position on closing linuxcnc(1) ? So that it can use this to home a lot more efficiently ?

    Thanks !

    Dw.

    # Deckel-Maho DMC70V toolchanger carousel, 30 slots, can be rotated in both
    # directions; with a brake sensor on the motor that controls the wheel and
    # a pocket sensor that confirms it stopped at the right spot. General control
    # is to power on the motor in either direction until you see the brake sensor
    # coming up; then stop the motor and check that the pocket sensor confirms
    # a stop in the right place. If not -that is usually caused by a tool or arm
    # with something still in it & needs manual intervention.
    #
    # S202 is the slot signal & S201 is the brake now; stop motor power on rise and
    # then wait for S201 to go high.
    #
    net carousel-index-sensor S200-input => carousel.0.sense-0 atc.led-carousel-index
    net carousel-pocket-sensor S201-input => carousel.0.sense-1 atc.led-carousel-brake
    
    net carousel-enable atc.button-carousel => carousel.0.enable <=> Magazine-output
    net carousel-active atc.led-carousel <= carousel.0.active
    
    # S202 will rise a bit later - to confirm correct position
    # and needs to be combined with the counter ready
    #
    net confirm-tool-in-pos S202-input => iocontrol.0.tool-changed atc.led-carousel-pocket
    net carousel-pocket-num iocontrol.0.tool-prep-number => carousel.0.pocket-number
    
    # Link motor direction outputs to your stepgen or VFD/relay drives
    net carousel-motor-fwd carousel.0.motor-fwd => Forward-output
    net carousel-motor-rev carousel.0.motor-rev => Backwards-output
    net carousel-current-pos carousel.0.current-position
    
    # Allow the jog buttons to work; propably need to be
    # tied to the interlock of MCall that then lights up
    # the light output
    #
    net carousel-motor-jog-fwd S274-input => carousel.0.jog-fwd
    net carousel-motor-jog-rev S216-input => carousel.0.jog-rev
    
    net carousel-homed carousel.0.homed => atc.led-carousel-homed
    net carousel-current-pos => atc.number-position

Last edit: 18 Oct 2026 17:15 by dirkx.

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

Time to create page: 0.078 seconds
Powered by Kunena Forum