Objektorientiertes Programmieren mit SIMOTION :Grundlagen, Programmbeispiele und Softwarekonzepte nach IEC 61131-3

Publication subTitle :Grundlagen, Programmbeispiele und Softwarekonzepte nach IEC 61131-3

Author: Michael Braun  

Publisher: John Wiley & Sons Inc‎

Publication year: 2016

E-ISBN: 9783895789465

P-ISBN(Paperback): 9783895784552

P-ISBN(Hardback):  9783895784552

Subject: N94 Systems Science

Language: GER

Access to resources Favorite

Disclaimer: Any content in publications that violate the sovereignty, the constitution or regulations of the PRC is not accepted or approved by CNPIEC.

Description

Die Tendenz im Maschinenbau hin zu immer flexibleren Losungen fuhrt auch zu Veranderungen bei den Steuerungen. Mit der Zunahme mechatronischer Systeme und modularer Funktionseinheiten ergeben sich hohe Anforderungen an die Software und deren Programmierung. In der Automatisierungstechnik wird daher in den nachsten Jahren der gleiche Wandel stattfinden, der in der PC-Welt bereits erfolgt ist, hin zu besserem und klarerem Softwaredesign, zu einfacher Anderbarkeit und Modularitat. Dafur brauchen wir Objektorientierte Programmierung.
Das Buch richtet sich an alle, die sich mit dieser zukunftsweisenden Entwicklung in der Automatisierungstechnik vertraut machen mochten. Egal ob man angehender Ingenieur, Techniker oder erfahrener Automatisierungstechniker ist: Es hilft, die Objektorientierte Programmierung zu verstehen und anzuwenden.
SIMOTION stellt ab Softwarestand 4.5 die Moglichkeit der Nutzung von OOP entsprechend IEC 61131-3 ED3, der Norm fur speicherprogrammierbare Steuerungen, zur Verfugung. Das Buch unterstutzt den Umgang mit dieser Denk- und Programmierweise und bietet Programmierbeispiele zu verschiedenen objektorientierten Techniken und den dabei wirkenden Mechanismen. Die Beispiele sind aufeinander aufbauend gestaltet, so dass am Ende ein komplettes, verwendbares Maschinenmodul entsteht.

Chapter

Abbildung 6 Kommunikation zwischen Objekten – objektorientiert

Abbildung 7 Kommunikation zwischen Objekten – prozedural

Abbildung 8 Hydraulikaggregat

Abbildung 9 Klasse und Objekt

Abbildung 10 Vererbung bei Klassen

Abbildung 11 Hydraulik mit HMI-Anzeige

Abbildung 12 Ventil-Zylinder-Kombination

Abbildung 13 FB_Valve

Abbildung 14 Beim Funktionsbaustein sind Programm und Daten getrennt

Abbildung 15 Funktionsbausteine müssen kopiert und geändert werden

Abbildung 16 Programmierung des FB Valve43 mit Methoden

Abbildung 17 Weiterentwicklung FB Valve43 extended

Abbildung 18 CLASS im PNV

Abbildung 19 Zugriffsdefinition bei Methoden (Quelle: IEC 61131-3 3ED)

Abbildung 20 Klassen und deren Ableitungen

Abbildung 21 Ableitung und Aufrufprinzip des Zählers

Abbildung 22 Anlage mit 4/3-Wegeventil

Abbildung 23 4/3-Wegeventil mit Eilgang/Schleichgang

Abbildung 24 Interfaces (Quelle: IEC 61131-3 ED3)

Abbildung 25 Interfacedarstellung im PNV

Abbildung 26 Interfaces in Klassen

Abbildung 27 Übersicht Ventil und HMI

Abbildung 28 Interface für Error Reporting

Abbildung 29 Delta-Picker mit zwei Bändern

Abbildung 30 Förderband mit Teilen

Abbildung 31 Produktregister SIMOTION Handling

Abbildung 32 Vorschlag eines Standard-Telegramms für Kameras

Abbildung 33 Interface für Kamera

Abbildung 34 Prinzip der Signalweitergabe in Schichten

