2. Automatisierungsgeräte

Transcription

2. Automatisierungsgeräte
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
2.2.1 Aufbau und Arbeitsweise
• universelle Automatisierungssysteme mit modularem Aufbau
CPU mit Steuer- und Rechenwerk, Programmspeicher,
Merkern, Zeitgliedern, Zählern und Bussystem
2. Automatisierungsgeräte
2.1 Speicherprogrammierbare Steuerungen (SPS)
2. Automatisierungsgeräte
2.1 Speicherprogrammierbare Steuerungen (SPS)
• wichtigstes Kennzeichen: zyklische
Programmabarbeitung
2. Automatisierungsgeräte
2.1 Speicherprogrammierbare Steuerungen (SPS)
• Nachteil der zyklischen Arbeitsweise: Reaktionszeit auf Änderungen beträgt im ungünstigsten Fall zwei
Programmzyklen
2. Automatisierungsgeräte
2.1 Speicherprogrammierbare Steuerungen (SPS)
• unterschiedliche Ausführungsformen für verschiedene Anwendungsbereiche
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
2.2.2 Programmierung (IEC 61131)
Sämtliche Industriezweige, vor allem der Maschinenbau, stehen unter einem enormen Kostendruck und
müssen alle Rationalisierungspotentiale ausschöpfen. Bei den Steuerungsprogrammen heißt das, die
einzelnen Softwareteile bereits erstellter Programme und Funktionen wiederzuverwenden und in neuen
Applikationen zu nutzen.
Hauptforderungen an ein modernes SPS-Programmiersystem
Hohe
Funktionalität
7%
OnlineÄnderungen
13%
AufwärtsKompatibilität
13%
Leichte
Bedienung, hoher
Komfort
7%
Portabilität der
AWL-Programme
33%
Leichte
Änderbarkeit der
Applikation
27%
Abbildung entnommen aus: Brendel, W.: SPS-Programmierung nach IEC 1131-3 - das Pflichtenheft steht
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
Die Norm IEC 61131
wurde im Februar 1993 von der Internationalen Elektronischen Kommission (IEC) herausgegeben
definiert ein Grundgerüst von Sprachelementen für die Programmierung von Steuerungen
verbindet die klassische SPS-Programmierung mit den Vorteilen der Hochsprachen-Programmierung
Ziele und Vorteile
• einheitliche Planung und Programmierung verschiedener Systeme
• Einsatz normierter Komponenten führt zu erhöhter Anlagensicherheit
• Integration von Modulen verschiedener Hersteller
• Kostensenkung
• ein international gültiges Sprachsystem
• erhöhte Software-Qualität durch strukturierte Programmierung
• Entwicklungsmöglichkeit von komplexeren Programmen
• verkürzte Programmerstellung dank Standardfunktionen und Funktionsbausteinen
• Portabilität der Software (Austauschbarkeit und Wiederverwendbarkeit)
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
Konfiguration
Überblick (Software-Modell
nach IEC 61131-3)
Ressource
Ressource
Task
Task
Task
Task
Programm
Programm
Programm
Programm
Legende
Pfad der Ausführungssteuerung
Pfad des Variablenzugriffs
FB
FB
FB
FB
FB
Funktionsbaustein
Variable
Globale und direkt dargestellte Variable
Zugriffspfade
• Konfigurationen: Kombination und Gruppierung aller Ressourcen eines SPS-Systems (z.B.
Prozessoren, E/A-Einheiten, etc.)
• Ressourcen: vergleichbar mit einzelnen CPUs, Ausführung von einer oder mehreren Tasks
• Tasks: bestimmen den Zeitplan der ihnen zugewiesenen Programme oder Funktionsblöcke
• Laufzeitprogramme: Einheiten, die aus Programmen oder FBs bestehen
Im Teil 3 der IEC 61131 werden die Syntax und Semantik der vereinheitlichten Programmiersprachen
für Speicherprogrammierbare Steuerungen (SPS) festgelegt.
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
Programm-Organisationseinheiten
Die Sprachnorm unterstützt die Strukturierung der Programme innerhalb der Ressourcen nach sog.
Programm-Organisationseinheiten (POE). Eine POE besteht je nach Anwendung aus:
• Programm (Hauptprogramm, Schlüsselwort „PROGRAM“): Startpunkt einer Applikation.
• Funktionsbaustein (Schlüsselwort „FUNCTION_BLOCK“: werden vom Programm aus aufgerufen,
besitzen eigenen Datenspeicher, Realisierung komplexer Steuerfunktionen
• Funktion (Schlüsselwort „FUNCTION“): Baustein mit mehreren Eingängen, aber nur einem Ausgang (z.B.
Berechnung eines Wertes).
Einzelne Programm-Organisationseinheiten werden über mehrere Stufen hinweg aus den Rümpfen anderer
Programm-Organisationseinheiten heraus strukturiert aufgerufen.
Programm-Organisationseinheiten dürfen nicht rekursiv sein. D.h. der Aufruf einer ProgrammOrganisationseinheit darf nicht den Aufruf einer weiteren Programm-Organisationseinheit desselben Typs
verursachen.
Vorteil:
Strukturierung des Anwenderprogrammes sowie der verwendeten Daten entsprechend dem zugrunde
liegenden Prozeß. Globale Variablen und lokale Variablen sind ausschließlich eingebunden in einzelne
Bausteine und sind außerhalb des Bausteins weder lesbar noch beschreibbar.
Bausteine können ohne Änderung in verschiedenen Programmteilen wiederverwendet werden!
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
Datentypen
• Elementare Datentypen
Definition über Schlüsselwort und die Anzahl der Bits:
Datentyp
Bits
Schlüsselwort
BOOL boolesche
INT ganze Zahl (Integer)
1
16
REAL reelle Zahl
32
TIME Zeitdauer
implementierungsabhängig
DATE Datum
implementierungsabhängig
STRING variabel-lange
Zeichenfolge
implementierungsabhängig
BYTE Bitfolge der Länge 8
8
WORD Bit-Folge der Länge 16
16
• Abgeleitete Datentypen
in IEC 1131-3 auch abgeleitete Datentypen, wie sie aus höheren Programmiersprachen bekannt sind:
Beispiel: TYPE MESSWERTE : ARRAY [1..16] OF ANALOG_DATA END_TYPE
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
Variablen
Die Darstellung von Variablen erfolgt durch die Aneinanderreihung des „%“-Zeichens, eines
Präfix für den Speicherort sowie eines Präfix für die Größe.
Beispiele:
Bedeutung
Präfix
I
Speicherort Eingang
Q
Speicherort Ausgang
M
Speicherort Merker
X oder kein Präfix
(Einzel-)Bit-Größe
B
Byte-(8 bit) Größe
W
Wort-(16 bit) Größe
D
Doppelwort-(32 bit) Größe
L
Langwort-(64 bit) Größe
%QX75 und
%Q75
Ausgangsbit 75
%IW215
Eingangswort Speicherort 215
%QB7
Ausgangsbyte Speicherort 7
%MD48
Merkerdoppelwort Speicherort 48
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
SPS-Programmiersprachen
a) Ablaufsprache (AS)
PROJEKT
Der erste Schritt zur Lösung einer Aufgabenstellung beginnt
üblicherweise mit der Erstellung eines Flussdiagrammes. Die
Aufgabe lässt sich so in Teilstücke zerlegen und übersichtlich
strukturieren. Hierzu wird die Ablaufsprache (AS) verwendet, die
das gesamte Programm in einzelne Teilschritte zerlegt. Außerdem
sind Verzweigungen im Programmablauf definierbar.
Ein Prozess besteht aus einer Menge von Schritten (stabilen
Zuständen) und Transitionen, die durch gerichtete Verbindungen
miteinander verbunden sind. Jeder Transition wird eine boolesche
Bedingung zugeordnet. Die Aktionen in den Schritten werden in den
Sprachen ST, AWL, KOP oder FBS beschrieben.
S1
Ablaufsprache
(AS)
Programm
AWL
FBS
KOP
ST
Funktionsbausteine
Funktionen
Initialschritt
Transitionsbedingung in ST-Sprache
%IX2.1 OR %IX2.2
Elemente der Ablaufsprache:
• Schritte
• Transitionen
• Aktionen
S2
%IX2.4
%IX2.3
Transitionsbedingung in FBS-Sprache
&
Aktion in ST-Sprache
N
S3
ACTION_4
%QX17 := %IX1 & %MX3 & S8.X ;
FF28 (S1 := (C<D)) ;
%MX10 := FF28.Q;
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
SPS-Programmiersprachen
b) Kontaktplan (KOP)
Die KOP-Sprache (Kontaktplan) ist eine geläufige Methode, logische Gleichungen und einfache Aktionen
darzustellen. Die Symbole des KOP-Diagramms werden wie Elemente eines elektrischen Kontaktplans
behandelt. Hierzu werden Kontakte als Eingänge und Spulen als Ausgänge mittels Verbindungselementen
kombiniert. Links und rechts sind KOP-Diagramme von Versorgungsleisten (Stromschienen) begrenzt.
Kontakte:
Ein Kontakt übergibt einen Zustand an die horizontale Verbindung auf seiner rechten
Seite. Dieser Zustand ergibt sich aus der booleschen UND-Verknüpfung des Zustandes
der horizontalen Verbindung auf seiner linken Seite mit einer entsprechenden Funktion
einer zugehörigen booleschen Variablen (***) (Eingang, Ausgang oder Merker).
***
Öffner
***
Schließer
Spulen:
***
Eine Spule kopiert den Zustand der Verbindung auf ihrer linken Seite ohne Veränderung
auf die Verbindung auf ihrer rechten Seite und speichert eine entsprechende Funktion des
Zustandes oder des Übergangs der linken Verbindung in die boolesche Variable.
START
ENABLE
RUN
START
NOT_AUS
NOT_AUS
negative
Spule
&
ENABLE
Beispiel:
Spule
>=1
RUN
***
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
SPS-Programmiersprachen
c) Strukturierter Text (ST)
Zuweisung
Funktionsbaustein-Aufruf
Die ST-Sprache (Strukturierter
Text) ist eine strukturierte Sprache
hohen Niveaus, die in
Automatisierungsanwendungen
benutzt wird. Ihre Syntax ähnelt der
Pascal-Sprache. Sie dient vor allem
der Implementierung komplexer
Prozeduren, deren Beschreibung
mit grafischen Sprachen schwer
darzustellen ist.
Ausdrücke bestehen aus
• Operatoren (Addition,
Subtraktion, Vergleich, Boolesches
UND, ...) sowie
• Operanden (Variablen,
Funktionsaufrufe, weitere
Ausdrücke)
RETURN
IF
CASE
A := B; C:=SIN(X);
CMD_TMR(IN:=%IX5, PT:=T#300ms);
RETURN;
IF D>10.0 THEN ... ELSE_IF ... END_IF;
CASE TW OF
1 : DISPLAY:=TEMP;
2 : DISPLAY := LEVEL;
END_CASE;
FOR
WHILE
REPEAT
EXIT
FOR I:=1 TO 100 DO
...
END_FOR;
J:=1;
WHILE J<=100 DO
J:=J+1;
END_WHILE;
J:=0;
REPEAT
J:=J+1;
UNTIL J=100;
END_REPEAT;
EXIT;
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
SPS-Programmiersprachen
d) Anweisungsliste (AWL)
Die AWL-Sprache ist eine Textsprache niedrigen Niveaus. Die AWL eignet sich besonders für die
Programmierung kleinerer Anwendungen oder um kritische Teile einer Anwendung zu optimieren.
Eine AWL setzt sich aus einer Folge
von Anweisungen zusammen. Jede
Anweisung muss in einer neuen Zeile
beginnen und muss einen Operator und
einen oder mehrere Operanden
enthalten. Der Operator zeigt an,
welche Art von Operation zwischen
dem aktuellen Ergebnis und dem
Operand erfolgen soll. Der Anweisung
kann eine identifizierende Marke
vorangehen, der ein Doppelpunkt
folgt.
Marke
Beispiel:
START:
Operator
Bedeutung
LD
Setzt aktuelles Ergebnis dem Operanden gleich
ST
Speichert aktuelles Ergebnis auf die Operanden-Adresse
S
Setzt booleschen Operator auf 1
R
Setzt booleschen Operator auf 0
AND,&
OR
ADD
GT
JMP
Boolesches UND
Boolesches ODER
Addition
Vergleich >=
Sprung zur Marke
Operator
Operand
Kommentar
LD
%IX1
(*Drucktaster*)
ANDN
%MX5
(*Nicht gesperrt*)
ST
%QX2
(*Lüfter an*)
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
SPS-Programmiersprachen
e) Funktionsbausteinsprache (FBS)
Die FBS (Funktionsbaustein-Sprache) ist eine grafische Sprache. Ein FBS-Diagramm beschreibt eine
Funktion zwischen Eingangs- und Ausgangsvariablen. Diese Funktion wird wie ein Netzwerk aus
elementaren Funktionsbausteinen aufgebaut. Die Ein- und Ausgangsvariablen werden mit den
Funktionsbausteinen durch Verknüpfungslinien verbunden. Der Ausgang eines Funktionsbausteins kann an
den Eingang eines anderen Funktionsbausteins angeschlossen werden. Es können mehrere bezeichnete
Instancen („Fälle“) eines Funktionsbausteines erzeugt werden. Jeder Funktionsbaustein, der bereits deklariert
wurde, kann in der Deklaration eines weiteren Funktionsbausteines oder Programms benutzt werden.
Der Name des Funktionsbaustein-Typs
steht innerhalb des Blocks und der Name
der Instance oberhalb des Blocks. Die
Größe und Anordnung des Blocks darf in
Abhängigkeit der Eingänge, Ausgänge
und weiterer anzuzeigender
Informationen variieren. Die Namen der
formalen Ein- und Ausgangsparameter
müssen links- bzw. rechtsseitig innerhalb
des Blocks angezeigt werden.
Name der Instance
FF75
SR
%IX1
S1
%IX2
R
Q1
Name des Funktionsbaustein-Typs
formale Eingangs- bzw- Ausgangsparameter
%QX3
in FBS:
in ST:
VAR FF75 : SR; END_VAR
FF75(S1:=%IX1, R:=%IX2);
%QX3:=FF75.Q1;
(* Deklaration *)
(* Aufruf *)
(* Ausgangszuweisung *)
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
SPS-Programmiersprachen
f) Beispiel
Die Funktion WIEGEN (WEIGH) beinhaltet
• die Wandlung einer Eingabe von einer Waage, wobei das Bruttogewicht (gross
weight) von BCD in binär gewandelt wird,
Funktion WIEGEN: • die binäre ganzzahlige Subtraktion des Taragewichtes (tare weight), das vorher
gewandelt und im SPS-Speicher abgelegt wurde und
• die Wandlung des resultierenden Nettogewichtes (net weight) zurück in die BCDForm, z.B. für eine Ausgabe auf einer Anzeige.
Textuelle Deklaration der Funktion
FUNCTION WEIGH : WORD
VAR_INPUT
weight-command : BOOL;
gross_weight : WORD;
tare_weight : INT;
END_VAR
(* Funktionsrumpf *)
END_FUNCTION
Rumpf der Funktion in AWL
LD
weight_command
JMPC WEIGH_NOW
ST
ENO
RET
WEIGH_NOW: LD
gross_weight
BCD_TO_INT
SUB tare_weight
INT_TO_BCD
Rumpf der Funktion in ST
IF weight_command THEN
WEIGH := INT_TO_BCD (
BCD_TO_INT (gross_weight) tare_weight );
END_IF;
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
SPS-Programmiersprachen
f) Beispiel
Funktion WIEGEN:
Grafische Deklaration der
Funktion
Funktionsrumpf in FBS
WEIGH
BOOL
BOOL
WORD
INT
weigh_command
EN
ENO
weigh_command net_weight
gross_weight
tare_weight
BCD_
TO_INT
EN ENO
SUB
EN ENO
gross_weight
tare_weight
gross_weight
tare_weight
BCD_
TO_INT
EN ENO
SUB
EN ENO
ENO
net_weight
Funktionsrumpf in KOP
weigh_command
INT_
TO_BCD
EN ENO
INT_
TO_BCD
EN ENO
ENO
net_weight
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
Verfügbare Tools (Anbieter)
Programmiersystem
Anbieter
Bemerkungen
ACCON-ProSys 1131
DELTALOGIC
„das einzige Programmiersystem
für SIMATIC-SPS, das sich
streng nach der Norm IEC 1131-3
richtet“
CoDeSys
Smart Software Solutions GmbH
OEM-Software
ConCept
AEG
Offline-Simulation am PC in
allen fünf Sprachen möglich
ISaGRAF
CJ INTERNATIONAL
OEM-Software
logiCAD
kirchner SOFT GmbH
MULTIPROG wt
Klöpper und Wiege Software
GmbH
NAISControl 1131
Matsushita Automations Controls
Open DK
infoteam Software GmbH
Selecontrol CAP 1131
Selectron
SoftControl
Softing GmbH
SUCOsoft S40
Klöckner-Moeller
OEM-Software
Import bereits bestehender SPSProgramme (von KlöcknerMoeller) ist möglich
2. Automatisierungsgeräte
2.2 Speicherprogrammierbare Steuerungen (SPS)
Verfügbare Tools (Leistungsumfang)
Projektierung
• Projektverwaltung, um Programme zu ordnen und zu strukturieren
• „Verkabeln“ von Ein- und Ausgängen über Variablendeklaration im Hauptprogramm
Programmierung
• Grafische Editoren (Windows-Oberfläche) für alle oder ausgewählte IEC-Fachsprachen
- Einfügen, Verschieben, Kopieren ganzer Netzwerke
- Umschalten zwischen verschiedenen Ansichten
- Syntax- und Plausibilitäts-Prüfung bei der Eingabe
• Variablen-Editor zur Festlegung der lokalen und globalen Variablen
• Task-Editor für die Unterstützung einer Multitasking-Umgebung
Inbetriebnahme
• Übersetzer zur Code-Erzeugung für eine SPS
• Test-, Simulations- und Inbetriebnahme-Funktionen (Offline-Simulation (auch im Schrittbetrieb),
Online-Betrieb zum Verfolgen des Programmablaufes, Anzeige ausgewählter Variablen, …)
• Dokumentations-Werkzeuge (Dokumentation des Anwenderprogrammes, der Querverweise, der
Programmorganisation, der Datentypen, der Tasks sowie der SPS-Konfiguration)
Features
• Herstellerspezifische Zusatzbausteine für komplexe Regelungstechnik, für Fuzzy-Logik, …
• Import „alter“, nicht IEC-konformer Programme