Programmable PLC controllers