- 1. Introduction
- 1.1. Sequence of Events
- 1.2. Hal Signals
- 1.3. Classicladder layout
- 1.4. Notes
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.
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
any notes, things to be added etc.