26.12.2012 Aufrufe

CoDeSys - Fakultät Elektrotechnik und Informationstechnik ...

CoDeSys - Fakultät Elektrotechnik und Informationstechnik ...

CoDeSys - Fakultät Elektrotechnik und Informationstechnik ...

MEHR ANZEIGEN
WENIGER ANZEIGEN

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.

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!