Welcome to LinuxCNC.org
Home of users of the Enhanced Machine Controller - EMC
a free and powerful machine controller
A fresh bugfix release (2.2.6) - (Changelog). You can get it: as a source package from sourceforge , from CVS , or as a precompiled package which works on Ubuntu as described here. |
|
The EMC2 team now has a brand new custom Live-CD (EU mirror) based on Ubuntu 8.04 with emc 2.2.x included, that will let you try out EMC2 before installing, and it's also the easiest way to install Ubuntu and EMC2 together. (more) |
A fresh bugfix release (2.2.5) - (Changelog). You can get it: as a source package from sourceforge , from CVS , or as a precompiled package which works on Ubuntu as described here. |
|
MOTION
NAME
SYNOPSIS
DESCRIPTION
PINS
PARAMETERS
FUNCTIONS
BUGS
SEE ALSO
NAME
|
motion − accepts NML motion commands, interacts
with HAL in realtime
|
SYNOPSIS
|
loadrt motmod [base_period_nsec=period]
[servo_period_nsec=period]
[traj_period_nsec=period]
[key=SHMEM_KEY]
[num_joints=[0-9]]
|
DESCRIPTION
|
These pins and parameters are created by the realtime
motmod module. This module provides a HAL interface
for EMC’s motion planner. Basically motmod
takes in a list of waypoints and generates a nice blended
and constraint-limited stream of joint positions to be fed
to the motor drives.
Pin names starting with "axis" are
actually joint values, but the pins and parameters are still
called "axis.N". They are read and
updated by the motion-controller function.
|
PINS
|
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
|
|
Should be driven TRUE if the home switch for this joint
is closed
|
|
TRUE if the joint is currently homing
|
|
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
|
|
Connect to the "counts" pin of an external
encoder to use a physical jog wheel.
|
|
When TRUE (and in manual mode), any change to
"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.jog-vel-mode IN bit |
|
When FALSE (the default), the jogwheel operates in
position mode. The axis will move exactly jog-scale units
for each count, regardless of how long that might take. When
TRUE, the wheel operates in velocity mode - motion stops
when the wheel stops, even if that means the commanded
motion is not completed.
|
|
axis.N.joint-pos-cmd OUT
float |
|
The joint (as opposed to motor) commanded position. There
may be several offsets between the joint and motor
coordinates: backlash compensation, screw error
compensation, and home offsets.
|
|
axis.N.joint-pos-fb OUT
float |
|
The joint feedback position. This value is computed from
the actual motor position minus joint offsets. Useful for
machine visualization.
|
|
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.
|
|
axis.N.neg-lim-sw-in IN bit |
|
Should be driven TRUE if the negative limit switch for
this joint is tripped.
|
|
axis.N.pos-lim-sw-in IN bit |
|
Should be driven TRUE if the positive limit switch for
this joint is tripped.
|
|
motion.adaptive-feed IN float |
|
When adaptive feed is enabled with M52 P1, the commanded
velocity is multiplied by this value. This effect is
multiplicative with the NML-level feed override value and
motion.feed-hold.
|
|
(not yet implemented) motion.analog-in-NN IN
float |
|
These pins are used by M66 Enn wait-for-input mode.
|
|
motion.digital-in-NN IN bit |
|
These pins are used by M66 Pnn wait-for-input mode.
|
|
motion.digital-out-NN OUT bit |
|
These pins are controlled by the M62 through M65
words.
|
|
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.
|
|
When Feed Stop Control is enabled with M53 P1 (See
section, and this bit is 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-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-on OUT bit |
|
TRUE when spindle should rotate
|
|
motion.spindle-reverse OUT bit |
|
TRUE when the spindle should rotate backward
|
|
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.
|
|
motion.spindle-speed-in IN float |
|
Actual spindle speed feedback; used for G96
feed-per-revolution and constant surface speed modes.
|
|
motion.spindle-speed-out OUT float |
|
Desired spindle speed in rotations per minute
|
PARAMETERS
|
Many of these parameters serve as debugging aids, and are
subject to change or removal at any time.
|
|
TRUE when this joint is active
|
|
Backlash or screw compensation raw value
|
|
Backlash or screw compensation filtered value (respecting
motion limits)
|
|
Backlash or screw compensation velocity
|
|
TRUE when this joint has encountered an error, such as a
limit switch closing
|
|
The actual following error
|
|
The following error limit
|
|
TRUE when this joint has exceeded the following error
limit
|
|
The "free planner" commanded position for this
joint.
|
|
TRUE when the "free planner" is enabled for
this joint
|
|
The velocity limit for the free planner
|
|
Reflects the step of homing currently taking place
|
|
TRUE if the joint has been homed
|
|
TRUE if the joint is using the "free planner"
and has come to a stop
|
|
The joint’s commanded velocity
|
|
The negative hard limit for the joint
|
|
(removed) axis.N.neg-soft-limit |
|
The negative soft limit for the joint
|
|
The positive hard limit for the joint
|
|
(removed) axis.N.pos-soft-limit |
|
The positive soft limit for the joint
|
|
motion-command-handler.time |
|
motion-command-handler.tmax |
|
TRUE when motion has encountered an error, such as
exceeding a soft limit
|
|
TRUE when motion is in "coordinated mode", as
opposed to "teleop mode"
|
|
These values are used for debugging purposes.
|
|
Same as the pin motion.motion-inpos
|
|
TRUE when motion is enabled
|
|
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
|
|
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.
|
|
TRUE when motion is in "teleop mode", as
opposed to "coordinated mode"
|
FUNCTIONS
|
Generally, these functions are both added to the
servo-thread in the order shown.
|
|
Processes motion commands coming from user space
|
|
Runs the emc motion controller
|
BUGS
|
This manual page is horribly incomplete.
|
SEE ALSO