A programmable logic controller (PLC) or programmable controller is a digital computer used for automation of electromechanical processes, such as control of machinery on factory assembly lines, amusement rides, or lighting fixtures. PLCs are used in many industries and machines. Unlike general-purpose computers, the PLC is designed for multiple inputs and outputarrangements, extended temperature ranges, immunity to electrical noise, and resistance to vibration and impact. Programs to control machine operation are typically stored in battery-backed or non-volatile memory. A PLC is an example of a hard real time system since output results must be produced in response to input conditions within a bounded time, otherwise unintended operation will result.PROGRAMMING
Early PLCs, up to the mid-1980s, were programmed using proprietary programming panels or special-purpose programming terminals, which often had dedicated function keys representing the various logical elements of PLC programs. Programs were stored on cassette tape cartridges. Facilities for printing and documentation were very minimal due to lack of memory capacity. The very oldestPLCs used non-volatile magnetic core memory.
More recently, PLCs are programmed using application software on personal computers. The computer is connected to the PLC through Ethernet, RS-232, RS-485 or RS-422 cabling. The programming software allows entry and editing of the ladder-style logic. Generally the software provides functions for debugging and troubleshooting the PLC software, for example,by highlighting portions of the logic to show current status during operation or via simulation. The software will upload and download the PLC program, for backup and restoration purposes. In some models of programmable controller, the program is transferred from a personal computer to the PLC though a programming board which writes the program into a removable chip such as an EEPROM or EPROM.COMMUNICATIONS
PLCs have built in communications ports, usually 9-pin RS-232, but optionally EIA-485 or Ethernet. Modbus, BACnet or DF1 is usually included as one of the communications protocols. Other options include various fieldbuses such as DeviceNet or Profibus. Other communications protocols that may be used are listed in the List of automation protocols.
Most modern PLCs can communicateover a network to some other system, such as a computer running a SCADA (Supervisory Control And Data Acquisition) system or web browser.
PLCs used in larger I/O systems may have peer-to-peer (P2P) communication between processors. This allows separate parts of a complex process to have individual control while allowing the subsystems to co-ordinate over the communication link. Thesecommunication links are also often used for HMI devices such as keypads or PC-type workstations.
The functionality of the PLC has evolved over the years to include sequential relay control, motion control, process control, distributed control systems and networks. Data management, storage, power capabilities and communication processing of some modern PLCs are approximately equivalent to desktopcomputers. PLC-like programming combined with remote I / O hardware, allow a desktop computer for general purposes overlap some PLCs in certain applications. With regard to the viability of these logic controllers based desktop computer, it is important to note that they have not been generally accepted in heavy industry because desktops that run on operating systems less stable than automatons,and because the desktop computer hardware is usually not designed to the same levels of tolerance to temperature, humidity, vibration and longevity as the processors used in the PLC.
In addition to the hardware limitations of logic based desktop, and Windows operating systems do not lend themselves to deterministic execution of logic, so that logic can not always respond to changes in the...