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 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 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.3 Was bedeutet Objektorientierung?
2.1.4 Objekte und deren Interaktionen
2.2 Allgemeine Prinzipien von OOP
2.2.5 Interfaces zur Objekt-Interaktion
2.2.7 Vorteile der Nutzung von 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.1 Unterstützte Schlüsselworte für eine Klasse
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.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.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.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.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.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!
6 Ergänzende Themen zur Softwarestrukturierung
6.1.2 Bindung der Referenzen an I/O-Variablen
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.1 Konstanten und anwenderdefinierte Datentypen in Klassen
7.2.2 Benennung von Variablen in Klassen und Methoden
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 Funktionsbausteinen
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.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.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 Beispielprogramme
Weitere Bücher von Publicis Publishing