Kurs:Speicherprogrammierbare Steuerung

Aus Wikiversity
Zur Navigation springen Zur Suche springen
Dies ist eine Baustelle. Hier entsteht ein Kursus für SPS.

Dieser Kursus hat zunächst zwei Ziele:

  • er soll vermitteln, wie Anwenderprogramme für binäre Verknüpfungen erstellt werden
  • er soll die didaktischen Möglichkeiten und Methoden testen.

(Hinweise und Ratschläge sind auf der DK-Seite willkommen.)

Gibt es überhaupt Interessenten?
Fachliche Voraussetzungen für die Teilnahme am Kurs.
  • Der Verwendungszweck einer SPS sollte bekannt sein; zumindest in groben Zügen.
  • Warum Maschinen oder Anlagen gesteuert werden müssen, sollte einem schon klar sein.
  • Der Begriff Relais mit Schließern, Öffnern und Wechslern als Teil einer elektrischen Schaltung wird als bekannt vorausgesetzt.
  • Fachbegriffe aus der Computertechnik wie Programm, Speicher, Bit, Byte usw. werden als bekannt vorausgesetzt.
Hinweis.

Im Text werden Fragen an den Leser gestellt. Es ist sinnvoll, diese zu beantworten.
Hierfür muss man die vorformulierten Antworten prüfen und bei der "richtigen" Antwort die blaue "Expand"-Schaltfläche anklicken.

Meist sind vier Antwortmöglichkeiten vorgegeben. Nicht immer ist nur eine Antwort richtig.

Binäre Verknüpfungen[Bearbeiten]

Das Grundsymbol[Bearbeiten]

Was ist nachstehend abgebildet?

      A 19.2
       ┌───┐
E 13.7◦┤S  │
       │   │
E 15.4─┤R Q├
       └───┘


Was ist vorstehend abgebildet? Im Anfang ruhig alle Möglichkeiten testen.


Es ist notwendig, dass man jedes noch so winzige Detail der Darstellung versteht. Zunächst betrachten wir nur den grafischen Teil.

Nachstehend ist die Grundlage für die grafische Darstellung eines SPS-Programms als Funktionsplan dargestellt.

┌───┐
│   │
│   │
│   │
└───┘

Es ist ein schlichtes Viereck. Es gibt keine Vorschriften wie groß dieses Viereck zu zeichnen ist. Bei diesem Viereck soll man sich so etwas wie ein "Schwarzer Kasten" vorstellen. Im Englischen heisst das "Black Box". Der Begriff "Schwarzer Kasten" soll an den Zauberer erinnern, der in einem solchen Kasten "alles mögliche" zustande bringen kann.

Mit anderen Worten: Das Viereck steht für die Abstraktion einer Funktion, die innerhalb dieses "Kastens" ausgeführt werden soll. Welche Funktion? Jede beliebige Funktion, die man mit Buchstaben codiert in dieses Viereck hineinschreibt.

In einem anderen Zusammenhang wird auch von einem "Gatter" gesprochen. Im Englischen "Gate".

Am Rande. Die SPS wurde in den USA entwickelt. Die Amerikaner hatten für die Funktionsplandarstellung das Grundsymbol eines Halbkreises. Die deutschen Normen hatten dies zunächst übernommen. Erst später wurde nach DIN das Viereck eingeführt, weil es bequem zu zeichnen und in jeder Hinsicht universell ist.

Wenn nun offen geblieben ist, welche Funktion ausgeführt werden soll, dann muss gefragt werden: Womit soll die Funktion ausgeführt werden. Die neutrale, abstrakte Antwort heisst: mit Operanden. Die konkrete Antwort heisst: zwei oder mehr Eingänge sollen durch die Funktion zu einem Ergebnis verknüpft werden.

Eine Verknüpfung mit nur einem Eingang ist nicht vorstellbar. Man kann einen Eingang umformen oder verändern (z.B. Negieren), aber "verknüpfen" geht nicht.

┌───┐
┤   │
│   │
┤   │
│   │
┤   │
└───┘

Es liegt auf der Hand: hier sollen drei Eingänge verknüpft werden. Welche?. Das ist nicht dargestellt.

Aber eins ist wichtig: Eingänge werden immer links vom Gatter dargestellt.

┌───┐
┤   │
│   │
┤   ├
└───┘

Auf der rechten Seite ist hier ein Ausgang angedeutet. Zwei Eingänge werden zu einem Ausgang verknüpft.

Kann ein Gatter mehrere Ausgänge haben? Theoretisch ja. Es ist nicht sinnvoll ein Gatter mit mehr als einem Ausgang darzustellen, sofern es sich um die Darstellung einfacher Verknüpfungen handelt.

