Commit graph

81 commits

Author SHA1 Message Date
Dewey Garrett
edbc7b19cc Merge remote-tracking branch 'origin/2.8' 2020-10-16 05:52:06 -07:00
Dewey Garrett
8632190313 motion.9 motion.feed-inhibit gcode only (not jogs) 2020-10-16 05:41:03 -07:00
Håvard Flaget Aasen
13a9824a26 Fix minor typos in man-page 2020-08-24 23:23:16 +02:00
Dewey Garrett
1ce92e2899 motion.feed-upm new pin 2020-06-09 08:53:54 -07:00
Håvard Flaget Aasen
375fa9cea5 Fix spelling error reported by lintian 2020-04-18 17:03:41 +02:00
Dewey Garrett
c853a14e1a motion.c motion.tp-reverse is an output (Restore)
(reverse-run was backported from master to 2.8 but     )
(this related commit was omitted: cherry-pick 3a47be11e)

probably a typo unnoticed to to few users connecting
this pin.

also add motion.tp-reverse to motion man page
2020-04-06 06:12:34 -07:00
andypugh
6494d50c9c Update existing docs to reflect reverse-run
Signed-off-by: andypugh <andypugh@rm-one.bodgesoc>
2020-04-04 16:05:52 +01:00
Dewey Garrett
3a47be11ed motion.c motion.tp-reverse is an output
probably a typo unnoticed to to few users connecting
this pin.

also add motion.tp-reverse to motion man page
2019-12-04 20:26:19 -07:00
Dewey Garrett
ee816bd9b5 extrajoints support in motion
New motmod parameter: num_extrajoints

1) An 'extra' joint uses the normal joint homing process but
   transfers control to a new hal pin (joint.N.posthome-cmd)
   after homing.  An independent motion planner/controller
   (limit3 component typically) must be employed to manage
   the 'extra' joint  motion using this input.

2) Includes: simulation configs:
      1extrajoint.ini  XYYZ (4joints) +  1 extra ( 5 joints total)
      2extrajoints.ini XYYZ (4joints) +  2 extra ( 6 joints total)
     12extrajoints.ini XYYZ (4joints) + 12 extra (16 joints total)
   and example M144 command to set extra joints jN.limit3.in

3) motion man page update

Notes:
 1) if num_extrajoints is nonzero, require KINEMATICS_BOTH
    in order to make sensible axis gui displays

 2) by legacy, [KINS]JOINTS=  sets the *total* number of joints
    e.g., num_joints + num_extrajoints
    Example non-motion source files using [KINS]JOINTS:
        a) src/emc/ini/initraj.cc
        b) src/emc/usr_intf/halui.cc
        c) src/emc/usr_intf/axis/scripts/axis.py

------------------------------------------------------------
updates:
rebased to origin/master ae6e7e00a Thu Sep 5 22:27:20 2019 -0700

   1) report numExtraJoints to task
   2) axis.py update joint jog radiobuttons for homing
   3) use #define for ALL_JOINTS,NO_OF_KINS_JOINTS,IS_EXTRAJOINT
   4) axis.py formerly would not 'unhome all' unless machine on
   5) add demo ini for 16 joints (12 extra)
   6) glcanon.py posstrs minor format

------------------------------------------------------------
2019-09-07 14:13:24 -07:00
Dewey Garrett
76963bc538 Increase EMCMOT_MAX_JOINTS (9->16)
Anticpated support for 'extra' joints can use a number of joints
that exceeds the number of axes used (maxium of 9 for coordinates
xyzabcuvw).

Test increasing EMCMOT_MAX_JOINTS (64bit OS) using
configs/sim/axis/extrajoints/demo1.ini:
    EMCMOT_MAX_JOINTS =  9 ==> sizeof EMC_STAT = 14816
    EMCMOT_MAX_JOINTS = 16 ==> sizeof EMC_STAT = 16336 <--

Message size for emcStatus is allocated in configs/common/linuxcnc.nml:
  B emcStatus  SHMEM localhost 16384 0 0 2 16 1002 TCP=5005 xdr

From 2.7 (77309ebf9) to master (0f67445fa) the sizeof EMC_STAT
for 9 joints max has grown by about 2500 bytes
(14816-12304=2512).  The message size allocation of 16384
(4 4096sized pages) is marginal for 16 joints.  This commit
indreases this size to 20480 leaves (20480-16336)=4144 bytes
for future growth.

