OpenPLC is a microcontroller based small scale PLC, It uses atmega16 as controller. It is programmed using free open source software LDmicro.