Vergleichs- und Rechenoperationen in der SPS

Eine SPS verknüpft Eingänge und Ausgänge – ein Taster wird gedrückt, ein Schütz zieht an. Das funktioniert, solange es nur um Ein und Aus geht. Sobald aber Zahlen ins Spiel kommen – eine Stückzahl, ein Druck in bar, eine Temperatur – reicht reine Bitlogik nicht mehr. Dann muss die Steuerung rechnen und vergleichen.

Genau darum geht es hier: wie eine SPS Zahlenwerte gegeneinander prüft (ist der Istwert größer als der Grenzwert?) und wie sie mit ihnen rechnet (wie viel Prozent sind erreicht?). Wer das beherrscht, macht aus einer reinen Verknüpfungssteuerung eine echte Verarbeitung.

Vorwissen

  • Zahlensysteme: binär, hexadezimal, BCD
  • Adressierung von Eingängen, Ausgängen und Merkern
  • Grundlogik in KOP und FUP

Lernziele

Nach diesem Beitrag kannst du:

  • erklären, warum eine SPS neben der Bitverknüpfung auch Wortverarbeitung braucht
  • die sechs Vergleichsoperationen benennen und in KOP/FUP einordnen
  • die Grundrechenarten ADD, SUB, MUL, DIV und MOD in einer Rechenbox anwenden
  • die Funktion der Steueranschlüsse EN und ENO beschreiben
  • Rechnung und Vergleich zu einer Grenzwertüberwachung kombinieren

1. Warum die SPS rechnen und vergleichen muss

Eine klassische Verknüpfungssteuerung kennt nur zwei Zustände: ein Signal liegt an oder nicht. Ein Eingang ist 1 oder 0. Mit UND, ODER und NICHT lassen sich daraus Bedingungen bauen – Selbsthaltung, Verriegelung, einfache Abläufe. Für viele Aufgaben genügt das.

Die Grenze zeigt sich, sobald ein Wert eine Rolle spielt, der mehr als zwei Zustände hat. Eine Abfüllanlage soll bei 500 Stück stoppen. Ein Lüfter soll erst ab 60 °C anlaufen. Ein Sollwert soll aus zwei Messgrößen berechnet werden. Solche Aufgaben kann man nicht mehr mit einzelnen Bits lösen – man braucht ganze Zahlenwerte und Operationen, die mit ihnen umgehen.

Diese Zahlenwerte liegen in der SPS nicht als einzelnes Bit, sondern als Wort vor – ein zusammenhängender Block aus mehreren Bits, der eine Zahl darstellt. Eine 16-Bit-Ganzzahl etwa kann Werte von rund −32.000 bis +32.000 abbilden. Welche Datentypen es gibt (Ganzzahl, lange Ganzzahl, Gleitkommazahl) und wie sie adressiert werden, ist ein Thema für sich – hier reicht das Bild: Ein Wort ist die Zahl, mit der wir arbeiten.

Aus dieser Wortverarbeitung ergeben sich zwei Werkzeuggruppen. Die Vergleichsoperationen prüfen ein Zahlenverhältnis und liefern daraus wieder ein Bit – wahr oder falsch. Die Rechenoperationen verrechnen Zahlenwerte zu einem neuen Zahlenwert. Beide zusammen sind die Brücke zwischen der analogen Welt der Messwerte und der binären Welt der Steuerlogik.

Eine Steuerung soll ein Ventil öffnen, sobald ein Drucksensor den Wert 8 (als Zahlenwert im Wort) überschreitet. Warum reicht hier eine reine UND/ODER-Verknüpfung der Eingangsbits nicht aus?

  • a) Weil UND/ODER nur mit Gleitkommazahlen arbeiten kann
  • b) Weil Verknüpfungen grundsätzlich keine Ventile schalten dürfen
  • c) Weil der Sensor nur binäre Signale liefert
  • d) Weil der Druckwert eine mehrwertige Zahl ist und erst eine Vergleichsoperation daraus ein Schaltbit bilden kann

Richtig: d)

Der Druck liegt als Zahlenwert mit vielen möglichen Stufen vor. UND/ODER verarbeiten einzelne Bits, nicht den Zahlenwert als Ganzes. Erst eine Vergleichsoperation („Wert > 8?“) erzeugt aus der Zahl ein einzelnes wahr/falsch-Bit, das dann das Ventil schalten kann. Antwort a verdreht den Sachverhalt; b ist falsch, weil Verknüpfungen sehr wohl Ausgänge schalten; c widerspricht der Aufgabenstellung – der Sensor liefert hier einen Zahlenwert.

