HPR4728: Programmierbare Logiksteuerung - Episode 3

Von Whiskeyjack16/09/2026 às 00:00492 Aufrufe
Foto: CC BY-SA / Hacker Public Radio
🎙 Whiskeyjack · Hacker Public Radio

Diese Show wurde vom Gastgeber als "sauber" markiert.

--------------------

01 Einleitung

Dies ist die dritte Folge einer 8-teiligen Serie.

02

In der vorherigen Folge haben wir

* Die frühe Geschichte der Computer in der industriellen Steuerung

* Die frühe Geschichte der PLCs, einschließlich wie sie ihren Namen bekommen haben

* Wer die Hauptmarken sind

* Was sie physisch aussehen

Eine grundlegende Beschreibung der abstrakten Maschinenarchitektur

Ein sehr kurzer Einblick in das, was ein PLC-Programm ist

Das Scan-Konzept

Die Haupt-PLC-Programmiersprachen

Die Neben-PLC-Programmiersprachen

Die relative Beliebtheit jeder der Programmiersprachen

03

In dieser Episode beginnen wir damit, einen der frühen PLCs aus der Zeit zu betrachten, als sie erstmals weit verbreitet eingesetzt wurden.

Ich werde nicht einmal versuchen, umfassend zu sein, ich werde einfach einen breiten Überblick in der begrenzten Zeit geben, die ich hier zur Verfügung habe.

Ich habe mit einem älteren Modell begonnen, da seine Einfachheit und seine begrenzten Funktionen ein einfacheres Eintauchen in das Thema ermöglichen.

--------------------

04 Allen Bradley PLC/2

Der Allen Bradley PLC/2 wurde 1977 auf den Markt gebracht.

Es war nicht ihr erster Vorstoß in diese Richtung, aber ihr erster wirklich erfolgreicher.

Ich bin mir nicht bewusst über eine umfassende Geschichte ihrer frühen Produktlinie, aber eines ihrer frühen großen Verkaufsmodelle war der PLC2/30.

Dies ist auch als ihre 1771-Serie bekannt.

--------------------

05 Physische Anordnung

Die CPU-Einheit war eine große Metallbox, die neben dem E/A-Schrank saß und mit einem Kabel mit ihm verbunden war.

Der I/O-Schrank war eine Kiste mit einem offenen Vorderteil und einer Reihe von Schlitzen, in die hohe schmale Kisten mit dem I/O eingelegt werden konnten.

06

Ein Backplane lief über die Rückseite und verband das I/O mit der CPU.

Mehrere Schränke konnten durch Kabel miteinander verbunden werden.

Für den PLC2/30 konnten maximal 896 digitale I/O-Punkte vorhanden sein.

07

Die Schränke waren 315 mm hoch und zwischen 247 mm und 610 mm breit, mit Schränken in 4, 8, 12 und 16 Slot-Varianten.

Die CPU hatte die gleiche Höhe wie der Schrank und war grob quadratisch umrissene.

08

Mit dem Fortschritt der Mikroelektronik konnte das CPU-Modul in der Größe verkleinert werden, sodass es in einen Schlitzen des Schranks passte, was zur Norm für PLCs wurde.

--------------------

09 Die Elektronik im Inneren

Frühe PLC/2-Modelle verwendeten eine Art 8-Bit-Prozessor, einige Quellen nennen den Intel 8080.

10

Sie verwendeten auch vier AMD 2900-Bit-Slice-Prozessoren als Logik-Co-Prozessor.

Wenn Sie mit Bit-Slice-Prozessoren nicht vertraut sind, sind das Chips, die wie ein vertikaler 4-Bit-Schnitt durch einen Prozessor sind und zusammen mit Logikchips verbunden werden können, um eine vollständige CPU zu bilden.

Diese wurden verwendet, um Minirechner zu konstruieren.

11

Sie wurden als Co-Prozessor in frühen PLCs verwendet, weil Mikroprozessoren allein einfach zu langsam waren, um das Benutzerprogramm schnell genug auszuführen, um ein nützliches Programmgröße zu ermöglichen.

Ein oder mehrere Mikroprozessoren wurden ebenfalls verwendet, um die gesamte Operation und Systemverwaltung zu koordinieren.

12

Als Mikroprozessoren schneller und leistungsfähiger wurden, sank der Bedarf an Logik-Co-Prozessoren und sie wurden schließlich fallen gelassen.

Frühe Versionen verwendeten Magnetkernspeicher.

Spätere Modelle wechselten zu einer Art Festplattenspeicher, wahrscheinlich statischem RAM.

13

Details darüber, welche Art von Prozessoren in einer PLC stecken, sind tatsächlich sehr schwer zu bekommen, da die Hersteller normalerweise nicht über solche Dinge sprechen.

Sie wünschen, dass der Benutzer es als eine schwarze Kiste betrachtet.

--------------------

14 Die Daten Tabelle

Aus der Perspektive eines Programmierers ist das Wichtigste, was zuerst verstanden werden muss, die Daten Tabelle.

Die Daten Tabelle ist der Speicher für Daten der PLC.

15

Bei einer PLC2 handelt es sich um ein Array von 16-Bit-Wörtern.

Jedes Wort besteht aus zwei 8-Bit-Bytes.

Die Adressierung sowohl für Bits als auch für Wörter erfolgt im Oktal.

16

Für diejenigen, die sie nicht kennen: Oktalzahlen folgen einem Zählsystem, das von 0 bis 7 geht.

Die nächste Zahl nach 7 ist 10.

Das Zählen setzt sich dann fort von 11, 12, 13 usw. bis 17, 20, 21 usw.

Jede Oktalziffer nimmt genau 3 Bits ein.

17

Einzelne Bits in der PLC2-Notation können durch Angabe des Wortes gefolgt von einem Schrägstrich und dann dem Bit adressiert werden.

Zum Beispiel ist 030/12 das 12. Bit im Wort 030. Denken Sie daran, dass dies Oktal ist, also ist 12 nicht das 12. Bit, wenn Sie im Dezimalzählsystem zählen.

18 Speicherorganisation

Auf dem PLC2/30 ist die Daten Tabelle wie folgt organisiert.

19

Wortadressen 000 bis 007 sind der Prozessor Arbeitsbereich 1.

Dies ist für den Benutzer nicht zugänglich.

20

Wortadressen 010 bis einschließlich 100 sind die Ausgabebildtabelle.

Dies ist ein in den Speicher abgebildetes Bild der Eingabe/Ausgabe-Ausgänge.

010 bis 077 ist für Schrank 1.

020 bis 027 ist für Schrank 2.

Dieses Muster setzt sich bis Schrank 7 fort, welcher 070 bis 077 ist.

21

Die Adressen der Wörter 100 bis 107 sind die Nummer 2 der Verarbeitungsarbeitsfläche.

Dies ist auch für den Benutzer nicht zugänglich.

22

Die Adressen der Wörter 110 bis 200 sind die Eingabebildtabelle.

Dies ist ein in den Speicher abgebildetes Bild der Eingabe/Ausgabe-Eingaben.

Dies ist auf die gleiche Weise angeordnet wie die Ausgabebildtabelle und reicht von 110 bis 177.

110 bis 117 ist für Schrank 1.

120 bis 127 ist für Schrank 2.

Dieses Muster setzt sich bis Schrank 7 fort, der von 170 bis 177 reicht.

23

Du wirst bemerken, dass die Ausgabetabellenbild und die Eingabetabellenbild auf die gleichen Rack-Slots hinweisen scheinen.

Sie tun es tatsächlich.

Welchem Slot in einem bestimmten Rack ein bestimmter Slot zugeordnet ist, hängt davon ab, ob sich in diesem Slot eine Eingabekarte oder eine Ausgabekarte befindet.

24

Die Adressen 200 bis 277 sind für Timer/Zähler-ansammelte Werte.

Ein angesammelter Wert ist die aktuelle Zeit oder Zählung.

25

Die Adressen 300 bis 377 sind für Timer/Zähler-Voreinstellwerte.

Ein Voreinstellwert ist die Zielzeit oder Zählung, die, wenn sie erreicht ist, dem Timer oder Zähler anzeigt, dass er den gewünschten Wert erreicht hat.

26

Der Speicher über 400 kann so konfiguriert werden, dass er in einen Datenlagerbereich und einen Benutzerprogrammbereich aufgeteilt wird.

Der Datenspeicherbereich ist der Ort, an dem Sie Daten speichern, die Ihr Programm verwenden muss, die nicht Teil der Eingabe/Ausgabe (I/O) oder Zeitzähler sind.

Sie müssen das richtige Gleichgewicht zwischen Benutzerdaten und Programmgröße finden.

27

Es gibt verschiedene Dinge, die im Hinblick darauf geändert und konfiguriert werden können, aber ich werde dies nicht im Detail behandeln, da dies kein Tutorial über den PLC2 ist.

=

Sie sollten jedoch ein ziemlich gutes Verständnis für den Speicher eines frühen PLC-Modells haben.

Die zu verstehenden Dinge sind, dass I/O an Speicheradressen zugeordnet sind und

verschiedene Speicherbereiche für unterschiedliche Zwecke verwendet werden.

28

Die gesamte Speicherverwaltung war manuell.

Es lag an dem Benutzer, nachzuverfolgen, welche Speicheradressen für welche Zwecke verwendet werden sollten.

Allen Bradley stellte hilfreich Papierformulare zur Verfügung, die Sie kopieren konnten, um damit die Verwendungszwecke jeder Adresse zu planen und zu dokumentieren.

Ein Teil der Aufgabe des Programmierers bestand darin, den Speicher effizient und logisch zu nutzen, während gleichzeitig Raum für zukünftige Änderungen gelassen wurde.

--------------------

Der Benutzerprogramm-Abschnitt

Das Benutzerprogramm besteht aus Anweisungen.

Jede Anweisung nimmt typischerweise einen Speicherwortplatz ein.

Komplexe Anweisungen können jedoch bis zu 8 Speicherwortplätze einnehmen.

30

Es gibt ein Hauptprogramm.

Man kann dies als die "main"-Funktion in C betrachten.

Wenn du diese Analogie nicht hilfreich findest, dann denke einfach daran, dass dies der Ort ist, an dem dein Programm beginnt.

Das Hauptprogramm setzt sich mit einem Schritt nach dem anderen fort, bis es die END-Anweisung erreicht.

31

Es gibt auch einen Unterprogrammbereich.

Das Hauptprogramm ruft ein Unterprogramm auf, indem es eine Sprunganweisung zum Unterprogramm, oder JSR, verwendet.

Die T3 Programmierkonsole

Als der PLC2 auf den Markt kam, waren Dinge wie Laptops noch weit in der Zukunft.

Selbst der erste Compaq Portable Koffer-PC war noch einige Jahre entfernt.

Tatsächlich kam der erste PLC/2 nicht lange nach dem ersten Altair PC-Kit heraus.

33

Die Programmierung wurde daher zunächst mit einem speziellen Programmierterminal namens T3 durchgeführt.

Das T3 war eine Koffergröße Box mit einem kleinen CRT am Ende und einer Tastatur, die darunter am Bildschirm angeschlossen war.

Wenn das klingt wie die frühen tragbaren PCs, bedenke, dass es sie tatsächlich einige Jahre vorher gab.

34

Die Tastatur war kein Schreibgerät oder QWERTY Stil.

Sie hatte ein Membran-Tastaturfeld mit grafischen Symbolen.

Erinnere dich an die vorherige Episode über Steuerungsdiagramme mit Relais und wie diese mit Schaltplan-Symbolen in Zeichnungen dokumentiert wurden.

Das T3 Terminal-Tastaturfeld hatte Symbole, die einer vereinfachten und modifizierten Version der in diesen Schaltplänen verwendeten Symbole entsprachen.

35

Wenn ein Programmierer eines dieser Symbole auf der Tastatur drückte, erschien das entsprechende Symbol auf dem Bildschirm an der aktuellen Cursorposition.

Der Programmierer konnte dann die Datenadresse eingeben, der das Symbol entsprechen sollte, indem er den numerischen Teil der Tastatur verwendete.

36

Ein Ingenieur, Techniker oder Elektriker konnte daher Programme in einer vollständig grafischen Umgebung erstellen und eingeben, die auf seiner bestehenden Kenntnis der Steuerung mit Hardwarekomponenten basierte.

Sie sahen das nicht als Programmierung eines Computers, sondern als etwas ganz anderes, das nicht mit Computern in Verbindung stand.

37

Die Programmierung fand statt, während der T3 mit dem PLC verbunden war und das PLC im Programmodus war.

Die Anweisungen wurden direkt vom Terminal in das PLC-Speicher eingegeben.

Programme konnten gespeichert oder auf Kassette wiederhergestellt werden.

Das Programm würde laufen, wenn das PLC auf Laufmodus eingestellt war.

38

Darüber hinaus ermöglichte das T3-Terminal die Online-Fehlerbehebung von Programmen.

Wenn die T3 in Betrieb modus verbunden war, würde das Leiterdiagramm in Echtzeit aktualisiert.

Wenn eine Logikbedingung wahr war, würde sie hervorgehoben.

Wenn die Logikbedingung falsch war, würde sie in einem nicht hervorgehobenen Zustand angezeigt.

39

Durch die Beobachtung einer bestimmten Stufe konnte man sehen, ob die erwartete Reihe grafischer Anweisungen alle in einem Muster hervorgehoben waren, das dazu führen würde, dass die Endausgabe der Stufe wahr oder falsch wie erwartet war.

Dies war ein unschätzbarer Hilfsmittel zur Fehlerbehebung bei der Suche nach Softwarefehlern und Hardwarefehlern.

Programmierterminals wurden ein unentbehrlicher Teil der grundlegenden Ausrüstung eines industriellen Wartungselektrikers.

40

Mit der Verfügbarkeit von tragbaren PCs und später Laptops wurde die T3 veraltet und diese Funktionen wurden in Software übertragen, die auf Standard-PCs lief.

Allerdings funktionieren sie immer noch im Wesentlichen auf die gleiche Weise.

Zusätzliche Funktionen wurden hinzugefügt, wie die Möglichkeit, Programme zu schreiben, ohne an den PLC angeschlossen zu sein.

Beschreibende Beschriftungen und Kommentare könnten zu Speicheradressen hinzugefügt werden, um sie zu dokumentieren und die Lektüre des Programms zu erleichtern.

Kreuzreferenzfunktionen würden es einfacher machen, herauszufinden, welche Adressen für was verwendet wurden.

usw.

--------------------

41 Anweisungen

Ich werde nun die Arten von Anweisungen auflisten, die zur Verfügung standen.

Ich werde nicht versuchen, alles zu erklären, aber es sollte dir zumindest eine vage Vorstellung davon geben, wie diese programmiert wurden.

Ich werde die Namen von Allen Bradley für diese verwenden, was ich betonen möchte, entspricht nicht dem, was andere Hersteller sie nennen.

42 Relais-Typ-Anweisungen

Dies sind boolesche Anweisungen und bestehen aus Folgendem.

43 Eingabeanweisungen

Diese untersuchen Bits im Speicher und liefern einen Logikzustand abhängig vom Wert des angesprochenen Bits.

Eingabeanweisungen beginnen an der linken Seite der Stufe und arbeiten sich nach rechts, während weitere hinzugefügt werden.

Überprüfen Sie an - Dies ist wahr, wenn das angesprochene Bit auf 1 gesetzt ist.

Überprüfen Sie aus - Dies ist wahr, wenn das angesprochene Bit auf 0 gesetzt ist.

44 Ausgabeanweisungen

Diese Schaltbits schalten sich je nach der Summe der booleschen Logikbedingungen, die ihnen vorausgehen, ein oder aus.

Ausgabebefehle befinden sich rechts auf der Stufe.

Es muss immer mindestens eine Ausgabebefehlung vorhanden sein.

Ausgabebefehl Energisieren - Wenn die Logikbedingungen, die ihm vorausgehen, wahr sind, setzt es einen Bit auf 1.

Wenn die Logikbedingungen, die ihm vorausgehen, falsch sind, setzt es einen Bit auf 0.

45

Ausgabebefehl Sperren - Wenn wahr, wird das Bit eingeschaltet.

Wenn falsch, tut es nichts.

Ausgabebefehl Entsperren - Wenn wahr, wird das Bit ausgeschaltet.

Wenn falsch, tut es nichts.

46 Zweigbefehle

Diese tun nichts selbst, aber sie erzeugen Verkabelungsverbindungen im Diagramm.

Diese sind wichtig, um die oben aufgeführten Befehle parallel auf derselben Stufe platzieren zu können, damit sie Dinge wie OR-Bedingungen ausführen können.

Man kann sie sich als die Umwandlung einer Prüfung ein- oder ausgeschaltet in eine OR- oder OR-nicht-Anweisung vorstellen.

--------------------

47 Timer- und Zähleranweisungen

Timer und Zähler sind, wie der Name schon sagt, Anweisungen, die Zeitmess- und Zählvorgänge durchführen.

Sie verfügen über getrennte voreingestellte und angesammelte Werte.

Sie sind eine Art Ausgabebefehl, da sie sich auf der rechten Seite der Leiternstange befinden und ihre Funktion von der Logik der Stange auf der linken Seite abhängt.

48

Timer und Zähler arbeiten im Binär-Codierten Dezimalwert, oder BCD-Werten.

Jeder BCD-Wert nimmt 4 Bits Speicherplatz ein.

Im Gegensatz zum Hexadezimal, sind nur Werte von 0 bis 9 gültig.

Was in Hexadezimal als Werte von A bis F wären, sind keine gültigen Werte im BCD.

49

Die voreingestellten und angesammelten Werte werden in 16-Bit-Wörtern gespeichert. Die ersten 12 Bits werden verwendet, um bis zu 3 BCD-Ziffern zu speichern.

Die verbleibenden obersten 4 Bits werden verwendet, um Befehlsstatusbits zu speichern, wie zum Beispiel ob der Timer oder Zähler abgeschlossen ist und verschiedene andere Funktionen.

50 Timer

Die Zeitbasis des Timers entspricht der Timer-Auflösung.

Die Zeitbasen betragen 1,0 Sekunden, 0,1 Sekunden und 0,01 Sekunden.

Ein Timer mit einer Zeitbasis von 1 Sekunde kann somit Zeiten von 0 bis 999 Sekunden mit einer Auflösung von 1 Sekunde messen.

Ein Timer mit einer Zeitbasis von 0,1 Sekunden kann Zeiten von 0 bis 99,9 Sekunden mit einer Auflösung von 0,1 Sekunden messen.

51

Es gibt drei Arten von Timern:

Timer On Delay (oder TON),

Timer Off Delay (oder TOF),

Retentive Timer (oder RTO).

52

Sie messen die Zeit, während die Auslösungsbedingung wahr ist, und zurücksetzen, wenn sie falsch wird.

Verzögerungszeitmesser messen die Zeit nach dem die Auslösungsbedingung falsch wird und zurücksetzen, wenn sie wahr wird.

Retentive Zeitmesser ähneln den Verzögerungszeitmessern, behalten aber ihren angesammelten Wert bis zur Zurücksetzung durch die Anweisung "Retentive Timer Zurücksetzen" (oder RTR) bei.

Im Allgemeinen startet man einen Zeitmesser und überwacht dann irgendwo sonst in der Logik seinen "erledigt" Bit.

53 Zähler

Zähler zählen Ereignisse.

Diese gibt es in den folgenden Varianten.

54

Aufzählzähler (oder CTU).

Herunterzähler (oder CTD)

Zähler zurücksetzen (oder CTR)

Scan-Zähler (oder SCT)

55

Aufzählzähler zählen von Null aus, und Herunterzähler zählen von einem vordefinierten Wert ab.

Der Scan-Zähler zählt die Anzahl der Programmscans.

Dies ist etwas, das man normalerweise nicht für einen bestimmten Zweck finden würde, obwohl man es verwenden kann, um zum Beispiel die Scanzeit zu berechnen.

--------------------

56 Datenmanipulationsanweisungen

Datenmanipulationsanweisungen werden verwendet, um Byte- und Wortdaten zu lesen, zu schreiben und zu vergleichen.

Operationen finden statt, wenn die Stange wahr wird.

57

GET liest ein 16-Bit-Wort aus einem Speicherort.

PUT schreibt ein 16-Bit-Wort an einen Speicherort.

LES löst wahr aus, wenn der von der GET-Anweisung gelesene Wert kleiner als ein bestimmter Wert ist.

EQU löst wahr aus, wenn der von der GET-Anweisung gelesene Wert einem bestimmten Wert entspricht.

58

Die LES- und EQU-Anweisungen können auf verschiedene Arten miteinander und mit GET kombiniert werden, um alle möglichen Vergleichspermutationen wie größer als, kleiner als oder gleich zu ergeben.

59

GET BYTE liest einen 8-Bit-Byte aus einem Speicherort.

LIMIT TEST löst wahr aus, wenn ein Byte-Wert zwischen den in den oberen und unteren Bytes eines Wortes gespeicherten Grenzen liegt.

Der LIMIT-TEST wird in Kombination mit GET BYTE verwendet.

--------------------

60 arithmetische Anweisungen

Arithmetische Anweisungen arbeiten auch mit BCD-Wortwerten.

Operationen finden statt, wenn die Stange wahr ist.

Der oberste Byte wird verwendet, um Dinge wie arithmetischen Überlauf oder Unterlauf anzuzeigen.

Diese umfassen:

61

Add

Subtraktion

Multiplizieren

Teilen

BCD in Binär umwandeln

Binär in BCD umwandeln

--------------------

62 Block-Transfer-Anweisungen

Block-Transfer-Anweisungen sind Ausgabebefehle, die zum Übertragen von bis zu 64 16-Bit-Wörtern zwischen dem Datentabelle und I/O-Modulen verwendet werden.

Diese werden mit intelligenten I/O-Systemen verwendet, die mit Wörtern und nicht mit einzelnen Bits arbeiten.

63

Beispiele dafür sind Dinge wie

Analoge E/A-Einheiten, die Spannungen lesen und schreiben, anstatt nur ein oder aus zu sein.

PID-Regler, die geschlossene Schleifensteuerung von Dingen wie Temperatur übernehmen.

Thermokuppeln, die Temperaturen lesen.

Servomotorensteuerung, die Positionen von Servomotoren steuert.

Schrittmotorsteuerung.

Positionsencoder.

64

Ich werde keine Einzelheiten zu Blockübertragungen angeben, aber das sollte ausreichen, um Ihnen einen allgemeinen Eindruck davon zu vermitteln, wie ein PLC diese Art von Ausrüstung im Vergleich zu den einfachen ein/aus-Zuständen digitaler Module handhaben könnte.

Natürlich können diese in Kombination mit GET, PUT und anderen Datenmanipulationsanweisungen verwendet werden, die Speicherorte lesen und schreiben können.

--------------------

65 Sprunganweisungen und Unterprogrammierung

Dazu gehören die folgenden Anweisungen.

66

Sprung (oder JMP)

Beschriftung (oder LBL)

Zu Unterprogramm springen (oder JSR)

Zurückkehren (oder RET)

67

Ein Sprung springt die Ausführung zu einer Beschriftungsposition.

Man kann es sich wie eine GOTO-Anweisung vorstellen.

68

Kennzeichnungen sind numerisch und können von 00 bis 77 im Oktal sein.

Sprunganweisungen sind Ausgabestromausgänge, und wenn der Strom wahr wird, springt die Ausführung zum in der Anweisung angegebenen Kennzeichnungsnummer.

Kennzeichnungen sind Eingabeanweisungen und erscheinen am Anfang des Stroms, an dem die Ausführung fortgesetzt wird.

69

Normale Sprünge können nicht in eine Unterroutine springen, und sie können nur nach vorne und nicht rückwärts springen.

Dies bedeutet, dass Schleifen nicht mit einem Sprung erstellt werden können.

Dies wäre eine bewusste Entwurfsentscheidung, um zu verhindern, dass Programme in einer Schleife stecken bleiben und die Überprüfung nicht fortgesetzt wird.

70

Unterroutinen erscheinen nach dem Ende des Hauptprogramms.

Sie werden durch numerische Oktalkennzeichnungen mit der Kennzeichnungsanweisung definiert.

Unterprogramme werden mit der Anweisung "Springe zu Unterprogramm" (oder JSR) aufgerufen.

Am Ende der Unterroutine gibt die Return-Anweisung (oder RET) die Ausführung an den nächsten Schritt nach dem JSR weiter, der sie aufgerufen hat.

Du kannst Unterroutinenaufrufe bis zu 8 Ebenen tief einbetten.

--------------------

71 Datenübertragungsanweisungen für Dateien

Trotz dessen, was man aus dem Namen schließen könnte, gibt es im PLC2 keine Disk-Dateien.

Eine "Datei"-Anweisung bewegt vielmehr Blöcke von Wörtern von einem Speicherplatz zum anderen.

=

Dazu gehören Quell- und Zieladressen sowie verschiedene andere Parameter, die die Funktion steuern.

Es ist tatsächlich viel drin enthalten, aber ich werde nicht in die Details gehen.

Du musst nur wissen, dass es möglich ist, Blöcke von Datenmemory umzuschieben.

--------------------

72 Shift Register Anweisungen

Diese wirken auf ganze Reihen von Wörtern und umfassen

=

Datei Nach oben Schieben

Datei Nach unten Schieben

FIFO Laden

FIFO Entladen

73

Diese können auf 1 bis 999 Wörter wirken.

Ein typisches Anwendungsbeispiel für solche Anweisungen wäre das Verfolgen eines Teils, während es durch die verschiedenen Stationen einer Maschine bewegt wird.

--------------------

74 Bit Verschiebungen

Diese arbeiten auf einzelnen Bits und umfassen Folgendes.

75

Bit-Links-Verschiebung

Bit-Rechts-Verschiebung

Überprüfen Sie das Aus-Verschiebungs-Bit

Überprüfen Sie das Ein-Verschiebungs-Bit

Setzen Sie das Verschiebungs-Bit

Reset-Schicht-Bit

76

Diese tun im Wesentlichen das, was man erwarten würde, wenn man Bits nach links oder rechts verschiebt.

Allerdings kann die Schieberegister-Länge von 1 bis 999 Bits definiert werden, sodass sie nicht auf die Größe eines Wortes beschränkt ist.

--------------------

77 Sequenzanweisungen

Sequenzanweisungen sind eine Software-Emulation von elektromechanischen Trommelkontrollern.

Trommelsteuerungen ermöglichten die Ausführung einer langen Folge von Operationen.

Diese verwendeten einen rotierenden Trommel, der eine regelmäßige Reihe paralleler Löcher auf der Außenseite hatte.

Über einer Reihe dieser Löcher befand sich eine Reihe von Grenzschaltern.

Durch das Einsetzen von Stangen in einige dieser Löcher, die mit den Grenzschaltungen in Kontakt standen, konnte der Trommelregler Muster von Relais oder Ventilen aktivieren.

78

Einige der Grenzschaltungen könnten mit Sensoren auf den beweglichen Teilen der Maschine verbunden sein.

Wenn die Teile der Maschine in der richtigen Position für diesen Schritt in der Sequenz waren, würde das Muster der Stangen einen elektrischen Weg durch die Grenzschaltungen vervollständigen und einen Solenoid aktivieren, der die Trommel zum nächsten Schritt hinaufschrauben würde.

79

Dies wird oft mit einer Musikkiste oder einer alten Art von Waschmaschinensteuerung verglichen.

Jedoch im Fall des Trommelreglers würden die Stangen die Eingabematchbedingungen sowie die gewünschten Ausgänge programmieren.

Der PLC/2 Trommelregler würde diesen Sequenzer emulieren.

Diese Funktion wurde in Ausrüstung, die in der Automobilindustrie und anderen zusammenbauorientierten Fertigungsprozessen verwendet wird, sehr weit verbreitet und bildete oft das Herzstück des PLC/2-Programms.

80

Ich werde nicht auf die Details der Sequenzer-Anweisungen eingehen, aber es gibt getrennte Eingabe- und Ausgabesequenzer-Anweisungen.

Die Eingabe-Sequenz-Anweisung würde versuchen, die Zustände der Sensoren abzugleichen, und die Ausgabesequenz-Anweisung würde verschiedene Ausgaben ein- oder ausschalten, Dinge wie Solenoidventile steuern.

Die Sequenz selbst würde durch eine Reihe von Wörtern im Speicher definiert, wobei jedes Bit einem einzelnen Eingabe- oder Ausgabewert entspricht.

--------------------

81 Datei-Logik-Anweisungen

Datei-Logik-Anweisungen entsprechen Array-Operationen auf Wörtern, obwohl der Begriff "Datei" in der Computer-Terminologie ein "Array" wäre.

Diese Anweisungen umfassten

UND

ODER

AUSSCHLIEßEND UND

Ergänzung

--------------------

82 Spezielle Programmiertechniken

Dies sind verschiedene Anweisungen.

Diese bestehen aus Folgendem.

Einmaliger führender Rand

Einmaliger nachfolgender Rand

83

Ein einmaliger Schuss ist eine Ausgabebefehl, der das angesprochene Bit für eine Scan-Durchlauf aktiviert, wenn sich der Zustand in der Lauflogikbedingung ändert.

Einmalige Schüsse könnten ausgelöst werden durch einen Wechsel von falsch zu wahr oder von wahr zu falsch, je nachdem, welche der beiden Anweisungen verwendet wurde.

--------------------

Warum verwendete der PLC2 BCD?

Wahrscheinlich fragen Sie sich, warum der PLC2 BCD-Zahlen anstelle normaler Ganzzahlen verwendete.

Dies spiegelt die Betriebsumgebung wider, in der ein früher PLC arbeiten müsste.

Frühe Bedienpanele mit mechanischen numerischen Eingabegeräten und einfachen elektronischen Ausgabedisplays, die typischerweise im BCD-Modus arbeiteten.

85

Walzenschalter waren kleine, rotierende Trommelgeräte mit den Zahlen 0 bis 9, die auf der Peripherie gedruckt waren.

Mehrere Räder wurden nebeneinander gestapelt.

Sie sahen etwas aus wie das mechanische Zählwerk, das man in einem älteren Auto findet.

Der Bediener konnte jedoch jede Zifferwalze separat bewegen.

Jede Ziffer würde durch das Zurückverlegen von 4 Kabeln an 4 Eingängen der Steuerlogik gelesen.

Somit war jede Ziffer aufgrund der Funktionsweise der Hardware des Drehknops von Haus aus BCD.

86

Durch das Getrennte Drehen der einzelnen Räder konnte der Bediener Dinge wie Temperaturen, Geschwindigkeiten, Zeitverzögerungen usw. anpassen und so Prozessparameter verändern.

Die Ausgabedisplays des Bedieners waren typischerweise 7-Segment-LEDs, Neonröhren oder Vakuumfluoreszenzdisplays.

Diese Displays oder ähnliche Geräte vorangegangen den Steuerlogiken und waren daher gängige industrielle Geräte, mit denen man umgehen musste.

Jede Ziffer hatte 4 Eingänge, die an 4 Ausgänge der Steuerlogik angeschlossen werden würden.

7-Segment-Displays können Hexadezimal verwenden, aber das war nicht sehr nützlich, wenn man einer Bedienperson eine Temperatur in Celsius anzeigen wollte.

Somit war BCD wieder der praktischste Art von Zahl, mit der man arbeiten konnte.

87

Als PLCs und ihre Benutzerprogramme immer fähiger und ausgefeilter wurden, begannen sie mit normalen Ganzzahlen und sogar Gleitkommazahlen zu arbeiten.

Dennoch behielten viele, wenn nicht sogar die meisten PLCs, Anweisungen, um zwischen BCD und anderen Formaten zu übersetzen.

--------------------

Die Einflussnahme der PLC2

Die PLC2 war ein riesiger Erfolg für Allen Bradley und etablierte sie fest als einer der führenden Anbieter von PLCs, mit der Nummer eins Position im nordamerikanischen Markt und unter den Top 5 weltweit.

Sie hatte jedoch mehrere Schwächen, insbesondere die sehr primitive Speicher- und Unterprogrammierarchitektur sowie den Fokus auf Oktal- und BCD-Zahlen.

Sie war darauf ausgelegt, Steuerrelais zu ersetzen, und tat dies recht gut.

89

Der nächste wirklich erfolgreiche Nachfolger der PLC2 bei Allen Bradley war die PLC5.

Diese kombinierte die grundlegende PLC2-Anweisungsmenge mit einem neuen Speichersystem, neuen Datentypen, getrennten Namensräumen und parametrisierten Funktionen.

90

Es war, als würde man vom Programmieren in Basic mit Zeilennummern und Sprüngen zu Pascal wechseln.

Dennoch konnte man immer noch PLC2-Eingang/Ausgang-Racks und -Module verwenden, was ein wichtiger Faktor war, da der größte Teil der Kosten eines PLC in das Eingangs-/Ausgangssystem fiel.

91

Der PLC 5 wurde daraufhin durch die Contrologix-Serie abgelöst, die die Dinge weiter modernisierte, während sie gleichzeitig in einem kleineren Format vorlag.

Allen Bradley bleibt einer der wichtigsten PLC-Anbieter heute, der unter dem Namen Rockwell operiert.

--------------------

92 Schlussfolgerung

In dieser Episode konzentrierten wir uns auf einen spezifischen, aber weit verbreiteten frühen PLC, den Allen Bradley PLC2.

Wir behandelten die folgenden Themen.

Die internen Elektronikkomponenten.

Die Daten Tabelle.

Das Benutzerprogramm.

Die T3 Programmierstation.

Und eine sehr kurze Übersicht über die Anweisungsmenge.

93

Dies war eine ziemlich einfache und in mancher Hinsicht primitive PLC, aber Sie sollten eine sehr grobe Vorstellung von den Konzepten hinter einer PLC haben, einschließlich der Daten Tabelle und des Scan-Konzepts und der Relais-ähnlichen Anweisungsmenge.

94

Im nächsten Kapitel werden wir einen Blick auf eine PLC vom größten Anbieter weltweit werfen, Siemens.

In diesem Beispiel werden wir einen Modell betrachten, der etwas später als der PLC2 ist, die S5-Serie.

Dies könnte als zweite Generation PLC betrachtet werden.

Daun, da wir die grundlegenden Konzepte, die bereits abgedeckt sind, nicht wiederholen müssen, können wir uns mehr auf das konzentrieren, was neu und anders am S5 im Vergleich zum PLC2 ist.

95

Dies war die dritte Folge einer achtteiligen Serie.

--------------------

Bitte geben SieFeedbackzu dieser Folge..

Quelle
Hacker Public Radio
Original öffnen ↗

Automatisch übersetzt.

War diese Nachricht nützlich?

Debatten 0

Seien Sie der Erste, der zur Debatte beiträgt.

Teilen Sie Ihre Informationen und fördern Sie Ihr Argument

Zögern Sie nicht, nützliche Informationen zu veröffentlichen.

Um an der Diskussion teilzunehmen, melden Sie sich an oder erstellen Sie ein kostenloses Konto.