Programmable Automation Technologies:  An Introduction to CNC, Robotics and PLCs