Was beschreibt der Begriff „Wort“ im Zusammenhang mit der SPS-Wortverarbeitung am treffendsten?

  • a) Ein zusammenhängender Block mehrerer Bits, der einen Zahlenwert darstellt
  • b) Eine Textzeichenkette für die Visualisierung
  • c) Ein einzelnes Steuerbit eines Ausgangs
  • d) Der Name eines Programmbausteins

Richtig: a)

Ein Wort fasst mehrere Bits zu einer Einheit zusammen, die als Zahl interpretiert wird – das ist die Grundlage jeder Rechen- und Vergleichsoperation. Eine Zeichenkette (b) ist etwas anderes; ein einzelnes Bit (c) ist genau das Gegenteil; ein Programmbaustein (d) ist ein Organisationsmittel, kein Datentyp.

2. Vergleichsoperationen

Eine Vergleichsoperation nimmt zwei Zahlenwerte und stellt eine einzige Frage: In welchem Verhältnis stehen sie zueinander? Das Ergebnis ist immer ein einzelnes Bit – wahr, wenn die Bedingung zutrifft, sonst falsch. Damit verhält sich eine Vergleichsbox im Programm wie ein Kontakt, der aber nicht von einem Eingang gesteuert wird, sondern von einer Zahlbedingung.

Es gibt sechs Vergleiche. Sie decken alle Verhältnisse ab, die zwischen zwei Zahlen möglich sind:

Operation Symbol Bedingung wahr, wenn …
Gleich == beide Werte gleich sind
Ungleich <> die Werte verschieden sind
Kleiner < der erste Wert kleiner ist
Größer > der erste Wert größer ist
Kleiner gleich <= der erste Wert kleiner oder gleich ist
Größer gleich >= der erste Wert größer oder gleich ist

In KOP (Kontaktplan) erscheint the Vergleich als Box mit zwei Eingängen – oben der erste Wert (IN1), darunter der zweite (IN2). Die Box sitzt im Strompfad wie ein Kontakt: Ist die Bedingung erfüllt, „leitet“ sie und das Signal läuft weiter zur Spule. In FUP (Funktionsplan) ist es ebenfalls ein Block mit den beiden Eingängen IN1 und IN2, dessen Ausgang das Ergebnisbit führt.

Wichtig ist eine Regel, die in der Praxis leicht übersehen wird: Beide Operanden müssen denselben Datentyp haben. Man vergleicht eine Ganzzahl mit einer Ganzzahl, eine Gleitkommazahl mit einer Gleitkommazahl. Vergleicht man unterschiedliche Typen, meldet das Programmiersystem entweder einen Fehler oder das Ergebnis wird unbrauchbar, weil die Bitmuster verschieden interpretiert werden.

Eine Vergleichsbox prüft IN1 <= IN2. IN1 enthält den Wert 40, IN2 den Wert 40. Welches Ergebnis liefert die Box?

  • a) falsch, weil die Werte gleich und nicht kleiner sind
  • b) Es entsteht ein Datentypfehler
  • c) wahr, aber nur wenn IN1 vorher größer war
  • d) wahr, weil 40 kleiner oder gleich 40 ist

Richtig: d)

Der Operator <= ist genau dann wahr, wenn der erste Wert kleiner oder gleich dem zweiten ist. Bei Gleichheit (40 = 40) ist die „gleich“-Bedingung erfüllt, das Ergebnis ist wahr. Antwort a übersieht den „gleich“-Teil des Operators; b ist falsch, weil beide Operanden denselben Typ haben; c erfindet eine Vorgeschichte, die für den Vergleich keine Rolle spielt.

Warum führt der Vergleich einer 16-Bit-Ganzzahl mit einer Gleitkommazahl ohne vorherige Umwandlung zu Problemen?

  • a) Gleitkommazahlen können nicht verglichen werden
  • b) Ganzzahlen sind immer größer als Gleitkommazahlen
  • c) Die beiden Datentypen haben unterschiedliche Bitmuster und werden sonst falsch interpretiert
  • d) Der Vergleich dauert zu lange für einen Zyklus

Richtig: c)

Eine Ganzzahl und eine Gleitkommazahl speichern denselben Zahlenwert in völlig verschiedenen Bitmustern. Vergleicht man sie direkt, deutet die Operation die Bits falsch – das Ergebnis ist nicht verlässlich. Deshalb müssen die Typen übereinstimmen oder einer wird vorher umgewandelt. a und b sind sachlich falsch; d trifft nicht den Kern, die Laufzeit ist hier nicht das Problem.

