On Fri, Jan 24, 2020 at 8:29 PM Alan Condit <condit.a...@gmail.com> wrote:

> Chris,
>
> If I send 10000 steps to a smart X-axis controller, how does it stay in
> sync with a smart
> y-axis controller without someone controlling the synchronization between
> the two?
>

As said, "steps" are the wrong thing to send.   What they do is send time,
tagged points.  Each point has a time tag on it.    It is not hard to
synchronize clocks at the microsecond level.

What they send is a list of target points.    Assuming the machine works in
(x, y, z) space each point, you have "time", (x, y, z) and (x', y', z') and
(x'', y'', z'').   A machine might have more or fewer axis with different
names, but same idea.       Each controller can handle up to some maximum
number of axis and it wold not be until you are over that limit that you'd
have to split things.  Doing six axis on one controller is reasonable.

The controller tries its best to hit the target points.  It can happen that
a target is impossible.  Also, some of ths data can be omitted.  Doing so
wuld free the controller to do what it "wants".  I think you always want
x,y,z but could maybe omit the prime (velocity) or double prime
(acceleration)  This kind of path planning is what LinuxCNC already does,
but today it is reasonable to push this down into a $5 chip.

LinuxCNC is originally written used the exact oposite aproach and move all
the "smarts" upstream into a PC.

The non-real-time part has to read the g-code or the conversational
interface or the hand pendant or video data and convert to a stream of
target points.

That said, "steps" could work if each one had a time tag.  But that pushes
the planning upstream and I think the better plan is to move as much
"smarts" as possible as close to the physical motor as possible.   So let
the motor driver figure out what rate to drive each otor so the targets are
reached.



Alan
>
> > From: Chris Albertson <albertson.ch...@gmail.com>
> > Subject: Re: [Emc-users] Real-time OS for machine controllers
> > Date: January 24, 2020 at 9:48:27 AM PST
> > To: "Enhanced Machine Controller (EMC)" <emc-users@lists.sourceforge.net
> >
> >
> >
> > If you can tolerate latency, then your "hub" does not need what we call
> > "hard" real-time capability.  It only needs to keep up with the average
> > workload, averaged over whatever latency you can tolerate.  Video
> streaming
> > works this way.    They can't reliably send video and the 60 Hz frame
> rate
> > so they buffer a few seconds of video on your phone and the real-time
> > viewer lives on the phone  not the server.
> >
> > g-code could be the same way.   The penalty is that when you press the
> "go"
> > button the milling machine would take a few seconds the start working
> while
> > the data buffers into the low-level motor controllers.     Today a
> > step/direction controller has no memory so it must be fed steps in real
> > time.  But if it has a 10,000 step memory you could just transfer blocks
> > ever half second and the controller would work down the queue.    "Steps"
> > are the wrong kind of data for this but "states" are what is used.
> >
> > You are correct in that some real-time ability is needed at every level.
> > But we could design things so the requirements are VEY loose at the
> highest
> > level for 0.5-second latencies being acceptable.   One you need only
> that,
> > then even an iPhone is a good enough platform.
> >
> > On Thu, Jan 23, 2020 at 11:32 AM Peter C. Wallace <p...@mesanet.com>
> wrote:
> >
> >> On Thu, 23 Jan 2020, Chris Albertson wrote:
> >>
> >>> Date: Thu, 23 Jan 2020 10:17:44 -0800
> >>> From: Chris Albertson <albertson.ch...@gmail.com>
> >>> Reply-To: "Enhanced Machine Controller (EMC)"
> >>>    <emc-users@lists.sourceforge.net>
> >>> To: "Enhanced Machine Controller (EMC)" <
> emc-users@lists.sourceforge.net
> >>>
> >>> Subject: Re: [Emc-users] Real-time OS for machine controllers
> >>>
> >>> The trouble with the Mesa FPGA design is that it depends on a computer
> >> with
> >>> good real-time performance.   It can generate steps but I don't thing
> you
> >>> can run a position or velocity PID control loop on the FPGA.
> >>
> >> LinuxCNCs design paradigm requires realtime, this is a design decision
> >> that is
> >> supported by our Hostmot2 real time firmware. We have other firmware
> that
> >> implements motion in the FPGA but this is not suited to LinuxCNCs model.
> >>
> >>
> >> You might argue that its an old fashioned model but many high
> performance
> >> CNC
> >> systems and Robotics controllers use LinuxCNCs model of a capable real
> >> time host
> >> (real OS with file I/O loadable modules, unlimited memory, massive
> >> floating
> >> point performance etc etc) Some of these use Linux and others use real
> >> time
> >> windows varients often with Ethercat Peripherals. This makes for a
> >> powerful
> >> extensible realtime toolkit (like LinuxCNCs HAL) and complex realtime
> >> responsive coordinated motion. Basically for this type of system you
> still
> >> need a very capable real time controller hub even if the motor
> controllers
> >> implement torque, velocity, or position loops
> >>
> >>
> >> Peter Wallace
> >> Mesa Electronics
> >>
> >>
> >>
> >> _______________________________________________
> >> Emc-users mailing list
> >> Emc-users@lists.sourceforge.net
> >> https://lists.sourceforge.net/lists/listinfo/emc-users
> >>
> >
> >
> > --
> >
> > Chris Albertson
> > Redondo Beach, California
>
>
> _______________________________________________
> Emc-users mailing list
> Emc-users@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/emc-users
>


-- 

Chris Albertson
Redondo Beach, California

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

Reply via email to