Abbildung 35 Interface für Neutralisierung

Abbildung 36 Ventil mit neutraler Peripherie-Anbindung

Abbildung 37 Ventil mit Signalverschaltung

Abbildung 38 Zustandsautomat Ventil

Abbildung 39 Unterschiedliche Antriebe in einer Anlage

Abbildung 40 Klassenmodell CDrive

Abbildung 41 Technologieobjekte in SIMOTION

Abbildung 42 Hierarchie nach ISA-88-01

Abbildung 43 Equipment-Modul Förderband mit Ausschieber

Abbildung 44 Software-Design des Equipment-Moduls

Abbildung 45 Zustände des Equipment-Moduls

Abbildung 46 Funktionen des Projektgenerators easyProject

Abbildung 47 Projektgenerator „easyProject“

Abbildung 48 Oberfläche des Projektgenerators

Abbildung 49 Equipment-Module des Projektgenerators

Abbildung 50 Projekt generieren

Abbildung 51 Struktur der Daten des Projektgenerators

Abbildung 52 Equipment-Modul PusherX

Abbildung 53 Bedienung des Equipment-Moduls

Abbildung 54 Klassen- und Objektdarstellung in UML

Abbildung 55 Zusammenspiel SPS, Technologiebaugruppen und Motion Control

Abbildung 56 Integration SPS, Motion und Technologie

Abbildung 57 Technologische Objekte in SIMOTION

Abbildung 58 Die 3 Hardware-Plattformen von SIMOTION

Abbildung 59 SIMOTION mit Antrieben und Peripherie

Abbildung 60 Unterstützte Kinematiken von SIMOTION

Abbildung 61 Programme und Daten sind in Units organisiert

Abbildung 62 Variablenmodell von SIMOTION

Abbildung 63 Bibliotheken im SIMOTION-Projekt

Abbildung 64 Engineeringsystem SCOUT

Abbildung 65 SCOUT Workbench

Abbildung 66 Projektnavigator

Abbildung 67 Neues Projekt anlegen – Ergebnis

Abbildung 68 Gerät einfügen

Abbildung 69 Eigenschaften – Ethernet Schnittstelle PNxIO

Abbildung 70 PG/PC-Kommunikation einrichten

Abbildung 71 SIMOTION-Gerät einfügen mit HW-Konfig öffnen

Abbildung 72 HW-Konfig mit dem SIMOTION-Gerät

Abbildung 73 Adressliste

Abbildung 74 SCOUT mit eingefügter D435-2

Abbildung 75 Drehzahlachse anlegen

Abbildung 76 Achskonfiguration Achstyp

Abbildung 77 Achskonfiguration – Zusammenfassung

Abbildung 78 Antriebszuordnung zur Achse

Abbildung 79 Achsassistent für Antrieb zuordnen

Abbildung 80 Bahnobjekt einfügen

Abbildung 81 Bahnobjekt im PNV

Abbildung 82 Delta-Picker 3D

Abbildung 83 Programmiersprachen in SCOUT

Abbildung 84 Vergleichsfunktion in SCOUT

Abbildung 85 Programmquellen einfügen

Abbildung 86 ST-Quelle einfügen

Abbildung 87 ST-Editor zur Programmierung

Abbildung 88 Programm für Ablaufsystem

Abbildung 89 Ablaufsystem von SIMOTION

Abbildung 90 Background-Task: Programme zuordnen

Abbildung 91 Status-Anzeigen in SCOUT

Abbildung 92 Status Programm ermöglichen

Abbildung 93 Status-Anzeige des Programms

Abbildung 94 Aufrufkette Methoden

Abbildung 95 Aufrufpfad / Taskauswahl einstellen

Abbildung 96 Prinzip Ablauf Status Programm

Tabelle 1 Schlüsselworte für Klassen

Tabelle 2 Deklaration von Instanzen einer Klasse

Tabelle 3 Schlüsselworte für Interfaces

Tabelle 4 Gegenüberstellung abstrakte Klasse und Interface

Tabelle 5 Vordefinierte Namensräume (Scopes)