Aus der Festlegung Eingänge links und Ausgänge rechts ergibt sich auch die Festlegung: die Signalflussrichtung ist immer von links nach rechts.

  • Merkregel: Input - Output (- kaputt ? das ist ein Scherz! Aber man kann sich das so schön merken, wenn man die englischen Worte nimmt.)
  • Wiederholung: Das sind grafische Symbole für ein Programm und nicht für eine elektronische Schaltung!

Die UND-Funktion (AND)[Bearbeiten]

┌───┐
┤&  │
│   │
┤   ├
└───┘

Mit einem einzigen Zeichen wird hier festgelegt, dass hier eine UND-Funktion ausgeführt werden soll. Dieses Zeichen wird als "kaufmännisches Und" bezeichnet. Es ist (international) das &-Zeichen.

Für die Definition eines UND-Gatters ist ein Satz ausreichend:

  • Alle Eingänge eines UND-Gatters müssen wahr sein, damit auch der Ausgang des UND-Gatters wahr ist.

Was hier mit "wahr" gemeint ist, wird später noch einmal im Detail erläutert.

Bezogen auf eine herkömmliche elektrische Schaltung, denkt man an die serielle Anordnung von Kontakten, die ein Relais ansteuern. Dabei müssen alle Kontakte geschlossen sein, damit das Relais anzieht.

Die ODER-Funktion (OR)[Bearbeiten]

┌───┐
┤>=1│
│   │
┤   ├
└───┘

Mit drei Zeichen wird hier festgelegt, dass hier eine ODER-Funktion ausgeführt werden soll. Diese Zeichen sind die mathematischen Symbole für größer, gleich 1. Und größer gleich Eins heisst: mindestens einer.

Für die Definition eines ODER-Gatters ist ein Satz ausreichend:

  • Mindestens ein Eingang eines ODER-Gatters muss wahr sein, damit auch der Ausgang des ODER-Gatters wahr ist.

Bezogen auf eine herkömmliche elektrische Schaltung, denkt man an die parallele Anordnung von Kontakten, die ein Relais ansteuern. Nur ein Kontakt muss geschlossen sein, damit das Relais anzieht.

Die Negierung (INV)[Bearbeiten]

Zur Erinnerung noch einmal das Bild, mit dem begonnen wurde.

      A 19.2
       ┌───┐
E 13.7◦┤S  │
       │   │
E 15.4─┤R Q├
       └───┘

Wir wissen nun: links gibt es zwei Eingänge. Die Benennung spielt im Moment noch keine Rolle.

Bei dem oben dargestellten Eingang ist ein kleiner Kreis zu sehen. Hierfür erinnern wir uns auch an die vorherige Aussage, dass eine Verknüpfung mit nur einem Eingang nicht sinnvoll ist. Wohl aber eine Umformung z.B. eine Negierung.


Was bedeutet der kleine Kreis hinter "E 13.7"?


Die Definition der Negierung lautet:

  • Was wahr ist wird unwahr, was unwahr ist wird wahr.

Denkt man an eine elektrische Schaltung, dann wird aus einem Schliesser ein Öffner oder aus einem Öffner wird ein Schliesser.

Zwischenbilanz[Bearbeiten]

UND, ODER, Negierung und die Zuweisung, das ist ausreichend zur Programmierung aller denkbaren Verriegelungen, die auf binären Verknüpfungen basieren! Wir werden diese Behauptung noch einmal näher betrachten.

Die Zuweisung erkennt man bei den grafischen Symbolen rechts. Das Ergebnis einer Verknüpfung muss ja irgendwo abgelegt werden.

Es gibt noch andere (binäre) Funktionen. Diese erleichtern oder verkürzen das Programmieren.

Ein Begriff muss noch präzisiert werden.


Was ist ein Operand, bezogen auf die SPS?


  • Merkregel: Jeder Operand - ob binär oder nicht binär - hat in der SPS seinen Speicherplatz.

Genau das ist eine Grundlage für die SPS. Operanden erhalten einen Namen. Anhand dieses Namen kann die SPS die Speicherzelle adressieren und nach Bedarf den momentanen Zustand lesen oder einen (aus dem Anwenderprogramm aktuell ermittelten) Wert abspeichern.

Wir fassen zusammen:

Operanden werden per Programm durch Funktionen (binär oder auch nicht binär) miteinander verknüpft und das Verknüpfungsergebnis wird in einem (neuen) Operanden abgespeichert.

Der wichtige Begriff Verknüpfungsergebnis wird später noch genauer erläutert. An dieser Stelle wird schon einmal auf die Abkürzung VKE hingewiesen.

Die Operanden[Bearbeiten]

In der vorherigen kleinen Zwischenbilanz wurde schon auf den Begriff der "Operanden" eingegangen.

Wie findet das SPS-Betriebssystem genau die zugehörige Speicherzelle? Antwort: durch den Namen!

Das geht natürlich nur, wenn Regeln für die Namensgebung eingehalten werden.

Es gibt zwei Teile für die Namensgebung:

  • ein festgelegter Symbolbuchstabe für den Operandentyp
  • ein numerischer Teil für die Adresse.

Deutsche Operandentypen (grundsätzlich nur Großbuchstaben zur Codierung):

  • E - Eingang
  • A - Ausgang
  • M - Merker
  • Z - Zähler
  • T - Timer (Zeitglied)

Englische Operandentypen (auch hier nur Großbuchstaben zur Codierung):

  • I - Input
  • O - Output
  • R - Relay
  • C - Counter
  • T - Timer


Wir konzentrieren uns zunächst auf die erstgenannten drei Operandentypen.

Jeder Geber (Sensor) in der Maschine oder Anlage ist mit der SPS verbunden. Anhand des Zustandes des Gebers (offen oder geschlossen) soll ja das Anwenderprogramm entscheiden, was zu tun ist. Statt offen oder geschlossen geht auch hochohmig oder niederohmig. Allerdings muss man dann zulassen, das bei einem Zustandswechsel (steigende oder fallende Flanke des Widerstands) ein nicht definierter Bereich durchfahren wird. Dies ist aber nicht kritisch, solange die Flanken steil sind.

Der Zustand eines Gebers wird durch die SPS-Elektronik in einer Speicherzelle abgelegt. Und genau auf diese Speicherzelle greift das Anwenderprogramm zu. Der Speicherbereich, wo der Zustand aller Geber abgelegt ist, heisst Eingangsabbild (ganz genau: Prozessabbild der Eingänge).

  • Die Namen aller Eingänge beginnen mit E und dieser Buchstabe teilt dem SPS-Betriebssystem mit, im Speicherbereich Eingänge zu suchen.

Mit den Ausgängen ist es ähnlich.

Jedes Stellglied (Aktor) in der Maschine oder Anlage ist mit der SPS verbunden. Anhand des Zustandes im Ausgangsabbild (ganz genau: Prozessabbild der Ausgänge) sorgt die SPS-Elektronik dafür, dass alle Stellglieder entsprechend angesteuert werden. Der jeweilige Zustand im Ausgangsabbild ist das Ergebnis des Anwenderprogramms. So kann beispielsweise ein Magnetventil geöffnet oder geschlossen werden.

  • Die Namen aller Ausgänge beginnen mit A und dieser Buchstabe teilt dem SPS-Betriebssystem mit, im Speicherbereich Ausgänge zu suchen.

Und der Operandentyp Merker? Merker sind nicht mit der Peripherie der Maschine oder Anlage verbunden. Merker sind für interne Zwecke da. Man kann Zwischenergebnisse darin ablegen und später darauf Bezug nehmen. Der englische Begriff Relay ist in diesem Zusammenhang nicht schlecht gewählt. Im Deutschen ist nur der Begriff Merker eingeführt.

  • Die Namen aller Merker beginnen mit M und dieser Buchstabe teilt dem SPS-Betriebssystem mit, im Speicherbereich Merker zu suchen.

Der numerische Adressteil besteht aus der Angabe vor dem Punkt und nach dem Punkt.

  • Bei dem Adressteil nach dem Punkt handelt es sich um die Bitadresse. Bei einer byteorientierten SPS gibt es nur die Ziffern 0, 1, 2, 3, 4, 5, 6 und 7.

Das sind 8 Teiladressen und ein Byte hat ja 8 Bit.

  • Bei dem Adressteil vor dem Punkt handelt es sich um die Byteadresse. Üblich sind Werte von 0 bis 127 oder sogar von 0 bis 255.

Nochmal das Bild vom Anfang. Die 3 Buchstaben innerhalb des Rechtecks sind noch nicht erläutert worden. Aber die ausserhalb liegenden Bezeichnungen sollten nun klar sein.

      A 19.2
       ┌───┐
E 13.7◦┤S  │
       │   │
E 15.4─┤R Q├
       └───┘


Was bedeutet die 13 in der Bezeichnung "E 13.7"?


  • Merkregel: Der Punkt trennt Byte- und Bit-Adresse.

SPS Speicherplan.jpg

Die Adresse E 13.7 ist angekreuzt.

Das Exclusiv-Oder (XOR)[Bearbeiten]

Viele Programmiersprachen bieten diesen Befehl an. Nicht so bei der SPS. Eine solche Anwendung bei der Steuerung einer Maschine ist nämlich extrem selten.

Und warum diese Überschrift? Als Übungszweck soll mit dem bisher erworbenen Wissen ein Programmteil mit dieser Funktion erstellt werden.

       ┌───┐
E 13.7◦┤&  │  ┌───┐
       │   ├──┤>=1│
E 15.4─┤   │  │   │
    └───┘  │   │
            │   ├─M  1.0
     ┌───┐  │   │
E 13.7─┤&  │  │   │
     │   ├──┤   │
E 15.4◦┤   │  └───┘
       └───┘

Was ist dargestellt? Im Merker M 1.0 ist die Exklusiv-ODER-Verknüpfung von Eingang E 13.7 und Eingang E 15.4 abgelegt (abgespeichert).

Ein und nur ein Eingang der beiden Eingänge muss wahr sein, damit M 1.0 wahr ist.

Dies ergibt sich aus der vertauschten Negierung bei den UND-Gattern.

Im folgenden Kapitel untersuchen wir im Detail, wie die SPS zu diesem Ergebnis kommt.

Übrigens: das, was dargestellt ist, wird auch allgemein als Netzwerk bezeichnet. Das vollständige Anwenderprogramm besteht aus:

  • Programmbausteinen (auch Programmmodulen)
  • Netzwerken
  • Anweisungen.

VKE und Erstabfrage[Bearbeiten]

VKE heisst Verknüpfungsergebnis. Das wurde schon einmal kurz erwähnt.

Die SPS hat einen Bit-Prozessor. Dieser Prozessor arbeitet wie in allen Computern - nur hier mit der Besonderheit, dass dieser Prozessor nur binäre Werte miteinander verknüpft. Die Hauptspeicherzellen in einem Prozessor sind (im wesentlichen):

  • Akkumulator 1 und 2, nur hier wird "verknüpft", nachstehend als AKKU bezeichnet
  • das Adressregister, hiermit werden "Operanden" gelesen oder geschrieben
  • das Befehlsregister, zeigt auf nachfolgenden Befehl, nach Operationsende wird der nächste Befehl gelesen.
  • Klammerregister (häufig 8 Stück, manchmal mehr)

U( UN E 13.7 U E 15.4 ) O( U E 13.7 UN E 15.4 ) = M 1.0

Hinweis: ODER-V. bzw. UND-V. heisst ODER- bzw. UND-Verknüpfen. OP steht für den jeweilig adressierten Operand.

Das ganze Schritt für Schritt:

1: U(.........KlammerR1 Flag setzen
2: UN E 13.7..OP → AKKU1, NEGIEREN, → AKKU2
3: U  E 15.4..OP → AKKU1, UND-V., → AKKU2
4: )..........AKKU1 → KlammerR1
5: O(.........KlammerR2 Flag setzen, ODER-V. vormerken
6: U  E 13.7..OP → AKKU1, → AKKU2
7: UN E 15.4..OP → AKKU1, NEGIEREN, mit AKKU 2 UND-V., → AKKU 2
8: )..........AKKU2 → KlammerR2, KlammerR1 → AKKU1, ODER-V.
9: =  M  1.0..AKKU1 → OP

  • Merkregel: Das Verknüpfungsergebnis VKE ist immer im AKKU 1.

Wir betrachten jetzt einmal die Schritte, wo nicht verknüpft wird. Das sind die Schritte 1, 2, 4, 5, 6 und 9. Warum hier nicht? Bei Schritt 9 ist das einfach. Das gewünschte Ergebnis liegt vor und soll nur noch zu entsprechenden Operanden übertragen werden. Schritt 1, 4 und 5 haben etwas mit den Klammeroperationen zu tun. Wir kommen hierauf zurück. Bleiben Schritt 2 und 6. Beide Schritte laden einen Operanden, aber eine Verknüpfung ist noch nicht möglich. Die Negierung ist eine Operation, die mit einem Operand ausgeführt werden kann. Aber für eine Verknüpfung muss der Wert eines zweiten Operanden verwendet werden.
Schritt 2 und 6 sind Erstabfragen (meist als ERAB abgekürzt). Bei allen Zuweisungsbefehlen (wie in Schritt 9) wird ein Erstabfrageflag gesetzt. Dieses Flag sagt: Verknüpfung noch nicht möglich. Beim nachfolgenden Befehl, der mit U oder O anfängt wird dann verknüpft und das Flag zurückgesetzt.

  • Merkregel: Das Erstabfrageflag zeigt den Beginn einer neuen Verknüpfung an.

Setzen und Rücksetzen[Bearbeiten]

Noch einmal das Bild vom Beginn des Kurses. Damit es nicht so langweilig wird, ist es leicht abgewandelt.

      M 19.2
       ┌───┐
E 13.7─┤S  │
       │   │
E 15.4─┤R Q├─A 19.2
       └───┘

Wir schauen noch mal auf die Kapitelüberschrift und fragen nach der Bedeutung der Buchstaben S und R in dem Rechteck.

Da braucht man keine große Phantasie. S bedeutet "setzen" und R bedeutet "rücksetzen". Englisch Set und Reset. Das ganze Symbol bezeichnen wir als Flipflop.

Fraglich ist der Buchstabe Q. Und das ist merkwürdig. Denn das Q ist in diesem Fall entbehrlich. Es soll wohl bedeuten, dass "hier" der binäre Ausgang zu suchen ist. Das macht Sinn bei den Zeiten und Zählern, auf die in den nächsten Kapiteln eingegangen wird.

Ist der Setzeingang wahr, dann wird eingeschaltet und bleibt eingeschaltet, auch wenn der Setzeingang nachfolgend unwahr wird.

Bezogen auf eine herkömmliche elektrische Schaltung, denkt man an ein Relais, welches per Taster in Selbsthaltung geht.

Ist der Rücksetzeingang wahr, dann wird ausgeschaltet und bleibt ausgeschaltet, auch wenn der Rücksetzeingang nachfolgend unwahr wird.

Bezogen auf eine herkömmliche elektrische Schaltung, denkt man wieder an ein Relais, welches in Selbsthaltung war und nun per Taster abfällt.

Was passiert dann, wenn gleichzeitig ein- und ausgeschaltet wird?

  • Merkregel: In der SPS gibt es "gleichzeitig" nicht wirklich. Befehle werden schrittweise abgearbeitet. Der folgende Befehl setzt sich immer durch.

In dem obigen Beispiel setzt sich (im Konfliktfall) das Rücksetzen durch. Das heisst "Rücksetzen vorrangig". Beim Relais heisst das Auschalten vorrangig.

Will man das Verhalten "Einschalten vorrangig" haben, dann vertauscht man die Eingänge. Dann hat das Flipflop oben seinen Rücksetzeingang und unten seinen Setzeingang. Bezogen auf eine elektrische Schaltung verhält sich das Flipflop wie ein Relais mit Selbsthaltung.

Und warum wurde nun dem Flipflop als Operand ein Merker zugeordnet und nicht wie ganz am Anfang direkt ein Ausgang?
Antwort: Wegen der Remanenz! Damit beschäftigen wir uns im nächsten Kapitel.

Remanenz[Bearbeiten]

Im weitesten Sinn ist die SPS so etwas wie ein Computer. Und jeder Computer hat eine Pufferbatterie. Diese liefert die Hilfsenergie, die notwendig ist, um Informationen im Halbleiterspeicher (RAM) auch dann zu behalten, wenn die Hauptenergie ausfällt. Also beim sogenannten Spannungsausfall.

Und wie ist das mit der SPS beim Spannungsausfall?

In den meisten Fällen (aber eben nicht in allen Fällen) ist von einem Spannungsausfall nicht nur die SPS betroffen, sondern auch die zugehörige Maschine oder Anlage. Hieraus ergibt sich, dass man dieses Thema nicht isoliert für die SPS betrachten darf.

Der Planer für die Maschine muss sich Gedanken machen über das notwendige oder erwünschte Verhalten bei einem Spannungsausfall und bei Wiederkehr der Stromversorgung.

  • Merkregel: Das Thema Spannungsausfall und das Wiedereinschalten danach kann nur sinnvoll bezogen auf die Maschine oder Anlage betrachtet werden. Das Verhalten der SPS hat sich nach diesen Erkenntnissen zu richten! (Keineswegs umgekehrt.)

Diese wichtige Erkenntnis war natürlich auch den Entwicklern der SPS bekannt. Daher haben sie dem Anwender die Möglichkeit der selektiven Remanenz an die Hand gegeben. Der Anwender kann also selbst entscheiden, in welchem Fall Remanenzverhalten notwendig oder sinnvoll ist.

Nochmals: Es geht nicht um das simple Thema Datenverlust, sondern um das geordnete und mit keinen Gefahren verbundene Wiederanfahren der Maschine oder Anlage.

Ein schwieriger Fall:
Eine Schmelze in einer Anlage droht zu erstarren und die Anlage zu zerstören. Deshalb ist extra eine Notstromversorgung vorgesehen. Die Produktion wird eingestellt, aber die Schmelze wird warm gehalten.
Die Steuerung durch die SPS muss sich an diese Philosophie halten.


Alle Ein- und Ausgänge einer SPS sind in der Regel nicht remanent und das ist sinnvoll.

Ein Teil der Merker (häufig die Hälfte) ist remanent. Hierauf kann / muss der Anwender zurückgreifen.

Zeiten und Zähler sind in der Regel nicht remanent. Im Konfliktfall muss der Programmierer Daten in den remanenten Merkerbereich retten.

Die SPS als Zyklusmaschine[Bearbeiten]

Die Tatsache, dass einige SPS-Geräte nicht zyklisch arbeiten, soll hier nicht betrachtet werden. Schließlich arbeitet derzeit der überwiegende Teil zyklisch und so wurden sie um 1969 in den USA auch entwickelt.

Der Hersteller einer SPS liefert nicht nur eine Ansammlung von Karten und elektronischen Bausteinen, sondern immer auch das dazu gehörige Betriebssystem. Für beides (Hardware und Software) muss er gerade stehen und die Funktion gewährleisten. Daher legt er den Softwareteil, den das Betriebssystem bildet, in einem dem Anwender nicht zugänglichen Baustein ab (PROM). So etwas nennt man Firmware.

Dieses Betriebssystem verwaltet und kontrolliert das zyklische Verhalten einer SPS.

Sobald eine SPS eingeschaltet wird, überprüft das Betriebsprogramm den internen Status aller angeschlossenen Komponenten. Dann wird das Prozesssabbild der Eingänge erstellt. Danach gibt das Betriebssystem die Kontrolle an das Anwenderprogramm ab. Dieses verändert das Prozessabbild der Ausgänge. Nach der letzten Anweisung übernimmt das Betriebssystem wieder die Kontrolle und überträgt das Prozessabbild der Ausgänge an die Peripherie. Danach fängt ein neuer Zyklus an.

Kurzzeitig und eingeschränkt geht die Kontrolle nach jedem Bausteinwechsel wieder ans Betriebssystem zurück. Es wird insbesondere überprüft, ob Zeiten aktualisiert werden müssen. So wird die Genauigkeit der Zeiten unabhängig von der Zykluszeit gewährleistet.

Typische Zykluszeiten liegen bei 1/100 Sekunde. Hohe Geschwindigkeiten sind bei Mikroprozessoren nichts ungewöhnliches.

  • Scherzregel: Elektronik ist saudumm, aber schnell.


Was ist mit sehr kurzen Zustandswechseln bei Gebern (Wischer)?


Lichtschranken sind häufig Ursache für zu kurze Zykluszeiten. Im Fachjargon spricht man davon, dass die SPS einen Eingang "verschlafen" hat. Erfahrene Programmierer erkennen solche Gefahren frühzeitig.

Ein SPS-Betriebssystem erledigt zeitgesteuerte, verwaltungstechnische und "allgemeine" Aufgaben (englisch: tasks). So lautet der Fachbegrtiff dafür: "abgespektes" Mulitasking-Betriebsystem. Das Betriebssystem eines Prozessleitsystems hat in der Regel einige zusätzliche Tasks.

Zähler und Zeiten[Bearbeiten]

Dies sind die letzten beiden Operandenarten, die unter der Überschrift "Binäre Funktionen" zu behandeln sind. Dabei sind beide nicht reinrassig binär.

Ein Zeit- oder Zählwert passt nicht in ein Bit. Solchen Operanden muss ein ganzes Wort (mit 16 Bit) zugeordnet werden.

Das Bild zeigt: ein Zähler ist ein komplexes Gebilde. Links sind fünf Eingänge, rechts sind drei Ausgänge


       Z 113
       ┌─────┐
E 13.7─┤ZR   │
      ─┤ZV   │
E 13.6─┤S    │
KZ 075─┤ZW DU├
       │   DE├
E 15.4─┤R   Q├─
       └─────┘

Linke Seite Kastensymbol:

  • ZR = Zähle rückwärts, binärer Eingang
  • ZV = Zähle vorwärts, binärer Eingang
  • S = Setze, gemeint ist, den Zählwert laden
  • ZW = Zählwert, 16-Bit-Eingang, damit kann der Zähler geladen werden
  • R = Rücksetze, gemeint ist lösche den Zähler, binärer Eingang

Rechte Seite Kastensymbol:

  • DU = 16-Bit-Ausgang, aktueller Zählwert als Dualzahl
  • DE = 16-Bit-Ausgang, aktueller Zählwert als BCD-Zahl
  • Q = binärer Ausgang, ist 1 solange der Zählwert größer Null ist (Hier ist der Buchstabe Q nicht entbehrlich)

Operand KZ 075 bedeutet Konstante Zählwert 75. Konstanten werden im Programmspeicherteil abgelegt.

Nachstehend die mögliche Organisation der 16 Bit, die dem Operanden Zähler zugeordnet sind.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Q 0 ZV ZR S F W W W W W W W W W W

Bit 15 (Q) ist dann wahr, wenn der Zählwert Null ist. Bit 10 ist ein Hilfsbit zur Freigabe des Zählers. Bit 11 ist ein Hilfsbit zum Laden des Zählers. Bit 0 bis Bit 9 beinhalten den aktuellen Zählwert.

Nachstehend das Symbol für den Operanden Zeit, im Beispiel eine Auschaltverzögerung.

       T 103
       ┌─────┐
E 13.7─┤0|-|T│
       │     │
       │     │
KT10.2─┤TW DU├
       │   DE├
E 15.4─┤R   Q├─
       └─────┘

Linke Seite Kastensymbol:

  • 0|-|T = Starteingang für eine ausschaltvezögerte Zeit, binärer Eingang
  • TW = Zeitwert, 16-Bit-Eingang, hinter dem Punkt steht das Zeitraster (0,01; 0,1; 1; 10 Sekunden)
  • R = Rücksetze, gemeint ist lösche die Zeit, binärer Eingang

Rechte Seite Kastensymbol:

  • DU = 16-Bit-Ausgang, aktueller Zeitwert als Dualzahl
  • DE = 16-Bit-Ausgang, aktueller Zeitwert als BCD-Zahl
  • Q = binärer Ausgang, ist 1 solange der Zeitwert größer Null ist

Operand KT 10.2 bedeutet Konstante Zeitwert 100 Sekunden, Raster 10 Sekunden. Konstanten werden im Programmspeicherteil abgelegt.

Nachstehend die mögliche Organisation der 16 Bit, die dem Operanden Zeit zugeordnet sind.

15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
Q 0 ZV ZR S F W W W W W W W W W W

Bit 15 (Q) ist dann wahr, wenn die Zeit abgelaufen ist. Bit 10 ist eine Hilfsbit zur Freigabe der Zeit. Bit 11 ist ein Hilfsbit zum Laden der Zeit. Bit 0 bis Bit 9 beinhalten den aktuellen Zeitwert.

Bilanz[Bearbeiten]

Es gibt da noch eine Funktion. Das ist der Vergleicher. Der Leser ist aufgefordert, selbst einen Entwurf für das Symbol zu erstellen. 16 Bitwerte werden verglichen. Man kann nach größer, kleiner, gleich usw. fragen.

Mit dem bisher erworbenen Rüstzeug kann man nun programmieren. Ob das dann schon "gute" Programme werden, ist fraglich.

"Gute" Programme setzen immer eine intime und umfassende Kenntnis der zu steuernden Maschine oder Anlage voraus.

Nachstehend wird versucht aus der Fülle der verschiedenen Maschinen oder Anlagen Themen zu behandeln, die immer wieder vorkommen.

Es wurde behauptet, dass man mit vier Funktionen (UND, ODER, NEGIERUNG und ERGIBT) bereits alles programmieren kann. Das stimmt alleine deswegen, weil es die Grundlage für die gesamte Computertechnik ist. Das gilt auch für eine Verriegelung, die man allein mit Schließern, Öffnern und Relais erstellen müsste. Natürlich wäre es schade und teuer, wenn es keine Zeitrelais, keine Zähler usw. gäbe.

Maschinen und Anlagen[Bearbeiten]

Pumpen, Wärmeaustauscher, Ventile, Getriebe, Hebel, Befehlsgeber ......

Halt!

Es ist schlicht unmöglich, eine vollständige und sinnvoll geordnete Aufzählung aller Elemente oder Bestandteile einer Maschine oder Anlage zu erstellen. Für eine systematische Heransgehensweise muss man verallgemeinern und abstrahieren.

Im Folgenden konzentrieren wir uns auf eine Bauteilgruppe, nämlich auf die Stellglieder. Diese werden auch Aktoren genannt, weil diese Bauteile dafür verantwortlich sind, dass etwas geschieht oder dass sich etwas bewegt.

Bezogen auf die Philosophie zur Erstellung einer Steuerung bedeutet das:

  • Merkregel: Erstelle ein Programm immer ausgangsorientiert.

Das heisst auch: alle Geber oder Sensoren sind erst Mal zweitrangig.

Wir studieren also die Planungsunterlagen und richten unseren ersten Blick immer auf die Stellglieder. Sollte es eine Liste der Stellglieder noch nicht geben, dann erstellen wir eine solche. Für die Reihenfolge versuchen wir einen roten Faden zu finden. Gibt es verfahrenstechnische Einheiten oder Abschnitte? Gibt es eine Fließrichtung?

Keinesfalls gruppieren wir nach Stellgliedertypen (beispielsweise: Ventile, Pumpenmotoren usw.)!

Haben wir die Liste der Ausgänge vollständig abgearbeitet und für jeden Ausgang eine Programmlösung gefunden, die einer kritischen Betrachtung aller denkbaren Fehlersituationen standhält, dann sind wir fertig.

  • Merkregel: Die wichtigste Fehlersituation, die immer berücksichtigt werden muss, ist der Stromausfall oder besser allgemein der Energieausfall.


Technologische Namensgebung[Bearbeiten]

Häufig ist bereits eine Ein- und Ausgangsliste vorhanden. Dann muss man diese Liste kritisch prüfen.

Beispiel: In einem Schema oder einem Bauteileanordnungsplan finden wir ein Ventil mit der Bezeichnung Y 33, zugeordneter SPS-Ausgang ist A 12.7. Kann man damit etwas anfangen? Wenig. Die Bezeichnungen mögen ja eindeutig sein, aber die Funktion ist nicht erkennbar. Weiteres Nachforschen ergibt: Das Ventil ist in einer Natronlaugeleitung. Es ergibt sich, dass in einem Rezept zu einem bestimmten Zeitpunkt Natronlauge einem Ansatz zugefügt werden soll. Jetzt hat man einen für alle Beteiligten verständlichen Namen gefunden. Z.B. "Ventil Natronlauge Y 33".

Die Formulierung sollte für alle Beteiligten verständlich sein, das schliesst auch die Personen mit ein, die in Zukunft mit der Anlage arbeiten müssen (z.B. Wartung).

So etwas heißt technologische Namensgebung. Aus der "symbolischen" Bezeichnung eines Gebers oder Stellglieds geht die Funktion möglichst unverwechselbar hervor. Verständliche und aussagekräftige Namen für alle Operanden sind der Grundstock für die notwendige Kommentierung des Programms.

Grundstellung[Bearbeiten]

Grundstellung und Arbeitsstellung. Das sind die beiden Endpositionen eines Bauteils, das hin und her bewegt wird. Häufig ist unklar, welche Position als Grund- oder Arbeitsstellung bezeichnet werden muss.

Wir erinnern uns an die Situation bei der Erstellung von Stromlaufplänen.

  • Merkregel: Die Maschine oder Anlage wird im ausgeschalteten, energielosen und leeren Zustand betrachtet.

Aus dieser Regel lässt sich ableiten, was die Grundstellung eines Bauteil ist.

Beispiel: Ein Auf-Zu-Ventil. Hier heissen die Positionen natürlich "offen" und "geschlossen". Es muss dem Programmierer aber klar sein, welche der beiden Positionen als Grundstellung zu betrachten ist. Das ist eben nicht immer die geschlossene Position.

Überwachung der Bewegung[Bearbeiten]

      MVentil Natronlauge Y 33
       ┌───┐
Y33Ein─┤S  │
       │   │
Y33Aus─┤R Q├─Ventil Natronlauge Y 33
       └───┘

Wäre das ein vollständiges Programmteil für das Natronlaugeventil? Es gibt also nur eine Bedingung für das Öffnen und eine andere Bedingung für das Schließen. So einfach ist es selten.

Die erste Einschränkung ergibt sich aus dem Umstand, dass für Öffnen und Schließen nur ein Aktor verantwortlich ist. Das wäre in dem Beispiel in der Regel ein Magnetventil. Solange dieses angesteuert wird, ist das Ventil offen. Hierfür ist aber das Magnetventil nicht alleine verantwortlich, denn es steuert die Wirkung einer Hilfsenergie (häufig pneumatisch). Steht diese Hilfsenergie im Fehlerfall nicht zur Verfügung, dann ist die Ansteuerung des Magnetventils nutzlos.

Der Programmierer muss wissen, welche Folgen der Ausfall der Hilfsenergie hat.

  • Merkregel: Die Kenntnis über Art, Funktion und Ausfall der Hilfsenergie ist ein Standardthema.


Fehlerbild: Ein Auf-Zu-Ventil öffnet nicht. Was ist die mögliche Ursache?