IOCONTROL - IOV2

NAME
SYNOPSIS
DESCRIPTION
PINS
SEE ALSO
AUTHOR
REPORTING BUGS
COPYRIGHT

NAME

iov2 - an alternative to iocontrol

SYNOPSIS

[EMCIO]
EMCIO = iov2

DESCRIPTION

iocontrol handles I/O tasks like coolant, toolchange, e-stop and lube. The signals are turned on and off with G code or in the case of e-stop in hal.

iocontrol is a userspace process - if you have strict timing requirements or simply need more i/o, consider using the realtime synchronized i/o provided by motion(9) instead.

iov2 is an alternative (extended) interface to io. It creates additional pins to handle toolchange fault states and has better handling of certain race conditions.
Whether io or iov2 is used can be chosen in the [EMCIO] section of the INI file.

PINS



iocontrol.0.coolant-flood

(Bit, Out) TRUE when flood coolant is requested

iocontrol.0.coolant-mist

(Bit, Out) TRUE when mist coolant is requested

iocontrol.0.emc-enable-in

(Bit, In) Should be driven FALSE when an external estop condition exists.

iocontrol.0.lube

(Bit, Out) TRUE when lube is requested. This pin gets driven True when the controller comes out of E-stop, and when the "Lube On" command gets sent to the controller. It gets driven False when the controller goes into E-stop, and when the "Lube Off" command gets sent to the controller.

iocontrol.0.lube_level

(Bit, In) Should be driven FALSE when lubrication tank is empty.

iocontrol.0.tool-change

(Bit, Out) TRUE when a tool change is requested

iocontrol.0.tool-changed

(Bit, In) Should be driven TRUE when a tool change is completed.

iocontrol.0.tool-number

(s32, Out) Current tool number

iocontrol.0.tool-prep-number

(s32, Out) The number of the next tool, from the RS274NGC T-word

iocontrol.0.tool-prep-pocket

(s32, Out) This is the pocket number (location in the tool storage mechanism) of the tool requested by the most recent T-word.

iocontrol.0.tool-prepare

(Bit, Out) TRUE when a Tn tool prepare is requested

iocontrol.0.tool-prepared

(Bit, In) Should be driven TRUE when a tool prepare is completed.

iocontrol.0.user-enable-out

(Bit, Out) FALSE when an internal estop condition exists

iocontrol.0.emc-abort

(BIT,OUT) Signals emc-originated abort to toolchanger.

iocontrol.0.emc-abort-ack

(BIT,IN) Acknowledge line from toolchanger for previous signal, or jumpered to abort-tool-change if not used in toolchanger. NB: after signaling an emc-abort, iov2 will block until emc-abort-ack is raised.

iocontrol.0.emc-reason

(S32,OUT) Convey cause for EMC-originated abort to toolchanger. Usage: UI informational. Valid during emc-abort True.

iocontrol.0.start-change

(BIT,OUT) Asserted at the very beginning of an M6 operation, before any spindle-off, quill-up, or move-to-toolchange-position oeprations are executed.

iocontrol.0.start-change-ack

(BIT,IN) Acknowledgment line for start-change.

iocontrol.0.toolchanger-fault

(BIT,IN) Toolchanger signals fault. This line is contionuously monitored. A fault toogles a flag in iocontrol which is reflected in the toolchanger-faulted pin.

iocontrol.0.toolchanger-fault-ack

(BIT,OUT) Handshake line for above signal. will be set by iov2 after above fault line True is recognized and deasserted when toolchanger-fault drops. Toolchanger is free to interpret the ack; reading the -ack lines assures fault has been received and acted upon.

iocontrol.0.toolchanger-reason

(S32,IN) Convey reason code for toolchanger-originated fault to iov2. Usage

iocontrol.0.toolchanger-faulted

(BIT,OUT) Signals toolchanger-notify line has toggled and toolchanger-reason-code was in the fault range. Next M6 will abort.

iocontrol.0.toolchanger-clear-fault

(BIT,IN) Resets TC fault condition. Deasserts toolchanger-faulted if toolchanger-notify is line False. Usage. UI - e.g. clear fault condition button.

iocontrol.0.user-request-enable

(Bit, Out) TRUE when the user has requested that estop be cleared

iocontrol.0.state

(S32,OUT) Debugging pin reflecting internal state

See
http://wiki.linuxcnc.org/cgi-bin/wiki.pl?ToolchangerProtocolProposal for additional information.

SEE ALSO

io(1), iocontrol(1), LinuxCNC(1),

AUTHOR

Written by andypugh, as part of the LinuxCNC project. Updated by Hans Unzner.

REPORTING BUGS

Report bugs at https://github.com/LinuxCNC/linuxcnc/issues

COPYRIGHT

Copyright © 2021 The LinuxCNC Project
This is free software; see the source for copying conditions. There is NO warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.