Eine Anlage soll melden, wenn der Istwert NICHT genau dem Sollwert entspricht. Welcher Operator gehört in die Vergleichsbox?

  • a) <>
  • b) ==
  • c) >=
  • d) <

Richtig: a)

„Nicht gleich“ wird durch den Operator <> (ungleich) abgebildet – er ist immer dann wahr, wenn die beiden Werte verschieden sind. == (b) würde das Gegenteil melden; >= (c) und < (d) prüfen eine Größenrelation, nicht die reine Verschiedenheit.

3. Rechenoperationen

Rechenoperationen verrechnen Zahlenwerte zu einem neuen Zahlenwert. Das Ergebnis ist hier kein einzelnes Bit wie beim Vergleich, sondern wieder ein Wort, das irgendwo abgelegt wird – in einem Merker, einer Variablen, einem Ausgangswort.

Die Grundoperationen entsprechen den vier Grundrechenarten, dazu kommt die Restbildung:

  • ADD: Ergebnis = IN1 + IN2 Addition
  • SUB: Ergebnis = IN1 – IN2 Subtraktion
  • MUL: Ergebnis = IN1 * IN2 Multiplikation
  • DIV: Ergebnis = IN1 / IN2 Division
  • MOD: Ergebnis = Rest aus IN1 / IN2 Restbildung

MOD liefert den Rest einer Division. 17 MOD 5 ergibt 2, denn 5 passt dreimal in 17 (= 15), es bleiben 2 übrig. In der Praxis nützlich, etwa um jeden fünften Takt eine Aktion auszulösen: Ist der Zählerstand MOD 5 gleich null, ist gerade ein Vielfaches von 5 erreicht.

Der Aufbau einer Rechenbox: EN und ENO

In KOP und FUP steht jede Rechenoperation als Box im Programm. Neben den Werteingängen (IN1, IN2) und dem Ergebnisausgang hat diese Box zwei besondere Steueranschlüsse: EN und ENO.

EN steht für Enable – freigeben. Es ist der Eingang oben links an der Box. Nur wenn am EN-Eingang ein Signal anliegt (der Strompfad bis dorthin „leitet“), wird die Rechenoperation in diesem Zyklus überhaupt ausgeführt. Liegt kein Signal an, bleibt die Box untätig und das Ergebnis unverändert. Damit lässt sich eine Rechnung gezielt an eine Bedingung knüpfen – sie läuft nur, wenn sie gebraucht wird.

ENO steht für Enable Output – der Ausgang oben rechts. ENO gibt das EN-Signal weiter, aber nur, wenn die Operation fehlerfrei durchgelaufen ist. Tritt ein Fehler auf – ein Überlauf, weil das Ergebnis zu groß für den Datentyp ist, oder eine Division durch null – dann führt ENO kein Signal. Das ist der entscheidende Punkt: Man kann an ENO eine Fehlerbehandlung anhängen oder mehrere Boxen über EN/ENO so verketten, dass die nächste Operation nur startet, wenn die vorige sauber war.

Die vier Anschlüsse einer ADD-Box lassen sich so einordnen: Oben links sitzt EN als Freigabeeingang, oben rechts ENO als Freigabeausgang. Links darunter liegen die beiden Werteingänge IN1 und IN2, rechts der Ergebnisausgang mit der berechneten Summe. Der waagrechte Signalfluss läuft also von EN über die Box zu ENO, während die Zahlenwerte seitlich ein- und das Ergebnis austritt.

Damit ist die Brücke zur Steuerlogik geschlagen: EN bindet die Rechnung in den Signalfluss ein, ENO meldet zurück, ob alles gut ging.

Gelöstes Beispiel

Ein Zähler liefert den Stand 238. Es soll geprüft werden, das wievielte vollständige Zehnerpaket erreicht ist und wie viele Stück im angefangenen Paket liegen.

Gegeben: Zählerstand z = 238, Paketgröße p = 10

Gesucht: vollständige Pakete (Ganzzahldivision) und Reststück (MOD)

Lösungsweg:

  1. Vollständige Pakete (Ganzzahldivision): 238 / 10 = 23 (Nachkommastelle fällt weg)
  2. Reststück (MOD): 238 MOD 10 = 238 − 10 · 23 = 238 − 230 = 8

Ergebnis: 23 vollständige Pakete, im angefangenen Paket liegen 8 Stück.

Übungen

Berechne 12 + 9 mit der ADD-Operation.

21

Eine Maschine hat 84 Teile in 12 Behälter gleichmäßig verteilt. Wie viele Teile je Behälter (Ganzzahldivision)?

