29.04.2014Seite 1 Programmierung nach IEC 61131. 29.04.2014Seite 2 Inhalt Ziele und Inhalte der IEC...

Preview:

Citation preview

04/11/23 Seite 1

Programmierung nach IEC 61131

Programmierung nach IEC 61131

04/11/23 Seite 2

InhaltInhalt

Ziele und Inhalte der IEC 61131 Programmiertools Modelle der IEC 61131 Variablen und Datentypen Programmorganisation

04/11/23 Seite 3

Lernziele IEC 61131 Lernziele IEC 61131

Sie kennen die wesentlichen Ziele und Inhalte und

können sie mit eigenen Worten erläutern Sie die Architektur eines Systemes nach IEC 61131 Sie kennen die 3 Programmorganisationseinheiten

und die Datenorganisation (Uebungsbeispiele) Sie können ein einfaches Beispiel in zwei grafischen

Programmiersprachen einer SPS programmieren

04/11/23 Seite 4

Die Erstellung und Wartung von Programmen von

Anlagensteuerungen sind:

Die Erstellung und Wartung von Programmen von

Anlagensteuerungen sind:

wesentliche Kostenfaktorenschwierige Unsicherheitsfaktoren

04/11/23 Seite 5

Aspekte:Aspekte:

15-30% der Planungskosten zur Programmierung

hohe Folgekosten bei Problemen Anlageschäden verzögerte Inbetriebnahme

04/11/23 Seite 6

Worin unterscheidet sich Steuerungssoftware von 'Bürosoftware'?

Worin unterscheidet sich Steuerungssoftware von 'Bürosoftware'?

Echtzeit oft zeitkritisch kompliziertes Prozessinterface Restart- und Resume-fähig viele zeitlich andauernde Aufgaben kaum Fehlertoleranz hohe Verfügbarkeit viele, aber einfache Funktionen

04/11/23 Seite 7

Variablennamen: Variablennamen:

was ist wahr?was ist wahr?

Name Wert Zahl logisch Bedeutung'Türe_zu' wahr 1 wahr die Türe ist zu

falsch 0 falsch die Türe is nicht zu(beachte: die ist Türeoffen)

04/11/23 Seite 8

Bei Alarmen leider oft:Bei Alarmen leider oft:

Name Wert Zahl logisch Bedeutung

'Not_Aus' falsch 0 wahr Anlage ist/wirdabgestellt

wahr 1 falsch kein Not-Aus, d.h. z.B.Normalbetrieb

04/11/23 Seite 9

WahrheitstabelleWahrheitstabelle

Darstellung von

y:= A und (B oder C)

in Tabellenform:

04/11/23 Seite 10

Beispiel einer Wahrheitstabelle:Beispiel einer Wahrheitstabelle:

Funktion: Werte vonA

Werte vonB

Werte vonC

Ausgang y

y:=A&(B/C) 1 1 1 1

1 1 0 1

1 0 1 1

1 0 0 0

0 1 1 0

0 1 0 0

0 0 1 0

0 0 0 0

04/11/23 Seite 11

ZeitdiagrammeZeitdiagramme

Steuerproblem:

richtige Aktion zur richtigen Zeit auslösen

04/11/23 Seite 12

Beispiel: EinschaltverzögerungBeispiel: Einschaltverzögerung

TON

IN Q

PT ET

Steuersignal (Bool)

Verzögerungszeit (Zeit)

verzögertes Schaltsignal ( Bool)

verstrichene Verzögerunszeit ( Zeit)

04/11/23 Seite 13

Zeitdiagramm:Zeitdiagramm:

PT

ET

Q

IN

04/11/23 Seite 14

Entwicklung der Programmierung von SPS

Entwicklung der Programmierung von SPS

Proprietäre Sprachen und Softwarestrukturen verschiedener Hersteller

Starke Verbreitung einzelner Sprachen durch die Dominanz der Hersteller (Siemens)

Erste internationale Normierungsbestrebungen (Grafcet, DIN 19239 und 2880)

04/11/23 Seite 15

Was ist die IEC 1131?Was ist die IEC 1131?

weltweit einheitliche Norm für die Automation speziell für SPS-Systeme

anerkanntes Werk, da gemeinsam erarbeitet(PLCopen)

