plc designer v3 -...

186
L Ä.Mw~ä 13448693 PLC Designer Engineering Tools Application Template _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Softwarehandbuch DE

Upload: others

Post on 01-Nov-2019

22 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

L

Ä.Mw~ä

1344

8693

PLC Designer

Engineering Tools

Application Template _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Softwarehandbuch DE

Page 2: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Inhalt

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Inhalt

1 Über diese Dokumentation. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8

1.1 Dokumenthistorie. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10

1.2 Verwendete Konventionen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11

1.3 Verwendete Hinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12

1.4 Verwendete Begriffe (geordnet nach der Reihenfolge in der Geräte-Ansicht) . . . . . . . 13

2 Sicherheitshinweise . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 14

3 Voraussetzungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.1 Systemvoraussetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

3.2 Kommunikation zum Controller einrichten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15

4 Was ist das ApplicationTemplate? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.1 Ziel des ApplicationTemplates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

4.2 Eigenschaften des ApplicationTemplates im Überblick . . . . . . . . . . . . . . . . . . . . . . . . . . . . 18

4.3 Elemente des ApplicationTemplates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

4.3.1 Maschinenmodulbaum (MachineModuleTree - MMT) . . . . . . . . . . . . . . . . . . . . . 19

4.3.2 Maschinenmodule (MM) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 20

4.3.3 Adressierung der Maschinenmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.3.4 Modulapplikation (MAP) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 21

4.3.5 Kommunikation zwischen den Maschinenmodulen . . . . . . . . . . . . . . . . . . . . . . . 22

4.3.6 Statemachine (Zustandsmaschine) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 23

4.3.7 Errorhandling (Fehlerbehandlung) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 24

5 Das Automationssystem strukturieren: Prinzipielle Vorgehensweise. . . . . . . . . . . . . . . . . . . . 25

5.1 Das Automationssystem modularisieren - Vorgehensweise. . . . . . . . . . . . . . . . . . . . . . . . 27

5.2 Strukturieren innerhalb eines Maschinenmoduls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.2.1 MAP-Teilfunktion einzelnen Tasks zuordnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 28

5.2.2 Programmier-Empfehlungen zum Strukturieren. . . . . . . . . . . . . . . . . . . . . . . . . . . 29

6 Übersicht - Die Struktur des ApplicationTemplates. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

7 Das ApplicationTemplate öffnen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33

7.1 Neues Projekt erstellen - ApplicationTemplate öffnen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34

7.2 Controller im Projekt aktualisieren (optional) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35

7.3 Online gehen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

7.3.1 Projektdaten übersetzen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

7.3.2 Projekt in die Steuerung übertragen - "Einloggen" . . . . . . . . . . . . . . . . . . . . . . . . . 36

7.4 PLC-Programm laden und starten . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 36

7.5 Erste Schritte - Das ApplicationTemplate bedienen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 37

7.6 Visualisierung der Maschinenmodule . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39

2 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

Page 3: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Inhalt

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8 Arbeiten mit dem ApplicationTemplate. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 41

8.1 Realen Maschinenaufbau im »PLC Designer« abbilden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

8.1.1 Geräte anhängen - Bussystem EtherCAT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42

8.1.2 Geräte anhängen - Bussystem CANopen (optional) . . . . . . . . . . . . . . . . . . . . . . . . 45

8.2 Eigene Maschinenmodule erstellen: MM_EmptyModul kopieren/einfügen. . . . . . . . . 53

8.3 Instanzen von Maschinenmodulen erzeugen: Create MM Instance. . . . . . . . . . . . . . . . . 54

8.4 Erstelltes Maschinenmodul in den MMT einbinden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 56

8.5 Zuordnen der Modulapplikation (MAP) zur Task. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 57

8.6 Instanzen eines Maschinenmoduls entfernen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

8.7 Maschinenmodule entfernen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

8.8 Modulkennung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 59

8.9 Achse einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 61

8.10 I/O-Module des I/O-System 1000 mit einem Maschinenmodul einbinden . . . . . . . . . . 63

8.11 Modulapplikationen erstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 65

8.11.1 Funktion des eingefügten Modulapplikation anpassen - Übersicht . . . . . . . . . 66

8.11.2 Häufig gestellte Frage: Zusammenhang zwischen MFB und MAP. . . . . . . . . . . 67

8.11.3 Innerhalb der Modulapplikation programmieren . . . . . . . . . . . . . . . . . . . . . . . . . . 68

8.11.4 Modulapplikation einbinden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 69

8.12 Online Change . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 71

8.12.1 Wann ein "Online Change" im ApplicationTemplate möglich ist . . . . . . . . . . . . 71

8.12.2 Wann ein "Online Change" nicht möglich ist . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72

8.12.3 Allgemeine Programmier-Empfehlungen, die ein "Online Change" ermöglichen 72

9 Architektur: Das ApplicationTemplate im Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

9.1 Auf Strukturvariablen von Maschinenmodulen zugreifen. . . . . . . . . . . . . . . . . . . . . . . . . . 74

9.1.1 Auf moduleigene Strukturvariablen zugreifen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74

9.1.2 Auf Strukturen von anderen Maschinenmodulen zugreifen . . . . . . . . . . . . . . . . 75

9.2 Die Struktur AppChannelData (ACD) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

9.2.1 ACD-Struktur im MFB deklarieren/registrieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76

9.2.2 Auf die ACD-Struktur zugreifen - Mit der Modulapplikation des MFB . . . . . . . 77

9.2.3 Auf eine ACD-Struktur zugreifen - Mit der Modulapplikation des MFB-Master-Moduls. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 78

9.3 Statemachine (Zustandsmaschine). . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80

9.3.1 Zustandsübergänge und Bedingungen - Übersicht. . . . . . . . . . . . . . . . . . . . . . . . . 80

9.3.2 Ausgangszustand der Zustandsübergänge . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81

9.3.3 Die Zustandsübergänge im Detail . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82

9.3.4 Abbildung der Stati/Zustände - Enum L_EATP_SMStates. . . . . . . . . . . . . . . . . . . 85

9.3.5 Stati aktivieren - Methode baseChannelSetNominalState . . . . . . . . . . . . . . . . . . 85

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 3

Page 4: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Inhalt

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.4 Standardkopplung ("DefaultCoupling") . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86

9.4.1 Standardmechanismen des ApplicationTemplates. . . . . . . . . . . . . . . . . . . . . . . . . 86

9.4.2 Die Funktion "DisableDefaultCouplingMaster" . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88

9.4.3 Die Funktion "DisableDefaultCouplingSlave" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89

9.5 Statusübergänge beeinflussen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 91

9.6 Status der Zustandsmaschine anzeigen - FB L_EATP_SMAccess . . . . . . . . . . . . . . . . . . . . 92

9.7 Zustandsmaschine: Abfragebeispiele. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93

9.8 Wo ist das Verhalten eines Maschinenmoduls programmierbar?. . . . . . . . . . . . . . . . . . . 94

9.8.1 Zustandsübergang (State-Entry/State-Exit) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95

9.9 Errorhandling (Fehlerbehandlung) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

9.9.1 Fehler definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96

9.9.2 Fehlerreaktion konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

9.9.3 Fehler quittieren. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97

9.9.4 Fehler quittieren: Reaktion im Maschinenmodul . . . . . . . . . . . . . . . . . . . . . . . . . . 98

9.9.5 Fehler auslösen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99

9.9.6 Zentrales Errorhandling im ApplicationTemplate: Error List . . . . . . . . . . . . . . . . 100

9.9.7 Übersicht Systemfehlermeldungen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 101

9.9.8 Fehler-Übersicht von allen Maschinenmodulen exportieren: CSV-Datei . . . . . 102

9.10 Logbuch . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103

9.11 Moduldiagnose . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105

9.12 Multitasking . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106

9.13 Konsistente Datenübertragung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 107

9.14 Internal Control . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 109

9.14.1 Internal Control beenden . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

9.14.2 Was bewirkt das Internal Control? . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 110

10 Visualisieren im ApplicationTemplate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

10.1 Die Visualisierung erweitern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 112

10.2 Eigenschaften von Schaltflächen definieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 114

10.3 Eine Visualisierung hinzufügen: Prinzipielle Vorgehensweise . . . . . . . . . . . . . . . . . . . . . . 115

11 Die Bibliothek L_EATP_ApplicationTemplate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 118

11.1 Automatisch generierte Funktionen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 119

11.1.1 GetBooleanProperty (automatisch generiert vom »PLC Designer«) . . . . . . . . . 119

11.1.2 GetCompany (automatisch generiert vom »PLC Designer«) . . . . . . . . . . . . . . . . 120

11.1.3 GetNumberProperty (automatisch generiert vom »PLC Designer«) . . . . . . . . . 120

11.1.4 GetTextProperty (automatisch generiert vom »PLC Designer«). . . . . . . . . . . . . 121

11.1.5 GetTitle (automatisch generiert vom »PLC Designer«) . . . . . . . . . . . . . . . . . . . . . 121

11.1.6 GetVersion (automatisch generiert vom »PLC Designer«) . . . . . . . . . . . . . . . . . . 122

11.1.7 GetVersionProperty (automatisch generiert vom »PLC Designer«). . . . . . . . . . 122

4 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

Page 5: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Inhalt

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2 1_POUs - Program Organization Units. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

11.2.1 L_EATP_Application . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 123

11.2.2 L_EATP_CriticalSection. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 125

11.2.3 L_EATP_ErrorListHandler . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 126

11.2.4 L_EATP_ErrorSet . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 127

11.2.4.1 Fehlerbehandlung (ErrorHandling) anpassen . . . . . . . . . . . . . . . . . . . . 128

11.2.4.2 Fehler quittieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 128

11.2.5 L_EATP_Module . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

11.2.5.1 Base() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 129

11.2.6 RegisterACD() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

11.2.7 setCompIDAndVersion() . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 130

11.2.8 L_EATP_ModuleDiag. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 131

11.2.9 L_EATP_ModuleErrorHandler. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 132

11.2.10 L_EATP_ModulRelations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 133

11.2.11 L_EATP_SMAccess . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 134

11.3 2_Structs_Types . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

11.3.1 L_EATP_ACD_Base (ACD-Struktur) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 135

11.3.2 L_EATP_BaseChannel . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

11.3.3 L_EATP_ErrorList. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

11.3.4 L_EATP_ErrorListEntry . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 136

11.3.5 L_EATP_MMD_Base (MMD-Struktur) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 137

11.3.6 L_EATP_MM_Address. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

11.3.7 L_EATP_MVis. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

11.3.8 L_EATP_scBase . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

11.4 3_Enums . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

11.4.1 L_EATP_ErrorReactionType . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 138

11.4.2 L_EATP_SMStates . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 139

12 Ein Automationssystem strukturieren: Beispiel Fliegende Säge. . . . . . . . . . . . . . . . . . . . . . . . . 140

12.1 Vorbereiten: Das Automationssystem in Teilfunktionen aufteilen . . . . . . . . . . . . . . . . . 140

12.1.1 Teilfunktionen des Maschinenaufbaus identifizieren . . . . . . . . . . . . . . . . . . . . . . 141

12.1.2 Teilfunktionen des Maschinenaufbaus als Maschinenmodule abbilden . . . . . 141

12.1.3 Maschinenmodule als Baumstruktur darstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . 141

12.2 Realen Maschinenaufbau im »PLC Designer« abbilden . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

12.2.1 Geräteaufbau: Master und Slaves anhängen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 142

12.2.2 Zykluszeit einstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 5

Page 6: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Inhalt

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.3 Maschinenmodule erstellen und einbinden. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

12.3.1 Maschinenmodule erstellen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 143

12.3.2 Maschinenmodule in den Maschinenstrukturbaum einbinden . . . . . . . . . . . . . 145

12.3.3 Modulapplikationen der Maschinenmodule verwalten . . . . . . . . . . . . . . . . . . . . 146

12.3.4 Achse in die Modulapplikation einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 147

12.3.5 Modulapplikation den Tasks zuordnen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 148

12.4 Kommunikation zwischen den Master- und Slave-Modulen einrichten . . . . . . . . . . . . . 149

12.5 Anwendungsbeispiel: Die Visualisierung erweitern . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 150

12.6 Statemachine/Zustandsmaschine. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 153

12.6.1 Zustandsübergang im Maschinensteuermodul steuern . . . . . . . . . . . . . . . . . . . . 153

12.6.2 Zustandsübergänge in den Slave-Modulen steuern . . . . . . . . . . . . . . . . . . . . . . . . 155

12.7 Handfahren der Achsen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 156

12.8 Errorhandling: Fehlerverhalten konfigurieren . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 157

13 Das Beispielprojekt "ApplicationTemplateCounter" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 161

13.1 Beispielprogramme im Maschinenmodul MM_Module1/MM_Module2 . . . . . . . . . . . 162

13.1.1 Zustand "Automatic" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 162

13.1.2 Zustand "Mode1" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

13.1.3 Zustand "Mode2" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

13.1.4 Zustand "Service" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 163

13.1.5 Zustand "Fault"/"Systemfault" . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

13.2 Beispielprogramm Maschinenmodul MM_Machine . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 164

13.3 Simulation im ApplicationTemplateCounter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 165

6 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

Page 7: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Inhalt

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14 Anhang . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

14.1 Methoden-Übersicht - ApplicationTemplate . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 166

14.1.1 Auf die Zustandsmaschine zugreifen - Die Methoden des BaseChannels . . . . 166

14.1.2 Moduleigene Zustandsübergange sperren/freigeben . . . . . . . . . . . . . . . . . . . . . . 168

14.1.3 Quickstop/Schnellhalt-Verhalten der Statemachine aktivieren/deaktivieren 168

14.1.4 Standardkopplung ("DefaultCoupling") aktivieren/deaktivieren . . . . . . . . . . . . 169

14.2 Tipps&Tricks . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

14.2.1 Ein Maschinenmodul umbenennen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 169

14.2.2 Weiteres Vorgehen: Schaltflächen der Visualisierung umbenennen . . . . . . . . 171

14.2.3 Rezepturverwalter . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 172

14.2.4 Voraussetzung . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

14.2.5 Rezepturdefinition erstellen. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 173

14.2.6 Rezepturdefinition - Variablen zuweisen . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 174

14.2.7 Rezepturen in eine Rezepturdefinition einfügen . . . . . . . . . . . . . . . . . . . . . . . . . . . 175

14.2.8 Rezepturen verwalten mit RecipeManCommands . . . . . . . . . . . . . . . . . . . . . . . . . 176

14.2.8.1 Create Recipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 176

14.2.8.2 ReadAndSaveRecipeAs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 177

14.2.8.3 LoadFromAndWriteRecipe. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 178

14.2.8.4 WriteRecipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 179

14.2.8.5 ReadRecipe . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 180

14.2.8.6 GetRecipeCount . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 181 182

Ihre Meinung ist uns wichtig . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 185

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 7

Page 8: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Über diese Dokumentation

8 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

1 Über diese Dokumentation

Diese Dokumentation beschreibt die Funktionsweise der Lenze-Applikationsvorlage "Application-Template", um auf Basis dieser Vorlage anschließend ein Lenze-Automationssystems programmie-ren zu können. Das verwendete Automationssystem besteht aus einer PLC für das System"Controller-based Automation" und über das Bussystem angeschlossene Antriebskomponenten.

Tipp!

Aktuelle Informationen zu Lenze-Produkten finden Sie im Download-Bereich unter: http://www.Lenze.com

Das vorliegende Handbuch ordnet sich in die Handbuchsammlung "Controller-based Automation"ein. Die Handbuchsammlung besteht aus folgenden Dokumentationen:

Lesen Sie zuerst die dem Antriebsregler beiliegende Montageanleitung, bevor Sie mit den Arbeiten beginnen!

Die Montageanleitung enthält Sicherheitshinweise, die zu beachten sind!

Hinweis!

Diese Dokumentation ergänzt die Onlinehilfe zum »PLC Designer«.

Dokumentation/Kürzel Thema

Systemhandbücher (SHB) • "Controller-based Automation"• Visualisieren

Kommunikationshandbücher (KHB)

• "Controller-based Automation" EtherCAT®• "Controller-based Automation" CANopen®• "Controller-based Automation" PROFIBUS®

Softwarehandbücher (SW) • Controller• »PLC Designer«• »Engineer«• »VisiWinNET® Smart«• »Backup & Restore«

Informationen zum Einsatz des Controllers außerhalb der "Controller-based Automati-on" finden Sie in den auf den Anwendungsfall zugeschnittenen Systemhandbüchern.

Page 9: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 9

Über diese Dokumentation

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Weitere Technische Dokumentationen zu Lenze-Produkten

Weitere Informationen zu Lenze-Produkten, die in Verbindung mit der Controller-basedAutomation verwendbar sind, finden Sie in folgenden Dokumentationen:

Zielgruppe

Diese Dokumentation richtet sich an alle Personen, die ein Lenze-Automationssystem auf Basis derLenze-Applikationsvorlage "ApplicationTemplate" im Rahmen der "Controller-based Automation"projektieren, in Betrieb nehmen und programmieren.

Bildschirmfotos (Screenshots)/Anwendungsbeispiele

Alle Bildschirmfotos (Screenshots) in dieser Dokumentation sind exemplarische Anwendungsbei-spiele. Je nach Firmware-Version der Lenze-Geräte und Software-Version der installierten Enginee-ring-Tools (hier: »PLC Designer«) kann die Darstellung von der tatsächlichen Bildschirm-Darstellungabweichen.

Montieren & Verdrahten Symbole:

MAs Controller Gedruckte Dokumentation

MA Servo-Inverter i700 Onlinehilfe/PDF-Datei

MAs Servo Drives 9400

MAs Inverter Drives 8400 Kürzel:

MA I/O-System 1000 (EPM-Sxxx) BA Betriebsanleitung

MAs Kommunikationskarten (MC-xxx) KHB Kommunikationshandbuch

MAs Kommunikationsmodule MA Montageanleitung

SW Softwarehandbuch

Parametrieren, Konfigurieren, in Betrieb nehmen SHB Systemhandbuch

SW Controller

SW Servo-Inverter i700

SW Servo Drive 9400 HighLine/PLC/Versorgungs- und Rückspeisemodul

Inbetriebnahme-Leitfaden 9400 HighLine

SW Inverter Drive 8400StateLine/HighLine/TopLine

SHB I/O-System 1000 (EPM-Sxxx)

BAs Servosystem ECS (ECSxE, ECSxM)

KHBs Kommunikationsmodule

Programmieren

SW Funktionsbibliothek 9400

Wiederverwenden

SW Application Sample i700

SW Application Samples

SW ApplicationTemplate

Page 10: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Über diese DokumentationDokumenthistorie

10 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Informationen zur Gültigkeit

Die Informationen in dieser Dokumentation sind gültig für folgende Lenze-Software:

Gültig für folgende Lenze-Vorlagen:

• Beispielprojekt "ApplicationTemplate Counter": L_ApplicationTemplateCounter

• Applikations-Vorlage "Application Template": L_ApplicationTemplate

1.1 Dokumenthistorie

Software ab Softwarestand

»PLC Designer« 3.5

Version Beschreibung

1.0 04/2012 TD11 Erstausgabe

1.1 07/2012 TD11 Aktualisiert zu M5 des ApplicationTemplate• Allgemeine Korrektur• Anpassung an VISU-Layout gemäß Lenze Programmier-Styleguide für FBs.

1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2• Neu: Beispielprojekt ApplicationTemplateCounter (Lenze-Standard)

1.3 04/2013 TD11 Aktualisiert zu »PLC Designer« V3.5• Softwareupdate von ApplicationTemplateCounter/ApplicationTemplate.• Neu: Anwendungsbeispiel "Fliegende Säge".

1.4 10/2013 TD11 Aktualisiert zu »PLC Designer« V3.6• Optimierungen aus Usability-Tests (User group) eingearbeitet.• Systemfehlermeldungen ergänzt.• Struktur L_EATP_MMD_Base ergänzt.• Befehl "Create MM Instance" ergänzt.

Page 11: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 11

Über diese DokumentationVerwendete Konventionen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

1.2 Verwendete Konventionen

Diese Dokumentation verwendet folgende Konventionen zur Unterscheidung verschiedener Artenvon Information:

Informationsart Auszeichnung Beispiele/Hinweise

Zahlenschreibweise

Dezimaltrennzeichen Punkt Es wird generell der Dezimalpunkt verwendet.Zum Beispiel: 1234.56

Textauszeichnung

Versionsinfo Textfarbe blau Alle Informationen, die nur für oder ab einem bestimmten Softwarestand des Antriebsreglers gelten, sind in dieser Do-kumentation entsprechend gekennzeichnet.Beispiel: Diese Funktionserweiterung ist ab dem Software-stand V3.0 verfügbar!

Programmname » « »PLC Designer«...

Fensterbereich kursiv Das Meldungsfenster... / Das Dialogfeld Optionen...

Variablenbezeichner Durch Setzen von bEnable auf TRUE...

Steuerelement fett Die Schaltfläche OK... / Der Befehl Kopieren... / Die Register-karte Eigenschaften... / Das Eingabefeld Name...

Folge von Menübefehlen Sind zum Ausführen einer Funktion mehrere Befehle nachei-nander erforderlich, sind die einzelnen Befehle durch einen Pfeil voneinander getrennt: Wählen Sie den Befehl DateiÖffnen, um...

Tastaturbefehl <fett> Mit <F1> rufen Sie die Onlinehilfe auf.

Ist für einen Befehl eine Tastenkombination erforderlich, ist zwischen den Tastenbezeichnern ein "+" gesetzt: Mit <Shift>+<ESC>...

Hyperlink unterstrichen Verweis auf weiterführenden Informationen: Hyperlink zu weiterführenden Informationen.

Symbole

Seitenverweis ( 11) Verweis auf weiterführenden Informationen: Seitenzahl in PDF-Datei.

Schrittweise Anleitung Schrittweise Anleitungen sind durch ein Piktogramm ge-kennzeichnet.

Page 12: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Über diese DokumentationVerwendete Hinweise

12 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

1.3 Verwendete Hinweise

Um auf Gefahren und wichtige Informationen hinzuweisen, werden in dieser Dokumentation fol-gende Signalwörter und Symbole verwendet:

Sicherheitshinweise

Aufbau der Sicherheitshinweise:

Anwendungshinweise

Piktogramm und Signalwort!

(kennzeichnen die Art und die Schwere der Gefahr)

Hinweistext

(beschreibt die Gefahr und gibt Hinweise zur Abhilfe.)

Piktogramm Signalwort Bedeutung

Gefahr! Gefahr von Personenschäden durch elektrische SpannungHinweis auf eine unmittelbar drohende Gefahr, die den Tod oder schwere Verletzungen zur Folge haben kann, wenn nicht die entsprechenden Maß-nahmen getroffen werden.

Gefahr! Gefahr von Personenschäden durch eine allgemeine GefahrenquelleHinweis auf eine unmittelbar drohende Gefahr, die den Tod oder schwere Verletzungen zur Folge haben kann, wenn nicht die entsprechenden Maß-nahmen getroffen werden.

Stop! Gefahr von SachschädenHinweis auf eine mögliche Gefahr, die Sachschäden zur Folge haben kann, wenn nicht die entsprechenden Maßnahmen getroffen werden.

Piktogramm Signalwort Bedeutung

Hinweis! Wichtiger Hinweis für die störungsfreie Funktion

Tipp! Nützlicher Tipp für die einfache Handhabung

Verweis auf andere Dokumentation

Page 13: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 13

Über diese DokumentationVerwendete Begriffe (geordnet nach der Reihenfolge in der Geräte-Ansicht)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

1.4 Verwendete Begriffe (geordnet nach der Reihenfolge in der Geräte-Ansicht)

Begriff/Abkürzung Position in der Geräte-Ansicht Funktion

MaschinenmodulbaumMMT A10_MachineModuleTree

Der Maschinenmodulbaum "MachineModuleTree" (MMT) bildet die Struktur des Automationssys-tems in Form von Maschinenmodulen ab.

• Im "MachineModulTree" sind alle für die Ma-schine erforderlichen Maschinenmodule ent-sprechend des mechtronischen Zusammenwirkens hierarchisch verschaltet.

ModuleApplicationCalls MAC A11_ModuleAppCalls

Innerhalb der "ModuleApplicationCalls" sind die Modulapplikationen der entsprechenden Task zu-zuordnen.

• Dadurch ist definiert, welche Modulapplikation in welcher Task abzuarbeiten ist.

MaschinenmodulMM A70_MachineModuleSources

Ein Maschinenmodul bildet eine Einheit des realen Maschinenaufbaus im »PLC Designer« ab.

• Das Maschinenmodul ist Bestandteil des Ma-schinenModulTree(MMT), in dem die einzelnen Maschinenmodule miteinander verschaltet sind.

Maschinenmodulappli-kationMAP

Die Maschinenmodulapplikation stellt die Funktio-nalität eines Maschinenmoduls bereit.

• Ein Maschinenmodul kann eine oder mehrere Maschinenmodulapplikationen enthalten.

Maschinenfunktionsbau-steinMFB

Der MaschinenFunktionsBaustein repräsentiert das Machinenmodul im Maschinenmodulbaum/MachineModuleTree (MMT).

Page 14: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Sicherheitshinweise

14 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2 Sicherheitshinweise

Beachten Sie die folgenden Sicherheitshinweise, wenn Sie mit einen Antriebsregler bzw. eineAnlage in Betrieb nehmen möchten.

Lesen Sie die zum Antriebsregler bzw. zu den einzelnen Komponenten der Anlage mitgelieferte Dokumentation sorgfältig durch, bevor Sie mit der Inbetriebnahme der Geräte beginnen!

Die Gerätedokumentation enthält Sicherheitshinweise, die beachtet werden müssen!

Gefahr!

Nach heutiger wissenschaftlicher Erkenntnis ist es nicht möglich, die absolute Fehlerfreiheit einer Software sicherzustellen.

Sie müssen Anlagen mit eingebauten Antriebsreglern ggf. mit zusätzlichen Überwachungs- und Schutzeinrichtungen nach den jeweils gültigen Sicherheitsbestimmungen ausrüsten (z. B. Gesetz über technische Arbeitsmittel, Unfallverhütungsvorschriften), damit ein unzulässiger Betriebszustand zu keiner Gefährdung von Personen oder Einrichtungen führt.

Während der Inbetriebnahme dürfen sich keine Personen ohne ausreichenden Sicherheitsabstand in der Nähe des Motors oder den vom Motor angetriebenen Maschinenteilen aufhalten, da ansonsten eine Verletzungsgefahr durch bewegte Maschinenteile besteht.

Stop!

Wenn Sie im »PLC Designer« Parameter ändern, während eine Online-Verbindung zum Gerät besteht, werden die Änderungen direkt in das Gerät übernommen!

Eine falsche Parametrierung kann zu nicht vorhersehbaren Motorbewegungen führen. Durch ungewollte Drehrichtung, zu hohe Geschwindigkeit oder ruckhaftem Lauf können angetriebene Maschinenteile beschädigt werden!

Page 15: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 15

VoraussetzungenSystemvoraussetzung

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

3 Voraussetzungen

3.1 Systemvoraussetzung

3.2 Kommunikation zum Controller einrichten

• Verbinden Sie den Engineering-PC über ein Netzwerkkabel mit dem Controller. Der »PLC Designer« greift via Ethernet auf den Controller zu.

• Die IP-Einstellungen sind mit dem »PLC Designer« vorzunehmen.

So überprüfen Sie die Kommunikationseinstellungen:

1. In der Geräte-Darstellung den gewünschten Controller doppelklicken.

2. Gewünschte Einstellungen auf der Registerkarte Kommunikationseinstellungen vornehmen.• Schaltfläche Gateway hinzufügen betätigen, um einen Gateway einzuzufügen.

Engineering-PC Controller

Hardware PC/Notebook PLC (Logic) ab Firmware V3.3

Betriebssystem Windows XP Windows CE

Erforderliche Lenze-Software »PLC Designer« ab V3.3• Enthält das ApplicationTemplate• Enhält die Lenze-Bibliothek

"L_EATP_ApplicationTemplate.compiled-library"

Runtime Software• Logic• Motion (dazu sind die

Projektinformationen zu aktualisieren: "Geräte aktualisieren" )

Sonstiges - Je nach Anwendungsfall:• CAN- oder EtherCAT-Bussystem• CAN- oder EtherCAT-Busteilnehmer

Page 16: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

VoraussetzungenKommunikation zum Controller einrichten

16 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Gewünschte IP-Adresse des Controllers eingeben.

[3-1] Beispiel: IP-Adresse des Controllers eingeben, Standardeinstellung: 192.168.5.99

3. Schaltfläche OK betätigen, um den Controller als Gateway hinzuzufügen.

4. Durch Doppelklicken auf den gewünschten Kanal (oder Betätigen der Schaltfläche Aktiven Pfad setzen) in der Geräte-Ansicht unterhalb des Gateways ausgewählten Kanal als aktiven Pfad zum Controller setzen.• Dadurch beziehen sich alle Kommunikationsaktionen direkt auf diesen Kanal.• Der gerade aktive Pfad wird in der Liste fett dargestellt und "(aktiv)" wird angehängt:

5. Ein in Kursivschrift dargestelltes Gerät ist als aktiver Pfad gesetzt, wurde aber beim letzten Netzwerk-Scan nicht identifiziert.

Hinweis!

Beachten Sie bei der Erst-Inbetriebnahme die vordefinierte IP-Adresse: 192.168.5.99

Weiterführende Informationen finden Sie in folgender Dokumentation:

Controller - Parametrieren & Konfigurieren

Page 17: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 17

Was ist das ApplicationTemplate?Ziel des ApplicationTemplates

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4 Was ist das ApplicationTemplate?

Das ApplicationTemplate ist eine Lenze-Applikationsvorlage zum standardisierten, übersichtlichenProgrammieren im »PLC Designer«.

• Das ApplicationTemplate ist im »PLC Designer« (ab Version 3.3) als Projektvorlage enthalten. Neues Projekt erstellen - ApplicationTemplate öffnen ( 34)

• Die Bibliothek L_EATP_ApplicationTemplate.compiled-library enthält den Aufbau und die Basisfunktionalität des ApplicationTemplates. Die Bibliothek L_EATP_ApplicationTemplate ( 118)

4.1 Ziel des ApplicationTemplates

Das ApplicationTemplate...

• ...hilft, die mechatronische Struktur eines Automationssystems (die als Baumstruktur vorliegt) modularisiert umzusetzen.

• ...ermöglicht das Einbinden von vordefinierten Maschinenmodulen mit vorbereiteten Applikationen (beispielsweise ein Querschneider).

• ...vereinfacht und beschleunigt das Erstellen von PLC-Programmen langfristig durch das Wiederverwenden einer einheitlichen, modularisierten Ordnerstruktur.

Welche Vorteile bietet das ApplicationTemplate?

Das ApplicationTemplate gestaltet das Programmieren mit dem »PLC Designer« übersichtlicher...

• ....durch eine vordefinierte Ordnerstruktur, die "für Ordnung sorgt" und individuell erweiterbar ist.

• ...erleichtert Ihnen die Orientientierung beim Erweitern oder Erstellen von Maschinenprogrammierungen.

• Das ApplicationTemplate enthält vorgefertigte, wiederverwendbare Maschinenmodule und Modulapplikationen, die das Risiko von Kompilierungsfehlern minimieren. Das hilft, Zeit und damit Kosten zu sparen.

Page 18: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Was ist das ApplicationTemplate?Eigenschaften des ApplicationTemplates im Überblick

18 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4.2 Eigenschaften des ApplicationTemplates im Überblick

Die folgenden Funktionen erleichtern Ihnen das Umsetzen einer Maschinenapplikation in einer PLC:

Statemachine (Zustandsmaschine) ( 23)

Errorhandling (Fehlerbehandlung) ( 96)

Multitasking ( 106)

Weitere Vorteile beim Verwenden des ApplicationTemplate:

• Konsistente Datenübertragung zwischen den Tasks.

• Diagnosefunktion für jedes Maschinenmodul ("generische Moduldiagnose").

• Ein fest definiertes Standardverhalten ("DefaultCoupling") der Zustandsmaschine. Standardkopplung ("DefaultCoupling") ( 86)

• Entkoppeln eines (oder mehrerer) Maschinenmodule. Internal Control ( 109)

Weiterführende Informationen zu der jeweiligen Funktionen finden Sie in dem entsprechendenUnterkapitel.

Page 19: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 19

Was ist das ApplicationTemplate?Elemente des ApplicationTemplates

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4.3 Elemente des ApplicationTemplates

4.3.1 Maschinenmodulbaum (MachineModuleTree - MMT)

Um das gewünschte Automationssystem auf Basis des ApplicationTemplates im »PLC Designer«abzubilden, ist die Struktur der gesamten Maschinenanwendung im »PLC Designer« zu erstellen.

• Im ersten Schritt ist die Maschinenstruktur in Maschinenmodule aufzuteilen.

• Der Maschinenmodulbaum A10_MachineModuleTree (MMT) veranschaulicht die Maschinenmodule in Form einer Baumstruktur von links nach rechts.

[4-1] Machinenstrukturbaum (MMT) im ApplicationTemplateCounter, Ordner A10_MachineModuleTree

Das ApplicationTemplate...

• ...unterstützt zwei bis fünf Hierarchie-Ebenen von Maschinenmodulen.

• ...unterstützt bis zu 30 Maschinenmodule.

[4-2] MMT (Machine Module Tree) mit bis zu fünf möglichen Hierarchie-Ebenen von Maschinenmodulen

Page 20: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Was ist das ApplicationTemplate?Elemente des ApplicationTemplates

20 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4.3.2 Maschinenmodule (MM)

Die Gesamtfunktionalität des Automationssystems ist im ApplicationTemplate modularisiertaufgebaut. Das bedeutet, dass jede Teilfunktion der Maschine in jeweils einem Maschinenmodulenthalten ist. Durch den modularen Aufbau ermöglichen die Maschinenmodule dasWiederverwenden von einzelnen (oder mehreren) Teilfunktionen einer Maschine. Der Vorteil: Diejeweilige Funktion ist für weitere Maschinenteile nicht komplett neu zu erstellen.

• Ein Maschinenmodul bildet die Funktion eines Maschinenteils der Maschine ab, beispielsweise ein Transportband oder einen Querschneider.

• Beispielsweise beinhaltet die Gesamtfunktionalität einer Schlauchbeutelmaschine die Teilfunktionen "Querschneider" und "Transporteinheit". Die beiden Teilfunktionen sind jeweils in ein separates Maschinenmodul zu überführen.

Maschinenmodul im ApplicationTemplate

[4-3] Aufbau eines Maschinenmoduls

• Jedes Maschinenmodul enthält den BaseChannel ("Base Data"), der als Datenkanal für die Basis-Funktionen des ApplicationTemplate dient.

