Thread: Why Ethernet instead of USB?
Hybrid View
-
05-04-2018 #1
I had always assumed that USB was single-ended with a data signal in each direction. So I did what I should have done anyway and had a quick look at some better descriptions. Looks as if USB devices must have both send and receive capability on a single twisted-pair and indeed use differential signalling. Most of the time... Apparently single-ended signalling can also be used for a few special cases - maybe device reset, for example. Which might explain why USB is normally OK, but can give the odd problem. As for transmission protocols - it's certainly true that TCP will generally handle errors on an Ethernet (IP) link, but it's up to the designer of the USB device to decide if they are going to implement error detection and correction. And who knows what they do under the covers?
Given the problems of diagnosing noise-related issues, I would tend to go Ethernet to give the best chance of not having to diagnose them in the first place! But then, I've been playing with Ethernet since the days when you had to drill the chunky coax cable to fit each device adaptor...
-
05-04-2018 #2
Absolutely. I value my time more than wasted hours debugging an unreliable system. I have experienced unreliable operation over USB on a RepRap 3D printer. For the mill I got a cheap ethernet motion controller; I have, this week, taken delivery of a UC300ETH. For me, ethernet all the way.
-
05-04-2018 #3
-
05-04-2018 #4
-
05-04-2018 #5
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



Reply With Quote


Bookmarks