Wegweiser für zukünftige Entwicklungen Definition systemunabhängiger Sprachen ein Muss für jemanden der Automation

04/11/23 Seite 16

Entwicklung der IEC 61131Entwicklung der IEC 61131

Gründung der PLCopen 1992 als treibende Kraft der Normierung

Ziele: Anwendung eines internationalen Standards IEC 61131 konforme SPS anbieten und einsetzen Definition von Konformitätskriterien Zusammenfassung der bisherigen Erfahrungen

und Entwicklungen in der IEC 61131

04/11/23 Seite 17

Vorteile für HerstellerVorteile für Hersteller

Gemeinsame Entwicklung von Software (Editoren, Programmiersystem)

Wiederverwendbarkeit bestehender Software durch einheitliche Programmierung

Normgerecht - bedeutet - marktgerecht Integration von Modulen verschiedener

Hersteller

04/11/23 Seite 18

Vorteile AnwenderVorteile Anwender

Einheitliche Programmierung und Planung verschiedener Systeme

Minimierte Ausbildungs- und Einarbeitungs-kosten

Einsatz normgerechter Komponenten bedeutet ein erhöhtes und kalkulierbares Mass an Sicherheit der Anlagen

04/11/23 Seite 19

LogischeEinheit

Wofür IEC 61131Wofür IEC 61131

Für verteilte Automatisierungssysteme

Steuerung

Anwendung

Betriebssystem

Kommuni-kation

Steuerung

Anwendung

Betriebssystem

Kommuni-kation

Prozessgeräte Prozessgeräte

04/11/23 Seite 21

Was enthält die IEC 61131?Was enthält die IEC 61131?Teil 1: Generelle Uebersicht und Definitionen

damit Anwender und Hersteller die gleiche Sprache sprechen.

Teil 2: Hardware (I/O-Signale, Sicherheitsmerkmale, Umgebung)elektrischen, mechanischen und funktionalen Merkmale

Teil 3: Programmiersprachen:Softwaremodell, Syntax und Semantik derProgrammiersprachen und deren Darstellung

Teil 4: Anwender Informationen:Richtlinien für den Anwender, Hilfe bei derLösungserabeitung

Teil 5: Kommunikationsdienste:Kommunikation innerhalb und zwischen den einzelnenKommunikationspartnern einer Applikation

04/11/23 Seite 22

Schwerpunkt Programmierung:Schwerpunkt Programmierung:

Bildung von Programmstrukturen Einführung abgeleiteter Strukturen, d.h.

eigene Datentypen und Steuerbibliotheken SPS-Programmierung grafisch oder wie in

einer Hochsprache Programmierung von SPS-Systemen! (wo

gibt es dies sonst noch ?)

04/11/23 Seite 23

Modelle der IEC 61131:Modelle der IEC 61131:

Softwaremodell - Struktur der Software Kommunikationsmodell - Informationsfluss

zwischen verschiedenen Steuerungen Programmiermodell - Datendarstellung und

Programmiersprachen Hardwaremodell

04/11/23 Seite 24

ProjektverwaltungProjektverwaltung

Projektname

SPS-Parameter (Typ, Speicher)

Globale Variablen

Programme

Funktionsbaustein

Funktion

Task

04/11/23 Seite 25

ProgrammiermodellProgrammiermodell

Variablen und Datentypen Programmorganisationseinheiten

Programme Funktionsbausteine Funktionen

Programmiersprachen

04/11/23 Seite 26

Programmorganisationseinheiten (POE)

Programmorganisationseinheiten (POE)

Funktion Funktionsbaustein Programm

englische Bezeichnung:

POU (Program Organisation Units)

04/11/23 Seite 27

Elemente einer POEElemente einer POE

Deklarationsteil Variablen Formalparameter und Rückgabewerte Externe und interne Variablen

Anweisungsteil Funktion in einer Programmiersprache realisiert

04/11/23 Seite 28

VariablenVariablen

symbolische Namen physikalischer Standort (I/O, Merker) Müssen dort deklariert werden, wo sie

benutzt werden. Variablenart Bezeichner Datentyp Initialisierung

04/11/23 Seite 29

VariablenartVariablenart

var Lokale Variable

var_input Eingangsvariabel einer POE

var_output Ausgangsvariabel einer POE

var_external Externe Varialbe einer POE

var_global Global geltende Variable ineiner Konfiguration

04/11/23 Seite 30

DatentypenDatentypen

elementare bool, int, float, time

strukturierte enum - Aufzähltypen array - Felder structure - Datenstrukturen

04/11/23 Seite 31

Geltungsbereich der Variablen

Geltungsbereich der Variablen

lokal: nur in der Programmeinheit global: in ganzer Ressource oder Konfiguration

(lokal als extern definieren) gültig in den POE in denen sie deklariert sind

und in allen untergeordneten Einheiten (Eine Variable in einem Programm gilt auch in den Funktionsbausteinen die das Programm aufruft)

04/11/23 Seite 32

InitialisierungInitialisierung

Initialisierung übernimmt Wert vor letzten Stop übernimmt anwenderspezifischen Wert übernimmt voreingestellten Wert des Datentyps

Warmstart gepufferte Variablen (RETAIN)

übernehmen letzten Wert andere die definierten

Anfangswerte

Kaltstart alle übernehmen

Anfangswerte

04/11/23 Seite 33

ProgrammiersprachenProgrammiersprachen

graphische Programmiersprachen KOP (Kontaktplan) FBS (Funktionsbausteinsprache) AS (Ablaufsprache )

Textsprachen AWL (Anweisungsliste) ST (Strukturierter Text)

04/11/23 Seite 34

graphische Sprachen vs. Textsprachengraphische Sprachen vs. Textsprachen

einfach, teilweise auch für Laien verständlich

Kommunikation über Programm einfacher

effizienter bei Inbetrieb-nahme und Wartung

keine Nachdoku-mentation nötig

zwingt zu Program-mierdisziplin

effizienter in der Programmierung

kleinere Dokumente in MB

einfacher im Umgang mit komplexen Datenstrukturen

04/11/23 Seite 35

1. Sprache: FBS1. Sprache: FBS

Programmierung mit Funktionen in der Funktions-Bausteinen-Sprache:

Variablen: Signallinien Funktionen: Rechteck mit Funktionsname

und Signalverbindungsstellen Alle Datenverarbeitungselemente werden

als Funktionsblöcke dargestellt

04/11/23 Seite 36

Darstellung in FBSDarstellung in FBS

Programmierung = Netz von FB verbunden mit Signalen

Programmierung = Netz von FB verbunden mit Signalen

>=1OR

R1

S

Q1

&AND Q1

Variablen(Eingang)

Variablen(Ausgang)

Linien

Funktionsblöcke(Funktionen und Funktionsbausteine)

04/11/23 Seite 37

SiloSilo

04/11/23 Seite 38

2. Sprache: KOP2. Sprache: KOP

Programmierung mit Kontaktplandarstellung und Funktionsbausteinen, Sprache:

Variablen: Bezeichnung von Oeffner, Schliesser, Spulen

Funktionen: durch 'Stromverdrahtung' und Funktionsbausteinen

04/11/23 Seite 39

Beispiel KOP - SiloBeispiel KOP - Silo

Kontakte

Spulen

Funktionsblöcke

04/11/23 Seite 40

Elemente:Elemente:

Schalter Bedeutung

Schliesser Der Zustand der linken Verbindung wird aufdie rechte Verbindung kopiert, wenn derZustand der zugehörigen Variablen 'WAHR'ist. Andernfalls ist der Zustand der rechtenVerbindung 'AUS'.

Var-Name

04/11/23 Seite 41

Var-Name

Schalter Bedeutung

Oeffner Der Zustand der linken Verbindung wird aufdie rechte Verbindung kopiert, wenn derZustand der zugehörigen Variablen 'FALSCH'ist. Andernfalls ist der Zustand der rechtenVerbindung 'AUS'.

Elemente:Elemente:

04/11/23 Seite 42

Schalter Bedeutung

Spule Der Zustand der linken Verbindung wird aufdie zugehörige boolesche Variable und dierechte Verbindung kopiert.

Elemente:Elemente:

Var-Name

04/11/23 Seite 43

Schalter Bedeutung

negativeSpule

Der Zustand der linken Vebindung wird auf dierechte Verbindung kopiert. Die Invertierungdes Zustands der linken Verbindung wird aufdie zugehörige boolesche Variable kopiert.

Elemente:Elemente:

Var-Name

04/11/23 Seite 44

Schalter Bedeutung

Setzender Spule

Der Zustand der linken Vebindung wird auf dierechte Verbindung kopiert, wenn er wahr ist.Die boolesche Variable wird wahr gesetzt.

Elemente:Elemente:

Var-Name

S

04/11/23 Seite 45

Schalter Bedeutung

Rück-setzen derSpule

Der Zustand der linken Vebindung wirdnegierend auf die rechte Verbindung kopiert,wenn er wahr ist. Die zugehörige boolescheVariable wird false gesetzt.

Elemente:Elemente:

Var-Name

R

04/11/23 Seite 46

FunktionFunktion

eine oder mehrere Eingangsvariablen werden zu genau einem Ausgangswert berechnet.

Speichern intern keine Daten Liefert bei gleichen Eingangswerten immer das

gleicher Ergebnis

04/11/23 Seite 47

StandardfunktionenStandardfunktionen

vordefinierte Funktionen SPS wird zu einer vollwertigen Rechnereinheit SPS kann auch Texte bearbeiten SPS kann Datentypen konvertieren die meisten aus Informatik bekannt

04/11/23 Seite 48

FunktionsbausteinFunktionsbaustein

aus einer oder mehreren Eingangsvariablen werden mehrere Ausgangsvariablen berechnet

Strukturierungshilfsmittel innerhalb eines Programmes

Kann mehrfach genutzt werden Kann intern Daten speichern und muss

instanziert werden

04/11/23 Seite 49

FB definierenFB definieren

Deklaration

Anweisungen

Ergebnis muss gespeichert werden

04/11/23 Seite 50

FB RS-Flip-FlopFB RS-Flip-Flop

UND-Bausteine können das Resultat direkt aus den Eingängen berechnen

bei RS-Bausteinen hängt es aber noch zusätzlich vom Wert von Q1 ab:

>=1OR

R1

S

Q1

&AND Q1

04/11/23 Seite 51

Konsequenz:Konsequenz:

Baustein muss Variable zwischen zwei Ausführungen abspeichern

Namen gefordert gelöst durch Instanzennamen = gleich Pointer

auf Objekt

04/11/23 Seite 52

Instanz:Instanz:

Die Instanz ist ein individuelles Exemplar einer Datenstruktur, verknüpft mit einem Funktionsbaustein-Typ oder Programm-Typ, das von einem Aufruf der zugehörigen Operation bis zum nächsten erhalten bleibt.

04/11/23 Seite 53

InstanzierungInstanzierung

Deklaration

Anwendung

04/11/23 Seite 54

Zeitgeber: EinschaltverzögerungZeitgeber: EinschaltverzögerungTON

IN Q

PT

BoolBool

Time ET Time

PT

ET

Q

IN

04/11/23 Seite 55

Zeitgeber: AusschaltverzögerungZeitgeber: AusschaltverzögerungTOF

IN Q

PT

BoolBool

Time ET Time

PT

ET

Q

IN

04/11/23 Seite 56

ProgrammProgramm

logische Anordnung von Funktionen und Funktionsbausteinen mit ihren Verknüpfungen

Ausführung eines Programmes kommt durch die Zuordnung in einer Task zum Ausdruck

Kann Funktionen und Funktionsbausteine aufrufen

04/11/23 Seite 57

Ausführung der Programme:

TasksAusführung der Programme:

TasksEin Task fasst innerhalb einer Ressource ein oder mehrere Programme mit gleichem Ausführungs- und Zeitverhalten zusammen. (Wann sollen sie bearbeitet werden)

Wann, bei welchem Ereignis

Wie oft

Wie dringend

04/11/23 Seite 59

Kommunikationsmodell(wird nur gestreift)

Kommunikationsmodell(wird nur gestreift)

Durch Uebergabe der Variablen bei Funktionsaufruf

Kommunikation über globale Variablen Kommunikation über SEND und RECEIVE-

Funktionen Kommunikation über Zugriffspfade

04/11/23 Seite 60

Uebung: SelbsthaltungUebung: Selbsthaltung

• POE einrichten - Programm• Variablen deklarieren• mit Kontaktplan programmieren

04/11/23 Seite 61

Aufgabe:Aufgabe:

wie werden die folgenden Funktionen programmiert (sie sind gegenüber der FBS-Darstellung verschwunden)?

UND ODER

Recommended