• Basis-Funktionen des ApplicationTemplate sind die Statemachine (Zustandsmaschine) und das Errorhandling (Fehlerbehandlung).

Jedes Maschinenmodul besitzt eine AppChannelData-Struktur (ACD-Struktur). In einemMaschinenmodul ist eine ACD-Struktur bei Bedarf definierbar.

• Die ACD-Struktur verwaltet das Bereitstellen/Empfangen von Daten für das jeweils übergeordnete Maschinenmodul.

• Über die ACD-Struktursind Prozessdaten zwischen den eigenen Modulapplikationen austauschbar.

Ein Maschinenmodul (MFB) enthält immer mindestens eine Modulapplikation (MAP). Bis zu dreiMAPs pro MFB sind möglich).

• Über die Strukturen MM_IO, MM_Par; MM_Vis, MM_PD ist die Modulapplikation (MAP) an die "Außenwelt" (die jeweilige (Teil-)Funktion des Automationssystems) anzubinden.

• Durch die Struktur MM_IO sind die Ein-/Ausgänge der Klemmen/des Feldbusses zu verknüpfen.

• Die Struktur MM_Par enthält alle Variablen, die mit dem Rezepturverwalter zu verwalten sind.

• Die Struktur MM_Vis enthält alle Variablen, die über eine externe Visualisierung steuerbar/anzuzeigen sind.

• Die Struktur MM_PD enthält alle persistenten Variablen.

Page 21: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 21

Was ist das ApplicationTemplate?Elemente des ApplicationTemplates

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4.3.3 Adressierung der Maschinenmodule

[4-4] Abbildung: Beispieldarstellung MMT im Beispielprojekt L_ApplicationTemplateCounter

Folgendes ist beim relativen Adressieren der Maschinenmodule zu beachten:

• Die relative Adresse ist jedem Maschinenmodul (Wertebereich: 1...29) zuzuweisen.

• Während der Initialisierungsphase generiert der »PLC Designer« für jedes Maschinenmodule eine absolute Adresse.

• Beispiel für die relative und absolute Moduladressierung:

Die Grafik stellt die absolute Modul-Adresse (schwarz) und die relative Modul-Adresse (weiß) dar.

• Im Fehlerfall ermöglicht die absolute Adresse eine Fehleranalyse. Dadurch ist beispielsweise nachvollziehbar, welches Modul den jeweiligen Fehler verursacht hat. Errorhandling (Fehlerbehandlung) ( 96)

4.3.4 Modulapplikation (MAP)

Die Modulapplikation (MAP) enthält die Funktion des dazugehörigen Maschinenmoduls.

• Das ApplicationTemplate unterstützt bis zu drei Tasks. Dadurch sind bis zu drei MAPS pro Maschinenmodul verwendbar.

Jedes Maschinenmodul hateinen Eingang MM_Address,mit dem Sie demMaschinenmodul die relativeAdresse zuweisen.

Page 22: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Was ist das ApplicationTemplate?Elemente des ApplicationTemplates

22 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Im Ordner A11_ModuleAppCalls sind die MAPS den Tasks zuzuordnen: ModuleAppCalls (MAC).

4.3.5 Kommunikation zwischen den Maschinenmodulen

Die Maschinenmodule (MM_xxx) kommunizieren über das MaschinensteuerungsmodulMM_Machine mit Hilfe des Kommunikationskanals BaseChannel und der Struktur AppChannelDatamiteinander.

• Die Kommunikationskanäle ermöglichen einen bidirektionalen Datenaustausch.

• Der BaseChannel ist als Struktur im ApplicationTemplate definiert.

Ein oder mehrere Slave-Module sind immer genau mit einem übergeordneten Master-Modulverbunden. Dennoch kommuniziert der Master jeweils immer nur mit einem Slave-Modul. Slave-Module können nicht direkt miteinander kommunizieren, sondern über das übergeordneteMastermodul.

Das übergeordnete Maschinenmodul (Master) kommuniziert über Datenkanäle (Channels) mit denuntergeordneten Maschinenmodulen (Slaves). Beim Initialisieren erzeugt das ApplicationTemplateeinen BaseChannel und eine AppChannelData(ACD)-Struktur.

[4-5] Informationsaustausch zwischen den Maschinenmodulen (L_ApplicationTemplateCounter)

BaseChannel: Austausch von Steuer- und Zustandsdaten (Basisdaten Control/Status)

Der BaseChannel...

• ...enthält die Steuer-/Statusinformationen der Zustandsmaschine (Statemachine).

• ...enthält das Errorhandling (Fehlerbehandlung).

Die ACD-Struktur...

• ...dient zum Austausch von applikativen Prozessdaten zwischen den Maschinenmodulen.

• ...ist eine Datenstruktur zum Definieren von eigenen Prozessdaten.

• ...muss immer von der Struktur L_EATP_ACD_Base (ACD-Struktur) abgeleitet sein.

Page 23: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 23

Was ist das ApplicationTemplate?Elemente des ApplicationTemplates

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4.3.6 Statemachine (Zustandsmaschine)

Jedes Maschinenmodul hat jeweils eine eigene Zustandsmaschine. Statemachine(Zustandsmaschine) ( 80)

• Sofern ein Maschinenmodul in den Maschinenmodulbaum eingebunden ist (also nicht vom MMT entkoppelt ist), steuert die Zustandsmaschine des Master-Moduls alle Zustandsmaschinen der untergeordneten Maschinenmodule.

• Sofern alle Slave-Module die angeforderte Zustandsänderung angenommen haben, übernimmt das Mastermodul ebenfalls den angeforderten Zustand.Ausnahme: Beim Initalisieren durchlaufen alle Maschinenmodule den Zustand INIT und wechseln unabhängig vom Slave oder Master in den Zustand "READY", sofern dieser freigegeben ist:

Statusübergänge - Übersicht

Das folgende Statusdiagramm veranschaulicht die möglichen Betriebszustände derZustandsmaschine (Statemachine):

• Nach dem Start (Einschalten/Re-Initialisieren) befindet sich das Maschinenmodul im Zustand "Init".

• Im Ruhe-/Wartemodus befindet sich das Modul im Zustand "Ready".

• "Warning" ist ein Sonderstatus (unabhängiger, "orthogonaler" Zustand), der das Betriebsverhalten des Maschinenmoduls nicht beeinflusst.

SMEnableInitToReady(TRUE);

Page 24: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Was ist das ApplicationTemplate?Elemente des ApplicationTemplates

24 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4.3.7 Errorhandling (Fehlerbehandlung)

Das ApplicationTemplate enthält ein Errorhandling, das die Diagnose der Maschinenmoduleermöglicht.

Das Errorhandling des ApplicationTemplate stellt Mechanismen bereit, mit denen in denModulapplikationen (MAP) der Maschinenmodule (MM) Reaktionen (Fehler, Warnungen,Meldungen) definier- und auslösbar sind.

Weitere Mechanismen sind:

• Das Weiterleiten von Fehlerzuständen im MachineModuleTree (MMT).

• Eine (applikations-)globale Fehlerliste mit dem aktuellen Fehlerzustand von allen im MMT eingebundenen Maschinenmodulen.

• Übermitteln von Fehlern und Ereignissen an das zentrale Logbuch des Controllers.

Weiterführende Informationen finden Sie unter: Errorhandling (Fehlerbehandlung) ( 96)

Page 25: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 25

Das Automationssystem strukturieren: Prinzipielle Vorgehensweise

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

5 Das Automationssystem strukturieren: Prinzipielle Vorgehensweise

Dieser Abschnitt beschreibt die prinzipielle Vorgehensweise, um eine Applikation mit dem »PLCDesigner« auf Basis des ApplicationTemplates zu erstellen.

• Orientieren Sie sich an den nachfolgenden Empfehlungen, um anschließend im »PLC Designer« mit Hilfe des ApplicationTemplates strukturiert ein PLC-Projekt zu erstellen und effektiv programmieren zu können.

• Der strukturierte Aufbau des ApplicationTemplates (und das "Einhalten"/Fortführen der Strukturen) ermöglicht ein schnelleres Erstellen von Applikationen und damit ein schnelleres Einarbeiten in ein bestehenes PLC-Programm.

[5-1] Empfohlene Vorgehensweise zum effizienten Erstellen eines Projektes.

Page 26: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Das Automationssystem strukturieren: Prinzipielle Vorgehensweise

26 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Schritt Tätigkeit Was ist zu tun? Beschreibung

Verschaffen Sie sich einen Überblick über die Gesamtfunktionalität des Maschinenaufbaus.

• Teilen Sie die Gesamtfunktionalität des Maschineaufbaus in Teilfunktionen auf.

• Überführen Sie die ermittelten Teilfunktionen des Maschinenaufbaus in Maschinenmodule.

In dieser Projektphase ist noch kein Programmieren erforderlich!

Das Automationssystem modularisieren - Vorgehensweise ( 27)

Erstellen Sie Maschinenmodule, die jeweils die Teilfunktionen des Maschinenaufbaus enthalten: Eine Teilfunktion = Ein Maschinenmodul

• Um Maschinenfunktionen in verschiedenen Tasks aufrufen zu können, sind entsprechende Modulapplikationen zu erstellen.

• Weiterführende Informationen zum Strukturieren innerhalb einer Modulapplikation:

Strukturieren innerhalb eines Maschinenmoduls ( 28)

• Definieren Sie die Schnittstellen zu den Modulapplikationen (MAPs).

• Erstellen Sie optional die Visualisierung für das jeweilige Maschinenmodul.

• Jedes Maschinenmodul besitzt eine Zustandsmaschine. Die Modulapplikation (MAP) ruft, abhängig vom aktiven Zustand, eine entsprechende Aktion auf. Die Aktion ist der Modulapplikation untergeordnet.

• Erstellen Sie in diesen Aktionen die Logik, die auszuführen ist, wenn sich das MaschinenModul (MM) in dem entsprechenden Zustand befindet.

• Variablen definieren.• Variablen in den Variablenlisten

(MM_IO, MM_Par, MM_Vis, MM_PD) deklarieren

• Neu erstellte Maschinenmodule in den MMT (Maschinenmodulbaum) integrieren.

• Die relative Adresse den Maschinenmodulen zuweisen.

Modulapplikationen erstellen ( 65)

Page 27: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 27

Das Automationssystem strukturieren: Prinzipielle VorgehensweiseDas Automationssystem modularisieren - Vorgehensweise

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

5.1 Das Automationssystem modularisieren - Vorgehensweise

Um das Programmieren einer Maschinenanlage modular zu gestalten, sind die einzelnenTeilfunktionen der Gesamtfunktionalität des Automationssystems in Form vonMaschinenmodulen abzubilden.

Beispiel: Schlauchbeutelmaschine ("Flow Packer")

• Es ist hilfreich, den Maschinenaufbau mit den einzelnen Teilfunktionen in einer Baumstruktur zu skizzieren.

• Die einzelnen Teilfunktionen der Maschine sind dazu in entsprechende Maschinenmodule zu überführen.

• Sofern die einzelnen Teilfunktionen in Form von Maschinenmodulen strukturiert sind, sind die Schnittstellen der Modulapplikation (MAP) zuzuweisen. Eigene Maschinenmodule erstellen: MM_EmptyModul kopieren/einfügen ( 53)

• Die Ein- und Ausgangsvariablen sind zuzuordnen...

...in den Variablenlisten MM_IO, MM_Par, MM_Visu und MM_PD und

...zu den Variablen der AppChannelData (ACD)-Struktur.

Beispiele für Maschinenmodule:

• "Virtual master"

• "infeed" (Einzug)

• "outfeed" (Auszug)

Page 28: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Das Automationssystem strukturieren: Prinzipielle VorgehensweiseStrukturieren innerhalb eines Maschinenmoduls

28 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

5.2 Strukturieren innerhalb eines Maschinenmoduls

5.2.1 MAP-Teilfunktion einzelnen Tasks zuordnen

Im ersten Schritt sind die Funktionen den einzelnen Tasks zuzuordnen. Das ApplicationTemplateunterstützt Multitasking mit drei Tasks. Weiterführende Informationen finden Sie unter:

Multitasking ( 106)

• Task "High" (Standardwert: 2 ms)

• Task "Mid" (Standardwert: 6 ms)

• Task "Free" (freilaufend)

Pro Task ist jeweils eine Modulapplikation verwendbar.

• Task und Modulapplikation sind im Ordner A11_ModuleAppCalls zugeordnet.

• Beispielsweise ruft der Programmteil MAC_Task_High alle Modulapplikationen auf, die die

hochpriore Task Task_High durchlaufen sollen.

[5-2] Beispielprojekt ApplicationTemplateCounter: MAC_Task_High ruft die Modulapplikation Module1_App1 auf.

Um eine Modulapplikation übersicht-lich zu gestalten, ist es sinnvoll, die Mo-dulapplikationen (MAP) in Teilfunktionen zu unterteilen und ent-sprechend zu strukturieren.

Page 29: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 29

Das Automationssystem strukturieren: Prinzipielle VorgehensweiseStrukturieren innerhalb eines Maschinenmoduls

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Empfehlung - Welche Funktion in welcher Task aufrufen?

5.2.2 Programmier-Empfehlungen zum Strukturieren

Die folgende Tabelle stellt die Strukturierungsmöglichkeiten des ApplicationTemplates alsEntscheidungsempfehlung dar:

Wann sollte ich was im ApplicationTemplate verwenden?

Task/Priorität Funktion (Beispiel)

"High"HighPriority

Ausführen von Motion-Funktionen

"Mid"MidPriority

Umrechnen für eine externe Visualisierung

"Free"freilaufend

NRT-Ethernet-Kommunikation

Was möchten Sie tun? FB Aktion Methode Besser geeignet ist...

Mit lokalen Variablen arbeiten Lokale Variablen sind im zugeordneten FB zu

deklarieren.

Lokale Variablen sind (wenn möglich) im zugeordneten FB zu deklarieren.

-

Debugging Keine lokalen Variablen Aktion, FB

Wiederverwenden:Im Fehlerfall (beim Erstellen der Anwendersoftware) ist die Fehlerbehebung an einer Stelle möglich.

- Bedingt - wenn in der Methode beispielsweise FBs integriert sind.Beispiel: "Statemachine" im ApplicationTemplate

FB

Instanziieren - - Aktion, Methode

Auf alle Datentypen zugreifen Aktion, FB,Methode

Page 30: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Das Automationssystem strukturieren: Prinzipielle VorgehensweiseStrukturieren innerhalb eines Maschinenmoduls

30 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Aktionen

Lenze empfiehlt zum einfachen Strukturieren das Verwenden der Aktionen desApplicationTemplates.

• Die Aktionen sind der Modulapplikationen unterzuordnen.

• Aktionen sind mit dem Symbol gekennzeichnet.

Beispiel zum Strukturieren einer Modulapplikation:

[5-3] Die Methode SMDispatcher ruft die Aktionen S01-S11 auf. Die Aktionen sind im Ordner ModApp1\States sichtbar.

Eine Aktion ist immer an eine POU gebunden, Beispiel: Funktionsbaustein einer Modulapplikation.

• Dadurch verwendet die Aktion ausschließlich die Daten des Funktionsbausteins. Das bedeutet, dass die Aktion keinen eigenen Deklarationsteil besitzt. Die in der Aktion verwendeten Variablen sind im Funktionsbaustein (also in der Modulapplikation MAP) deklariert.

• Die Aktion besitzt keine lokalen Variablen.

Page 31: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 31

Übersicht - Die Struktur des ApplicationTemplates

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

6 Übersicht - Die Struktur des ApplicationTemplates

Das ApplicationTemplate ist eine Lenze-Applikationsvorlage, die Ihnen das Programmieren mit dem»PLC Designer« erleichtert.

• Das ApplicationTemplateCounter hat folgende vordefinierte Struktur:

A10_MachineModuleTree (MMT)

• Der Maschinenmodulbaum bildet die mechatronische Funktionalität der Maschinenstruktur in Form von Maschinenmodulen (MM) ab.

A11_ModuleAppCalls (MAC)

• ...enthält die Zuordnungen von Modulapplikationen (MAP) zu den Tasks.

A20_Visualisation

• ...enthält die Visualisierungen für die geräteunabhängigen Funktionen. Erste Schritte - Das ApplicationTemplate bedienen ( 37)

A55_VarLists

• ...enthält die Deklarationen der globalen Variablen:• Verwendete Maschinenmodule: MM_Dcl• IO-Variablen: MM_IO• Parameter: MM_Par• Variablen für eine externe Visualisierung: MM_Vis• Persistente Daten: MM_PD

A60_MotionObjects

• ...vordefinierter Ordner für Motion-relevante Daten, Beispiel: CAM-Profile.

A65_EmptyModule

• ...enthält die Maschinenmodul-Quellen• ...enthält die Vorlage EmptyModule zum Erstellen von

eigenen Maschinenmodulen. Eigene Maschinenmodule erstellen: MM_EmptyModul kopieren/einfügen ( 53)

A70_MachineModuleSources• ...enthält die selbst erstellten Maschinenmodule.

Maschinenmodule (MM) ( 20)• ...enthält die Visualisierung der Maschinenmodule.

ApplicationTemplateCounter:• ...enthält zwei vordefinierte Maschinenmodule.

A71_LocalSources• ...Ablageort für maschinenunabhängige Enumerationen,

Funktionsbausteine, Strukturen, Visualisierungen.

A80_Documentation

• ...vordefinierter Ordner für Dokumente zur "Projekthistorie", Beispiel: Versionsinformationen, Änderungen.

A90_Resources

• ...enthält die Systeminformationen wie beispielsweise:• Taskeinstellungen,• Verwendete Bibliotheken,• Rezepturverwalter,

• Visualisierungs-Manager.

Page 32: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Übersicht - Die Struktur des ApplicationTemplates

32 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Tipp!

Fassen Sie die „lokalen Quellen“ aus dem Ordner A71_LocalSources in einer Bibliothekzusammen.

Page 33: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 33

Das ApplicationTemplate öffnen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

7 Das ApplicationTemplate öffnen

Das ApplicationTemplateCounter enthält ein Beispielprogramm mit drei Maschinenmodulen undeiner vordefinierten Visualisierung. Mit dem Beispielprogramm können Sie die Basisfunktionen desApplicationTemplates testen. Das Beispielprojekt "ApplicationTemplateCounter" ( 161)

Prinzipielle Vorgehensweise

Die Hauptschritte sind in der folgenden Tabelle zusammengefasst:

Detaillierte Inbetriebnahmeschritte

Der folgende Abschnitt beschreibt die einzelnen Inbetriebnahmeschritte im Detail.

Folgen Sie den aufgeführten Anweisungen Schritt für Schritt, um Ihr Automationssystem in Betriebzu nehmen.

Schritt Tätigkeit

1. Neues Projekt erstellen - ApplicationTemplate öffnen ( 34)

2. Controller im Projekt aktualisieren (optional) ( 35)

3. Online gehen ( 36)

• Projektdaten übersetzen ( 36)

• Projekt in die Steuerung übertragen - "Einloggen" ( 36)

4. PLC-Programm laden und starten ( 36)

5. Erste Schritte - Das ApplicationTemplate bedienen ( 37)

Weiterführende Informationen zum Parametrieren und Konfigurieren des jeweiligen Bussystems finden Sie in folgenden Kommunikationshandbüchern (KHB):• Kommunikationshandbuch EtherCAT: "Controller-based Automation" EtherCAT• Kommunikationshandbuch CANopen: "Controller-based Automation" CANopen• Kommunikationshandbuch PROFIBUS: "Controller-based Automation" PROFIBUS

Page 34: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Das ApplicationTemplate öffnenNeues Projekt erstellen - ApplicationTemplate öffnen

34 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

7.1 Neues Projekt erstellen - ApplicationTemplate öffnen

Das ApplicationTemplate ist als Projektvorlage (*.project, ) im »PLC Designer« ab V3.3 enthalten.Um das ApplicationTemplate aufzurufen, ist ein neues Projekt mit dem ApplicationTemplate alsVorlage zu erstellen.

So gehen Sie vor:

1. Neues Projekt erstellen:

• Datei Neues Projekt

• Kategorie Lenze Application Template wählen• Die Vorlage L_ApplicationTemplate öffnen

Welche Vorlage möchten Sie verwenden?

Funktion

ApplicationTemplate Die Lenze-Applikationsvorlage L_ApplicationTemplate verwenden.Enthält einen von Lenze vordefinierten Aufbau, der es ermöglicht...

• ...Applikationen durch eine definierte Ordnerstruktur zu standardisieren.• ...Applikationen mit Maschinenmodulen zu strukturieren.

ApplicationTemplateCounter Beispielprojekt mit der Lenze-Applikationsvorlage L_ApplicationTemplate.• Enthält zwei untergeordnete Maschinenmodule, die in den

MachineModuleTree (MMT) eingebunden sind.• Enthält ein Zählerbeispiel (Automatic Modus).

Das Beispielprojekt befindet in der Kategorie Lenze Application Samples\Lenze Standard

Page 35: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 35

Das ApplicationTemplate öffnenController im Projekt aktualisieren (optional)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

7.2 Controller im Projekt aktualisieren (optional)

In welchen Fällen ist das Projekt zu aktualisieren?

Der Controller ist im »PLC Designer« zu aktualisieren, wenn...

• ...das Projekt ältere Firmware-Informationen enthält als die zu verwendende Hardware oder

• ...ein anderer Controller als der eingebundene Controller 3200 C gewünscht ist (Beispiel: p500).

Sofern der Controller nach dem Öffnen des Projektes mit dem Symbol gekennzeichnet ist, sinddie Geräteinformationen des »PLC Designer«-Projektes zu aktualisieren.

Firmware des Controllers ermitteln

So gehen Sie vor:

• Überprüfen Sie mit der »WebConfig«, welche Firmware der Controller verwendet, um anschließend die passenden Geräteinformationen im »PLC Designer« auszuwählen.

• Sofern der Controller zu aktualisieren ist, ist anschließend die dynamische Speichereinstellungen der Applikation anzupassen.

Speichereinstellungen anpassen

Gewünschten Controller markieren.• Im Kontextmenü den Befehl Gerät aktualisieren ausführen.• Im Dialogfenster Gerät aktualisieren den passenden Controller doppelklicken, um den

Controller in der Geräte-Ansicht zu aktualisieren:

1. Im Kontextmenü von Application den Befehl Eigenschaften ausführen.• Auf der Registerkarte Optionen Applikationserzeugung die Option Dynamische

Speicherallozierung verwenden aktivieren.• Als Maximale Speichergröße den Wert 100000 eintragen:

• Eingabe mit OK bestätigen.

Page 36: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Das ApplicationTemplate öffnenOnline gehen

36 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

7.3 Online gehen

Um eine Onlineverbindung zum Controller aufbauen zu können, ist vorab die Inbetriebnahme derKommunikationseinstellungen (Aktiven Pfad setzen) erforderlich. Kommunikation zumController einrichten ( 15)

7.3.1 Projektdaten übersetzen

Um die Projektdaten zu übersetzen, wählen Sie den Menübefehl ErstellenÜbersetzen, oderbetätigen Sie die Funktionstaste <F11>.

• Treten beim Übersetzen Fehler auf, sind diese anhand der »PLC Designer«-Fehlermeldungen zu lokalisieren und entsprechend zu korrigieren. Übersetzen Sie danach die Projektdaten erneut.

• Treten beim Übersetzen keine Fehler auf, ist das »PLC Designer«-Projekt zu speichern:

Datei Projekt speichern

7.3.2 Projekt in die Steuerung übertragen - "Einloggen"

Das gewünschte Projekt ist auf das PLC-Gerät durch "Einloggen" in den Controller zu übertragen:

Den Menübefehl Online Einloggen aufrufen.

7.4 PLC-Programm laden und starten

• Das PLC-Programm auf den Controller laden: Menübefehl OnlineLaden aufrufen.

• Das PLC-Programm starten: Menübefehl OnlineStart aufrufen.

• Alternativ können Sie den Menübefehl DebugStart ausführen oder <F5> drücken.

Tipp!

Um ein Projekt nach dem Neustart eines Gerätes automatisch zu laden, ist dies als "Boot-Projekt" definierbar.

Projekt als Bootapplikation einrichten

So richten Sie das Projekt als Boot-Projekt ein:

1. Wählen Sie den Menübefehl OnlineErzeuge Bootapplikation für L-force Controller.

Hinweis!

Zum "Einloggen" muss das PLC-Programm fehlerfrei sein. Dazu muss der Menübefehl ErstellenÜbersetzen (F11) ohne Fehlermeldung durchführbar sein.

Page 37: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 37

Das ApplicationTemplate öffnenErste Schritte - Das ApplicationTemplate bedienen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

7.5 Erste Schritte - Das ApplicationTemplate bedienen

In der Geräte-Ansicht ist der Ordner A20_Visualisation auszuwählen: Visualisierung L_Maindoppelklicken.

Startseite - Visualisierung L_Main

Die Bedienoberfläche der Visualisierung gliedert sich in folgende Bereiche:

[7-1] Beispiel: ApplicationTemplateCounter mit zwei Maschinenmodulen (Module 1, Module 2)

Maschinenmodul wählen Visualisierung Fehlerbaustein

Detailansicht der Maschinenmodule Visualisierung ApplicationTemplate

Fehlerübersicht wählen Schaltflächen: Zustand wählen/Fehlermeldung quittieren

Statemachine (Zustandsmaschine)

Page 38: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Das ApplicationTemplate öffnenErste Schritte - Das ApplicationTemplate bedienen

38 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Die Schaltflächen im Bereich rufen die Visualisierung des gewünschten Maschinenmoduls auf.

• Machine/Machine Control ruft das oberste Maschinensteuermodul auf.

• Die Schaltfläche ruft die Detailansicht der Maschinenmodule auf.

• Die Schaltfläche ruft die globale Fehlerübersicht auf.

• Bereich zeigt die Zustandsmaschine (mit dem aktuellen Zustand) an. Statemachine (Zustandsmaschine) ( 23)

• Bereich zeigt den FB L_EATP_ErrorSet an. L_EATP_ErrorSet ( 127)

Page 39: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 39

Das ApplicationTemplate öffnenVisualisierung der Maschinenmodule

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

7.6 Visualisierung der Maschinenmodule

• Der Bereich visualisiert die Kommunikation zwischen den einzelnen Maschinenmodulen durch die AppChannelData-Struktur.

• Die AppChannelData-Struktur stellt die Infrastruktur für das Kommunizieren der Applikationsdaten bereit. Die Struktur AppChannelData (ACD) ( 76)

• ApplicationTemplateCounter:In diesem Bereich ist die Demo-Visualisierung der Beispielprogramme dargestellt. Das Beispielprojekt "ApplicationTemplateCounter" ( 161)

• Die Schaltfläche Lock data sperrt einen Datenbereich der ACD-Struktur/gibt den Datenbereich wieder frei.Methoden zum Sperren/Freigeben• Lock(): Datenbereich der ACD-Struktur sperren.

L_EATP_CriticalSection ( 125)

• Unlock(): Gesperrten Datenbereich der ACD-Struktur freigeben.L_EATP_ErrorListHandler ( 126)

Konsistente Datenübertragung ( 107)

• Die Schaltfläche im Bereich aktivieren den gewünschte Zustand (state)/Ermöglichen das Quittieren von Fehlern.

• Die Schaltfläche Error Quit quittiert die Fehlermeldung. Errorhandling (Fehlerbehandlung) ( 96)

• Ist beispielweise MM_Modul 1 ausgewählt, sind über die Felder xError[01...04] von L_EATP_ErrorSet Fehler auslösbar.

L_EATP_ErrorSet ( 127)

Page 40: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Das ApplicationTemplate öffnenVisualisierung der Maschinenmodule

40 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Je nach Standard-Verhalten führt das Auslösen eines Fehlers bei L_EATP_ErrorSet zu einem Statuswechsel im Bereich .• Mögliche Fehlerreaktionen sind: Error,

SystemFault, Warning, Information.

• Standard-Einstellung des ApplicationTemplates (bei Bedarf deaktivierbar):Wird ein Fehler ausgelöst, wechselt das übergeordnete Maschinenmodul in den Zustand "Quickstop".• Das Maschinenmodul gibt den Zustand

an das übergeordnete Maschinenmodul weiter.

• Das Maschinenmodul auf der obersten Ebene setzt alle untergeordeten Maschinenmodule in den Zustand "Quickstop".

• Die Schaltfläche Module List ruft die Detailansicht zu den Maschinenmodulen auf.

• Klicken Sie auf das gewünschte Maschinenmodul, um den jeweiligen Zustand und weitere Details anzuzeigen.

• Die Schaltfläche Error List ruft die globale Fehlerliste auf, die einen Überblick über die aufgetretenen Fehler liefert.• Die Ursache für die Fehlerauslösung ist

zu beheben. Anschließend ist der entsprechende Fehler zurückzusetzen.

• Die Schaltfläche Error Quit ist zu betätigen, um den Fehler zurückzusetzen.

Page 41: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 41

Arbeiten mit dem ApplicationTemplate

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8 Arbeiten mit dem ApplicationTemplate

In diesem Kapitel erfahren Sie, wie Sie mit der Maschinenmodul-Vorlage im ApplicationTemplatemodulare Maschinen-Funktionen/Maschinenmodule erstellen. Das MaschinenmodulMM_EmptyModule ist eine Vorlage zum Erstellen von eigenen Maschinenmodulen.

Programmieren mit dem ApplicationTemplate: Was ist zu tun?

Schritt Tätigkeit Detailinformationen

1. Das Automationssystem strukturieren• Die Gesamt-Funktionalität

(Maschinenapplikation) des Automationssystems ist modular abzubilden:Eine Teilfunktion = ein Maschinenmodul

• In dieser Projektphase ist noch kein Programmieren erforderlich!

Das Automationssystem modularisieren - Vorgehensweise ( 27)

2. Das ApplicationTemplate starten Das ApplicationTemplate öffnen ( 33)

3. Projekt aktualisieren (optional)• Versionsstand der Geräteinformationen im

»PLC Designer«-Projekt mit dem Firmwarestand des Controllers abgleichen.

• Sofern gewünscht, einen anderen Controller in das Projekt einbinden, enthalten ist der 3200 C.

Controller im Projekt aktualisieren (optional) ( 35)

4. Realen Maschinenaufbau im »PLC Designer« abbilden

Realen Maschinenaufbau im »PLC Designer« abbilden ( 42)

• Geräte anhängen - Bussystem EtherCAT ( 42)• Geräte anhängen - Bussystem CANopen (optional)

( 45)• CAN-Parameter und PDO-Mapping einstellen ( 50)

6. Eigene Maschinenmodule erstellen/einbinden Eigene Maschinenmodule erstellen: MM_EmptyModul kopieren/einfügen ( 53)

7. Geräte einbinden Achse einfügen ( 61)

I/O-Module des I/O-System 1000 mit einem Maschinenmodul einbinden ( 63)

Modulapplikation einbinden ( 69)

8. Online gehen Online gehen ( 36)

9. PLC-Programm starten PLC-Programm laden und starten ( 36)

Online Change durchführen Online Change ( 71)

Page 42: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

42 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.1 Realen Maschinenaufbau im »PLC Designer« abbilden

Das ApplicationTemplate enthält eine vordefinierte Struktur, die um die individuellenAnforderungen erweiterbar ist. Führen Sie folgende Schritte durch, um den realenMaschinenaufbau abzubilden.

8.1.1 Geräte anhängen - Bussystem EtherCAT

So erstellen Sie die Steuerungskonfiguration im »PLC Designer«:

1. Im Kontextmenü des Zielsystems mit dem Befehl Gerät anhängen die

Steuerungskonfiguration mit "EtherCAT Master" erweitern.

Hinweis!

Beachten Sie vor dem Aufbau einer EtherCAT-Konfiguration im »PLC Designer« folgende Bedingungen:• Die Reihenfolge der EtherCAT-Slaves in der Geräte-Ansicht muss der physikalischen

Anordnung der EtherCAT-Topologie entsprechen.• Wählen Sie die Zykluszeiten gemäß den technischen Daten von 1 ... 10 ms.

Page 43: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 43

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2. Unter dem EtherCAT-Master einen EtherCAT-Slave anhängen: Per Rechtsklick auf den

EtherCAT-Master Gerät anhängen:

Wählen Sie aus Auswahlliste das gewünschte Gerät.

Der »PLC Designer« bietet einen "Feldbus-Scan" an, der die am Feldbus angeschlossenen Geräte automatisch erkennt.

Weiterführende Informationen finden Sie im Abschnitt "Controller-based Automation EtherCAT" der Onlinehilfe zum »PLC Designer« sowie im Kommunikationshandbuch(KHB) Controller-based Automation EtherCAT

Wiederholen Sie den Befehl Gerät anhängen solange, bis alle am Feldbus teilnehmenden Slaves in die Geräte-Ansicht eingebunden sind.

Page 44: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

44 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

3. Den eingefügten Slaves eindeutige Bezeichnungen geben(Beispiel: "L_94_HL_ActuatorSpeed").

Die Bezeichnungen sind frei wählbar und dürfen …• nur die Zeichen "A ... Z", "a ... z", "0 ... 9" oder "_" enthalten;• nicht mit einer Ziffer beginnen.

Durch einen Mausklick auf das Element wird die Bezeichnung zur Eingabe freigegeben.

Beispiel:

4. Zykluszeit einstellen• Der Wert für die Zykluszeit des EtherCAT-Masters ist entsprechend der Zykluszeit der

schnellsten Task festzulegen.

• Das Symbol vor dem jeweiligen Geräte signalisiert die erfolgreicheEtherCAT-Kommunikation.

Hinweis: Die EtherCAT-Zykluszeit ist auf auf die schnellsteingestellte Taskzykluszeit einzustellen. Die schnellste Taskzykluszeit ist in diesem ApplicationTemplate auf 2 ms eingestellt, dementsprechend sind 2000 μs einzustellen.

Page 45: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 45

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Ist bei allen Antriebsreglern die Option "Distributed Clocks" aktiviert und die Kommunikation erfolgreich, gibt der EtherCAT-Master die Meldung "DC In-Sync" aus:

8.1.2 Geräte anhängen - Bussystem CANopen (optional)

Um den gewünschten Maschinenaufbau auf Basis des ApplicationTemplates abzubilden, sind dieentsprechenden Geräte in der Geräte-Ansicht anzuhängen.

So gehen Sie vor:

1. Controller markieren

• Im Kontextmenü mit dem Befehl Gerät anhängen das Bussystem mit "CANbus" erweitern.

Page 46: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

46 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2. Auf der Registerkarte CANbus die Übertragungsrate einstellen.

Hinweis: Der im »PLC Designer« eingestellte Wert der Übertragungsrate überschreibt die bestehenden Übertragungswerte der Geräte (eingestellt via »WebConfig«/»Engineer«).

3. Stellen Sie in einem CANopen-Netzwerk generell für alle Teilnehmer dieselbe Übertragungsrate ein.

4. Mit dem Befehl Gerät anhängen die Steuerungskonfiguration mit "CANopen Manager" erweitern.

Page 47: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 47

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

5. Über die Registerkarte CANopen_Manager die Parameter zur Sync-Erzeugung einstellen.

Die Sync-Erzeugung ist notwendig, wenn...• ...auf dem Bus mindestens ein PDO mit Sync-gesteuerter Verarbeitung benutzt wird; • ...in mehreren Geräten die Applikationen Takt-synchron laufen sollen;• ...am Bus Motion-Geräte betrieben werden sollen.

Falls Sie die CAN-Synchronisation einsetzen wollen, setzen Sie ein Häkchen im Eingabefeld

Sync-Erzeugung aktivieren.

Sync-Zykluszeit einstellen: 2 ms (Eingabewert: 2000 μs)• Der Wert für die Zykluszeit des CANopen-Masters ist entsprechend der Zykluszeit der

schnellsten Task festzulegen.

Page 48: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

48 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

6. Mit dem Befehl Gerät anhängen ein Logic-Gerät (Slave) unter dem CANopen_Manager (Master) einfügen.

Wählen Sie aus der Auswahlliste den gewünschten CAN-Teilnehmer aus.

Tipp!

Zum Einbinden von Invertern steht eine allgemeine Gerätebeschreibung zur Verfügung:Lenze Generic Drive.

Wiederholen Sie den Befehl Gerät anhängen, bis alle am Bus teilnehmenden Slaves in der Geräte-Ansicht eingebunden sind. Alternativ können Sie einen bereits eingefügten Teilnehmer im Kontextmenü des Gerätes kopieren und einfügen. Die Kommunikationseinstellungen (Node-ID und Baudrate sowie weitere Parameter) sind anschließend manuell anzupassen.

Page 49: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 49

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

7. Den eingefügten Slaves eindeutige Bezeichnungen geben (Beispiel: "L_94_HL_ActuatorSpeed").

Die Bezeichnungen sind frei wählbar und dürfen …• nur die Zeichen "A ... Z", "a ... z", "0 ... 9" oder "_" enthalten;• nicht mit einer Ziffer beginnen.

8. Durch einen Mausklick auf das Element wird die Bezeichnung zur Eingabe freigegeben.

Beispiel:

• Unterhalb des ausgewählten Slaves sind die Achsdaten in Form eines zusätzlichen Knotens abrufbar.

Um die Prozessdaten manuell verknüpfen zukönnen (statt der automatischen Verknüpfungin die L_LCB_Axis_REF-Instanz), ist die OptionManuelles I/O-Abbild zu aktivieren.

Page 50: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

50 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

CAN-Parameter und PDO-Mapping einstellen

Stellen Sie die CAN-Parameter und das PDO-Mapping für jedes am Bus teilnehmende Logic-Gerätein.

So stellen Sie die CAN-Parameter und das CAN-Mapping ein:

1. Zur Registerkarte CANopen Remote Device des entsprechenden Slaves wechseln.

Vergeben Sie im Eingabefeld Node-ID die passende Knotenadresse der Geräten:

Nur wenn die Option Experten-Einstellungen gesetzt ist, sind folgende Einstellmöglichkeiten sichtbar: • "Node Guarding"• "Emergency"• "Heartbeat"• "Prüfungen beim Start"

Nehmen Sie hier die für Ihre Applikation notwendigen Einstellungen vor.

Page 51: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 51

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2. Zur Registerkarte PDO Mapping wechseln.

Das PDO-Mapping ist standardmäßig auf die zugehörige Applikation optimiert. Es ist möglich, dieses Mapping manuell zu verändern (Häkchen setzen). Aufgrund der begrenzten Bandbreite des CAN-Busses ist ein solches Vorgehen aber nur in Sonderfällen sinnvoll. Auch die PDO-Eigenschaften sind sinnvoll vorbelegt und sollten nicht verändert werden.

Durch einen Doppelklick auf ein einzelnes PDO können Sie dessen Übertragungs-Eigenschaften sehen.

• Der Übertragungstyp "zyklisch - synchron (Typ 1-240)" und die Angabe, bei welchem Sync die PDOs versendet werden sollen, dürfen nicht verändert werden.

• Die Einstellungen der Sperrzeit und der Ereigniszeit (Event time) werden nicht ausgewertet.

• Bestätigen Sie die Einstellungen mit der Schaltfläche OK.

Auf der Registerkarte CANopen I/O Abbild können Sie dem Prozessabbild PLC-Variablen zuweisen.

Hinweis!

Betrieb des Busses ohne CAN-Synchronisation• Der Controller sendet asynchrone PDOs aus einer freilaufenden Task immer

ereignisgesteuert. Um zu erreichen, dass der Controller asynchrone PDOs zeitgesteuert sendet, müssen Sie den CAN-Master einer zyklischen Task zuordnen.

• Der Controller unterstützt keine Überwachungszeiten für asynchrone Empfangs-PDOs. Diese Überwachungszeiten sind in den Geräten einzustellen.

Page 52: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateRealen Maschinenaufbau im »PLC Designer« abbilden

52 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

3. Die Auswahl einer speziellen Buszyklus-Task auf der Registerkarte CANopen I/O Abbild des CANopen-Manager ist nicht zwingend erforderlich.

Die Standard-Einstellung verwendet die Task mit der kürzesten Zykluszeit, welche auf Geräte des CAN-Masters zugreift, als Buszyklus-Task:

Page 53: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 53

Arbeiten mit dem ApplicationTemplateEigene Maschinenmodule erstellen: MM_EmptyModul kopieren/einfügen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.2 Eigene Maschinenmodule erstellen: MM_EmptyModul kopieren/einfügen

Tipp!

Beim Erstellen von eigenen Maschinenmodule vergibt das ApplicationTemplateautomatisch die passenden Maschinenmodul-internen Benennungen.

Maschinenmodule erstellen: Was ist zu tun?

So gehen Sie vor:

1. Maschinenmodul MM_EmptyModule kopieren:

• Rechtsklick auf den Ordner A65 EmptyModule\MM_EmptyModule Copy Empty Module auswählen.

2. Das zuvor kopierte Maschinenmodul (Empty Module) unterhalb des Ordners

A70_MachineModuleSources einfügen:

• Rechtsklick auf den Ordner A70_MachineModuleSources Insert Empty Module

Die Maschinenmodul-Vorlage EmptyModule ist...

• ...im Ordner A65 EmptyModule mit dem Befehl

Copy Empty Module zu kopieren und

• ...anschließend mit dem Befehl Insert Empty Module

in den Ordner A70_MachineModuleSources einzufügen.

Das Maschinensteuerungsmodul (MM_Machine) ist gemäßder individuellen Anforderungen selbst zu erstellen.

Page 54: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateInstanzen von Maschinenmodulen erzeugen: Create MM Instance

54 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

3. Gewünschten Modulnamen eingeben.

Der Modulname ist frei wählbar und darf …• kein "MM_" enthalten• nur die Zeichen "A ... Z", "a ... z", "0 ... 9" enthalten• keine Sonderzeichen enthalten.

4. Insert klicken, um das Maschinenmodul einzufügen.• Das Maschinenmodul ist mit den passenden Namen der MAPs/des MFB, Strukturen und

Visualisierung eingefügt.

5. Das eingefügte Maschinenmodul (MFB_*) ist in den MMT im Ordner

A10_MachineModuleTree einzufügen.

6. Die Modulapplikation (MAP_*) im Ordner A11_ModuleAppCalls ist in den gewünschten Modulapplikationsaufruf (MAC_Task_*) einzufügen.

8.3 Instanzen von Maschinenmodulen erzeugen: Create MM Instance

Zum Erstellen von weiteren Maschinenmodulinstanzen ist im ApplicationTemplate der BefehlCreate MM Instance zu verwenden. Beispiel: Eine Instanz des Maschinenmoduls Module1 erzeugenim Application Template Counter.

So gehen Sie vor:

1. Maschinenmodul MM_Module1 instanziieren:

• Per Rechtsklick auf den Ordner A70_MachineModulesSources Create MM Instance ausführen:

Page 55: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 55

Arbeiten mit dem ApplicationTemplateInstanzen von Maschinenmodulen erzeugen: Create MM Instance

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2. Anschließend sind auf der Registerkarte MM Project die Maschinenmodule sichtbar, die

sich im Ordner A70_MachineModulesSources befinden.

Hinweis: : Über die Registerkarte MM Library sind Instanzen von Maschinenmodule einer Bibliothek erstellbar (in Vorbereitung!).

• Gewünschtes Maschinenmodul markieren, von dem eine Instanz zu erstellen ist.• Instanznamen im Eingabefeld "User Defined Base Name“ eingeben, Beispiel: TestModu-

le.

3. Insert klicken, um in allen globalen Variablenlisten eine Instanz des Maschinenmoduls und dessen Strukturen zu erstellen.

Page 56: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateErstelltes Maschinenmodul in den MMT einbinden

56 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.4 Erstelltes Maschinenmodul in den MMT einbinden

Das (auf Basis der Vorlage MM_EmptyModule) erstellte Maschinenmodul ist in denMachineModuleTree (MMT) einzubinden, um es funktionsfähig in das ApplicationTemplate zuintegrieren.

So gehen Sie vor:

1. In der Geräte-Ansicht den Ordner A10_MachineModuleTree doppelklicken.

• MMT (PRG) doppelklicken.Hinweis: Die Programmiersprache von MMT (PRG) ist CFC (Continous Function Chart).

• Im Dialogfenster Werkzeuge die Schaltfläche Baustein klicken.• Neuen FB per drag-and-drop erstellen.

• Im Bereich des FBs doppelklicken. Schaltfläche betätigen.

Mit der Eingabehilfe aus dem Element Application...• ...den FB MFB_CrossCutter zuweisen.• ...die Instanz CrossCutter zuweisen.

Hinweis: In der Eingabehilfe ist die Option Namensraum-Präfix einfügen beim Zuweisen des Instanznamens zu aktivieren.

2. Relative Adresse für das Maschinenmodul festlegen.

• Im Dialogfenster Werkzeuge die Schaltfläche Eingang klicken.• Neuen Eingang bei MM_Address hinzufügen• Relative Adresse (Beispiel: 3) zuweisen.

3. Die FBs MFB_MachineControl und MFB_CrossCutter miteinander verbinden.• Beispiel (ApplicationTemplate Counter):

Hinweis: Nach dem Einfügen eines Maschinenmoduls ist die Ausführungsreihenfolge der Maschinenmodule zu prüfen, die sich nach dem Einfügen des weiteren Maschinenmoduls ergibt.

Zum Ändern der Ausführungsreihenfolge sind die Elementnummern in der oberen

Page 57: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 57

Arbeiten mit dem ApplicationTemplateZuordnen der Modulapplikation (MAP) zur Task

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

rechten Ecke des entsprechenden Maschinenmoduls anzupassen.• Dazu ist im Kontextmenü der Elementnummer (rechte Maustaste) der Menüpunkt

Ausführungsreihenfolge aufzurufen.

Hinweis: Bei deaktivierter Option "Strukturierte Ansicht" ist ein FB (Beispiel: MFB_CrossCutter) über die Eingabehilfe (Kategorie: Instanzen) erreichbar.

8.5 Zuordnen der Modulapplikation (MAP) zur Task

Bei Maschinenmodulen, die mit der Vorlage EmptyModule erstellt sind, ist ein einfaches Zuordnenvon MAP und Task über ein Dialogfenster möglich.

Tipp!

Verwenden Sie zum Erstellen von Maschinenmodulen die Vorlage EmptyModule im Ordner

A65_EmptyModule, um das Zuordnen von Modulapplikation und Tasks einfacherdurchführen zu können.

So gehen Sie vor:

1. Rechtsklick auf den Ordner A11_ModuleAppCalls:

• Create Task Call aufrufen.

2. Im folgenden Dialogfenster die Modulapplikation im Bereich (Beispiel:

MM_NewModule) markieren, im Bereich die Task markieren, zu der die MAP zuzuordnen ist.• Die jeweilige MAP mit <</>> der Task zuordnen/Zuordnung aufheben.

[8-1] Beispiel: ModuleApp1 ist der höchstprioren Task Task_High zugeordnet.

• Zuordnung durch Klicken auf OK bestätigen.

Page 58: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateZuordnen der Modulapplikation (MAP) zur Task

58 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Manuelles Zuordnen

So gehen Sie vor:

1. Ordner A11_ModuleAppCalls doppelklicken.

2. Aufruf der Modulapplikation im Programmteil der entsprechenden Task ergänzen (Beispiel: MAC_Task_high).Hinweis: Die Programmiersprache von MAC_Task_xxx (PRG) ist FUP (Funktionsbausteinsprache).• Mit der Eingabehilfe die Struktur MM_Par.sc<Modulname> zuweisen (Element:

Application).

Hinweis: In der Eingabehilfe ist die Option Namensraum-Präfix einfügen zu aktivieren.

Ergebnis: Das Maschinenmodul ist jetzt...• ...in den Maschinenmodulbaum (MMT) eingebunden.• ...durch die interne Zustandsmaschine steuerbar.

Page 59: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 59

Arbeiten mit dem ApplicationTemplateInstanzen eines Maschinenmoduls entfernen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.6 Instanzen eines Maschinenmoduls entfernen

Die zuvor eingefügten Instanzen eines Maschinenmoduls sind im Ordner A55_VarLists aus denglobalen Variablenlisten zu entfernen.

So gehen Sie vor:

1. Ordner A55_VarLists doppelklicken.

2. Globale Variablenliste MM_Dcl doppelklicken.

3. Rechtsklick auf die zu löschende Instanz (Beispiel: NewModule):

8.7 Maschinenmodule entfernen

Um ein Maschinenmodul inklusive aller Instanzen aus dem »PLC Designer«-Projekt zu entfernen, ist

der Befehl Löschen auszuführen.

So gehen Sie vor:

Per Rechtsklick auf den Modulnamen im Ordner A70_MachineModuleSources den

Befehl Löschen ausführen.

8.8 Modulkennung

[8-2] Beispiel: Strukturansicht der Komponenten eines MFB_MachineControl des Maschinenmoduls MM_Machine

• Jedes Maschinenmodul ist durch eine eindeutige Modulkennung identifizierbar, die in jedem MFB des jeweiligen Maschinenmdouls hinterlegt ist.

• Die Modulkennung ist mit der Bezeichnung CompID im BaseChannel definiert und durch die Methode setCompIDAndVersion() setzbar.

Page 60: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateModulkennung

60 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Die jeweilige Modulkennung (CompID) ist in der Visualisierung unter Machine Module Details

sichtbar: Ordner A20_Visualisation L_Main, Schaltfläche Module List.

Tipp!

Vergeben Sie bei jedem neu erstellten Maschinenmodul eine passende Kennung CompID.

Beim Überarbeiten eines Moduls ist es hilfreich, die Version entsprechend zu aktualisieren.

Page 61: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 61

Arbeiten mit dem ApplicationTemplateAchse einfügen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.9 Achse einfügen

Um eine Achse an ein Maschinenmodul anzubinden, ist dies beim Erstellen eines Maschinenmodulszu berücksichtigen.

• Das folgende Beispiel zeigt exemplarisch, wie eine Achse an das Maschinenmodul MM_Module2 anzubinden ist.

• Die Achse ist an die höchstpriore Task MAC_Task_High anzubinden.

So gehen Sie vor:

1. Die Modulapplikation aufrufen, in der eine Achse anzubinden ist:

• Die Modulapplikation um die Deklaration erweitern: AXIS: AXIS_REF_SM3

2. Im Ordner A11_ModuleAppCalls die Task aktualisieren, in der die Modulapplikation

eingebunden ist: MAC_Task_High• Den vorhandenen Modulnamen (hier: MAP2_Modul2_App1) im FB der

Modulapplikation löschen:

3. Den Namen der Modulapplikation (Beispiel: MAP_Module2_App1) dem FB zuordnen:

Page 62: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateAchse einfügen

62 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

4. Den Namen der Instanz (Beispiel: MM_Dcl.Module2.App1) der Modulapplikation zuordnen:

5. Die Achse der Modulapplikation zuordnen. Voraussetzung dazu ist, dass der reale Maschinenaufbau im »PLC Designer«-Projekt abgebildet ist. Realen Maschinenaufbau im »PLC Designer« abbilden ( 42)(Der Eingang dwTestCounter erhält keine Übergabevariable.)

• Gewünschte Achse auswählen (Beispiel: SM_Drive_ETC_9400HL)• OK klicken, um die Achse einzufügen.• Die Achse ist an das Maschinenmodul angebunden:

Page 63: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 63

Arbeiten mit dem ApplicationTemplateI/O-Module des I/O-System 1000 mit einem Maschinenmodul einbinden

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.10 I/O-Module des I/O-System 1000 mit einem Maschinenmodul einbinden

Dieses Kapitel beschreibt, wie aus einem Maschinenmodul auf die Module eines über CANangeschlossenes I/O-System zugreifbar ist.

Beispiel: Aus dem Maschinenmodul MM_Modul1 auf drei digitale Ein-/Ausgänge und einemanalogen Eingang des I/O-System 1000 zugreifen.

So gehen Sie vor:

1. Rechtsklick I_O_Modul_Koppler• Menübefehl Geräte suchen ausführen

Das nachfolgende Dialogfenster zeigt alle identifizierten I/O-Module an.

• Betätigen Sie die Schaltfläche Alle Geräte ins Projekt kopieren, um alle gefundenen Geräte in das Projekt einzufügen.

Page 64: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateI/O-Module des I/O-System 1000 mit einem Maschinenmodul einbinden

64 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2. Die Variablen-Namen, die im Maschinenmodul verwendet werden und eine Anbindung an das I/O-System haben, sind in der Struktur MM_IO zusammengefasst.

3. Die Variablen sind den physikalischen I/O-Modulen zuzuordnen.

4. Die Option Variablen immer aktualisieren ist durch Setzen des Häkchens ( ) zu aktivieren.

Page 65: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 65

Arbeiten mit dem ApplicationTemplateModulapplikationen erstellen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.11 Modulapplikationen erstellen

Dieses Kapitel beschreibt, wie Sie eine Modulapplikation zu erstellen ist.

Tipp!

Im ApplicationTemplate sind alle Stellen mit dem SchlüsselwortAT_ACTION_CREATE_NEW_MODULEAPPLICATION gekennzeichnet, die zu editieren sind,wenn eine neue Modulapplikation zu erstellen ist.

Die Suchfunktion im »PLC Designer« erleichtert das Finden der zu editierenden Stellen:• Menübefehl BearbeitenSuchen&ErsetzenSuchen ausführen• Gewünschtes Schlüsselwortes eingeben und suchen/weitersuchen, um an die

entsprechenden Stellen im ApplicationTemplate zu navigieren.

Beispiel: Erweitern des Maschinenmoduls MM_Module1 um eine Modulapplikation.

So erstellen Sie eine Modulapplikation:

1. Den Ordner MM_Module1\ModApp1 kopieren (Rechtsklick: Kopieren) und in den

Maschinenmodul-Ordner MM_Module1 einfügen (Rechtsklick: Einfügen).

Folgende Elemente sind (über Rechtsklick Eigenschaften) umzubenennen:

• Der Ordnername (vorher: ModApp1): ModApp2

• Ausgangssituation:• Ein Maschinenmodul (Beispiel:

MM_Module1) ist um eine Modulapplikation zu erweitern.

• Erstellen Sie die Modulapplikation in folgendem Ordner des Maschinenmoduls:

MM_Module1\ModApp1

Page 66: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateModulapplikationen erstellen

66 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Der FB-Name (vorher: MAP_Module1_App1): MAP_Module1_App2

Die Modulapplikation ist nun eingefügt.

Im Funktionsbaustein MFB_Module1 ist die eingefügte Modulapplikation zu deklarieren:

8.11.1 Funktion des eingefügten Modulapplikation anpassen - Übersicht

Die Programmierung ist in folgenden Ordnern anzupassen, um die gewünschte Funktion der Modulapplikation zu erreichen:

• Gewünschte Parameter anpassen, wie beispielsweise Fehlerreaktionen und Fehlernummern.

• Die Methode SetErrors im Ordner

BasicFunctions ist entsprechend anzupassen, sofern von dieser Modulapplikation heraus Fehler auszulösen sind.

• Soll die Zustandsmaschine (Statemachine) dieser Modulapplikation anders arbeitet als die Modulapplikation 1, sind die Stati passend zu programmieren.

Page 67: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 67

Arbeiten mit dem ApplicationTemplateModulapplikationen erstellen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.11.2 Häufig gestellte Frage: Zusammenhang zwischen MFB und MAP

Funktionsbaustein MFB_Module1

Der MachineModuleTree (MMT) bildet den mechatronischen Aufbau des Automationssystems mitHilfe der MFB-Funktionsbausteine (MFB_Modulexx) ab.

• Ein Instanziieren des MFB_Module1 ist in der Struktur MM_Dcl des Ordners

A55_VarLists durchzuführen.

• Die Instanz ist in den MMT an der gewünschten Position einzufügen.

[8-3] Beispiel: Maschinenmodulbaum im ApplicationTemplateCounter

• Ein Maschinenmodul bildet eine „Klammer“ um die Modulapplikationen, die sich im Maschinenmodul befinden.

• Die Modulapplikationen sind daher innerhalb des Maschinenmoduls zu deklarieren.

Mit folgender Deklarationszeile ist die Modulapplikation MAP_Module1_App1 zu instanziieren,damit die Instanz in der Modulapplikation der ModuleAppCalls entsprechend der Task aufrufbar ist:

• Die Anweisung parentModule:= THIS^ bindet die Modulapplikation App1 an die Basisfunktionen von allen Maschinenmodulen an (beispielsweise Zustandsmaschine, Fehlerbehandlung, BaseChannel). Dadurch die Modulapplikation App1 auf die Basisfunktionen des ApplicationTemplates zugreifen.

• Die ACD-Struktur ist manuell zuzuweisen. Die Struktur AppChannelData (ACD) ( 76)

[8-4] Beispiel: App1

App1: MAP_Module1_App1 := (parentModule := THIS^);

Page 68: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateModulapplikationen erstellen

68 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

[8-5] Verknüpfung von Maschinenmodul-MFB, Modulstrukturbaum (MMT) und Taskzuordnung der Modulapplikation (MAC)

8.11.3 Innerhalb der Modulapplikation programmieren

Um die Teilfunktionen einer Modulapplikation zu strukturieren, sind die Aktionen desApplicationTemplates zu verwenden. Programmier-Empfehlungen zum Strukturieren ( 29)

Tipp!

Beim Programmieren mit dem ApplicationTemplate ist es empfehlenswert, die imApplicationTemplate enthaltenen Methoden zu verwenden.

Statemachine (Zustandsmaschine) ( 80)

Errorhandling (Fehlerbehandlung) ( 96)

Die Struktur AppChannelData (ACD) ( 76)

Wo finde ich was in derGeräte-Ansicht?

• MFB

Hinweis!

Ein Maschinenmodul muss mindestens eine Modulapplikation enthalten, die einem ModulAppCall (und damit einer Task) zugeordnet wird!

Page 69: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 69

Arbeiten mit dem ApplicationTemplateModulapplikationen erstellen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.11.4 Modulapplikation einbinden

Dieser Abschnitt beschreibt die Vorgehensweise zum Einbinden einer neu erstelltenModulapplikation in ein Maschinenmodul.

Tipp!

Im ApplicationTemplate sind alle Stellen mit dem SchlüsselwortAT_ACTION_ADD_MODULEAPPLICATION gekennzeichnet, die zu editieren sind, wenn eineneue Modulapplikation einzubinden ist.

Die Suchfunktion im »PLC Designer« erleichtert das Finden der zu editierenden Stellen:• Menübefehl BearbeitenSuchen&ErsetzenSuchen ausführen.• Gewünschtes Schlüsselwortes eingeben und suchen/weitersuchen, um an die

entsprechenden Stellen im ApplicationTemplate zu navigieren.

Beispiel: Einbinden der Modulapplikation in die Task Task_Mid.

So binden Sie eine Modulapplikation ein:

Das Beispiel zeigt anhand des Maschinemoduls MM_Module1, wie die neu erstellteModulapplikation App2 in das ApplicationTemplate einzubinden ist.

1. Aufruf der neu erstellten Modulapplikation in der entsprechenden Task (Ordner

A11_ModuleAppCalls, Baustein MAC_Task_Mid).• Den Baustein MAP_Module markieren.

• Den Baustein kopieren und einfügen (Rechtsklick: Kopieren/ Einfügen)

Page 70: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateModulapplikationen erstellen

70 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2. Die neue Modulapplikation (MAP) einbinden.• Auf den FB-Namen klicken

• Eingabehilfe durch Betätigen der Schaltfläche aufrufen.

• Mit der Eingabehilfe aus dem Element Application die gewünschte Modulapplikation auswählen, die in die Task eingebunden werden soll.

Beispiel: Modulapplikation MAP_Module1_App2

3. Schaltfläche OK betätigen, um die Modulapplikation einzubinden.

4. Der Instanzname ist entsprechend anzupassen:• Instanznamen passend angeben, Beispiel: MM_Dcl.Module1.App2

Page 71: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 71

Arbeiten mit dem ApplicationTemplateOnline Change

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Weiterführende Informationen zum Erweitern der Visualisierung finden Sie in folgendemAbschnitt: Die Visualisierung erweitern ( 112)

8.12 Online Change

"Online Change" bedeutet, nur die geänderten Programm-/Datenteile einer laufenden Applikationin den Controller zu laden.

• Dadurch findet keine Neu-Initialisierung (Warmstart, Reset) statt.

• Der "Online Change" findet statt, nachdem alle Tasks abgearbeitet sind (Tasklücke).

8.12.1 Wann ein "Online Change" im ApplicationTemplate möglich ist

Bei folgenden Anwendungsfällen ist ein „Online Change“ ohne Einschränkungen verwendbar:

• Änderungen am Programm-Code und Anwendungsdaten, die folgende Bereiche nicht beeinflussen:

...den strukturellen Aufbau des Machine Module Tree (MMT)

...das Einbinden von Maschinenmodul-Basisfunktionen (beispielsweise der Funktionsbaustein L_EATP_ErrorSet zum Auslösen von Fehlern).

• Beim Ändern des strukturellen Aufbaus sowie beim Einbinden von Maschinenmodul-Basisfunktionen im ApplicationTemplate ist ein Online Change nicht zu verwenden!

Hinweis!

Ein "Online Change" ist nur möglich, wenn ein Übersetzungsprotokoll vorhanden ist. Nach dem Ausführen der Befehle Alles bereinigen und Applikation bereinigen ist kein "Online Change" möglich, da der Bereinigungsprozess alle Compile-Informationen (Übersetzungsprotoll) löscht.

Page 72: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Arbeiten mit dem ApplicationTemplateOnline Change

72 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

8.12.2 Wann ein "Online Change" nicht möglich ist

Bei folgenden Anwendungsfällen ist das Ausführen eines "Online Change" zu vermeiden:

• Beim Ändern der Struktur des MMT: Beispielsweise das Hinzufügen/Entfernen von Maschinenmodulen.

• Beim Ändern von Zugriffen auf Basisfunktions-Bausteinen: Beispielsweise zusätzliche Instanzen des Funktionsbausteins L_EATP_ErrorSet zum Auslösen von Fehlern.

Technische Hintergrundinformationen

Ein Neu-Generieren des ApplicationTemplates-Aufbaus (bedingt durch strukturelle Änderungen) istnur nach einem Neustart (mindestens Warmstart) möglich. Dazu ist ein erneutes Einloggen mitDownload erforderlich.

• Ein "Online Change" führt die Änderungen am Applikationsprogramm in der "Tasklücke" (alle Tasks haben ihren Durchlauf beendet) aus.

• Der Austausch der entsprechenden Programm-/Datenbausteine durch das Laufzeitsystem verursacht eine Zeitverzögerung, so dass dadurch das Task-Timing negativ beeinflusst werden kann.

Informationen zum Zeitverhalten

Folgende Faktoren bewirken, dass der Taskdurchlauf unmittelbar nach dem Online Changeverspätet startet/unwirksam ist.

Bei hoher Taskauslastung (Verhältnis von Tasklaufzeit zum Taskintervall) und daraus resultierenderkurzer Tasklücke

und/oder

Das bei einem Online Change erforderliche Verschieben von Variablen.

8.12.3 Allgemeine Programmier-Empfehlungen, die ein "Online Change" ermöglichen

Folgende Faktoren sind beim Programmieren zu beachten, um ein "Online Change" zu ermöglichen:

• Pointer und Referenzen vermeiden

Vermeiden Sie grundsätzlich die Verwendung von Pointern und Referenzen. Dadurch sind bei einemOnline Change keine besonderen Vorkehrungen zu treffen, um den ordnungsgemäßen Betrieb derApplikation sicherzustellen.

• Pointer und Referenzen in jedem Taktzyklus vermeidenSind Pointer- und Referenzwerte in jedem Takt-Zyklus neu zuzuweisen, ist sicherzustellen, dass die referenzierten Speicheradressen im ersten Taktzyklus nach einem Online Change den richtigen Wert haben.

Hinweis!

Vor allem im Hinblick auf zeitkritische Motion-Anwendungen ist ein Online Change nur auszuführen, wenn sich alle Antriebsregler mit Motion-Funktion im Stillstand befinden.Im Stillstand wirkt sich eine kurzzeitige Störung des Task-Timings (im Normalfall) nicht aus.

Page 73: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 73

Arbeiten mit dem ApplicationTemplateOnline Change

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Beachten Sie, dass beim Zuweisen eines Referenz- oder Pointerwert an einen anderen, der Quellwert zuerst im Taktzyklus zu aktualisieren ist, da ansonsten das Ziel der Zuweisung mindestens einen Taktzyklus lang den vorherigen (alten) Wert aufweist.