84 / 12 = 7 Teile je Behälter.

Berechne 100 MOD 7.

7 passt 14-mal in 100 (= 98), Rest = 100 − 98 = 2.

Ein Sollwert ergibt sich aus Grundwert 250 plus dreifachem Korrekturwert 14. Berechne den Sollwert mit MUL und ADD.

3 · 14 = 42; 250 + 42 = 292.

Eine Durchflussmenge von 4500 Litern soll in einer Ganzzahlvariablen durch 8 geteilt werden. Welches Ergebnis steht in der Variablen, und um wie viel weicht es vom exakten Wert ab?

Exakt 4500 / 8 = 562,5. Als Ganzzahl steht 562 in der Variablen (Nachkommastelle abgeschnitten), die Abweichung beträgt 0,5.

Eine ADD-Box ist über EN an einen Eingangskontakt geknüpft. Der Kontakt ist offen (kein Signal an EN). Was passiert mit dem Ergebniswort in diesem Zyklus?

  • a) Es bleibt unverändert, weil die Box nicht ausgeführt wird
  • b) Es wird auf null gesetzt
  • c) Die Box meldet einen Überlauf
  • d) Das Ergebnis wird trotzdem neu berechnet

Richtig: a)

Ohne Signal am EN-Eingang wird die operation in diesem Zyklus nicht ausgeführt – das Ergebniswort behält seinen alten Wert. Es wird weder neu berechnet (d) noch automatisch genullt (b). Ein Überlauf (c) entsteht nur bei tatsächlicher Ausführung mit zu großem Ergebnis.

Eine DIV-Box soll 9 durch eine Variable teilen, die im Fehlerfall den Wert 0 annehmen kann. Welche Aussage ist korrekt?

  • a) Die Division durch null liefert das Ergebnis null
  • b) ENO bleibt bei Division durch null aktiv und meldet kein Problem
  • c) ENO schaltet ab und ermöglicht so eine Fehlerbehandlung
  • d) Eine Division durch null ist in der SPS unkritisch

Richtig: c)

Division durch null ist ein Laufzeitfehler. ENO führt in diesem Fall kein Signal mehr – daran lässt sich eine Fehlerroutine anhängen. Antwort a ist falsch (es entsteht kein definiertes Ergebnis null); b widerspricht der ENO-Funktion; d verharmlost einen echten Fehlerfall.

Zwei Ganzzahlen, 25 und 4, werden mit DIV verarbeitet, das Ergebnis in einer Ganzzahlvariablen abgelegt. Welcher Wert steht dort?

  • a) 6
  • b) 6,25
  • c) 7
  • d) 4

Richtig: a)

Bei der Ganzzahldivision wird die Nachkommastelle abgeschnitten, nicht gerundet. 25 / 4 = 6,25 → die Variable enthält 6. Antwort b setzt eine REAL-Variable voraus; c würde Aufrunden bedeuten, was nicht geschieht; d ist der Divisor, nicht das Ergebnis.

Wofür wird die MOD-Operation typischerweise eingesetzt?

  • a) Um Gleitkommazahlen in Ganzzahlen umzuwandeln
  • b) Um zwei Werte zu vergleichen
  • c) Um einen Überlauf zu verhindern
  • d) Um den Rest einer Division zu ermitteln, etwa für taktweise Aktionen

Richtig: d)

MOD liefert den Rest einer Division – praktisch, um zu erkennen, wann ein Vielfaches erreicht ist (Rest = 0). Eine Typumwandlung (a) ist eine andere Operation; Vergleichen (b) machen die Vergleichsoperatoren; Überlaufschutz (c) hat mit MOD nichts zu tun.

4. Vergleich und Rechnung kombiniert

Einzeln betrachtet sind Vergleich und Rechnung überschaubar. Ihre Stärke zeigt sich erst in der Verkettung: Erst wird ein Rohwert verrechnet, dann das Ergebnis gegen eine Grenze geprüft. Genau so läuft fast jede reale Auswertung ab.

Ein Analogwert kommt selten in der gewünschten Einheit aus der Hardware. Ein Wägemodul liefert zum Beispiel einen Rohwert, der erst auf eine physikalische Größe umgerechnet werden muss. Diese Skalierung ist eine Rechenoperation – meist eine lineare Umrechnung der Form:

y = (x – x_min) * (y_max – y_min) / (x_max – x_min) + y_min

  • y … skalierter Wert in der Zielgröße
  • x … Rohwert von der Hardware
  • x_min … kleinster Rohwert
  • x_max … größter Rohwert
  • y_min … kleinster Zielwert
  • y_max … größter Zielwert