Notes:
1) EMC_STAT includes:
      EMC_MOTION_STAT
      EMC_TRAJ_STAT
      EMC_JOINT_STAT joint[EMCMOT_MAX_JOINTS]
      EMC_AXIS_STAT axis[EMCMOT_MAX_AXIS]
      EMC_SPINDLE_STAT spindle[EMCMOT_MAX_SPINDLES]
      int synch_di[EMCMOT_MAX_DIO]
      int synch_do[EMCMOT_MAX_DIO]
      double analog_input[EMCMOT_MAX_AIO]
      double analog_output[EMCMOT_MAX_AIO]
      int debug
      int on_soft_limit
      int external_offsets_applied
      EmcPose eoffset_pose

2) Tested on:
  a) Debian GNU/Linux 10   (buster)
     4.19.0-5-amd764 (uspace sim)

  b) Debian GNU/Linux  9.3 (stretch)
     4.9.0-5-rt-amd64 #1 SMP PREEMPT RT Debian 4.9.65-3+deb9u2 x86_64

  c) VirtualBox: Debian GNU/Linux 7.9 (wheezy)
     3.4-9-rtai-686-pae #1 SMP PREEMPT Debian 3.4.55-4linuxcnc i686
     (sizeof EMC_STAT = 15592 rtai,32bit)

  d) Debian GNU/Linux buster/sid
     4.19.0-1-amd64 #1 SMP Debian 4.19.12-1 x86_64

3) fix runtests that are hardcoded for the number of joints:
       interp/m98m99/12-M99-endless-main-program
       motion-logger/basic adapt
       motion-logger/mountaindew

4) axis gui (axis.py) updated to display up to 16 joint radio
   buttons and can display 16 joint values in preview and DRO
   tabs.
   (Future increases of EMCMOT_MAX_JOINTS beyond 16 will require
    additional changes to display all joints in the DRO tab and
    in the Preview created by glcanon.py)

5) tested guis touchy,gmoccapy,gscreen,tklinuxcnc to verify that
   *existing* sim configs continue to startup.
2019-09-06 09:18:11 -07:00
andypugh
aacff428fe Update existing docs to reflect reverse-run
Signed-off-by: andypugh <andypugh@rm-one.bodgesoc>
2019-06-08 23:27:39 +01:00
Dewey Garrett
7683122936 motion.9 man page update
Over time, the motion man page has become a little
inconsistent in ordering so this commit:

1) Order pins listed in [MOTION],[AXIS],[JOINT],[SPINDLE]
   sections in the same order as they appear for:
     $ halcmd show pin
2) Joint pins in section 'DEBUGGING PINS' moved to the
   'JOINT PINS' section and marked individually as '(DEBUG)'
   Retain note that they "are subject to change or removal"
3) Orders parameters for [MOTION] in the order they appear
   for:
       $ halcmd show param
4) fix other minor omissions and inconsistencies as found
2018-12-05 06:19:05 -07:00
Rene Hopf
f36ddbe0e0 Add spindle.N.amp-fault-in pins to motion, to report spindle amplifer faults
Signed-off-by: Rene Hopf <renehopf@mac.com>
2018-11-10 01:47:22 +01:00
Moses McKnight
349512cd5b Merge branch 'dgarr/external_offsets' 2018-11-07 09:47:56 -06:00
jethornton
062d7d29c3 Docs: fix markup error
Signed-off-by: jethornton <jthornton@gnipsel.com>
2018-10-31 17:49:32 -05:00
Dewey Garrett
784db03355 External Offsets: Axis coordinate offset hal pins
rebased to master at:
0cab36566 Thu Oct 18 22:56:02 2018 +0100

Note: eoffset_pid additions moved to a separate branch dgarr/eoffset_pid

Docs: docs/src/motion/external-offsets.txt

Hal pins (input interface is similar to wheel jogging pins):
  axis.L.eoffset-enable   Input  (bit):   enable
  axis.L.eoffset-scale    Input  (float): scale factor
  axis.L.eoffset-counts   Input  (s32):   request is accumulated counts*scale
  axis.L.eoffset-clear    Input  (bit):   clear request
  axis.L.eoffset          Output (float): current external offset
  axis.L.eoffset-request  Output (float): requested external offset (debug pin)

  motion.eoffset-active   Output (bit):   non-zero external offsets applied
  motion.eoffset-limited  Output (bit):   limited by soft limit

