Talk:Programmable logic controller: Difference between revisions

Content deleted Content added
 
(27 intermediate revisions by 11 users not shown)
Line 1:
{{afd-merged-from|List of programmable logic controller manufacturers|List of programmable logic controller manufacturers|23 November 2020}}
{{Talk Header}}
{{WikiProject Technologybanner shell|importanceclass=HighC|class=B
{{WikiProject Technology}}
| b1 <!--Referencing & citations--> = no
{{WikiProject Systems |importance=High}}
| b2 <!--Coverage and accuracy --> = no
}}
| b3 <!--Structure --> = yes
| b4 <!--Grammar and style --> = yes
| b5 <!--Supporting materials --> = yes
| b6 <!--Accessible --> = yes}}
 
== Pneumatic and mechanical PLC's ==
Line 91 ⟶ 89:
I notice that [[Programmable logic controller]] has chosen to use asterisks to denote that PLC is a registered trademark of Allen-Bradley, and [[Unix]] has chosen to use the extended ASCII registered trademark character. I'll let you guys duke it out, but we really shouldn't have two standards.--[[User:Superluser|Superluser]] 00:35, 19 April 2007 (UTC)
 
I removed the "®" based on [[Wikipedia:Manual of Style (trademarks)]]. --'''[[User:Dailynetworks|<fontspan colorstyle="color:mediumblue;">Mark</fontspan> @ <fontspan colorstyle="color:green;">DailyNetworks</fontspan>]]''' [[User_talk:Dailynetworks|<small>talk</small>]] 02:12, 28 May 2007 (UTC)
 