Wie die Analogwerterfassung und die hardwareseitige Parametrierung der Roh- und Zielbereiche im Detail funktionieren, wird im eigenen Beitrag zur Analogwertverarbeitung vertieft. Hier zählt nur: Aus dem Rohwert wird per Rechnung ein brauchbarer Wert.

Erst danach folgt der Vergleich. Der skalierte Wert wird gegen einen Grenzwert geprüft, das Ergebnis schaltet einen Ausgang. Bei einer einfachen Grenzwertüberwachung würde derselbe Grenzwert für Ein und Aus genügen – mit dem bekannten Problem: Pendelt der Messwert dicht an der Grenze, flattert der Ausgang.

Die Lösung ist eine Hysterese: zwei verschiedene Schwellen statt einer. Eingeschaltet wird bei der oberen Schwelle, ausgeschaltet erst bei der unteren, die um den Hysteresewert tiefer liegt. Dazwischen bleibt der Zustand, wie er ist. So entsteht eine ruhige Schaltung ohne Flattern. Der Ausgang merkt sich seinen Zustand, deshalb braucht eine echte Hysterese in der SPS ein Speicherglied – die beiden Schwellen selbst sind aber reine Rechnung und Vergleich.

Gelöstes Beispiel

Ein Drucksensor liefert einen Rohwert von 0 bis 27648, der einem Druck von 0 bis 10 bar entspricht. Bei einem aktuellen Rohwert von 13824 soll der Druck berechnet und geprüft werden, ob er die Einschaltschwelle von 6 bar überschreitet.

Gegeben: Rohwert x = 13824, Rohwertbereich 0 bis 27648, Druckbereich 0 bis 10 bar, Einschaltschwelle G = 6 bar

Gesucht: skalierter Druck und Vergleichsergebnis

Lösungsweg:

  1. Skalierung (Rechnung): p = 13824 · 10 / 27648 = 5,0 bar
  2. Vergleich gegen Grenzwert: 5,0 bar > 6 bar? → falsch

Ergebnis: Der Druck beträgt 5,0 bar. Die Einschaltschwelle ist nicht überschritten, der Ausgang bleibt aus.

Übungen

Skaliere einen Rohwert von 27648 auf einen Bereich 0 bis 100 % (Rohwertbereich 0 bis 27648).

27648 · 100 / 27648 = 100 %.

Ein Temperaturrohwert ergibt skaliert 58 °C. Die Einschaltschwelle liegt bei 60 °C. Liefert der Vergleich „skaliert >= 60″ wahr oder falsch?

58 >= 60 ist falsch – der Ausgang bleibt aus.

Einschaltschwelle 80 %, Hysterese 10 %. Bei welchem Wert schaltet der Ausgang wieder ab?

Ausschaltschwelle = 80 % − 10 % = 70 %.

Ein Rohwert 0 bis 27648 entspricht 4 bis 20 mA. Berechne den Stromwert bei Rohwert 13824.

I = (13824 − 0) · (20 − 4) / (27648 − 0) + 4 = 0,5 · 16 + 4 = 12 mA.

Ein Füllstand wird auf 0 bis 100 % skaliert und ergibt aktuell 73 %. Einschaltschwelle 80 %, Ausschaltschwelle 70 %, der Ausgang war zuletzt eingeschaltet. Bleibt er ein oder aus, und warum?

73 % liegt zwischen Aus- (70 %) und Einschaltschwelle (80 %). In diesem Band behält der Ausgang seinen letzten Zustand – er bleibt eingeschaltet, weil er zuletzt ein war.

Ein Füllstand wird gegen eine einzelne Grenze von 75 % geprüft und schaltet eine Pumpe. Der Messwert schwankt leicht um 75 %. Was ist die typische Folge?

  • a) Die Pumpe läuft konstant durch
  • b) Die Pumpe schaltet wiederholt schnell ein und aus
  • c) Der Messwert wird automatisch geglättet
  • d) Die Grenze verschiebt sich von selbst

Richtig: b)

Pendelt der Wert dicht um die einzelne Grenze, wechselt das Vergleichsergebnis ständig zwischen wahr und falsch – die Pumpe flattert. Genau das vermeidet eine Hysterese mit getrennten Ein- und Ausschaltschwellen. a und c beschreiben Effekte, die ohne weitere Maßnahme nicht eintreten; d ist frei erfunden.

