plc designer v3 -...
TRANSCRIPT
L
Ä.OIrä
1346
4081
PLC Designer
Engineering Tools
Application Template PackML _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ Softwarehandbuch DE
2 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1 Über diese Dokumentation _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 41.1 Dokumenthistorie _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 61.2 Verwendete Konventionen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 71.3 Verwendete Hinweise _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 81.4 Verwendete Begriffe (geordnet nach der Reihenfolge in der Geräte-Ansicht) _ _ _ _ _ _ _ _ _ _ _ _ 9
2 Sicherheitshinweise _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 10
3 Voraussetzungen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 113.1 Systemvoraussetzung _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 113.2 Kommunikation zum Controller einrichten _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 11
4 Was ist das ApplicationTemplate PackML? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 134.1 Ziele des ApplicationTemplate PackML _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 134.2 Eigenschaften des ApplicationTemplate PackML im Überblick _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 144.3 Elemente des ApplicationTemplate PackML _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 15
4.3.1 Maschinenmodulbaum (MachineModuleTree - MMT) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 154.3.2 Maschinenmodule (MM) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 164.3.3 Adressierung der Maschinenmodule _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 174.3.4 Modulapplikation (MAP) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 174.3.5 Modes: Betriebsarten der Maschine _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 184.3.6 Kommunikation zwischen den Maschinenmodulen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 18
4.3.6.1 Vordefinierte Betriebsarten in ModApp1 _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 204.3.6.2 Eigene Modes anlegen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 21
4.3.7 Statemachine (Zustandsmaschine) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 234.3.7.1 Zustandsübergänge - Übersicht _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 234.3.7.2 Methoden zum Umschalten der Zustände _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 24
4.3.8 Alarmhandling (Fehlerbehandlung) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 24
5 Das Automationssystem strukturieren: Prinzipielle Vorgehensweise _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 255.1 Das Automationssystem modularisieren - Vorgehensweise _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 275.2 Strukturieren innerhalb eines Maschinenmoduls: MAP-Teilfunktion den Tasks zuordnen _ _ _ _ _ 28
6 Übersicht - Die Ordnerstruktur im ApplicationTemplate PackML _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 30
7 Das ApplicationTemplate PackML öffnen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 327.1 Neues Projekt erstellen - ApplicationTemplate PackML öffnen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 337.2 Controller im Projekt aktualisieren (optional) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 347.3 Online gehen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 34
7.3.1 Projektdaten übersetzen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 347.3.2 Projekt in die Steuerung übertragen - "Einloggen" _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 34
7.4 PLC-Programm laden und starten _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 347.5 Erste Schritte - Das ApplicationTemplate PackML bedienen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 367.6 Visualisierung der Maschinenmodule _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 37
8 Arbeiten mit dem ApplicationTemplate PackML _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 388.1 Realen Maschinenaufbau abbilden : Geräte anhängen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 398.2 Maschinenmodule erstellen: Maschinenmodulvorlage kopieren/einfügen _ _ _ _ _ _ _ _ _ _ _ _ _ 428.3 Maschinenmodule in den MMT einbinden _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 438.4 Zuordnen der Modulapplikation (ModApp) zur Task _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 448.5 Create MM Instance: Instanzen eines Maschinenmoduls erstellen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 468.6 Delete Machine Module: Instanzen eines Maschinenmoduls entfernen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 478.7 Maschinenmodule entfernen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 488.8 Modulkennung _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 488.9 Achse einfügen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 50
Inhalt
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 3
Inhalt
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
8.10 I/O-Module des I/O-System 1000 mit einem Maschinenmodul einbinden _ _ _ _ _ _ _ _ _ _ _ _ _ 528.11 Modulapplikationen erstellen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 54
8.11.1 Innerhalb der Modulapplikation programmieren _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 558.11.2 Modulapplikation einbinden _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 56
9 Architektur: Das ApplicationTemplate PackML im Detail _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 599.1 Auf Strukturvariablen von Maschinenmodulen zugreifen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 59
9.1.1 Auf moduleigene Strukturvariablen zugreifen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 599.1.2 User Tags: Eigene Datenelemente definieren _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 609.1.3 Auf Strukturen von anderen Maschinenmodulen zugreifen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 61
9.2 Die Struktur AppChannelData (ACD) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 619.2.1 ACD-Struktur im MFB deklarieren/registrieren _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 629.2.2 Auf die ACD-Struktur des Mastermoduls zugreifen - Mit der Modulapplikation des MFB _ 629.2.3 Auf die ACD-Struktur der Slavemodule zugreifen - Mit den Modi des Mastermoduls _ _ _ 639.2.4 Die Struktur MachineModuleData (MMD) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 64
9.3 Statemachine (Zustandsmaschine) im Detail _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 659.3.1 Zustandsübergänge und Bedingungen - Übersicht _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 669.3.2 Methoden zum Umschalten der Zustandsübergänge/Transitionen _ _ _ _ _ _ _ _ _ _ _ _ 669.3.3 Die Zustandsübergänge im Detail: Methode Command_CtrlCmds() _ _ _ _ _ _ _ _ _ _ _ _ 689.3.4 Die möglichen Zustände im Detail _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 69
9.4 Standardkopplung der Maschinenmodule _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 719.4.1 Vordefinierter Standardmechanismus der Zustandsmaschine _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 71
9.4.1.1 Die Methode Command_DisableModule: Module entkoppeln _ _ _ _ _ _ _ _ _ 729.4.1.2 Erneutes Ankoppeln von Maschinenmodulen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 72
9.5 Zustandsübergänge beeinflussen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 739.6 Zustandsmaschine: Abfragebeispiele _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 739.7 Wo ist das Verhalten eines Maschinenmoduls programmierbar? _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 75
9.7.1 Zustandsübergang (State-Entry/State-Exit) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 759.8 Alarmhandling (Fehlerbehandlung) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 76
9.8.1 Alarme definieren _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 769.8.2 Alarme quittieren _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 779.8.3 Alarme quittieren: Reaktion im Maschinenmodul _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 77
9.9 Alarme auslösen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 789.10 Zentrales Verwalten von Alarmen _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 799.11 Der Baustein Alarminformation _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 809.12 Übersicht der Alarme von allen Maschinenmodulen exportieren: CSV-Datei _ _ _ _ _ _ _ _ _ _ _ _ 809.13 Logbuch _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 819.14 Moduldiagnose _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829.15 Multitasking _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 829.16 Konsistente Datenübertragung _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 84
10 Visualisieren im ApplicationTemplate PackML _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 8610.1 Die Visualisierung erweitern _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 8610.2 Eigenschaften von Schaltflächen definieren _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 8810.3 Eine Visualisierung hinzufügen: Prinzipielle Vorgehensweise _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 89
11 Die Methoden im Überblick _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 9111.1 Die Admin-Methoden im Überblick: Admin_xxx _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 9111.2 Die Command- Methoden im Überblick: Command_xxx _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 9211.3 Die Status-Methoden im Überblick: Status_xxx _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 93
Ihre Meinung ist uns wichtig _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ 98
Über diese Dokumentation
4 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
1 Über diese Dokumentation
Diese Dokumentation beschreibt die Funktionsweise der Lenze-Applikationsvorlage "Application-Template PackML", um auf Basis dieser Vorlage ein Lenze-Automationssystems programmieren zukönnen. Das verwendete Automationssystem "Controller-based Automation" besteht aus einemLenze-Controller und über das Bussystem angeschlossene Antriebskomponenten.
Tipp!
Informationen und Hilfsmittel 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:
Hinweis!
Diese Dokumentation ergänzt die Onlinehilfe zum »PLC Designer«.
Dokumentationstyp Thema
Systemhandbücher Systemübersicht/Beispieltopologien• "Controller-based Automation"• Visualisieren
Kommunikationshandbücher Bussysteme• "Controller-based Automation" EtherCAT®• "Controller-based Automation" CANopen®• "Controller-based Automation" PROFIBUS®• "Controller-based Automation" PROFINET®
Onlinehilfen/Softwarehandbücher
Lenze Engineering Tools• »PLC Designer«: Programmieren• »Engineer«: Antriebsregler konfigurieren• »VisiWinNET® Smart«: Visualisieren• »Backup & Restore«: Daten sichern/wiederherstellen
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 5
Über diese Dokumentation
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Weitere Technische Dokumentationen zu Lenze-Produkten
Weitere Informationen zu Lenze-Produkten, die in Verbindung mit der "Controller-based Automati-on" verwendbar sind, finden Sie in folgenden Dokumentationen:
Zielgruppe
Diese Dokumentation richtet sich an alle Personen, die ein Lenze-Automationssystem auf Basis derLenze-Applikationsvorlage "ApplicationTemplate PackML" im Rahmen der "Controller-based Auto-mation" projektieren, in Betrieb nehmen und programmieren.
Screenshots/Anwendungsbeispiele
Alle Screenshot in dieser Dokumentation sind exemplarische Anwendungsbeispiele. Je nach Firm-ware-Version der Lenze-Geräte und Software-Version der installierten Engineering-Tools (hier: »PLCDesigner«) kann die Darstellung von der tatsächlichen Bildschirm-Darstellung abweichen.
Montieren & Verdrahten Symbole
Montageanleitungen• Controller• Kommunikationskarten (MC-xxx)• I/O-System 1000 (EPM-Sxxx)• Inverter• Kommunikationsmodule
Gedruckte DokumentationOnlinehilfe im Lenze Engineering Tool/Softwarehandbücher und Kommunikationshandbücher sind als PDF-Datei im Internet verfügbar.
Beispielapplikationen/Applikationsvorlage verwenden
Onlinehilfe/Softwarehandbücher• Application Sample i700• Application Samples• ApplicationTemplate• ApplicationTemplate PackML
Parametrieren, Konfigurieren, in Betrieb nehmen
Onlinehilfe/Softwarehandbücher• Controller• Servo-Inverter i700• Servo Drive 9400 HighLine/PLC/
Versorgungs- und Rückspeisemodul• Inverter Drive 8400 StateLine/HighLine/TopLine• I/O-System 1000 (EPM-Sxxx)
Onlinehilfe/Kommunikationshandbücher• Bussysteme• Kommunikationsmodule
Über diese DokumentationDokumenthistorie
6 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Informationen zur Gültigkeit
Die Informationen in dieser Dokumentation sind gültig für folgende Lenze-Software:
Gültig für folgende Lenze-Applikationsvorlage:
• Applikations-Vorlage "Application Template PackML" nach PackML-Standard: L_ApplicationTemplate PackML
1.1 Dokumenthistorie
Software ab Softwarestand
»PLC Designer« 3.8
Version Beschreibung
1.0 05/2014 TD11 Erstausgabe
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 7
Ü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 ( 7) Verweis auf weiterführenden Informationen: Seitenzahl in PDF-Datei.
Schrittweise Anleitung Schrittweise Anleitungen sind durch ein Piktogramm ge-kennzeichnet.
Über diese DokumentationVerwendete Hinweise
8 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 9
Ü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-kationModApp/MAP
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).
Sicherheitshinweise
10 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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!
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 11
VoraussetzungenSystemvoraussetzung
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
3 Voraussetzungen
3.1 Systemvoraussetzung
[3-1] Beispielkonfiguration mit einem Controller 3200 C
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.8
Betriebssystem Windows XP Windows CE
Erforderliche Lenze-Software »PLC Designer« ab V3.8• Enthält das ApplicationTemplate
PackML• 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-/EtherCAT-Bussystem• CAN-/EtherCAT-Busteilnehmer
VoraussetzungenKommunikation zum Controller einrichten
12 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• Gewünschte IP-Adresse des Controllers eingeben.
[3-2] 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
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 13
Was ist das ApplicationTemplate PackML?Ziele des ApplicationTemplate PackML
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
4 Was ist das ApplicationTemplate PackML?
Das Lenze ApplicationTemplate PackML ist eine Applikationsvorlage zum standardisierten,übersichtlichen Programmieren im »PLC Designer« nach PackML-Standard gemäß der OMAC ("TheOrganization for Machine Automation and Control").
• Ab »PLC Designer« Version 3.8 ist das ApplicationTemplate PackML als Projektvorlage enthalten. Neues Projekt erstellen - ApplicationTemplate PackML öffnen ( 33)
• Die Bibliothek L_EATP_ApplicationTemplate.compiled-library enthält den Aufbau und die Funktionalität der standardisierten Lenze-Applikationsvorlage (ApplicationTemplate) und die Erweiterung für das ApplicationTemplate PackML.
4.1 Ziele des ApplicationTemplate PackML
Das ApplicationTemplate PackML...
• ...hilft, die mechatronische Struktur eines Automationssystems modularisiert nach dem PackML-Standard umzusetzen. Dazu ist es hilfreich, im Vorfeld den Aufbau der Maschinen als Baumstruktur umzusetzen.
• ...ermöglicht das Einbinden von vordefinierten Maschinenmodulen mit vorbereiteten Applikationen/Technologiemodulen (beispielsweise die Funktionalität zum Querschneiden).
• ...vereinfacht und beschleunigt das Erstellen von PLC-Programmen nachhaltig durch das Wiederverwenden eines einheitlichen Projektaufbaus in Form einer modularisierten Ordnerstruktur.
Welche Vorteile bietet das ApplicationTemplate PackML?
Das ApplicationTemplate PackML gestaltet das Programmieren mit dem »PLC Designer«übersichtlicher...
• ....durch die definierte Ordnerstruktur, die "für Ordnung sorgt" und individuell erweiterbar ist.
• ...erleichtert Ihnen die Orientierung beim Erweitern oder Erstellen von Maschinenprogrammen.
Das ApplicationTemplate PackML enthält vorgefertigte, wiederverwendbare Maschinenmoduleund Modulapplikationen, die das Risiko von Kompilierungsfehlern minimieren. Das hilft, Zeit unddamit Kosten zu sparen.
Was ist das ApplicationTemplate PackML?Eigenschaften des ApplicationTemplate PackML im Überblick
14 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
4.2 Eigenschaften des ApplicationTemplate PackML im Überblick
Die folgenden, vordefinierten Funktionen erleichtern Ihnen das Umsetzen einerMaschinenapplikation in einer PLC:
Statemachine (Zustandsmaschine) ( 23)
Alarmhandling (Fehlerbehandlung) ( 76)
Multitasking ( 82)
Weitere Vorteile beim Verwenden des ApplicationTemplate PackML:
• Konsistente Datenübertragung zwischen den Tasks.
• Diagnosefunktion für jedes Maschinenmodul ("generische Moduldiagnose").
• Ein fest definiertes Standardverhalten ("DefaultCoupling") der Zustandsmaschine. Standardkopplung der Maschinenmodule ( 71)
Weiterführende Informationen zu der jeweiligen Funktionen finden Sie in dem entsprechendenUnterkapitel.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 15
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
4.3 Elemente des ApplicationTemplate PackML
4.3.1 Maschinenmodulbaum (MachineModuleTree - MMT)
Um das gewünschte Automationssystem mit dem ApplicationTemplate PackML im »PLC Designer«abzubilden, ist die Struktur der gesamten Maschinenanwendung im »PLC Designer« zu erstellen.
• Im ersten Schritt ist die elektronische Maschinenstruktur (Gesamtfunktionalität der Maschine) in Maschinenmodule (Teilfunktionen der Maschine) aufzuteilen.
• Der Maschinenmodulbaum A10_MachineModuleTree (MMT) veranschaulicht die Maschinenmodule in Form einer Baumstruktur von links nach rechts.
• Das oberste Modul ist das Maschinensteuermodul. Die Funktionen der Maschine sind dem Maschinensteuermodul untergeordnet.
[4-1] Abbildungsbeispiel: Machinenstrukturbaum (MMT) im ApplicationTemplate, Ordner A10_MachineModuleTree
Das ApplicationTemplate PackML...
• ...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
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
16 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
4.3.2 Maschinenmodule (MM)
Die Gesamtfunktionalität des Automationssystems ist im ApplicationTemplate PackMLmodularisiert aufgebaut. Das bedeutet, dass jede Teilfunktion der Maschine in jeweils einemMaschinenmodul enthalten ist. Durch den modularen Aufbau ermöglichen die Maschinenmoduledas Wiederverwenden von einzelnen (oder mehreren) Teilfunktionen einer Maschine. Der Vorteil:Die jeweilige 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 PackML
[4-3] Aufbau eines Maschinenmoduls
• Jedes Maschinenmodul enthält den BaseChannel ("Base Data"), der als Datenkanal für die Basis-Funktionen des ApplicationTemplate PackML dient.
• Basis-Funktionen des ApplicationTemplate PackML sind die Statemachine (Zustandsmaschine) und das Alarmhandling (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.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 17
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
4.3.3 Adressierung der Maschinenmodule
[4-4] Abbildungsbeispiel: Beispieldarstellung MMT im Beispielprojekt L_ApplicationTemplate
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. Alarmhandling (Fehlerbehandlung) ( 76)
4.3.4 Modulapplikation (MAP)
Die Modulapplikation (MAP) enthält die Funktion des dazugehörigen Maschinenmoduls.
• Das ApplicationTemplate PackML 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.
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
18 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• Im Ordner A11_ModuleAppCalls sind die MAPS den Tasks zuzuordnen: ModuleAppCalls (MAC). Zuordnen der Modulapplikation (ModApp) zur Task ( 44)
4.3.5 Modes: Betriebsarten der Maschine
Im ApplicationTemplate PackML sind folgende Maschinenbetriebsarten ("Modes") fest definiert:Producing, Maintenance und Manual. Weitere Modes sind individuell hinzufügbar.
[4-5] Das ApplicationTemplate PackML enthält drei fest definierte Betriebsarten, weitere sind selbst definierbar.
Jeder Mode beinhaltet eine separate Zustandsmaschine.
• Bei Bedarf sind weitere ""user-definded" Mode definierbar. Eigene Modes anlegen ( 21)
• Die Modes und die dazugehörige Zustandsmaschine sind in der Modulapplikation ModApp 1 eingebunden.
• Das Verhalten der Zustände ist im Ordner A12_PackML_Configuration in PackMLConfig definiert. Dort ist beispielsweise festgelegt, welcher State wann aktiv ist und in welchen Zu-ständen ein Umschalten des Modes zulässig ist. Vordefinierte Betriebsarten in ModApp1 ( 20)
• Beim Anlegen eines weiteren Mode sind die gewünschten Eigenschaften der Zustände im Pro-gramm PackMLConfig zu definieren.
4.3.6 Kommunikation zwischen den Maschinenmodulen
Die Maschinenmodule (MM_xxx) kommunizieren über das übergeordnete MaschinensteuermodulMM_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 PackML 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-
Betriebsart "Producing" Betriebsart "Maintenance" Betriebsart "Manual"
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 19
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Module können nicht direkt miteinander kommunizieren, sondern über das übergeordneteMastermodul.
Das übergeordnete Maschinenmodul (Master) kommuniziert über Datenkanäle (Channels) mit denuntergeordneten Maschinenmodulen (Slaves). Das ApplicationTemplate PackML enthältBaseChannel und eine AppChannelData(ACD)-Struktur.
[4-6] Informationsaustausch zwischen den Maschinenmodulen (L_ApplicationTemplate)
Bus (Data): Austausch von Steuer- und Zustandsdaten (Basisdaten Control/Status)
Basic functions im ApplicationTemplate PackML sind...
• ...die Steuer-/Statusinformationen der Zustandsmaschine (Statemachine).
• ...das Alarmhandling (Fehlerbehandlung/Fehlerreaktionen).
Die ACD-Struktur...
• ...dient zum Austausch von applikativen Prozessdaten zwischen den Maschinenmodulen.
• ...ist eine Datenstruktur zum Definieren von eigenen Prozessdaten.
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
20 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
4.3.6.1 Vordefinierte Betriebsarten in ModApp1
Jedes Maschinenmodul enthält die vordefinierten Betriebsarten Producing, Maintenance undManual.
Die Betriebsarten befinden sich in der Maschinenmodulvorlage im Ordner
A66_EmptyModule_PackML ModApp1\Modes.
• Die Modulapplikation App1 enthält die Instanzen der Modebausteine Producing, Maintenance und Manual.
• Der Aufruf der Modebausteininstanzen erfolgt in der Methode Modes.
Wo sind die Betriebsarten konfigurierbar?
Die Konfiguration der Betriebsarten ist im Ordner A12_PackMLConfiguration festgelegt. Dortist beispielsweise festgelegt, welcher Zustand aktiv und in welchen Zuständen ein Umschalten desModes zulässig ist.
Die Mode-FBs sind im MAP-FB im Ordner \ModApp1 deklariert. Aufruf der Mode-FBs in der dazugehörigen Methode Modes
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 21
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[4-7] Definierte PackML-Betriebsmodi im Order A12
• In diesem Bereich sind die zu verwendenden Zustände innerhalb der einzelnen Modes definier-bar. Dadurch sind, durch Parametrieren (Beispiel: xDisableState…), individuelle Zustandsma-schine erstellbar, die in jeweils in der PackML-Konfiguration zu definieren sind.
• Die Übergänge der einzelnen Betriebsarten sind ebenfalls an diesem Baustein definierbar. Die dazugehörigen Eingänge (Beispiel: xEnableModeTrans…) ermöglichen das Umschalten der Be-triebsart aus dem jeweiligen Zustand heraus. Der Baustein Base definiert den Initial-Mode und -State. Diese Konfiguration ist in allen Maschinenmodulen der Applikation identisch.
4.3.6.2 Eigene Modes anlegen
Nach Bedarf sind weitere Betriebsarten definierbar.
So legen Sie einen Mode an:
1. Gewünschten Namen für den zusätzlichen Mode im Ordner A71_LocalSources im ENUM L_UserModes_PackML eintragen, durch Ersetzen von UserDefinedxx. Beispiel: Ersetzen von UserDefined01.
2. Eine Instanz erzeugen und die Konfiguration für den neuen Mode einstellen.
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
22 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
3. ENUM- Wert für diesen Mode an den Konfigurationsbaustein anfügen.
4. Den neuen Mode in ModApp1 durch Kopieren/Einfügen eines bereits vorhandenen Modes hinzugefügen und passend umbenennen, Beispiel: ExampleMode.
5. Den neu erstellten Mode(FB) im Deklarationsteil der MAP instanziieren:
6. Den zusätzlichen Mode in der Methode Modes ergänzen und den ENUM-Wert des neuen Modes zuweisen.
Umschalten der Betriebsarten
Nachdem der zusätzliche Mode eingebunden ist, sind die Statemachine und das Umschalten derModes mit den PackML-Tags bedienbar.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 23
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Die Methoden im Überblick ( 91)
4.3.7 Statemachine (Zustandsmaschine)
Jedes Maschinenmodul hat jeweils eine eigene Zustandsmaschine. Die Statemachine eines Modesist individuell erstellbar: Durch Deaktivieren einzelner Zustände in der gesamten Statemachine.
Weiterführende Informationen: Statemachine (Zustandsmaschine) im Detail ( 65)
4.3.7.1 Zustandsübergänge - Übersicht
Das folgende Statusdiagramm veranschaulicht die möglichen Zustandsübergänge derStatemachine:
[4-8] Statemachine im ApplicationTemplate PackML
Der jeweils aktuelle Zustand der Statemachine ist rot hinterlegt.
• Aktiver Zustand in der Abbildung: "Idle"/"Leerlauf"
• "Idle" entspricht dem Zustand "Warten", ist daher normalerweise gelb hinterlegt.
Die Farbgebung in der Statemachine unterscheidet folgende Zustände:
• Gelb: Zustand "Warten"/Wait
• Grün: Zustand "Aktiv"/Acting
• Blau: Dualer Zustand (Kann "Warten" oder "aktiv" sein)
Die "wartende" Zustände "Stopped", "Aborted" und "Execute" sind nicht deaktivierbar.
Das Deaktivieren eines Zustands schaltet gleichzeitig dessen dazugehörige (ausgehende) Transitio-nen ab. Sofern es sich um den Zustand "Wait" handelt, schaltet dies auch dessen Zustand "Aktiv" ab.
Methode Beschreibung
Command_UnitMode (eUnitMode:= L_UserModes_PackML.ExampleMode, xUnitMode-Request:=TRUE)
Schaltet einen Mode um, sofern dies zulässig ist.
Status_ModeChangeAllowed (L_UserModes_PackML.ExampleMode)
Prüft, ob ein Umschalten des Modes im aktuellen Zustand zulässig ist.
Was ist das ApplicationTemplate PackML?Elemente des ApplicationTemplate PackML
24 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[4-9] Beispiel: Statemachine mit deaktiviertem Zustand "Complete".
Beispiel: Das Deaktivieren des Zustands "Complete" löscht die dazugehörige Kante "Reset", den Zu-stand "Completing" sowie dessen Postkante.
4.3.7.2 Methoden zum Umschalten der Zustände
Das ApplicationTemplate PackML enthält vordefinierte Methoden, um die Zustände der Statema-chine umschalten zu können. Im folgenden Abschnitt finden Sie eine Übersicht über alle Methoden:Die Methoden im Überblick ( 91)
4.3.8 Alarmhandling (Fehlerbehandlung)
Das ApplicationTemplate PackML enthält ein vordefiniertes Alarmhandling. DieseFehlerbehandlung stellt Mechanismen bereit, mit denen in den Modulapplikationen (ModApps) derMaschinenmodule (MM) Reaktionen (Fehler, Warnungen, Meldungen) definier- und auslösbar sind.
Weitere Mechanismen des Alarmhandlings 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: Alarmhandling (Fehlerbehandlung) ( 76)
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 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 ApplicationTemplate PackML zu erstellen.
• Orientieren Sie sich an den nachfolgenden Empfehlungen, um anschließend im »PLC Designer« mit dem ApplicationTemplate PackML strukturiert ein PLC-Projekt zu erstellen und effektiv programmieren zu können.
• Der strukturierte Aufbau des ApplicationTemplate PackMLs (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.
Das Automationssystem strukturieren: Prinzipielle Vorgehensweise
26 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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: MAP-Teilfunktion den Tasks zuordnen ( 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 ( 54)
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 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. Maschinenmodule erstellen: Maschinenmodulvorlage kopieren/einfügen ( 42)
• 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)
Das Automationssystem strukturieren: Prinzipielle VorgehensweiseStrukturieren innerhalb eines Maschinenmoduls: MAP-Teilfunktion den Tasks zuordnen
28 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
5.2 Strukturieren innerhalb eines Maschinenmoduls: MAP-Teilfunktion den Tasks zuordnen
Um eine Modulapplikation übersichtlich zu gestalten, ist es sinnvoll, die Modulapplikationen(MAPs) in Teilfunktionen zu unterteilen und entsprechend zu strukturieren.
• Jedes Maschinenmodul enthält drei Modulapplikationen MAP 1-3, die jeweils verschieden prio-risierten Tasks zugeordnet sein können.
• Task und Modulapplikation sind im Ordner A11_ModuleAppCalls zugeordnet. Das Zuordnen
ist per Rechtsklick auf den Ordner möglich: Mit Befehl Create Task Call . Zuordnen der Modulapplikation (ModApp) zur Task ( 44)
Im ersten Schritt sind die Funktionen den einzelnen Tasks zuzuordnen. Das ApplicationTemplatePackML unterstützt Multitasking mit drei Tasks. Weiterführende Informationen finden Sie unter:Multitasking ( 82)
Vordefinierte Tasks
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.
Task/Priorität Standardwert Verwendbar zum... (Beispiel)
"High"HighPriority
2 ms Ausführen von Motion-Funktionen
"Mid"MidPriority
6 ms Umrechnen für eine externe Visualisierung
"Free"freilaufend
freilaufend Kommunizieren via NRT-Ethernet
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 29
Das Automationssystem strukturieren: Prinzipielle VorgehensweiseStrukturieren innerhalb eines Maschinenmoduls: MAP-Teilfunktion den Tasks zuordnen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[5-2] Beispielprojekt ApplicationTemplate Counter: MAC_Task_High ruft die Modulapplikation Module1_App1 auf.
Übersicht - Die Ordnerstruktur im ApplicationTemplate PackML
30 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
6 Übersicht - Die Ordnerstruktur im ApplicationTemplate PackML
Das ApplicationTemplate PackML ist eine Lenze-Applikationsvorlage, die Ihnen das Programmierenmit dem »PLC Designer« erleichtert. Das ApplicationTemplate PackML hat den folgenden Aufbau:
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 der Modulapplikationen (MAP) zu den Tasks. Zuordnen der Modulapplikation (ModApp) zur Task ( 44)
A12_PackML_Configuration...enthält die Konfiguration der Betriebsarten und der Zu-standsmaschine. Vordefinierte Betriebsarten in ModApp1 ( 20)
A20_Visualisation...enthält die Visualisierungen für die geräteunabhängigen Funktionen. Erste Schritte - Das ApplicationTemplate PackML bedienen ( 36)
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
A66_EmptyModule_PackML• ...enthält die Quelldaten der Maschinenmodule• ...enthält die Vorlage EmptyModule_PackML zum
Erstellen von eigenen Maschinenmodulen. Maschinenmodule erstellen: Maschinenmodulvorlage kopieren/einfügen ( 42)
A70_MachineModuleSources• ...enthält die selbst erstellten Maschinenmodule. Maschinenmodule (MM) ( 16)
• ...enthält die Visualisierung der Maschinenmodule.
A71_LocalSources...enthält maschinenunabhängige Enumerationen, Funkti-onsbausteine, Strukturen, Visualisierungen.
A75_UserTags...enthält individuell definierbare Datenelemente, die zu-sätzlich programmierbar sind. User Tags: Eigene Datenelemente definieren ( 60)
A90_Resources...enthält die Systeminformationen wie beispielsweise:
• Taskeinstellungen,• Verwendete Bibliotheken,• Rezepturverwalter,• Visualisierungs-Manager.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 31
Übersicht - Die Ordnerstruktur im ApplicationTemplate PackML
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Tipp!
Fassen Sie die „lokalen Quellen“ aus dem Ordner A71_LocalSources in einer Bibliothekzusammen.
Das ApplicationTemplate PackML öffnen
32 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
7 Das ApplicationTemplate PackML öffnen
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 PackML öffnen ( 33)
2. Controller im Projekt aktualisieren (optional) ( 34)
3. Online gehen ( 34)
• Projektdaten übersetzen ( 34)
• Projekt in die Steuerung übertragen - "Einloggen" ( 34)
4. PLC-Programm laden und starten ( 34)
5. Erste Schritte - Das ApplicationTemplate PackML bedienen ( 36)
Weiterführende Informationen zum Parametrieren und Konfigurieren des jeweiligen Bussystems finden Sie in dem zum Bussystem passenden Kommunikationshandbuch.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 33
Das ApplicationTemplate PackML öffnenNeues Projekt erstellen - ApplicationTemplate PackML öffnen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
7.1 Neues Projekt erstellen - ApplicationTemplate PackML öffnen
Das ApplicationTemplate PackML ist als Projektvorlage (*.project, ) im »PLC Designer« ab Version3.8 enthalten. Um das ApplicationTemplate PackML aufzurufen, ist ein neues Projekt mit demApplicationTemplate PackML als Vorlage zu erstellen.
So gehen Sie vor:
1. Neues Projekt erstellen:
• Datei Neues Projekt• Kategorie Lenze Application Template PackML wählen• Die Vorlage L_ApplicationTemplate_PackML öffnen
Welche Vorlage möchten Sie verwenden?
Funktion
ApplicationTemplate PackML Die Lenze-Applikationsvorlage L_ApplicationTemplatePackML enthält einen von Lenze vordefinierten Aufbau, der es ermöglicht...
• ...Applikationen nach PackML-Standard durch eine definierte Ordnerstruktur zu erstellen.
• ...Applikationen mit Hilfe von Maschinenmodulen zu strukturieren.
Das ApplicationTemplate PackML öffnenController im Projekt aktualisieren (optional)
34 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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.
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 ( 11)
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.
Hinweis!
Zum "Einloggen" muss das PLC-Programm fehlerfrei sein. Dazu muss der Menübefehl ErstellenÜbersetzen (F11) ohne Fehlermeldung durchführbar sein.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 35
Das ApplicationTemplate PackML öffnenPLC-Programm laden und starten
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• 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.
Das ApplicationTemplate PackML öffnenErste Schritte - Das ApplicationTemplate PackML bedienen
36 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
7.5 Erste Schritte - Das ApplicationTemplate PackML 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: ApplicationTemplate Counter mit zwei Maschinenmodulen (Module 1, Module 2)
Maschinenmodul wählen Statemachine/AdminTags/Alarmhandling auswählen
Detailansicht der Maschinenmodule Zustände aktivieren
Globale Alarmübersicht wählen Alarme quittieren
Statemachine (Zustandsmaschine) Modes aktivieren
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 37
Das ApplicationTemplate PackML öffnenVisualisierung der Maschinenmodule
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
7.6 Visualisierung der Maschinenmodule
• Ist beispielweise Machine Control ausgewählt, sind über die Felder Al[01...04] von L_EATP_Alarm_PackML Alarme auslösbar.
• Mögliche Reaktionen (Reac.) sind: Abort, Stop, Error, SystemFault, Warning, Information.
• Das Maschinenmodul gibt den Reaktionstyp an das übergeordnete Maschinenmodul weiter. Die gewünschte Reaktion auf den Alarm ist individuell programmierbar, außer für die Kommandos Abort/Stop.
• Sofern keine Fehlerreaktion programmiert ist, bleibt die Statemachine im aktuellen Zustand.
• Die Schaltfläche Modules ruft die Detailansicht zu den Maschinenmodulen auf.
• Klicken Sie auf das gewünschte Maschinenmodul, um den jeweiligen Zustand und weitere Details anzuzeigen.
• Alle Alarmmeldungen sind in der globalen Alarmliste sichtbar, die über die Schaltfläche Alarm List aufrufbar ist. Die globale Alarmliste liefert einen Überblick über alle aufgetretenen Alarme.
• Die Schaltfläche Alarm Quit ist zu betätigen, um den Fehler zurückzusetzen. Die Ursache für die Auslösung ist zu beheben. Anschließend ist der entsprechende Alarm zurücksetzbar.
Arbeiten mit dem ApplicationTemplate PackML
38 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
8 Arbeiten mit dem ApplicationTemplate PackML
In diesem Kapitel erfahren Sie, wie Sie mit der Maschinenmodul-Vorlage EmptyModule_PackML imApplicationTemplate PackML Maschinenmodule erstellen. EmptyModule_PackML ist eine Vorlage,die das Erstellen von eigenen Maschinenmodulen erleichtert.
Programmieren mit dem ApplicationTemplate PackML: 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 PackML starten Das ApplicationTemplate PackML öffnen ( 32)
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) ( 34)
4. Realen Maschinenaufbau im »PLC Designer« abbilden
Realen Maschinenaufbau abbilden : Geräte anhängen ( 39)
6. Eigene Maschinenmodule erstellen/einbinden Maschinenmodule erstellen: Maschinenmodulvorlage kopieren/einfügen ( 42)
7. Geräte einbinden Achse einfügen ( 50)
I/O-Module des I/O-System 1000 mit einem Maschinenmodul einbinden ( 52)
Modulapplikation einbinden ( 56)
8. Online gehen Online gehen ( 34)
9. PLC-Programm starten PLC-Programm laden und starten ( 34)
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 39
Arbeiten mit dem ApplicationTemplate PackMLRealen Maschinenaufbau abbilden : Geräte anhängen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
8.1 Realen Maschinenaufbau abbilden : Geräte anhängen
Das ApplicationTemplate PackML enthält eine vordefinierte Struktur, die um die individuellenAnforderungen erweiterbar ist. Führen Sie folgende Schritte durch, um den realenMaschinenaufbau abzubilden.
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.
Arbeiten mit dem ApplicationTemplate PackMLRealen Maschinenaufbau abbilden : Geräte anhängen
40 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 41
Arbeiten mit dem ApplicationTemplate PackMLRealen Maschinenaufbau abbilden : Geräte anhängen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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 PackML auf 2 ms eingestellt, dementsprechend sind 2000 μs einzustellen.• Ist bei allen Antriebsreglern die Option "Distributed Clocks" aktiviert und die
Kommunikation erfolgreich, gibt der EtherCAT-Master die Meldung "DC In-Sync" aus:
Arbeiten mit dem ApplicationTemplate PackMLMaschinenmodule erstellen: Maschinenmodulvorlage kopieren/einfügen
42 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
8.2 Maschinenmodule erstellen: Maschinenmodulvorlage kopieren/einfügen
Tipp!
Beim Erstellen von eigenen Maschinenmodule vergibt das ApplicationTemplate PackMLautomatisch die passenden Maschinenmodul-internen Benennungen.
Maschinenmodule erstellen: Was ist zu tun?
So gehen Sie vor:
1. Maschinenmodul-Vorlage EmptyModule_PackML kopieren:
• Rechtsklick auf den Ordner A66 EmptyModule_PackML\MM_EmptyModule_PackML
Copy Empty Module auswählen.
2. Das zuvor kopierte Maschinenmodul (MM_Empty Module_PackML) unterhalb des Ordners
A70_MachineModuleSources einfügen:
• Rechtsklick auf den Ordner A70_MachineModuleSources Insert Empty Module
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.• Das Maschinenmodul wird mit dem zuvor vergebenen Namen instanziiert.
5. Das eingefügte Maschinenmodul (MFB_*) ist in den MMT im Ordner
A10_MachineModuleTree einzufügen. Maschinenmodule in den MMT einbinden
6. Die Modulapplikation (MAP_*) ist im Ordner A11_ModuleAppCalls ist in den gewünschten Modulapplikationsaufruf (MAC_Task_*) einzufügen. Zuordnen der Modulapplikation (ModApp) zur Task
Die Maschinenmodul-Vorlage EmptyModule_PackML ist...
• ...im Ordner A66 EmptyModule_PackML mit dem
Befehl Copy Empty Module zu kopieren und
• ...anschließend mit dem Befehl Insert Empty Module
in den Ordner A70_MachineModuleSources einzufügen.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 43
Arbeiten mit dem ApplicationTemplate PackMLMaschinenmodule in den MMT einbinden
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
8.3 Maschinenmodule in den MMT einbinden
Ein (auf Basis der Maschinenmodul-Vorlage EmptyModule_PackML) erstelltes Maschinenmodul istin den MachineModuleTree (MMT) einzubinden, um es funktionsfähig in das ApplicationTemplatePackML zu integrieren.
[8-1] Beispiel: MachineModuleTree im ApplicationTemplate PackML
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 klicken.
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:
Arbeiten mit dem ApplicationTemplate PackMLZuordnen der Modulapplikation (ModApp) zur Task
44 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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 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.4 Zuordnen der Modulapplikation (ModApp) zur Task
Bei Maschinenmodulen, die mit der Maschinenmodul-Vorlage EmptyModule_PackML erstellt sind,ist ein einfaches Zuordnen von MAP und Task über ein Dialogfenster möglich.
Tipp!
Verwenden Sie zum Erstellen von Maschinenmodulen die Maschinenmodul-Vorlage
EmptyModule_PackML im Ordner A66_EmptyModule_PackML, um das Zuordnen vonModulapplikation und Tasks einfacher durchführen zu können.
So gehen Sie vor:
1. Rechtsklick auf den Ordner A11_ModuleAppCalls:
• Create Task Call aufrufen.
2. Die Modulapplikationen sind den unterschiedlichen Tasks zuzuordnen. 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.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 45
Arbeiten mit dem ApplicationTemplate PackMLZuordnen der Modulapplikation (ModApp) zur Task
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[8-2] Beispiel: ModuleApp1 ist der höchstprioren Task Task_High zugeordnet.
• Zuordnung durch Klicken auf OK bestätigen.
Die Funktionen der Maschinenmodule sind in den "State"-Methoden der einzelnen Betriebsmodiprogrammierbar.
States: Zustände mit vordefinierten Funktionen
[8-3] Die Zustände der Statemachine enthalten eine vordefinierte Programmierung
Jeder Zustand der Statemachine enthält bereits eine vordefinierte Programmierung.
• Durch Doppelklicken auf den jeweiligen State ist der Programmcode sichtbar, der die kommen-tierten Anwenderfunktionen enthält.
• Die Kommentare weisen darauf hin, an welchen Stellen weitere Funktionen hinzufügbar sind.
Arbeiten mit dem ApplicationTemplate PackMLCreate MM Instance: Instanzen eines Maschinenmoduls erstellen
46 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• Der MAP-Baustein enthält die Aktion S00_Cyclic, die zyklisch bearbeitet wird.
8.5 Create MM Instance: Instanzen eines Maschinenmoduls erstellen
Um weitere Instanzen eines Maschinenmoduls zu erstellen, enthält das ApplicationTemplate dieFunktion Create MM Instance.
So gehen Sie vor:
1. Rechtsklick auf den Ordner A70_MachineModuleSourcesCreate MM Instance:
2. Maschinenmodul auswählen, von dem eine Instanz zu erstellen ist.
• Instanznamen eingeben, Beispiel: Modul_1_NewInstance.• Insert klicken, um die Instanz einzubinden.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 47
Arbeiten mit dem ApplicationTemplate PackMLDelete Machine Module: Instanzen eines Maschinenmoduls entfernen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
8.6 Delete Machine Module: Instanzen eines Maschinenmoduls entfernen
Um die Instanz eines Maschinenmoduls zu löschen, enthält das ApplicationTemplate die FunktionDelete Machine Module References.
• Das Ausführen des Befehls bewirkt, dass alle Einträge in den Datencontainern und Aufrufe ge-löscht werden.
Manuelles Entfernen der Instanzen
Die Instanzen eines Maschinenmoduls sind im Ordner A55_VarLists aus den globalen Variablen-listen 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):
Arbeiten mit dem ApplicationTemplate PackMLMaschinenmodule entfernen
48 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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
• Jedes Maschinenmodul ist durch eine eindeutige Modulkennung CompID identifizierbar, die in jedem MFB des jeweiligen Maschinenmoduls hinterlegt ist.
• Die Modulkennung ist im BaseChannel definiert und durch die Methode setCompIDAndVersion() setzbar.
• Die jeweilige Modulkennung (CompID) ist in der Visualisierung unter Machine Module Details
sichtbar: Ordner A20_Visualisation L_Main, Schaltfläche Module List.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 49
Arbeiten mit dem ApplicationTemplate PackMLModulkennung
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Tipp!
Vergeben Sie bei jedem neu erstellten Maschinenmodul eine passende Kennung CompID.
Beim Überarbeiten eines Moduls ist es hilfreich, die Version entsprechend zu aktualisieren.
Arbeiten mit dem ApplicationTemplate PackMLAchse einfügen
50 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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:
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 51
Arbeiten mit dem ApplicationTemplate PackMLAchse einfügen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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 abbilden : Geräte anhängen ( 39)(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:
Arbeiten mit dem ApplicationTemplate PackMLI/O-Module des I/O-System 1000 mit einem Maschinenmodul einbinden
52 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 53
Arbeiten mit dem ApplicationTemplate PackMLI/O-Module des I/O-System 1000 mit einem Maschinenmodul einbinden
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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.
Arbeiten mit dem ApplicationTemplate PackMLModulapplikationen erstellen
54 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
8.11 Modulapplikationen erstellen
Dieses Kapitel beschreibt, wie Sie eine Modulapplikation zu erstellen ist.
Tipp!
Im ApplicationTemplate PackML 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 PackML 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
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 55
Arbeiten mit dem ApplicationTemplate PackMLModulapplikationen erstellen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• 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 Innerhalb der Modulapplikation programmieren
Um die Teilfunktionen einer Modulapplikation zu strukturieren, sind die Aktionen zu verwenden,die im ApplicationTemplate PackML enthalten sind.
Tipp!
Verwenden Sie zum Programmieren die Aktionen und Methoden, die imApplicationTemplate PackML enthalten sind.
Statemachine (Zustandsmaschine) im Detail ( 65)
[8-4] Betriebsarten (Modes) von Modulapplikati-on 1 (MAP 1)
• Die Aktionen sind jeweils in jeder Betriebs-art (Mode) enthalten.
• Die Statemachine ist für jede Betriebsart individuell programmierbar. Dadurch ist das Verhalten jedes Zustands separat be-einflussbar.
• Eine individuell programmierte Statema-chine/ein Mode wirkt sich nur innerhalb der dazugehörigen Modulapplikation aus, Beispiel hier: ModApp1/MAP 1.
• Die weiteren Modulapplikationen können den aktuellen Zustand der Statemachine und die Betriebsart dieser Modulapplikati-on abfragen, aber nicht beeinflussen.
Arbeiten mit dem ApplicationTemplate PackMLModulapplikationen erstellen
56 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Alarmhandling (Fehlerbehandlung) ( 76)
Die Struktur AppChannelData (ACD) ( 61)
8.11.2 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 PackML 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 PackML 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)
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 57
Arbeiten mit dem ApplicationTemplate PackMLModulapplikationen erstellen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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
Arbeiten mit dem ApplicationTemplate PackMLModulapplikationen erstellen
58 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Weiterführende Informationen zum Erweitern der Visualisierung finden Sie in folgendemAbschnitt: Die Visualisierung erweitern ( 86)
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 59
Architektur: Das ApplicationTemplate PackML im DetailAuf Strukturvariablen von Maschinenmodulen zugreifen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9 Architektur: Das ApplicationTemplate PackML 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_scMachineControl_PackML
[9-2] Auszug aus der Betriebsart "Manual" von MM_MachineControl_PackML
Der dazugehörige Programmaufruf in der Maschinenapplikation hat die folgende Syntax:Vis.diPieces := 4711;
Strukturen (Structs) für ...
...IOs
...Parameter (Rezepturverwalter)
...persistente Daten
...externe Visualisierung
// MVis_scMachineControl_PackML// für MAP1diPieces : DINT;
// für MAP2diLength : DINT;
Architektur: Das ApplicationTemplate PackML im DetailAuf Strukturvariablen von Maschinenmodulen zugreifen
60 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.1.2 User Tags: Eigene Datenelemente definieren
Das ApplicationTemplate PackML enthält folgende vordefinierten Datenelemente Struktur/Typ, so-genannte "Tags": Command-, Status-, Admin-Tag.
• Weitere individuelle Tags sind in der Struktur UserTags_PackML definierbar.
• Die Struktur für individuelle Datenelemente befindet sich im Ordner A75_UserTags.
[9-3] Beispiel: Individuell erstelltes UserTag
• Der Strukturname L_UserTags_PackML muss beibehalten werden.
• Die Datenelemente der Struktur sind frei definierbar.
Die Struktur ist für alle Maschinenmodule in einer Applikation identisch, jedes Maschinenmodulverfügt über eine eigene Instanz der UserTag-Daten.
Folgende Zugriffe auf die UserTag-Daten sind möglich:
1. Lesen/Schreiben von einzelnen UserTag-Elemente des eigenen Maschinenmoduls.
[9-4] Beispiel: Zugriff auf ein UserTag in State-Aktion S04, eigenes Modul.
Anstelle der Konstante L_EATP_CONST.OWNID ist der Zahlenwert "0" verwendbar, um auf das eigene Modul zuzugreifen.
2. Lesen/Schreiben von einzelnen UserTag-Elemente eines Slave-Maschinenmoduls.
[9-5] Beispiel: Zugriff auf das UserTag eines einzelnen Slave-Moduls, Adresse 96.
3. "Broadcast"-Schreiben:• Schreiben eines UserTag-Elements in alle Slaves-Maschinenmodule.
[9-6] Beispiel: Zugriff auf alle Slavemodule, ohne das eigene Maschinenmodul.
• Schreiben eines UserTag-Elements in das eigene Maschinenmodul sowie alle Slaves-Ma-schinenmodule.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 61
Architektur: Das ApplicationTemplate PackML im DetailDie Struktur AppChannelData (ACD)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[9-7] Beispiel: Schreiben eines UserTags in alle Slavemodule, inklusive dem eigenen Modul.
9.1.3 Auf Strukturen von anderen Maschinenmodulen zugreifen
Die globalen Maschinenmodul-Strukturen sind im Ordner A55_VarLists instanziert.
• Dadurch sind die Strukturen und Maschinenmodule des ApplicationTemplate PackML 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-8] Beispielprogramm: Auf die Struktur MM_Vis von Modul 1 zugreifen.
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 BibliothekL_EATP_ApplicationTemplate PackML enthaltene Struktur L_EATP_ACD_Base erben.
• Die Struktur MACD_scModule1 definiert die Variable diCounter vom Datentyp DINT.
[9-9] 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).
diPiecesModul1 := MM_Vis.scModule1;
Architektur: Das ApplicationTemplate PackML im DetailDie Struktur AppChannelData (ACD)
62 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.2.1 ACD-Struktur im MFB deklarieren/registrieren
Um die ACD-Struktur in den Modes eines MFBs und dessen Master verwenden zu können, ist dieInstanz der ACD-Struktur im MFB lokal zu deklarieren.
[9-10] Deklaration der ACD-Struktur im MFB_Module1
Die ACD-Struktur ist im Programmteil des MFB registriert, hierdurch werdenSicherheitsmechanismen aktiviert.
• 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.)
[9-11] Registrierte ACD-Struktur im MFB_Module1
9.2.2 Auf die ACD-Struktur des Mastermoduls zugreifen - Mit der Modulapplikation des MFB
[9-12] Schematische Darstellung: Von der Modulapplikation (MAP) eines Maschinenmoduls (MM_Module) auf die ACD-Struktur zugreifen
Um aus einem Mode 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.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 63
Architektur: Das ApplicationTemplate PackML im DetailDie Struktur AppChannelData (ACD)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
[9-13] Deklaration von POINTER und REFERENZ auf die ACD-Struktur in der MAP des Maschinenmoduls MM_Module1_PackML
Im Programmteil der Modulapplikation (MAP) ist der Zugriff auf die ACD-Struktur durch dieMethode AccessACD() zu gewährleisten:
[9-14] Beispiel: Programmteil von Mode M03_Module1_PackML_Manual: 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-15] Kommando zum Schreiben von Daten auf die ACD-Struktur
9.2.3 Auf die ACD-Struktur der Slavemodule zugreifen - Mit den Modi des Mastermoduls
[9-16] Schematische Darstellung: Von den Modes des Masters (Machine Control) auf die ACD-Struktur der Slave-Module zugreifen
Architektur: Das ApplicationTemplate PackML im DetailDie Struktur AppChannelData (ACD)
64 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Zugriff auf die Slave-Module
• Um aus den Modes des Master-Moduls auf die ACD-Struktur eines unterlagerten Slave-Maschi-nenmoduls zugreifen zu können sind ein Pointer und eine Referenz auf die ACD-Struktur des Slaves zu deklarieren.
• Pointer und Referenz sind in der Modulapplikation(ModApp) des Masters zu deklarieren.
[9-17] Deklaration von POINTER und REFERENZ auf die ACD-Struktur im Mode M03_Manual von MM_MachineControl_PackML
Im Programmteil der Modulapplikation (MAP) ist der Zugriff auf die ACD-Struktur durch dieMethode AccessACD() zu gewährleisten:
[9-18] Beispiel: Programmteil von Mode M03_Module1_PackML_Manual: 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-19] Kommando zum Schreiben von Daten auf die ACD-Struktur
9.2.4 Die Struktur MachineModuleData (MMD)
Die Struktur MachineModuleData (MMD) vom Typ MMD_scModulname dient zum Instanziierenvon Maschinenmoduldaten.
• Das ApplicationTemplate PackML enthält Variablen und Funktionsbausteine zum Instanziieren von Maschinenmoduldaten.
• Alle Modulapplikationen (MAPs) eines Maschinenmoduls können auf diese MMD-Struktur zu-greifen.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 65
Architektur: Das ApplicationTemplate PackML im DetailStatemachine (Zustandsmaschine) im Detail
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Die Datenstruktur erbt die in der Bibliothek L_EATP_ApplicationTemplate enthaltene StrukturL_EATP_MMD_Base:
[9-20] 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).
Auf die MMD-Struktur zugreifen - Mit der Modulapplikation des MFB
[9-21] Schematische Darstellung: Von der Modulapplikation (MAP) eines Maschinenmoduls (MM_Module) auf die MMD-Struktur zugreifen
[9-22] Kommandos zum Schreiben von Daten auf die MMD-Struktur
9.3 Statemachine (Zustandsmaschine) im Detail
Das oberste Maschinensteuermodul MM_MachineControl_PackML ist das Master-Modul und...
Hinweis!
Im Gegensatz zur ACD-Struktur ist der Zugriff eines übergeordneten Mastermoduls auf die MMD-Struktur nicht möglich!
• Intellisensefunktion: In jeder MAP ist die Referenz „rMMD“ deklariert, die den Lese-/Schreibzugriff auf die Dateninhalte der MMD- Struktur ermöglicht.
Architektur: Das ApplicationTemplate PackML im DetailStatemachine (Zustandsmaschine) im Detail
66 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• ...befindet sich an erster/oberster Stelle im MachineModuleTree (MMT)
• ...steuert die Statemachine von allen untergeordneten Slave-Maschinenmodulen.
Die vom Master-Modul ausgelösten Zustandsübergänge beeinflussen die untergeordneten Slave-Maschinenmodule.
9.3.1 Zustandsübergänge und Bedingungen - Übersicht
Dieser Abschnitt stellt die einzelnen Zustandsübergänge der Zustandsmaschine desApplicationTemplate PackML dar.
[9-23] Vollständiges Zustandsdiagramm nach PackML-Standard
Die Bedingung zum Schalten der Zustandsübergänge (Transitionen), ist, dass die MethodeCommand_StateBusy(xAllOrSlaves:=TRUE) als Ergebnis FALSE hat, ausgenommen sind die Transiti-onen "Abort" und "Stop".
• Mit der Transition "Stop" ist aus allen Zuständen in Bereich der Übergang in den Zustand
"Stopping" möglich, ohne dass Command_StateBusy (xAllOrSlaves:=TRUE)=FALSE ist.
• Mit der Transition "Abort" ist aus allen Zuständen in Bereich und der Übergang in den Zu-
stand "Aborting" möglich, ohne dass Command_StateBusy (xAllOrSlaves:=TRUE)=FALSE sein muss.
• Alle übrigen Zustandsübergänge finden Sie im folgenden Abschnitt mit den zugehörigen Command_CtrlCmds _xxx. Die Zustandsübergänge im Detail: Methode Command_CtrlCmds() ( 68)
9.3.2 Methoden zum Umschalten der Zustandsübergänge/Transitionen
Im folgenden Abschnitt finden Sie eine Übersicht über alle Methoden im ApplicationTemplatePackML: Die Methoden im Überblick ( 91)
Einzelne Transition umschalten
[9-24] Beispiel: Schaltet die Transition "Start" von "Idle""Starting".
Command_CtrlCmd(eCtrlCmd:=L_EATP_CtrlCmd_PackML.Start , xCmdChangeRequest:=TRUE)
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 67
Architektur: Das ApplicationTemplate PackML im DetailStatemachine (Zustandsmaschine) im Detail
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• Dadurch befindet sich die Zustandsmaschine anschließend im aktiven Zustand "Starting".
• Der Wert xCmdChangeRequest der Methode führt zum Schalten der Transition durch eine posi-tive Flanke.
• Solange eines der Slavemodule noch den Status xBusy aufweist, wird das Umschalten der State-machine verhindert.
Zustand abfragen
[9-25] Beispiel: Fragt den Zustand aller untergeordneten Slavemodule und das eigene Modul ab.
• xAllOrSlaves:=TRUE bewirkt, auch das eigene Modul mit abzufragen
• xAllOrSlaves:=FALSE fragt nur die untergeordneten Slaves des Moduls ab.
Aktuellen Zustand abfragen
Status_StateBusy(xAllOrSlaves:=TRUE)
Status_UnitStateCurrent (MM_Address:= L_EATP_CONST.OWNID)
Architektur: Das ApplicationTemplate PackML im DetailStatemachine (Zustandsmaschine) im Detail
68 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.3.3 Die Zustandsübergänge im Detail: Methode Command_CtrlCmds()
GewünschterZustandswechsel von... nach...
Erforderli-ches Kom-
mando(CtrlCmd)
Aufruf der MethodeCommand_CtrlCmd(eCtrlCmd:=L_EATP_CtrlCmds_PackML.[CtrlCmd],xCmdChangeRequest:=TRUE);
Ist- Soll-Zustand Beispiel: Command_CtrlCmd...
"Idle""Starting" Start ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Start,xCmdChangeRequest:=TRUE);
"Starting""Execute"
StateComplete
(SC)
...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.StateComplete,xCmdChangeRequest:=TRUE);
"Execute""Completing"
"Completing""Complete"
"Complete""Resetting"
Reset ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Reset,xCmdChangeRequest:=TRUE);
"Resetting""Idle"
StateComplete
(SC)
...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.StateComplete,xCmdChangeRequest:=TRUE);
"Execute""Holding"
Hold ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Hold,xCmdChangeRequest:=TRUE);
"Holding""Held"
StateComplete
(SC)
...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.StateComplete,xCmdChangeRequest:=TRUE);
"Held""UnHolding"
UnHold ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Unhold,xCmdChangeRequest:=TRUE);
"UnHolding""Execute"
StateComplete
(SC)
...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.StateComplete,xCmdChangeRequest:=TRUE);
"Execute""Suspending"
Suspend ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Suspend,xCmdChangeRequest:=TRUE);
"Suspending""Suspended"
StateComplete
(SC)
...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.StateComplete,xCmdChangeRequest:=TRUE);
"Suspended""UnSuspending"
Unsuspend ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Unsuspend,xCmdChangeRequest:=TRUE);
"UnSuspending""Execute"
StateComplete
(SC)
...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.StateComplete,xCmdChangeRequest:=TRUE);
"All""Stopping"
Stop ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Stop,xCmdChangeRequest:=TRUE);
"All""Aborting"
Abort ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Abort,xCmdChangeRequest:=TRUE);
"Aborting""Aborted"
StateComplete
(SC)
...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.StateComplete,xCmdChangeRequest:=TRUE);
"Aborted""Clearing"
Clear ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Clear,xCmdChangeRequest:=TRUE);
"Clearing""Stopped"
StateComplete
(SC)
...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.StateComplete,xCmdChangeRequest:=TRUE);
"Stopping""Stopped"
"Stopped""Resetting"
Reset ...(eCtrlCmd:=L_EATP_CtrlCmds_PackML.Reset,xCmdChangeRequest:=TRUE);
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 69
Architektur: Das ApplicationTemplate PackML im DetailStatemachine (Zustandsmaschine) im Detail
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.3.4 Die möglichen Zustände im Detail
Die möglichen Zustände der Statemachine sind in den Enumerationen L_EATP_CtrlCmds_PackMLund L_EATP_States_PackML hinterlegt.
Kommandowerte/Zustandswerte
Mögliche Zustände
• Die Kommandowerte der Zustandswerte sind in ENUM L_EATP_CtrlCmds_PackML hinterlegt.
• Die Zustandswerte sind in ENUM L_EATP_States_PackML hinterlegt.
Zustand (State) Kategorie Farbe Beschreibung
ABORTED Warten gelb Dieser Zustand behält die relevanten Statusinformationen der Maschi-ne, die für einen Abbruch relevant sind. Die Maschine kann den Zustand ABORTED nur nach einem ausgelösten CLEAR-Kommando verlassen, so-fern die Ursache für den Fehler in der Maschine behoben/zurückgesetzt ist.
ABORTING Aktiv grün Dieser Zustand ist jederzeit als Reaktion auf ein ABORT-Kommando er-reichbar. Die Abbruchlogik führt zu einem schnellen, sicheren Stopp der Maschine.
CLEARING Aktiv grün Dieser Zustand löst das Quittieren von Fehlern aus, die im Zustand AB-ORTING ausgelöst sind und im Zustand ABORTED noch vorhanden sind. Anschließender Wechsel in den Zustand STOPPED.
COMPLETE Warten gelb Die Maschine hat den Zustand COMPLETING beendet, wartet auf das Kommando RESET. Anschließender Wechsel in den Zustand RESETTING.
COMPLETING Aktiv grün Der Wechsel in diesen Zustand folgt automatisch nach dem Zustand EXECUTE. Die Maschine fährt herunter, dazu stoppt die Produktzufuhr.
EXECUTE Dual blau Sobald die Maschine Material verarbeitet, befindet sie sich im Zustand EXECUTE. Die unterschiedlichen Betriebsarten enthalten spezifische Ak-tivitäten, die im Zustand EXECUTE möglich sind. Beispielsweise bewirkt die Betriebsart "Producing", dass die Maschine produziert, die Betriebs-art "Clean out" bewirkt, dass die Maschine gereinigt wird. Biedes ist im im Zustand EXECUTE möglich.
Architektur: Das ApplicationTemplate PackML im DetailStatemachine (Zustandsmaschine) im Detail
70 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
HELD Warten gelb Dieser Zustand wird erreicht wie beim Zustand HOLDING beschrieben. Im Zustand HELD stoppt die Maschine, entweder durch vollständiges Stoppen oder durch fortlaufendes "Trockenlaufen".
• Sobald der INTERNE Maschinenzustand sich ändert/der Betreiber das Kommando UNHOLD auslöst, wechselt die Maschine in den Zustand UNHOLDING.
• Üblicherweise betrachtet das Performance Management/OEE Sys-tem den Zustand HELD (Warten auf Eingabe des Betreibers) als "nicht verfügbar".
HOLDING Aktiv grün Dieser Zustand ist erreicht, wenn ein interner Zustander der Maschine dazu führt, dass die Produktion stoppt. Die Maschine verlässt den Zu-stand EXECUTE, bedingt durch einen INTERNEN Auslöser.
• Üblicherweise tritt der Zustand HOLDING bei sich wiederholenden Maschinenzuständen ein, die eine Aktion des Bedieners erfordern. Anschließend kann die Maschine weiter produzieren.
• Der Zustand HOLDING ist automatisch oder manuell durch den Be-diener auslösbar/zurücknehmbar. Beispielsweise benötigt das regel-mäßige Auffüllen von Material eine Aktion des Bedieners, wie das Ausfüllen von Klebstoffspender oder Kartonspeicher.
• Dies kann erforderlich sein, wenn durch den mechanischen Aufbau der Maschine eine bestimmte Aktion nur bei gestoppter Maschine möglich sind.
• Um nach dem Zustand HELD die Maschine wieder kontrolliert zu starten, sind alle relevanten Prozesss-Sollwerte/Rücksprung-Stati der Prozeduren zu sichern, die zum Zeitpunkt des HOLD-Kommandos in der Maschinensteuerung vorhanden sind.
IDLE Warten gelb Dieser Zustand signalisiert, dass der Zustand RESETTING abgeschlossen ist. Der Zustand IDLE behält den aktuellen Zustand der Maschinen bei, die während des Zustands RESETTING erreicht wurden und führt die an-geforderten Operationen aus.
RESETTING Aktiv grün Dieser Zustand ist aktiv, nachdem das Kommando RESET im Zustand RE-SET/STOPPED ausgelöst ist.
• Fehler- und Stoppereignisse sind zurückgesetzt.• Der Zustand RESETTING aktiviert üblicherweise Sicherheitsvorrich-
tungen. Das bewirkt, dass die Maschine in den Zustand IDLE wech-selt, um auf das START-Kommando zu warten. Dadurch ist gewährleistet, dass die Maschine in diesem Zustand keine gefährli-chen Bewegungen ausführt.
STARTING Aktiv grün Dieser Zustand beinhaltet die Schritte, die zum Anfahren/Starten der Maschine notwendig sind und ist die Folge eines START-Kommandos. Nach erfolgreichem Starten: Wechsel in den Zustand EXECUTE.
STOPPED Warten gelb Nach Verlassen des Zustands STOPPING ist die Maschine eingeschaltet und im Stillstand. Die Kommunikation zu anderen Systemen ist voll funktionsfähig. Das Kommando RESET löst den Wechsel in den Zustand RESETTING aus.
STOPPING Aktiv grün Dieser Zustand führt die Schritte aus, die die Maschine zu einem kontrol-lierten Stopp bringt, siehe Zustand STOPPED. Die Maschine ist nicht wie-der startbar, bis ein Neustart der Maschine durchgeführt ist.
SUSPENDED Warten gelb Dieser Zustand wird erreicht wie beim Zustand SUSPENDING beschrie-ben. In diesem Zustand stoppt die Maschine, entweder durch ein voll-ständiges Stoppen oder durch Weiterbewegen ohne zu produzieren, bis der externe Zustand sich normalisiert hat.
• Typischerweise wechselt der Zustand von SUSPENDED zu UNSUS-PENDING, ohne dass der Betreiber ein Kommando auslösen muss.
• Üblicherweise betrachtet das Performance Management/OEE Sys-tem den State SUSPENDED (Blockade/Versorgungsengpass) als "ver-fügbar".
Zustand (State) Kategorie Farbe Beschreibung
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 71
Architektur: Das ApplicationTemplate PackML im DetailStandardkopplung der Maschinenmodule
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.4 Standardkopplung der Maschinenmodule
Die Zustandsmaschine im ApplicationTemplate PackML verfügt über ein Standardverhalten, beidem das oberste Master-Maschinenmodul alle untergeordneten Slave-Module steuert. In diesemAbschnitt erhalten Sie Informationen, wie ein untergeordnetes Slave-Maschinenmodul vomMaster-Modul zu entkoppeln ist.
• 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 ausgelösten Alarm...• ...dann reagiert dieses Modul mit einer Alarmreaktion (entsprechend der programmierten
Alarmreaktion) und• ...leitet es diese Information an das übergeordnete Maschinenmodul weiter.• Existiert ein weiteres, übergeordnetes Maschinenmodul, dann wird die Information nach
oben geleitet.
Die Standardkopplung der Maschinenmodule im ApplicationTemplate PackML ist, sofern benötigt,durch entsprechendes Programmieren individuell veränderbar.
9.4.1 Vordefinierter Standardmechanismus der Zustandsmaschine
Im ApplicationTemplate PackML steuert das oberste Master-Maschinenmodul standardmäßig dieuntergeordneten Slave-Maschinenmodule mit deren Zustandsmaschinen und Betriebsarten.
SUSPENDING Aktiv grün Dieser Zustand ist zu verwenden, wenn es mit dem EXTERNEN Prozess-zustand nicht möglich ist die Maschine weiter produzieren zu lassen. Das bedeutet, dass die vor- oder nachgeschaltete Maschine in einer Linie den Zustand EXECUTE verlässt. Möglicher Auslöser sind Blockaden oder Versorgungsengpässe in der Maschine.
• Der Zustand SUSPENDING könnte durch einen lokalen Sensor in der Maschine ausgelöst sein oder durch ein externes Kontrollsystem. Üb-licherweise stoppt die Maschine in diesem Zustand kontrolliert, wechselt anschließend in den Zustand SUSPENDED.
• Um die Maschine nach dem Zustand SUSPENDED erneut kontrolliert zu starten, sind alle relevanten Prozesss-Sollwerte/Rücksprung-Stati der Prozeduren zu sichern, die beim Auslösen des Kommandos SUS-PEND vorhanden sind.
UNHOLDING Aktiv grün Dieser Zustand wird erreicht wie beim Zustand HOLDING beschrieben. In diesem Zustand stoppt die Maschine, entweder durch ein vollständi-ges Stoppen oder durch fortlaufendes "Trockenlaufen".
• Sobald sich der INTERNE Maschinenzustand ändert oder der Betreiber das Kommando UNHOLD auslöst, wechselt die Maschine in den Zu-stand UNHOLDING.
• Üblicherweise betrachtet das Performance Management/OEE Sys-tem den Zustand SUSPENDED (Blockade/Versorgungsengpass) als "verfügbar".
UNSUSPENDING Aktiv grün Dieser Zustand wird erreicht wie beim Zustand SUSPENDED beschrie-ben. Der Zustand UNSUSPENDED ist erreichbar, sobald sich der externe Zustand der Maschine normalisiert hat.
• Der Zustand UNSUSPENDING leitet alle notwendigen Aktionen/Se-quenzen ein, damit die Maschine in den Zustand EXECUTE wechseln kann.
• Zum Wiederanlauf der Maschine sind die Daten wiederherzustellen, die zuvor beim Auslösen des Kommando SUSPEND gesichert sind (sie-he Zustand SUSPENDING).
Zustand (State) Kategorie Farbe Beschreibung
Architektur: Das ApplicationTemplate PackML im DetailStandardkopplung der Maschinenmodule
72 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• Das Master-Modul schaltet die Zustandsmachinen/Betriebsarten um, indem zuerst das Modul der untersten Ebene geschaltet wird. Erst wenn alle Slave-Module in den angeforderten Zu-stand gewechselt haben, wechselt auch das Master-Modul in diesen Zustand.
• Zum Standardverhalten gehört auch, dass alle Alarmreaktionen der Slave-Module an den Mas-ter weitergeleitet werden.
Das Standardverhalten des MMT ist veränderbar, durch Entkoppeln von einzelnen Modulen oderdurch Deaktivieren von einzelnen Maschinenmodulen über:
[9-26] Deaktivieren eines Moduls, "MM_Address" verweist auf die Adresse des Moduls, hier das eigene Modul.
9.4.1.1 Die Methode Command_DisableModule: Module entkoppeln
Die Methode Command_DisableModule ermöglicht das Abkoppeln eines Slave-Moduls vom Mas-ter.
• Dadurch sind Statemachine und Mode des abgekoppelten Moduls vom übergeordneten Master entkoppelt: Das Maschinenmodul behält den aktuellen Zustand und die Betriebsart bei. Nach-dem das entsprechende Modul entkoppelt ("disabled") ist, sind die Statemachines des Masters und des abgekoppelten Moduls unabhängig voneinander bedienbar.
• Das abgekoppelte Modul ist ab dem Zeitpunkt des Abkoppelns der Master für die Slave-Module, die diesem Modul untergeordnet sind.
9.4.1.2 Erneutes Ankoppeln von Maschinenmodulen
Um das Modul wieder an den Master zu koppeln sind die unterschiedlichen Zustände/Betriebsartender Statemachines von Master und Slave anzugleichen. Um den aktuellen Zustand und die Betriebs-art des Masters abzufragen, sind die Methoden Status_MasterUnitModeCurrent undStatus_MasterUnitStateCurrent zu verwenden.
• Das Kommando L_EATP_CtrlCmds_PackML und die Methode Command_UnitMode gleichen Zustandsmaschine und Betriebsart des abgekoppelten Moduls mit dem Mastermodul ab.
• Sind Zustand und Betriebsart des Master- und Slavemoduls identisch, ist ein erneutes Ankop-peln des Moduls mit der Methode Command_DisableModule möglich.
Weiterführende Informationen zu den Methoden: Die Status-Methoden im Überblick:Status_xxx ( 93)
Die Methode Command_SendAlarmReactionIfDisabled: Alarmreaktion an den Master
Das Entkoppeln eines Moduls mit der Methode Command_DisableModule deaktiviert das stan-dardmäßige Weiterleiten der Alarmreaktion an das Master-Modul.
• Um den Reaktionstyp eines deaktivierten Modul an den Master zu übermitteln, ist die Methode Command_SendAlarmReactionIfDisabled zu verwenden und der entsprechende Reaktionstyp auf "TRUE" zu setzen.
Beispiel: Parameter "xSendFault:=TRUE", um nur den Reaktionstyp Fault an den Master weiterzulei-ten.
Command_DisableModule(MM_Address:= L_EATP_CONST.OWNID, xValue:=TRUE);
Command_SendAlarmReactionIfDisabled(MM_Address:=L_EATP_CONST.OWNID,xSendSystemFault :=FALSE,xSendAbort:=FALSE,xSendStop:=FALSE,xSendFault:=TRUE,xSendWarning:=FALSE);
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 73
Architektur: Das ApplicationTemplate PackML im DetailZustandsübergänge beeinflussen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Weiterführende Informationen zu den Methoden: Die Command- Methoden im Überblick:Command_xxx ( 92)
9.5 Zustandsübergänge beeinflussen
Die Variable xStateBusy kann das Umschalten eines Zustandsübergangs verhindern.
• Solange ein Zustand eines Slave-Moduls xStateBusy= TRUE hat, ist das Umschalten der State-machine verhindert. Eine Ausnahme bildet das Auslösen der Kommandos "Abort" oder "Stop".
Das Modul wird standardmäßig in den jeweiligen Zustand mit dem Kommando im ersten Zyklus
von Zustand gesetzt.
Sind in diesem Zustand alle Aufgaben erledigt, kann xStateBusy wieder zurückgesetzt werden ,um das Umschalten in einen anderen Zustand zu ermöglichen.
Die folgende Programmzeile fragt den Zustand ab:
"xAllOrSlaves:=TRUE" fragt auch das eigene Modul ab, "xAllOrSlaves:=FALSE nur die Slaves des Mo-duls.
9.6 Zustandsmaschine: Abfragebeispiele
Dieser Abschnitt zeigt (in Form von Programmbeispielen), wie...
• ...auf die Zustandsmaschine zuzugreifbar ist.
• ...wie Stati abzufragen sind.
Command_StateBusy(xStateBusy:= TRUE)
Status_StateBusy(xAllOrSlaves:=TRUE)
Architektur: Das ApplicationTemplate PackML im DetailZustandsmaschine: Abfragebeispiele
74 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Ziel/Aufruf Beispiel
Aktuellen Zustand abfragen
• IF-Bedingung• Untergeordnete Modul-
Statusabfrage durch Methode(Beispiel: Slave, Adresse = 1)
IF Status_UnitStateCurrent (MM_Address:= 1)= L_EATP_States_PackML.Execute THEN// Do something if Statemachine is in state EXECUTEEND_IF
• IF-Bedingung• Moduleigenen Zustand abfragen
IF Status_UnitStateCurrent (MM_Address:= L_EATP_CONST.OWNID)= L_EATP_States_PackML.Execute THEN// Do something if Statemachine is in state EXECUTEEND_IF
• CASE-Anweisung• Moduleigene/untergeordnete
Modul-Statusabfrage durch Methode
CASE Status_UnitStateCurrent (MM_Address:= L_EATP_CONST.OWNID)OF L_EATP_States_PackML.Execute:// Do something if Statemachine is in state EXECUTEL_EATP_States_PackML.Complete:// Do something else if Statemachine is in state COMPLETEL_EATP_States_PackML.Stopped:// Do something else if Statemachine is in state STOPPEDEND_CASE
Aktive Warnung abfragen
• IF-Bedingung• Moduleigene Warnung abfragen
IF AlarmInformation.eReaction= L_EATP_AlarmReactionType.Warning 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 Methode
Status-StateRequested
IF Status_UnitStateCurrent (MM_Address:=L_EATP_CONST.OWNID) = L_EATP_States_PackML.Execute THENIF Status_StateRequested(MM_Address:= L_EATP_CONST.OWNID) = L_EATP_States_PackML. CompletingTHEN// Do something if actual state is EXECUTE and setstate to COMPLETING;END_IFEND_IF
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 75
Architektur: Das ApplicationTemplate PackML im DetailWo ist das Verhalten eines Maschinenmoduls programmierbar?
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.7 Wo ist das Verhalten eines Maschinenmoduls programmierbar?
Die individuelle PLC-Applikation ist in den Statemachines der einzelnen Betriebsarten zu program-mieren. Strukturieren innerhalb eines Maschinenmoduls: MAP-Teilfunktion den Tasks zuordnen( 28)
9.7.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-27] Vordefinierte States: Beispiel Programmgerüst mit xStateEntry/xStateExit
Hinweis!
Folgender Ablauf ist bei Tasktiming-bezogenen Programmbefehlen zu berücksichtigen:• Das Zuordnen von Aktionen zu den einzelnen Taskzyklen ist bei einem Zustandsüber-
gang so umgesetzt wie bei der Ablaufsprache AS.• Beim Zustandsübergang "Idle""Execute" durchläuft der Taskzyklus...
...zuerst die Aktion Idle mit gesetztem xStateExit-Flag.
...danach die Aktion Execute mit gesetztem xStateEntry-Flag.
Architektur: Das ApplicationTemplate PackML im DetailAlarmhandling (Fehlerbehandlung)
76 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.8 Alarmhandling (Fehlerbehandlung)
Das ApplicationTemplate PackML enthält ein Alarmhandling zur Ausgabe von Alarmen. Dasstandardmäßig definierte Alarmhandling ist individuell veränderbar. In den Modulapplikationen(MAP) der Maschinenmodule sind Fehler/Warnungen/Informationen definierbar.
Das Alarmhandling hat folgende Funktionen:
• Alarmzustände innerhalb des MachineModuleTree (MMT) weiterleiten.
• Applikationsglobale Alarmliste mit dem aktuellen Alarmzustand aller im MMT enthaltenen Maschinenmodule.
• Das Alarmhandling ist an das Logbuch des Controllers angebunden, so dass die Fehlermeldungen im Logbuch sichtbar sind.
9.8.1 Alarme definieren
Die Methode SetAlarms definiert die Alarme mit den entsprechenden Eigenschaften in der je-weiligen Modulapplikation. Zum Verändern des Alarmhandlings gibt es im ApplicationTemplatePackML den FB L_EATP_Alarm_PackML. Am Eingang xAlarmTrigger sind applikationsspezifischeFehler auslösbar.
[9-28] Fügen Sie weitere Instanzen dieses FBs ein, wenn mehr als vier Fehlereingänge pro Instanz erforderlich sind.
Ein Alarm ist durch folgende Eigenschaften am FB definierbar:
Der FB L_EATP_Alarm_PackML hat vier Eingänge xAlarmTrigger[1...4] zum Setzen von Alarmen.Pro xAlarmTrigger-Eingang ist jeweils ein Alarm setzbar. L_EATP_Alarm_PackML ( 98)
Eigenschaft Beschreibung Weiterführende Information
wAlarmID Eindeutige Alarmnummer (ID). 16 Bit-Alarmnummer, Datentyp: WORD.
dwAlarmValue Detaillierte Alarminformation: Für jeden Alarm ist ein Zusatzattribut vom Typ DWORD verwendbar, das (in Zusammenhang mit der Alarmnum-mer) interpretierbar ist.
Beispielhaft sind bei einem SammelAlarm "Drive Error" die detaillierten Alarminformationen des jeweiligen Antriebsreglers verwendbar.
sAlarmMessage Textuelle Beschreibung des Fehlers. Der Alarmtext ist in der Attributtabelle hinterlegt. Der Alarmtext ist immer dann zu verwenden, wenn kein übergeordneter Mechanismus zum landessprachlichen Umsetzen der Alarmnummer aktiviert ist (Beispiel: Übergeordnete Visualisierung).
dwAlarmCategory Kategorie/Typ des Alarms.
eAlarmReaction Alarmreaktion: Aus der Liste auswählbar.
dwAlarmPriority Priorität für Alarme des gleichen Reaktionstyps vergeben.
xAlarmAckNeeded Quittierverhalten: Angabe (ja/nein), ob der ausgelöste Alarm zu quittieren ist.
Das Quittierverhalten ist nicht bei allenAlarmreaktionstypen veränderbar.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 77
Architektur: Das ApplicationTemplate PackML im DetailAlarmhandling (Fehlerbehandlung)
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.8.2 Alarme quittieren
Das Quittieren von Alarmen löscht alle als quittierpflichtig definierten Meldungen/Fehlerursachenaus der Alarm List. Das Quittieren von Alarmen ist durch folgende Vorgehensweisen aktivierbar:
1. Dauerhaft aktivieren: Innerhalb der Modulapplikation über folgenden Programmbefehl:
2. Für einen Zyklus aktivieren: Mit der Methode Command_AlarmQuit, steigende Flanke FALSETRUE. Die Methode setzt den Eingang xQuitErrors für einen Zyklus = TRUE.
Sofern mehrere Alarme auftreten, sind diese nicht einzeln quittierbar.
9.8.3 Alarme quittieren: Reaktion im Maschinenmodul
Der Ausgang xErrorQuitActive am Baustein L_EATP_ModuleErrorHandler_PackML ist innerhalbeiner Modulapplikation verwendbar, um das Quittieren von Alarmen an einem eingebundenenFunktionsbaustein auszuführen.
Alarme definieren - Prinzipielle Vorgehensweise
ErrorHandler.xQuitErrors := TRUE; //Alarmquittieren aktiv, solange Wert = TRUE
• Die Methode SetAlarms ist um einen Funktionsbaustein zu erweitern.
• Der FB MAP_EmptyModul_App1 ist um die dazugehörige Deklaration zu erweitern.
• Die Eingänge xAlarmTrigger[1...4] sind mit der Modulapplikation zu verknüpfen.
• Dem jeweiligen Alarm-Eingang ist der entsprechenden Parameter zuzuordnen:• Nummer,• Text,• Priorität,• Kategorie,• Quittierverhalten
Architektur: Das ApplicationTemplate PackML im DetailAlarme auslösen
78 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.9 Alarme auslösen
Beispiel: Alarm auslösen/weiterleiten - innerhalb eines Maschinenmoduls
Programmierzeile zum Auslösen eines Alarms innerhalb der Maschinenapplikation:
[9-29] Beispiel: Alarm1 von FB AlarmsA auslösen
Zwischen dem Alarmhandling und der Statemachine gibt es für die Alarmreaktionen "Stop" und"Abort" eine vordefinierte Kopplung.
• Die Alarmreaktionen lösen im Modul, in dem der Fehler aufgetreten ist, ein PackML-Kommando "STOP" oder "ABORT" aus.
• Diese Alarmtypen deaktivieren das Modul automatisch, dies hat keine direkte Auswirkung auf das Master-Modul.
• Die Alarmreaktionstypen der Slaves und die des eigenen Moduls sind individuell definierbar, so dass dadurch der gewünschte Zustandswechsel in der Statemachine möglich ist.
Beispiel: Ausgelöster Alarm mit Reaktionstyp "Abort" bei Modul 1
Das nachfolgende Beispiel zeigt exemplarisch den Ablauf, wenn ein Alarm vom "Abort" an einemSlave-Modul ausgelöst wird. Das Beispiel enthält zwei unterlagerte Slave-Module.
scMAL.AlarmsA.xAlarm1Trigger:=True;
• Die Statemachine befindet sich im Zustand "Execute".
• Der aktuelle Zustand ist rot hinterlegt.
• Ein Alarm des Reaktionstyps "Abort" wird im Slavemodul Module_1 ausgelöst, der Eingang Al. 1. ist rot hinterlegt.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 79
Architektur: Das ApplicationTemplate PackML im DetailZentrales Verwalten von Alarmen
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Um das Slavemodul Modul_1 wieder an den Master anzukoppeln ist zuerst die Ursache für denAlarm zu beheben.
• Mit Hilfe einer Prozedur ist sind beide Statemachines, von Master- und Slave-Modul zu synchro-nisieren.
• Das deaktivierte Slave-Modul ist über die Methode Command_DisableModule wieder an die Statemachine des Master-Moduls anzukoppeln. Erneutes Ankoppeln von Maschinenmodulen ( 72)
9.10 Zentrales Verwalten von Alarmen
Das Alarmhandling übermittelt alle Alarme, die in den Maschinenmodulen auftreten, an die globaleAlarm List.
• Die Statemachine des Slave-Moduls Modul_1 entkoppelt sich automatisch vom Master-Modul, "Module Disabled" ist rot hinterlegt.
• Die Statemachine wechselt in den Zustand "ABORTING".
• Das Master-Modul Machine Control bleibt unverändert im Zustand "EXECUTE".
• Die Maschinenmodule leiten die Meldungen an den Alarm List-Handler weiter.
• Alle aktuellen Alarme sind in der globalen Alarm List sichtbar.
Architektur: Das ApplicationTemplate PackML im DetailDer Baustein Alarminformation
80 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
So starten Sie die globale Alarmliste:
1. Ordner A20_Visualisation, L_Main aufrufen.
2. Schaltfläche Alarm List klicken, um die globale Fehlerliste anzuzeigen.
• Im Bereich Alarm List sind die als „quittierpflichtig“ definierten Alarme sichtbar, die noch anstehen/zu quittieren sind.
9.11 Der Baustein Alarminformation
Dieser Baustein ist verwendbar, um eine Alarmsammelinformation für das eigene Maschinenmo-dul und alle untergeordneten Slavemodule zu erhalten.
Eine Instanz Alarminformation ist in der Methode GetAlarmInformation in jedem Mode-FB zum Ma-schinenmodul vordefiniert, die ohne weiteres Programmieren verwendbar ist.
9.12 Übersicht der Alarme von allen Maschinenmodulen exportieren: CSV-Datei
Das ApplicationTemplate PackML bietet die Möglichkeit, alle Fehler/Fehlerdefinitionen in eine*.CSV-Datei zu erstellen.
• Die CSV-basierte Textdatei enthält die Fehlerdefinitionen von allen im Maschinenmodulbaum (MMT) eingebunden Maschinenmodulen.
Defaultbelegung der Eingänge:
• xEnable:=TRUE
• xIncludeOwnModule:=TRUE
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 81
Architektur: Das ApplicationTemplate PackML im DetailLogbuch
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• 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-30] Beispiel: Struktur der exportierten CSV-Datei
Für Experten: Export der CSV-Datei via Applikation
• 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.13 Logbuch
Das ApplicationTemplate PackML übermittelt die Fehlerereignisse an die Logbuch-Funktion desControllers. Die Logbuch-Einträge sind in chronologischer Reihenfolge im Logbuch des Controllerssichtbar.
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:
Architektur: Das ApplicationTemplate PackML im DetailModuldiagnose
82 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Beispiel:
M1.2, Module2, F12002, Demo: Drive Error of drive 2
9.14 Moduldiagnose
Zum Diagnostizieren der Module steht im ApplicationTemplate PackML eine Visualisierung zurVerfügung.
• Die Schaltfläche Modules ruft die Detailansicht 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.
9.15 Multitasking
Das ApplicationTemplate PackML ist Multitasking-fähig, folgende Tasks sind definiert:
<(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
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
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 83
Architektur: Das ApplicationTemplate PackML im DetailMultitasking
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• 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-31] 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-32] 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.
Um die Multitasking-Funktionalität in einemMaschinenmodul nutzen zu können, verfügtjedes Maschinenmodul über dreiModulapplikationen (ModApp) verfügen.
Architektur: Das ApplicationTemplate PackML im DetailKonsistente Datenübertragung
84 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
9.16 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 dieDatenkonsistens echtzeitkritischer Daten gewährleistet.
• Sollten mehrere Bausteine benötigt werden, sind in der ACD-Struktur weitere Instanzen des Bausteins verwendbar.
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.
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.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 85
Architektur: Das ApplicationTemplate PackML im DetailKonsistente Datenübertragung
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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):
Programm in Maschinenmodul 2 ( TaskHighPriority = 2 ms):
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()
IF NOT LockState() THEN For i:=0 TO 2000 by 1 DO aCAMData[i] := rACDModule1.aCAMData[i];END_FOREND_IF
Visualisieren im ApplicationTemplate PackMLDie Visualisierung erweitern
86 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
10 Visualisieren im ApplicationTemplate PackML
Das ApplicationTemplate PackML enthält die vordefinierte Visualisierung L_Main
im Ordner A20_Visualisation.
Um eine weitere Visualisierung aus den Visualisierungselementen im ApplicationTemplate PackMLzu erstellen, sind die im folgenden Abschnitt beschriebenen Schritte auszuführen.
10.1 Die Visualisierung erweitern
In diesem Abschnitt erfahren Sie, wie Sie exemplarisch die Visualisierung L_Main um weitereVisualisierungsseiten erweitern können.
So gehen Sie vor:
1. Visualisierung aufrufen:
• Den Ordner 20_Visualisation doppelklicken.
• L_Main doppelklicken.
• Voraussetzung zum Erweitern der Visualisierung ist in diesem Beispiel, dass vorab weitere Maschinenmodule in den
MaschinenModulTree ( MMT) einzubinden sind. Maschinenmodule in den MMT einbinden ( 43)
• Im Ordner A11_ModulAppCalls ist die weitere Modulapplikation im Programmteil einzubinden.
• MAC_Task_High aufzurufen. (Beispiel: MM_Dcl.Modul3.App1)
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 87
Visualisieren im ApplicationTemplate PackMLDie Visualisierung erweitern
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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.
• Hinweis: Die Option Namensraum-Präfix einfügen ist zu aktivieren.
Visualisieren im ApplicationTemplate PackMLEigenschaften von Schaltflächen definieren
88 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
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:
• 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).
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 89
Visualisieren im ApplicationTemplate PackMLEine Visualisierung hinzufügen: Prinzipielle Vorgehensweise
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
• 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
• 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.
Visualisieren im ApplicationTemplate PackMLEine Visualisierung hinzufügen: Prinzipielle Vorgehensweise
90 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
p
• 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
• 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 PackML sind keine manuellen Datenzuordnungen erforderlich.• Dadurch ist (nach dem
Kompiliervorgang) ohne Mehraufwand ein Einloggen/Online gehen möglich.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 91
Die Methoden im ÜberblickDie Admin-Methoden im Überblick: Admin_xxx
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
11 Die Methoden im Überblick
11.1 Die Admin-Methoden im Überblick: Admin_xxx
Bezeichner/Funktion Übergabewert/Datentyp Beschreibung
Admin_ModeCumulativeTimeLiest die gesamte Wartezeit des angegebe-nen Moduls aus.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
eModeL_EATP_Modes_PackML
Mode angeben, dessen Zeitbedarf angeziegt werden soll.
Rückgabewert/Datentyp
MethodeUDINT
Zeit in Sekunden
Admin_ModeCurrentTimeLiest die Wartezeit aus, seitdem sich das an-gefragte Modul im aktuellen Mode befindet.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Rückgabewert/Datentyp
MethodeUDINT
Zeit in Sekunden
Admin_ResetAllTimesZurücksetzen aller Zeiten in allen Modes des Slave-Moduls/das eigenen Moduls auf null.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Admin_ResetCurrentModeTimesZurücksetzen aller Zeiten im aktuellen Mode des Slave-Modul/des eigenen Moduls auf null.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Admin_StateCumulativeTime Liest die gesamte Wartezeit des Slave-Mo-dul/des eigenen Moduls im aktuellen Mode/Zustand aus.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
eModeL_EATP_Modes_PackML
Mode, dessen Zeit auszulesen ist.
eStateL_EATP_States_PackML
Zustand, dessen Zeit auszulesen ist.
Rückgabewert/Datentyp
MethodeUDINT
Zeit in Sekunden
Admin_StateCurrentTimeLiest die aktuelle Wartezeit des Slave-Mo-duls/des eigenen Moduls im aktuellen Zu-stand aus.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Rückgabewert/Datentyp
MethodeUDINT
Zeit in Sekunden
Die Methoden im ÜberblickDie Command- Methoden im Überblick: Command_xxx
92 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
11.2 Die Command- Methoden im Überblick: Command_xxx
Die Command-Methoden in alphabetischer Reihenfolge.
Admin_StatesAvailableLiefert den Status der aktivierten/deaktivier-ten Zustand im aktuellen Mode zurück, als Bit-Maske.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Rückgabewert/Datentyp
MethodeDWORD
Bit-Status• TRUE: Zustand ist aktiviert.• FALSE: Zustand ist deaktiert.
Bit/Zustand
0: Undefined 1: Clearing 2: Stopped 3: Starting 4: Idle 5: Suspended 6: Execute 7: Stopping 8: Aborting 9: Aborted10: Holding11:Held12: UnHolding13: Suspending14: UnSuspedning15:Resetting16:Completing17:Complete
Bezeichner/Funktion Übergabewert/Datentyp Beschreibung
Bezeichner/Funktion Übergabewert/Datentyp Beschreibung
Command_AlarmQuitSetzt das Bit zum Quittieren eines Alarms bei eine Slave-Modul/beim eigenen Maschinen-modul
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
xValueBOOL
• TRUE: Das Quittieren von Alarmen ist aktiviert.
• FALSE: Das Quittieren von Alar-men ist deaktiviert.
Command_CmdStateBusySetzt das Maschinenmodul in den Zustand "Busy". Das verhindert ein Weiterschalten der Transition.
Eingang
xStateBusyBOOL
• TRUE: Zustand "Busy" setzen.• FALSE: Zustand "Busy"
zurücksetzen.
Command_CtrlCmdUmschalten der jeweiligen Transitionen der PackML-Statemachine.
Eingänge
eCtrlCmdL_EATP_CtrlCmds_PackML
Zu setzender Soll-Zustand des ange-fragten Maschinenmoduls.
xCmdChangeRequestBOOL
TRUE: Soll-Zustand abfragen.
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 93
Die Methoden im ÜberblickDie Status-Methoden im Überblick: Status_xxx
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
11.3 Die Status-Methoden im Überblick: Status_xxx
Command_DisableModuleAktiviert/Deaktiviert das Entkoppeln eines Slave-Maschinenmoduls vom Master.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
xValueBOOL
• TRUE: Entkoppeln aktivieren.• FALSE: Entkoppeln deaktivieren:
Das Maschinenmodul ist an das Master-Modul gekoppelt.
Command_SendAlarmReactionIfDisabledAktiviert/Deaktiviert das Senden von Alarm-reaktionstypen zum Master-Modul, auch wenn das Modul deaktiviert ist (DisableMo-dule).
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
xSend... Aktiviert/Deaktiviert das Senden ei-nes Alarm-Reaktionstyps:TRUE: Senden des Typs aktivieren/ FALSE: Senden des Typs deaktivieren.
• ...SystemFault• ...Abort• ...Stop• ...Fault
BOOL
• Reaktionstyp "Systemfault"• Reaktionstyp "Abort"• Reaktionstyp "Stop"• Reaktionstyp "Fault"
Command_UnitModeUmschalten der Betriebsarten aus den States heraus, die in der PackMLConfig definiert sind. Vordefinierte Betriebsarten in ModApp1 ( 20)
Eingänge
eUnitModeL_EATP_Modes_PackML
Zu setzender Mode.
xUnitModeRequestBOOL
TRUE: Soll-Mode abfragen.
Bezeichner/Funktion Übergabewert/Datentyp Beschreibung
Bezeichner/Funktion Übergabewert/Datentyp Beschreibung
Status_DisabledModulePrüft, ob das Slave-Modul/das eigene Modul vom Master entkoppelt ("disabled") ist.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
xValueBOOL
• TRUE: Entkoppeln ist aktiviert.• FALSE: Entkoppeln deaktiviert/
Das Maschinenmodul ist an das Master-Modul gekoppelt.
Rückgabewert/Datentyp
MethodeBOOL
• TRUE: Maschinenmodul ist ent-koppelt (Status: "disabled").
• FALSE: Maschinenmodul ist an den Master gekoppelt (Status: "enabled").
Mastermodul abfragen
Status_MasterUnitModeCurrentGibt den aktuellen Mode des Mastermoduls zurück.
Rückgabewert/Datentyp
MethodeL_EATP_Modes_PackML
-
Die Methoden im ÜberblickDie Status-Methoden im Überblick: Status_xxx
94 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Status_MasterUnitStateCurrentGibt den aktuellen Zustand des Mastermo-duls zurück.
Rückgabewert/Datentyp
MethodeL_EATP_States_PackML
-
Zustände abfragen
Status_StateBusyPrüft, ob sich Module im Zustand "Busy" sind. Falls ja, wird das Umschalten der Statemachine verhindert.
Eingänge
xAllOrSlavesBOOL
• TRUE: Alle Module abfragen.• FALSE: Nur die Slave-Module
abfragen.
Rückgabewert/Datentyp
MethodeBOOL
• TRUE: Eines der Module hat den Zustand "Busy".
• FALSE: Kein Modul ist im Zustand "Busy".
Status_StateChangeInProcess Prüft, ob das abgefragte Modul aktuell einen Zustandswechsel durchführt.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Rückgabewert/Datentyp
MethodeBOOL
• TRUE: Zustandswechsel aktiv.• FALSE: Kein Zustandswechel.
Status_StateRequestedPrüft, ob am abgefragten Modul ein Zustand angefordert ist.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Rückgabewert/Datentyp
MethodeBOOL
• TRUE: Zustandsanfrage ist aktiv.• FALSE: Aktuell keine Zustandsan-
frage am Modul.
eStateRequestedL_EATP_States_PackML
Angeforderter Zustand des Moduls.
Status_UnitStateCurrentPrüft, in welchem Zustand sich das angefrag-te Modul aktuell befindet.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Rückgabewert/Datentyp
MethodeL_EATP_States_PackML
Aktueller Zustand des angefragten Maschinenmoduls.
Modes abfragen
Status_ModeChangeAllowedPrüft, ob ein bestimmter Mode-Wechsel für das angefragte Modul zulässig ist.
Eingänge
eNextModeL_EATP_Modes_PackML
Gewünschter Mode, in den das Ma-schinenmodul wechseln soll.
Rückgabewert/Datentyp
MethodeBOOL
• TRUE: Der gewünschte Mode-Wechsel ist für das Modul zuläs-sig.
• FALSE: Der Wechsel in den am Ein-gang gesetzten Mode ist bei die-sem Modul nicht zulässig.
Bezeichner/Funktion Übergabewert/Datentyp Beschreibung
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 95
Die Methoden im ÜberblickDie Status-Methoden im Überblick: Status_xxx
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
Status_UnitModeChangeInProcessPrüft, ob das angefragte Modul aktuell einen Wechsel des Modes durchführt.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Rückgabewert/Datentyp
MethodeBOOL
• TRUE: Das Modul führt einen Wechsel des Modes durch.
• FALSE: Aktuell kein Wechsel des Modes aktiv.
Status_UnitModeCurrentPrüft, in welchem Mode sich das angefragte Modul aktuell befindet.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Rückgabewert/Datentyp
MethodeL_EATP_Modes_PackML
Aktueller Mode des angefragten Ma-schinenmoduls.
Status_UnitModeRequestedPrüft, ob am angefragten Modul aktuell der Mode angefragt ist/in welchem Mode sich das Modul aktuell befindet.
Eingänge
MM_AddressL_EATP_MM_Address
ID des Moduls, dessen aktueller Zu-stand anzufragen ist. Der Wert "0" und L_EATP_CONST.OWNID adres-sieren die moduleigene ID.
Rückgabewert/Datentyp
MethodeBOOL
• TRUE: Anfrage des aktuellen Mo-des ist aktiv.
• FALSE: Kein Mode angefragt.
eStateRequestedL_EATP_Modes_PackML
Angeforderter Mode.
Bezeichner/Funktion Übergabewert/Datentyp Beschreibung
Index
96 Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
AA75 UserTags 60
AbfragebeispielSOLL-Zustand der Zustandsmaschine des übergeordneten Masters abfragen 74Zustandsmaschine abfragen (IF-Bedingung) 74
AbfragebeispieleZustandsmaschine 74
ACD-Struktur 61, 64
Achse einfügen 50
Adressierung der Maschinenmodule 17
Alarme definieren - Prinzipielle Vorgehensweise 77
Alarme quittieren 77
Alarmhandling 76, 79Fehler auslösen 78Fehler definieren 76
Alarminformation 80
Anwendungshinweise (Darstellung) 8
appChannelLock 84
appChannelUnlock 84
ApplicationTemplate starten 32
Arbeiten mit dem ApplicationTemplate 38
AT_ACTION_ADD_MODULE 43
AT_ACTION_ADD_MODULEAPPLICATION 56
AT_ACTION_CREATE_NEW_MODULE 42
AT_ACTION_CREATE_NEW_MODULEAPPLICATION 54
Auf moduleigene Strukturvariablen zugreifen 59
Auf Strukturen von anderen Maschinenmodulen zugreifen 61
Auf Strukturvariablen von Maschinenmodulen zugreifen 59
Aufbau eines Maschinenmoduls 16
BBaseChannel 18
CCommand_AlarmQuit 92
Command_CmdStateBusy 91
Command-Methoden 92
DDokumenthistorie 6
EEin Modul umbenennen 43
Einloggen 34
Elemente des ApplicationTemplates 15
E-Mail an Lenze 98
Erneutes Ankoppeln von Maschinenmodulen 72
Error ListCSV-Datei exportieren 80
Errorhandling (Fehlerbehandlung) 24, 76
Erste Schritte - ApplicationTemplate bedienen 36
Erstelltes Maschinenmodul einbinden 43
FFeedback an Lenze 98
Fehler quittieren- Reaktion im Maschinenmodul 77
Fehlerbehandlung 76
Fehlerreaktionstypen 76
Funktionalität des Maschinenaufbaus in Maschinenmodule überführen 27
GGültigkeit der Dokumentation 6
II/O-Module einbinden 52
Innerhalb der Modulapplikation programmieren 55
KKommunikation zum Controller einrichten 11
Kommunikation zwischen den Maschinenmodulen 18
Konsistente Datenübertragung 84
LLogbuch 81
MMAC_Task_Free 82
MAC_Task_High 82
MAC_Task_Mid 82
machine module 16
machine module tree 16
MachineModulTree 15
MAP 17
Maschinenmodul (MM) 16
Maschinenmodul erstellen 42
Maschinenmodulbaum 15
Methoden-Übersicht - ApplicationTemplate 91
MM 16
MM_Dcl 30
MM_EmptyModule_PackML 42
MM_IO 30
MM_Par 30
MM_PD 30
MM_Vis 30
MMD-Struktur 64
MMT 15
Modes 18
Moduladresse, absolute 17
Moduladresse, relativ 17
Modulapplikation 17
Modulapplikation einbinden 56
Modulapplikation erstellen 54
Modularisieren des Automationssystems 27
Moduldiagnose 82
Module Application 17
Index
Lenze · ApplicationTemplate PackML · 1.0 DE - 05/2014 97
Index
_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _
ModuleAppCalls 17, 28, 30, 82
Modulkennung 48
Multitasking 82
PPLC-Programm laden und starten 34
Projekt in die Steuerung übertragen (Einloggen) 34
Projektdaten übersetzen 34
Projekterstellung - Prinzipielle Vorgehensweise 25
SScreenshots 5
Sicherheit 10
Sicherheitshinweise (Darstellung) 8
Standardverhalten 71
Statemachine 23, 65
Stati/Zustände 69
Status-Austritt (State-Exit) 75
Status-Eintritt (State-Entry) 75
Status-Methoden 93
Statusübergänge beeinflussen 73
Statusübergänge und Bedingungen - Übersicht 23
Strukturieren innerhalb eines Maschinenmoduls 28
TTransitionen umschalten, Methoden 66
UUserTags 60
VVerwendete Hinweise 8
Verwendete Konventionen 7
VisualisierungSchaltflächen definieren 88
Visualisierung der Maschinenmodule 37
Visualisierung erweitern 86
WWeitere Geräte anhängen - Bussystem EtherCAT 39
ZZiel des ApplicationTemplates 13
Zielgruppe 5
Zusätzlichen Betriebsmodus anlegen 21
Zustandsmaschine (Statemachine) 23, 65
Zustandsmaschine-Programmbeispiele 73
Zustandsübergänge im Detail 68
98 L
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:
Vielen Dank für Ihre Unterstützung.
Ihr Lenze-Dokumentationsteam
© 05/2014
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 13464081 DE 1.0 TD11
10 9 8 7 6 5 4 3 2 1