Kapitel 3: Fragen und Antworten

Das Softwaremodell beschreibt die Architektur des Programmiersystems, die nachfolgend dargestellt ist.

Die Steuerungskonfiguration beschreibt die Hardware des Steuerungssystems. Diese umfasst i.d.R. verschiedene Ressourcen, wie z.B. CPU's, E/A-Karten, Kommunikationsprozessoren etc. Auf jeder CPU können verschiedene Tasks (z.B. Taks 1,.., Task M) ablaufen. Einer Task werden ein oder mehrere Programme zugeordnet, deren Ablauf sie organisiert. Somit laufen auf einer CPU mehrere Programme (z.B. Programm 1,.., Programm N). Jedes Programm kann eines mehreren Funktionen (Function Codes, FC) und Funktionsbausteinen (Function Blocks, FB) bestehen. Globale Variablen ermöglichen den Datenaustausch zwischen den Programmen.

  • Variablentypen: Lokale Variable (VAR), globale Variablen (VAR_GLOBAL), Eingangsvariablen (VAR_INPUT), Ausgangsvariablen (VAR_OUTPUT), Ein- und Ausgangsvariablen (VAR_IN_OUT), Variablen, die ihren Wert behalten, wenn die SPS aus- und wieder eingeschaltet wird (VAR_RETAIN) oder, wenn die Software erneut in die SPS geladen wird (VAR_PERSISTENT).
  • Datentypen: BOOL, INT, REAL, TIME, TIME_OF_DAY, DATE, STRING

Nach dem EVA-Prinzip werden in einer Task folgende Vorgänge organisiert:

  • Zuerst werden die Eingangsdaten aller Programme eingelesen,
  • dann werden die Programme nacheinander verarbeitet und
  • schließlich werden die Ausgangsdaten aller Programme ausgegeben.

Die Zeit, die ein Zyklus zwischen zwei Mal Einlesen beansprucht, nennt man Zykluszeit.

Standard-Funktionen:

  • Boolsche Funktionen: z.B. AND; OR, NOT, XOR,
  • Bitfolge Funktionen: z.B. ROL; ROR, SHR, SHL,
  • Arithmetische Funktionen: z.B. ADD; SUB, MUL, DIV,
  • Numerische Funktionen: z.B. SIN; COS, LOG, EXP,
  • Funktionen für Auswahl: z.B. LIMIT, SEL; MAX, MIN,
  • Funktionen für Vergleich: z.B. LT;GT;EQ;LE;GE;NE,
  • Funktionen für Typumwandlung: z.B. INT_TO_REAL, BYTE_TO_WORD.

Standard-Funktionsbausteine:

  • Speicher: z.B. RS; SR,
  • Trigger: z.B. R_TRIG; F_TRIG,
  • Zähler: z.B. CTUD, CTU, CTD,
  • Timer: z.B. TON ; TOF ; TP.
  • RS: Es gibt die Zustände Q1=0 (FALSE) und Q1=1 (TRUE). Der Übergang vo Q1=0 nach Q1=1 erfolgt, wenn der Eingang SET=1 und  RESET1=0 ist. Der Zustand Q1=1 bleibt aktiv, solange RESET1=0 ist, also auch wenn SET wieder auf Null zurückspringt. Wird RESET1=1, erfolgt der Übergang zum Zustand Q1=0.
  • TP erzeugt einen Impuls der Länge PT. Wenn der Eingang IN von 0 nach 1 springt, wird ein Puls am Ausgang Q für die Zeitdauer PT ausgegeben.
  • Der Zeitgeber TON realisiert eine Einschaltverzögerung, die bei einem anliegenden Impuls am Eingang IN einen um die Zeit PT verzögerten Impuls am Ausgang Q erzeugt, solange der Impuls am Eingang anliegt.
  • Dagegen ist der Baustein TOF durch ein sofortiges Ein-, aber verzögertes Ausschalten charakterisiert.
  • Der Auf- und Abwärtszähler CTUD zählt bei Anliegen eines Impulses (steigende Flanke) am Eingang CU den Zählerstand CV um eins hoch. Liegt dagegen am Eingang CD eine steigende Flanke an, wird der Zählerstand CV um eins verringert. Ist das Zählergebnis CV=PV (Preset Value, Sollwert), so ist das Aufwärtszählen beendet, was durch das Ausgangssignal QU=1 signalisiert wird. Wenn dagegen CV=0 ist, wird das Ausgangssignal QD=1 ausgegeben und das Abwärtszählen ist beendet. Durch den Eingang RESET wird der Zähler mit CV=0 initialisiert.

