Programmable Controllers for Factory Automation