Skip to content

[Feature Request] non‑coordinated moves #1225

@T3P3

Description

@T3P3

Some applications require one or more motors , or axes, to move in a away that is not co-ordinated with other motors during the move.

One example is a subset of this request:
#780

  • Set up an axis to rotate continuously at a certain speed and also start/stop it or change the speed without interfering with a running program.

Further requirements:

  • Controls one or more motors with a continuous speed command independently.
  • Multiple commands of this type can be active at the same time; each motor runs independently.
  • Motion continues until it is explicitly changed or stopped. Changing the speed to a non-zero value does not stop the motor either by sending another command for that motor or by sending this command with a stop option.
  • Direction can be set either by the sign of the speed or by a dedicated direction parameter.
  • Independent rotation can be limited with a parameter
  • A ramp parameter per command would make it easier

Things to consider is how these sorts of axes/drives would be handled in pause, resume, cancel (probably explicitly require the pause, cancel, resume macros to handle them, other wise they keep going). Also rotary axes in resurrect.g has come up before:
#621

A possible example implementation has been proposed using G66:

Parameters

  • Motors: list of axes, e.g., XYZ
  • Speed: e.g., F6000 (feed/speed)
  • Ramp: e.g., R300 (acceleration/deceleration)
  • Max rotations: e.g., L10 — if omitted, the motor runs indefinitely

Examples

  • G66 XY F6000 R300 L10
  • Starts X and Y motors in parallel forward with a ramp of 300 mm/s² to a speed of 6000 mm/min and stops after 10 rotations.
  • G66 Z F-6000
  • Motor Z starts to run at 6000mm/min backwards
  • G66 X S0 R300
  • Stops X motor using the specified ramp (S0 indicating stop/speed zero).
  • or G66 XYZU (F0)
  • Stops motors X, Y, Z, and U (no speed provided -> stop command).

However G66 is already used as a macro call gcode in other gcode flavours (e.g FANUC) so we would want to pick a different one.

Metadata

Metadata

Assignees

Labels

enhancementAdditional functionality, performance or other feature request

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions