What are the advantages and disadvantages of programmable logic controller?