I had noticed [http://www.siemens.com Siemens] and other manufacturers use the term "PLC". I checked with the [http://www.uspto.gov United States Patent and Trademark Office] and [http://tess2.uspto.gov/bin/showfield?f=toc&state=sr9am5.1.1&p_search=searchss&p_L=50&BackReference=&p_plural=yes&p_s_PARA1=&p_tagrepl%7E%3A=PARA1%24LD&expr=PARA1+AND+PARA2&p_s_PARA2=Allen-Bradley&p_tagrepl%7E%3A=PARA2%24OW&p_op_ALL=AND&a_default=search&a_search=Submit+Query searched Allen-Bradley]. I did not find PLC or Programmable Logic Controller registered to Allen-Bradley. I did find PLC-2 (registration number 1103007), PLC-3 (registration number 1228339), and PLC-5 (registration number 1709845). --'''[[User:Dailynetworks|<fontspan colorstyle="color:mediumblue;">Mark</fontspan> @ <fontspan colorstyle="color:green;">DailyNetworks</fontspan>]]''' [[User_talk:Dailynetworks|<small>talk</small>]] 02:28, 28 May 2007 (UTC)
 
== PLC compared with other control systems ==
Line 170 ⟶ 168:
== I don't understand the diagram in [[Programmable logic controller#Example]] ==
 
Why are there two "Fill Valves"? I thought only the high level and low level switches are meant to be the inputs, so why is there a "Fill Valve" input? Also, isn't the high level switch meant to be a cutoff?--[[User:Alasdair|<fontspan facestyle="font-family:Comic sans MS"; color=":ForestGreen;"><b>Alasdair</b></fontspan>]] 12:57, 25 September 2009 (UTC)
 
:That isn't an input, it is the output being used as a contact. The purpose is to "latch" the "Fill Valve" output on. Without this, the output would turn off (or worse - jitter) when the water level raises above the low level switch. [[User:Krushia|Krushia]] ([[User talk:Krushia|talk]]) 14:26, 26 September 2009 (UTC)
 
::Well now that you made me take a belated look at it, the second to the last paragraph in that example section is wrong with respect to the example. The hysteresis comes from the float switch configuration, not the PLC. And a hysteresis response to a discrete input is not applicable/possible. <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 00:22, 1 May 2012 (UTC)
 
:::I fixed it. The fix now makes it a bit off topic, but looks close enough. <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 02:26, 1 May 2012 (UTC)
 
::::Took a closer look and did additional work elsewhere on the example. <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 02:58, 1 May 2012 (UTC)
 
:::::It's been a long time since I've worked on this article and I see that someone has broken the description of the inverse logic inputs. The article before was correct. The way the rung works is if both inputs are off then the 'normally closed' contacts "in the rung" will be closed and the output will turn on. '''[No, that is incorrect. If the physical level switches are both closed, that will send a TRUE signal to the PLC. If you invert that with a "NC" instruction, then the result is FALSE, so your fill valve will not turn on. But if you do not invert the TRUE, but use a NO PLC instruction (which is not the same as the physical switch) to "read" the physical switches, then the fill valve will turn on and fill the tank. See this test using the LogixPro simulator http://www.plctalk.net/qanda/showthread.php?p=569570&posted=1#post569570 by Lancie01]''' Also the article as written seems to confuse the contacts on the switches and the contacts in the rung. I'll put in a better description and fix this when I get a chance. Since this seems to get changed every so often I'll put in some references to terms like 'normally closed' and 'normally open' and 'inverse logic'. Although I did PLC programming and system design for many years I understand the wikipedia requirement of using references to published documents.[[User:Crunchy Numbers|-Crunchy Numbers]] ([[User talk:Crunchy Numbers|talk]]) 02:27, 10 May 2012 (UTC)
::::::It was correct both before and after the changes I made. (except for the "hysteresis" error noted above) The difference is that before my changes it was only partially and confusingly explained for a person trying to learn something from this; I fixed that. "Normally closed" and "normally open" would be confusing and ambiguous terms to use here for the float switch contacts because the equipment based meanings for those terms are the opposite of the general control scheme here because this is a fill type application. Ditto and even more so for the term "reverse logic" . Sincerely, <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 11:21, 10 May 2012 (UTC)
 
:::::::I think the example description and diagram do not match. The description states that the high and low level switches turn on when the level drops, but the diagram appears to turn on the fill valve only when both are both contacts return true for the off condition, ie when the floats are in their open condition and the tank is full. I have only recently started learning about plcs and ladder logic and am far from expert in it, but I think my analysis is correct. I will leave it to someone more experienced to verify and make any necessary changes <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/78.152.205.202|78.152.205.202]] ([[User talk:78.152.205.202|talk]]) 12:08, 21 October 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
:::::::::Not following your question / point. Could you clarify? In particular "true for the off condition" Sincerely, <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 19:01, 21 October 2012 (UTC)
::::::::: The float sensors (as described in the text) give a signal when the water level is ''below'' the sensor. To start pumping, the level must be below both. [[User:Andy Dingley|Andy Dingley]] ([[User talk:Andy Dingley|talk]]) 19:29, 21 October 2012 (UTC)
:I propose moving the example code to [[ladder logic]]. [[User:Krushia|Krushia]] ([[User talk:Krushia|talk]]) 04:38, 22 October 2012 (UTC)
:::::::Ok, the fill valve is turned on when it preceded by a line of true conditions on the ladder rung. If we ignore the fill valve latch, the program will interrogate the low and high level switches, and since they are shown as [/](what I have been taught to refer to as EXAMINE FOR OFF), the program will interpret them as true if they are off(ie open) and false if they are on(ie closed). However the example as written states that the switches are closed(ie on) when the level is low, so the program will find two false conditions (since it is looking for off) and the valve will not open. This can be simply rectified by altering the notation for both Low Level and High Level on the diagram from [/] to [ ]. Hopefully this is clearer. Regards <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/78.152.205.202|78.152.205.202]] ([[User talk:78.152.205.202|talk]]) 22:04, 22 October 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
 
