. .

Hybrid View

Previous Post Previous Post   Next Post Next Post
  1. #1
    m_c's Avatar
    Lives in East Lothian, United Kingdom. Last Activity: 18 Hours Ago Forum Superstar, has done so much to help others, they deserve a medal. Has a total post count of 2,964. Received thanks 368 times, giving thanks to others 8 times.
    Quote Originally Posted by Neale View Post
    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?
    That is the main problem with USB.
    Some controllers just can't handle errors.

    Mach3 was especially bad, as should a USB problem occur, Mach3 itself would lockup and become unrecoverable.
    Avoiding the rubbish customer service from AluminiumWarehouse since July '13.

  2. #2
    Quote Originally Posted by m_c View Post
    That is the main problem with USB.
    Some controllers just can't handle errors.

    Mach3 was especially bad, as should a USB problem occur, Mach3 itself would lockup and become unrecoverable.
    That's a plugin problem not Mach3. Mach3 doesn't know about USB at all since it is a parallel port based software.

  3. #3
    m_c's Avatar
    Lives in East Lothian, United Kingdom. Last Activity: 18 Hours Ago Forum Superstar, has done so much to help others, they deserve a medal. Has a total post count of 2,964. Received thanks 368 times, giving thanks to others 8 times.
    Quote Originally Posted by A_Camera View Post
    That's a plugin problem not Mach3. Mach3 doesn't know about USB at all since it is a parallel port based software.
    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

  1. Pci or Ethernet motion control?
    By Ross77 in forum Machine Control Software
    Replies: 27
    Last Post: 16-10-2019, 08:27 PM
  2. Any USB/Ethernet controller suggestions?
    By jtar40 in forum Motor Drivers & Controllers
    Replies: 64
    Last Post: 15-05-2019, 07:58 PM
  3. WANTED: Ethernet Smooth Stepper
    By davidimurray in forum Items Wanted
    Replies: 3
    Last Post: 08-10-2017, 02:29 PM
  4. UC300 Ethernet
    By noyloj in forum CNCdrive (UC100, UC300ETH)
    Replies: 12
    Last Post: 02-01-2017, 10:21 PM
  5. Help mach3 ethernet set up
    By kell in forum Artsoft Mach (3 & 4)
    Replies: 3
    Last Post: 06-12-2015, 10:26 PM

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •