Programmable logic controller: Difference between revisions

Content deleted Content added
Reverted good faith edits by Nyq (talk): There are open questions about whether these are proper nouns, see Talk:Structured_text#Proper_noun? and Talk:Instruction_list#Proper_noun?. contribution to the discussion is welcomed.
 
(One intermediate revision by one other user not shown)
Line 33:
Many early PLC programming applications were not capable of graphical representation of the logic, and so it was instead represented as a series of logic expressions in some kind of Boolean format, similar to [[Boolean algebra]]. As programming terminals evolved, because ladder logic was a familiar format used for electro-mechanical control panels, it became more commonly used. Newer formats, such as state logic,<ref>{{cite web |url=https://control.com/technical-articles/state-machine-programming-in-ladder-logic/ |title=State Machine Programming in Ladder Logic |access-date=2024-08-18}}</ref> [[function block diagram]]s, and [[structured text]] exist. Ladder logic remains popular because PLCs solve the logic in a predictable and repeating sequence, and ladder logic allows the person writing the logic to see any issues with the timing of the logic sequence more easily than would be possible in other formats.<ref>{{cite web |title=Wrapping Your Head around Ladder Logic |date=27 August 2018 |url=https://www.dosupply.com/tech/2018/08/27/wrapping-your-head-around-ladder-logic/ |website=DoSupply.com |access-date=19 October 2020}}</ref>
 
Up to the mid-1990s, PLCs were programmed using proprietary programming panels or special-purpose programming [[Computer terminal|terminals]], which often had dedicated function keys representing the various logical elements of PLC programs.<ref name=":9" /> Some proprietary programming terminals displayed the elements of PLC programs as graphic symbols, but plain [[ASCII art|ASCII]] character representations of contacts, coils, and wires were common. Programs were stored on [[cassette tape cartridge]]s. Facilities for printing and documentation were minimal due to a lack of memory capacity. The oldest PLCs used [[magnetic-core memory]].<ref>{{citationCite web |last=Miller |first=Alex needed|date=May2014-01-29 |title=What is a PLC? And where did they come from? |url=https://learntechnique.com/what-is-a-plc-and-where-did-they-come-from/ |access-date=2025-08-24 |website=Technique Learning Solutions |language=en}}</ref>
 
==Architecture==
Line 85:
The main difference compared to most other computing devices is that PLCs are intended for and therefore tolerant of more severe environmental conditions (such as dust, moisture, heat, cold), while offering extensive [[input/output]] (I/O) to connect the PLC to [[sensor]]s and [[actuator]]s. PLC input can include simple digital elements such as [[limit switch]]es, analog variables from process sensors (such as temperature and pressure), and more complex data such as that from positioning or [[machine vision]] systems.<ref>Harms, Toni M. & Kinner, Russell H. P.E., ''Enhancing PLC Performance with Vision Systems''. 18th Annual ESD/HMI International Programmable Controllers Conference Proceedings, 1989, p. 387-399.</ref> PLC output can include elements such as indicator lamps, sirens, [[electric motor]]s, [[pneumatic]] or [[hydraulic]] cylinders, magnetic [[relay]]s, [[solenoid]]s, or analog outputs. The input/output arrangements may be built into a simple PLC, or the PLC may have external I/O modules attached to a fieldbus or computer network that plugs into the PLC.
 
The functionality of the PLC has evolved over the years to include sequential relay control, motion control, [[process control]], [[distributed control system]]s, and [[computer network|networking]]. The data handling, storage, processing power, and communication capabilities of some modern PLCs are approximately equivalent to [[desktop computer]]s. PLC-like programming combined with remote I/O hardware allows a general-purpose desktop computer to serve as a PLC in certain applications.{{citation needed|date=November 2014}} Desktop computer controllers have not been generally accepted in heavy industry because desktop computers run on less stable operating systems than PLCs, and because the desktop computer hardware is typically not designed to the same levels of tolerance to temperature, humidity, vibration, and longevity as PLCs.<!--[[User:Kvng/RTH]]-->
 
===Basic functions===
The most basic function of a programmable logic controller is to emulate the functions of electromechanical relays. DiscreteWithin the PLC programming environment, discrete inputs are given a unique address, and a PLC instruction can test if the input state is on or off. Just as a series of relay contacts perform a [[logical AND]] function, not allowing current to pass unless all the contacts are closed, so a series of "''examine if on"'' instructions will energize its output storage bit if all the input bits are on. Similarly, a parallel set of instructions will perform a [[logical OR]]. In an electromechanical relay wiring diagram, a group of contacts controlling one coil is called a "''rung"'' of a "''ladder diagram"'', and this concept is also used to describe PLC logic. {{efn|Some models of PLC limit the number of series and parallel instructions in one "rung" of logic. Some PLCs enforce a strict left-to-right, top-to-bottom execution order for evaluating the rung logic. This is different from electro-mechanical relay contacts, which, in a sufficiently complex circuit, may either pass current left-to-right or right-to-left, depending on the configuration of surrounding contacts. The elimination of these ''sneak paths'' is either a bug or a feature, depending on the programming style.}} The output of each rung sets or clears a storage bit, which may be associated with a physicaldiscrete output address or which may be an "''internal coil"'' with no physical connection. Such internal coils can be used, for example, as a common element in multiple separate rungs. Unlike physical relays, there is usually no limit to the number of times an input, output or internal coil can be referenced in a PLC program.
 
More advanced instructions of the PLC may be implemented as functional blocks, which carry out some operation, such as manipulating internal variable, when enabled by a logical input and which produce outputs to signal, for example, completion or errors, while manipulating variables internally that may not correspond to discrete logic.<!--[[User:Kvng/RTH]]-->
Some PLCs enforce a strict left-to-right, top-to-bottom execution order for evaluating the rung logic. This is different from electro-mechanical relay contacts, which, in a sufficiently complex circuit, may either pass current left-to-right or right-to-left, depending on the configuration of surrounding contacts. The elimination of these "sneak paths" is either a bug or a feature, depending on the programming style.
 
More advanced instructions of the PLC may be implemented as functional blocks, which carry out some operation when enabled by a logical input and which produce outputs to signal, for example, completion or errors, while manipulating variables internally that may not correspond to discrete logic.
 
=== Communication ===
Line 164 ⟶ 162:
* [[Industrial control system]]
* [[PLC technician]]
 
==Notes==
{{Notelist}}
 
==References==