These pins, parameters, and functions are created by the realtime
motmod module.
- motion.adaptive-feed IN float
- When adaptive feed is enabled
with M52 P1 (See section ),
the commanded velocity is multiplied by this value. This effect is
multiplicative with the NML-level feed override value
- motion.digital-out-NN OUT bit
- These pins are controlled by
the M62 through M65 words.
- motion.enable IN bit
- If this bit is driven FALSE, motion stops,
the machine is placed in the ``machine off'' state, and a message
is displayed for the operator. For normal motion, drive this bit TRUE.
- motion.feed-hold IN bit
- If this bit is set to TRUE, the feed
rate is set to 0.
- motion.motion-inpos OUT bit
- TRUE if the machine is in position.
- motion.probe-input IN bit
- G38.2 uses the value on
this pin to determine when the probe has made contact. TRUE for probe
contact closed (touching), FALSE for probe contact open.
- motion.spindle-brake OUT bit
- TRUE when the spindle brake should
be applied
- motion.spindle-forward OUT bit
- TRUE when the spindle should
rotate forward
- motion.spindle-reverse OUT bit
- TRUE when the spindle should
rotate backward
- motion.spindle-on OUT bit
- TRUE when spindle should rotate
- motion.spindle-speed-out OUT float
- Desired spindle speed in
rotations per minute
- motion.spindle-index-enable I/O bit
- For correct operation of
spindle synchronized moves, this signal must be hooked to the index-enable
pin of the spindle encoder.
- motion.spindle-revs IN float
- For correct operation of spindle
synchronized moves, this signal must be hooked to the position pin
of the spindle encoder.
Many of these parameters serve as debugging aids, and are subject
to change or removal at any time.
- motion.coord-error
- TRUE when motion has encountered an error,
such as exceeding a soft limit
- motion.coord-mode
- TRUE when motion is in ``coordinated mode'',
as opposed to ``teleop mode''
- motion.in-position
- Same as the pin motion.motion-inpos
- motion.motion-enabled
- TRUE when motion is enabled
- motion.servo.last-period
- The number of CPU cycles between invocations
of the servo thread. Typically, this number divided by the CPU speed
gives the time in seconds, and can be used to determine whether the
realtime motion controller is meeting its timing constraints
- motion.servo.overruns
- By noting large differences between successive
values of motion.servo.last-period, the motion controller can
determine that there has probably been a failure to meet its timing
constraints. Each time such a failure is detected, this value is incremented.
- motion.debug-bit-0
-
- motion.debug-bit-1
-
- motion.debug-float-0
-
- motion.debug-float-1
- These values are used for debugging purposes.
Generally, these functions are both added to the servo-thread in the
order shown.
- motion-command-handler
- Processes motion commands coming from
user space
- motion-controller
- Runs the emc motion controller
These pins and parameters are created by the realtime motmod
module. These are actually joint values, but the pins and parameters
are still called ``axis.N''.1.1 They are read and updated by the motion-controller function.
- axis.N.amp-enable-out OUT bit
- TRUE if the amplifier for this
joint should be enabled
- axis.N.amp-fault-in IN bit
- Should be driven TRUE if an external
fault is detected with the amplifier for this joint
- axis.N.home-sw-in IN bit
- Should be driven TRUE if the home
switch for this joint is closed
- axis.N.homing OUT bit
- TRUE if the joint is currently homing
- axis.N.pos-lim-sw-in IN bit
- Should be driven TRUE if the positive
limit switch for this joint is closed
- axis.N.neg-lim-sw-in IN bit
- Should be driven TRUE if the negative
limit switch for this joint is closed
- axis.N.index-enable IO BIT
- Should be attached to the index-enable
pin of the joint's encoder to enable homing to index pulse
- axis.N.jog-counts IN s32
- Connect to the ``counts'' pin
of an external encoder to use a physical jog wheel.
- axis.N.jog-enable IN bit
- When TRUE (and in manual mode), any
change in ``jog-counts'' will result in motion. When false, ``jog-counts''
is ignored.
- axis.N.jog-scale IN float
- Sets the distance moved for each
count on ``jog-counts'', in machine units.
- axis.N.motor-pos-cmd OUT float
- The commanded position for this
joint
- axis.N.motor-pos-fb IN float
- The actual position for this joint.
Many of these parameters serve as debugging aids, and are subject
to change or removal at any time.
- axis.N.active
- TRUE when this joint is active
- axis.N.backlash-corr
- Backlash or screw compensation raw value
- axis.N.backlash-filt
- Backlash or screw compensation filtered
value (respecting motion limits)
- axis.N.backlash-vel
- Backlash or screw compensation velocity
- axis.N.coarse-pos-cmd
-
- axis.N.error
- TRUE when this joint has encountered an error, such
as a limit switch closing
- axis.N.f-error
- The actual following error
- axis.N.f-error-lim
- The following error limit
- axis.N.f-errored
- TRUE when this joint has exceeded the following
error limit
- axis.N.free-pos-cmd
- The ``free planner'' commanded position
for this joint.
- axis.N.free-tp-enable
- TRUE when the ``free planner'' is enabled
for this joint
- axis.N.free-vel-lim
- The velocity limit for the free planner
- axis.N.home-state
- Reflects the step of homing currently taking
place
- axis.N.homed
- TRUE if the joint has been homed
- axis.N.in-position
- TRUE if the joint is using the ``free planner''
and has come to a stop
- axis.N.joint-pos-cmd
- The joint (as opposed to motor) commanded
position. There may be an offset between the joint and motor positions-for
example, the homing process sets this offset
- axis.N.joint-pos-fb
- The joint (as opposed to motor) feedback
position.
- axis.N.joint-vel-cmd
- The joint's commanded velocity
- axis.N.neg-hard-limit
- The negative hard limit for the joint
- axis.N.neg-soft-limit
- The negative soft limit for the joint
- axis.N.pos-hard-limit
- The positive hard limit for the joint
- axis.N.pos-soft-limit
- The positive soft limit for the joint
These pins are created by the userspace IO controller, usually called
io.
- iocontrol.0.coolant-flood
- TRUE when flood coolant is requested
- iocontrol.0.coolant-mist
- TRUE when mist coolant is requested
- iocontrol.0.emc-enable-in
- Should be driven FALSE when an external
estop condition exists
- iocontrol.0.lube
-
- iocontrol.0.lube_level
- Should be driven TRUE when
- iocontrol.0.tool-change
- TRUE when a tool change is requested
- iocontrol.0.tool-changed
- Should be driven TRUE when a tool change
is completed
- iocontrol.0.tool-prep-number
- The number of the next tool, from
the RS274NGC T-word
- iocontrol.0.tool-prepare
- TRUE when a tool prepare is requested
- iocontrol.0.tool-prepared
- Should be driven TRUE when a tool prepare
is completed
- iocontrol.0.user-enable-out
- FALSE when an internal estop condition
exists
- iocontrol.0.user-request-enable
- TRUE when the user has requested
that estop be cleared
Footnotes
- ...``axis.N''.1.1
- In ``trivial kinematics'' machines, there is a one-to-one correspondence
between joints and axes.
2007-05-13