• {attribute 'init_on_onlchange’ } verwendenReferenz- oder Pointervariablen (sowie weitere Variablen), die mit diesem Attribut versehen sind, sind nach einem OnlineChange auf ihren Initialwert gesetzt.• Dadurch ist das Auftreten eines OnlineChange identifizierbar.• Dadurch sind Initialisierungsvorgänge erneut (nach einem abgeschlossenen Online Change)

durchführbar.

• Schnittstellen-Referenzen verwenden

Schnittstellen-Referenzen (Interfaces) werden bei einem OnlineChange automatisch geprüft undangepasst.

Beim Verwenden von Schnittstellen und Schnittstellenreferenzen für das ApplicationTemplate istzu beachten, dass das Verwenden rein funktional nicht erforderlich ist und nur zum Zwecke desOnlineChange erforderlich ist.

Um auf eine FB-Instanz zugreifen zu können, ist ein zusätzlicher Methodenaufruf der Schnittstelle(Pointer/Referenz auf die FB-Instanz) erforderlich.

Page 74: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailAuf Strukturvariablen von Maschinenmodulen zugreifen

74 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9 Architektur: Das ApplicationTemplate im Detail

9.1 Auf Strukturvariablen von Maschinenmodulen zugreifen

9.1.1 Auf moduleigene Strukturvariablen zugreifen

Die Strukturen der Maschinenmodule enthalten die Ein- und Ausgangsvariablen derMaschinenmodule zum Anbinden der Daten an das Gesamtsystem:

• I/O-Daten: Struktur MIO

• Parameter/Daten des Rezepturverwalters: Struktur MPar

• Persistente Daten: Struktur MPD

• Daten der Visualisierung: Struktur MVis

Das folgende Beispiel zeigt, wie eine Strukturvariable für eine externe Visualisierung (die der MAPzugeordnet ist) innerhalb einer Modulapplikation aufzurufen ist (beim Einfügen eines Moduls mitautomatisch passenden Namen sind die passenden Einträge automatisch hinzugefügt):

[9-1] Auszug aus der Struktur MVIS_scMachine

Strukturen (Structs) für ...

...IOs

...Parameter (Rezepturverwalter)

...persistente Daten

...externe Visualisierung

// MVis_scMachine// für MAP1diPieces : DINT;

// für MAP2diLength : DINT;

Page 75: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 75

Architektur: Das ApplicationTemplate im DetailAuf Strukturvariablen von Maschinenmodulen zugreifen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

[9-2] Auszug aus der Modulapplikation (MAP)

Der dazugehörige Programmaufruf in der Maschinenapplikation hat die folgende Syntax:

[9-3] Beispielprogramm, das der Visualisierungsvariablen diPieces den Wert 4711 zuweist.

9.1.2 Auf Strukturen von anderen Maschinenmodulen zugreifen

Die globalen Maschinenmodul-Strukturen sind im Ordner A55_VarLists instanziert.

• Dadurch sind die Strukturen und Maschinenmodule des ApplicationTemplates wiederverwendbar.

• Die Strukturvariablen eines beliebigen Maschinenmoduls sind von einem anderen Maschinenmodul aus verwendbar.

• Um die Variablen einer globalen Struktur des Maschinenmoduls 1 (Beispiel: MM_Module1) in einer anderen Maschinenapplikation von Maschinenmodul 2 (Beispiel: MM_Module2) nutzen zu können, ist folgender Programmaufruf erforderlich:

[9-4] Beispielprogramm: Auf die Struktur MM_Vis von Modul 1 zugreifen.

VAR_IN_OUT/// ------------------ START OF USER SPECIFIC BLOCK ---------------------

/// Add the needed declarations of Par, Vis, IO and PD access herePar: MPar_scMachine;Vis: MVis_scMachine;IO: MIO_scMachine;PD: MPD_scMachine;

/// ------------------- END OF USER SPECIFIC BLOCK ----------------------END_VAR

Vis.diPieces := 4711;

diPiecesModul1 := MM_Vis.scModule1;

Page 76: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailDie Struktur AppChannelData (ACD)

76 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.2 Die Struktur AppChannelData (ACD)

Sofern benötigt, ist die Datenstruktur vom Typ MACD_scModulname im gewünschtenMaschinenmodul (MFB) zuweisbar.

Die Datenstruktur muss die in der Bibliothek L_EATP_ApplicationTemplate enthaltene StrukturL_EATP_ACD_Base erben. Die Bibliothek L_EATP_ApplicationTemplate ( 118)

• Die Struktur MACD_scModule1 definiert die Variable diCounter vom Datentyp DINT.

[9-5] Aufbau der ACD-Struktur mit vererbter Struktur L_EATP_ACD_Base

• Der MACD_sc<Modulname> ist mit den benötigten Datentypen individuell erweiterbar.

• Durch die geerbte Struktur sind in der ACD-Struktur spezielle Steuer- und Statusbits verfügbar.

• In der Struktur ist der Baustein L_EATP_CriticalSection instanziiert, der einen konsistenten Austausch von Datenaustausch gewährleistet (sofern der FB korrekt verwendet wird).

L_EATP_CriticalSection ( 125)

Weiterführende Informationen zu der Struktur L_EATP_ACD_Base: L_EATP_ACD_Base (ACD-Struktur) ( 135)

9.2.1 ACD-Struktur im MFB deklarieren/registrieren

Um die ACD-Struktur in den Modulapplikationen (MAPs) eines MFBs und dessen Master verwendenzu können, ist die Instanz der ACD-Struktur im MFB lokal zu deklarieren.

[9-6] Deklaration der ACD-Struktur im MFB_Module1

Die ACD-Struktur ist im Programmteil des MFB registriert, um Sicherheitsmechanismen zuaktivieren.

• An die Methode RegisterACD() ist der zu registrierende Instanzname und die Größe der Struktur zu übergeben.

• Die Struktur ist in jedem Zyklus neu zu registrieren. (Eine fehlende Registrierung löst einen Infrastrukturfehler aus.)

Page 77: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 77

Architektur: Das ApplicationTemplate im DetailDie Struktur AppChannelData (ACD)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

[9-7] Registrierte ACD-Struktur im MFB_Module1

9.2.2 Auf die ACD-Struktur zugreifen - Mit der Modulapplikation des MFB

[9-8] Schematische Darstellung: Von der Modulapplikation (MAP) eines Maschinenmoduls (MM_Module) auf die ACD-Struktur zugreifen

Um mit der Modulapplikation (MAP) des MFBs auf die ACD-Struktur zuzugreifen, sind...

• ...ein POINTER auf die ACD-Struktur und

• ...eine Referenz auf die ACD-Struktur in der gewünschten Modulapplikation zu deklarieren.

[9-9] Deklaration von POINTER und REFERENZ auf die ACD-Struktur in der MAP des Maschinenmoduls MM_Module1

Page 78: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailDie Struktur AppChannelData (ACD)

78 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Im Programmteil der Modulapplikation (MAP) ist der Zugriff auf die ACD-Struktur durch dieMethode AccessACD() zu gewährleisten:

[9-10] Programmteil der Modulapplikation MAP_Module1_App1: Zugriff auf die ACD-Struktur zertifizieren

Dadurch ist ein Lese-/Schreibzugriff mit Hilfe der Referenz und der Intellisensefunktion auf dieDateninhalte der ACD- Struktur möglich:

[9-11] Kommando zum Schreiben von Daten auf die ACD-Struktur

9.2.3 Auf eine ACD-Struktur zugreifen - Mit der Modulapplikation des MFB-Master-Moduls

[9-12] Schematische Darstellung: Von der Modulapplikation (MAP) des Masters (MM_Machine) auf die ACD-Struktur zugreifen

Damit eine Applikation des Master-Moduls auf die ACD-Struktur eines unterlagertenMaschinenmoduls zugreifen kann, sind im Deklarationsteil der Modulapplikation des Masters einPointer und eine Referenz auf die ACD-Struktur des Slaves zu deklarieren.

Page 79: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 79

Architektur: Das ApplicationTemplate im DetailDie Struktur AppChannelData (ACD)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

[9-13] Deklaration von POINTER und REFERENZ auf die ACD-Struktur in der MAP des Master-Maschinenmoduls MM_Machine

Im Programmteil der Modulapplikation (MAP) des Masters ist der Zugriff auf die ACD-Strukturdurch die Methode AccessACD() zu gewährleisten:

[9-14] Programmteil der Modulapplikation MAP_Machine_App1: Zugriff auf die ACD-Struktur zertifizieren

Dadurch ist ein Lese-/Schreibzugriff mit Hilfe der Referenz und der Intellisensefunktion auf die ACD-Struktur des Slaves möglich:

[9-15] Kommando zum Lesen des Datenfelds der ACD-Struktur

Page 80: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailStatemachine (Zustandsmaschine)

80 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.3 Statemachine (Zustandsmaschine)

Das Maschinenmodul (das sich auf der obersten Ebene des MaschineModulTree MMT befindet) dieZustandsmaschine von allen untergeordneten Maschinenmodulen steuert.

• Die dadurch ausgelösten Zustandsübergänge beeinflussen die untergeordneten Maschinenmodule.

9.3.1 Zustandsübergänge und Bedingungen - Übersicht

Dieser Abschnitt stellt die einzelnen Zustandsübergang der Zustandsmaschine desApplicationTemplates dar. Zu jedem Zustandsübergang sind die jeweils erforderlichenBedingungen angegeben. Die Zustandsübergänge in Bezug zum Text nummeriert:

Kennzeichnung Zustand/Bezeichner Beschreibung

InitialisierungInit

Ein Initialisieren des Moduls/der Modulapplikation ist immer erforderlich.

• Nach einem RESET ist der Zustandsübergang "Init""Ready" gesperrt.

• Anschließend ist der Zustandsübergang "Init""Ready" von der Modulapplikation (nach abgeschlossener Initialisierung) freizugeben.• Die Methode SMEnableInitToReady(TRUE/FALSE) gibt den

Zustandsübergang frei/sperrt diesen.

Freigabe-/Sperrmechanismus• ...erlaubt den Modulapplikationen, den jeweiligen

Zustandsübergang zu sperren/freizugeben.

...

RuhezustandReady

Betriebsbereit. Dies ist der Grundzustand der Zustandsmaschine.

HandbetriebManual

Freigabe-/Sperrmechanismus• In diesem Zustand ist der Antriebsregler im Handfahrmodus

steuerbar, beispielsweise zum Reinigen oder Wechseln des Werkzeugs.• Durch Setzen der einzelnen Steuerbits ist der Antriebsregler

manuell (Jog1, Jog2, QSP, ErrorReset...) steuerbar.• Dieser Zustand erlaubt den Modulapplikationen, den zugrunde

liegenden Zustandsübergang zu sperren/freizugeben.

Page 81: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 81

Architektur: Das ApplicationTemplate im DetailStatemachine (Zustandsmaschine)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Sonderzustand "Warning"

"Warning" ist ein Sonderzustand (unabhängiger, "orthogonaler" Zustand), der dasBetriebsverhalten des Maschinenmoduls nicht beeinflusst.

• Mögliche Stati:...aktiv: "Warning" (oder: ...nicht aktiv: "No Warning")

9.3.2 Ausgangszustand der Zustandsübergänge

Die Zustandsübergänge zwischen der Modul-Zustandsmaschine und den Modulapplikationenbefinden sich wie folgt im Initialzustand:

Mit Hilfe von Methoden sind die Zustandsübergänge beeinflussbar (freigeben/sperren).

Service Service-Betrieb zu Wartungszwecken• MM_Modul1: Wert laden (Beispiel: 123)• MM_Modul2: Wert laden (Beispiel: 567)

Automatic Automatik-Betrieb• MM_Modul1: Inkrementieren (50 Einheiten pro Sekunde)• MM_Modul2: Inkrementieren (20 Einheiten pro Sekunde)

...

BenutzerdefiniertMode 1...2

Benutzerdefinierbare Stati• ...sind abhängig von der Anwendung der jeweiligen Maschine

Homing Im Zustand "Homing" wird der Antrieb referenziert. Entweder wird die Home-Position direkt gesetzt oder eine Referenzfahrt gestartet.

...

KommendeFehlerzustände

Können zu beliebigen Zeitpunkten auftreten.• Ein Maschinenmodul, Maschinenmodule gleicher

Hierarchieebene oder untergeordnete Slaves können Fehler auslösen.

• Die Modulapplikation kann die Zustandsübergänge zum Fehlerzustand nicht sperren.

• Mit der Programmierung der Maschinenmodule ist definierbar, wie auf einen Fehlerzustand zu reagieren ist.

...

Fehler Zustand "Fehler"

,

BetriebsbereitReady

Zustand "Betriebsbereit"• Nach erfogreicher Fehlerbehebung/Quittieren des Fehlers

Quickstop Zustand "Schnellhalt"• Quittierpflicht ist paramterierbar.

FehlerFault

Zustand "Systemfehler"• Zum Beenden ist Reset der PLC erforderlich.

SystemfehlerSystemfault

Zustand "Fehler"• Ist quittierpflichtig.

Kennzeichnung Zustand/Bezeichner Beschreibung

Zustandsübergang Beschreibung

2-13 Sind im Ausgangszustand (nach RESET) freigegeben

Page 82: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailStatemachine (Zustandsmaschine)

82 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.3.3 Die Zustandsübergänge im Detail

Der Zustand "Init" wird unmittelbar nach dem Netzschalten/Geräte-Reset erreicht.

• Die Modulapplikation führt die Initialisierung aus. Nach der Initialisierungsphase ist durch Setzen des Eingangs xEnableInitToReady die Zustandsmaschine in den Zustand "Ready" zu setzen.

• Folgende Eingangsbedingungen müssen erfüllt sein, damit der jeweilige Zustandsübergang erreicht ist:

Nummer Zustandsübergang Bedingung

1 "Init""Ready" • SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Ready); und

• Zustandsübergang ist durch die Modulapplikation freigegeben(Eingang xEnableInitToReady = TRUE)

Hinweis: Wird diese Methode während der Initialisierungsphase von jedem Maschinenmodul (MM) durchlaufen, befinden sich danach alle MMs im Zustand "Ready".

2 "Ready""Manual"

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Manual); und

• Zustandsübergang ist durch die Modulapplikation in jedem untergeordneten Maschinenmodul freizugeben (Eingang xDisableReadyToManual = FALSE)

3 "Ready""Service"

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Service); und

• Zustandsübergang ist durch die Modulapplikation freigegeben(Eingang xDisableReadyToService = FALSE)

4 "Ready""Automatic"

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Automatic); und

• Zustandsübergang ist durch die Modulapplikation freigegeben(Eingang xDisableReadyToAutomatic = FALSE)

5...7 "Ready""Mode(1...2)"

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Mode(1...2));und

• Zustandsübergang ist durch die Modulapplikation freigegeben:(Eingang xDisableReadyToMode(1...2) = FALSE)

8 "Manual""Ready"

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Ready); und

• Freigabe des Zustandsübergangs durch die Modulapplikation(Eingang xDisableManualToReady = FALSE)

9 "Service""Ready"

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Ready); und

• Zustandsübergang ist durch die Modulapplikation freigegeben(Eingang xDisableServiceToReady = FALSE)

10 "Automatic""Ready"

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Ready); und

• Zustandsübergang ist durch die Modulapplikation freigegeben(Eingang xDisableAutomaticToReady = FALSE)

11 ... 13 "Mode 1...2""Ready"

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Ready); und

• Zustandsübergang ist durch die Modulapplikation freigegeben(Eingang xDisableMode(1...2)ToReady = FALSE)

Page 83: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 83

Architektur: Das ApplicationTemplate im DetailStatemachine (Zustandsmaschine)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14 "Ready""Quickstop"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Quickstop" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Quickstop);

14 "Ready""Fault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Fault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Fault);

14 "Ready""Systemfault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "SystemFault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.SystemFault);

15 "Manual""Quickstop"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Quickstop" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Quickstop);

15 "Manual""Fault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Fault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Fault);

15 "Manual""SystemFault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "SystemFault" oder

• SetState-Anforderung des MasterbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.SystemFault);

16 "Service""QuickStop"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Quickstop" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Quickstop);

16 "Service""Fault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Fault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Fault);

16 "Service""SystemFault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "SystemFault"

• oder• SetState-Anforderung vom MasterbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.SystemFault);

17 "Automatic""QuickStop"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Quickstop" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Quickstop);

17 "Automatic""Fault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Fault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Fault);

Nummer Zustandsübergang Bedingung

Page 84: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailStatemachine (Zustandsmaschine)

84 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

17 "Automatic""SystemFault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "SystemFault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.SystemFault);

18 "Mode 1""Quickstop"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Quickstop" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Quickstop);

18 "Mode 1""Fault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Fault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Fault);

18 "Mode 1""SystemFault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "SystemFault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.SystemFault);

19 "Mode 2""QuickStop"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Quickstop" oder

• SetState-Anforderung des Masters baseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Quickstop);

19 "Mode 2""Fault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Fault" oder

• SetState-Anforderung des Masters baseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Fault);

19 "Mode 2""SystemFault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "SystemFault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.SystemFault);

20 "Homing""QuickStop"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Quickstop" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Quickstop);

20 "Homing""Fault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Fault" oder

• baseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.SystemFault);

20 "Homing""SystemFault"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "SystemFault" oder

• SetState-Anforderung des MastersbaseChannelSetNominalState(MM_Address:= 0, eState:=L_EATP_SMStates.Fault);

21 "Quickstop""Ready"

• Nach Quittieren des Fehlers (Fehlerursache beseitigen und "ErrorQuit" ausführen) und

• Automatisch nach einem Schnellhalt ("Quickstop" ausführen) Errorhandling (Fehlerbehandlung) ( 96)

22 "Fault""Ready"

Nummer Zustandsübergang Bedingung

Page 85: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 85

Architektur: Das ApplicationTemplate im DetailStatemachine (Zustandsmaschine)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.3.4 Abbildung der Stati/Zustände - Enum L_EATP_SMStates

Die verschiedenen Stati/Zustände der Zustandsmaschine sind in der EnumerationL_EATP_SMStates abgebildet. L_EATP_SMStates ( 139)

9.3.5 Stati aktivieren - Methode baseChannelSetNominalState

Das ApplicationTemplate stellt Methoden bereit, um die Maschinenmodule in einen bestimmtenZustand zu versetzen.

23 "No Warning""Warning"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "Warning".

24 "Warning""No Warning"

• Die moduleigene Fehlerbehandlung setzt die Zustandsmaschine in den Zustand "No Warning".

Nummer Zustandsübergang Bedingung

Hinweis!

Diese Methode ist verwendbar, wenn...• ...die Funktion .DisableDefaultCouplingSlave (moduleigener Soll-Zustand)

Die Funktion "DisableDefaultCouplingMaster" ( 88) aktiviert ist oder• ...die Funktion .DisableDefaultCouplingMaster (Soll-Zustand eines Slave-Moduls)

aktiviert ist. Die Funktion "DisableDefaultCouplingSlave" ( 89)

• ...das Maschinensteuerungsmodul (MM in oberster Ebene des MachineModuleTree (MMT)) sich selbst in einen bestimmten Zustand setzt und dadurch die untergeordneten Module in den gleichen Zustand wechseln.

Methodenname Übergabewert/Datentyp Beschreibung

baseChannelSetNominalState Soll-Zustand der Zustandsmaschine beim entsprechenden Slave-Modul/eigenen Modul setzen.

MM_AddressL_EATP_MM_Address

• Adresse des Moduls, dessen aktueller Zustand abzufragen ist.

• Der Wert "0" sowie die Konstante L_EATP_CONST.OWNID adressieren die moduleigene ID.

eStateL_EATP_SMStates

• Zu setzender Soll-Zustand.

Page 86: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailStandardkopplung ("DefaultCoupling")

86 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Beispiel

Der MachineModuleTree hat den folgenden exemplarischen Aufbau:

[9-16] MMT-Ansicht im ApplicationTemplateCounter mit zwei untergeordneten Maschinenmodulen

Beispiel

Das Maschinensteuermodul MFB_MachineControl setzt die untergeordneten Maschinenmodule inden Zustand "Automatic":

Eine Übersicht aller BaseChannel-Methoden finden Sie unter: Methoden-Übersicht -ApplicationTemplate ( 166)

9.4 Standardkopplung ("DefaultCoupling")

Die Zustandsmaschine im ApplicationTemplate verfügt über ein Standardverhalten. In diesemAbschnitt erhalten Sie Informationen, wie untergeordnete (Slave-)Maschinenmodulen vomStandardverhalten zu entkoppeln sind.

• Das übergeordnete Maschinenmodul gibt den untergeordneten Slaves die Soll-Zustände vor und prüft dabei die aktuellen Ist-Zustände der Slaves.

• Erkennt ein untergeordnetes Slave-Modul einen Fehler...• ...dann reagiert dieses Modul mit einer Fehlerreaktion (entsprechend der programmierten

Fehlerreaktion) und• ...leitet es diese Information an das übergeordnete Maschinenmodul weiter, das dadurch in

den Zustand "Quickstop" wechselt.• Existiert ein weiteres, übergeordnetes Maschinenmodul, dann wird die Information nach

oben geleitet und dieses Modul reagiert entsprechend mit dem Zustand "Quickstop". Das oberste Maschinenmodul leitet die Information dann wieder an die von sich untergeordneten Maschinenmodulen, die in den Zustand "Quickstop" wechseln.

Diese Standardkopplung ist durch entsprechende Programmierung deaktivierbar. Das erfordert,dass der Anwender durch eine Programmierung das Verhalten im Fehlerfall festlegt.

9.4.1 Standardmechanismen des ApplicationTemplates

• Das Standardverhalten ist aktiv, wenn das Modul im Maschinenmodulbaum (MMT) über mindestens ein untergeordnetes Slavemodul verfügt.

• Das Standardverhalten ist mit Hilfe der entsprechenden Methoden ("TRUE" ist der Initialwert) steuerbar:

baseChannelSetNominalState(MM_Address := L_EATP_CONST.OWNID, eState := L_EATP_SMStates.Automatic)

SMDisableDefaultCouplingMaster(TRUE)SMDisableDefaultCouplingSlave (TRUE)

Page 87: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 87

Architektur: Das ApplicationTemplate im DetailStandardkopplung ("DefaultCoupling")

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Eine individuelle Programmierung der Modulapplikation ist nicht erforderlich.

Durch den Standardmechanismus definierte Regeln:

1. Weist mindestens ein Slave-Modul oder das Maschinenmodul selbst einen Fehlerstatus auf ("Quickstop", "Fault" oder "Systemfault"), setzt das Maschinenmodul den Ist-Zustand auf "Quickstop". Alle Slaves erhalten die Anforderung, den Zustand "Quickstop" einzunehmen.Beispiel:Ein Maschinenmodul M hat vier untergeordnete Slaves: S1, S2, S3, S4.• S2 geht in den Fehlerstatus "ErrorState FAULT", S4 in "Quickstop".

Dies führt dazu,• ...dass M in den Zustand "Quickstop" wechselt ,• ...S1, S2, S3 erhalten die Anforderung, in den Zustand "Quickstop" zu wechseln (S4 ist bereits

im Zustand "Quickstop")

2. Liegt kein Fehlerfall vor, leitet das Maschinenmodul die moduleigene Statusanforderung an alle Slaves weiter. Der moduleigene Ist-Zustandsübergang findet erst statt, wenn alle Slaves den Zustand gewechselt haben.Beispiel:Ein Maschinenmodul M hat vier untergeordnete Slaves: S1, S2, S3, S4.• M erhält vom übergeordneten Mastermodul die Anforderung, vom Zustand "Ready" in den

Zustand "Automatic" zu wechseln.• Das Maschinenmodul M leitet den Zustandsübergang an alle Slaves weiter.• Sofern alle Slaves (S1 ... S4) den Zustandsübergang abgeschlossen haben und die

moduleigenen Bedingungen für den Zustandsübergang erfüllt sind, wechselt M in den Zustand "Automatic".

Page 88: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailStandardkopplung ("DefaultCoupling")

88 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.4.2 Die Funktion "DisableDefaultCouplingMaster"

Die Funktion "DisableDefaultCouplingMaster" entkoppelt (während des Betriebs) dieZustandsmaschine des übergeordneten Mastermoduls von den dazugehörigen Slave-Modulen.

• Erforderlich ist diese Funktion, wenn...• ...bestimmte Maschinenteile/Maschinenmodule gezielt (während des Betriebs) zu

entkoppeln sind.• ...bei den entkoppelten Maschinenteilen/Maschinenmodulen ein anderer Zustand als bei

den übrigen Maschinenmodulen notwendig ist.

• Durch einen addressierten Methodenzugriff des Master ist die Zustandsmachine des Slaves beeinflussbar. Alternativ ist die Zustandsmaschine innerhalb des Slaves programmierbar. Das Errorhandling des Slaves hat keinen Einfluss auf die Zustandsmaschine des Masters.

Beispiel

[9-17] Beispiel für einen Maschinenaufbau mit drei Hierarchieebenen.

Der Master M1.2 entkoppelt seine Zustandsmaschine von den Zustandsmaschinen deruntergeordneten Slaves M1.2.1 und M1.2.2. Das bedeutet, dass im Maschinenmodul M1.2 die Soll-Stati der untergeordneten Slave-Module M1.2.1 und M1.2.2 manuell zu programmieren sind.

• Der Methodenaufruf SMDisableDefaultCouplingMaster(TRUE) aus einer Modulapplikation (MAP) heraus aktiviert die Funktion.

• Der Methodenaufruf SMDisableDefaultCouplingMaster(FALSE) deaktiviert die Funktion.

• Der Methodenaufruf hat keine Auswirkung auf die Anbindung an die ACD-Struktur des jeweiligen Maschinenmoduls.

• Optional leitet die Methode baseChannelSetErrorQuit das Fehlerquittieren an die Slaves weiter. Mit der Variable L_EATP_GVL.xDisableGlobalErrorReset ist ein globaler Fehler-Reset aktivierbar/deaktivierbar:

• Der Master der jeweiligen Zustandsmaschine kann den Zustand eines entkoppelten Moduls (über die entsprechenden Methoden) auslesen.

• Dieser Mechanismus ist dann sinnvoll, wenn das Modul über mindestens ein untergeordnetes Slave-Modul verfügt.

[9-18] Beispielprogramm: "DefaultCouplingMaster" deaktivieren

: "Disable" = "TRUE"

L_EATP_GVL.xDisableGlobalErrorReset := FALSE; //Default-Einstellung

SMDisableDefaultCouplingMaster(xValue := TRUE);

Page 89: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 89

Architektur: Das ApplicationTemplate im DetailStandardkopplung ("DefaultCoupling")

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Methoden "DefaultCouplingMaster" - Übersicht

9.4.3 Die Funktion "DisableDefaultCouplingSlave"

Die Funktion „DisableDefaultCouplingSlave“ bewirkt ein Entkoppeln des Slave-Moduls von derZustandsmaschine des Master-Moduls (während des Betriebs).

• Erforderlich ist diese Funktion, wenn...• ...bestimmte Maschinenteile/Maschinenmodule (während des Betriebs) zu entkoppeln sind.• ...bei den entkoppelten Maschinenteilen/Maschinenmodulen ein anderes Verhalten als das

übergeordnete Maschinenmodul notwendig ist.

• Der Methodenaufruf SMDisableDefaultCouplingSlave(TRUE) einer Modulapplikation (MAP) aktiviert die Funktion, um den Slave vom Master zu entkoppeln.• Der Methodenaufruf SMDisableDefaultCouplingSlave(FALSE) deaktiviert das Funktion.

• Ein automatisches Koppeln der moduleigenen Zustandsmaschine zum übergeordneten Mastermodul ist nicht möglich.• Die Zustandsmaschine kann (lokal aus der Modulapplikation heraus) mit den Methoden des

BaseChannels die untergeordneten Slave-Module steuern. • Dadurch verhält sich die ZustandsmMFB_MachineControlschine der untergeordneten Slave-

Module genauso wie das Maschinenmodul mit der aktivierten Methode SMDisableDefaultCouplingSlave.

• Das übergeordnete Master-Modul ignoriert den Zustand eines Slave-Moduls, bei dem die Funktion DisableDefaultCouplingSlave aktiviert ist.

• Optional ist das Fehlerquittieren durch den übergeordneten Master einstellbar:

Bezeichner/Funktion Übergabewert/Datentyp Beschreibung

baseChannelGetDefaultCouplingMasterDisabled

• Fragt den Status der Methode SMDisableDefaultCouplingMaster des jeweiligen Moduls ab.

MM_AddressL_EATP_MM_Address

• Adresse des Moduls, dessen aktueller Status abzufragen ist.

• Der Wert "0" sowie die Konstante L_EATP_CONST.OWNID adressieren die moduleigene ID.

Rückgabewert/DatentypBOOL

• TRUE: des Masters ist deaktiviert

• FALSE: des Masters ist aktiviert.

SMDisableDefaultCouplingMaster• Aktiviert/Deaktiviert die

Standardkopplung des Masters.

xValueBOOL

• TRUE: Standardkopplung des Masters deaktivieren

• FALSE: Standardkopplung des Masters aktivieren

: "Disable" = "TRUE"

L_EATP_GVL.xDisableGlobalErrorReset := FALSE; //Default-Einstellung

Page 90: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailStandardkopplung ("DefaultCoupling")

90 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Der Methodenaufruf hat keine Auswirkung auf die Anbindung der ACD-Struktur des jeweiligen Maschinenmoduls.

• Der Master der Zustandsmaschine kann ein entkoppeltes Modul über die entsprechenden Methoden baseChannelGetActualState auslesen.

Auf die Zustandsmaschine zugreifen - Die Methoden des BaseChannels ( 166)

• Der Master der jeweiligen Zustandsmaschine kann den Zustand eines entkoppelten Moduls (über die entsprechenden Methoden) auslesen. Dieser Mechanismus ist sinnvoll, wenn das Modul über mindestens ein übergeordnetes Master-Modul verfügt.

Fehlerreaktion - Verhalten beim Auftreten eines Fehlers

• Die Methode DisableDefaultCouplingSlave entkoppelt das Slave-Modul von der Zustandsmaschine des Master-Moduls, Beispiel: M1.2.2 von M1.2 entkoppeln.

• Der Fehlerzustand Quickstop von M1.2 wirkt sich nicht auf M1 und M1.1 aus (Das Modul M1.2 ist von M1 entkoppelt).• Die Zustandmaschine von Master-Modul M1 wirkt sich nicht mehr auf das Modul M1.2 aus

(bedingt durch die Entkopplung).• Ein Fehlerquittieren durch das Master-Modul M1 hat keinen Einfluss mehr auf M1.2 und

dessen Slave-Module.

[9-19] Beispielprogramm: "DefaultCouplingSlave" deaktivieren

Methoden "DefaultCouplingSlave" - Übersicht

: Fehlerreaktion auf Zustand "Fault" von M1.2.2 durch

SMDisableDefaultCouplingSlave(xValue := TRUE);

Bezeichner/Funktion Übergabewert/Datentyp Beschreibung

baseChannelGetDefaultCouplingSlaveDisabled

• Fragt den Status der Methode DisableDefaultCouplingSlave des jeweiligen Moduls ab.

MM_AddressL_EATP_MM_Address

• Adresse des Moduls, dessen aktueller Status abzufragen ist.

• Der Wert "0" sowie die Konstante L_EATP_CONST.OWNID adressieren die moduleigene ID.

Rückgabewert/DatentypBOOL

• TRUE: Standardkopplung des Masters deaktivieren.

• FALSE: Standardkopplung des Masters aktivieren.

SMDisableDefaultCouplingSlave• Aktiviert/Deaktiviert die des

Slaves.

xValueBOOL

• TRUE: Standardkopplung des Slaves deaktivieren

• FALSE: Standardkopplung des Slaves aktivieren

Page 91: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 91

Architektur: Das ApplicationTemplate im DetailStatusübergänge beeinflussen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.5 Statusübergänge beeinflussen

Durch die Methoden des ApplicationTemplates sind die Statusübergänge sperrbar und könnenwieder freigegeben werden.

• Alle Methoden verfügen über einen Aufrufparameter vom Datentyp BOOL. Durch Setzen von "TRUE" wird die Funktion der jeweiligen Methoden (entsprechend des Methodennamens) ausgeführt.

[9-20] Beispielprogramm: Den Zustandsübergang "Service"->"Ready" sperren

[9-21] Beispielprogramm: Den Zustandsübergang "Service"->"Ready" freigeben

SMDisableServiceToReady(TRUE)

SMDisableServiceToReady(FALSE)

Page 92: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailStatus der Zustandsmaschine anzeigen - FB L_EATP_SMAccess

92 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Statusübergänge steuern - Die Methoden im Überblick

9.6 Status der Zustandsmaschine anzeigen - FB L_EATP_SMAccess

Mit der FUP-Methode Statemachine lässt sich der aktuelle Status der Zustandsmaschine aus einerModulapplikation (MAP) anzeigen. L_EATP_SMAccess ( 134)

• Im ApplicationTemplate ist in jedem Maschinenmodul in jeweils einer Modulapplikation eine Instanz dieses Bausteins mit dem Instanznamen SMAccess angelegt.

• Die FUP-Methode Statemachine ruft die Instanz des Bausteins L_EATP_SMAccess(SMAccess) auf.

Methode/Funktion Übergabewert/Datentyp Beschreibung

SMDisableAutomaticToReady• Steuert den Zustandsübergang

"Automatic" "Ready"

xValueBOOL

• TRUE: Zustandsübergang sperren• FALSE: Zustandsübergang

freigeben

SMDisableReadyToAutomatic• Steuert den Zustandsübergang

"Ready""Automatic"

xValueBOOL

SMDisableReadyToManual• Steuert den Zustandsübergang

"Ready""Manual"

xValueBOOL

SMDisableReadyToMode1• Steuert den Zustandsübergang

"Ready""Mode1"

xValueBOOL

SMDisableReadyToMode2• Steuert den Zustandsübergang

"Ready""Mode2"

xValueBOOL

SMDisableReadyToHoming• Steuert den Zustandsübergang

"Ready""Homing"

xValueBOOL

SMDisableReadyToService• Steuert den Zustandsübergang

"Ready""Service"

xValueBOOL

SMDisableManualToReady• Steuert den Zustandsübergang

"Manual""Ready"

xValueBOOL

SMDisableMode1ToReady• Steuert den Zustandsübergang

"Mode1""Ready"

xValueBOOL

SMDisableMode2ToReady• Steuert den Zustandsübergang

"Mode2""Ready"

xValueBOOL

SMDisableHomingToReady• Steuert den Zustandsübergang

"Homing""Ready"

xValueBOOL

SMDisableServiceToReady• Steuert den Zustandsübergang

"Service""Ready"

xValueBOOL

SMEnableInitToReady• Steuert den Zustandsübergang

"Init""Ready"

xValueBOOL

Page 93: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 93

Architektur: Das ApplicationTemplate im DetailZustandsmaschine: Abfragebeispiele

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.7 Zustandsmaschine: Abfragebeispiele

Dieser Abschnitt zeigt (in Form von Programmbeispielen), wie...

• ...auf die Zustandsmaschine zuzugreifbar ist.

• ...wie Stati abzufragen sind.

Ziel/Aufruf Beispiel

Aktuellen Zustand abfragen

• IF-Bedingung• Moduleigene/untergeordnete

Modul-Statusabfrage durch Methode

IF baseChannelGetActualState (MM_Address:= ) = L_EATP_SMStates.Manual THEN// Do something if Statemachine is in state MANUALEND_IF

• IF-Bedingung• Moduleigenen Zustand abfragen

IF StateMachine.xActStateIsAutomatic THEN// Do something if Statemachine is in state AUTOMATICEND_IF

• CASE-Anweisung• Moduleigene/untergeordnete

Modul-Statusabfrage durch Methode

CASE baseChannelGetActualState (MM_Address:= ) OF

L_EATP_SMStates.Ready:// Do something if Statemachine is in state READY;L_EATP_SMStates.Service:// Do something else if Statemachine is in state SERVICE

L_EATP_SMStates.Quickstop:// Do something else if Statemachine is in state QUICKSTOP;

END_CASE

Aktive Warnung abfragen

• IF-Bedingung• Moduleigene Warnung abfragen

IF StateMachine.xWarning THEN // Do something if warning is activeELSE // Do something else if warning is not activeEND_IF

SOLL-Zustand des Masters abfragen

• IF-Bedingung• signalbasiert mit Signal eSetState

IF StateMachine.xActStateIsAutomatic THEN IF StateMachine.eSetState = L_EATP_SMStates.Ready THEN // Do something if actual state is AUTOMATIC and set state to READY; END_IFEND_IF

Zustandsübergang von "Init" nach "Ready" freigeben (Initialisierung beendet)

SMEnableIitToReady (xValue := TRUE);

Zustandsübergang von "Automatic" nach "Ready" freigeben/sperren

In Abhängigkeit einer BOOL-Variable (hier: "xAutomaticEndOK")

IF xAutomaticEndOk = TRUE THEN SMDisableAutomaticToReady (xValue := FALSE)ELSE SMDisableAutomaticToReady (xValue := TRUE);END_IF

Page 94: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailWo ist das Verhalten eines Maschinenmoduls programmierbar?

94 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.8 Wo ist das Verhalten eines Maschinenmoduls programmierbar?

[9-22] Beispiel: Zustandsbezogene Aktionen des FBs MAP_Module1_App1

Das Verhalten eines Maschinenmoduls (ineinem bestimmten Zustand) ist in denvorbereiteten Aktionen desApplicationTemplates programmierbar.

• Aktionen sind mit dem Symbol gekennzeichnet.

Bei jedem Zyklusdurchlauf wird immerdiejenige Aktion durchlaufen, die denaktuellen Zustand der Zustandsmaschine desMaschinenmoduls repräsentiert.

• Programmteile, die nur dann erforderlich sind, wenn sich das Maschinenmodul in einem bestimmten Zustand befindet, sind direkt in diesen vordefinierten Aktionen unterzubringen.

• Die Modulvorlage MM_EmptyModule enthält eine vordefinierte Struktur mit (leeren) Aktionen.

Page 95: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 95

Architektur: Das ApplicationTemplate im DetailWo ist das Verhalten eines Maschinenmoduls programmierbar?

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.8.1 Zustandsübergang (State-Entry/State-Exit)

Jeder Wechsel einer zustandsbezogenen Aktion (in einer Aktion oder aus einer Aktion heraus) setztein bestimmtes Flag für einen Taskzyklus auf "TRUE".

• xStateEntry: Die zustandsbezogene Aktion setzt dieses Flag beim Eintritt für einen Taskzyklus auf "TRUE".

• xStateExit: Die zustandsbezogene Aktion setzt dieses Flag beim Verlassen für einen Taskzyklus auf "TRUE".

[9-23] Programmbeispiel: Aktion S04_SERVICE

IF xStateEntry THEN// Put state entry code here// ...

END_IF

// Put cyclic code here// ...

Hinweis!

Folgender Ablauf ist bei Tasktiming-bezogenen Programmbefehlen zu berücksichtigen: Das Zuordnen von Aktionen zu den einzelnen Taskzyklen ist bei einem Zustandsübergang so umgesetzt wie bei der Ablaufsprache AS:• Beim Zustandsübergang "Ready""Automatic", durchläuft der Taskzyklus...

• ...zuerst die Aktion S02_READY mit gesetztem xStateExit-Flag.• ...danach die Aktion S05_AUTOMATIC mit gesetztem xStateEntry-Flag.

Page 96: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailErrorhandling (Fehlerbehandlung)

96 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.9 Errorhandling (Fehlerbehandlung)

Das ApplicationTemplate enthält ein Errorhandling zur Ausgabe von Fehlermeldungen. Dasstandardmäßig definierte Errorhandling ist bei Bedarf veränderbar.

