Programmable logic controllers (PLCs) initially appeared in the industry during the 1960s and had a completely different form than those implemented today, since they were built out of logical components that only replaced the operation of the auxiliary relays. Even primitive PLCs were very reliable for a long time when compared to classical electromechanical relays, demanding much less space in the overall automation. Subsequently, their evolution passed through multiple stages, while the most important ones were inclusion of digital components for timing, synchronization and counting, and use of microprocessors. The microprocessors had already started to be a fundamental part of the personal computers (PCs). Nowadays, PLCs can be either simple or complex, come in a variety of sizes, and are equipped with a wide variety of extensions and interfaces that fulfill all the type of needs found at factory level, including the need to communicate with other devices and computers. It should also be mentioned that there are multiple programming languages for tuning the behavior of PLCs so that they can match the different programming skills of the end users. All these issues will be analytically covered in this chapter.