You maybe heard about PLC (Programmable Logic Controllers). They are usually common in an industry where automation of processes is needed. PLCs are expensive and probably hardly affordable to hobby-level enthusiasts. They normally come with software packages where you can build control processes using building blocks like Lego. Want one? Well, nobody told you that you could not build one.
Take a look at the open-source PLC project that tries to make these things accessible for everyone. It is based on an AT91SAM7S256 microcontroller with 256kB of Flash, 64kB of SRAM, and 8kB of EEPROM. PLCs are usually pretty same microcontroller boards with “hardened” I/Os. First of all, PLC is designed to be powered from 24V DC (optionally can be configured from 12V). It has 10 digital inputs with LED indicators. 8 outputs are paired with NPN transistors in an open-collector configuration capable of sinking 200mA each. And four 10-bit analog inputs rated at 10V. The PLC controller is split into several boards for better assembly and maintenance. There is a separate CPU board that carries MCU, communication interfaces like RS232, RS485, also RTC and EEPROM. Another is the I/O board, where you can find optically isolated inputs and outputs, power supply, USB, and JTAG. And the last one is a status board with LEDs that are visible to the user. The only difference from industrial PLCs that it doesn’t come with fancy GUI based builder, but rather with open-source GCC tools. The PLC we reviewed is relatively small. If you are looking for bigger, there is another almost twice bigger PCL built using the same idea. [..source..]