Das Errorhandling hat folgende Funktionen:

• In den Modulapplikationen (MAP) der Maschinenmodule sind Fehler/Warnungen/Informationen definierbar.

• Fehlerzustände innerhalb des MachineModuleTree (MMT) weiterleiten.

• Applikationsglobale Fehlerliste mit dem aktuellen Fehlerzustand aller im MMT enthaltenen Maschinenmodule.

• Das Errorhandling ist an das Logbuch des Controllers angebunden, so dass die Fehlermeldungen im Logbuch sichtbar sind.

9.9.1 Fehler definieren

Die Methode SetErrors definiert die Fehler mit den entsprechenden Eigenschaften in der jewei-ligen Modulapplikation.

Das ApplicationTemplate enthält zum Verändern des Errorhandlings den FB L_EATP_ErrorSet. AmEingang xSetError des FB L_EATP_ErrorSet sind applikationsspezifische Fehler auslösbar.

L_EATP_ErrorSet ( 127)

[9-24] FB L_EATP_ErrorSet: Fügen Sie weitere Instanzen des FBs hinzu, sofern mehr als vier Fehlereingänge) pro Instanz erforderlich sind.

Ein Fehler ist durch folgende Eigenschaften am FB definierbar:

• Der FB L_EATP_ErrorSet hat vier Eingänge xSetError[1...4] zum Setzen von Fehlern.

• Pro xSetError-Eingang ist jewweils ein Fehler setzbar.

Eigenschaft Beschreibung Weiterführende Information

Fehlernummer Eindeutige Fehlernummer (ID) 16 Bit-Fehlernummer (Datentyp WORD)

Fehlerreaktion Fehlerreaktion• Aus der Liste auswählbar.

Fehlerreaktion konfigurieren ( 97)

Quittierverhalten Angabe (ja/nein), ob der ausgelöste Fehler zu quittieren ist.

Das Quittierverhalten ist nicht bei allen Fehlerreaktionstypen veränderbar.

Fehlerreaktion konfigurieren ( 97)Fehler quittieren ( 97)

Page 97: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 97

Architektur: Das ApplicationTemplate im DetailErrorhandling (Fehlerbehandlung)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Weiterführende Informationen:

L_EATP_ErrorSet ( 127)

L_EATP_ModuleErrorHandler ( 132)

9.9.2 Fehlerreaktion konfigurieren

Die Fehlerreaktionstypen des Errorhandlers bestimmen den Zustand der moduleigenenApplikation. Tritt ein Fehler auf, bewirkt das Standardverhalten die konfigurierte Fehlerreaktion inden anderen Maschinenmodulen.

Ist eine andere Fehlerreaktion des Maschinenmoduls gewünscht, besteht die Möglichkeit, diegewünschte Fehlerreaktion im entsprechenden Maschinenmodul zu programmieren.

• Weiterführende Information zum DefaultCoupling (vordefiniertes Standardverhalten) finden Sie in folgendem Abschnitt: Standardkopplung ("DefaultCoupling") ( 86)

• Die in den Modulapplikationen (MAP) definierbaren Fehlerzustände sind in folgende Fehlerkategorien unterteilt:

9.9.3 Fehler quittieren

Das Quittieren von Fehlern löscht alle als quittierpflichtig definierten Fehlermeldungen/Fehlerursachen aus der aktuellen Fehlerliste (Error List).

Das Quittieren von Fehlern ist durch folgende Vorgehensweisen aktivierbar:

1. Dauerhaft aktivieren: Innerhalb der Modulapplikation über folgenden Programmbefehl:

Fehlertext Textuelle Beschreibung des Fehlers. Der (englischsprachige) Fehlertext ist in der Attributtabelle hinterlegt.Der Fehlertext ist immer dann zu verwenden, wenn kein übergeordneter Mechanismus zum landessprachlichen Umsetzen der Fehlernummer aktiviert ist (Beispiel: Übergeordnete Visualisierung).

DetaillierteFehlerinformationen

Für jeden Fehler ist ein Zusatzattribut (Typ: DWORD) verwendbar, das (in Zusammenhang mit der Fehlernummer) interpretierbar ist.

Beispielhaft sind bei einem Sammelfehler "Drive Error" die detaillierten Fehlerinformationen des jeweiligen Antriebsreglers verwendbar.

Priorität Priorität für Fehler vom gleichen Fehlerreaktionstyp vergeben.

Eigenschaft Beschreibung Weiterführende Information

Fehlerreaktion (geordnet nach aufsteigender Priorität)

Beschreibung/Quittierverhalten

Information Schreibt Information in das Logbuch des Controllers.• Kein Quittieren erforderlich.

Schnellhalt (Störung) Fehlerreaktion, bei der das beteiligte Maschinenmodul in den Zustand "Stopp" wechselt.

• Das Quittierverhalten ist parametrierbar.

Warnung Das Maschinenmodul/die Applikation bleibt im gleichen Zustand.• Das Quittierverhalten ist parametrierbar.

Fehler Führt dazu, dass das beteiligte Maschinenmodul eine Reaktion auslöst (beispielweise Reglersperre setzen/Impulssperre setzen).

• Das Quittierverhalten ist parametrierbar.

Systemfehler Schwerer Fehler.Neustart der Applikation erforderlich. Abhilfe: Netzschalten oder Geräte-Reset durchführen.

• Kein Quittieren möglich.

Page 98: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailErrorhandling (Fehlerbehandlung)

98 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

2. Für einen Zyklus aktivieren: Mit der Methode baseChannelSetErrorQuit, steigende Flanke FALSE TRUE. Die Methode setzt den Eingang xQuitErrors für einen Zyklus = TRUE.

Sofern mehrere Fehler auftreten, sind diese nicht einzeln quittierbar. WeiterführendeInformationen: L_EATP_ModuleErrorHandler ( 132)

9.9.4 Fehler quittieren: Reaktion im Maschinenmodul

Der Ausgang xErrorQuitActive am Baustein L_EATP_ModuleErrorHandler ist innerhalb einerModulapplikation verwendbar, um das Quittieren von Fehlern an einem eingebundenenFunktionsbaustein auszuführen.

Fehler definieren - Prinzipielle Vorgehensweise

ErrorHandler.xQuitErrors := TRUE; //Fehlerquittieren aktiv, solange Wert = TRUE

• Die Methode SetErrors ist um einen Funktionsbaustein zu erweitern.

• Der FB MAP_EmptyModul_App1 ist um die dazugehörige Deklaration zu erweitern.

• Die Eingänge xSetError[1...4] sind mit der Modulapplikation zu verknüpfen.

• Dem jeweiligen Error-Eingang ist der entsprechenden Parameter zuordnen:• Fehlernummer,• Fehlertext,• Fehlerpriorität,• Quittierverhalten

• Weiterführende Informationen: L_EATP_ErrorSet ( 127)

Page 99: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 99

Architektur: Das ApplicationTemplate im DetailErrorhandling (Fehlerbehandlung)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.9.5 Fehler auslösen

Beispiel: Fehler auslösen/weiterleiten - innerhalb eines Maschinenmoduls

Programmierzeile zum Auslösen eines Fehlers innerhalb der Maschinenapplikation:

[9-25] Beispiel: Den Fehler Error1 von FB Errors A auslösen

Innerhalb des jeweiligen Maschinenmoduls überträgt die Fehlerbehandlung die höchstprioreFehlerreaktion der aktuellen Fehler an die moduleigene Zustandsmaschine.

• Die Zustandsmaschine wechselt dadurch in den definierten Zustand des höchstprioren Fehlerreaktionstyps.

• Die Modulapplikation verarbeitet den Zustandswechsel anschließend (wie jeden weiteren Zustandswechsel).

ErrorsA.xSetError1 := TRUE;

Page 100: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailErrorhandling (Fehlerbehandlung)

100 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.9.6 Zentrales Errorhandling im ApplicationTemplate: Error List

Das Errorhandling (ErrorList-Handler) des ApplicationTemplates übermittelt alle Fehler, die in denMaschinenmodulen auftreten, an die globale Fehlerliste Error List.

So starten Sie die globale Fehlerliste:

1. Ordner A20_Visualisation, L_Main aufrufen.

2. Schaltfläche Error List klicken, um die globale Fehlerliste anzuzeigen:

• Die Fehlerliste zeigt die als quittierpflichtig definierten Fehler an, die noch anstehen/zu quittieren sind.

• Die Fehlerliste zeigt maximal 25 Fehlereinträge an. Bei mehr als 25 Einträgen informiert die Warnung (1007), dass zu viele Einträge in der Fehlerliste vorliegen:"Errorlist is full, probably missing entries"Abhilfe: Verringern Sie die Anzahl der Einträge in der Fehlerliste durch Quittieren von Fehlern.

• Die Maschinenmodule leiten die Fehlermeldungen an den ErrorList-Handler weiter.

• Die aktuellen Fehler sind dadurch in der globalen Fehlerliste Error List sichtbar.

Page 101: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 101

Architektur: Das ApplicationTemplate im DetailErrorhandling (Fehlerbehandlung)

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Informationen in der Fehlerliste

9.9.7 Übersicht Systemfehlermeldungen

Das ApplicationTemplate enthält folgende Systemfehlermeldungen. Im Fehlerfall ist die dazugehö-rige Abhilfe durchzuführen.

Spalte Inhalt/Beschreibung

MM Addr. Absolute Adresse des Maschinenmoduls. Beispiel: Module2 hat die absolute Adresse 1.2. Das bedeutet: Das Maschinenmodul befindet sich im MMT auf der zweiten Ebene mit der relativen Adresse 2.

MM Inst. Zeigt den Instanznamen des Maschinenmoduls an.

Err. No. Fehlernummer, die am Eingang wErrCode des Bausteins L_EATP_ErrorSet de-finiert ist.

Type Fehlerreaktion, die am Eingang eReaction des Bausteins L_EATP_ErrorSet de-finiert ist.

Error Text Fehlertext, der am Eingang sText des Bausteins L_EATP_ErrorSet definiert ist.

Err. Det. Detailnummer des Fehlers, die am Eingang dwErrDetail des Bausteins L_EATP_ErrorSet definiert ist.

Num-mer

Fehlertext Bedeutung/Ursache Abhilfe

1000 Duplicated MM Address on the same level

Moduladresse (MM Address) ist mehrfach innerhalb der glei-chen Ebene des Maschinenmo-dulbaums verwendet.Auf der Ebene 2,3,4 oder 5 wur-de die gleiche Moduladresse mehrfach verwendet.

Eindeutige Moduladressen vergeben/mehrfach vergebene Moduladressen än-dern. Innerhalb einer Ebene muss jede Moduladresse eindeutig sind.

1001 Missing MM Address Fehlende Moduladresse eines Maschinenmoduls.Einem Maschinenmodul im MMT wurde keine Moduladres-se zugewiesen.

Dem Maschinenmodul ist im MMT eine Moduladresse zuzuweisen.

1002 Too many Machine Modules are used

Zu viele Maschinenmodule ver-wendet. Es sind maximal 30 Maschinenmodule im MMT verwendbar.

Anzahl der Maschinenmodule reduzie-ren. Maximal 30 Module im MMT ver-wenden, optional Lenze-Support kontaktieren. Maschinenmodulbaum (MachineModuleTree - MMT) ( 19)

1003 MMT has more than 5 levels

Die Maschinenmodule sind auf auf mehr als fünf Ebenen im MMT angeordnet. De MMT un-terstützt maximal Hierarchie-Ebenenen im MMT.

Anzahl der Ebenen im MMT reduzieren. Maximal fünf Ebenen im MMT verwen-den, optional Lenze-Support kontaktie-ren. Maschinenmodulbaum (MachineModuleTree - MMT) ( 19)

1004 Duplicated Top Level Module

Es gibt mehr als ein Toplevel-Maschinenmodul/Maschinen-steuermodul (Beispiel: Modul "Machine Control").Zwei Maschinenmodule haben keinen Master: MasterBus-An-schluss eines Slave-Moduls ist nicht mit dem SlaveBus-An-schluss des Mastermoduls ver-bunden.

Fehlende Verbindung im MMT erzeugen: MasterBus-Anschluss des Slave-Moduls mit dem SlaveBus-Anschluss des Master-moduls verbinden. Alternativ ist das überflüssige Maschinenmodul zu lö-schen.

Page 102: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailErrorhandling (Fehlerbehandlung)

102 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.9.8 Fehler-Übersicht von allen Maschinenmodulen exportieren: CSV-Datei

Das ApplicationTemplate bietet die Möglichkeit, alle Fehler/Fehlerdefinitionen in eine *.CSV-Dateizu erstellen.

1005 AccessACD does not find MM Addr.

AccessACD-Methode verwen-det die falsche Slave-Adresse.Die AccessACD Methode in der MAP hat eine nicht existieren-de Moduladresse eines Sla-vemoduls bekommen.

Syntax der AccessACD-Methode in der MAP kontrollieren.

1006 ParentApp ref. of SMAccess is missing

In der MAP fehlt folgende Refe-renz auf die SMAccess-Instanz: "parentApp := This"Referenzzuweisung von SMAc-cess im Deklarationsteil (Bei-spiel: SMAccess : L_EATP_SMAccess;) der MAP wurde entfernt.

Referenzzuweisung einfügen, Beispiel: SMAccess : L_EATP_SMAccess := (parentApp := THIS^);

1007 Errorlist is full, probably missing entries

1008 ParentModule ref. of App1, App2 or App3 is missing

Im MFB fehlt die Referenz "parentModule := This" auf die MAP-Instanz.Im Deklarationsteil des MFB fehlt die Referenzzuweisung der MAP, Beispiel: App1: MAP_Machine_App1;

Referenzzuweisung Im Deklarationsteil des MFB einfügen, Beispiel: App1 : MAP_Machine_App1 : (parentModule := THIS^);

1009 AccessACD has the wrong struct size of the own module.

Die moduleigene ACD-Struktur ist nicht an die ACDAccess-Me-thode übergeben.Es muss die Struktur des eige-nen Maschinenmoduls an die AccessACD-Methode überge-ben sein.

Syntax der AccessACD-Methode kontrol-lieren, die moduleigene ACD-Struktur ist an die AccessACD-Methode zu überge-ben.

1010 AccessACD has the wrong struct size from MM Addr.

An die ACDAccess-Methode ist nicht die dazugehörige ACD-Struktur mit der angegebenen Moduladresse übergeben.Größe und Moduladresse von zugewiesener ACD-Struktur und AccessACD-Methode pas-sen nicht zusammen.

Syntax der AccessACD-Methode kontrol-lieren, die ACD-Struktur ist der ACDAc-cess-Methode mit der passenden Moduladresse zuzuweisen.

1011 ACD struct size exceeds limit <4096 bytes>

Der Dateninhalt der ACD-Struktur des Maschinenmoduls überschreitet die maximale Größe von 4096 Bytes.

Größe der Struktur verringern, optional Lenze-Support kontaktieren.

