plc functional requirements