1.6 Antriebe werden zu vollwertigen Bus-Teilnehmern

1.7 PLC und PAC – der Unterschied

1.8 Fazit zur bisherigen Entwicklung

2 Grundsätzliches zur objektorientierten Programmierung

2.1 Basis der objektorientierten Programmierung

2.1.1 Geschichte

2.1.2 Was ist anders?

2.1.3 Was bedeutet Objektorientierung?

2.1.4 Objekte und deren Interaktionen

2.2 Allgemeine Prinzipien von OOP

2.2.1 Objekte

2.2.2 Klassen

2.2.3 Vererbung

2.2.4 Überschreibung

2.2.5 Interfaces zur Objekt-Interaktion

2.2.6 Zusammenfassung

2.2.7 Vorteile der Nutzung von OOP

2.2.8 Nachteile der OOP

2.3 Tipps zur Klassenbildung

3 Objektorientierte Programmierung

3.1 Umsetzung von OOP mit SIMOTION

3.2 Funktionsbausteine mit Methoden

3.2.1 Modularisierung ohne OOP-Erweiterungen

3.2.2 Programm und Daten sind getrennt

3.2.3 Weiterentwicklung im Softwarelebenszyklus

3.2.4 Nachteile der Programmierung ohne OOP-Erweiterungen

3.2.5 Erweiterungen zu FBs und deren Zugriffsspezifikation

3.2.6 Nutzung von Methoden zur übersichtlichen Programmierung

3.2.6.1 Beispiel FB mit Methoden

3.2.6.2 Aufrufbeispiel des Funktionsbausteins

3.2.7 Funktionsbaustein mit Methoden zur Kommandierung

3.2.7.1 Beispiel des FB mit Kommando-Methoden

3.2.7.2 Aufrufbeispiel zum FB mit Kommando-Methoden

3.3 Klassen (CLASS)

3.3.1 Unterstützte Schlüsselworte für eine Klasse

3.3.2 Methoden (METHOD)

3.3.3 Methoden und deren Zugriffspezifikation

3.3.4 Deklaration von Klasseninstanzen

3.3.5 Regeln für die Bezeichner in einer Klasse

3.3.6 Verwendung von Klassen-Methoden

3.3.6.1 Beispiel CLASS Counter

3.3.6.2 Nutzung der Methode von CLASS COUNTER

3.3.6.3 Erweiterung von CLASS COUNTER und Nutzung von THIS

3.3.6.4 Nutzung der Methoden UP und DOWN

3.3.7 Klassen und Vererbung

3.3.7.1 Beispiel Ableitung einer Klasse

3.3.7.2 Beispiel zur Nutzung der Basis- und abgeleiteten Klasse

3.3.7.3 Weitere Aspekte zum Methodenaufruf

3.3.7.4 Beispiel von Basis- und abgeleiteter Klasse in einer Funktion

3.3.8 Abstrakte Klassen

3.4 Beispiele zur Nutzung von Ventilen mit OOP

3.4.1 Beispiel mit 4/3-Wegeventil

3.4.1.1 Beispiel für eine Klasse für 4/3-Wegeventile

3.4.1.2 Beispiel für den Aufruf der Ventile

3.4.1.3 Beispiel mit 4/3-Wegeventil mit Eilgang/Schleichgang

3.4.1.4 Beispiel einer abgeleiteten Klasse ValveControl43FS

3.4.1.5 Beispiel für Aufruf der Basisklasse und der erweiterten Klasse

3.4.1.6 Beispiel Aufruf der erweiterten Klasse mit Basisfunktion

3.5 Interfaces

3.5.1 Unterstützte Features

3.5.2 Prinzipien von Interfaces

3.5.2.1 Beispiel zur Deklaration von Interfaces

3.5.3 Repräsentanz der Interfaces im PNV von SCOUT

3.5.4 Nutzen der Interfaces

3.5.5 Interfaces als Verweis auf Klassen

3.5.6 Ventil-Klassen mit Interfaces

3.5.7 Vereinbarung des Interfaces für Ventil