Hal components:
    eoffset_per_angle.comp

Sim configs (configs/sim/axis/external_offsets/)
    eoffset_demo.ini     (XYZ ext offsets)
    jwp_z.ini            (jog-while-pause Z)
    dynamic_offsets.ini  (dynamic Z)
    opa.ini              (X ext offset per C angle)

Notes:
1) see docs/src/motion/external_offsets.txt for usage restrictions
   man updated: motion.9
   new manpage: offset_per_angle.9 (auto by halcompile)
2) In canon.hh, option:
     #undef  STOP_ON_SYNCH_IF_EXTERNAL_OFFSETS
     #define STOP_ON_SYNCH_IF_EXTERNAL_OFFSETS
   forces a stop on any synch() if non-zero external
   offsets.

3) In command.c, using ALT_EOFFSET_BEHAVIOR for cont/incr jogs

Squash notes:

a) eliminate synch() restrictions
   Prior synch() restrictions are eliminated by changing the
   way that external offsets are removed from the current position
   information used by the interpreter.

   Stopping on synch() with external offset applied may
   be enabled at compile-time using an option defined
   in nml_intf/canon.cc:
      #define STOP_ON_SYNCH_IF_EXTERNAL_OFFSETS
   This option will be removed in the future.
b) eoffset_per_angle.comp: support multiple instances
2018-10-19 11:50:53 -07:00
andy pugh
13434870f0 Multispindle: Docs Update
Signed-off-by: andy pugh <andy@bodgesoc.org>
2018-10-17 23:54:09 +01:00
andy pugh
ebb709fc27 Multispindle: Correct the spindle pin names in docs and .comps
Signed-off-by: andy pugh <andy@bodgesoc.org>
2018-09-29 13:52:16 +01:00
John Thornton
d3d942f1f3 Docs: fix typo
Signed-off-by: John Thornton <bjt128@gmail.com>
2018-09-05 06:00:41 -05:00
Sebastian Kuzminsky
d541076ab7 Merge remote-tracking branch 'origin/2.7'
* origin/2.7:
  docs: note that G38 probe results #5061-#5069 are in work coords
  docs: refer to the G38 family of probe moves as "G38.n", not "G38.x"
  docs: tidy up description of probe result params
  simplify comments in canon.hh, no code changes
  pid: use command-deriv when supplied
  Update about-linuxcnc.txt
  Docs: add more information to coolant control m code

Conflicts:
	docs/man/man9/motion.9
	docs/src/gcode/overview.txt
2018-07-31 09:59:20 -06:00
Sebastian Kuzminsky
37286afa3f docs: refer to the G38 family of probe moves as "G38.n", not "G38.x"
This commit changes the collective name for the G38 probe moves from
"G38.x" to "G38.n", to avoid any confusion with the axis-word "X".
2018-07-28 21:06:13 -06:00
Sebastian Kuzminsky
fc6730828d Merge remote-tracking branch 'origin/2.7' 2018-06-12 20:13:17 -06:00
Sebastian Kuzminsky
c2b378391e docs: improve motion.requested-vel description 2018-06-12 20:06:25 -06:00
Rene Hopf
6e11d2b15f add documentation for new acceleration pins in motion
Signed-off-by: Rene Hopf <renehopf@mac.com>
2018-05-04 12:24:43 +02:00
Sebastian Kuzminsky
126be71fd6 Merge remote-tracking branch 'origin/2.7' 2018-04-11 14:02:01 -06:00
Sebastian Kuzminsky
310bbbf52e docs: describe motion.program-line in motion manpage 2018-04-03 11:09:36 -06:00
Sebastian Kuzminsky
dec6b8580a Merge remote-tracking branch 'origin/2.7'
Conflicts:
	debian/control.bottom.in
	docs/man/man1/halstreamer.1
	docs/man/man1/halui.1
	docs/man/man1/linuxcncrsh.1
	docs/man/man1/shuttlexpress.1
	docs/man/man1/sim_pin.1
	docs/man/man9/gantrykins.9
	docs/man/man9/kins.9
	docs/man/man9/motion.9
	docs/man/man9/sserial.9
	docs/man/man9/streamer.9
	tests/startup-state/sim.var.clean
	tests/startup-state/sim.var.orig
	tests/startup-state/sim.var.pre
	tests/startup-state/test.sh
