Thread: Why Ethernet instead of USB?
Hybrid View
-
05-04-2018 #1
-
05-04-2018 #2
-
05-04-2018 #3
It was a problem exasperated by Mach3's architecture.
You are correct in saying Mach3 was originally written only for a parallel port, but that meant that it wasn't well designed to have a plugin controlling motion flow, and is why the problem was so critical.
Mach3 simply output the motion, and the plugin was expected to handle it. Should the plugin not be able to handle it, and needed to halt the incoming motion, it could halt the motion, but it had no way to reverse back should anything get lost. It was a balancing act between buffer size, and how long you could allow for timeouts to occur/recovery to be started.
You could set a large several second long buffer, but that delays any changes in Mach from happening at the machine, so is not good, but allows more time for any communication issues to be handled.
But if you keep buffers short, it limits how much time the plugin then has to handle any communication issues, and also risk buffer underflow.
This all led to the problem that if you ran say one second worth of buffer, which could potentially be several blocks worth of G-code, and communication stopped. The plugin would know where communication had stopped, but it had the problem of having that second worth of g-code in it's buffer, and no way of rewinding Mach back to the block where motion had stopped. You were then in the problem area of how do you recover from that point?
The same problem applies to Ethernet controllers, however as they're less likely to suffer from communication issues, it's not anywhere near as big a problem.
For an example of how USB can be done well, look at a KFlop. The KFlop and KMotionCNC continually exchange information. The buffer is transferred a set period in advance, but KMotionCNC on screen only advances a block, once the KFlop has told KMotionCNC that that block has been physically completed. KMotionCNC always knows where the KFlop/machine is, and KFlop has the ability to tell KMotionCNC it's lost a packet, and to resend it. It also has the ability to tell KMotionCNC to run in reverse. KMotionCNC also has the ability to flush the KFlop's buffer so any on screen changes (i.e. SSO or FRO) happen much faster, and not be slowed by the buffer time.
If you unplug a KFlop mid-job, it'll run until it's buffer empties then halt, and KMotionCNC will warn you it's lost communication. Plug it back in, KMotionCNC will learn where motion was halted, and on clicking cycle start again, it'll continue from where it halted, just as if you'd activated a feedhold.
I'm sure other controllers with dedicated software are also using similar methods, but it was a capability Mach3 just didn't have.Avoiding the rubbish customer service from AluminiumWarehouse since July '13.
Thread Information
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
Similar Threads
-
Pci or Ethernet motion control?
By Ross77 in forum Machine Control SoftwareReplies: 27Last Post: 16-10-2019, 08:27 PM -
Any USB/Ethernet controller suggestions?
By jtar40 in forum Motor Drivers & ControllersReplies: 64Last Post: 15-05-2019, 07:58 PM -
WANTED: Ethernet Smooth Stepper
By davidimurray in forum Items WantedReplies: 3Last Post: 08-10-2017, 02:29 PM -
UC300 Ethernet
By noyloj in forum CNCdrive (UC100, UC300ETH)Replies: 12Last Post: 02-01-2017, 10:21 PM -
Help mach3 ethernet set up
By kell in forum Artsoft Mach (3 & 4)Replies: 3Last Post: 06-12-2015, 10:26 PM
Bookmarks