On Sat, 16 Apr 2022, Torsten Curdt wrote:

Date: Sat, 16 Apr 2022 18:09:08 +0200
From: Torsten Curdt <tcu...@vafer.org>
To: Torsten Curdt via Emc-developers <emc-developers@lists.sourceforge.net>
Cc: Peter C. Wallace <p...@mesanet.com>
Subject: Re: [Emc-developers] curious about the ethernet protocol

How come you send the velocity commands and not target positions? Size of
the positioning data I assume?


Basically just following the LinuxCNC model of having the host be the
locus of control. This is the basic difference between buffered systems
like Mach and LinuxCNC. By having the LinuxCNC host be the controller
you gain a number of advantages:

1. The external hardware is simpler (and more uniform)
2. The more complex parts of the control are located on a host
with basically unlimited memory and CPU capabilities so real time behaviour
is extensible by a large group of users/developers using standard tools.
3. Specifically, returning actual position allows use of the following
error mechanism for tuning and robust fault detection without a side
channel of status information.


I get the general idea. But I am still a little shy on the details.

It sounds on a LPT port setup the host sends every individual step to the
port.
Now if the motor has an encoder LinuxCNC could read the position every 1ms
and make it a host based closed loop system. And I get the appeal.
But people are also using LinuxCNC with a BOB and Open Loop Steppers
without an encoder.
So it sounds like the feedback is missing there.

Its still there but internal to the stepgen component


Now for the Mesa card setup.
IIUC LinuxCNC does not send every individual step over ethernet. Instead it
sends motion controls commands.
You said they are velocity commands. So it should be something along the
lines of:

"x+1000 steps in 1500ms"
"y-100 steps in 500ms"


Simpler that that, linuxCNC simply sends the step rate
(scaled for the hardware)

On top of that the Mesa card will report back the position of the motors
(steps from 0?) every 1ms to the host.

Not steps from 0 but rather relative position as a signed 32 bit number
 16.16 (whole steps.fractional steps)

(LinuxCNCs position is a FP double)


Is that correct?


cheers,
Torsten


Peter Wallace
Mesa Electronics

(\__/)
(='.'=) This is Bunny. Copy and paste bunny into your
(")_(") signature to help him gain world domination.



_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to