3.5.7.1 Beispiel ValveControl43 mit Endschalterüberwachung

3.5.7.2 Beispiel ValveControl43 mit Error Reporting

3.5.7.3 Beispiel ValveControl43 mit Test-Error-Reporting

3.5.7.4 Beispiel Klasse HMIReporting

3.5.7.5 Beispiel ValveControl43 mit Error Reporting

3.5.8 Interface für die Neutralisierung von Peripherie-Komponenten

3.5.8.1 Anbindung von Kameras an die Steuerung

3.5.8.2 Interface-Definition für eine Kamera-Anbindung

3.5.9 Interface für neutrale Peripherie-Anbindung (reduziert)

3.5.9.1 Interface-Definition für neutrale Peripherie-Anbindung

3.5.9.2 Implementierung in Klassen

3.5.9.3 Programm der Interface-Definition und Mapping-Tabelle

3.5.9.4 Programm der Klassenimplementierung und Verwendung

3.5.9.5 Interface für Eilgang-Schleichgang-Umschaltung

3.5.9.6 Klassenimplementierung für Eilgang-Schleichgang

3.6 Weitere Optimierungen in der Klasse Ventil

3.6.1 Bisherige Realisierung von ValveControl

3.6.2 Aufbau eines Zustandsautomaten

3.6.2.1 Beispiel ValveControl43ST – Zustandsautomat über Case

3.6.2.2 Beispiel ValveControl43ST – Zustandsautomat mit Klassen

3.7 Abstrakte Klasse für unterschiedliche Antriebe

3.7.1 Funktionelle Unterschiede der jeweiligen Antriebslösungen

3.7.2 Klassenmodell zur Anbindung unterschiedlicher Antriebe

3.7.2.1 Beispiel Abstrakte Klasse „CDrive“

3.7.2.2 Beispiel Klasse der direkt einschaltbaren Antriebe

3.7.2.3 Beispiel Klasse der Stern-Dreieck-geschalteten Antriebe

3.7.2.4 Beispiel Klasse der drehzahlgeregelten Antriebe

3.7.2.5 Beispiel Ansteuerung der unterschiedlichen Antriebe

3.8 Abstrakte Klasse versus Interface

3.9 OOP öffnet die Welt der Entwurfsmuster

4 OOP unterstützt modulare ­Software-Konzepte

4.1 Zusammenbau von Projekten für reale Maschinen

4.1.1 Modulgestaltung

4.1.2 Die Rolle der Software-Entwickler

4.1.3 Software modularisieren

4.1.3.1 Equipment-Module erstellen

4.1.3.2 Software-Design des Equipment-Moduls

4.1.3.3 Beispiel für die Klasse „CEMPusher“

4.1.3.4 Beispiel für den Aufruf des Equipment-Moduls

4.1.4 Vorbereitung zur mehrfachen Wiederverwendung

4.1.4.1 Beispiel des neutralisierten Equipment-Moduls

4.2 Projektgenerator SIMOTION easyProject

4.2.1 Erweiterung des Projektgenerators um eigene Module

4.2.2 Bedienung für den Projektgenerator erstellen

4.2.3 XML-Beschreibung des Equipment-Moduls

5 Hinweise zum Design und der ­Entwicklung von Software

5.1 Ermittlung der Anforderungen

5.1.1 Aufsetzpunkt Bedienoberflächen

5.1.2 Aufsetzpunkt Prozessabläufe

5.1.3 Aufsetzpunkt Elemente des Maschinenbaus

5.1.4 Bestehende Lösungen

5.2 Objektorientiertes Design

5.2.1 Kapselung

5.2.2 Verantwortung einer Klasse

5.2.3 Gemeinsamkeiten und Unterschiede von Objekten

5.2.4 Prinzip der Ersetzbarkeit bei Ableitungen

5.2.5 Ermittlung der Beziehungen

5.2.6 SOLID-Prinzipien

5.3 Wiederverwendbare und leicht wartbare Software

5.3.1 Wie ist Wiederverwendbarkeit erreichbar?

5.3.2 Bibliotheken helfen

5.3.3 Wie sind Module zu entwickeln?

5.4 Organisatorische und rechtliche Aspekte

5.4.1 Umstellung muss geplant werden

5.4.2 Software muss geplant werden

5.4.2.1 Analyse der bestehenden Programme

5.4.2.2 Wiederverwendung von Software

5.4.3 Wiederverwendung und Eigentum der Software

5.4.3.1 Weitergabe von Software

5.4.3.2 Übernahme von Software

5.4.4 „Gute Software“ und objektorientiertes Design

5.5 Softwaretests sind ein Muss!

5.5.1 Modultest

5.5.2 Integrationstest

5.5.3 Systemtest

5.5.4 Abnahmetest

6 Ergänzende Themen zur ­Softwarestrukturierung

6.1 I/O-Referenzen

6.1.1 Deklaration

6.1.2 Bindung der Referenzen an I/O-Variablen

6.2 Namensräume

6.3 Allgemeine Referenzen

6.3.1 Deklaration und Initialisierung

6.3.2 Arbeiten mit Referenzen

7 Referenz zu Erweiterungen von SIMOTION

7.1 Allgemeine Erweiterungen des Programmiermodells

7.2 Klassen in SIMOTION

7.2.1 Konstanten und anwenderdefinierte Datentypen in Klassen

7.2.2 Benennung von Variablen in Klassen und Methoden

7.2.3 Methodenaufrufe

7.2.4 FINAL bei Methoden und Klassen

7.2.5 Deklaration von abstrakten Klassen und Methoden

7.2.6 Interface-Implementierung und Klassen-Ableitungen

7.2.7 Typumwandlungen bei Klassen und Interfaces

7.3 Instanziierung von Klassen und Funktions­bausteinen

7.3.1 Anwenderdefinierte Initialisierung von Instanzen

7.3.2 Vorbelegung von Interface-Variablen

7.3.3 Anlegen von Klassen- und Funktionsbausteininstanzen

7.3.4 RETAIN-Daten in Klassen und Funktionsbausteinen

7.3.5 Arrays variabler Länge

7.4 Tipps für kompatible und effiziente Software

7.4.1 Methoden- und Funktionsaufrufe

7.4.2 Verwendung von Enum-Werten und Konstanten

7.4.3 Nutzung vordefinierter Namensräume

7.4.4 Deklaration von Datentypen, Variablen und Methoden

7.4.5 Aufbereitung von strukturierten Daten zur Datenübertragung

8 Einführung in SIMOTION

8.1 Klassische Entwicklung von Steuerungssystemen

8.2 Neue Steuerungskonzepte erforderlich

8.3 Technologische Objekte in SIMOTION

8.4 Drei Hardware-Plattformen

8.5 Anbindung von Antrieben und Peripherie an SIMOTION

8.6 Handling-Kinematiken in SIMOTION

8.7 Das Programmiermodell von SIMOTION

8.7.1 Die Units von SIMOTION

8.7.2 Variablenmodell in SIMOTION

8.7.3 Bibliotheken in SIMOTION

8.8 Das Engineeringsystem SIMOTION SCOUT

8.9 Komponenten von SCOUT

8.9.1 Der Projektnavigator von SCOUT

8.9.2 Neues Projekt anlegen

8.9.3 Neues Gerät anlegen

8.9.4 Hardware-Konfiguration

8.9.5 Adressliste von SIMOTION

8.9.6 Achsen anlegen

8.9.7 Antriebe anlegen

8.9.8 Bahnobjekte anlegen

8.9.9 Spracheditoren in SCOUT

8.9.10 Unterstützung der Programmiersprachen

8.9.11 Programmqellen (Units) einfügen

8.9.12 Programme eingeben

8.9.13 Programme dem Ablaufsystem zuordnen

8.9.14 Integrierte Testfunktionen

8.9.15 Testen mit Status Programm

Hinweis zur Nutzung der ­Beispiel­programme

Stichwortverzeichnis

Weitere Bücher von Publicis Publishing

The users who browse this book also browse


No browse record.