Originally Posted by
UA_Iron
You're looking to have relay control synchronized with movements or other actions?
Is it coordinated motion that you're trying to do; things like perfectly circular movements requiring two or more synchronized axes is what I'm talking about. Or are you going to points in space, and dropping components off based off of other triggers (repeatable points)?
If you don't need coordinated motion, then a PLC is probably your best option. If you need coordinated motion, then you will need a motion controller to synchronize the axes.
At my work we use a 2 axis pick and place X-Y robot stage. We use Schneider Mdrive Plus2 stepper motors in the machine communicating over RS422. An ASCII command line is sent to the robot where to move (pulling location information from an xml file), this command line contains all the motion parameters: distance to move, acceleration, velocity etc. The integrated controllers in the motors handle the rest of the motion routines - converting distance to steps, looking at I/O from sensors, checking movement with encoders etc. Since the axes are not synchronized, once one axis has moved, the other is allowed (or controlled) to move.
The above requires a software front end at some point, while a PLC could achieve this without this front end as well as dealing with event based relay switching etc.
I'm not sure if mach3 can handle I/O coordinated with movements... but since it has I/O capability, I don't see why it couldn't - afterall, this is how the limit switches stop the machine or axis. There are other ways to solve this problem and still use mach3 though. If your stepper or motion drivers are capable, you can program I/O and routines from them, while driving them with the pulse train from mach3.