Originally Posted by
spangledboy
I've done a little more research and I'd appreciate it if you can correct me in any areas where I might be wrong....
The way I understand it, the actual PID control of each axis is carried out by the servo drive itself - each drive is given pulse and direction by the controller and carries out the move with the encoder feedback going to the drive so that it knows what the position is. There will be feedback to the controller of position error, but there's not actually a requirement for the encoder to directly connect to the controller. I've also read the Granite Devices documentation and it seems that in "dual drive" configuration there's no passthrough of the encoder position available.
If I were to use EMC2 with the Mesa boards instead of Mach3 with an ethernet connected controller, the FPGA in the Mesa board would be acting as the controller, generating the pulse & direction and sending it to the drives rather than the ethernet controller doing exactly the same thing with it's FPGA. The PC processor running EMC2 or Mach3 in either case is not really carrying out the direct "real-time" control of the drives - this would only really happen in parallel port mode, which isn't where I want to go anyway. Mach 3 and EMC2 are translating M & G codes to actual movement commands, which in turn are translated to Pulse & Direction by the controller while also providing a user friendly graphical interface of the whole process.
Based on the above understanding, the whole process of making a CNC machine move would be as follows:
Draw component in CAD
Import CAD drawing to CAM software to generate G & M code
Import G code to MAC3/EMC2 PC
PC generates tool paths from G code and passes this to CNC controller via Ethernet, USB or PCI bus
Controller generates pulse and direction to the drive of each axis
Pulse and direction received by servo drive, which moves the servo motor in the required speed and direction until the encoder shows the correct position has been reached.
If I've got some of this wrong, please correct me - I really want to fully understand the process from a high level before drilling down into the specifics of updating my machine.
Thanks
Ben