CoDeSys - Fakultät Elektrotechnik und Informationstechnik ...
CoDeSys - Fakultät Elektrotechnik und Informationstechnik ...
CoDeSys - Fakultät Elektrotechnik und Informationstechnik ...
Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.
YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
SPS <strong>und</strong> Kompaktregler<br />
WS 2009/2010<br />
Technische Universität Dresden<br />
Professur für Prozessleittechnik
Ziele<br />
• Erarbeiten von Automatisierungslösungen auf Basis<br />
einer speicherprogrammierbaren Steuerung<br />
• Auswahl einer für die jeweilige Aufgabenstellung<br />
geeigneten, kosteneffizienten SPS<br />
• Konzeption von Logik- <strong>und</strong> Ablaufsteuerungen unter<br />
Rückgriff auf bewährte Lösungsmuster<br />
• Aufbau, Auswahl, Anschaltung <strong>und</strong> Parametrierung<br />
eines Regelungsalgorithmus auf einer leistungsfähigen<br />
Steuerung oder einem Kompaktregler<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 2
Übersicht<br />
• Speicherprogrammierbare Steuerung (SPS)<br />
– Aufgaben von Steuerungen<br />
– Funktionsweise <strong>und</strong> Aufbau<br />
– Konfiguration <strong>und</strong> Programmierung<br />
– Aktuelle Trends<br />
• Kompaktregler<br />
TU Dresden, 13.10.2009<br />
– Aufgaben von Kompaktreglern<br />
– Funktionsweise <strong>und</strong> Aufbau<br />
– Konfiguration <strong>und</strong> Programmierung<br />
• Introduction to Fuzzy Modelling & Control (Englisch)<br />
– Gastvorlesung Engin Yeşil<br />
SPS&KR (c) Urbas 2008-2009 Folie 3
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Teil 1 : SPS
Beispiel 1: Turboverdichter<br />
(aus Stohrmann 2004)<br />
• Abschaltung<br />
– Enddruck hoch (PZ+ 1)<br />
– Saugdruck tief (PZ- 1)<br />
– Öldruck tiefst (PS-Z-- 3)<br />
– Füllstand tief (LZ+ 1)<br />
TU Dresden, 13.10.2009<br />
– Durchfluss tief (FZ- 1)<br />
• Einschalten Hilfsölpumpe<br />
– Öldruck tief (PS-Z-- 3)<br />
• Einschalten verriegeln<br />
– TV zu heiß (TA+Z++ 1)<br />
– Öl zu kalt (TZ- 2)<br />
– Umgang zu (GZ- 1)<br />
SPS&KR (c) Urbas 2008-2009 Folie 5
Beispiel 3: Industrieofen<br />
• Betriebstemperatur unter 650°C<br />
– Keine sichere Zündung nach kurzzeitigem Ausfall vor der<br />
Bildung eines explosiven Gemisches<br />
• Gas- <strong>und</strong> Luftmangelsicherung<br />
TU Dresden, 13.10.2009<br />
– PZ- 1<br />
– PZ- 2<br />
• Flammenwächter<br />
– XZ- 1; 2 von 2<br />
• Rückzündungsvermeidung<br />
– QZ+ 1; 1 von 2<br />
SPS&KR (c) Urbas 2008-2009 Folie 6
Elemente von Sicherungseinrichtungen<br />
Aufnehmer, Messsignalkanal, Messumformer<br />
Grenzsignalgeber, Signalverarbeitung<br />
Meldekanal mit Meldern, Auslösekanal mit Auslösern<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 7
Verbindungsprogrammierte Steuerung<br />
• Verdrahtung von<br />
– Relais<br />
– Schütz<br />
• Vorteil<br />
– Parallele Verarbeitung<br />
aller Signale<br />
• Nachteil:<br />
K1<br />
– Verdrahtung = Programm<br />
– Änderung der Logik:<br />
Änderung der Verdrahtung notwendig!<br />
TU Dresden, 13.10.2009<br />
S1<br />
S2<br />
S3<br />
K1 K1<br />
SPS&KR (c) Urbas 2008-2009 Folie 8<br />
S4<br />
H1
Speicherprogrammierbare Steuerung (SPS)<br />
• Rechner mit Ein/Ausgängen<br />
• Rechentechnische<br />
Verknüpfung der Signale<br />
• Nachteile:<br />
– Nur quasiparallele<br />
Abarbeitung möglich<br />
(CPU=SISD)<br />
• Vorteile<br />
– Änderung der Logik: Lediglich Neu-programmieren des<br />
Steuerprogramms notwendig<br />
TU Dresden, 13.10.2009<br />
S1<br />
Automatisierungseinheit<br />
SPS&KR (c) Urbas 2008-2009 Folie 9<br />
S4<br />
H1<br />
S2<br />
S3
Programmbeispiel: Verknüpfung von<br />
Binärsignalen<br />
WENN beide Eingänge E 5.2 <strong>und</strong> E 4.7 auf 1<br />
DANN setze Ausgang A 8.5 auf 1<br />
SONST setze Ausgang A 8.5 auf 0<br />
Umsetzung in AWL Programmiersprache (IEC 61131)<br />
LD %IX5.2 ; Lade Bitwert von Eingang 5.2<br />
AND %IX4.7 ; UND-Verkn. mit Eingang 4.7<br />
ST %QX8.5 ; Ergebnis nach Ausgang 8.5<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 10
Definition SPS DIN EN 61131 Teil 1<br />
„[…] Ein digital arbeitendes elektronisches System für<br />
den Einsatz in industriellen Umgebungen mit einem<br />
programmierbaren Speicher zur internen Speicherung<br />
der anwenderorientierten Steuerungsanweisungen zur<br />
Implementierung spezifischer Funktionen wie z.B.<br />
Verknüpfungssteuerung, Ablaufsteuerung, Zeit-, Zähl-<br />
<strong>und</strong> arithmetische Funktionen, um durch digitale oder<br />
analoge Eingangs- <strong>und</strong> Ausgangssignale verschiedene<br />
Arten von Maschinen <strong>und</strong> Prozessen zu steuern. […]“<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 11
I&KT r<strong>und</strong> um die SPS<br />
Prozeßrechner<br />
SPS<br />
TU Dresden, 13.10.2009<br />
Feldbusse<br />
SPS<br />
Aktoren Sensoren<br />
Visualisierung<br />
Aktoren Sensoren<br />
SPS&KR (c) Urbas 2008-2009 Folie 12
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Speicherprogrammierbare<br />
Steuerungen<br />
• Befehlssatzarchitektur<br />
• Funktionsweise<br />
• Zykluszeiten
Ein Blick in das Steuergerät<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 14
Zyklische Funktionsweise<br />
TU Dresden, 13.10.2009<br />
Initialisierung<br />
Einlesen der Eingänge<br />
Abarbeiten von Operationen der<br />
Programmbausteine<br />
Schreiben der Ausgänge<br />
Prozessabbild<br />
Ausgänge<br />
Prozessabbild<br />
Eingänge<br />
Typische Bearbeitungszeiten :<br />
1µs Bitoperationen<br />
2µs Wortoperationen<br />
12µs Zeit /Zähloperationen<br />
3µs Festpunktaddition<br />
50µs Gleitpunktaddition<br />
Prozessabbild<br />
Ausgänge<br />
SPS&KR (c) Urbas 2008-2009 Folie 15
Prozessabbild<br />
• Speicherbereich zur Aufnahme der Signalwerte der<br />
Ein- <strong>und</strong> Ausgänge<br />
– Eingabewerte werden zu Beginn eingelesen,<br />
zwischenzeitliche Änderungen während Programmzyklus<br />
ignoriert!<br />
– Ausgabewerte werden zwischengespeichert, d.h.<br />
Änderungen während der Programmabarbeitung sind nach<br />
außen nicht sichtbar!<br />
• Manche SPSen erlauben direkten Zugriff auf die<br />
Prozesssignale<br />
– Üblicherweise langsamer als direkter Zugriff auf PA<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 16
Minimale Impulszeit, maximale Reaktionszeit<br />
Eingänge<br />
lesen<br />
%IX0.1<br />
%QX0.1<br />
LD %IX0.1<br />
ST %QX0.1<br />
TU Dresden, 13.10.2009<br />
Impuls<br />
zu kurz<br />
Ausgänge<br />
schreiben<br />
Zykluszeit<br />
... ...<br />
Worst Case Reaktionszeit<br />
= 2 x Zykluszeit<br />
SPS&KR (c) Urbas 2008-2009 Folie 17
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Komponenten einer<br />
modularen SPS<br />
• Übersicht<br />
• Baugruppen<br />
• Zykluszeiten
Modularer Aufbau einer SPS<br />
TU Dresden, 13.10.2009<br />
Stromversorgung<br />
CPU-Baugruppe<br />
Eingangsbaugruppen<br />
Ausgangsbaugruppen<br />
Kommunikationsbaugruppen<br />
Funktionsbaugruppen<br />
Programmiergerät<br />
Bedieneinheit<br />
optional<br />
SPS&KR (c) Urbas 2008-2009 Folie 19
Stromversorgung<br />
• Bereitstellung der<br />
Betriebsspannung<br />
– 5 / 10 / 24V<br />
• Ggf. zusätzliche Wandler<br />
für Leistungsbaugruppen<br />
• Batterie zur Speicherpufferung<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 20
CPU-Baugruppe<br />
Prozessor<br />
Speicher<br />
Schlüsselschalter<br />
EPROM mit Programm<br />
(optional)<br />
Speicherkarte<br />
Programmierschnittstelle<br />
(optional)<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 21
Eingabebaugruppen<br />
• Digitaleingabebaugruppen<br />
– DC 24 V, AC 120/230 V, f < 50 Hz<br />
– Potentialtrennung mit Optokopplern<br />
– Entstörmaßnahmen<br />
– Lokale Anzeige mit Leuchtdioden<br />
• Analogeingabebaugruppen<br />
TU Dresden, 13.10.2009<br />
– Spannung (+- 10V)<br />
– Strom (4 bis 20 mA)<br />
– Widerstand (0…300 Ohm)<br />
– Thermoelement (E, N, K)<br />
– Widerstandsthermometer ( Pt 100, …)<br />
– Üblicherweise Auflösung 9-15 Bit + Vorzeichen,<br />
Messbereich, Grenzwerte parametrierbar<br />
SPS&KR (c) Urbas 2008-2009 Folie 22
Ausgabebaugruppen<br />
• Digitalausgabebaugruppe<br />
– Lastspannung DC24V, AC120/230V<br />
– Spezifizierte Strombelastbarkeit<br />
– Potenzialtrennung<br />
– Lokale Anzeigen<br />
TU Dresden, 13.10.2009<br />
– f < 100 Hz<br />
• Analogausgabebaugruppen<br />
– Spannung (+- 10 V)<br />
– Strom (0 bis 20 mA)<br />
– Auflösung 12-15 bit<br />
– Alarmierung bei Fehlern<br />
SPS&KR (c) Urbas 2008-2009 Folie 23
Kommunikationsbaugruppen<br />
• Feldbusse (ASI, Profibus ...)<br />
• Industrial Ethernet<br />
• Programmierschnittstellen<br />
• Serielle Schnittstellen<br />
– RS232, RS422, RS485<br />
– z.B. für Waagen<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 24
Funktionsbaugruppen<br />
• Positionierbaugruppen<br />
• Reglerbaugruppen<br />
• Nockensteuerwerke<br />
• Zählerbaugruppen<br />
• Uhrenbaugruppen<br />
• Bildauswertungsmodul<br />
• usw.<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 25
Bedieneinheiten<br />
• Operator Panels<br />
• Touch Screens<br />
• Text Displays<br />
• Tastaturen<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 26
Programmiergeräte<br />
• Handprogrammiergeräte:<br />
– kleinere Projekte, z.B.<br />
Fehlersuche, Kontrolle <strong>und</strong><br />
Anpassung vor Ort<br />
– überwiegend textbasierte<br />
Programmierung<br />
• Bildschirmprogrammiergeräte<br />
– große Funktionalität<br />
TU Dresden, 13.10.2009<br />
– gute Debugging-Möglichkeiten<br />
– übersichtliche Darstellung<br />
– grafische Programmierung<br />
– Simulation<br />
SPS&KR (c) Urbas 2008-2009 Folie 27
Gibt es die SPS?<br />
• Mehr als 100 verschiedene Hersteller<br />
• Verschiedene Gr<strong>und</strong>typen<br />
– Modulare SPS: Wie vorgestellt, Bausteinkonzept<br />
– Kompakt SPS: alle Funktionen in einem Block<br />
– Slot SPS: SPS als Steckkarte eines Industrie PCs<br />
TU Dresden, 13.10.2009<br />
– Soft SPS: SPS als Software auf einem Industrie PC,<br />
Ankopplung an Prozess über IO-Karten<br />
• Auswahlkriterien<br />
– Preis (Anschaffung, Projektierung, Wartung, Ersatz)<br />
– Funktionalität (Leistung µP, Baugruppen, Erweiterbarkeit,<br />
Ausfallsicherheit, Zertifizierbar)<br />
– Integration (CAE, Programmiersystem, Kommunikation)<br />
SPS&KR (c) Urbas 2008-2009 Folie 28
Herstellerübersicht: Industrie PC als SPS<br />
TU Dresden, 13.10.2009<br />
www.beck-ipc.com<br />
www.festo.de<br />
www.ferrocontrol.de<br />
SPS&KR (c) Urbas 2008-2009 Folie 29
Herstellerübersicht 2<br />
www.keyence.com<br />
TU Dresden, 13.10.2009<br />
www.kuhnke.de<br />
SPS&KR (c) Urbas 2008-2009 Folie 30
Herstellerübersicht 3<br />
www.schneiderelectric.com<br />
TU Dresden, 13.10.2009<br />
www.phoenix-contact.de<br />
SPS&KR (c) Urbas 2008-2009 Folie 31
Herstellerübersicht 4<br />
www.moeller.net<br />
TU Dresden, 13.10.2009<br />
www.siemens.de<br />
SPS&KR (c) Urbas 2008-2009 Folie 32
Kompatibilitätsprobleme<br />
Viele (>100) Hersteller von SPS, mit proprietären<br />
Standards, die Vor- <strong>und</strong> Nachteile bieten.<br />
Nachteil: Anwender müssen häufig mit SPS-Systemen<br />
verschiedener Hersteller gleichzeitig arbeiten können<br />
Schulung, Fehler, …<br />
Kommunikation verschiedener SPS-Systeme<br />
untereinander nur bedingt möglich<br />
Kompatibilität zwischen alten <strong>und</strong> neuen Systemen?<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 33
Lösungsansatz IEC 61131<br />
IEC 61131 (DIN EN 61131) legt in 5 Blättern eine<br />
weltweite einheitliche Basis der SPS-Technik fest.<br />
– Begriffsbestimmungen <strong>und</strong> Funktionsmerkmale<br />
– Elektrische, mechanische <strong>und</strong> funktionelle Anforderungen<br />
TU Dresden, 13.10.2009<br />
– Fünf Programmiersprachen<br />
– Anwenderrichtlinien für alle Projektphasen<br />
– Kommunikation von SPSen unterschiedlicher Hersteller<br />
Die Implementierung der Norm ist bei den Herstellern<br />
noch nicht abgeschlossen !<br />
PLCOpen – Gesellschaft zur Förderung<br />
herstellübergreifender PLC-Programmierung<br />
SPS&KR (c) Urbas 2008-2009 Folie 34
Ein wenig Geschichte…<br />
TU Dresden, 13.10.2009<br />
(aus John & Tiegelkamp, 2001)<br />
SPS&KR (c) Urbas 2008-2009 Folie 35
61131-3 SPS-Softwaremodell<br />
Ressource<br />
Task Task<br />
Programm Programm<br />
FB FB<br />
TU Dresden, 13.10.2009<br />
Konfiguration<br />
Ressource<br />
Task Task<br />
Programm Programm<br />
Global <strong>und</strong> direkt dargestellte Variablen <strong>und</strong> Instanz -spezifische<br />
Initialisierungen<br />
Zugriffspfad<br />
FB FB<br />
Pfad des<br />
Variablenzugriffs<br />
Variable<br />
Pfad der<br />
Ausführungs-<br />
Steuerung<br />
Funktionsbaustein<br />
SPS&KR (c) Urbas 2008-2009 Folie 36<br />
FB
61131-3 Softwaremodell<br />
TU Dresden, 13.10.2009<br />
Ressource<br />
Task Task<br />
Programm Programm<br />
FB FB<br />
Konfiguration<br />
Ressource<br />
Task Task<br />
Programm Programm<br />
Global <strong>und</strong> direkt dargestellte Variablen <strong>und</strong> Instanz -spezifische<br />
Initialisierungen<br />
• Konfiguration:<br />
– SPS-System, enthält ggf. mehrere Ressourcen (~SPS)<br />
• Ressource:<br />
– Signalverarbeitungsfkt incl. Sensor/Aktorschnittstellen<br />
(~CPU+IO-Bus)<br />
– Enthält ggf. mehrere Programme<br />
• Programm<br />
– wird unter Steuerung von Tasks ausgeführt<br />
– Kann mehrere Funktionsbausteine oder andere<br />
Sprachelemente enthalten<br />
Zugriffspfad<br />
SPS&KR (c) Urbas 2008-2009 Folie 37<br />
FB FB<br />
FB<br />
Pfad des<br />
Variablenzugriffs<br />
Variable<br />
Pfad der<br />
Ausführungs -<br />
Steuerung<br />
Funktionsbaustein
61131-3 Softwaremodell: Starten/Stoppen von<br />
Konfiguration <strong>und</strong>/oder Ressourcen<br />
• Starten einer Konfiguration<br />
– Schritt 1: Initialisierung der globalen Variablen<br />
– Schritt 2: Starten aller Ressourcen<br />
• Starten einer Ressource<br />
– Schritt 1: Initialisierung aller Variablen der Res.<br />
TU Dresden, 13.10.2009<br />
– Schritt 2: Freigabe aller Tasks der Res.<br />
• Stoppen einer Ressource<br />
– Sperren aller Tasks<br />
• Stoppen einer Konfiguration<br />
– Stoppen aller Ressourcen<br />
SPS&KR (c) Urbas 2008-2009 Folie 38
Anfangswerte der Variablen beim Starten eines<br />
Konfigurationselements<br />
• Verschiedene Anfangswerte möglich:<br />
– gepufferter Wert (als das KE gestoppt wurde - RETAIN),<br />
– anwender-spezifizierten Anfangswert,<br />
– voreingestellter typ-spezifischer Anfangswert<br />
• Regeln zur Ermittlung des Anfangswertes<br />
– Warmstart: gepufferte V nehmen gepufferte Werte an<br />
– Kaltstart: gepufferte V nehmen anw-spez Wert ein, wenn<br />
nicht definiert typ-spez Wert<br />
– Nichtgepufferte V nehmen anw-spez Wert ein, wenn nicht<br />
definiert typ-spez Wert<br />
– Eingangsvariblen werden implementierungsabhängig<br />
initialisiert<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 39
Wiederanlauf nach Spannungsausfall oder<br />
Störung<br />
• Kaltstart: Alle dynamischen Daten (Variablen, Register, Zähler,<br />
Zeitglieder, Prozessabbid) werden auf definierten Zustand<br />
zurückgesetzt<br />
– Automatisch oder manuell<br />
• Warmstart: Wiederanlauf von einem vorbestimmten Zustand<br />
des Anwendungsprogramms <strong>und</strong> vorbestimmer Menge an Rest-<br />
Daten<br />
– Status-Merker zur programmtechnischen<br />
Berücksichtigung<br />
• Heißstart: Alle dynamischen Daten sind unverändert<br />
– Netzunabhängige Echtzeituhr, um Zeit seit Stromausfall<br />
bestimmen zu können<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 40
Programm-organisationseinheiten<br />
Programm (PRG): Hauptprogramm, Zuordnung der<br />
Peripherie <strong>und</strong> der globalen Variablen<br />
– Kann FB <strong>und</strong> FC aufrufen<br />
Funktionsbaustein (FB): Baustein mit Eingangs-,<br />
Ausgangs- <strong>und</strong> statischen Variablen (= Gedächtnis)<br />
– Kann FB <strong>und</strong> FC aufrufen<br />
Funktion (FC): Unterprogramm mit Eingangs-<br />
<strong>und</strong> Ausgangsvariablen<br />
– Darf keine internen Zustandgrößen besitzen<br />
– Kann weitere FC aufrufen<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 41
IEC 61131-3 definiert 5 Programmiersprachen:<br />
Textbasiert Grafisch<br />
Anweisungsliste (AWL)<br />
Strukturierter Text (ST)<br />
TU Dresden, 13.10.2009<br />
Ablaufsprache (AS)<br />
Kontaktplan (KOP)<br />
Funktionsbausteinsprache (FBS)<br />
SPS&KR (c) Urbas 2008-2009 Folie 42
Gemeinsame Elemente der<br />
Programmiersprachen<br />
• Zeichensatz<br />
– Textelemente Saplten 002-007 der ISO/IEC-646 IRV<br />
– Zusätzlich Kleinbuchstaben (aber nicht case sensitiv), #<br />
oder £, $ oder ¤, | oder !<br />
• Bezeichner:<br />
– Folge von Buchstaben, Ziffern <strong>und</strong> Unterstrich<br />
– Muss mit Buchstaben oder Unterstrich beginnnen<br />
– Mehrere oder angehängte Unterstriche sind nicht zulässig<br />
– Mindestens sechs Zeichen werden zur eindeutigen<br />
Unterscheidung genutzt, Maximum impl.-abh.<br />
• Leerzeichen, Kommentare (* *), Numerische<br />
Literale, Zeichenfolgeliteral, Zeitdauer<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 43
Zahlen <strong>und</strong> Zeitdauerliterale<br />
• Zahlen<br />
– Unterstriche zur Strukturierung erlaubt<br />
• 100_000_000 3.14159_26<br />
– Basis 2/8/16 Literale möglich<br />
• 2#1111_1111 8#377 16#ff<br />
– Literale mit Typangaben<br />
• BOOL#0 UINT#16#FF<br />
• Zeitdauern<br />
– kurzes/langes Präfix<br />
• TIME#14ms T#14.7s<br />
– mit/ohne Unterstrichen<br />
• t#5d14h12m18s3.5ms t#5d_14h_12m_18s_3.5ms<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 44
Elementare Datentypen<br />
• Wahrheitswert: BOOL 1<br />
• Ganzzahl mit/ohne Vorzeichen: SINT 8 , INT 16 ,<br />
DINT 32 , LINT 64 / USINT 8 , UINT 16 , UDINT 32 , ULINT 64<br />
• Reele Zahl: REAL 32 , LREAL 64<br />
• Zeiten: TIME, DATE, TIME_OF_DAY/TOD,<br />
DATE_AND_TIME/DT<br />
• Variabel lange Zeichenkette: STRING 8 , WSTRING 16<br />
• Bit-Folgen: BYTE 8 , WORD 16 , DWORD 32 , LWORD 64<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 45
Hierarchie der allgemeinen Datentypen<br />
(zur Festlegung von Ein/Ausgängen von POE)<br />
ANY<br />
+---- ANY_DERIVED<br />
+---- ANY_ELEMENTARY<br />
+---- ANY_MAGNITUDE<br />
| +---- ANY_NUM<br />
| | +---- ANY_REAL<br />
| | | +---- LREAL, REAL<br />
| | |<br />
| | +---- ANY_INT<br />
| | +---- LINT, DINT, INT, ULINT, SINT,<br />
| | ULDINT, UDINT, UINT, USINT<br />
| +---- TIME<br />
|<br />
+---- ANY_BIT<br />
| +---- LWORD, DWORD, WORD, BYTE, BOOL<br />
|<br />
+---- ANY_STRING<br />
| +---- STRING, WSTRING<br />
|<br />
+---- ANY_DATE<br />
+---- DATE_AND_TIME, DATE, TIME_OF_DAY<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 46
Abgeleitete Datentypen<br />
Anwender- oder herstellerdefinierte Datentypen<br />
• TYPE Bezeichner : ... END_TYPE<br />
• Aufzählung<br />
– TYPE A_SIG : (SINGLE, DIFF) ; END_TYPE<br />
• Bereich<br />
– TYPE A_DATA : INT (-32000..32512) ; END_TYPE<br />
• Feld<br />
– TYPE A_8IN : ARARY [1..16] OF A_DATA; END_TYPE<br />
• Struktur<br />
– TYPE Bezeichner : STRUCT ... END_STRUCT; END_TYPE<br />
– Kann geschachtelt werden<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 47
Einzelelementvariablen<br />
(Verwendung nur in PRG,FB zulässig!)<br />
% Q X 7.3 Adresse der Variablen<br />
I0.1<br />
I0.0<br />
Speicherort<br />
I Eingang<br />
Q Ausgang<br />
M Merker<br />
Kennung einer direkten Variablen (Optional)<br />
&<br />
TU Dresden, 13.10.2009<br />
Q1.1<br />
X (Einzel-)Bit-Größe<br />
kein (Einzel-)Bit-Größe<br />
B Byte(8 Bit)-Größe<br />
W Word(16 Bit)-Größe<br />
D Doppelwort(32 Bit)-Größe<br />
L Langwort(64 Bit)-Größe<br />
Schalter 1<br />
Schalter 2<br />
SPS&KR (c) Urbas 2008-2009 Folie 48<br />
&<br />
Lampe
Weitere Details → DIN EN 61131<br />
• Speicherprogrammierbare Steuerungen. Teil 3:<br />
Programmiersprachen (225 S.)<br />
– viele weitere Details, Regeln <strong>und</strong> Beispiele<br />
• Speicherprogrammierbare Steuerungen. Teil 3:<br />
Beiblatt 1. Leitlinien für die Anwendung <strong>und</strong><br />
Implementierung von Programmiersprachen (100)<br />
• Speicherprogrammierbare Steuerungen. Teil 1:<br />
Allgemeine Informationen<br />
– Eigenschaften, Programmieren, Anlauf, Dokumentation,<br />
Archivierung, Stromversorgung, Verfügbarkeit &<br />
Zuverlässigkeit.<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 49
Siemens STEP7 vs. IEC 61131-3<br />
Aus TIA, Anhang II, IEC 61131:<br />
Die Programmiersprachen KOP <strong>und</strong> FUP entsprechen den in der Norm<br />
DIN EN 61131-3 (int. IEC 61131-3) festgelegten Sprachen<br />
„Kontaktplan“ <strong>und</strong> „Funktionsbaustein-Sprache“. […]<br />
AWL entspricht der in der Norm DIN EN 61131-3 (int. IEC 61131-3)<br />
festgelegten Sprache „Anweisungsliste“, wobei hinsichtlich der<br />
Operationen wesentliche Unterschiede bestehen. […]<br />
Die Ablaufsprache S7-GRAPH entspricht der in der Norm DIN EN<br />
61131-3 (int. IEC 61131-3) festgelegten Sprache „Sequential<br />
Function Chart“.<br />
Zusätzlich S7-HiGraph (Zustandsgraphen)<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 50
IEC 61131-3 definiert 5 Programmiersprachen:<br />
Textbasiert Grafisch<br />
Anweisungsliste (AWL)<br />
Strukturierter Text (ST)<br />
TU Dresden, 13.10.2009<br />
Ablaufsprache (AS)<br />
Kontaktplan (KOP)<br />
Funktionsbausteinsprache (FBS)<br />
SPS&KR (c) Urbas 2008-2009 Folie 51
Beispiel für alle Programmiersprachenbeispiele<br />
• Q1.1 = ( I0.1 v I0.2 v Q1.1) I0.3 I0.4<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 52
KOP (engl. Ladder Diagramm, LD, STEP7: KOP)<br />
• Funktionen werden durch Schaltsymbole aus der<br />
<strong>Elektrotechnik</strong> dargestellt:<br />
– Schließer, Öffner usw., die schaltbildähnlich zu<br />
Netzwerken zusammengefügt werden.<br />
– An den Seiten befinden sich zwei Stromschienen,<br />
zwischen denen die Relaislogik liegt (90° Drehung zur<br />
Anpassung an Computer/Textschreiben)<br />
• Programmiersprache beschränkt sich im<br />
Wesentlichen auf boolsche Signale<br />
– Reihenschaltung: UND<br />
– Parallelschaltung: ODER<br />
– Negation: Arbeitskontakt / Ruhekontakt<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 53
KOP Beispiel<br />
I0.1<br />
I0.2<br />
Q1.1<br />
TU Dresden, 13.10.2009<br />
I0.3 I0.4 Q1.1<br />
( )<br />
Eingang: Schaltkontakt --| |--<br />
Ausgang: Relaisspule --( )--<br />
Negation: --|/|--<br />
--(/)--<br />
SPS&KR (c) Urbas 2008-2009 Folie 54
FBS (engl. Function Block Language, FB,<br />
STEP7: FUP)<br />
Symbolik der Digitalen-Schaltungen<br />
• UND- , ODER-Gatter,<br />
• INVERTIERTER Eingang, usw.<br />
gut strukturierte <strong>und</strong> übersichtliche Programmierung<br />
bool´scher Verknüpfungen.<br />
Grafisch anschauliche Programmierung des<br />
Informationsfluss von ganzzahligen <strong>und</strong> Gleitkomma-<br />
Operationen.<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 55
FBS Beispiel<br />
I0.1<br />
I0.2<br />
Q1.1<br />
TU Dresden, 13.10.2009<br />
>1<br />
I0.3<br />
I0.4<br />
&<br />
Q1.1<br />
SPS&KR (c) Urbas 2008-2009 Folie 56<br />
=
AWL (engl. Instruction List, IL, STEP7: AWL)<br />
AWL: universell einsetzbare Maschinensprache,<br />
vergleichbar mit einem Assembler.<br />
– Nach wie vor am weitesten verbreitet.<br />
– wenig Möglichkeiten zur strukturierten Programmierung.<br />
Syntax:<br />
TU Dresden, 13.10.2009<br />
– Zum Teil unterschiedliche Operatoren <strong>und</strong> Sprachumfänge<br />
[Sprungmarke:] Operator Operand [(* Text *)]<br />
SPS&KR (c) Urbas 2008-2009 Folie 57
AWL Beispiel<br />
LD %IX0.1 (* Lade Eingang 0.1 in Akku *)<br />
OR %IX0.2 (* Akku=Akku oder Eingang 0.2 *)<br />
OR %QX1.1 (* Akku=Akku oder Ausgang 1.1 *)<br />
AND %IX0.3 (* Akku=Akku <strong>und</strong> Eingang 0.3 *)<br />
AND %IX0.4 (* Akku=Akku <strong>und</strong> Eingang 0.4 *)<br />
ST %QX1.1 (* Ausgang 1.1=Akku *)<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 58
ST, engl. Structured Text (ST), STEP7 SCL<br />
Pascal-ähnliche, höhere Programmiersprache<br />
Vorteile:<br />
– sehr kompakte Formulierung<br />
– abstrakte maschinenferne Befehle<br />
– übersichtlicher Aufbau durch Anweisungsblöcke<br />
Nachteile:<br />
TU Dresden, 13.10.2009<br />
– umfangreiche, komplexe Aufgaben realisierbar<br />
– Qualität des Maschinencode ist abhängig von Compiler<br />
(Übersetzer).<br />
– Bei einigen Compilern Effizienzverlust zur Laufzeit durch<br />
höhere Abstraktion (ST-Code i.d.R. langsamer als AWL-<br />
Code)<br />
SPS&KR (c) Urbas 2008-2009 Folie 59
ST Beispiele (Viele Wege führen nach Rom)<br />
Beispiel 1:<br />
TU Dresden, 13.10.2009<br />
Q1.1:=(I0.1 OR I0.2 OR Q1.1) AND I0.3 AND I0.4;<br />
Beispiel 2:<br />
Q1.1:=0;<br />
IF (I0.1 OR I0.2 OR Q1.1) THEN<br />
IF (I0.3 AND I0.4) THEN<br />
Q1.1:=1;<br />
END_IF;<br />
END_IF;<br />
Beispiel 3:<br />
Q1.1:=((I0.1+I0.2+Q1.1)>0)*I0.3*I0.4<br />
SPS&KR (c) Urbas 2008-2009 Folie 60
AS (engl. Sequential Function Chart Language<br />
(SFC))<br />
Industrielle Automatisierungsaufgaben lassen sich<br />
häufig als Sequenz einzelner Schritte darstellen.<br />
– Die Ausführung der Schritte hängt vom Erreichen einer<br />
Bedingung ab<br />
– Verschiedene Schritte können/müssen auch parallel<br />
ausgeführt werden<br />
Vereinfachte Petrinetze:<br />
– Übergang von einem Schritt zu einen oder mehreren<br />
(parallelen) folgenden Schritten erfolgt durch eine<br />
Übergangsbedingung (Transition).<br />
– Aktionen <strong>und</strong> Transitionen werden in einer der<br />
vorgenannten Sprachen spezifiziert.<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 61
AS Beispiel<br />
I0.1<br />
I0.2 I0.3 I0.4<br />
I0.3<br />
I0.4<br />
TU Dresden, 13.10.2009<br />
S0<br />
S1<br />
T0<br />
T1<br />
S0<br />
Step 0<br />
R Q1.1<br />
Step 1<br />
S Q1.1<br />
SPS&KR (c) Urbas 2008-2009 Folie 62
Operationen einer SPS<br />
Binäre Abfragen <strong>und</strong> Verknüpfungen<br />
• Negation<br />
• UND-Verknüpfung<br />
• ODER-Verknüpfung<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 63
Negation<br />
Funktion: Inversion des Signalwerts<br />
Notationen:<br />
E A<br />
0 1<br />
1 0<br />
E 1 A<br />
TU Dresden, 13.10.2009<br />
E=A<br />
E=! A<br />
E=¬A<br />
24V<br />
E<br />
A 0V<br />
SPS&KR (c) Urbas 2008-2009 Folie 64
Beispiel: Werkzeugbrucherkennung<br />
Bohrerkontrolle mit Lichtschranke: Ist der Bohrer<br />
nicht abgebrochen, so wird der Lichtstrahl unterbrochen<br />
<strong>und</strong> ein Freigabesignal für den Bohrvorgang<br />
erteilt. Im umgekehrten Fall wird die Freigabe<br />
unterdrückt.<br />
(Bildquelle: www.renishaw.com)<br />
Eingangsvariable<br />
Lichtschranke<br />
Ausgangsvariable<br />
Freigabe<br />
TU Dresden, 13.10.2009<br />
Symbol<br />
E<br />
A<br />
Datentyp<br />
BOOL<br />
BOOL<br />
Logische Zuordnung Adresse<br />
Unterbrochen E=0<br />
Keine Freigabe A=0<br />
I X 0.0<br />
Q X 4.0<br />
SPS&KR (c) Urbas 2008-2009 Folie 65
Implementierung in den verschiedenen<br />
Sprachen der EN ISO 61131-3<br />
AWL<br />
LDN %IX0.0 LD %IX0.0 LD %IX0.0<br />
ST %QX4.0 NOT STN %QX4.0<br />
ST %QX4.0<br />
ST<br />
%QX4.0 := NOT %IX0.0<br />
FUP<br />
KOP<br />
NOT<br />
%IX0.0 %QX4.0<br />
%IX0.0 %QX4.0 %IX0.0 %QX4.0<br />
|----|/|------( )------| |----| |------(/)------|<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 66
UND-Verknüpfung<br />
Funktion: Der Ausgang ist 1 wenn alle Eingänge 1 sind<br />
Notationen:<br />
TU Dresden, 13.10.2009<br />
E1<br />
0<br />
0<br />
1<br />
1<br />
E2 A<br />
0 0<br />
1 0<br />
0 0<br />
1 1<br />
A=E ∧ E2<br />
A=E1 & E2<br />
A =E1 E2<br />
E1<br />
E2 & A<br />
E1 E2<br />
24V A 0V<br />
SPS&KR (c) Urbas 2008-2009 Folie 67
Beispiel: optisches Schutzgitter<br />
Die Presse führt den Arbeitshub nur<br />
aus, wenn die Lichtstrahlen nicht unterbrochen<br />
sind <strong>und</strong> der Starttaster S1 betätigt ist.<br />
Eingangsvariable<br />
Taster Start<br />
Lichtgitter<br />
Ausgangsvariable<br />
Pressenschütz<br />
TU Dresden, 13.10.2009<br />
Symbol<br />
S1<br />
S2<br />
K<br />
Datentyp<br />
BOOL<br />
BOOL<br />
BOOL<br />
Logische Zuordnung Adresse<br />
Betätigt S1=1<br />
Nicht Unterbrochen S2=1<br />
Arbeitshub K=1<br />
(Bildquelle: www.leuze.de)<br />
IX 0.1<br />
IX 0.2<br />
QX 4.0<br />
SPS&KR (c) Urbas 2008-2009 Folie 68
ODER-Verknüpfung<br />
Funktion: Der Ausgang ist 1 wenn ein oder mehrere Eingänge 1<br />
sind.<br />
Notationen:<br />
E1<br />
0<br />
0<br />
1<br />
1<br />
E2 A<br />
0 0<br />
1 1<br />
0 1<br />
1 1<br />
TU Dresden, 13.10.2009<br />
A=E ∨ E2<br />
A=E1 | E2<br />
A = E1+E2<br />
E1<br />
E2<br />
E2<br />
E1<br />
≥1<br />
24V A 0V<br />
SPS&KR (c) Urbas 2008-2009 Folie 69<br />
A
Beispiel: Turbinenüberwachung<br />
H<br />
Die Alarmleuchte einer Turbine geht an,<br />
wenn die Drehzahl zu hoch oder die<br />
Lagertemperatur zu hoch oder der<br />
Kühlkreislauf ausgefallen ist<br />
Eingangsvariable<br />
Drehzahl n<br />
Lagertemperatur ϑ<br />
Kühlkreislauf K<br />
Ausgangsvariable<br />
Alarmleuchte<br />
TU Dresden, 13.10.2009<br />
Symbol<br />
S1<br />
S2<br />
S3<br />
H<br />
Datentyp<br />
BOOL<br />
BOOL<br />
BOOL<br />
BOOL<br />
(Bildquelle: www.leuze.de)<br />
Logische Zuordnung Adresse<br />
n zu groß S1=0<br />
ϑ zu hoch S2=0<br />
In Betrieb S3=0<br />
Ein H=1<br />
IX 0.1<br />
IX 0.2<br />
IX 0.3<br />
QX 4.0<br />
SPS&KR (c) Urbas 2008-2009 Folie 70<br />
K<br />
ϑ><br />
n>
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Systementwurf für binäre<br />
Steuerungen<br />
•Wahrheitstabelle & Normalformen<br />
•Minimierungsverfahren<br />
•(Zustandsmodelle)
Wahrheitstabelle <strong>und</strong> Normalformen<br />
Tabellarische Auflistung aller Systemzustände<br />
des Schaltnetzes<br />
– Üblicherweise Eingänge links, Ausgang rechts<br />
– 1 = Wahr; 0 = Falsch; X oder 0/1 = don‘t care<br />
Disjunktive (DNF) <strong>und</strong> konjunktive Normalform (KNF)<br />
• DNF: Alle Zeilen mit Ausgang = 1,<br />
TU Dresden, 13.10.2009<br />
– UND-Verknüpfung der Eingänge einer Zeile,<br />
– ODER-Verknüpfung der Zeilen<br />
• KNF: Alle Zeilen mit Ausgang=0<br />
– ODER-Verknüpfung der Eingänge einer Zeile<br />
– UND-Verknüpfung der Zeilen A = E1vE2<br />
ODER-Verknüpfung<br />
E1<br />
0<br />
0<br />
1<br />
1<br />
SPS&KR (c) Urbas 2008-2009 Folie 72<br />
E2 A<br />
0 0<br />
1 1<br />
0 1<br />
1 1<br />
A=E1E2vE1E2vE1E2
Algebraische Minimierung<br />
Neutrale Elemente<br />
E∨0=E E∨1=1<br />
E∧1=E E∧0=0<br />
E∨E=E E∨E=1<br />
E∧E=E E∧E=0<br />
Reduktionsregeln<br />
E1∨�E1∧E2�=E1<br />
E1∧�E1∨E2�=E1<br />
E1∧�E1∨E2�=E1∧E2<br />
E1∨�E1∧E2�=E1∨E2<br />
TU Dresden, 13.10.2009<br />
Kommutativgesetz<br />
E1∨E2=E2∨E1<br />
E1∧E2=E2∧E1<br />
Assoziativgesetz<br />
E1∨E2∨E3=E1∨�E2∨E3�=�E1∨E2�∨E3<br />
E1∧E2∧E3=E1∧�E2∧E3�=�E1∧E2�∧E3<br />
Distributivgesetz<br />
�E1∧E2�∨�E1∧E3�=E1∧�E2∨E3�<br />
�E1∨E2�∧�E1∨E3�=E1∨�E2∧E3�<br />
SPS&KR (c) Urbas 2008-2009 Folie 73
KVS-Diagramm<br />
Karnaugh-Veitch-Symetrie-Diagramm: Symetrischer<br />
Aufbau einer Funktionstabelle durch wechselweises<br />
Spiegeln<br />
Ziffern in den Zellen<br />
im Octalsystem!<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 74
Zuordnung Zeilen zu Feldern<br />
Nr<br />
0<br />
1<br />
2<br />
3<br />
4<br />
5<br />
6<br />
7<br />
X3<br />
0<br />
0<br />
0<br />
0<br />
1<br />
1<br />
1<br />
1<br />
TU Dresden, 13.10.2009<br />
X2<br />
0<br />
0<br />
1<br />
1<br />
X1<br />
0<br />
1<br />
0<br />
1<br />
A<br />
0<br />
1<br />
1<br />
1<br />
SPS&KR (c) Urbas 2008-2009 Folie 75<br />
5<br />
7<br />
x3<br />
4<br />
6
! E1 & E2<br />
Grafische Minimierung<br />
• Zusammenfassen von maximal viel 1-er Feldern:<br />
- Anzahl der Felder: Potenzen von 2, d.h. 1,2,4,8<br />
- Überlappung erlaubt<br />
- Wegen Symetrie Fortsetzung über die Ränder<br />
E1<br />
! E1<br />
TU Dresden, 13.10.2009<br />
E2, E3<br />
0<br />
1<br />
!E2, E3<br />
1<br />
1<br />
! E2 & E3<br />
!E2,!E3<br />
1<br />
0<br />
E1 & ! E2<br />
E2,!E3<br />
SPS&KR (c) Urbas 2008-2009 Folie 76<br />
0<br />
1
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Speicherfunktionen,<br />
Zeit- <strong>und</strong> Zählerbausteine
Speicherfunktion<br />
Ein/Austaster für Meldeleuchte H:<br />
Leuchte wird durch kurzeitiges<br />
Betätigen eines EIN-Tasters S1<br />
ein, durch kurzzeitiges Betätigen<br />
eines AUS-Tasters S0 wieder<br />
ausgeschaltet werden.<br />
Auswirkung auf H abhängig von<br />
Vorgeschichte<br />
Einführung einer neuen<br />
Zustandsvariablen Q (für<br />
Vorgeschichte) → vollständige<br />
Funktionstabelle<br />
TU Dresden, 13.10.2009<br />
Nr<br />
0<br />
1<br />
2<br />
3<br />
Nr<br />
1<br />
2<br />
3,4<br />
5,6<br />
7,8<br />
S1<br />
0<br />
0<br />
1<br />
1<br />
S1<br />
0<br />
0<br />
0<br />
1<br />
1<br />
S0<br />
0 (S0 dominant)<br />
1 (S1 dominant)<br />
SPS&KR (c) Urbas 2008-2009 Folie 78<br />
0<br />
1<br />
0<br />
1<br />
S0<br />
0<br />
0<br />
1<br />
0<br />
1<br />
H<br />
0 (S0 war 1)<br />
1 (S1 war 1)<br />
0<br />
1<br />
Q<br />
0<br />
1<br />
?<br />
?<br />
?<br />
H<br />
0<br />
1<br />
0<br />
1<br />
0 (S0 dom.)
H<br />
S1<br />
Disjunktive Normalform<br />
Alle Elemente H=1<br />
H=S1 S0HvS1S0HvS1S0H<br />
Nach Minimierung<br />
H=HS0∨S1S0=S0�H∨S1�<br />
≥1<br />
S0<br />
TU Dresden, 13.10.2009<br />
&<br />
H<br />
Nr<br />
1<br />
2<br />
3,4<br />
5,6<br />
7,8<br />
0<br />
1<br />
1<br />
S0<br />
Schütztechnik Selbsthaltung<br />
L1<br />
S0<br />
S1<br />
K1<br />
N<br />
S1<br />
0<br />
0<br />
SPS&KR (c) Urbas 2008-2009 Folie 79<br />
0<br />
0<br />
1<br />
0<br />
1<br />
K1<br />
H<br />
0<br />
1<br />
0/1<br />
0/1<br />
0/1<br />
K1<br />
H<br />
0<br />
1<br />
0<br />
1<br />
0 (S0 dom.)
Hausübung: Sammelbecken<br />
Der Inhalt eines Beckens wird mit zwei<br />
Schwimmschalter überwacht. Übersteigt<br />
der Level den oberen Signalgeber S2<br />
(S2=1), so ist über Ablaufventil Y<br />
vollständig zu Leeren. Ist das Becken entleert, Y<br />
meldet der untere Schwimmschalter S1=0 <strong>und</strong> das Ventil Y ist zu<br />
schließen.<br />
• Stellen Sie eine Zuordnungstabelle der Ein- <strong>und</strong> Ausgänge auf<br />
• Stellen Sie den Zusammenhang zwischen Eingangsvariablen S1,<br />
S2 <strong>und</strong> Y in einer Funktionstabelle dar<br />
• Lesen Sie die Schaltfunktion ab <strong>und</strong> Minimieren sie ggf.<br />
• Implementieren Sie die Schaltfunktion als FUP/KOP/AWL<br />
TU Dresden, 13.10.2009<br />
S2<br />
S1<br />
SPS&KR (c) Urbas 2008-2009 Folie 80
RS-Speicherbaustein<br />
H<br />
S1<br />
S0<br />
S<br />
R<br />
TU Dresden, 13.10.2009<br />
≥1<br />
&<br />
S1 S<br />
H<br />
Q S0 R Q H<br />
H=S0�H∨S1�<br />
RS<br />
SPS&KR (c) Urbas 2008-2009 Folie 81
Verriegelungen<br />
• Gegenseitiges Verriegeln: Zwei Speicher sind nicht<br />
gleichzeitig „ein“<br />
– GVS) Verriegelung über Setz-Eingang (&,n)<br />
– GVR) Verriegelung über Rücksetzeingang (≥1)<br />
• Reihenfolgeverriegelung: Damit eine Speicherfunktion<br />
gesetzt werden kann, muss vorher ein<br />
anderer gesetzt sein<br />
– RVS) Verriegelung über Setz-Eingang (&)<br />
TU Dresden, 13.10.2009<br />
– RVR) Verriegelung über Rücksetzeingang (≥1,n)<br />
SPS&KR (c) Urbas 2008-2009 Folie 82
Verriegelung von Speichern<br />
Verriegelung durch Setzeingang<br />
Setz-Befehl wird nur wirksam,<br />
wenn der andere Speicher auf 0<br />
gesetzt ist<br />
S1<br />
A2<br />
S3<br />
A1<br />
&<br />
&<br />
S2<br />
S4<br />
TU Dresden, 13.10.2009<br />
S<br />
R Q<br />
S<br />
R Q<br />
A1<br />
A2<br />
S2<br />
A2<br />
S4<br />
A1<br />
… durch Rücksetzeingang<br />
Bei Verwendung von Rücksetzdominanten<br />
Speicherbausteinen<br />
kann ein Speicher ebenfalls nur<br />
eingeschaltet werden, wenn der<br />
andere auf 0 gesetzt ist<br />
S1<br />
>=1<br />
S3<br />
>=1<br />
SPS&KR (c) Urbas 2008-2009 Folie 83<br />
S<br />
R Q<br />
S<br />
R Q<br />
A1<br />
A2
E<br />
Flankenauswertung = Änderung<br />
Positive Flanke<br />
• Merken des letzten Wertes eines Flankenoperanden (FO) in Flankenmerker<br />
FM<br />
• Setzen des Merkers mit E * ¬ FM<br />
• Rücksetzen des Merkers mit ¬E<br />
Negative Flanke<br />
• Merken des letzten Wertes eines Flankenoperanden (FO)<br />
• Setzen des Merkers mit E<br />
• Rücksetzen des Merkers mit ¬E * FM<br />
FO<br />
&<br />
FM S<br />
E<br />
R Q<br />
TU Dresden, 13.10.2009<br />
FM<br />
FM<br />
0<br />
0<br />
1<br />
1<br />
SPS&KR (c) Urbas 2008-2009 Folie 84<br />
E<br />
0<br />
1<br />
1<br />
0<br />
FO<br />
0<br />
1<br />
0<br />
0
Zeitfunktionen<br />
Verarbeitung von zeitlicher Information ist essentieller<br />
Bestandteil von Steuerungen<br />
• Warte- <strong>und</strong> Überwachungszeiten, Zeitmessungen,<br />
Taktimpulse, ...<br />
• EN ISO 61131-3: drei Standardfunktionsbausteine<br />
– TP: Erzeugen eines Impulses<br />
– TON: Einschaltverzögerung<br />
– TOF: Ausschaltverzögerung<br />
• Häufig weitere firmenspezifische Bausteine<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 85
Zeitdiagramm TON<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 86
Zeitdiagramm TOF<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 87
Zeitdiagramm TP<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 88
Zweihandverriegelung mit<br />
Feststellungsschutz<br />
Die Presse soll in Gang gesetzt werden,<br />
wenn die Taster S1 <strong>und</strong> S2 innerhalb<br />
0.5 Sek<strong>und</strong>en betätigt werden. Loslassen<br />
eines Tasters stoppt die Presse.<br />
Eingangsvariable<br />
Taster links<br />
Taster rechts<br />
Ausgangsvariable<br />
Pressenschütz<br />
TU Dresden, 13.10.2009<br />
Symbol<br />
S1<br />
S2<br />
K<br />
Typ<br />
BOOL<br />
BOOL<br />
BOOL<br />
M K1<br />
S1 S2<br />
Logische Zuordnung Adresse<br />
Betätigt S1=1<br />
Betätigt S2=1<br />
Angezogen K=1<br />
IX 0.1<br />
IX 0.2<br />
QX 4.0<br />
SPS&KR (c) Urbas 2008-2009 Folie 89
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Ablaufsprache
Ablaufsprache<br />
Formulierung eines Steuerungsproblems als Automat mit<br />
– Schritten (definiert durch Aktionen) <strong>und</strong><br />
– Übergängen (definiert durch Bedingungen)<br />
Aktionen: In jedem Schritt wird eine Anzahl von Aktionen solange<br />
ausgeführt, bis der Übergang „scharf“ geschaltet ist<br />
TU Dresden, 13.10.2009<br />
– N Ausführen/Setzen solange Aktion aktiv<br />
– R Rücksetzen (bis nächstes S)<br />
– S Setzen (bis nächstes R)<br />
– L Ausführen/Setzen solange Aktion aktiv, jedoch maximal<br />
x Zeiteinheiten<br />
– DZeitverzögert Ausführen/Setzen<br />
– PEinmalige Ausführung/Impuls bei Betreten des Schritts<br />
– SD, DS, SL - verzögert <strong>und</strong> gespeichert, gespeichert <strong>und</strong><br />
verzögert, gespeichert <strong>und</strong> zeitbegrenzt<br />
SPS&KR (c) Urbas 2008-2009 Folie 91
Beispiel: Ampelschaltung<br />
• “Rezept”<br />
– Schritt 1: 10 Sek<strong>und</strong>en<br />
ROT<br />
– Schritt 2: 2 Sek<strong>und</strong>en<br />
ROTGELB<br />
– Schritt 3: 10 Sek<strong>und</strong>en<br />
GRÜN<br />
– Schritt 4: 2 Sek<strong>und</strong>en<br />
GELB<br />
– Schritt 5: weiter bei<br />
Schritt 1<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 92
Alternativ & Parallelverzweigung<br />
• Alternativverzweigung<br />
– Es wird genau ein Ast abgearbeitet<br />
– Transitionen in die einzelnen Äste nach der Verweigung<br />
– üblicherweise komplementär zueinander, auswertung von<br />
links nach rechts<br />
• Parallelverzweigung<br />
TU Dresden, 13.10.2009<br />
– Es werden alle Äste parallel abgearbeitet<br />
– Transitionen vor der Verzweigung<br />
– Bei der Zusammenführung geht es erst weiter, wenn alle<br />
Äste “angekommen” sind.<br />
SPS&KR (c) Urbas 2008-2009 Folie 93
Beispiel<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 94
Beispiel Beschickungsanlage<br />
Wenn Starttaster S0=1 <strong>und</strong> Wagen an<br />
Rampe (S2=1), dann<br />
1. erst Transportband an (K1=1) <strong>und</strong><br />
2. nach 3 Sek. Förderschnecke an<br />
(K2=1)<br />
Wenn Wagen gefüllt (S3=1), Stoptaster<br />
bedient (S1=0), oder Wagen nicht<br />
mehr an Rampe (S2=0), dann<br />
1. Förderschnecke abschalten (K2=0)<br />
2. nach 5 Sek. Transportband aus<br />
(K1=0)<br />
TU Dresden, 13.10.2009<br />
Förderschnecke<br />
M<br />
K1<br />
E-1<br />
M<br />
K2<br />
Transportband<br />
Waage<br />
SPS&KR (c) Urbas 2008-2009 Folie 95<br />
S3<br />
S0 Start<br />
S1 Stop<br />
S2
Entwurf Beschickungsanlage<br />
• Vier Zustände<br />
– Z0: ( Initialisierung, K1=0, K2=0 )<br />
– Z1: ( Befüllen, K1=1, K2=0 )<br />
– Z2: ( Befüllen, K1=1, K2=1 )<br />
– Z3: ( Anhalten, K1=1, K2=0 )<br />
TU Dresden, 13.10.2009<br />
– ( Anhalten, K1=0, K2=0 ) = ( Initialisieren, K1=0, K2=0)<br />
S0 S2 3 sec S1v¬S2v¬S3<br />
Z0 Z1 Z2 Z3<br />
5 sec<br />
SPS&KR (c) Urbas 2008-2009 Folie 96
Analyse Beispiel<br />
Schritte<br />
S001, S002, S004, S005<br />
Transitionen<br />
Zustandsgesteuert<br />
S001� S002<br />
Zeitgesteuert<br />
S002�S004<br />
S004�S005<br />
Aktionen<br />
N: Setze Variable solange in<br />
Schritt<br />
D: Setze zeitverzögert einen<br />
Impuls<br />
TU Dresden, 13.10.2009<br />
S0<br />
S2<br />
S1<br />
S2<br />
A ND<br />
O R<br />
SPS&KR (c) Urbas 2008-2009 Folie 97<br />
T 1<br />
T 1<br />
S001<br />
S002 N K1<br />
D<br />
T ime #3s<br />
S004 N K1<br />
N K2<br />
T 1<br />
S005 N K1<br />
D<br />
T ime #5s<br />
T 1
Übungsaufgabe Baustellenampel<br />
Wenn Induktionschalter anschlägt, soll die zugehörige Ampel nach 10<br />
Sek<strong>und</strong>en auf grün schalten (die andere auf rot)<br />
Eine Grünphase soll mindestens 20 Sek<strong>und</strong>en dauern. Liegt keine<br />
Meldung eines Induktionsschalters vor, bleibt die Anlage in ihrem<br />
jeweiligen Zustand.<br />
Spricht während der Grünphase<br />
einer Ampel der gegenüberliegende<br />
Induktionsschalter an, sollen beide<br />
Ampeln für 10 Sek<strong>und</strong>en auf rot gehen,<br />
bevor die gegenüberliegende Seite<br />
grün bekommt.<br />
TU Dresden, 13.10.2009<br />
I1<br />
H1 H3<br />
H2 H4<br />
SPS&KR (c) Urbas 2008-2009 Folie 98<br />
I2
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Strukturierte SPS-<br />
Programmierung
Strukturierte SPS-Programmierung<br />
Ziel: Lesbare, verstehbare <strong>und</strong> wartbare SPS-Programme mit hohem<br />
Wiederverwendungsgrad<br />
Lösungsansatz: Prinzipien der Objektorientierung<br />
• Modellierung/Spiegelung der automatisierten Welt<br />
– Verwendung von (globalen) Strukturen zur Beschreibung<br />
der Automatisierungskomponenten (Sensoren, Motoren,<br />
Ventile, u.s.w.)<br />
• Kapselung, Geheimnisprinzip, Seperation of Concern<br />
– “Verstecken” der jeweils feldgeräte-spezifischen Logik in<br />
wiederverwendbaren Funktionsbausteinen<br />
– Trennung von Steuerungs-/Prozesslogik <strong>und</strong> Gerätelogik<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 100
Vorgehensmodell strukturierte SPS-<br />
Programmierung (Seitz 2008)<br />
1) Softwarestrukturierung / Objektmodellierung<br />
TU Dresden, 13.10.2009<br />
– Ein FBS <strong>und</strong> Anwenderdatentyp pro Feldgerätetyp<br />
– Je ein Ansteuerprogramm & Strukturvariable je Gerät<br />
2) Entwurf von FBS <strong>und</strong> Funktionen<br />
– Deklaration von Ein- <strong>und</strong> Ausgangsvariablen<br />
– Entwurf der Schaltungslogik<br />
3) Entwurf der Programme<br />
– Deklaration von Variablen für Mess- <strong>und</strong> Stellsignale <strong>und</strong> deren<br />
E/A Zuordnung<br />
– Dekl. globaler Variablen für Steuer- <strong>und</strong> Statussignale (für jeden<br />
Gerätetyp gesammelt als AWD)<br />
– Instanziierung der FBS von 2)<br />
– Entwurf von Zusatzlogik<br />
SPS&KR (c) Urbas 2008-2009 Folie 101
Strukturierte SPS-Programmierung / Forts.<br />
1) Softwarestrukturierung / Objektmodellierung<br />
2) Entwurf von FBS <strong>und</strong> Funktionen<br />
3) Entwurf der Programme<br />
4) Implementierung<br />
TU Dresden, 13.10.2009<br />
– Implementierung der entworfenen PRG, FBS, AWD <strong>und</strong> Variablen<br />
– Festlegung der Steuerungskonfiguration<br />
– Taskzuordnung<br />
5) Test <strong>und</strong> Inbetriebnahme<br />
– Test in der Simulation<br />
– Laden der Software in die SPS<br />
– Inbetriebname <strong>und</strong> Protokollierung<br />
SPS&KR (c) Urbas 2008-2009 Folie 102
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Modellierung von Aktoren<br />
Individual Drive Function (IDF)<br />
Einzelsteuerfunktion (ESF)
Typische Motorbausteine<br />
• Motor mit einer Drehrichtung<br />
TU Dresden, 13.10.2009<br />
– Steuersignale: EIN, AUS<br />
– Stellsignale: STELL<br />
• Motor mit zwei Drehrichtungen<br />
• Schrittmotor<br />
– Steuersignale: LINKS, RECHTS, AUS<br />
– Stellsignale: STELL_L, STELL_R<br />
– Steuersignale: LINKS, RECHTS, AUS, TAKTZEIT<br />
– Stellsignale: STELL, RECHTSLAUF, TAKT<br />
• Polumschaltbarer Einrichtungsmotor<br />
– Steuersignale: SCHNELL, LANGSAM, AUS<br />
– Stellsignale: A_SCHNELL, A_LANGSAM<br />
SPS&KR (c) Urbas 2008-2009 Folie 104
Einrichtungsmotor, IDF1<br />
• IDFBasic<br />
– ON, OFF → RS-Flipflop → OUT<br />
• Verriegelung / Überschreiben des Ein-Signals<br />
– LOCK (Temporäres Ausschalten)<br />
• Betriebsartenumschaltung<br />
– Vorort-Bedienung, Manuell, Automatik<br />
TU Dresden, 13.10.2009<br />
– Gleichberechtigung/Hierarchie abhängig von<br />
Betreiberphilosophie!<br />
• Lauf(richtungs)rückmeldung<br />
– Läuft, Geschwindigkeit, Stromaufnahme, ...<br />
SPS&KR (c) Urbas 2008-2009 Folie 105
Betriebsartenumschaltung<br />
Start Befüllen<br />
Ende Befüllen<br />
TU Dresden, 13.10.2009<br />
MAN/AUT ◙<br />
EIN ◙ AUS ◙<br />
IDF<br />
VO/FERN ◙<br />
EIN ◙ AUS ◙<br />
SPS&KR (c) Urbas 2008-2009 Folie 106<br />
M
MANUEL – ORT - AUTOMATIK<br />
• Umschaltung zwischen 3 Betriebsarten<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 107
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Analogwertverarbeitung
Analoge Steuersignale<br />
Physikalische Größen sind häufig<br />
kontinuierliche Größen: Druck,<br />
Temperatur, Geschwindigkeit,<br />
Drehzahl, ph-Wert, Abstand<br />
Können von SPS nicht direkt<br />
verarbeitet werden, Ein/-<br />
Ausgabebaugruppen arbeiten<br />
nur mit elektrischen Signalen<br />
(Strom, Spannung) �<br />
Messumformer<br />
Analoges Signal: Kann innerhalb<br />
technischer Grenzen beliebige<br />
Werte annehmen.<br />
TU Dresden, 13.10.2009<br />
Induktiver Näherungsmesser:<br />
20mA<br />
4mA<br />
24V<br />
0V<br />
Arbeitsbereich<br />
SPS&KR (c) Urbas 2008-2009 Folie 109<br />
I<br />
U<br />
R L
Analogwertdarstellung<br />
Umsetzung des analogen Prozesssignals in einen<br />
diskontinuierlich proportionalen Digitalwert mittel<br />
Analog-Digital-Umsetzer (ADU)<br />
Auflösung: Anzahl der Bits (8-15 & Vorzeichen)<br />
– Bei weniger als 15 bit erfolgt Eintrag linksbündig in<br />
Akkumulator.<br />
– Je höher die Auflösung, desto länger die Umsetzzeit <strong>und</strong><br />
umso kleiner die Frequenz der Störunterdrückung<br />
– Je nach Karte/Hersteller sind Auflösung, A/D-Zeit oder<br />
Störfrequenzunterdrückung parametrierbar<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 110
Messarten<br />
Verschiedene Messarten<br />
– Spannung, Strom (Widerstand, Temperatur)<br />
– verschiedene Messbereiche.<br />
Konfiguration herstellerabhängig einstellbar<br />
durch<br />
– Art der Verdrahtung,<br />
– Messbereichsmodul, <strong>und</strong>/oder<br />
– Parametrierung.<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 111
Messbereichsmodul (Siemens SM331)<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 112
Messbereiche Phoenix Contact<br />
IB IL AI 2/SF<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 113
Messbereiche Siemens SM331<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 114
Analoge Messwerte einlesen <strong>und</strong> normieren<br />
Messwert steht als WORD im Prozessabbild<br />
Kann als 16-Bit Ganzzahl interpretiert werden<br />
Digitales Rohsignal, Normierung notwendig<br />
Beispiel: AE_Norm = 500/27648 * AE_Nenn<br />
Physikalische<br />
Größe<br />
[m³/h]<br />
0<br />
500<br />
TU Dresden, 13.10.2009<br />
Ausgang des<br />
Sensors<br />
[mA]<br />
4<br />
20<br />
Digitaler<br />
Eingangsnennwert<br />
AE_Nenn<br />
0<br />
27648<br />
Normierter<br />
Wert AE_Norm<br />
SPS&KR (c) Urbas 2008-2009 Folie 115<br />
0<br />
500
Allgemeine<br />
Normierungsvorschrift<br />
AE: Digitalisierter Eingangswert<br />
REAW: Normierter<br />
Analogeingabewert<br />
OGREB, UGREB: Grenzen<br />
Eingangsnennbereich<br />
OGRNB, UGRNB: Grenzen<br />
Normierungsbereich<br />
U1,U2: Spannungsmessbereich<br />
UAE: Anliegende Spannung<br />
REAW =<br />
UGRNB + (AE −<br />
TU Dresden, 13.10.2009<br />
ΔGRNB<br />
UGREB)<br />
ΔGREB<br />
AE<br />
REAW<br />
UGRNB<br />
UGREB<br />
U1 UAE U2<br />
SPS&KR (c) Urbas 2008-2009 Folie 116<br />
OGREB<br />
OGRNB
Realisierung als Funktion AEnorm in AWL (IL)<br />
Realisierung als IEC-61131<br />
Funktion in AWL<br />
Ein-Address Maschine, alle binären<br />
Operationen ziehen verknüpfen<br />
den Akkumulator mit dem<br />
angegebenen Operanden <strong>und</strong><br />
legen Verknüpfungs-ergebnis<br />
(VKE) dort wieder ab<br />
Sprache ist typsicher, d.h. nur<br />
Operatoren gleichen Typs<br />
können verknüpft werden �<br />
Wandlungsoperatoren *_TO_*<br />
TU Dresden, 13.10.2009<br />
Benötigter Sprachumfang für<br />
diese AE<br />
LD op (* vke := op *)<br />
ST op (* op := vke *)<br />
ADD op (* vke := vke + op *)<br />
SUB op (* vke := vke - op *)<br />
MUL op (* vke := vke * op *)<br />
DIV op (* vke := vke / op *)<br />
INT_TO_REAL (* vke := float(vke)<br />
*)<br />
WORD_TO_REAL (*vke � float(vke)<br />
*)<br />
AE ist als WORD Variable definiert<br />
SPS&KR (c) Urbas 2008-2009 Folie 117
Normierungsbaustein<br />
in AWL<br />
Funktion (ohne output-<br />
variablen)<br />
3 lokale Variablen<br />
UIn<br />
-3 0000<br />
+30000<br />
-1 0.0<br />
+10.0<br />
A ENorm<br />
w A E<br />
iUGREB<br />
iO GREB<br />
fUGRNB<br />
fO GRNB<br />
TU Dresden, 13.10.2009<br />
fUIn<br />
SPS&KR (c) Urbas 2008-2009 Folie 118
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
SPS-SPS Kommunikation
Übersicht<br />
• SPS-SPS-Kommunikation<br />
• IEC 61131-5<br />
• Netzvariablen a la <strong>CoDeSys</strong><br />
• IEC 61499<br />
• OPC<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 120
SPS-SPS-Kommunikation<br />
• Vertikale Integration: Vernetzung der Prozessdaten<br />
mit überlagerten Führungssystemen<br />
– SCADA / HMI<br />
– MES / ERP<br />
TU Dresden, 13.10.2009<br />
– Kleinere Abtastrate, Bulkdaten<br />
• Horizontale Integration: Quervernetzung mit<br />
anderen Steuerungs-”inseln”<br />
– Anbindung intelligenter Feldgeräte ( VL Bussysteme,<br />
→<br />
PRLT)<br />
– SPS-SPS-Querverkehr<br />
– Hohe Abtastraten, kleine Datenvolumina<br />
SPS&KR (c) Urbas 2008-2009 Folie 121
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
IEC 61131-5
61131-5: Bausteine zur Kommunikation<br />
• Definition von Variablen für Fernzugriff<br />
– REMOTE_VAR<br />
• Funktionsbausteine für<br />
– Statusabfrage: USTATUS, STATUS<br />
– Datenaustausch ohne Aufforderung: USEND, URCV<br />
TU Dresden, 13.10.2009<br />
– Koordinierter Datenaustausch: SEND, RCV<br />
– Steuerung durch Client: WRITE<br />
– Polling: READ<br />
– Ereignisbehandlung: NOTIFY, ALARM<br />
– Verbindungssteuerung: CONNECT<br />
SPS&KR (c) Urbas 2008-2009 Folie 123
STATUS, USTATUS<br />
• USTATUS: liest Status zyklisch solange EN=TRUE<br />
• STATUS: liest Status bei steigender Flanke auf REQ<br />
• Ausgabe:<br />
– NDR: Neuer Status empfangen<br />
– ERROR: Fehler aufgetreten<br />
– STATUS: Fehlerstatus<br />
TU Dresden, 13.10.2009<br />
– PHYS: Physikalischer Status des Partners<br />
– LOG: Logischer Status des Partners<br />
– PCSTATE: Lokaler Status d. Partners<br />
EN<br />
ID<br />
USTATUS<br />
NDR<br />
ERROR<br />
STATUS<br />
PHYS<br />
LOG<br />
PCSTATE<br />
SPS&KR (c) Urbas 2008-2009 Folie 124
Status anzeigende Teile (PCSTATUS)<br />
• Teilsysteme<br />
– 1. SPS (als Ganzes)<br />
– 2. E/A Teilsystem<br />
– 3. Verarbeitungseinheit<br />
– 4. Stromversorgungs-Teilsystem<br />
TU Dresden, 13.10.2009<br />
– 5. Speicher-Teilsystem<br />
– 6. Kommunikations-Teilsystem<br />
– 7. Herstellerspezifisch<br />
• Befinden: GUT/WARNUNG/SCHLECHT (2 bit, 1 var)<br />
• Zustand: teilsystemspezifisch, bis 14 bit, z.B. SPS<br />
– Läuft, Lokal, Keine Ausgänge abgeklemmt, keine<br />
Eingänge abgeklemmt, E/A zwangsgesetzt, ...<br />
SPS&KR (c) Urbas 2008-2009 Folie 125
READ – Auslesen von Daten<br />
• Daten vom Typ VAR_ACCESS (61131-3)<br />
können via READ ausgelesen werden<br />
– Steigende Flanke in REQ triggert auslesen<br />
– V1 .. Vn sind die Pfade zu den Variablen<br />
TU Dresden, 13.10.2009<br />
REQ<br />
ID<br />
V_1<br />
...<br />
V_2<br />
READ<br />
NDR<br />
ERROR<br />
STATUS<br />
RD_1<br />
...<br />
RD_n<br />
SPS&KR (c) Urbas 2008-2009 Folie 126
USEND – URECV (Lesen ohne Aufforderung)<br />
• USEND: schreibt bei steigender Flanke auf REQ<br />
• URECV: Empfangsbereit, wenn EN_R=TRUE<br />
REQ<br />
ID<br />
R_ID<br />
SD_1<br />
...<br />
SD_n<br />
USEND<br />
TU Dresden, 13.10.2009<br />
DONE<br />
ERROR<br />
STATUS<br />
EN_R<br />
ID<br />
R_ID<br />
URECV<br />
NDR<br />
ERROR<br />
STATUS<br />
RD_1<br />
...<br />
RD_n<br />
SPS&KR (c) Urbas 2008-2009 Folie 127
Zusammenfassung<br />
• IEC 61131-5 definiert Dienste <strong>und</strong><br />
Funktionsbausteine zur Kommunikation<br />
– Status, Kommunikationsschema, Verhalten genormt<br />
– Verbindungsaufbau & Zugriffspfade hersteller- <strong>und</strong><br />
netzwerkabhängig<br />
– Erlaubt flexible, anforderungsgerechte Programmierung<br />
der Kommunikation<br />
• Umfrage SPS/IPC/Drives 2009<br />
– ca. 80% geben an, IEC61131-5 in der eigenen Familie zu<br />
unterstützen,<br />
TU Dresden, 13.10.2009<br />
– Stichproben der Fragebögen lassen vermuten, dass diese<br />
Angaben zu großen Teil falsch sind →<br />
Nacharbeit!<br />
SPS&KR (c) Urbas 2008-2009 Folie 128
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Netzvariablen a la<br />
<strong>CoDeSys</strong>
Netzwerkvariablen<br />
TU Dresden, 13.10.2009<br />
>> <strong>CoDeSys</strong>:<br />
Kommunikation.project<br />
• Master-SPS verteilt eine globale Variablenliste (GVL)<br />
im Netzwerk<br />
– Einstellung der Kommunikationsparameter für GVL<br />
– Netzwerkart, Task, Cyclic/On Change, ...<br />
• Slave-SPSen definieren eine identische Globale<br />
Netzwerkvariablenliste (NVL)<br />
– NVL identisch zu GVL<br />
– Slave-SPS kann diese Werte nur auslesen!<br />
• Bidirektionaler Verkehr?<br />
– Beide SPS-en definieren einen eigenen netzweiten GVL<br />
– Achtung! VARs befinden sich im gleichen Namensraum<br />
SPS&KR (c) Urbas 2008-2009 Folie 130
Kommunikation mittels Broadcast<br />
Device 1<br />
Task<br />
GVL<br />
Transport<br />
TU Dresden, 13.10.2009<br />
Publish/Subscribe<br />
Device 2<br />
NVL<br />
Transport<br />
Device 3<br />
NVL<br />
Transport<br />
Identische<br />
variablenvereinbarung<br />
SPS&KR (c) Urbas 2008-2009 Folie 131
Beispiel: Erkennen von Netzausfall/Aussetzern<br />
• Sender erzeugt “Heartbeat”: gB = 1 XOR gB<br />
• Empfänger prüft auf Ausbleiben der Flanken<br />
TU Dresden, 13.10.2009<br />
Empfänger<br />
Sender<br />
SPS&KR (c) Urbas 2008-2009 Folie 132
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
IEC/EN 61499<br />
Grafiken von James H. Christensen,<br />
http://knol.google.com/k/james-christensen/iec-61499#
IEC/EN 61499: Infrastruktur zur Projektierung<br />
von AT mit verteilten intelligenten Geräte<br />
TU Dresden, 13.10.2009<br />
Project<br />
Repository<br />
Software<br />
Tools<br />
CONFIGURABILITY<br />
INTEROPERABILITY<br />
PORTABILITY<br />
Distributed intelligent devices & machines<br />
Software<br />
Libraries<br />
SPS&KR (c) Urbas 2008-2009 Folie 134
Kaspelung <strong>und</strong> Wiederverwendung von EN<br />
61131-3 Funktionsblöcken<br />
IN<br />
DB_TIME<br />
IN<br />
TU Dresden, 13.10.2009<br />
ON_TMR<br />
TON<br />
PT ET<br />
OFF_TMR<br />
TON<br />
IN<br />
Q<br />
Q<br />
PT ET<br />
DEBOUNCE<br />
BOOL IN OUT BOOL<br />
TIME<br />
DB_TIME<br />
DB_FF<br />
S1 Q1<br />
R<br />
SR<br />
External Interface Specification<br />
Control Algorithm Specification<br />
OUT<br />
IN<br />
|/|<br />
DB_TIME<br />
IN<br />
| |<br />
DB_TIME<br />
OFF_TMR<br />
SPS&KR (c) Urbas 2008-2009 Folie 135<br />
TON<br />
IN<br />
Q<br />
PT ET<br />
ON_TMR<br />
TON<br />
IN<br />
Q<br />
PT ET<br />
OUT<br />
(R)<br />
OUT<br />
(S)
IEC/EN 61499 Execution Control Chart: verteilte<br />
ereignisgesteuerte Ausführungskontrolle<br />
Event inputs Event outputs<br />
Input variables<br />
Execution<br />
Control<br />
Chart<br />
Type identifier<br />
Algorithms<br />
(IEC 1131-3)<br />
Internal<br />
variables<br />
Output variables<br />
TU Dresden, 13.10.2009<br />
1<br />
EC initial state<br />
START<br />
INIT EX 1<br />
INIT INIT INITO<br />
EC action<br />
MAIN EX EXO<br />
EC state<br />
algorithm<br />
event<br />
Event inputs Event outputs<br />
Input variables<br />
Execution<br />
Control<br />
Type identifier<br />
SPS&KR (c) Urbas 2008-2009 Folie 136<br />
Output variables
SPS&KR (c) Urbas 2008-2009 Folie 137<br />
TU Dresden, 13.10.2009<br />
IEC/EN 61499: Service Interface Function<br />
Blocks<br />
(application-initiated transactions) (resource-initiated transactions)<br />
QO<br />
STATUS<br />
INITIATOR<br />
SD_m<br />
:<br />
SD_1<br />
CNF<br />
REQ<br />
INITO<br />
:<br />
RD_n<br />
RD_1<br />
IND<br />
RSP<br />
INIT INITO<br />
QO<br />
STATUS<br />
PARAMS<br />
RESPONDER<br />
SD_m<br />
:<br />
SD_1<br />
:<br />
RD_n<br />
RD_1<br />
QI QO<br />
STATUS<br />
PARAMS<br />
RESPONDER<br />
SD_m<br />
:<br />
SD_1<br />
:<br />
RD_n<br />
RD_1<br />
QI<br />
resource<br />
application<br />
PARAMS<br />
QI<br />
INIT<br />
STATUS<br />
INITO(+)<br />
STATUS<br />
INITO(+)<br />
RD_1,...,RD_n<br />
CNF(+)<br />
STATUS<br />
RD_1,...,RD_n<br />
CNF(+)<br />
STATUS<br />
t<br />
startService<br />
startService<br />
writeOutputs<br />
writeOutputs<br />
readInputs<br />
readInputs<br />
PARAMS<br />
INIT(+)<br />
PARAMS<br />
INIT(+)<br />
ANY<br />
BOOL<br />
EVENT<br />
ANY<br />
BOOL<br />
EVENT<br />
REQ(+)<br />
SD_1,...,SD_m<br />
REQ(+)<br />
SD_1,...,SD_m<br />
ANY<br />
:<br />
ANY<br />
EVENT<br />
ANY<br />
:<br />
ANY<br />
EVENT<br />
BOOL<br />
ANY<br />
EVENT<br />
BOOL<br />
ANY<br />
EVENT<br />
ANY<br />
:<br />
ANY<br />
EVENT<br />
ANY<br />
:<br />
ANY<br />
EVENT<br />
BOOL<br />
ANY<br />
EVENT<br />
BOOL<br />
ANY<br />
EVENT<br />
INIT(-)<br />
INIT(-)<br />
STATUS<br />
INITO(-)<br />
STATUS<br />
INITO(-)<br />
endService<br />
endService<br />
EVENT<br />
:<br />
ANY<br />
ANY<br />
EVENT<br />
:<br />
ANY<br />
ANY<br />
RSP(+)<br />
SD_1,...,SD_m<br />
RSP(+)<br />
SD_1,...,SD_m<br />
resource<br />
application<br />
BOOL<br />
ANY<br />
EVENT<br />
BOOL<br />
ANY<br />
EVENT<br />
PARAMS<br />
INIT(+)<br />
PARAMS<br />
INIT(+)<br />
STATUS<br />
INITO(+)<br />
STATUS<br />
INITO(+)<br />
RD_1,...,RD_n<br />
IND(+)<br />
STATUS<br />
RD_1,...,RD_n<br />
IND(+)<br />
STATUS<br />
startService<br />
startService<br />
writeOutputs<br />
writeOutputs<br />
readInputs<br />
readInputs<br />
INIT(-)<br />
INIT(-)<br />
STATUS<br />
INITO(-)<br />
STATUS<br />
INITO(-)<br />
endService<br />
endService<br />
EVENT<br />
:<br />
ANY<br />
ANY<br />
EVENT<br />
:<br />
ANY<br />
ANY
Zusammenfassung<br />
• IEC/EN 61499 definiert ein Modularisierungs- <strong>und</strong><br />
Kommunikationskonzept für verteilte AT<br />
– Execution Control Chart<br />
– Service Interface Function Blocks<br />
• Bislang vor allem Forschung, erste Produkte<br />
vorhanden<br />
– http://www.holobloc.com/<br />
– http://iec61499.de/<br />
• Umfrage SPS/IPC/Drives 2009: Standard bei den<br />
Befragten weitgehend unbekannt.<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 138
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
OPC / OPC-UA<br />
Openness, Productivity & Collaboration<br />
- the Standard formerly known as<br />
OLE for Process Control
Hintergr<strong>und</strong><br />
• Harmonisierung des<br />
Schnittstellenzoos<br />
• OPC auf Basis von<br />
Microsofts COM/DCOM<br />
• OPC Server<br />
– Datenlieferant<br />
– Hardware, SPS<br />
• OPC Client<br />
– Datennutzer<br />
– Software, HMI, MES, ...<br />
TU Dresden, 13.10.2009<br />
>> <strong>CoDeSys</strong>:<br />
Kommunikation.project<br />
Quelle: Matthias Damm, ascolab<br />
SPS&KR (c) Urbas 2008-2009 Folie 140
Probleme mit COM/DCOM<br />
• Nicht gut geeignet für Embedded Systems, keine<br />
Verfügbarkeit jenseits Windows CE<br />
• Weitere Probleme:<br />
– Verteilung, Timeout, Zuverlässigkeit<br />
– Red<strong>und</strong>anz, mehrere Server<br />
– Fehlende Echtzeitinformation<br />
– Abhängigkeit von proprietärer Technik<br />
•<br />
→ OPC Unified Architecture (PC UA)<br />
TU Dresden, 13.10.2009<br />
>> <strong>CoDeSys</strong>:<br />
Kommunikation.project<br />
SPS&KR (c) Urbas 2008-2009 Folie 141
OPC-UA Objektmodell<br />
• Objekt besteht aus<br />
– Variablen<br />
– Ereignisse<br />
– Methoden<br />
• Komplexe Objekte<br />
– Complex Data Types<br />
– State Machine<br />
– Programm<br />
– Historie<br />
• Informationsmodellierung<br />
– Metainformationen<br />
TU Dresden, 13.10.2009<br />
Variables<br />
___<br />
___<br />
___<br />
OPC UA Object<br />
Events<br />
Methods<br />
___()<br />
___()<br />
___()<br />
SPS&KR (c) Urbas 2008-2009 Folie 142
Pressure<br />
Transmitter<br />
OPC-UA Adressraum<br />
• Hierarchie → Netz<br />
Root<br />
Fieldbus Sensor Bus Areas<br />
Valve Area 1<br />
TU Dresden, 13.10.2009<br />
Pressure<br />
Xmitter<br />
Field<br />
Bus<br />
Valve<br />
Current Value<br />
Temp<br />
Xmitter<br />
SPS&KR (c) Urbas 2008-2009 Folie 143<br />
Root<br />
Sensor<br />
Bus<br />
Hi Limit Lo Limit<br />
Lo Alarm Lo Alarm<br />
“Located In”<br />
reference<br />
Areas<br />
Area 1<br />
Area 2<br />
Area 3
Schichtenmodell<br />
• Wenige Basisdienste<br />
• Binär/XML<br />
• Performance<br />
– UA Binary schneller als DCOM<br />
– UA Binary langsamer als COM<br />
– UA Binary 20 mal schneller<br />
als XML-HTTP<br />
– XML-HTTP + WS-Secure<br />
2 x langsamer als XML-HTTP<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 144
OPC & CoDeDys<br />
• OPC-Server<br />
– OPC-DA<br />
• Mehrstufig über<br />
Gatewayprozess<br />
– DRAM (1)<br />
– UDP (2)<br />
• Konfiguration einer<br />
“Symbolkonfiguration”<br />
TU Dresden, 13.10.2009<br />
>> <strong>CoDeSys</strong>:<br />
OPC.project<br />
SPS&KR (c) Urbas 2008-2009 Folie 145
Zusammenfassung<br />
• OPC-UA ist ein offener Middlewarestandard in der AT<br />
– Datenmodellierung<br />
– unterschiedliche Transportwege<br />
– Kooperation mit verschiedenen Initiativen <strong>und</strong> Standards<br />
zur Datenmodellierung (S88/IEC61512, S95/IEC62264,<br />
ECT-EDD/IEC61804, FDT, FDI, Open O&M)<br />
• Umfrage SPS/IPC/Drives 2009<br />
– 20% der Hersteller kennen OPC-UA nicht,<br />
– über 50% der Hersteller planen OPC-UA in den nächsten<br />
beiden Jahren auf den Markt zu bringen.<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 146
Zusammenfassung<br />
• Verschiedene Ansätze zur Standardisierung der SPS-<br />
SPS-Kommunikation<br />
– EN 61131-5 Spezifikation lässt zuviel Freiraum<br />
– EN 61499 Forschung<br />
– OPC “mühsame” horizontale Integration<br />
– OPC UA Zukunftsweisend durch Modellierung<br />
<strong>und</strong> breiten Ansatz<br />
• Zusammenfassung Umfrage SPS/IPC/Drives 2009<br />
– SPS-SPS Kommunikation wird von den meisten<br />
Herstellern (noch?) stiefmütterlich behandelt,<br />
– Ansprechpartner auf Messe sind vielfach nicht informiert.<br />
TU Dresden, 13.10.2009<br />
SPS&KR (c) Urbas 2008-2009 Folie 147
<strong>Fakultät</strong> <strong>Elektrotechnik</strong> <strong>und</strong> <strong>Informationstechnik</strong>, Professur für Prozessleittechnik<br />
Umfrage<br />
SPS/IPC/Drives 2009
Umfrage zur SPS-SPS-Kommunikation<br />
SPS/IPC/Drives 2009<br />
• 26 Hersteller<br />
– ausgewählt durch Eintrag “SPS” bzw. “SPS-Komponenten”<br />
im messago Ausstellerkatalog<br />
• Befragung mittels Fragebogen mit Items zu<br />
• SPS-Programmiermodell<br />
– EN 61131-3<br />
• SPS-SPS-Kommunikation<br />
TU Dresden, 13.10.2009<br />
– EN 61131-5<br />
– EN 61499<br />
– OPC / OPC-UA<br />
SPS&KR (c) Urbas 2008-2009 Folie 149
Programmiermodell nach IEC EN 61131-3<br />
• IEC EN 61131-3 hat sich im SPS-Umfeld<br />
durchgesetzt<br />
– EN 61131 ≠ <strong>CoDeSys</strong><br />
– Anzahl Firmen <strong>CoDeSys</strong> (50%) ≠ Marktanteil !<br />
25<br />
20<br />
15<br />
10<br />
5<br />
0<br />
TU Dresden, 13.10.2009<br />
Seitenfelder hierher ziehen<br />
Engineering mit einem EN 61131-3 konformem<br />
SPS-Modell<br />
Anzahl von Firma<br />
23<br />
2<br />
ja weitgehend<br />
Eng 61131-3<br />
Reihenfelder hierher ziehen<br />
14<br />
12<br />
10<br />
8<br />
6<br />
4<br />
2<br />
0<br />
Seitenfelder hierher ziehen<br />
Einsatz von <strong>CoDeSys</strong> als Engineering<br />
Software<br />
Anzahl von Firma<br />
13 12<br />
<strong>CoDeSys</strong> Eigene SW<br />
<strong>CoDeSys</strong><br />
Reihenfelder hierher ziehen<br />
SPS&KR (c) Urbas 2008-2009 Folie 150
Kommunikationsmodell nach IEC EN 61131-5<br />
• > 70% behaupten EN 61131-5 einzusetzen;<br />
– Ergebnis spiegelt die Marktlage nicht wieder<br />
– <strong>CoDeSys</strong> implementiert diesen Standard nicht<br />
– Der Vertreter eines Marktführers, der den Standard<br />
definitiv implementiert, verneint dies.<br />
Seitenfelder hierher ziehen<br />
EN61131-5 SPS-SPS-<br />
Kommunikation<br />
Anzahl von Firma<br />
TU Dresden, 13.10.2009<br />
Reihenf elder hierher ziehen<br />
EN 61131-5<br />
ja<br />
nein<br />
unbekannt<br />
15<br />
10<br />
5<br />
0<br />
Anzahl von Firma<br />
Seitenfelder hierher ziehen<br />
EN61131-5 SPS-SPS-Kommunikation<br />
ja unbekannt ja nein unbekannt<br />
<strong>CoDeSys</strong> Eigene SW<br />
Ergebnis 10 3 10 1 1<br />
<strong>CoDeSys</strong> EN 61131-5<br />
Reihenfelder hierher ziehen<br />
SPS&KR (c) Urbas 2008-2009 Folie 151
Kommunikationsmodell nach IEC EN 61499<br />
• ~ 30% behaupten EN 61499 einzusetzen;<br />
– Davon verwenden 3/5 <strong>CoDeSys</strong>, das diesen Standard<br />
TU Dresden, 13.10.2009<br />
definitiv nicht implementiert.<br />
• Mehr als 60% kennen diesen<br />
Standard nicht.<br />
Seitenfelder hierher ziehen<br />
Kommunikationsmodell EN<br />
61499<br />
Anzahl von Firma<br />
Reihenf elder hierher ziehen<br />
EN 61499<br />
SPS&KR (c) Urbas 2008-2009 Folie 152<br />
ja<br />
nein<br />
unbekannt
OPC / OPC-UA<br />
• 70% bieten einen OPC-Server an<br />
– ähnlich viele auch einen OPC-Client? Frage? Verständnis?<br />
• Drei Firmen haben OPC-UA Produkte, vier planen<br />
– OPC-UA ist noch nicht ausreichend bekannt!<br />
TU Dresden, 13.10.2009<br />
30<br />
20<br />
10<br />
0<br />
Hat die SPS einen<br />
integrierten OPC-<br />
Client/OPC-Server?<br />
9<br />
15<br />
7<br />
17<br />
nein<br />
ja<br />
OPC-Client OPC-Server<br />
Setzen Sie OPC-UA ein<br />
oder planen Sie bereits<br />
Produkte?<br />
36%<br />
32%<br />
Produkt<br />
Planung<br />
nein<br />
14%<br />
18%<br />
SPS&KR (c) Urbas 2008-2009 Folie 153<br />
k.A.