2018-01-19 08:25:06 -07:00
Sebastian Kuzminsky
4a897203bc docs: fix hyphen/minus confusion in manpages
groff treats '-' (the character you get when you hit the "minus" key on
the keyboard) as "hyphen", not as "minus".  Thus it renders incorrectly
in some locales, and line-wraps strangely.

groff treats the two-character sequence "\-" as "minus", and the
four-character sequence "\(hy" as "hyphen".

Details here: https://lists.debian.org/debian-devel/2003/03/msg01481.html

This commit replaces every instance of "-" in our manpages where the
meaning is "minus" with "\-", so it works right.

This fixes many lintian warnings.
2018-01-18 08:12:31 -07:00
Sebastian Kuzminsky
21639115a8 Merge remote-tracking branch 'origin/2.7'
Conflicts:
    src/emc/usr_intf/axis/scripts/linuxcnctop.py

I resolved this merge conflict by using the version of linuxcnctop.py
from Jeff's original master-based linuxcnctop-stretch-leak branch instead.
2017-12-07 11:51:41 -07:00
Sebastian Kuzminsky
de97fdd108 docs: improve .motion-type pin info in motion manpage 2017-12-05 22:19:58 -07:00
Dewey Garrett
d69b15cfe1 motion: wheeljogging *.jog-accel-fraction hal pins
new motion hal pins:
    axis.L.jog-accel-fraction
    joint.N.jog-accel-fraction

Hal pins specify reduced acceleration for wheel jogging to reduce
impulsive motion when jog count changes occur at low frequency.
The pins specify a fraction (between 0 and 1) of the corresponding
ini setting for [*]MAX_ACCELERATION.  Values less than zero or
more than 1 are ignored.

When jog-counts are increased/decreased slowly, the use of full
acceleration can cause disconcerting motion or shaking on machines
with high acceleration capabilities.  This feature may be used
with or without auxiliary lowpass filtering of the *.jog-counts
inputs.

Note: Lowpass filtering of jog-counts smooths motion when
jog-counts changes are sustained but is less effective for single
event or low frequency count changes because the leading/trailing
accel occurs at the ini setting for max_acceleration.
2017-11-10 17:02:19 -07:00
Dewey Garrett
845bb75283 motion.homing-inhibit (new pin)
Some complicated systems take advantage of the
provisions for synchronizing the final joint homing
moves as controlled by negative [JOINT_N]HOME_SEQUENCE=
ini file items.  Candidate systems include gantries
with two motors for an axis, delta robots, hexapods,
etc.

By default, the synchronization provisions also
disallow *joint* jogging prior to homing in order to
prevent jog activity that (unless executed with much
care) can misalign the machine (gantry racking for
example).

System integrators may want to allow *joint* jogging
prior to homing with some hal logic that dynamically
alters the [JOINT_N]HOME_SEQUENCE= items.  Such logic
can assert the motion.homing-inhibit pin to ensure
homing is not initiated under certain conditions.

Example: synced joints 0,1 using sequence -1 for
synced homing with a switch (allow_jjog) to select sequence 1 for
*joint* jogging before homing (partial hal code):

setp mux.in0 -1
setp mux.in1  1

net home_seq <= mux.out
net home_seq => ini.0.home_sequence
net home_seq => ini.1.home_sequence

net hsequence_select <= allow_jjog
net hsequence_select => mux_sel
net hsequence_select => motion.homing-inhibit

Note that ini hal pins are not available until milltask
starts so execution of the above hal commands may need
to be deferred using an [APPLICATION]APP= script or a
a postgui halfile.

Thanks to pkmcnc for suggestion.
2017-08-14 15:53:07 -07:00
Dewey Garrett
87d2a4e1f2 motion: update for hal pos-cmd, vel-cmd pins
1) before this commit, hal pins axis.L.pos-cmd were
   only valid for teleop, now update in
   control.c/output_to_hal() so pins are valid for
   coordinated motion too.

2) rename to conform to actual implementation:
   was: axis.L.vel-cmd
    is: axis.L.teleop-vel-cmd