:::::::: Still not following, but it sounds like both the root of the problem and the freedom for the proposed solution is the ambiguity of the [/] and [] contact symbols for float switches since float switches do not have an unambiguous "normal" state. But the diagram does follow the somewhat normal convention where the lower liquid level condition is called the "normal" state. But this application (being "pump in" rather than "pump out") is the reverse of the normal float switch application, making the "normal" state not so "normal". Long story short, I don't agree that there is an error, but have no objection to changing those two symbols as you propose. <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 22:16, 22 October 2012 (UTC)
{{outdent}} There is a perfectly unambiguous convention for switches; the position on the diagram is the "on the shelf", non-operated, position (ANSI Y32.2 clause 4.3). The ANSI/IEEE and IEC standards also contain conventions for switches that are normally open but held closed by the process, or reverse. --[[User:Wtshymanski|Wtshymanski]] ([[User talk:Wtshymanski|talk]]) 14:09, 23 October 2012 (UTC)
:That convention would dictate showing the float switches as normally closed (as they currently are). The fact that that "normal" position is "abnormal" for this particular application I think caused some confusion for the individual who wrote, but I think that that convention is a good idea and also follows the most common practice. <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 14:52, 23 October 2012 (UTC)
::Ok, to clarify (I am the one that raised the question). My confusion, it seems to me, arises from the possibility that although the diagram appears like a fragment of ladder code, it is maybe a kind of quasi wiring diagram, hence your concern with adhering to conventions re the representation of different types of switches. As a piece of ladder code, it would not behave correctly, for the reason that I have already outlined. This confusion is understandable since we are talking about PLCs, most of which are coded using ladder logic. If it is intended to be a ladder code fragment it needs the change I suggested, if not it needs to be clearer exactly what the diagram's purpose is.
::PS: I apologise if my formatting (indents etc) is wrong, I am new to this. Regards[[User:Trooperman94|Trooperman94]] ([[User talk:Trooperman94|talk]]) 21:34, 23 October 2012 (UTC)
:::I think that I understand now. It is not clear whether the float switch symbols on the diagram represent the real world devices or symbols in a software program. And if its the latter, that representation might not be correct. <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 10:40, 24 October 2012 (UTC)
:::: We probably need to explain that the symbols on the ladder diagram are operating on holding register bits in the PLC memory, not the actual contact status of the field device. You need to know what "power on the PLC input" means to the process - does it signify "level above the float switch/button held down/limit switch operated" or the reverse? Since this is a fruitful source of bugs in new PLC programs, the point probably wants some expansion. --[[User:Wtshymanski|Wtshymanski]] ([[User talk:Wtshymanski|talk]]) 13:44, 24 October 2012 (UTC)
 
In the water level controller sample program shown in the page high level and low level float switches are open (input low) when water is above them and vice versa. That means for the fill valve to be latched open both inputs should be high. But this sample program shows both input should be low for the valve to be latched. Can anyone check? <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/78.100.32.30|78.100.32.30]] ([[User talk:78.100.32.30|talk]]) 10:38, 12 December 2013 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
 