Bei einer Hysterese mit Einschaltschwelle 80 % und Ausschaltschwelle 70 % liegt der aktuelle Wert bei 74 %, der Ausgang war zuletzt aus. Wie verhält sich der Ausgang?

  • a) Er schaltet ein, weil 74 % über 70 % liegt
  • b) Er schaltet ein, weil 74 % näher an 80 % liegt
  • c) Das Verhalten ist nicht bestimmbar
  • d) Er bleibt aus, weil die Einschaltschwelle 80 % nicht erreicht ist

Richtig: d)

Im Band zwischen 70 % und 80 % behält der Ausgang seinen letzten Zustand. War er aus, schaltet er erst bei Erreichen der Einschaltschwelle 80 % ein – 74 % genügt nicht. a verwechselt Ein- und Ausschaltschwelle; b argumentiert mit Nähe, die hier irrelevant ist; c ist falsch, das Verhalten ist eindeutig definiert.

Warum braucht eine echte Hysterese-Schaltung in der SPS ein Speicherglied, während die Schwellen selbst nur Rechnung und Vergleich sind?

  • a) Weil Vergleiche grundsätzlich gespeichert werden müssen
  • b) Weil der Ausgang im Band zwischen den Schwellen von seinem vorherigen Zustand abhängt
  • c) Weil die Skalierung sonst nicht funktioniert
  • d) Weil ein Speicherglied schneller rechnet

Richtig: b)

Zwischen Aus- und Einschaltschwelle ist das Verhalten nur dann eindeutig, wenn der bisherige Zustand bekannt ist – dieser muss gespeichert werden. Die Schwellen selbst berechnet und vergleicht die SPS in jedem Zyklus neu. a verallgemeinert falsch; c und d sind sachlich ohne Bezug.

Abschlusstest

Aufgabe 1: Eine Verpackungslinie hat 1734 Teile in Kartons zu je 24 Stück zu füllen.

Gegeben: Gesamtzahl 1734, Kartongröße 24

Gesucht: voll gefüllte Kartons (Ganzzahldivision) und Restteile (MOD)

Lösungsweg:

  1. 1734 / 24 = 72 (abgeschnitten)
  2. 1734 MOD 24 = 1734 − 24 · 72 = 1734 − 1728 = 6

Ergebnis: 72 volle Kartons, 6 Restteile.

Aufgabe 2: Berechne 96 MOD 9 und gib zusätzlich die Ganzzahldivision 96 / 9 an.

Gegeben: IN1 = 96, IN2 = 9

Gesucht: Ganzzahlquotient und Rest

Lösungsweg:

  1. 9 passt 10-mal in 96 (= 90); Quotient = 10, Rest = 96 − 90 = 6

Ergebnis: 96 / 9 = 10 (Ganzzahl), 96 MOD 9 = 6.

Aufgabe 3: Ein Sensorrohwert 0 bis 27648 entspricht 0 bis 200 °C. Skaliere den Rohwert 20736 auf °C.

Gegeben: x = 20736, Rohwertbereich 0–27648, Zielbereich 0–200 °C

Gesucht: Temperatur in °C

Lösungsweg:

  1. T = 20736 · 200 / 27648 = 150 °C

Ergebnis: 150 °C.

Aufgabe 4: Aus dem Rohwertbereich 0 bis 27648 soll ein Wert in mA (4 bis 20 mA) skaliert werden. Berechne den Stromwert bei Rohwert 6912.

Gegeben: x = 6912, x_min = 0, x_max = 27648, y_min = 4 mA, y_max = 20 mA

Gesucht: Strom in mA

Lösungsweg:

  1. I = (6912 − 0) · (20 − 4) / (27648 − 0) + 4 = 0,25 · 16 + 4 = 4 + 4 = 8 mA

Ergebnis: 8 mA.

Aufgabe 5: Ein Sollwert ergibt sich als Grundwert 180 plus dem fünffachen Korrekturwert 12, anschließend halbiert (Ganzzahldivision durch 2). Berechne den Sollwert.

Gegeben: Grundwert 180, Korrekturwert 12

Gesucht: Sollwert (Ganzzahl)

Lösungsweg:

  1. 5 · 12 = 60; 180 + 60 = 240; 240 / 2 = 120

Ergebnis: 120.

Aufgabe 6: Eine Hysterese hat Einschaltschwelle 85 % und Hysterese 12 %. Berechne die Ausschaltschwelle und gib an, in welchem Wertebereich der Ausgang seinen Zustand hält.

Gegeben: Einschaltschwelle 85 %, Hysterese 12 %

Gesucht: Ausschaltschwelle, Halteband

Lösungsweg:

  1. Ausschaltschwelle = 85 % − 12 % = 73 %; Halteband zwischen 73 % und 85 %