a) Innerhalb eines Programms wird die Kommunikation mit Funktionen und Funktionsbausteinen durch Verbinden ihrer Ein- und Ausgangsvariablen mit den Programmvariablen ermöglicht.

b) Die Kommunikation zwischen Programmen erfolgt nach IEC 61131 durch globale Variablen

c)  Zwischen zwei S7-Steuerungen mit Funktionsbausteinen PUT und GET, zwischen Soft-SPSen von Codesys mit Netzwerkvariablen (s. Beispiel 3.11), herstellerübergreifend mit OPC-UA (eine SPS als Server, die andere als Client, s. Beispiel 8.1)

Je nach Messwert überträgt der Sensor einen Strom zwischen 4 und 20 mA oder eine Spannung zwischen 0 und 10 V an die SPS. Dementsprechend liest sie aus dem Eingabeabbild (z. B. %IW1) ein analoges Datenwort xW ein, dessen Werte im Normbereich zwischen 0 und 27648 liegen (s. Abschnitt 2.4.3). Der lineare Zusammenhang zwischen Datenwort xW und dem Messwert oder Process Value (PV) wird im Funktionsbaustein TYP_AIN folgendermaßen berechnet:

PV := PV_Min + xW * (PV_Max − PV_Min)/27648;

  • Grafische Sprachen:
    • Funktionsbausteinsprache (FBS, FUP),
    • Kontaktplan (KOP),
    • Ablaufsprache (AS).

  • Textsprachen:
    • Strukturierter Text (ST),
    • Anweisungsliste (AWL).

Ein binärer Sensor überträgt ein 0-Signal im Fehlerfall, wenn z.B. ein Behälter voll ist. Im Gutzustand wird ein 1-Signal an die SPS übertragen.  Wenn ein Drahtbruch vorliegt (0-Signal), erkennt die SPS dadurch einen Fehler.

In Ablaufsteuerungen werden mehrere Schritte eines Prozessablaufs aneinandergereiht. Ein Schritt besteht jeweils aus den ihm zugeordneten Aktionen, die aktiviert werden, solange der Schritt aktiv ist, sowie einer nachfolgenden Transition, die einen Boole’schen Ausdruck als Weiterschaltbedingung in den nächsten Schritt darstellt.

Bestimmungszeichen geben an, wie die Aktionen verarbeitet werden sollen. Das Bestimmungszeichen vor dem zu aktivierenden Steuersignal bedeutet, dass das Signal nicht speichernd gesetzt wird. Werden die Ansteuersignale mit dem Bestimmungszeichen S versehen, bleiben sie so lange gesetzt, bis sie in einem der folgenden Schritte durch das Bestimmungszeichen R zurückgesetzt werden. Darüber hinaus gibt es die Möglichkeit, Ansteuersignale zeitlich limitiert (L) oder verzögert (D) zu setzen. Diese Bestimmungszeichen ersetzen Timer, die meist auch schon in der Ansteuerlogik der Funktionsbausteine integriert sind. Schließlich verursacht ein Puls (P), dass das Steuersignal nur kurzzeitig über einen Zyklus aktiviert wird

Ob ein Schritt aktiv oder inaktiv ist, wird durch eine implizite Variable der Schrittkette, den sog. Schrittmerker (SCHRITTNAME.X), abgefragt.

Durch die interne Schrittkettenvariable SCHRITTNAME.T wird angegeben, wie lange sich die Kette schon im Schritt SCHRITTNAME befindet.

 

Anwenderdatentypen können einfach nur andere Namen für Standard-Datentypen sein, um dem Anwender durch den Namen des Datentyps direkt dessen Beschreibung zu liefern, wie beispielsweise der Typ HELLIGKEIT, der für den Datentyp USINT verwendet werden kann.
TYPE
 Helligkeit : USINT;
END_TYPE

Außerdem können Standard-Datentypen mit begrenztem Wertebereich, z.B. durch Aufzählung der Werte rot, grün, gelb, als Anwenderdatentyp deklariert werden.

TYPE
 Ampeldaten : (Rot,Gelb,Gruen);
END_TYPE

TYPE
 SubInt : INT (-4095..4095);
END_TYPE

Die wohl geläufigsten Anwender-Datentypen sind jedoch Strukturen. Strukturen wie der Datentyp MERKMAL ermöglichen es, Variablen mit unterschiedlichen Datentypen zusammenzustellen.
TYPE
 Merkmal : STRUCT
  X_POS : REAL;
  Y_POS : REAL;
  GROESSE : INT;
 END_STRUCT
END_TYPE

Speicherprogrammierbare Steuerungen in der Industrie 4.0

5. Auflage erschienen im Hanser Verlag 2021