1012 CompID failed, valid:(16#3E00-16#3FFF)

Die eingestellte Komponenten- ID (CompID) liegt außerhalb des freigebenen Bereiches (16#3E00-16#3FFF).Mit der Methode "setCompIDAndVersion" ist im MFB eine CompID verwendet, die nicht in dem freigegebenen Bereich 16#3E00-16#3FFF liegt.

Komponenten ID (CompID) definieren, die im freigegebenen Bereich (16#3E00-16#3FFF) liegt.

Num-mer

Fehlertext Bedeutung/Ursache Abhilfe

Page 103: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 103

Architektur: Das ApplicationTemplate im DetailLogbuch

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Die CSV-basierte Textdatei enthält die Fehlerdefinitionen von allen im Maschinenmodulbaum (MMT) eingebunden Maschinenmodulen.

• Die CSV-Datei (Dateiname: AT_DefinedErrors.CSV) ist nach dem Erstellen aus dem »PLC Designer« im Hauptverzeichnis des Controllers zu finden (flüchtig im Flash-Speicher des Controllers). Dadurch ist die Datei während der Projektierungsphase einer Maschinenapplikation (Beispiel: für ein externes Visualisierungssystem) verwendbar.

So schreiben Sie die CSV-Datei:

Klicken Sie auf der Visualisierungsoberfläche von L_Main auf die Schaltfläche Create CSV File.

[9-26] Beispiel: Struktur der exportierten CSV-Datei

Für Experten:

• Alternativ ist der Datei-Export über xExecuteCreateCSVFile des Error List-Handlers L_EATP_GVL.ErrorListHandler aus dem Applikationsprogramm heraus aufrufbar (FALSE->TRUE Flanke).• Folgende Ausgänge liefern Informationen über den Fortschritt:

xBusyCreateCSVFile, xDoneCreateCSVFile und sInfoCreateCSVFile .

9.10 Logbuch

Das ApplicationTemplate übermittelt die Fehlerereignisse an die Logbuch-Funktion des Controllers.

• Die Logbuch-Einträge sind in chronologischer Reihenfolge im Logbuch des Controllers sichtbar.

So zeigen Sie das Logbuch des Controllers an:

1. Den Controller in der Geräte-Ansicht doppelklicken.

2. Die Registerkarte Log aufrufen, um die Inhalte des Logbuchs anzuzeigen:

• Beispiel: Logbuch-Ansicht (zwei Warnungen/Fehler). Klicken Sie die Schaltfäche , um die Ansicht zu aktualisieren.

Die Spalte Beschreibung enthält Informationen über die Ursache der jeweiligen Meldung.

Die Logbuch-Einträge (Spalte Beschreibung) haben den folgenden Aufbau:

Page 104: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailLogbuch

104 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Beispiel: M1.2, Module2, F12002, Demo: Drive Error of drive 2

<(absolute) Maschinenmodul-Adresse>, <Modul-Name>, <Fehlerreaktion mit Fehler-ID>,<Fehlertext> <(optionale) Detaillierte Fehlerinformation >

Bestandteil Ursprung

M1.2 Absolute ID des Maschinenmoduls

Module2 Name des Maschinenmoduls

F12002 ID des Fehlers, Reaktionstyp: Fehler

Demo: Drive Error of drive 2 Fehlertext

Page 105: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 105

Architektur: Das ApplicationTemplate im DetailModuldiagnose

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.11 Moduldiagnose

Zur Moduldiagnose steht eine Visualisierung zur Verfügung.

• Die Schaltflächen im Abschnitt Machine Modules rufen Detailansichten zu den Maschinenmodulen auf.

• Klicken Sie auf das gewünschte Maschinenmodul, um den jeweiligen Zustand und weitere Details anzuzeigen.

• Die Visualisierung zur Moduldiagnose ist als separate Visualisierung L_EATP_VisModuleList (beispielsweise für eigene Visualisierungen) verfügbar.

Spalte Inhalt/Beschreibung

MM Addr. Absolute Adresse des Maschinenmoduls. Beispiel: Module2 hat die absolute Adresse 1.2. Das bedeutet: Das Maschinenmodul befindet sich im MMT auf der zweiten Ebene mit der relativen Adresse 2.

MM Name Instanzname des Maschinenmoduls

ST Zeigt den Status des Maschinenmoduls an.• Grün = Alles OK• Rot = Fehler (Systemfault, Fault oder Quickstop)

CPL Kopplungsart des Maschinenmoduls• DEF = Default Coupling aktiv

Statemachine des Maschinenmoduls ist an die Statemachine des Maschi-nensteuermoduls Machine Control gekoppelt.

• CMD = Coupling Master Disabled Alle Slave-Module sind vom Maschinensteuermoduls Machine Control entkoppelt. Dadurch sind die untergeordneten Module von der Statema-chines des Maschinensteuermoduls Machine Control entkoppelt.

• CSD = Coupling Slave DisabledSlave-Modul ist vom Master entkoppelt. Dadurch ist das Modul von der Statemachine des Mastermoduls entkoppelt.

Page 106: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailMultitasking

106 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.12 Multitasking

• Das ApplicationTemplate ist Multitasking-fähig.

• Folgende Tasks sind im ApplicationTemplate definiert:

• Im Ordner A11_ModuleAppCalls ist die jeweilige Modulapplikationen der entsprechenden Task zuzuordnen.• ModuleAppCalls (MAC) sind die Aufrufe einer Modulapplikationen (MAP) von den

dazugehörigen Maschinenmodulen (MM) der entsprechenden Task.

[9-27] Entsprechend der Taskkonfigurationen sind die dazugehörigen Programme (CallFree, CallHigh und CallMid) aufgerufen. Diese wiederum rufen die ModulAppCall-Programme (MAC_Task_Free, MAC_Task_High und MAC_Task_Mid) auf.

[9-28] Das ModulAppCall-Programm enthält Maschinenmodul-Applikationen, die der entsprechenden Task zugeordnet sind.

• Das Anbinden an die Peripherie (wie beispielsweise I/O-System und Visualisierung) ist im entsprechenden ModulAppCall-Programm (MAC) vorzunehmen.

• Die Modulapplikationen , die den entsprechenden Tasks zugeordnet sind, befinden sich...

• ...im Ordner A70_MachineModuleSources oder• ...in den entsprechenden Modulbibliotheken.

Taskebene Priorität Typ Zykluszeit(fett = Defaultwert)

Task_High hoch zyklisch kurz (1, 2, 4 ms)

Task_Mid mittel zyklisch mittel (4, 6, 8, 16 ms)

Task_Free gering freilaufend freilaufend

Page 107: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 107

Architektur: Das ApplicationTemplate im DetailKonsistente Datenübertragung

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.13 Konsistente Datenübertragung

Ein definierter Datenbereich wird so zwischen zwei Tasks ausgetauscht, dass dieser konsistent andie andere Task übergeben wird.

Die Datenkonsistenz ist...

• ...abhängig von den Daten gewährleistet oder

• ...bei bestimmten Anwendungsfällen zu gewährleisten. Je nach Anwendungsfall ist wie folgt vorzugehen:

Reservieren/Sperren von Datenbereichen der AppChannelData(ACD)-Struktur

Die ACD-Struktur enthält einen Baustein L_EATP_CriticalSection, der mit folgenden Methoden dieDatenkonsistenz von echtzeitkritischer Daten gewährleistet. Sollten mehrere Bausteine benötigtwerden, sind in der ACD-Struktur weitere Instanzen des Bausteins verwendbar, Instanzname desBausteins CS (Critical Section) . L_EATP_CriticalSection ( 125)

Um die Multitasking-Funktionalität in einemMaschinenmodul nutzen zu können, muss dasMaschinenmodul mehr als eineModulapplikation enthalten.

Anwendungsfall Datenelement/Datentyp Beschreibung

Datenkonsistenz innerhalb einzelner Datenelemente

GanzzahligINT

DINT

Direkter Zugriff ist erlaubt.

BitfelderWORD

DWORD

Datenkonsistenz innerhalb eines Datenelementes

GleitkommaLREAL

Beim Einsatz des Controllers ist die Datenkonsistenz einer LREAL-Variable gewährleistet.

Datenkonsistenz für mehr als ein Datenelement

Die Datenbereiche sind...• ...vor dem ersten Zugriff mit der

Methode Lock() für andere Tasks zu sperren.

• ...nach dem letzten Zugriff mit der Methode Unlock() wieder freizugeben.

Methode Funktion

Lock() Datenbereich des ACD-Struktur reservieren .

Unlock() Reservierte Daten der ACD-Struktur freigeben.

LockState() Sperrzustand eines Datenbereiches abfragen.

Page 108: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailKonsistente Datenübertragung

108 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Tipp!

Rufen Sie den Baustein L_EATP_CriticalSection über den Instanznamen CS (Critical Section)in der ACD-Struktur auf.

1. Bevor auf den zu übertragenden Datenbereich konsistent zugreifbar ist, ist in einer Task die Methode Lock() aufzurufen.

• Die Methode Lock() liefert einen BOOL-Wert zurück, wenn......eine andere Task die Methode bereits aufgerufen hat ("TRUE")....keine Task die Methode bisher aufgerufen hat ("FALSE").

[9-1] Beispiel: Die Methode Lock() sperrt echtzeitkritische Daten der ACD-Struktur.

2. Nach dem letzten exklusiven Zugriff auf den Datenbereich muss eine Task die Methode Unlock() aufrufen, um den Datenbereich freizugeben.

[9-2] Beispiel: Die Methode UnLock() gibt einen reservierten Datenbereich der ACD-Struktur frei.

Programm in Maschinenmodul 1 ( TaskMidPriority = 4 ms):

Hinweis!

Performanceverlust vermeiden

Vermeiden Sie es, echtzeitkritische Daten der ACD-Struktur durch mehrere MAPs innerhalb des gleichen Maschinenmoduls durch die CriticalSection zu sperren.• Reservieren Sie für jede MAP einen eigenen Bereich für echtzeitkritische Daten in der

ACD-Struktur , um zu verhindern, dass die Modulapplikation(MAP) einer niederpriorisierten Task(Task_Mid) die MAP einer höherpriorisierten Task(Task_High) ausbremst.

Hinweis!

Eine Task darf den Datenbereich nur verwenden (lesend oder schreibend), wenn die Methode appChannelLock() den Wert TRUE zurückgeliefert hat.

IF Lock() THEN For i:=0 TO 2000 by 1 DO rACDOwn.aCAMData[i] := aCAMData[i];END_FOR

IF Lock() THEN For i:=0 TO 2000 by 1 DO rACDOwn.aCAMData[i] := aCAMData[i];END_FOR

Unlock()

IF Lock() THEN For i:=0 TO 2000 by 1 DO rACDOwn.aCAMData[i] := aCAMData[i];END_FOR

Unlock()

Page 109: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 109

Architektur: Das ApplicationTemplate im DetailInternal Control

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Programm in Maschinenmodul 2 ( TaskHighPriority = 2 ms):

9.14 Internal Control

Die Funktion "Internal Control" ermöglicht es, ein Slave-Modul von dessen Master-Modul zuentkoppeln. Dies ist beispielsweise bei einer Inbetriebnahme sinnvoll.

[9-29] Beispiel MM_Module1: Die Schaltfläche Activate aktiviert das "Internal Control"

So verwenden Sie das "Internal Control":

1. Ordner A20_Visualisation, L_Main aufrufen.

2. Gewünschtes Maschinenmodul aktivieren, bei dem das "Internal Control" zu aktivieren ist, Beispiel: MM_Module1.

3. Zum Aktivieren die Schaltfläche Internal Control klicken.

4. Passwort durch Klicken in das nun sichtbare Textfeld eingeben.• Standardwert: lenze• Passworteingabe mit Enter bestätigen.

5. Das Maschinenmodul ist nun von der Zustandsmaschine entkoppelt und manuell über die Schaltflächen bedienbar:

IF NOT LockState() THEN For i:=0 TO 2000 by 1 DO aCAMData[i] := rACDModule1.aCAMData[i];END_FOREND_IF

Page 110: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Architektur: Das ApplicationTemplate im DetailInternal Control

110 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

9.14.1 Internal Control beenden

• Um das aktivierte "Internal Control" zu beenden, ist die Schaltfläche Internal Control erneut zu klicken.

• Bei aktiviertem "Internal Control" ist das entsprechende Maschinenmodul manuell mit Hilfe der Schaltflächen bedienbar.• Das bewirkt, dass das Maschinenmodul entkoppelt ist und die Zustandsmaschine

beeinflussbar ist.

9.14.2 Was bewirkt das Internal Control?

Bei aktiviertem „Internal Control“ eines Maschinenmoduls sind die Schreibvorgänge des Modulsauf den BaseChannel und die ACD-Struktur durch den übergeordneten Master (also von außen)deaktiviert.

• Dadurch sind alle Zugriffe über die Methode baseChannelSet()und die ACD-Struktur auf das Maschinenmodul von außen wirkungslos.

• Zugriffe innerhalb des Maschinenmoduls sind möglich. Lesende Zugriffe (durch die Methoden baseChannelGet() und die ACD-Struktur bleiben vom „Internal Control“ unangetastet und funktionieren weiterhin von außerhalb.

• Die Variablenansicht im »PLC Designer« ermöglicht im Online-Modus (über die lokalen baseChannel-Referenzen den Zugriff auf den baseChannel.

[9-30] Instanz des Maschinenmoduls "Module1" in der Variablenansicht

Bei aktiviertem „Internal Control“...

• ...ist ein Schreibvorgang des Masters auf das Modul wirkungslos. Stattdessen setzt sich der Schreibvorgang der moduleigenen Applikation (MAP) durch.

• ...liefert ein Lesevorgang des Masters oder der moduleigenen MAP die aktuellen Werte des Maschinenmoduls.

Bei deaktiviertem „Internal Control“...

• Hervorgehoben sind...• ...die Schalter (TRUE/FALSE) zum

Aktivieren des "Internal Control" (xInternalControl)

• ...die Referenzen auf den moduleigenen baseChannel (blaue Markierung)

Page 111: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 111

Architektur: Das ApplicationTemplate im DetailInternal Control

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• ...ist ein Schreibvorgang des Masters auf das Modul möglich.

• ...setzt sich ein Schreibvorgang der moduleigenen MAP durch.

• ...liefert ein Lesevorgang des Masters oder der moduleigenen MAP die aktuellen Werte des Maschinenmoduls.

Page 112: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Visualisieren im ApplicationTemplateDie Visualisierung erweitern

112 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

10 Visualisieren im ApplicationTemplate

Das ApplicationTemplate enthält die vordefinierte Visualisierung L_Main

im Ordner A20_Visualisation

Um eine weitere Visualisierung aus den Visualisierungselementen des ApplicationTemplates zuerstellen, sind die im folgenden Abschnitt beschriebenen Schritte auszuführen.

10.1 Die Visualisierung erweitern

In diesem Abschnitt erfahren Sie, wie Sie die im Beispielprojekt ApplicationTemplateCounter

enthaltene Visualisierung L_Main um weitere Visualisierungsseiten erweitern.

Die Vorgehensweise im ApplicationTemplate ist identisch. Die untergeordneten Maschinenmodulesind neu zu erstellen.

• Voraussetzung zum Erweitern der Visualisierung ist in diesem Beispiel (ApplicationTemplateCounter), dass vorab ein weiteres Maschinenmodul in den

MaschinenModulTree ( MMT) einzubinden ist. Erstelltes Maschinenmodul in den MMT einbinden ( 56)

• Im Ordner A11_ModulAppCalls ist die weitere Modulapplikation im Programmteil einzubinden.

• MAC_Task_High aufzurufen. (Beispiel: MM_Dcl.Modul3.App1)

Page 113: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 113

Visualisieren im ApplicationTemplateDie Visualisierung erweitern

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

So gehen Sie vor:

1. Visualisierung aufrufen:

• Den Ordner 20_Visualisation doppelklicken.

• L_Main doppelklicken.

2. Visualisierungs-Elementenliste öffnen:

• <Alt>+<F6> oder den Menübefehl Visualisierung Elementliste aufrufen.

3. Auf der Registerkarte Elementliste die Visualisierung #0 Frame auswählen.• Per Rechtsklick auf den Visualisierungs-Frame den Befehl Frame Auswahl auswählen.

• Elementliste auswählen: Befehl Visualisierung Elementliste (oder <Alt>+<F6>).

4. Per Rechtsklick den Befehl Frame Auswahl aufrufen.• In folgendem Dialogfenster sind die Framevisualisierungen in der Reihenfolge

aufgelistet, wie die Schaltflächen/Steuerelemente angeordnet sind.

• Die Visualisierung des neuen Moduls (Beispiel: MVis_Module3) markieren.• Schaltfläche > klicken, um die Visualisierung auszuwählen.• Die Auswahl durch Klicken von OK bestätigen.

5. Auf der Registerkarte Elementliste die Visualisierung #0 Frame auswählen.• Im Dialogfenster Eigenschaften den Bereich Referenzierte Visualisierungen auswählen.

Die gewünschten Daten sind der entsprechenden Visualisierung zuzuordnen:• Auf den Namen der Visualisierung klicken.• Im rechten Bereich von m_Input_FB das gewünschte Feld anklicken.

Page 114: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Visualisieren im ApplicationTemplateEigenschaften von Schaltflächen definieren

114 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Hinweis: Die Option Namensraum-Präfix einfügen ist zu aktivieren.

Mit der Eingabehilfe aus dem Element Application• ...den gewünschten Funktionsbaustein auswählen, der die Daten für die entsprechende

Visualisierungsseite bereitstellt.

10.2 Eigenschaften von Schaltflächen definieren

So gehen Sie vor:

1. Im Ordner A71_LocalSources\Structs ENUM Vis_eFrame erweitern:

Den Namen der Visualisierung manuell hinzufügen, Beispiel: MVis_Module3

Hinweis: Die Anordnung der Einträge im ENUM Vis_eFrame muss der Reihenfolge der

Auswahl von #0 Frame der Visualisierung L_Main entsprechen.

2. Im Order A20_Visualisation\SubVisu die Visualisierung Keys_Main doppelklicken.

3. Eine neue Schaltfläche erzeugen.• Die Schaltfläche Module 2 markieren:

Page 115: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 115

Visualisieren im ApplicationTemplateEine Visualisierung hinzufügen: Prinzipielle Vorgehensweise

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Rechtsklick Kopieren

• Rechtsklick Einfügen• Die Schaltfläche an die gewünschte Stelle platzieren.• Schaltfläche umbennen (Beispiel: Module 3):

4. Im Eigenschaften-Dialog der Schaltfläche Module 3 die Variable Color variables\Toggle color auswählen.

5. Den Wert der zuvor kopierten Schaltfläche an den neuen Namen anpassen (Beispiel: Module3).

• Bei Toggle color die Zeile MVis.scVisuIntern.diFrame=Vis_eFrame.MVis_Module3 eintragen.

6. Bei OnMouseUp den ST-Code in MVis.scVisuIntern.diFrame:=Vis_eFrame.MVis_Module3 ändern:

10.3 Eine Visualisierung hinzufügen: Prinzipielle Vorgehensweise

• Die Visualisierung ist im Ordner

A20 Visualisation hinzuzufügen:

Per Rechtsklick auf den Ordner A20 Visualisation folgenden Befehl ausführen:

Objekt

hinzufügen Visualisierung

Page 116: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Visualisieren im ApplicationTemplateEine Visualisierung hinzufügen: Prinzipielle Vorgehensweise

116 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Den gewünschten Namen der Visualisierung vergeben.Öffnen klicken.

• Die Visualisierung ist im Ordner

A20 Visualisation hinzugefügt.

• Einen Frame in der Visualisierung anlegen: Per Drag&Drop einen Frame aus dem Dialogfenster Werkzeuge anlegen.

• Die Frame-Größe anpassen.

• Per Rechtsklick in den Frame den Befehl Frame Auswahl ausführen.• Die gewünschte Visualisierung unter

Verfügbare Visualisierungen durch Klicken der Schaltfläche > in die Auswahl übernehmen.

• OK klicken, um die Visualisierung in den Frame zu übernehmen.

• Beispiel : Um die globale Fehlerliste zu übernehmen, ist der Eintrag L_EATP.L_EATP_VisErrorList auszuwählen.

• Die Größe der Visualisierung anpassen/positionieren.

• Für die Fehlerliste (Error List) sind keine weiteren Zuordnungen notwendig.Ergebnis: Die Visualisierung ist nun funktionsfähig

Page 117: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 117

Visualisieren im ApplicationTemplateEine Visualisierung hinzufügen: Prinzipielle Vorgehensweise

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Beispiel: Um ein Fenster zum Aktivieren von Fehlern für ein bestimmtes Maschinenmodul einzufügen, ist die Visualisierung L_EATP.L_EATP_VisErrorSet auszuwählen.

Beispiel: Zuweisen der Visualisierung für den Block ErrorsA der Modulapplikation App1 von Module1.

• Der Visualisierung L_EATP.L_EATP_VisErrorSet ist die Datenquelle zuzuweisen:• Im Dialogfenster Eigenschaften die

entsprechende Datenquelle zuweisen.

• Tipp: Für die vordefinierten Visualisierungselemente des ApplicationTemplate sind keine manuellen Datenzuordnungen erforderlich.• Dadurch ist (nach dem

Kompiliervorgang) ohne Mehraufwand ein Einloggen (Online gehen) möglich.

Page 118: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplate

118 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11 Die Bibliothek L_EATP_ApplicationTemplate

Diese Bibliothek enthält die Basisfunktionalität für das ApplicationTemplate.

Übersicht der Funktionen und Funktionsbausteine

Die Funktionen und Funktionsbibliotheken der Bibliothek L_EATP_ApplicationTemplate sind inverschiedene Gruppen unterteilt.

GetBooleanProperty (automatisch generiert vom »PLC Designer«) ( 119)

GetCompany (automatisch generiert vom »PLC Designer«) ( 120)

GetNumberProperty (automatisch generiert vom »PLC Designer«) ( 120)

GetTextProperty (automatisch generiert vom »PLC Designer«) ( 121)

GetTitle (automatisch generiert vom »PLC Designer«) ( 121)

GetVersion (automatisch generiert vom »PLC Designer«) ( 122)

GetVersionProperty (automatisch generiert vom »PLC Designer«) ( 122)

1_POUs (Program Organization Units)

L_EATP_Application ( 123)

L_EATP_CriticalSection ( 125)

L_EATP_ErrorListHandler ( 126)

L_EATP_ErrorSet ( 127)

L_EATP_Module ( 129)

L_EATP_ModuleDiag ( 131)

L_EATP_ModuleErrorHandler ( 132)

L_EATP_ModulRelations ( 133)

L_EATP_SMAccess ( 134)

2_Structs_Types

L_EATP_ACD_Base (ACD-Struktur) ( 135)

L_EATP_BaseChannel ( 136)

L_EATP_ErrorList ( 136)

L_EATP_ErrorListEntry ( 136)

L_EATP_MMD_Base (MMD-Struktur) ( 137)

L_EATP_MM_Address ( 138)

3_Enums

L_EATP_ErrorReactionType ( 138)

L_EATP_SMStates ( 139)

Page 119: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 119

Die Bibliothek L_EATP_ApplicationTemplateAutomatisch generierte Funktionen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.1 Automatisch generierte Funktionen

In diesem Abschnitt finden Sie Detailinformationen zu Funktionen, die der »PLC Designer«automatisch generiert. Die Ausgabewerte finden Sie unter: ProjektProjektinformationen

11.1.1 GetBooleanProperty (automatisch generiert vom »PLC Designer«)

Die Funktion liefert eine boolsche Projektinformationen der Bibliothek. (Aktuell werden keineboolschen Projektinformationen verwendet).

Eingänge

Ausgänge

Hinweis!

Beim Ändern der Projektinformationen ist folgende Einstellung erforderlich:

Projektinformationen aufrufen: ProjektProjektinformationen .• Den Parameter "Automatically generate POUs for property access" deaktivieren.• OK klicken, um die Projektinformationen zu schließen.

Projektinformationen erneut aufrufen: ProjektProjektinformationen .• Parameter "Automatically generate POUs for property access" aktivieren.• OK klicken, um die Projektinformationen zu schließen.

Anschließend stehen die geänderten Projektinformationen im Projekt zur Verfügung.

Hinweis!

Diese Funktion ist immer mit dem passenden Namensraum der zugehörigen Bibliothek zu verwerden. (beispielweise IOStandard.GetNumberProperty(stKey))

GetBooleanProperty

WSTRING ⎯ stKey GetBooleanProperty ⎯ BOOL

Bezeichner/Datentyp Info/Einstellmöglichkeiten

stKeyWSTRING

Schlüssel der Projektinformation

Bezeichner/Datentyp Info/Einstellmöglichkeiten

GetBooleanPropertyBOOL

Wert der Projektinformationen

Page 120: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplateAutomatisch generierte Funktionen

120 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.1.2 GetCompany (automatisch generiert vom »PLC Designer«)

Die Funktion liefert den Namen der Firma, von der die Bibliothek erstellt ist.

Ausgänge

11.1.3 GetNumberProperty (automatisch generiert vom »PLC Designer«)

Die Funktion liefert eine numerische Projektinformationen der Bibliothek. (Aktuell werden keinenumerischen Projektinformationen verwendet).

Eingänge

Ausgänge

Hinweis!

Diese Funktion ist immer mit dem passenden Namensraum der zugehörigen Bibliothek zu verwerden. (beispielweise IOStandard.GetCompany())

GetCompany

GetCompany ⎯ WSTRING

Bezeichner/Datentyp Info/Einstellmöglichkeiten

getCompanyWSTRING

Name der Firma, die die Bibliothek erstellt hat.

Hinweis!

Diese Funktion ist immer mit dem passenden Namensraum der zugehörigen Bibliothek zu verwerden. (beispielweise IOStandard.GetNumberProperty(stKey))

GetNumberProperty

WSTRING ⎯ stKey GetNumberProperty ⎯ DINT

Bezeichner/Datentyp Info/Einstellmöglichkeiten

stKeyWSTRING

Schlüssel der Projektinformation

Bezeichner/Datentyp Info/Einstellmöglichkeiten

GetNumberPropertyDINT

Wert der Projektinformationen

Page 121: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 121

Die Bibliothek L_EATP_ApplicationTemplateAutomatisch generierte Funktionen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.1.4 GetTextProperty (automatisch generiert vom »PLC Designer«)

Die Funktion liefert eine textuelle Projektinformationen der Bibliothek.

Eingänge

Ausgänge

11.1.5 GetTitle (automatisch generiert vom »PLC Designer«)

Die Funktion liefert den Titel der Bibliothek.

Ausgänge

Hinweis!

Diese Funktion ist immer mit dem passenden Namensraum der zugehörigen Bibliothek zu verwerden. (beispielweise IOStandard.GetText("Author"))

GetTextProperty

WSTRING ⎯ stKey GetTextProperty ⎯ WSTRING

Bezeichner/Datentyp Info/Einstellmöglichkeiten

stKeyWSTRING

Schlüssel der Projektinformation• "Company" - Name des Bibliothekslieferanten• "Title" - Name der Bibliothek• "DefaultNamespace" - Namensraum der Bibliothek• "Project" - Name der Bibliothek• "Description" - Beschreibung der Bibliothek• "Author" - Autor der Bibliothek

Bezeichner/Datentyp Info/Einstellmöglichkeiten

GetTextPropertyWSTRING

Wert der Projektinformationen

Hinweis!

Diese Funktion ist immer mit dem passenden Namensraum der zugehörigen Bibliothek zu verwerden. (beispielweise IOStandard.GetTitle())

GetTitle

GetTitle ⎯ WSTRING

Bezeichner/Datentyp Info/Einstellmöglichkeiten

GetTtitleWSTRING

Name de Bibliothek

Page 122: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplateAutomatisch generierte Funktionen

122 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.1.6 GetVersion (automatisch generiert vom »PLC Designer«)

Diese Funktion liefert die Version der Bibliothek.

Ausgänge

11.1.7 GetVersionProperty (automatisch generiert vom »PLC Designer«)

Diese Funktion liefert die Version der Bibliothek.

Eingänge

Ausgänge

Hinweis!

Diese Funktion ist immer mit dem passenden Namensraum der zugehörigen Bibliothek zu verwerden. (beispielweise IOStandard.GetVersion())

GetVersion

GetVersion ⎯ VERSION

Bezeichner/Datentyp Info/Einstellmöglichkeiten

GetVersionVERSION

Version der Bibliothek

Hinweis!

Diese Funktion ist immer mit dem passenden Namensraum der zugehörigen Bibliothek zu verwerden. (beispielweise IOStandard.GetVersion Property(stKey))

GetVersionProperty

WSTRING ⎯ stKey GetVersionProperty ⎯ VERSION

Bezeichner/Datentyp Info/Einstellmöglichkeiten

stKeyWSTRING

Schlüssel der Projektinformation• Erweiterte Versionierungsinformation der Bibliothek

Bezeichner/Datentyp Info/Einstellmöglichkeiten

GetVersionPropertyVERSION

Version der Bibliothek

Page 123: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 123

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2 1_POUs - Program Organization Units

11.2.1 L_EATP_Application

Dieser Baustein ermöglicht den leeren (abstrakten) Basis-Funktionsbaustein einerMaschinenmodul-Applikation (MAP).

• Jede Maschinenmodul-Applikation leitet sich von diesem FB ab.

Lokale Variablen

AccessACD

Diese Methode vergibt eine Zugriffsstruktur auf die ACD-Struktur im eigenen MFB oder eines Slave-Moduls.

Eingänge

Ausgang

L_EATP_Application

⎯ ⎯

Bezeichner/Datentyp Info/Einstellmöglichkeiten

parentModuleL_EATP_IModule

Referenz auf das Eltern-Modul, welches die MAP enthält.• Diese Referenz ist beim Anlegen der MAP innerhalb des MM zu initialisieren.

AccessACD

L_EATP_MM_Address ⎯ MM_Address AccessACD ⎯ POINTER TO L_EATP_ACD_Base (ACD-Struktur)

DWORD ⎯ dwSize

Bezeichner/Datentyp Info/Einstellmöglichkeiten

MM_AddressL_EATP_MM_Address

• Relative Adresse des Moduls, auf dessen ACD-Struktur zuzugreifen ist.• Der Wert "0" sowie die Konstante L_EATP_CONST.OWNID adressieren die

moduleigene Adresse.

dwSizeDWORD

Größe der übergebenen Struktur (z.B.: SIZEOF(MACD_scExample) )

Bezeichner/Datentyp Info/Einstellmöglichkeiten

AccessACDPOINTER TO

L_EATP_ACD_Base (ACD-Struktur)

• Liefert den Zeiger auf die zuzugreifende ACD-Struktur zurück.

Page 124: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

124 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Base

...ist eine Verwaltungsfunktion zur Infrastrukturverarbeitung.

• Diese Methode ist bei jedem Zyklus als erstes im Rumpf des FBs aufzurufen.

checkSlave

...prüft, ob ein Slave mit der angegebenen Modul-Adresse existiert.

SMDispatcherCaller

Methode zum Aufrufen der Methode SMDispatcher und Übergeben des aktuellen Zustand derZustandsmaschine.

Rückgabewert

Datentyp Wert/Bedeutung

BOOL Liefert zurück, ob die Infrastruktur korrekt aufgebaut wurde.Hinweis: Alle Methoden und Daten zur Infrastruktur dürfen nur verwendet werden, wenn zuvor Rückgabewert = TRUE.

TRUE Infrastrukur korrekt aufgebaut (Success)

FALSE Infrastrukur nicht korrekt (Error)

Übergabevariablen

Bezeichner/Datentyp Info/Einstellmöglichkeiten

MM_AddressL_EATP_MM_Address

ID des Maschinenmoduls, das die Methode anfragen soll.

Rückgabewert

Datentyp Wert/Bedeutung

BOOL TRUE Slave vorhanden.

Page 125: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 125

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2.2 L_EATP_CriticalSection

Dieser FB beinhaltet die Methoden lock(), UnLock() und LockState().

Die Methoden ermöglichen es, eine konsistente Datenübetragung sicherzustellen. Eine konsistenteDatenübertragung ist beispielweise bei Multitasking-Systemen erforderlich. KonsistenteDatenübertragung ( 107)

Lock()

...reserviert einen Datenbereich der ACD-Struktur (Zustand des Flags abfragen).

Unlock()

...gibt den zuvor reservierten Datenbereich wieder frei (Flag zurücknehmen).

LockState()

...fragt den Sperrzustand eines Datenbereiches ab (Flag gesetzt/nicht gesetzt).

Rückgabewert

Datentyp Wert/Bedeutung

BOOL Liefert zurück, ob Datenbereich reserviert wurde (Flag gesetzt).

TRUE Datenbereich reserviert (Flag gesetzt).

FALSE Datenbereich nicht reserviert (Flag nicht gesetzt).

Rückgabewert

Datentyp Wert/Bedeutung

BOOL Liefert zurück, ob der Datenbereich freigegeben ist (Flag zurückgesetzt).

TRUE Datenbereich freigegeben (Flag zurückgesetzt).

FALSE Datenbereich nicht freigegeben (Flag nicht zurückgesetzt).

Rückgabewert

Datentyp Wert/Bedeutung

BOOL Liefert zurück, ob Flag gesetzt ist.

TRUE Rückgabewert, wenn Flag gesetzt ist.

FALSE Rückgabewerte, wenn Flag nicht gesetzt ist.

Page 126: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

126 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2.3 L_EATP_ErrorListHandler

Dieser FB verwaltet/aktualisiert die globale Fehlerliste (Error List).

• Dieser FB ermöglicht das Erstellen einer CSV-Datei, die alle definierten Fehler enthält.

Eingänge

Ausgänge

Funktionsbibliothek: L_EATP_ApplicationTemplate

Runtime Software-Lizenz: LPC 1x00 MPC 1x00 MPC 2x00 MPC 2x10 MPC 2x20 MPC 2x30

MPC 3x00 keine

L_EATP_ErrorListHandler

BOOL ⎯ xExecuteCreateCSVFile iDiagModuleCount ⎯ INT

xBusyCreateCSVFile ⎯ BOOL

xDoneCreateCSVFile ⎯ BOOL

sInfoCreateCSVFile ⎯ STRING

Bezeichner/Datentyp Info/Einstellmöglichkeiten

xExecuteCreateCSVFileBOOL

Eine steigende Flanke an diesem Eingang (FALSE->TRUE) startet das Erzeugen einer CSV-Datei.

• Die CSV-Datei enthält alle Fehler, die in den Maschinenmodulen definiert sind.

Bezeichner/Datentyp Info/Einstellmöglichkeiten

iDiagModuleCountINT

Bildet die Verknüpfung zu allen untergeordneten Maschinenmodulen (Slaves).• Bei Slaves der untersten Hierarchieebene ist dieser Ausgang unbelegt.

xBusyCreateCSVFileBOOL

TRUE: CSV-Datei erstellen (Erstellvorgang läuft).

xDoneCreateCSVFileBOOL

FALSE->TRUE: CSV-Datei erstellt (Erstellvorgang beendet).• Automatisches Zurücksetzen des Signals: Drei Sekunden nach dem

Erstellvorgang der CSV-Datei.

sInfoCreateCSVFileSTRING

Detailinformationen zum Erstellvorgang der CSV-Datei.

Page 127: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 127

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2.4 L_EATP_ErrorSet

Dieser FB kann bis zu vier Fehler auslösen. Das Auslösen eines Fehlers wirkt sich auf dieZustandsmaschine aus.

• In Abhängigkeit davon, wie Sie die Fehlerreaktion (eReaction) programmieren, wechselt die Zustandsmaschine in den definierten Zustand.

Eingänge

Funktionsbibliothek: L_EATP_ApplicationTemplate

Runtime Software-Lizenz: LPC 1x00 MPC 1x00 MPC 2x00 MPC 2x10 MPC 2x20 MPC 2x30

MPC 3x00 keine

L_EATP_ErrorSet

BOOL ⎯ xSetError[1...4] xError[1...4]Active ⎯ BOOL

WORD wErrCode[1...4]

L_EATP_ErrorReactionType eReaction[1...4]

dwPriority[1...4]

BOOL xAckNeeded[1...4]

STRING sText[1...4]

DWORD dwErrDetail[1...4]

Bezeichner/Datentyp Info/Einstellmöglichkeiten

xSetError[1...4]BOOL

Setzen eines Fehlers [1...4]• Fehlerquelle: Modulapplikation (MAP)

TRUE Fehler [1...4] ist gesetzt.

FALSE Fehler [1...4] ist nicht gesetzt.

wErrCode[Fehlernummer]WORD

Eindeutige Fehlernummer von Fehler [1...4]

eReaction[Fehlerreaktion]L_EATP_ErrorReactionType

Fehlerreaktionstyp von Fehler [1...4]

dwPriority[Priorität]DWORD

Vergeben einer Priorität [1...n] für Fehlerreaktionen.• Ermöglicht das Priorisieren von Fehlern des gleichen

Fehlerreaktionstyps.• Höchste Priorität = 1.

xAckNeeded[Quittierpflicht]BOOL

Hinweis:Wird bei folgenden Fehlerreaktionstypen ignoriert:

• "Information": Quittieren ist nicht erforderlich.• "Fault": Quittieren ist immer erforderlich.• "SystemFault": Kein Quittieren möglich.

FALSE Kein Quittieren des Fehlers [1...4] erforderlich.

TRUE Quittieren des Fehlers [1...4] ist erforderlich.

sText[Fehlertext]STRING

Text von Fehler [1...4]

dwErrDetail[Fehlernummer]DWORD

Detailinformation zu Fehler [1...4]

Page 128: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

128 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Ausgang

11.2.4.1 Fehlerbehandlung (ErrorHandling) anpassen

So verändern Sie die Fehlerbehandlung:

1. In der Geräte-Ansicht den Ordner A70_MachineModuleSources doppelklicken.

2. Die Methode SetErrors doppelklicken.• Einen weiteren FB ergänzen.

• Die Deklaration ist im FB MAP_EmptyModul_App1 vorzunehmen.

[11-1] Beispielverknüpfung Funktionsbaustein L_EATP_ErrorSet

Die Visualisierung des Bausteins L_EATP_ErrorSet erleichtert das Bedienen des Errorhandlingim ApplicationTemplate: Erste Schritte - Das ApplicationTemplate bedienen ( 37)

11.2.4.2 Fehler quittieren

Ist der aktuell anstehende Fehler quittierpflichtig und die Fehlerursache behoben, ist das Quittierenstandardmäßig über das übergeordnete Master-Modul möglich (BaseChannel-DatenelementxEHQuitError).

• Alternativ ist der Fehler über das Datenelement ErrorHandler.xQuitErrors (aus der Modulapplikation heraus) für das eigene Modul/die untergeordneten Slavemodule) quittierbar.• Aus der entsprechenden Modulapplikation heraus ist folgende Befehlszeile aufzurufen

(Signal ist flankenbasiert):

Bezeichner/Datentyp Info/Einstellmöglichkeiten

xError[1...4]ActiveBOOL

Status aktuelle gesetzter Fehler.

TRUE Setzen eines Fehlers aktiv.

FALSE Kein Fehler gesetzt.

• Den gewünschten FehlereingangxError[1...4]) mit der Applikation verknüpfen.

• Eigenschaften des Fehlers an den entsprechenden Eingängen zuweisen: Fehlertexte, Fehlerreaktionstyp, Quittierverhalten, Priorität.

Page 129: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 129

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Alternativ ist der Fehler mit Hilfe der Methode baseChannelSetErrorQuit quittierbar.

11.2.5 L_EATP_Module

Dieser FB stellt den leeren Basis-FB eines Maschinenmoduls bereit.

• Alle weiteren Maschinenmodule leiten sich von diesem FB ab.

Eingänge

Ausgänge

11.2.5.1 Base()

...ist eine Verwaltungsfunktion zur Infrastrukturverarbeitung.

• Diese Methode ist bei jedem Zyklus als erstes im Rumpf des FBs aufzurufen.

ErrorHandler.xQuitErrors := TRUE;

Funktionsbibliothek: L_EATP_ApplicationTemplate

Runtime Software-Lizenz: LPC 1x00 MPC 1x00 MPC 2x00 MPC 2x10 MPC 2x20 MPC 2x30

MPC 3x00 keine

L_EATP_Module

L_EATP_BUS ⎯ masterBus slaveBus ⎯ L_EATP_BUS

L_EATP_MM_Address ⎯ MM_Address

Bezeichner/Datentyp Info/Einstellmöglichkeiten

masterBusL_EATP_BUS

Bildet eine Verknüpfung zum übergeordneten Maschinenmodul (Master).• Beim obersten Maschinenmodul ist dieser Eingang unbelegt.

MM_AddressL_EATP_MM_Address

Relative Module-ID des Maschinen-Moduls.• Muss innerhalb einer Hierarchie-Ebene (ein Master mit allen direkt

angeschlossenen Slaves) eindeutig sein.

Bezeichner/Datentyp Info/Einstellmöglichkeiten

slaveBusL_EATP_BUS

Bildet die Verknüpfung zu allen untergeordneten Maschinenmodulen (Slaves).• Bei Slaves der untersten Hierarchieebene ist dieser Ausgang unbelegt.

Rückgabewert

Datentyp Wert/Bedeutung

BOOL Liefert zurück, ob die Infrastruktur korrekt aufgebaut wurde.Hinweis: Alle Methoden und Daten zur Infrastruktur dürfen nur verwendet werden, wenn zuvor Rückgabewert = TRUE.

TRUE Infrastrukur korrekt aufgebaut (Success)

FALSE Infrastrukur nicht korrekt (Error)

Page 130: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

130 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2.6 RegisterACD()

Diese Methode registriert die ACD-Struktur im Modul-FB (MFB).

11.2.7 setCompIDAndVersion()

Diese Methode setzt die Modulkennung (CompID) und die Version des Maschinenmoduls.

Eingänge

RegisterACD

L_EATP_ACD_Base (ACD-Struktur)

⎯ scStruct

DWORD ⎯ dwSize

Bezeichner/Datentyp Info/Einstellmöglichkeiten

scStructL_EATP_ACD_Base (ACD-

Struktur)

Die übergebene Struktur muss von der Struktur L_EATP_ACD_Base abgeleitet sein. (Beispiel: TYPE MACD_scExample EXTENDS L_EATP_ACD_Base)

dwSizeDWORD

Größe der übergebenen Struktur (z.B.: SIZEOF(MACD_scExample) )

Bezeichner/Datentyp Info/Einstellmöglichkeiten

dwCompIDDWORD

Modulkennung• Der freie Bereich der CompID liegt zwischen 16#3C00 – 16#3FF

dwVersionDWORD

Version des Maschinenmoduls

Page 131: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 131

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2.8 L_EATP_ModuleDiag

Dieser FB ermöglicht die Diagnose eines Maschinenmoduls.

• Der FB fokussiert immer genau ein einzelnes Maschinenmodul.

• Nach dem Starten des Projektes ist automatisch das oberste Master-Modul fokusiert.

Eingänge

Ausgänge

Funktionsbibliothek: L_EATP_ApplicationTemplate

Runtime Software-Lizenz: LPC 1x00 MPC 1x00 MPC 2x00 MPC 2x10 MPC 2x20 MPC 2x30

MPC 3x00 keine

L_EATP_ModuleDiag

BOOL ⎯ goToMaster moduleName ⎯ STRING

L_EATP_MM_Address ⎯ goToSlave absoluteMM_Address ⎯ STRING

dataConnector ⎯ L_EATP_DataConnector

statusText ⎯ STRING

Bezeichner/Datentyp Info/Einstellmöglichkeiten

goToMasterBOOL

Bei positiver Flanke wechselt der FB zum Master des aktuell fokussierten Moduls.• Existiert am fokussierten Modul kein Master, ist am Ausgang statusText die

Meldung „Current module has no master“ sichtbar.

goToSlaveINT

Ein Eingang ungleich null gilt als Modul-Adresse. Entsprechend der Modul-Adresse wechselt der FB zum Slave des gerade fokussierten Maschinenmoduls.

• Existiert am fokussierten Maschinenmodul kein Slave mit entsprechender Modul-Adresse, ist am Ausgang statusText die Meldung „Current module has no slave with module ID xx“ sichtbar.

Bezeichner/Datentyp Info/Einstellmöglichkeiten

modulNameSTRING

Name der Instanz des gerade fokussierten Maschinenmoduls.

absoluteMM_AddressSTRING

Absolute Module-Adresse des gerade fokussierten Maschinenmoduls.

dataConnectorL_EATP_DataConnector

Liefert den Data Connector des ausgewählten Moduls zurück• Erlaubt dadurch den Zugriff auf den BaseChannel.

statusTextSTRING

Status/Fehlermeldung des Diagnose-FBs. Folgende Meldungen sind möglich:• No root module was found• Root module was entered• Current module has no master• Master module was entered• Current module has no slave with module ID x• Slave module was entered

Page 132: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

132 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2.9 L_EATP_ModuleErrorHandler

Dieser FB enthält das zentralen Errorhandling in einem Maschinenmodul.

• Eine Instanz dieses Bausteins mit Namen ErrorHandler ist Bestandteil des Basisbausteins L_EATP_Module.

Eingang

Ausgang

L_EATP_ModuleErrorHandler

BOOL ⎯ xQuitErrors xErrorQuitActive ⎯ BOOL

Bezeichner/Datentyp Info/Einstellmöglichkeiten

xQuitErrorsBOOL

Eingang auf TRUE setzen, um das Quittieren von Fehlern zu aktivieren (Flanke FALSE TRUE). Fehlerquelle ist die Modulapplikation (MAP).

Bezeichner/Datentyp Info/Einstellmöglichkeiten

xQuitErrorActiveBOOL

TRUE Zeigt an, ob das Quittieren von Fehlern aktiviert ist. Ist aktiv...• ... solange der Eingang xQuitErrors = TRUE oder• für einen Zyklus, wenn das Fehlerquittieren durch die Methode

baseChannelSetErrorQuit aktiviert ist. Methoden-Übersicht - ApplicationTemplate ( 166)

FALSE Quittieren von Fehlern ist deaktiviert, xQuitErrors = FALSE.

Page 133: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 133

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2.10 L_EATP_ModulRelations

Dieser FB zeigt liefert einen Überblick darüber, wie die Maschinenmodule verknüpft sind.

• Mit Hilfe dieses FBs ist beispielsweise nachvollziehbar, ob das Verschalten aller Bus-Strukturen und die Zuweisung der Modul-Adresse funktioniert hat.

Eingänge

Ausgänge

Funktionsbibliothek: L_EATP_ApplicationTemplate

Runtime Software-Lizenz: LPC 1x00 MPC 1x00 MPC 2x00 MPC 2x10 MPC 2x20 MPC 2x30

MPC 3x00 keine

L_EATP_ModuleRelations

BOOL ⎯ Enable numberOfModules ⎯ INT

relationsAsString ⎯ BOOL

Success ⎯ BOOL

Bezeichner/Datentyp Info/Einstellmöglichkeiten

EnableBOOL

Bei positiver Flanke startet die Modul-Analyse.

Bezeichner/Datentyp Info/Einstellmöglichkeiten

numberOfModulesINT

Anzahl der erkannten Maschinenmodule

relationAsStringARRAY [1...30] OF STRING

Für jede erkannte Master-Slave-Beziehung gibt es im Array einen Eintrag mit dem entsprechenden Master sowie Slave.

• Der Eintrag hat den Aufbau <Instanzname Master>[<Modul-Adresse Master>] -> <instanzname Slave>[<Modul-Adresse Slave>]

Beispiel: MachineModule[1] -> InFeed[3]

SuccessBOOL

Liefert zurück, ob die Analye fehlerfrei war.

TRUE Analyse fehlerfrei durchgeführt.

FALSE Bei der Analyse ist ein Fehler aufgetreten

Page 134: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplate1_POUs - Program Organization Units

134 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.2.11 L_EATP_SMAccess

Dieser FB zeigt den aktuellen Zustand der Zustandsmaschine in einer Modulapplikation (MAP) an.

• Die Instanz SMAccess dieses FBs...• ...ist im ApplicationTemplate-Vorlagenprojekt in jeder Modulapplikation eingebunden.• ...in der FUP-Methode Statemachine grafisch dargestellt.

Ausgänge

An den Ausgängen stellt der FB die Informationen über den aktuellen Zustand derZustandsmaschine für die Modulapplikation bereit.

Funktionsbibliothek: L_EATP_ApplicationTemplate

Runtime Software-Lizenz: LPC 1x00 MPC 1x00 MPC 2x00 MPC 2x10 MPC 2x20 MPC 2x30

MPC 3x00 keine

SMAccess

L_EATP_SMAccess

eNomState ⎯

eActState ⎯

xWarning ⎯

xActStateIsInit ⎯

xActStateIsReady ⎯

xActStateIsManual ⎯

xActStateIsService ⎯

xActStateIsMode[1...2] ⎯

xActStateIsHoming ⎯

xActStateIsQuickStop ⎯

xActStateIsFault ⎯

xActStateIsSystemFault ⎯

Übergabevariablen

Bezeichner/Datentyp Wert/Bedeutung

eNomStateL_EATP_SMStates

Angeforderter SOLL-Zustand der Zustandsmaschine

eActStateL_EATP_SMStates

Aktueller IST-Zustand der Zustandsmaschine

xWarningBOOL

Warnung ist aktiv

xActStateIsInitBOOL

TRUE Aktueller IST-Zustand: "Init"

xActStateIsReadyBOOL

TRUE Aktueller IST-Zustand: "Ready"

xActStateIsManualBOOL

TRUE Aktueller IST-Zustand: "Manual"

xActStateIsServiceBOOL

TRUE Aktueller IST-Zustand: "Service"

Page 135: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 135

Die Bibliothek L_EATP_ApplicationTemplate2_Structs_Types

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.3 2_Structs_Types

11.3.1 L_EATP_ACD_Base (ACD-Struktur)

Die AppChannelData (ACD)-Struktur ist die Grundlage für die Applikationsdaten.

• Die Struktur enthält das Steuer-/Statuswort.

• Die Struktur enthält Methoden zum Reservieren/Freigeben von Datenbereichen.

Weiterführende Informationen zur ACD-Struktur: Die Struktur AppChannelData (ACD) ( 76)

STRUCT-Ansicht

xActStateIsMode(1...2)BOOL

TRUE Aktueller IST-Zustand: "Mode(1...2)"

xActStateIsHomingBOOL

TRUE Aktueller IST-Zustand: "Homing"

xActStateIsQuickstopBOOL

TRUE Aktueller IST-Zustand: "Quickstop"

xActStateIsFaultBOOL

TRUE Aktueller IST-Zustand: "Fault"

xActStateIsSystemFaultBOOL

TRUE Aktueller IST-Zustand: "Systemfault"

Übergabevariablen

Bezeichner/Datentyp Wert/Bedeutung

Bezeichner/Datentyp Info/Einstellmöglichkeiten

Funktionsblock Der Baustein CS ist bei Multitaskanwendungen zu verwenden. Weiterfüh-rende Informationen zum Baustein: L_EATP_CriticalSection ( 125)

CS (Critical Section)L_EATP_CriticalSection

Steuerwort

xStartOperation_InBOOL

Applikation starten

xStopOperation_InBOOL

Applikation stoppen

xPauseOperation_InBOOL

Applikation pausieren

xManualJogNeg_InBOOL

Handfahren in negativer Richtung (Linkslauf)

xManualJogPos_InBOOL

Handfahren in positiver Richtung (Rechtslauf)

Statuswort

xOperationBusy_OutBOOL

Status: Applikation aktiv

xOperationDone_OutBOOL

Status: Applikation gestoppt

xOperationPaused_OutBOOL

Status: Applikation pausiert

Page 136: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplate2_Structs_Types

136 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.3.2 L_EATP_BaseChannel

Diese Struktur realisiert den Kommunikationskanal für Basis-Daten (BaseChannel) zwischen einemMaster und jeweils einem Slave-Teilnehmer.

• Die BaseChannel-Elemente beinhalten die Basisfunktionen Zustandsmaschine und Fehlerbehandlung.

STRUCT-Ansicht

11.3.3 L_EATP_ErrorList

Dieses Array-Typdef beschreibt die globale Fehlerliste (Error List).

• Genau eine Instanz dieses Typs mit Namen ErrorList ist in der globalen Variablendeklaration GVL L_EATP_GVL definiert.

[11-2] TYPE-Ansicht

11.3.4 L_EATP_ErrorListEntry

Diese Struktur enthält die Attribute eines Fehlereintrags in der globalen Fehlerliste (GlobalErrorList).

STRUCT-Ansicht

Bezeichner/Datentyp Modulsicht Info/Einstellmöglichkeiten

Control Status

dwCompIDDWORD

Modulkennung

dwVersionDWORD

Version des Maschinenmoduls

eSMActStateL_EATP_SMStates

Aktueller IST-Zustand der Zustandsmaschine

xSMWarningBOOL

Der unabhängige Zustand "Warnung" ist aktiv.

eEHActReactionTypeL_EATP_ErrorReactionType

Fehlerreaktionstyp

eSMSetStateL_EATP_SMStates

Angeforderter SOLL-Zustand der Zustandsmaschine

xEHQuitErrorBOOL

Fehlerquittieren (steigende Flanke)

L_EATP_ErrorList : ARRAY[1.. L_EATP_GVL.ErrorListEntryCount] OF L_EATP_ErrorListEntry;

Bezeichner/Datentyp Info/Einstellmöglichkeiten

sMM_AddressSTRING

Absolute Adresse des Maschinenmoduls.

sModuleNameSTRING

Version des Maschinenmoduls.

wErrCodeWORD

Eindeutige Fehlernummer.

Page 137: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 137

Die Bibliothek L_EATP_ApplicationTemplate2_Structs_Types

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.3.5 L_EATP_MMD_Base (MMD-Struktur)

Die Struktur MachineModuleData (MMD) vom Typ MMD_scModulname dient zum Instanziierenvon Maschinenmoduldaten.

• Das ApplicationTemplate enthält Variablen und Funktionsbausteine zum Instanziieren von Ma-schinenmoduldaten.

• Alle Modulapplikationen (MAPs) eines Maschinenmoduls können auf diese MMD-Struktur zu-greifen.

Die Datenstruktur erbt die in der Bibliothek L_EATP_ApplicationTemplate enthaltene StrukturL_EATP_MMD_Base:

[11-3] Aufbau der MMD-Struktur im Ordner A65 EmptyModule\MM_EmptyModule\Structs MMD_scEmptyModule

• Der MMD_sc<Modulname> ist mit den jeweils benötigten Datentypen und Funktionsbaustei-nen individuell zu erweitern.

• In der Struktur ist der Baustein L_EATP_CriticalSection instanziiert, der einen konsistenten Aus-tausch von Datenaustausch gewährleistet (Voraussetzung dazu ist, dass der Baustein korrekt verwendet ist).

eReactionL_EATP_ErrorReactionType

Fehlerreaktionstyp

sTextSTRING

Fehlertext (englischsprachig)

dwErrDetailDWORD

Detailinformation des Fehlers

xAckNeededBOOL

Hinweis:Wird bei folgenden Fehlerreaktionstypen ignoriert:

• "Information": Quittieren ist nicht erforderlich• "Fault": Fehler. Quittieren ist immer erforderlich• "SystemFault": Systemfehler. Kein Quittieren möglich

FALSE Kein Quittieren des Fehlers erforderlich.

TRUE Quittieren des Fehlers ist erforderlich.

Bezeichner/Datentyp Info/Einstellmöglichkeiten

Hinweis!

Im Gegensatz zur ACD-Struktur ist der Zugriff eines übergeordneten Mastermoduls auf die MMD-Struktur nicht möglich!

Page 138: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Die Bibliothek L_EATP_ApplicationTemplate3_Enums

138 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Auf die MMD-Struktur zugreifen - Mit der Modulapplikation des MFB

[11-4] Schematische Darstellung: Von der Modulapplikation (MAP) eines Maschinenmoduls (MM_Module) auf die MMD-Struktur zugreifen

[11-5] Kommandos zum Schreiben von Daten auf die MMD-Struktur

11.3.6 L_EATP_MM_Address

Diese Struktur definiert die Modul-Adresse (Datentyp: INT).

11.3.7 L_EATP_MVis

Die Struktur enthält Daten für das externe Visualisieren mit dem Lenze Engineering-Tool »VisiWinNET« (optional).

11.3.8 L_EATP_scBase

Die Struktur enthält den Modulnamen (Datentyp: STRING).

11.4 3_Enums

11.4.1 L_EATP_ErrorReactionType

Diese Enumeration beinhaltet die Fehlerreaktionstypen. Die Zahlenkonstanten sind nachWertigkeit und Bedeutung aufsteigend sortiert.

• In jeder MAP ist die Referenz „rMMD“ de-klariert, die den Lese-/Schreibzugriff auf die Dateninhalte der MMD- Struktur er-möglicht ("Intellisensefunktion").

Bezeichner Zahlenkonstante Reaktionstyp

None 0 Keine Reaktion/nicht verwendet

Information 1 Information

Warning 2 Warnung

Quickstop 3 Schnellhalt (QSP)

Page 139: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 139

Die Bibliothek L_EATP_ApplicationTemplate3_Enums

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

11.4.2 L_EATP_SMStates

Diese Enumeration zählt die definierten Zustände der Basis-Zustandsmaschine auf. DieZahlenkonstanten sind entsprechend der Wertigkeit und Bedeutung (in Abhängigkeit deskritischen Zustands) absteigend geordnet.

ENUM-Ansicht

Fault 4 Fehler

SystemFault 5 Systemfehler

Bezeichner Zahlenkonstante Reaktionstyp

Bezeichner Zahlenkonstante Zustand in der Zustandsmaschine (Statemachine)

SystemFault 0 Zustand "SystemFault"

Fault 1 Zustand "Fault"

QuickStop 2 Zustand "Quickstop"

Init 3 Zustand "Init"

Ready 4 Zustand "Ready"

Service 5 Zustand "Service"

Manual 6 Zustand "Manual"

Homing 7 Zustand "Homing"• Im Zustand "Homing" wird der Antrieb referenziert. Entweder

wird die Home-Position direkt gesetzt oder eine Referenzfahrt gestartet.

Automatic 8 Zustand "Automatic"

Mode 1 9 Zustand "Mode 1"

Mode 2 10 Zustand "Mode 2"

Page 140: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeVorbereiten: Das Automationssystem in Teilfunktionen aufteilen

140 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12 Ein Automationssystem strukturieren: Beispiel Fliegende Säge

Dieses Kapitel beschreibt beispielhaft, wie der exemplarische Maschinenaufbau "Fliegende Säge" indie Strukturen des ApplicationTemplate zu überführen ist.

12.1 Vorbereiten: Das Automationssystem in Teilfunktionen aufteilen

Das Anwendungsbeispiel beschreibt, wie man die Maschinenapplikation „Fliegende Säge“ in einemodularisierte Softwarestruktur überführt und mit dem ApplicationTemplate abbildet.

[12-1] Beispiel: Maschinenaufbau "Fliegende Säge"

So gehen Sie vor:

1. Die gesamte Maschinenfunktionalität (vorhandener Maschinenaufbau/Maschinenkonzept) nach Teilfunktionen analyieren/unterteilen. Teilfunktionen des Maschinenaufbaus identifizieren ( 141)

2. Die ermittelten Teilfunktionen in Maschinenmodule überführen:Eine Teilfunktion = Ein Maschinenmodul.

3. Darstellen der Maschinenmodule in Form einer Baumstruktur.Im ApplicationTemplate ist die Maschinenstruktur anschließend im Maschinenstrukturbaum (MMT) abgebildet.

Schritt Tätigkeit

1. Vorbereiten: Das Automationssystem in Teilfunktionen aufteilen ( 140)

• Teilfunktionen des Maschinenaufbaus identifizieren

• Teilfunktionen des Maschinenaufbaus als Maschinenmodule abbilden

• Maschinenmodule als Baumstruktur darstellen

2. Realen Maschinenaufbau im »PLC Designer« abbilden ( 142)

• Maschinenmodule erstellen und einbinden

• Maschinenmodule in den Maschinenstrukturbaum einbinden

3. Modulapplikationen der Maschinenmodule verwalten ( 146)

4. Achse in die Modulapplikation einfügen ( 147)

5. Modulapplikation den Tasks zuordnen ( 148)

6. Kommunikation zwischen den Master- und Slave-Modulen einrichten ( 149)

7. Anwendungsbeispiel: Die Visualisierung erweitern ( 150)

8. Statemachine/Zustandsmaschine ( 153)

9. Handfahren der Achsen ( 156)

10. Errorhandling: Fehlerverhalten konfigurieren ( 157)

Page 141: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 141

Ein Automationssystem strukturieren: Beispiel Fliegende SägeVorbereiten: Das Automationssystem in Teilfunktionen aufteilen

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.1.1 Teilfunktionen des Maschinenaufbaus identifizieren

[12-2] Maschinenaufbau in Teilfunktionen unterteilt: Maschinenmodule

12.1.2 Teilfunktionen des Maschinenaufbaus als Maschinenmodule abbilden

12.1.3 Maschinenmodule als Baumstruktur darstellen

Die zuvor ermittelten Teilfunktionen des Maschinenaufbaus sind in Form einer Baumstrukturdarzustellen. Die Baumstruktur ist anschließend im »PLC Designer« als Maschinenstrukturbaumsichtbar.

[12-3] Hierarchie der Maschinenmodule als Baumstruktur

Einfördereinheit: Infeed Sägeblatt/Schneiden: Blade Sägeschlitten/Synchron fahren: SlideAusfördereinheit: Outfeed

Maschinenmodul Funktion

MM 1 Machine Control: Maschinensteuermodul

MM 2 Infeed

MM 3 Flying Saw

MM 4 Slide

MM 5 Blade

MM 6 Outfeed

Page 142: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeRealen Maschinenaufbau im »PLC Designer« abbilden

142 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.2 Realen Maschinenaufbau im »PLC Designer« abbilden

12.2.1 Geräteaufbau: Master und Slaves anhängen

So bilden Sie den Maschinenaufbau im »PLC Designer« ab:

1. Per Rechtsklick auf den Controller mit dem Befehl Gerät anhängen mit dem

"EtherCAT Master" erweitern:

2. Unter dem EtherCAT-Master die EtherCAT-Slaves anhängen:

Per Rechtsklick auf den EtherCAT-Master den Befehl Gerät anhängen ausführen. In der

Auswahlliste die gewünschten Geräte wählen. Wiederholen Sie den Befehl Gerät anhängen solange, bis alle am Feldbus teilnehmenden Slaves in der Geräte-Ansicht eingebunden sind.

Page 143: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 143

Ein Automationssystem strukturieren: Beispiel Fliegende SägeMaschinenmodule erstellen und einbinden

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.2.2 Zykluszeit einstellen

Die Zykluszeit ist auf 2 ms (Eingabewert:2000 μs) einzustellen.

So gehen Sie vor:

1. Per Doppelklick auf EtherCAT_Master die dazugehörige Registerkarte aufrufen.

2. Im Abschnitt Verteilte Uhren den Wert 2000 zuweisen:

Das Symbol vor dem jeweiligen Geräte signalisiert die erfolgreicheEtherCAT-Kommunikation.

12.3 Maschinenmodule erstellen und einbinden

Die zuvor ermittelten Teilfunktionen sind in Form von Maschinenmodulen abzubilden. Das obersteMaster-Maschinenmodul MM 1: MachineControl ist bereits im ApplicationTemplate enthalten. Dieweiteren Teilfunktionen sind hinzuzufügen.

12.3.1 Maschinenmodule erstellen

Die zuvor ermittelten Teilfunktion des Maschinenaufbaus sind jeweils in ein Maschinenmodulabzubilden. Dazu sind in diesem Beispiel folgende Maschinenmodule im Gerätebaum zu erstellen:

So gehen Sie vor:

1. Maschinenmodul MM_EmptyModule kopieren.

Maschinenmodul Funktion

MM 1 Machine Control: Maschinensteuermodul

MM 2 Infeed

MM 3 Flying Saw

MM 4 Slide

MM 5 Blade

MM 6 Outfeed

Page 144: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeMaschinenmodule erstellen und einbinden

144 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Rechtsklick auf den Ordner A65 EmptyModule\MM_EmptyModule Copy Empty Module auswählen.

2. Das zuvor kopierte Maschinenmodul (Empty Module) unterhalb des Ordners

A70_MachineModuleSources einfügen:

Rechtsklick auf den Ordner A70_MachineModuleSources Insert Empty Module

3. Modulnamen eingeben.

Beispiel: MM 2, Einfördereinheit: Infeed

4. Insert klicken, um das Maschinenmodul einzufügen.

Auf diese Weise sind die fünf Maschinenmodule MM 2...MM 6 zu erstellen.

Folgende Maschinenmodule sind zu erstellen:

• B01_Infeed

• B02_Flying Saw

• B03_Outfeed

• C01_Slide

• C02_Blade

Das oberste Maschinensteuermodul MM_ MachineControl istbereits im ApplicationTemplate enthalten.

Page 145: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 145

Ein Automationssystem strukturieren: Beispiel Fliegende SägeMaschinenmodule erstellen und einbinden

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.3.2 Maschinenmodule in den Maschinenstrukturbaum einbinden

Die zuvor im Gerätebaum erstellten Maschinenmodule sind in den Maschinenstrukturbaum (MMT)einzubinden, um die einzelnen Teilfunktionen des Maschinenaufbaus im ApplicationTemplatefunktionsfähig zu machen.

So gehen Sie vor:

Maschinenmodul in den MMT einbinden

1. Per Doppelklick im Gerätebaum öffnen: A10_MachineModuleTree

2. MMT (PRG) doppelklicken.

3. Im Dialogfenster Werkzeuge die Schaltfläche Baustein klicken.• Neuen FB per drag-and-drop erstellen.

• Im Bereich des FBs doppelklicken. Schaltfläche betätigen.

Mit der Eingabehilfe aus dem Element Application...• ...den FB MFB_Infeed zuweisen:

Application\A70_MachineModuleSources\MM_B01_Infeed• ...die Instanz MM_Dcl.B01_Infeed zuweisen:

Application\A55_VarLists\MM_Dcl

Hinweis: In der Eingabehilfe ist die Option Namensraum-Präfix einfügen beim Zuweisen des Instanznamens zu aktivieren.

Adressieren der Maschinenmodule im MMT

4. Im Dialogfenster Werkzeuge die Schaltfläche Eingang klicken.• Neuen Eingang bei MM_Address hinzufügen.• Relative Adresse (Beispiel: 1) zuweisen.

Die Schritte 3. und 4. sind für alle Maschinenmodule M 2...M 6 durchzuführen. Die Bausteine sind entsprechend der zuvor ermittelten Baumstruktur zu erstellen. Der MMT stellt die Baumstruktur um 90 Grad nach links gedreht dar. Jedem Baustein sind folgende Elemente zuzuweisen: • Der dazugehörige Funktionsbaustein,• Die Instanz des Bausteins,• Die relative Adresse.

Page 146: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeMaschinenmodule erstellen und einbinden

146 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

5. Verbinden der Maschinenmodule im MMTAbarbeitungsreihenfolge der Maschinenmodule nach Datenfluss festlegen.Menübefehl: CFCAusführungsreihenfolgeNach Datenfluss anordnen

12.3.3 Modulapplikationen der Maschinenmodule verwalten

Modulapplikationen (MAPs), die Sie nicht benötigen, können Sie löschen. Voraussetzung dabei ist,dass eine MAP pro Maschinenmodul vorhanden ist.

[12-4] Beispiel: Modulapplikationen App1...App3 des Maschinensteuermoduls MM_MachineControl

So gehen Sie vor:

1. Nicht benötigte Modulapplikationen löschen.• Die nicht benötigten Unterordner sind im Gerätebaum aus dem Ordner des

Maschinenmoduls zu löschen, Beispiel: ModApp2, ModApp3.

• Rechtsklick auf den Unterordner Löschen.

2. Nicht benötigte Instanzen aus dem Deklarationsteil im MFB löschen.• Per Doppelklick das gewünschte MFB des Maschinenmoduls öffnen.• Nicht benötigte Instanzen aus dem Deklarationsteil löschen.

Hinweis!

Beim Löschen einer MAP ist zu beachten, dass die dazugehörigen Instanzen im jeweiligen MFB ebenfallszu löschen sind.

Page 147: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 147

Ein Automationssystem strukturieren: Beispiel Fliegende SägeMaschinenmodule erstellen und einbinden

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.3.4 Achse in die Modulapplikation einfügen

Das Beispiel zeigt exemplarisch, wie Sie eine Achse an die ModulapplikationMAP_B01_Infeed_App1 anbinden.

So gehen Sie vor:

1. Per Doppelklick die Modulapplikation MAP_B01_Infeed_App1 öffnen.

2. Achse im Deklarationsteil einfügen:

• Im Programmteil dem Eingang Axis die Achse zuordnen:

Axis: AXIS_REF_SM3;

3. Für kontinuierliche Prozesse ist in der Modulapplikation MAP_B01_Infeed_App1 eine neue Aktion zu erstellen, Beispiel: Continuous:

• Die Aktion Continuous im Programmteil der Modulapplikation ergänzen:

• Im Programmteil der Aktion Continuous die Achse dem Baustein zuordnen:

Um alle Achsen einzubinden, sind diese Schritte in den MAPs von MM_B01_Infeed, MM_B02_Outfeed, MM_C01_Slide und MM_C02_Blade durchzuführen.

Page 148: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeMaschinenmodule erstellen und einbinden

148 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.3.5 Modulapplikation den Tasks zuordnen

So gehen Sie vor:

1. Per Rechtsklick auf den Ordner A11_ModuleAppCalls den Befehl Create Task Call aufrufen.

2. Im folgenden Dialogfenster sind die Modulapplikation auswählen, die die Task aufrufen soll. Die jeweilige MAP mit <</>> der Task zuordnen/Zuordnung aufheben.

3. Per Doppelklick öffnen:

• Ordner A11_ModuleAppCalls

• Das Hauptprogramm MAC_Task_High der Task mit der höchsten Priorität.

4. Dem Baustein die Achse zuordnen IoConfig_Globals.SM_Drive_ETC_i700:

Page 149: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 149

Ein Automationssystem strukturieren: Beispiel Fliegende SägeKommunikation zwischen den Master- und Slave-Modulen einrichten

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.4 Kommunikation zwischen den Master- und Slave-Modulen einrichten

Jedes Maschinenmodul besitzt einen Datencontainer, die ACD-Struktur MACD_sc<Modulname>.

• Über die ACD-Struktur sind Daten mit einem übergeordneten Maschinenmodul austauschbar.

• Das übergeordnete Master-Modul greift via POINTER und REFERENCE auf die ACD-Struktur zu.

Der folgende Abschnitt zeigt, wie ein Datenaustausch zwischen einem Master- und einem Slave-Module möglich ist.

So gehen Sie vor:

1. Per Doppelklick öffnen:

• A70_MachineModuleSources\MM_A01_MachineControl\ ModApp1

• Modulapplikation MAP_A01_MachineControl_App1

2. Im Deklarationsteil sind ein Pointer und eine Referenz auf die ACD-Struktur des Slaves zu deklarieren, der dem Maschinensteuermodul MachineControl untergeordnet ist:

Dieser Schritt ist für alle direkt untergeordneten Slave-Module des Master-Moduls MM_A01_MachineControl durchzuführen.In diesem Beispiel sind Pointer und Referenzen auf die Module Infeed, FlyingSaw und Outfeed zu deklarieren.

3. In allen Slave-Modulen ist der Zugriff auf die ACD-Struktur herzustellen.• Im Programmteil der Modulapplikation des jeweiligen Slave-Moduls ist die Methode

AccessACD() zum Zugriff auf die ACD-Struktur aufzurufen.• Dem Eingang MM_Address ist die relative Adresse des Maschinenmoduls zu übergeben,

auf dessen ACD-Struktur zuzugreifen ist. Die relativen Adressen der Maschinenmodule sind im Maschinenstrukturbaum sichtbar:

Ordner A10_MachineModuleTree\ MMT (PRG).

Page 150: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeAnwendungsbeispiel: Die Visualisierung erweitern

150 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Dem Eingang dwSize ist die Größe der übergebenen Struktur zuzuweisen.

Dieser Schritt ist für alle Slave-Module des Master-Moduls MM_A01_MachineControl erforderlich, die diesem direkt untergeordnet sind.• In diesem Beispiel ist das Maschinenmodul MM_B02_FlyingSaw das übergeordnete

Mastermodul für die Slave-Module MM_C01_Slide und MM_C02_Blade.• Die Schritte 1. bis 3. sind für die Slave-Module MM_C01_Slide und MM_C02_Blade in der

Modulapplikation MAP_B02_FlyingSaw_App1 durchzuführen .

12.5 Anwendungsbeispiel: Die Visualisierung erweitern

Das ApplicationTemplate beinhaltet eine Visualisierung der Maschinenmodule. Der folgendeAbschnitt beschreibt, wie die Visualisierung individuell anzupassen ist.Die HauptvisualisierungL_Main erweitern: Visualisierung eines Maschinenmoduls

[12-5] Aufbau der Visualisierung im ApplicationTemplate

L_Main: Hauptvisualisierung zum zentralen BedienenKeys_Main/ Top_Master: Unterelemente der Visualisierung für Navigationselemente/Oberfläche.

Umschaltbarer Bereich: Visualisierungsseiten

Page 151: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 151

Ein Automationssystem strukturieren: Beispiel Fliegende SägeAnwendungsbeispiel: Die Visualisierung erweitern

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Um die Visualisierung eines Maschinenmoduls in die Hauptvisualisierung L_Main einzufügen undsichtbar zu machen, sind an zwei Stellen Erweiterungen erforderlich.

1. In der Hauptvisualisierung L_Main: Auf der rechten Seite zeigen die Visualisierungsseiten im umschaltbaren Bereich folgende Informationen an: Modulliste, Fehlerliste, Visualisierung des ausgewählten Maschinenmoduls.Um die Visualisierung eines Moduls anzeigen zu können, ist diese in die Frame-Auswahl der Visualisierungsseite/umschaltbarer Bereich zu ergänzen.

2. In der Visualisierung Keys_Main: Um die Modulvisualisierung aufzurufen, ist eine Schaltfläche zu erzeugen.

So gehen Sie vor:

1. Visualisierung im Gerätebaum aufrufen:

Per Doppelklick öffnen: 20_Visualisation L_Main

2. Visualisierungs-Elementenliste öffnen:

• <Alt>+<F6> oder den Menübefehl Visualisierung Elementliste aufrufen.

• Auf der Registerkarte Elementliste die Visualisierung #0 Frame auswählen:

• Den Menübefehl VisualisierungFrame-Auswahl auswählen:

• Aus den verfügbaren Visualisierungen sind die Visualisierungen der zuvor erstellten Maschinenmodule auszuwählen, die im Visualisierungsframe referenziert sein sollen:

Die hier sichtbare Reihenfolge der ausgewählten Visualisierungen entspricht anschließend der Anordnungsreihenfolge der Schaltflächen/Steuerelemente.

Page 152: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeAnwendungsbeispiel: Die Visualisierung erweitern

152 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

3. Im Dialogfenster Eigenschaften im Bereich References ist für jede einzelne Visualiserung die entsprechende Variable einzutragen.

4. Im Ordner .A71_LocalSources ist der Enumerations-Datentyp Vis_eFrame mit den zusätzlichen Modulvisualisierungen zu erweitern.

Hinweis: Die Reihenfolge der Visualisierungen in Vis_eFrame muss der Anordnungsreihenfolge in der Frameauswahl entsprechen (siehe Schritt 2.):

5. Schaltfläche zum Aufrufen der Modul-Visualisierung hinzufügen.

• Per Doppelklick öffnen: A11_Visualisation\SubVisu Keys_Main• Weitere Schaltfläche unterhalb der Schaltfläche Machine Control hinzufügen.• Die neue Schaltfläche entsprechend der zuvor zugewiesenen Modulnamen benennen,

Beispiel erste Schaltfläche: Infeed.

Die Schaltfläche konfigurieren: Farbwechsel bei Mausaktion

So gehen Sie vor:

1. Schaltfläche Infeed durch Klicken auf der Visualisierungsseite markieren.

2. Im Dialogfenster Eigenschaften im Bereich Eingabekonfiguration auf Konfigurieren klicken, um das Verhalten für OnMouseUp zu konfigurieren:

Page 153: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 153

Ein Automationssystem strukturieren: Beispiel Fliegende SägeStatemachine/Zustandsmaschine

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

3. Im Dialogfenster Eingabekonfiguration ST-Code ausführen über die Pfeil-Schaltflächen einfügen.

4. Im Textfeld den Strukturierten Text(ST) eingeben, der auf die Mausaktion OnMouseUp auszuführen ist. Folgenden Wert eingeben:

MM_Vis.scVisuIntern.diFrame :=Vis_eFrame.MVis_Infeed;

5. Im Bereich Eigenschaften unter Color Variables der Schaltfläche für toggle color folgenden Wert eingeben:

MM_Vis.scVisuIntern.diFrame=Vis_eFrame.MVis_Infeed;

12.6 Statemachine/Zustandsmaschine

12.6.1 Zustandsübergang im Maschinensteuermodul steuern

Beispiel: Durch zwei Schaltflächen in der Visualisierung des Maschinensteuermoduls MachineControl sollen alle untergeordneten Maschinenmodule in den Zustand „Ready“ oder „Manual“versetzbar sein.

So gehen Sie vor:

1. Elemente für die Schaltflächen in der Struktur MVis_* deklarieren.

Per Doppelklick öffnen:

• A70_MachineModuleSources\ MM_A01_MachineControl\Structs

• Struktur MVis_scA01_MachineControl

Im Programmteil sind die Variablen des Datentyps BOOL für den Zustandswechsel zu deklarieren, Beispiel: xReady und xManual.

2. Schaltflächen in die Visualisierung einfügen.

Page 154: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeStatemachine/Zustandsmaschine

154 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Per Doppelklick öffnen:

• A70_MachineModuleSources\ MM_A01_MachineControl\Visu

• Visualisierung MVis_A01_MachineControl• Im Dialogfenster Werkzeuge, Abschnitt Common Controls auswählen. Die Schaltflächen

in die Visualisierungsoberfläche einfügen:

3. Variablen zuweisen.

Im Dialogfenster Eigenschaften ist im Abschnitt Eingabekonfiguration\Tab\Variable die zuvor erstellte Variable xReady zuzuweisen.

• Struktur MVis_scA01_MachineControl

• Ort: Ordner A55_VarLists\MM_Vis

4. Im Dialogfenster Eigenschaften im Bereich Eingabekonfiguration auf Konfigurieren klicken, um das Verhalten für OnMouseUp zu konfigurieren:

5. Im Bereich Eigenschaften unter Color Variables der Schaltfläche für toggle color die Variable

aus der Struktur MVis_scA01_MachineControl zuweisen:

6. Programmzeile in der Aktion S02_Ready im Steuermodul Machine Control ergänzen:

Die Schritte 3. bis 6. sind entsprechend für die Schaltfläche Manual durchzuführen.

Page 155: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 155

Ein Automationssystem strukturieren: Beispiel Fliegende SägeStatemachine/Zustandsmaschine

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.6.2 Zustandsübergänge in den Slave-Modulen steuern

Mit den zuvor erstellten Schaltflächen ist ein Wechsel zwischen den Zuständen Ready und Manualmöglich.

Wird über die Schaltfläche Manual der dazugehörige Zustand angefordert, dann sollen dieuntergeordneten Maschinenmodule automatisch die angeschlossenen Achsen freigeben.Erst nachFreigabe der Achsen sollen die unterlagten Module in den Zustand Manual wechseln.

Wird über die Schaltfläche Ready der dazugehörige Zustand angefordert, dann sollen dieunterlagerten Module automatisch die Achsen sperren. Erst nach dem Sperren der Achsen sollen dieModule in den Zustand Ready wechseln.

Das folgende Beispiel zeigt exemplarisch, wie ein Zustandsübergang mit dem MaschinenmodulMM_B01_Infeed steuerbar ist.

So gehen Sie vor:

1. Zustand "Ready" ansteuern.

Per Doppelklick öffnen:

• A70_MachineModuleSources\MM_B01_Infeed\ModApp1

• Unterordner mit den Zustandsaktionen: Map_B01_Infeed_App1 (FB)\States.

• S02_READY.

2. Programmzeilen in der Aktion S02_READY ergänzen:

3. Zustand "Manual" ansteuern.

• Per Doppelklick S03_MANUAL öffnen.

• Programmzeilen in der Aktion S03_MANUAL ergänzen:

Page 156: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeHandfahren der Achsen

156 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

12.7 Handfahren der Achsen

Mit der Visualisierung des Maschinenmoduls MM_Infeed soll das Handfahren der Achse möglichsein. Das folgende Beispiel zeigt, wie zwei Schaltflächen zum positiven und negativen Handfahrenin die Visualisierung des Maschinenmoduls Infeed einzufügen sind.

So gehen Sie vor:

1. Elemente für die Struktur MVis_xxx deklarieren.

Per Doppelklick öffnen:

• A70_MachineModuleSources\MM_B01_MachineModuleSources\MM_B01_Infeed\Structs

• Struktur MVis_scB01_Infeed

Im Programmteil zwei Variablen zum positiven/negativen Handfahren deklarieren:

2. Schaltflächen in die Visualisierung einfügen.

Per Doppelklick öffnen:

• A70_MachineModuleSources\ MM_B01_Infeed\Visu

• Visualisierung MVis_B01_Infeed

Im Dialogfenster Werkzeuge, Abschnitt Common Controls auswählen. Die Schaltflächen in die Visualisierungsoberfläche einfügen:

3. Variablen zuweisen.• Im Dialogfenster Eigenschaften ist im Abschnitt Eingabekonfiguration\Tab\Variable die

Variable aus der Struktur MVis_scB01_Infeed zuzuweisen.• Im Bereich Eigenschaften ist unter Color Variables für toggle color die Variable aus der

Struktur MVis_scB01_Infeed zuzuweisen.

Page 157: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 157

Ein Automationssystem strukturieren: Beispiel Fliegende SägeErrorhandling: Fehlerverhalten konfigurieren

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Dem Baustein AxisBasicControl sind die Variablen zuzuweisen.• Ort:

Modulapplikation MAP_B01_Infeed_App1\Aktion S00_CYCLIC• Die Variablen sind mit den Eingängen xJoggingPos und xJoggingNeg von

AxisBasicControl zu verschalten.• Dem Funktionsbaustein L_SMC_AxisBasicControl die Werte für Geschwindigkeit,

Beschleunigung, Verzögerung zuweisen:

Die Zuweisungen für die Variablen müssen vor dem Aufruf der Bausteininstanz stehen. Stehen die Zuweisungen dahinter, sind diese erst ab dem darauffolgenden Zyklus wirksam.

12.8 Errorhandling: Fehlerverhalten konfigurieren

In diesem Beispiel ist die Freigabe der Achsen beim Zustandswechsel zu überwachen. DasErrorhandling soll einen Fehler auslösen, wenn die Achsen nicht innerhalb von 200 ms freigegebensind.

• Die Achsen sind dazu über den Hardware-Eingang zu sperren.

• Der Fehler und die Fehleraktion sollen in der Visualisierung erkennbar und kontrollierbar sein.

• Das Quittieren des Fehlers soll über eine Schaltfläche in der Visualisierung möglich sein.

Das folgende Beispiel zeigt exemplarisch, wie das gewünschte Fehlerverhalten im MaschinenmodulMM_B01_Infeed konfigurierbar ist.

So gehen Sie vor:

1. Variablen in der Struktur Mvis_* deklarieren.

Per Doppelklick öffnen:

• A70_MachineModuleSources\ MM_B01_Infeed

• Struktur MVis_scB01_Infeed

In der Struktur eine Variable des Datentyps BOOL zum Quittieren des Fehlers deklarieren, Beispiel: xQuit.

2. Schaltflächen in die Visualisierung einfügen.

Page 158: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeErrorhandling: Fehlerverhalten konfigurieren

158 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Per Doppelklick öffnen:

• A70_MachineModuleSources\ MM_B01_Infeed\Visu

• Visualisierung MVis_B01_Infeed

Im Dialogfenster Werkzeuge, Abschnitt Common Controls auswählen. Die Schaltfläche Error Quit in die Visualisierungsoberfläche einfügen:

3. Variablen zuweisen: Visualisierung und Modulapplikation• Auf die zuvor erstellte Schaltfläche klicken.• Im Dialogfenster Eigenschaften ist im Abschnitt Eingabekonfiguration\Tab\Variable die

Variable Infeed.xQuit aus der Struktur MVis_scB01_Infeed zuzuweisen.

Die Variable ist im Ordner A55_VarLists\MM_Vis deklariert.• Im Bereich Eigenschaften ist unter Color Variables für toggle color die gleiche Variable

zuzuweisen.

Per Doppelklick öffnen:

• Ordner A70_MachineModuleSources\ MM_B01_Infeed\ModApp1

• Modulapplikation MAP_B01_Infeed_App1, Aktion Continuous

Die Variable Infeed.xQuit ist dem Funktionsbaustein L_SMC_AxisBasicControl zuzuordnen.

4. Fehler definieren.

Per Doppelklick öffnen:

• Ordner A70_MachineModuleSources\ MM_B01_Infeed\ModApp1\BasicFunctions

• Modulapplikation MAP_B01_Infeed_App1, Methode SetErrors

Am Baustein ErrorsA sind die gewünschte Eigenschaft des Fehlers zu definieren:

5. Timer in der Modulapplikation deklarieren und aufrufen.

Per Doppelklick öffnen:

• Ordner A70_MachineModuleSources\ MM_B01_Infeed\ModApp1

• Modulapplikation MAP_B01_Infeed_App1

Page 159: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 159

Ein Automationssystem strukturieren: Beispiel Fliegende SägeErrorhandling: Fehlerverhalten konfigurieren

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Im Deklarationsabschnitt der MAP den Timer einfügen:

Per Doppelklick öffnen:

• Ordner A70_MachineModuleSources\ MM_B01_Infeed\ModApp1

• Modulapplikation MAP_B01_Infeed_App1

Den Timer aufrufen, Verzögerungszeit: 200 ms

6. Errorhandling programmieren.

Programmzeile hinzufügen:

Per Doppelklick öffnen:

• Ordner A70_MachineModuleSources\ MM_B01_Infeed\ModApp1\Map_B01_Infeed_App1 (FB)\States

• Aktion S02_Ready

Programmzeile in die Aktion Continuous einfügen:

Per Doppelklick öffnen:

• Ordner A70_MachineModuleSources\ MM_B01_Infeed\ModApp1\Map_B01_Infeed_App1 (FB)\States

• Aktion S03_Manual

Programmzeile in die Aktion Continuous einfügen:

Per Doppelklick öffnen:

• Ordner A70_MachineModuleSources\ MM_B01_Infeed\ModApp1\Map_B01_Infeed_App1 (FB)\States

• Aktion S10_Fault

Page 160: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Ein Automationssystem strukturieren: Beispiel Fliegende SägeErrorhandling: Fehlerverhalten konfigurieren

160 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Programmzeile in die Aktion Continuous einfügen:

Page 161: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 161

Das Beispielprojekt "ApplicationTemplateCounter"

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

13 Das Beispielprojekt "ApplicationTemplateCounter"

Das ApplicationTemplateCounter ist ein Beispielprojekt auf Basis des ApplicationTemplate mit zweieingebundenen Maschinenmodulen. Die Visualisierung veranschaulicht die Kommunikation zwi-schen den Maschinenmodulen.

Die Bedienoberfläche der Visualisierung gliedert sich in folgende Bereiche:

Was bewirkt das Beispielprogramm im ApplicationTemplateCounter?

• Das Zählerbeispiel veranschaulicht, dass die Maschinenmodule (MM_Module1/MM_Module2) abhängig vom vorgebenen Zustand arbeiten.

• Die Visualisierung veranschaulicht die Kommunikation zwischen den Maschinenmodulen durch die ACD-Struktur.

• Der Bereich visualisiert die Kommunikation zwischen den einzelnen Maschinenmodulen.

• In diesem Bereich ist die Demo-Visualisierung der Beispielprogramme dargestellt.

Maschinenmodul/Zustand Funktion

MM_Module1

Automatic Inkrementieren (50 Einheiten pro Sekunde)

Mode1 Dekrementieren (zehn Einheiten pro Sekunde)

Service Wert 123 laden

Fault Aktuellen Wert auf null setzen.

Systemfault Aktuellen Wert auf null setzen.

MM_Module2

Automatic Inkrementieren (20 Einheiten pro Sekunde)

Mode1 Inkrementieren (Einer-Schritte bis 800000)

Mode2 Dekrementieren (Fünf Einheiten pro Sekunde)• In "Mode2" von Modul 2 sind die Daten gesichert/ungesichert (Datenkon-

sistenz) übertragbar.L_EATP_CriticalSection ( 125)L_EATP_ErrorListHandler ( 126)

Service Wert 456 laden

Fault Aktuellen Wert auf null setzen.

Systemfault Aktuellen Wert auf null setzen.

MM_Machine Den Wert von Modul 1 mit dem Wert von Modul 2 addieren:<Wert Module1> + <Wert Module2>

Den Wert von Modul 2 vom Wert von Modul 1 subtrahieren:<Wert Module1> - <Wert Module2>

Page 162: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Das Beispielprojekt "ApplicationTemplateCounter"Beispielprogramme im Maschinenmodul MM_Module1/MM_Module2

162 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

13.1 Beispielprogramme im Maschinenmodul MM_Module1/MM_Module2

Die jeweilige Modulapplikation ruft die Zustandsmaschine auf.

• Beispiel: Beim Maschinenmodul MM_Module1 ruft die Modulapplikation

MAP_Module1_App1 die Zustandsmaschine auf.

[13-1] Beispiel: Modulapplikation MAP_Module1_App1 (Maschinenmodul MM_Module1)

13.1.1 Zustand "Automatic"

[13-2] Beispiel: Zustand "Automatic" von MM_Module1

Bei aktiviertem Zustand "Automatic" ruft die Methode SMDispatcher die Aktion

S05_AUTOMATIC“ auf:

• MM_Module1: „Inkrementieren um 50 Einheiten pro Sekunde“. Dabei ist der Timer

„tonParam.Q“ im dazugehörigen Maschinenmodul MAP_Module1_App1 aktiviert.

: Timer für Mode1/Automatic-Mode: Methodenaufruf. Statemachine(): Stati anzeigen/SMDispatcherCaller(): Aktionen aufrufen (je nach Zustand): Externe Visualisierung einbinden: Methode SetErrors()/Fehlerbehandlung (Errorhandling) aufrufen

Page 163: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 163

Das Beispielprojekt "ApplicationTemplateCounter"Beispielprogramme im Maschinenmodul MM_Module1/MM_Module2

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• MM_Module2: „Inkrementieren um 20 Einheiten pro Sekunde“. Dabei ist der Timer „ton20Hz“

im dazugehörigen Maschinenmodul MAP_Module2_App1 aktiviert.

13.1.2 Zustand "Mode1"

[13-3] Beispiel: Die Aktion S06_MODE1 von MM_Module1

Bei aktiviertem Zustand „Mode1" ruft die Methode SMDispatcher die Aktion S06_MODE1auf: "Dekrementieren um zehn Einheiten pro Sekunde“. Der Timer „ton10Hz“ ist im dazugehörigen

Maschinenmodul MAP_Module1_App1 aktiviert.

• MM_Module2: Der Timer „ton10Hz“ ist im dazugehörigen Maschinenmodul

MAP_Module2_App1 aktiviert.

13.1.3 Zustand "Mode2"

Bei aktiviertem "Mode2" ruft die Aktion S07_MODE2 auf: "Dekrementieren um fünf Einheitenpro Sekunde".

• MM_Module2: Der Timer „ton5Hz“ ist im dazugehörigen Maschinenmodul

MAP_Module2_App1 aktiviert.

13.1.4 Zustand "Service"

[13-4] Beispiel: Die Aktion S04_SERVICE on MM_Module1

Bei aktiviertem Zustand „Service“ ruft die Methode SMDispatcher die Aktion S04_SERVICEaus:

• MM_Module1: „Wert 123 laden“.

• MM_Module2: „Wert 456 laden“.

Page 164: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Das Beispielprojekt "ApplicationTemplateCounter"Beispielprogramm Maschinenmodul MM_Machine

164 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

13.1.5 Zustand "Fault"/"Systemfault"

[13-5] Beispiel: Die Aktion S10_FAULT

Bei aktiviertem Zustand „Fault“/"Systemfault" ruft die Methode SMDispatcher jeweils die

Aktion S10_FAULT/ S11_SYSTEMFAULT auf.

• Die Aktionen S10_FAULT/ S10_SYSTEMFAULT beinhalten die Funktion „Aktuellen Wert auf null setzen“.

13.2 Beispielprogramm Maschinenmodul MM_Machine

Die Modulapplikation MAP_Machine_App1 des Maschinenmoduls MM_Machine beinhaltetfolgende Funktionen:

• Den Wert von Modul 1 mit dem Wert von Modul 2 addieren:<Wert Module1> + <Wert Module2>

• Den Wert von Modul 2 vom Wert von Modul 1 subtrahieren:<Wert Module1> - <Wert Module2>

Page 165: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 165

Das Beispielprojekt "ApplicationTemplateCounter"Simulation im ApplicationTemplateCounter

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

13.3 Simulation im ApplicationTemplateCounter

So deaktivieren Sie die "Watchdog"-Überwachung:

1. In der Geräte-Ansicht den Ordner A90_Resources doppelklicken.

• Taskkonfiguration TaskHighPriority doppelklicken.• Auf der Registerkarte Konfiguration den Watchdog durch Entfernen des Häkchens

deaktivieren:

• Taskkonfiguration TaskMidPriority doppelklicken.• Auf der Registerkarte Konfiguration die Option Watchdog durch Entfernen des

Häkchens deaktivieren:

Hinweis!

Um den Simulationsmodus im "ApplicationTemplateCounter" zu verwenden, muss die "Watchdog"-Überwachung deaktiviert sein (entspricht der Standardeinstellung im ApplicationTemplate).Eine aktivierte "Watchdog"-Überwachung führt zu einer Fehlermeldung, so dass der Simulationsmodus nicht aktivierbar ist.

Page 166: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

AnhangMethoden-Übersicht - ApplicationTemplate

166 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14 Anhang

14.1 Methoden-Übersicht - ApplicationTemplate

14.1.1 Auf die Zustandsmaschine zugreifen - Die Methoden des BaseChannels

Bezeichner/Funktion Übergabewert/Datentyp Beschreibung

Werte lesen

baseChannelGetActualStateErmittelt den aktuellen Zustand der Statemachine für das untergeordnete Slave-Modul/für das eigene Maschinenmodul.

MM_AddressL_EATP_MM_Address

• Adresse des Moduls, dessen aktueller Zustand anzufragen ist.

• Der Wert "0" sowie die Konstante L_EATP_CONST.OWNID adressieren die moduleigene ID.

Rückgabewert/Datentyp

L_EATP_SMStates • Aktueller Zustand des angefragten Maschinenmoduls

baseChannelGetErrorInformationLiest die Fehlerinformation aus, der die höchste Priorität zugewiesen ist. Fehlerquellen können sein:

• Moduleigene Applikation(MAP).• Untergeordnetes Slave-

Maschinenmodul.

Eingang • Adresse des Moduls, dessen aktueller Zustand anzufragen ist.

• Der Wert "0" sowie die Konstante L_EATP_CONST.OWNID adressieren die moduleigene ID.

MM_AddressL_EATP_MM_Address

Rückgabewerte/Datentyp

dwActPriorityDWORD

Aktuelle Fehlerinformationen:• Priorität,• Fehlernummer,• Fehlerreaktionstyp,• Quittierverhalten,• Fehlertexte,• Fehlerdetails.

wActErrCodeWORD

eActReactionL_EATP_ErrorReactionType

xAckNeededBOOL

sActTextSTRING

dwActErrDetailDWORD

baseChannelGetNominalState• Ermittelt den Soll-Zustand der

Zustandsmaschine des angefragten Maschinenmoduls/des eigenen Moduls

MM_AddressL_EATP_MM_Address

• Relative Adresse des Moduls, dessen aktueller Zustand anzufragen ist.

• Der Wert "0" sowie die Konstante L_EATP_CONST.OWNID adressieren die moduleigene Adresse.

Rückgabewert/Datentyp

L_EATP_SMStates • Soll-Zustand des angefragten Maschinenmoduls

Page 167: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 167

AnhangMethoden-Übersicht - ApplicationTemplate

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

baseChannelGetNominalStateFromMaster

• Ermittelt den vom Master-Modul angeforderten Soll-Zustand des eigenen Moduls

Hinweis: Die Verwendung dieser Methode ist nur bei aktivierter Funktion DisableDefaultCouplingSlave sinnvoll.

• In allen anderen Fällen liefert die Methode das gleiche Ergebnis wie der Aufruf baseChannelGetNominalState(L_EATP_CONST.OWNID).

- -

Rückgabewert/Datentyp

L_EATP_SMStates • Soll-Zustand des angefragten Maschinenmoduls

baseChannelGetWarningErmittelt, ob eine Warning bei einem Slave-Maschinenmodul/des eigenen Moduls aktiv ist.

MM_AddressBOOL

ID des Moduls, dessen aktueller Zustand anzufragen ist.

• TRUE: Warnung ist aktiv• FALSE: Warnung ist inaktiv

Werte schreiben

baseChannelSetNominalState• Setzt den Soll-Zustand der

Zustandsmaschine bei einem Slave-Modul/dem eigenen Modul.

Hinweis: Diese Methode hat nur dann eine Funktion, wenn die Funktion DisableDefaultCouplingSlave (Soll-Zustand beim eigenen Modul) oder DisableDefaultCouplingMaster (Soll-Zustand bei einem Slave-Modul) aktiviert ist.

MM_AddressL_EATP_MM_Address

• ID des Moduls, dessen aktueller Zustand anzufragen ist.

• Der Wert "0" sowie die Konstante L_EATP_CONST.OWNID adressieren die moduleigene ID.

eStateL_EATP_SMStates

• Zu setzender Soll-Zustand.

baseChannelSetErrorQuit• Setzt das Fehlerquittierungsbit

bei einem Slave-Modul/beim eigenen Modul.

Hinweis: Diese Methode funktioniert nur bei aktiviertem Fehlerquittieren des eigenen Moduls/des Masters (DisableDefaultCouplingSlave/DisableDefaultCouplingMaster aktiv).

MM_AddressL_EATP_MM_Address

• ID des Moduls, dessen aktueller Zustand anzufragen ist.

• Der Wert "0" sowie die Konstante L_EATP_CONST.OWNID adressieren die moduleigene ID.

xValueBOOL

• TRUE: Fehlerquittieren ist aktiv• FALSE: Fehlerquittieren ist inaktiv

Bezeichner/Funktion Übergabewert/Datentyp Beschreibung

Page 168: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

AnhangMethoden-Übersicht - ApplicationTemplate

168 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.1.2 Moduleigene Zustandsübergange sperren/freigeben

14.1.3 Quickstop/Schnellhalt-Verhalten der Statemachine aktivieren/deaktivieren

Bezeichner/Funktion Übergabewert/Datentyp Beschreibung

SMDisableAutomaticToReady• Steuert den Zustandsübergang

"Automatic" "Ready"

xValueBOOL

• TRUE: Zustandsübergang sperren.• FALSE: Zustandsübergang

freigeben.

SMDisableReadyToAutomatic• Steuert den Zustandsübergang

"Ready""Automatic"

xValueBOOL

SMDisableReadyToManual• Steuert den Zustandsübergang

"Ready""Manual"

xValueBOOL

SMDisableReadyToMode1• Steuert den Zustandsübergang

"Ready""Mode1"

xValueBOOL

SMDisableReadyToMode2• Steuert den Zustandsübergang

"Ready""Mode2"

xValueBOOL

SMDisableReadyToHoming• Steuert den Zustandsübergang

"Ready""Homing"

xValueBOOL

SMDisableReadyToService• Steuert den Zustandsübergang

"Ready""Service"

xValueBOOL

SMDisableManualToReady• Steuert den Zustandsübergang

"Manual""Ready"

xValueBOOL

SMDisableMode1ToReady• Steuert den Zustandsübergang

"Mode1""Ready"

xValueBOOL

SMDisableMode2ToReady• Steuert den Zustandsübergang

"Mode2""Ready"

xValueBOOL

SMDisableHomingToReady• Steuert den Zustandsübergang

"Homing""Ready"

xValueBOOL

SMDisableServiceToReady• Steuert den Zustandsübergang

"Service""Ready"

xValueBOOL

SMEnableInitToReady• Steuert den Zustandsübergang

"Init""Ready"

xValueBOOL

Bezeichner/Funktion Übergabewert/Datentyp Beschreibung

Automatisches Quickstop-Verhalten der Statemachine aktivieren/deaktivieren

baseChannelDisableQSPFollowing Eingang • TRUE: Automatisches Quickstopverhalten der Statemachine aktivieren.

• FALSE: : Automatisches Quickstopverhalten der Statemachine deaktivieren.

MM_AddressL_EATP_MM_Address

xValueBOOL

Page 169: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 169

AnhangTipps&Tricks

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.1.4 Standardkopplung ("DefaultCoupling") aktivieren/deaktivieren

14.2 Tipps&Tricks

14.2.1 Ein Maschinenmodul umbenennen

Um den Modulnamen zu ändern, sind folgende Schritte zu beachten.

• Beispiel: Folgende Modulnamen sind zu ändern:

1. "Module1""VirtualMaster"

2. "Module2""Transport2"

So gehen Sie vor:

1. Die globale Variablenliste im Ordner A55_VarLists aufrufen. Die Abbildung zeigt die textuelle Darstellung der Variablenliste.

• Maschinenmodule ( MFB_xxx) instanziieren. • Die Instanznamen umbenennen:

"Module1""VirtualMaster"

"Module2""Transport2"

2. Im Ordner A10_MachineModule sind die Instanznamen im Maschinenmodulbaum (MMT) entsprechend umzubenennen (Beispiel: ApplicationTemplateCounter):

Bezeichner/Funktion Übergabewert/Datentyp Beschreibung

Entkoppeln von der Statemachine aktivieren/deaktivieren: Maschinensteuermoduls/Mastermodul

SMDisableDefaultCouplingMasterEntkoppeln des Maschinensteuermoduls von der Statemachine.

xValueBOOL

• TRUE: Entkoppeln des Masters deaktivieren

• FALSE: Entkoppeln des Masters aktivieren

Entkoppeln von der Statemachine aktivieren/deaktivieren: Maschinensteuermoduls/Mastermodul

SMDisableDefaultCouplingSlaveAktiviert/Deaktiviert das Entkoppeln eines untergeordneten Slave-Moduls von der Statemachine.

xValueBOOL

• TRUE: Entkoppeln des Slave-Moduls aktivieren.

• FALSE: Entkoppeln des Slaves deaktivieren.

Page 170: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

AnhangTipps&Tricks

170 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

3. Im Ordner A11_ModuleAppCalls sind die Instanznamen in jedem Taskaufruf umzubenennen.

• Beispiel: MAC_Task_high

4. Die geänderten Modulnamen sind anschließend in der Machine Module List sichtbar.

• Ordner A20_Visualisation L_Main, Schaltfläche M.-Modules klicken

Page 171: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 171

AnhangTipps&Tricks

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.2.2 Weiteres Vorgehen: Schaltflächen der Visualisierung umbenennen

Um die Schaltflächen der Visualisierung umzubennen, sind folgende Schritte auszuführen.

So gehen Sie vor:

1. Folgende Visualisierung aufrufen: Ordner A20_Visualisation Keys_Main

• Durch das Ändern der Instanznamen sind die Variablenzuordnungen passend zu

aktualisieren. In der Visualisierung Keys_Main den Bereich MM_Machine anklicken.

2. Unter AnsichtElementeigenschaften die Instanznamen den zu referenzierenden

Visualisierungen zuordnen:

3. Schaltflächen umbenennen:

• Die gewünschte Schaltfläche doppelklicken, gewünschten Namen vergeben.• Alternativ sind die Bezeichnungen der Schaltfächen unter

AnsichtElementeigenschaftenTexte editierbar.

4. Das Projekt...• ...bereinigen: ErstellenBereinigen

• ...übersetzen: Erstellen Übersetzen (F11)

5. Nach erfolgreichem Kompilier-Vorgang ist die Visualisierung funktionsfähig.

Page 172: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

AnhangTipps&Tricks

172 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.2.3 Rezepturverwalter

Allgemeine Informationen zum Rezepturverwalter finden Sie im »PLC Designer«.

Dieser Abschnitt erhält weiterführende Informationen über...

• ...das Erstellen von Rezepturen

• ...das Verwalten von Rezepturen via Kommandos: RecipeManCommands

Der Rezepturverwalter ermöglicht das Erstellen und Verwalten von Rezepturen.

• Rezepturdefinitionen sind benutzerdefinierbare Variablenlisten.

• Rezepturen sind vom Controller lesbar/auf der Steuerung archivierbar.

Rezepturen archivieren

Alle Rezepturen, die in der Rezeptdefinition vorhanden sind, sind in jeweils separaten Dateien(flüchtig auf dem Controller) gespeichert.

• Die auf dem Controller vorhandenen Rezeptur-Dateien sind beispielsweise auf die Festplatte des Engineering PCs übertragbar.

So gehen Sie vor:

1. In der Geräte-Ansicht auf die gewünschte Achse klicken.

2. Die dazugehörige Registerkarte Dateien klicken:

3. Schaltfläche klicken, um die Daten des Controllers anzuzeigen.

• Gewünschte Rezepturdatei ( *.txtrecipe) selektieren

• Durch Klicken der Pfeiltaste die markierte Datei in den Zielort zu übertragen (Um die

Rezepturdatei auf den Engineering PC zu übertragen, ist im Bereich zur lokalen Festplatte des Engineering PCs zu navigieren).

Page 173: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 173

AnhangTipps&Tricks

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.2.4 Voraussetzung

• Jedes Maschinenmodul hat ein Interface MPar_sc<M-Identifikator>, das die Parameter für das entsprechende MaschinenModul enthält.

• Jedes Maschinenmodul-Interface ist global unter MM_Par im Ordner A55_VarLists zu instanziieren:

14.2.5 Rezepturdefinition erstellen

Mit Hilfe des Rezepturverwalters sind verschiedene Rezepturdefinitionen innerhalb eines Projektesaktiv verwendbar.

So gehen Sie vor:

1. Im Ordner A90_Resources den Rezepturverwalter aufrufen:

• Verwenden Sie dieses Dialogfenster, um eine Rezepturdefinitionen zu erstellen/zu speichern.

2. Per Rechtsklick auf Rezepturverwalter Im Ordner A90_Resourcesfolgenden Befehl ausführen:

Objekt hinzufügen Rezepturdefinition

Page 174: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

AnhangTipps&Tricks

174 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Den gewünschten Namen vergeben:

• Schaltfläche Öffnen klicken, um die Rezepturdefinition einzufügen.

• Ergebnis: Die Rezepturdefinition ist im Ordner A90_Resources eingefügt:

14.2.6 Rezepturdefinition - Variablen zuweisen

Einer neu erstellten Rezepturdefinition sind die entsprechenden Variablen mit Hilfe derEingabehilfe zuzuweisen.

So gehen Sie vor:

1. Die gewünschte Rezepturdefinition doppelklicken (Beispiel: MM_Par_Modul1)

2. Auf der Registerkarte der Rezepturdefinition (Beispiel: MM_Par_Modul1) in der Spalte Variable doppelklicken:

• Schaltfläche klicken, um die Eingabehilfe zu starten.

3. Mit der Eingabehilfe sind die Variablen des Maschinenmoduls der Rezepturdefinition zuzuweisen:

• Eingabe durch OK betätigen

Page 175: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 175

AnhangTipps&Tricks

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

• Die zugewiesenen Variablen sind auf der Registerkarte der Rezepturdefinition sichtbar:

• Nach dem "Einloggen" sind die Daten der PLC-Variablen unter verfügbar.

14.2.7 Rezepturen in eine Rezepturdefinition einfügen

So gehen Sie vor:

1. Rezeptur in die Rezepturdefinition (Beispiel: MM_Par_Modul1) einfügen:

Rechtsklick Rezeptur einfügen:

• Gewünschten Namen vergeben.• Unter "Kopieren von:" sind die bereits vorhandenen Rezepturen auswählbar.• OK klicken, um die Rezeptur einzufügen.• Ergebnis: Die eingefügte Rezeptur (Beispiel: Rezeptur1) ist als weitere Spalte in der

Rezepturdefinition sichtbar. Weisen Sie die gewünschten Werte in der Spalte der Rezeptur zu.

Über RecipeManCommands sind weitere Rezepturen aus dem PLC-Programm heraus zu verwalten.

Page 176: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

AnhangTipps&Tricks

176 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.2.8 Rezepturen verwalten mit RecipeManCommands

Dieser Abschnitt erhält Informationen zum Erstellen von Rezepturen durch Verwenden derRecipeManCommands. Um eine Rezeptur zu erstellen, ist die er Name der vorhandenenRezepturdefinition (RecipeDef) anzugeben.

[14-1] Beispiel: Rezepturdefinition MM_Par_Modul1

14.2.8.1 Create Recipe

• ...erstellt eine neue (leere) Rezeptur .

[14-2] Programmbeispiel: Die Rezeptur "Rezeptur1" in der Rezepturdefiniton MM_Par_Modul1 erstellen

Ergebnis: Auf dem Controller sind anschließend folgende Dateien verfügbar:

• Der Rezepturverwalter hat die Rezeptur "Rezept1" (Datei: Rezept1.MM_Par_Modul1.txtrecipe) erstellt.

• Beim Aufruf des Kommandos CreateRecipe ist der passende Name der Rezepturdefinition (RecipeDef) anzugeben, Beispiel: MM_Par_Modul1

VAR _RecipeManCommands : RecipeManCommands; _stRecipeDef : STRING := 'MM_Par_Modul1'; [Name der Rezepturdefinition] _stRecipe3 : STRING := 'Rezept1';END_VAR

_RecipeManCommands.CreateRecipe(_stRecipeDef,_stRecipe3);

Page 177: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 177

AnhangTipps&Tricks

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.2.8.2 ReadAndSaveRecipeAs

...überträgt die aktuellen PLC-Werte in die angegebene Rezeptur/Datei.

[14-3] Programmbeispiel: Die aktuellen PLC-Werte in die Rezeptur/Datei "Rezept_2011_10_01.txtrecipe"/"Rezeptur2" übertragen.

Ausgangssituation - Rezepturdefinition MM_Par_Modul1:

Ergebnis:

VAR _RecipeManCommands : RecipeManCommands; _stRecipeDef : STRING := 'MM_Par_Modul1'; [Name der Rezepturdefinition]

_stRecipe2 : STRING := 'Rezept2'; [Name der Rezeptur] _stFileName1: STRING := 'Rezept_2011_10_01.txtrecipe';END_VAR

MM_Par.scModule1.lrVel := 22;MM_Par.scModule1.lrAcc := 12;MM_Par.scModule1.lrDec := 13;_RecipeManCommands.ReadAndSaveRecipeAs(_stRecipeDef,_stRecipe2,_stFileName1);

• Spalte zeigt die aktuellen PLC-Werte an.

• Spalte zeigt die Rezeptur an ("Rezept1")

• Die Rezeptur/Datei "Rezept_2011_10_01.txtrecipe" ist auf dem Controller angelegt.

[14-4] Beispielausgabe Datei/Rezeptur "MM_Par_Modul1/"Rezeptur2"

• Die aktuellen PLC-Werte sind in der Rezeptur/der Datei sichtbar.

Page 178: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

AnhangTipps&Tricks

178 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.2.8.3 LoadFromAndWriteRecipe

...lädt die Rezeptur aus der angegebenen Datei in das "_stRecipe2" und

...schreibt die Rezeptur auf die aktuellen PLC-Werte

[14-5] Beispiel: Ansicht des Programms

Ausgangssituation:

Ergebnis:

Die Werte der Rezeptur(datei) "Rezept_2011_10_01.txtrecipe" sind...

VAR _RecipeManCommands : RecipeManCommands; _stRecipeDef : STRING := 'MM_Par_Modul1'; [Name der Rezepturdefinition] _stRecipe1: STRING := 'Rezept1'; _stRecipe2: STRING := 'Rezept2'; _stRecipe3: STRING := 'Rezept3'; _stFileName1: STRING := 'Rezept2011_11_01.txtrecipe'; _stFileName3: STRING := 'Rezept3. MM_Par_Modul1.txtrecipe';END_VAR

MM_Par.Par_Printer.lrPar1:=325.68;MM_Par.Par_Printer.wPar4:= 375;_RecipeManCommands.LoadFromAndWriteRecipe(_stRecipeDef,_stRecipe2,_stFileName1);

• Die (zu übertragenden) Werte der Rezepturdefinition "Rezept_2011_10_01.txtrecipe".

• ...in die aktuellen PLC-Werte (Spalte ) übertragen.

• ...in die Rezeptur(datei) "Rezept3.MM_Par_Modul1.txtrecipe" übertragen.

Page 179: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 179

AnhangTipps&Tricks

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.2.8.4 WriteRecipe

...schreibt die Werte einer Rezeptur in die PLC-Variablen.

[14-6] Beispiel: Ansicht des Programms

Ausgangssituation:

Ergebnis:

Die Werte der Rezeptur(datei) "Rezept2_MM_Par_Modul1.txtrecipe" sind...

VAR _RecipeManCommands : RecipeManCommands; _stRecipeDef : STRING := 'MM_Par_Modul1'; [Name der Rezepturdefinition] _stRecipe2 : STRING := 'Rezept2';END_VAR

_RecipeManCommands.WriteRecipe(_stRecipeDef,_stRecipe2);

• Die (zu übertragenden) Werte der Rezepturdatei "Rezept2.MM_Par_Modul1.txtrecipe".

• ...in die Werte von MFB_Module1 übertragen.

• ...in die aktuellen PLC-Werte (Spalte ) übertragen.

Page 180: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

AnhangTipps&Tricks

180 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.2.8.5 ReadRecipe

...überträgt die aktuellen PLC-Variablenwerte in eine ausgewählte Rezeptur.

[14-7] Beispiel: Ansicht des Programms

VAR _RecipeManCommands : RecipeManCommands; _stRecipeDef : STRING := 'MM_Par_Modul1'; [Name der Rezepturdefinition] _stRecipe2: STRING := 'Rezeptur2';END_VAR

_RecipeManCommands.ReadRecipe(_stRecipeDef,_stRecipe2);

• Die aktuellen PLC-Werte sind...

• ...in Spalte sichtbar.

• ...in der Rezeptur(datei)"Rezept.MM_Par_Modul1.txtrecipe" sichtbar.

Page 181: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 181

AnhangTipps&Tricks

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

14.2.8.6 GetRecipeCount

...gibt die Anzahl der Rezepturen innerhalb der Rezepturdefinition aus.

[14-8] Beispiel: Ansicht des Programms

VAR _RecipeManCommands : RecipeManCommands; _stRecipeDef : STRING := 'MM_Par_Modul1'; [Name der Rezepturdefinition] _RecipeCount : INT;END_VAR

_RecipeCount := _RecipeManCommands.GetRecipeCount(_stRecipeDef);

Page 182: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Index

182 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

0-91_POUs 123

2_Structs_Types 135

3_Enums 138

AAbfragebeispiel

SOLL-Zustand der Zustandsmaschine des übergeordneten Masters abfragen 93Statusübergang freigeben 93Statusübergang freigeben/sperren 93Zustandsmaschine abfragen (IF-Bedingung) 93

AbfragebeispieleZustandsmaschine 93

AccessACD 123

ACD-Struktur 76

ACD-Struktur im MFB deklarieren/registrieren 76

Achse einfügen 61

Adressierung der Maschinenmodule 21

Anwendungshinweise (Darstellung) 12

appChannelLock 107

appChannelUnlock 107, 126

ApplicationTemplate 17

ApplicationTemplate starten 33

Arbeiten mit dem ApplicationTemplate 41

AT_ACTION_ADD_MODULE 56

AT_ACTION_ADD_MODULEAPPLICATION 69

AT_ACTION_CREATE_NEW_MODULE 53

AT_ACTION_CREATE_NEW_MODULEAPPLICATION 65

Auf die ACD-Struktur zugreifen 77

Auf die Zustandsmaschine zugreifen - Die Methoden des BaseChannels 166

Auf moduleigene Strukturvariablen zugreifen 74

Auf Strukturen von anderen Maschinenmodulen zugreifen 75

Auf Strukturvariablen von Maschinenmodulen zugreifen 74

Aufbau eines Maschinenmoduls 20

Aus Maschinenmodulen mit mehreren Modulapplikationen zugreifen 92

Automatisch generierte Funktionen 119

BBase 124

Base (Methode) 129

BaseChannel 22

BaseChannel-Methoden 166

baseChannelSetNominalState 85

BeispielprogrammApplicationTemplateCounter 161

Beispielprogramm Maschinenmodul MM_Machine 164

CCANbus 46

CANopen I/O Abbild 51

CANopen Manager 47

CANopen Remote Device 50

CAN-Parameter einstellen (Logic-Geräte) 50

checkSlave 131

DDefaultCoupling 86

DisableDefaultCouplingMaster 88

Dokumenthistorie 10

Dynamischer Speicher 35

EEin Modul umbenennen 56

Einloggen 36

Elemente des ApplicationTemplates 19

E-Mail an Lenze 185

Error List 100CSV-Datei exportieren 102

Errorhandling 96Fehler auslösen 99Fehler definieren 96

Errorhandling (Fehlerbehandlung) 24, 96

ErrorList Handler 100

Erste Schritte - ApplicationTemplate bedienen 37

Erstelltes Maschinenmodul einbinden 56

FFB L_EATP_SMAccess 92

Feedback an Lenze 185

Fehler definieren - Prinzipielle Vorgehensweise 98

Fehler quittieren 97, 128

Fehler quittieren- Reaktion im Maschinenmodul 98

Fehlerbehandlung 96

Fehlerreaktion konfigurieren 97

Fehlerreaktionstypen 96

Funktionalität des Maschinenaufbaus in Maschinenmodule überführen 27

GGetBooleanProperty 119

GetCompany 120

GetNumberProperty 120

GetRecipeCount 181

GetTextProperty 121

GetTitle 121

GetVersion 122

GetVersionProperty 122

Gültigkeit der Dokumentation 10

II/O-Module einbinden 63

Innerhalb der Modulapplikation programmieren 68

Instanzen von Maschinenmodulen erzeugen 54

Internal Control 109

Index

Page 183: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Lenze · ApplicationTemplate · 1.4 DE - 10/2013 183

Index

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

KKommunikation zum Controller einrichten 15

Kommunikation zwischen den Maschinenmodulen 22

Konsistente Datenübertragung 107

LL_EATP_ACD_Base 135

L_EATP_ApplicationcheckSlave 124Lokale Variablen 123

L_EATP_ApplicationTemplate 118

L_EATP_BaseChannel 136

L_EATP_CONST.OWNID 85, 89, 90

L_EATP_CriticalSection 125

L_EATP_ErrorList 136

L_EATP_ErrorListEntry 136

L_EATP_ErrorListHandler 126, 127

L_EATP_ErrorReactionType 138

L_EATP_ErrorSet 127

L_EATP_MM_Address 138

L_EATP_MMD_Base 137

L_EATP_Module 129

L_EATP_ModuleDiag 131

L_EATP_ModuleErrorHandler 132

L_EATP_ModulRelations 133

L_EATP_MVis 138

L_EATP_scBase 138

L_EATP_SMAccess 134

L_EATP_SMStates 139

LoadFromAndWriteRecipe 178

Lock 125

LockState 125

Logbuch 103

MMAC_Task_Free 106

MAC_Task_High 106

MAC_Task_Mid 106

machine module 20

machine module tree 20

MachineModulTree 19

MAP 21

Maschinenmodul (MM) 20

Maschinenmodul erstellen 53

Maschinenmodulbaum 19

Maschinenmodule in den Maschinenstrukturbaum einbinden 145

Methoden-Übersicht - ApplicationTemplate 166

MFB_Module1 67

MM 20

MM_Dcl 31

MM_EmptyModule 53

MM_IO 31

MM_Par 31

MM_PD 31

MM_Vis 31

MMT 19

Moduladresse, absolute 21

Moduladresse, relativ 21

Modulapplikation 21

Modulapplikation einbinden 69

Modulapplikation erstellen 65

Modularisieren des Automationssystems 27

Moduldiagnose 105

Module Application 21

ModuleAppCalls 21, 28, 31, 106

Modulkennung 59

Multitasking 106

OOnline Change 71

Online Change nicht möglich 72

PPDO-Mapping 51

PDO-Mapping einstellen (Logic-Geräte) 50

PLC-Programm laden und starten 36

Projekt in die Steuerung übertragen (Einloggen) 36

Projektdaten übersetzen 36

Projekterstellung - Prinzipielle Vorgehensweise 25

RReadAndSaveRecipeAs 177

ReadRecipe 180

RecipeManCommandsCreate Recipe 176

Rezepturdefinition erstellen 173

Rezepturen in eine Rezepturdefinition einfügen 175

Rezepturverwalter 172

SScreenshots 9

setCompIDAndVersion 130

SetErrors 66

SetErrors (Methode) 128

Sicherheit 14

Sicherheitshinweise (Darstellung) 12

Simulation 165

SMDisPatcherCaller 124

Standardverhalten 86

Statemachine 23, 80

Stati/Zustände 85

Status-Austritt (State-Exit) 95

Status-Eintritt (State-Entry) 95

Statusübergänge 82

Statusübergänge (Iinitialwerte) 81

Statusübergänge beeinflussen 91

Statusübergänge und Bedingungen - Übersicht 23

Page 184: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

Index

184 Lenze · ApplicationTemplate · 1.4 DE - 10/2013

_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _

Strukturieren innerhalb eines Maschinenmoduls 28

Sync-Erzeugung einstellen 47

VVerwendete Hinweise 12

Verwendete Konventionen 11

Visualisierung der Maschinenmodule 39

Visualisierung erweitern 112

WWeitere Geräte anhängen - Bussystem EtherCAT 42

WriteRecipe 179

ZZiel des ApplicationTemplates 17

Zielgruppe 9

Zustandsmaschine (Statemachine) 23, 80

Zustandsmaschine-Programmbeispiele 93

Page 185: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

L 185

Ihre Meinung ist uns wichtig

Wir erstellten diese Anleitung nach bestem Wissen mit demZiel, Sie bestmöglich beim Umgang mit unserem Produkt zuunterstützen.

Vielleicht ist uns das nicht überall gelungen. Wenn Sie dasfeststellen sollten, senden Sie uns Ihre Anregungen und IhreKritik in einer kurzen E-Mail an:

[email protected]

Vielen Dank für Ihre Unterstützung.

Ihr Lenze-Dokumentationsteam

Page 186: PLC Designer V3 - download.lenze.comdownload.lenze.com/AKB/German/201400201/SW_ApplicationTemplate_(PLC... · 1.2 11/2012 TD11 Aktualisiert zu »PLC Designer« V3.3.2 • Neu: Beispielprojekt

© 10/2013

Lenze Automation GmbHHans-Lenze-Str. 1D-31855 AerzenGermany

Service Lenze Service GmbHBreslauer Straße 3D-32699 ExtertalGermany

+49 (0)5154 – 82 -0 00 80 00/24 4 68 77 (24 h helpline)

+49 (0)5154 – 82 - 2800 +49 (0)51 54/82-11 12

[email protected] [email protected]

www.Lenze.com

SHPPLCDSD-NG 13448693 DE 1.4 TD11

10 9 8 7 6 5 4 3 2 1