Ergebnis: Ausschaltschwelle 73 %; der Ausgang hält seinen Zustand zwischen 73 % und 85 %.

Eine Vergleichsbox IN1 > IN2 erhält IN1 = 30 und IN2 = 45. Welches Ergebnisbit liefert sie?

  • a) wahr
  • b) Datentypfehler
  • c) Es bleibt unverändert
  • d) falsch

Richtig: d)

30 ist nicht größer als 45, also ist die Bedingung falsch. a ist die Umkehrung; b träfe nur bei verschiedenen Typen zu; c gilt für Rechenboxen ohne EN, nicht für Vergleiche.

Welche Operation eignet sich, um zu erkennen, ob ein Zählerstand ein Vielfaches von 6 erreicht hat?

  • a) MOD, Ergebnis gleich null prüfen
  • b) ADD
  • c) DIV mit REAL-Variablen
  • d) SUB

Richtig: a)

Ist Zählerstand MOD 6 gleich null, liegt ein Vielfaches von 6 vor. ADD (b) und SUB (d) leisten das nicht; eine REAL-Division (c) liefert keinen klaren Rest-Test.

Ein EN-Eingang einer MUL-Box führt kein Signal. Was gilt für ENO?

  • a) ENO führt kein Signal, weil die Box nicht ausgeführt wird
  • b) ENO führt trotzdem Signal
  • c) ENO meldet einen Überlauf
  • d) ENO setzt das Ergebnis auf null

Richtig: a)

ENO gibt das EN-Signal nur bei fehlerfreier Ausführung weiter. Ohne EN-Signal läuft die Box nicht, also führt auch ENO kein Signal. b widerspricht der EN-Logik; c und d beschreiben Effekte, die hier nicht eintreten.

Zwei Ganzzahlen 13 und 4 werden mit DIV verarbeitet, Ergebnis in einer Ganzzahlvariablen. Welcher Wert steht in der Variablen?

  • a) 3,25
  • b) 4
  • c) 3
  • d) 3,5

Richtig: c)

Ganzzahldivision schneidet die Nachkommastelle ab: 13 / 4 = 3,25 → 3. a und d setzen REAL voraus; b wäre Aufrunden.

Bei einer Hysterese mit Ein 80 % / Aus 70 % liegt der Wert bei 76 %, der Ausgang war zuletzt eingeschaltet. Wie verhält er sich?

  • a) Er bleibt eingeschaltet, weil 76 % über der Ausschaltschwelle liegt
  • b) Er schaltet ab, weil 76 % unter 80 % liegt
  • c) Er schaltet ab, weil der Mittelwert unterschritten ist
  • d) Das Verhalten ist zufällig

Richtig: a)

Im Band zwischen 70 % und 80 % hält der Ausgang seinen Zustand. War er ein, bleibt er ein, solange 70 % nicht unterschritten werden. b verwechselt die Schwellen; c erfindet einen Mittelwert; d ist falsch, das Verhalten ist definiert.

Warum müssen beide Operanden einer Vergleichsoperation denselben Datentyp haben?

  • a) Sonst dauert der Vergleich länger als ein Zyklus
  • b) Weil unterschiedliche Datentypen verschiedene Bitmuster haben und sonst falsch interpretiert werden
  • c) Weil die SPS nur einen Datentyp kennt
  • d) Weil sonst der Ausgang flattert

Richtig: b)

Verschiedene Typen speichern Zahlen in verschiedenen Bitmustern; ein direkter Vergleich deutet die Bits falsch. a ist kein Datentypproblem; c ist sachlich falsch; d gehört zur Hysterese, nicht zum Datentyp.

Eine DIV-Box teilt einen festen Wert durch eine veränderliche Variable, die kurzzeitig null wird. Was ist die beste Vorsichtsmaßnahme?

  • a) Vor der Division per Vergleich prüfen, ob der Divisor null ist
  • b) Den Datentyp auf REAL umstellen
  • c) Die Box ohne EN betreiben
  • d) Den Dividenden verdoppeln

Richtig: a)

Eine vorgelagerte Prüfung „Divisor <> 0″ verhindert die Division durch null. REAL (b) löst das Problem nicht; ohne EN (c) läuft die Box ungesteuert; den Dividenden zu verdoppeln (d) ändert nichts am Nullteiler.

Ein Rohwert 0 bis 27648 wird auf 0 bis 100 % skaliert. Bei welchem Rohwert ergibt sich genau 50 %?

  • a) 27648
  • b) 5000
  • c) 50
  • d) 13824

Richtig: d)

