LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org

1. Introduction
1.1. Sequence of Events
1.2. Hal Signals
1.3. Classicladder layout
1.4. Notes

1. Introduction

This section is intended to cover the integration of a Umbrella/Carousel? type tool changer with in EMC & Hal. the tool changer is to be Bidirectional ie. move in the clockwise direction and counter clockwise direction. the pocket in the carousel must allays be empty facing the spindle and pocket reference number corresponds to the current tool with in the spindle. for each tool pocket index of the carousel there is a mark/count signal so we know when we have rotated a pocket and when to count.

Assumed setup i am writing this for a setup that has no encoder, so if you have means of knowing which tool you are on you things will get a lot easer. and different so feel free to add that setup below this one. the Z axes does not have to move to release the tool, as the carousel drops down. there are 16 tools in this example with in the carousel, so change the maths below to your setup. for tool 1 - 2 we rotate CCW for tool 2 - 1 we rotate CW

1.1. Sequence of Events

Read tool called number
check tool called is valid - if not complete tool change cycle and issue error & stop the program ( there is no tool error input, and tool change cycle must be completed or we get stuck waiting for it to finish)
work out direction carousel must rotate (CW or CCW)
spindle orientation to align tool for carousel.
move carousel into spindle
Release the tool and turn on air blast
move carousel down
index carousel to new tool position
move carousel up
grab the tool
return carousel home
tool change finished.

note: we must also check to see if we pass station 16 when going CW and CCW and reset the count as needed.

to work out the direction of tool carousel we can use the below compare. Tool Called 4 current tool 3

Current tool - Tool Called =

1.2. Hal Signals

change the below as needed for your setup.

Tools Changer signals

(bit, out) TRUE when a tool change is requested

net tool-change iocontrol.0.tool-change => classicladder.0.in-06

(bit, in) Should be driven TRUE when a tool change is completed

net tool-changed iocontrol.0.tool-changed <= classicladder.0.out-06

(s32, out) The current tool number

net current-tool iocontrol.0.tool-number => classicladder.0.s32in-00

(s32, out) The number of the next tool,

net prep-num iocontrol.0.tool-prep-number => classicladder.0.s32in-01

(bit, out) TRUE when a tool prepare is requested

net toolprep iocontrol.0.tool-prepare => classicladder.0.in-07

(bit, in) Should be driven TRUE when a tool prepare is completed

net tool-preped iocontrol.0.tool-prepared <= classicladder.0.out-07

Home Bit for Z

net Zaxis-home => classicladder.0.in-05

1.3. Classicladder layout

the layout of the logic with in classic ladder

1.4. Notes

any notes, things to be added etc.

LinuxCNCKnowledgeBase | RecentChanges | PageIndex | Preferences | LinuxCNC.org
This page is read-only. Follow the BasicSteps to edit pages. | View other revisions
Last edited March 10, 2010 3:39 pm by Robh (diff)
Published under a Creative Commons License