Signed-off-by: Dewey Garrett <dgarrett@panix.com>
2017-02-24 09:35:12 -07:00
Dewey Garrett
9f2a23f04c ini-config.txt updates for joints_axes
ini-config.txt      update for joints/axes
core-components.txt update motion joints/axes
                    refer to motion man page instead of
                    listing pins in two places

iniaxis.cc remove unused items:
           [TRAJ]AXES no longer used
           [AXIS_n]HOME

inihal.cc  remove some refs

Signed-off-by: Dewey Garrett <dgarrett@panix.com>
2016-06-26 19:08:28 -06:00
Dewey Garrett
ded5760802 motion.c: new parameter to specify unlock hal pins
Unlock pins:
   joint.N.unlock
   joint.N.is-unlocked
may be needed for locking indexers (typically a rotary joint).

Previously, unlock pins were created based on the convention
for rotary axes (A,B,C).

For joints_axes branch, use a parameter to cause creation
of the unlock pins.

New parameter: unlock_joints_mask=
Example:       loadrt motmod ... unlock_joints_mask=0x38
               for joints 3,4,5

Signed-off-by: Dewey Garrett <dgarrett@panix.com>
2016-06-26 19:08:28 -06:00
Dewey Garrett
ce3e3f1680 motion.9 update man page for joints_axes
Signed-off-by: Dewey Garrett <dgarrett@panix.com>
2016-06-26 19:08:28 -06:00
Jeff Epler
01e82b2989 motion: remove overruns parameter
After the removal of heuristic overrun detection, this param's value
was never changed from 0.

As noted clearly in the documentation, this parameter was for debugging
and subject to removal at any time, so we don't need to wait to remove
it.

Signed-off-by: Jeff Epler <jepler@unpythonic.net>
2016-05-10 12:52:43 -05:00
John Thornton
d819fef886 Docs: change aio from 16 to 64
Signed-off-by: John Thornton <bjt128@gmail.com>
2016-01-14 09:08:55 -06:00
Sebastian Kuzminsky
4ef16263f0 docs: document motion.feed-inhibit better
Signed-off-by: Sebastian Kuzminsky <seb@highlab.com>
2015-07-15 17:36:35 -06:00
Chris Radek
e664379a2b Fix motion-type docs in motion manpage
Signed-off-by: Chris Radek <chris@timeguy.com>

Conflicts:
	docs/man/man9/motion.9
2014-10-20 13:08:17 -05:00
Sebastian Kuzminsky
4dd14c18a9 docs: add missing motion.motion-type to motion(9) manpage 2014-05-14 17:21:12 -04:00
Sebastian Kuzminsky
d897a13703 docs: update motion(9) to match reality
We haven't had a "motion.motion-inpos" pin since af317701 (January 2009).
2014-05-14 16:45:31 -04:00
Sebastian Kuzminsky
65933c3edf docs: fix motion(9) motion.in-position pin name
Also expand the description of the pin meaning a little.
2014-05-14 16:39:17 -04:00
Chris Morley
0033f781f7 docs -add descriptions of new motion pins to man pages
feed-inhibit, spindle-inhibit, and the two absolute spindle speed
pins.
2014-04-18 15:58:53 -07:00
John Thornton
2bb2ce6a21 Docs: fix typos
Signed-off-by: John Thornton <jthornton@gnipsel.com>
2013-08-21 08:14:41 -05:00
Sebastian Kuzminsky
46d8ef501d Merge remote-tracking branch 'origin/v2.5_branch'
Conflicts:
	VERSION
2013-07-31 09:57:02 -06:00
Sebastian Kuzminsky
9c8f24c09e docs: fix a typo in the motion manpage 2013-07-31 01:26:19 -06:00
Chris Radek
052de4f974 these are two different things - make sure it's clear 2013-07-21 14:40:32 -05:00
Jeff Epler
eaeed6404f Merge remote branch 'origin/v2.5_branch' 2013-07-01 15:05:19 -05:00
John Kasunich
02d22d652e allow for floating point in the base thread
when motion creates the base and servo thread,
the base thread doesn't support floating point.
When using brushless DC motors, it is desireable
to run the bldc component faster than the servo
thread, but it needs FP.  Added an module parameter
to motion that tells it to create a floating point
capable base thread.  Default behavior is the same
as before, so change is transparent.
2013-06-23 10:15:18 -05:00