50 % entsprechen der Hälfte des Rohwertbereichs: 27648 / 2 = 13824. a ergäbe 100 %; b und c liefern andere Prozentwerte.

Was unterscheidet das Ergebnis einer Vergleichsoperation grundsätzlich vom Ergebnis einer Rechenoperation?

  • a) Der Vergleich liefert ein Wort, die Rechnung ein Bit
  • b) Beide liefern ausschließlich Bits
  • c) Beide liefern ausschließlich Zahlenwerte
  • d) Der Vergleich liefert ein einzelnes Bit, die Rechnung einen Zahlenwert

Richtig: d)

Eine Vergleichsoperation liefert wahr/falsch als einzelnes Bit, eine Rechenoperation einen neuen Zahlenwert (Wort). a vertauscht beides; b und c verallgemeinern falsch.

Eine Skalierung soll einen genauen Nachkommawert liefern. Welche Datentyp-Wahl ist sinnvoll?

  • a) Ganzzahl, weil schneller
  • b) Gleitkommazahl (REAL), weil Nachkommastellen erhalten bleiben
  • c) BCD, weil dezimal
  • d) Bit, weil eindeutig

Richtig: b)

Nur REAL erhält die Nachkommastellen; eine Ganzzahl würde sie abschneiden. BCD (c) ist ein Codierformat für Dezimalziffern, kein Rechentyp für solche Skalierungen; ein Bit (d) kann gar keinen Zahlenwert tragen.

Eine Rechenkette verknüpft zwei ADD-Boxen über EN/ENO. Die erste Box erzeugt einen Überlauf. Was passiert mit der zweiten Box?

  • a) Sie wird trotzdem ausgeführt
  • b) Sie meldet ihrerseits einen Überlauf
  • c) Sie setzt ihr Ergebnis auf null
  • d) Sie wird nicht ausgeführt, weil ENO der ersten Box kein Signal an EN der zweiten gibt

Richtig: d)

Bei einem Überlauf führt ENO der ersten Box kein Signal. Ist dieses ENO mit dem EN der zweiten Box verbunden, startet die zweite nicht. So lassen sich Fehler in einer Kette sauber abfangen. a widerspricht der Verkettung; b und c treten nicht automatisch ein.

Ein Füllstand wird auf 0 bis 100 % skaliert, Einschaltschwelle 90 %, Ausschaltschwelle 80 %. Aktueller Wert 95 %. Welche Aussage stimmt unabhängig vom vorherigen Zustand?

  • a) Der Ausgang bleibt sicher aus
  • b) Der Ausgang flattert
  • c) Der Ausgang ist eingeschaltet, weil die Einschaltschwelle überschritten ist
  • d) Der Zustand hängt vom vorherigen Wert ab

Richtig: c)

Oberhalb der Einschaltschwelle (90 %) ist der Ausgang in jedem Fall ein – 95 % liegt darüber. Nur im Band zwischen 80 % und 90 % hinge der Zustand von der Vorgeschichte ab (d), hier nicht. a ist falsch; b wird durch die Hysterese gerade verhindert.

Glossar

Wortverarbeitung
Verarbeitung von Zahlenwerten, die als Wort (Block mehrerer Bits) vorliegen, im Unterschied zur reinen Bitverknüpfung.
Vergleichsoperation
Operation, die zwei gleichartige Zahlenwerte gegeneinander prüft und ein einzelnes wahr/falsch-Bit liefert (==, <>, <, >, <=, >=).
Rechenoperation
Operation, die Zahlenwerte zu einem neuen Zahlenwert verrechnet: ADD, SUB, MUL, DIV.
MOD
Operation, die den Rest einer Ganzzahldivision liefert; nützlich, um Vielfache zu erkennen.
EN (Enable)
Steuereingang einer Rechenbox; nur bei anliegendem Signal wird die Operation im Zyklus ausgeführt.
ENO (Enable Output)
Steuerausgang einer Rechenbox; führt das EN-Signal nur weiter, wenn die Operation fehlerfrei war, und meldet so Überlauf oder Division durch null.
Ganzzahldivision
Division zweier Ganzzahlen, bei der die Nachkommastelle abgeschnitten wird; für genaue Werte ist eine Gleitkommazahl nötig.
Skalierung
lineare Umrechnung eines Rohwerts in eine physikalische Zielgröße über die Bereichsgrenzen von Roh- und Zielwert.
Hysterese
Schaltverfahren mit zwei getrennten Schwellen für Ein und Aus, das Flattern des Ausgangs bei schwankenden Werten verhindert.

Scroll to Top