:We are using some terms and symbols that are inherently ambiguous or confusing in the case at hand. Namely "normally" and the meanings of representations in the PLC of "normally" open and "normally" closed contacts. We are also using an example (pump to full) which is the reverse of the more common pump application which is "pump to empty". IMHO your post was correct until it said "But this sample program shows both input should be low for the valve to be latched." which is not the case. We should probably change the example to one where the real word devices have a clear and intuitive "normal" state (e.g devices that spring to that position, are in that position when the system in the application is at rest), and where they are and are represented as normally open contacts. I think that that would solve the eternal confusion with this example. <b><font colorspan style="color:#0000cc;">''North8000''</fontspan></b> ([[User talk:North8000#top|talk]]) 12:19, 12 December 2013 (UTC)
 
I dont really see PLC caring about whether a contact is physically NO or NC, or if it is pump to full or pump to empty, or spring to position or anything like that. In the description section it is said "In ladder diagram, the contact symbols represent the state of bits in processor memory, which corresponds to the state of physical inputs to the system. If a discrete input is energized, the memory bit is a 1, and a "normally open" contact controlled by that bit will pass a logic "true" signal on to the next element of the ladder." So if the input contacts are physically closed the corresponding input address is high, and have a 1 bit in the internal memory, which happens when the tank is empty as per the description. So that should have been the condition for latching the valve, right? <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/176.203.50.177|176.203.50.177]] ([[User talk:176.203.50.177|talk]]) 15:06, 12 December 2013 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
Line 213 ⟶ 211:
:#The "low level" switch opens, but such has no effect and so the pump continues to raise the level of the liquid
:#The level rises through the setpoint of the "high level switch". This "breaks" the circuit and shuts the pump off and the control system also opens the latching contact.
:So there's a description of the physical reality of the system and what the control system needs to do. Next is the more confusing part, which is how to represent the physical and software implementation using a PLC. Sincerely, <b><font colorspan style="color:#0000cc;">''North8000''</fontspan></b> ([[User talk:North8000#top|talk]]) 15:30, 12 December 2013 (UTC)
 
I guess you are putting across the actual physical logic for a layman (when the water level is low both switches are "Normally Closed" which condition should energize the fill valve) with no introduction to the ladder logic programming. In that case I guess this is a good idea, but still I think it is better to clarify this in the article page not to confuse those who know a little ladder logic programming. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/176.203.50.177|176.203.50.177]] ([[User talk:176.203.50.177|talk]]) 17:09, 12 December 2013 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
:I agree with you 100%. My post above was ''only'' to describe the absolutely unambiguous part as only a ''piece'' of the answer. <b><font colorspan style="color:#0000cc;">''North8000''</fontspan></b> ([[User talk:North8000#top|talk]]) 18:12, 12 December 2013 (UTC)
 
== mounting standard ==
Line 228 ⟶ 226:
== Somebody keeps taking out the history of PLC's and substituting the History of Modicon ==
 
Please stop doing this. <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 15:52, 18 July 2011 (UTC)
 
== PLC vs. What you can use a PLC at ==
Line 234 ⟶ 232:
This article is focused on PLC usage rather than explaining what a PLC really is, or moreover, what a PLC is made of. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/86.125.236.87|86.125.236.87]] ([[User talk:86.125.236.87|talk]]) 21:49, 30 April 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
 
:It's certainly not perfect, but I think it is focused on providing the common useful information. A PLC is made of nearly all of the parts used to build any type of electronic equipment (resistors, capacitors, printed circuit boards, integrated circuits, transistors, diodes etc.) plus sometimes a few that are electromechanical equipment. IMHO the former is not very unique/informative regarding PLC's. <font colorspan style="color:#0000cc;">''North8000''</fontspan> ([[User talk:North8000#top|talk]]) 03:03, 1 May 2012 (UTC)
 
== PLC vs PAC? ==
Line 269 ⟶ 267:
==Large amount of April 11th, 2017 additions==
 
I think that there are numerous problems with the April 11th additions but I was hesitant to revert en-masse. It noted a problem with a particular vendor, and the complaint looks implausible. The descriptions of timers look confusing and missing important pieces at best, and in conflict with standard timers at worst, and it appears that the terminology may be specific to one vendor. The counter section seems to base itself on vendor-specific terminology. In the up/down counter area it conflicts with the common "up/down" (bi-directional) counter-specialized input on PLC's which utilizes a quadrature input, not separate "up" and "down" inputs. There is only once source used, off line and lacking in specifics with no info with respect to publishing, except possibly naming today's date as a publishing date. <b><font colorspan style="color:#0000cc;">''North8000''</fontspan></b> ([[User talk:North8000#top|talk]]) 18:43, 11 April 2017 (UTC)
 
== Invented When? By Whom? ==
Line 312 ⟶ 310:
I don't think that any such top level tags are warranted. A short/medium length article with 23 references, written in wording that is pretty friendly to non-experts. As far as "OR" the tagger should which part they believe is O/R. <b style="color: #0000cc;">''North8000''</b> ([[User talk:North8000#top|talk]]) 19:59, 11 February 2020 (UTC)
 
:I added this tags mainly as a response to the lates series of edits, but even before there were problems. About half of all statements lack any reference. At first, I just wanted to tag them inline, but there's quite many of them. I don't always question their validity, but the source is still welcome. {{break}} When it comes to [[WP:OR]], section [[https://en.wikipedia.org/wiki/Programmable_logic_controller#Programmable_logic_relay_(PLR) | Programmable logic relay (PLR)]] comes to my mind as it seems to come from personal knowledge or opinion. {{break}} When it comes to being too technical – it's not bad, but it uses jargon in places that I feel it can be avoided. I also dislike this bit: ''Examples of this would be an output address could be called “O”, “Y”, or “Q”. Some models of PLC have addressing in tables to organize data (N:7, DB12.DBW0), whereas other models permit you to use free text entry in a “Tag” format (ThisTagHere). Logic and process flow would operate the same between the differing models should the correct equivalent programming is entered.'' — [[User:K4rolB|K4rolB]] ([[User talk:K4rolB|talk]]) 21:28, 11 February 2020 (UTC)
::I think that those are all excellent and valid points. Except "more references" is pablum that can be said about 99% of articles, and this one looks mid-range regarding that. But I still don't think that they rise to the level of top level tags. I'd say lets improve it in some of those areas and then remove the top level tags. <b style="color: #0000cc;">''North8000''</b> ([[User talk:North8000#top|talk]]) 14:37, 12 February 2020 (UTC)
:::Well, we could probably argue for a long time about how serious the problems really are, but you're right. I didn't want to sound conceited. If I had time on my hands to just fix it, I would have done it. But now, with problems stated and discussion started, I ''will'' try to tackle some. — [[User:K4rolB|K4rolB]] ([[User talk:K4rolB|talk]]) 20:30, 12 February 2020 (UTC)
::::Cool. I fixed a couple of things to start. <b style="color: #0000cc;">''North8000''</b> ([[User talk:North8000#top|talk]]) 14:05, 13 February 2020 (UTC)
 
::[[WP:TAGBOMB]]ING is not particularly productive. Thanks for highlighting specific areas needing improvement here on the talk page. I often review prior talk page comments (even very old ones) when making improvements. ~[[User:Kvng|Kvng]] ([[User talk:Kvng|talk]]) 14:40, 16 February 2020 (UTC)
 
== Article copyedit ==
 
I decided to work on some problems I saw in the article and it quickly became quite a big copyedit. I didn't want to just slap it on top of the existing article and it would be hard to add it in parts if it has to still make sense so I decided to create [[User:K4rolB/PLC|a workpage for it]] and ask for your opinions. It's very much work-in-progress but these are the main changes and logic behind them:
* '''Overview''' was divided between lead section and '''invention and early development''', because it fits there, and from [WP:MOS] standpoint, lead section should be an overview.
* removed everything that wasn't ''invention'' or ''development'' from '''invention and early development'''. '''Future''' is there just for a moment, until I know what to do with info under it. Ignore it. I've read and improved all the references in the mentioned section and some unsourced info has found its reference! Also, I see that some part of history is missing and it should be completed, because at this point it kind of contradicts itself (Dick Morley created PLC in 1968, and Odo Josef Struger worked on it in 1958-60?)
* At least until I got a better understanding of it, I decided to put two subsections there: Modicon and Allen-Bradley as two independent paths of development. I think that until there is a Modicon article, that part may contain additional info about the company, but it's not the case with A-B.
* There were, I think, 4 places where IEC 61131-3 was explained. I'm in process of consolidating all of it under '''Programming'''.
* '''PLC topics''' was divided between existing sections, or new were created. I'm not satisfied with it yet.
* '''PLC compared with other control systems''' got subsections to make it more readable.
All in all, lots of text was moved around, merged and divided. Again, I'm waiting for some constructive criticism before I commit to changing the actual article. — [[User:K4rolB|K4rolB]] ([[User talk:K4rolB|talk]]) 18:13, 26 February 2020 (UTC)
 
:Kudos for the work. From my standpoint, the big question is what, if anything, is being removed from the article. Few have the time to do a compare-and-contrast wit a totally rewritten article or to review what happened when large changes are made in one day. Suggest modifying the article incrementally spread over days. <b style="color: #0000cc;">''North8000''</b> ([[User talk:North8000#top|talk]]) 18:59, 26 February 2020 (UTC)
 
::I understand that, that's why I made a changelog. I will try to put rework in batches when it's more ready. Right now I just wanted to show the overall direction. {{break}} I try not to remove anything at this point. I tag things I have problem with. There are some things I would like to see removed as they might be outside of scope of the article or wikipedia. I will keep them now and discuss them later. – [[User:K4rolB|K4rolB]] ([[User talk:K4rolB|talk]]) 21:00, 26 February 2020 (UTC)
 
:I agree with {{u|North8000}} that making these changes incrementally makes it easier for other editors to review and discuss. There are other advantages to working on the live article. Nevertheless, I have compared your new version to the existing article and I didn't see any obvious objectionable changes. I did not spend enough time with it to be convinced that the changes are a net improvement but the changes you describe above satisfy that and I will [[WP:AGF]]. ~[[User:Kvng|Kvng]] ([[User talk:Kvng|talk]]) 15:10, 1 March 2020 (UTC)
 
== Rollbacks ==
 
In case anyone was wondering why there are two rollbacks in the history, I had accidentally hit the '''Rollback''' button while viewing on a mobile device. [[User:KD5TVI|KD5TVI]] ([[User talk:KD5TVI|talk]]) 00:35, 23 September 2020 (UTC)
 
== IMO we should delete or pare the list of "PLC manufacturers" ==
 
IMO the list should be reduced or deleted. It has gotten bloated with companies that are not really in that business. If it were limited to the top 5 or top 10 (and the section already has sources for that) that might be useful. But this list isn't and Wikipedia is not a business directory. <b style="color: #0000cc;">''North8000''</b> ([[User talk:North8000#top|talk]]) 19:48, 6 January 2021 (UTC)
:I agree and I'm going to make proper changes — [[User:K4rolB|K4rolB]] ([[User talk:K4rolB|talk]]) 21:38, 7 January 2021 (UTC)
::Cool. <b style="color: #0000cc;">''North8000''</b> ([[User talk:North8000#top|talk]]) 22:21, 7 January 2021 (UTC)