Advances in Software Engineering for PLC