Sie sind auf Seite 1von 37

Die Bibliothek Festo_Motion.

lib
Inhaltsverzeichnis
1 Die Bibliothek Festo_Motion.lib ........................................................................................................ 1
1.1 Übersicht ...................................................................................................................................... 1
1.1.1 Architektur......................................................................................................................... 1
1.2 Voraussetzungen ......................................................................................................................... 3
1.2.1 E/A-Konfiguration für PROFIBUS ..................................................................................... 3
1.3 Bestimmungsgemäße Verwendung ............................................................................................. 4
1.4 Zielgruppe .................................................................................................................................... 4
1.5 Service ......................................................................................................................................... 4
1.6 Sicherheitshinweise ..................................................................................................................... 5
1.7 Allgemeine Hinweise zu Festo Motorcontrollern .......................................................................... 6
1.7.1 Dokumentationen zu Festo Motorcontrollern .................................................................... 6
1.8 Festo Profil für Handhaben und Positionieren (FHPP)................................................................. 7
1.8.1 Betriebsarten .................................................................................................................... 7
1.9 Funktionsbausteine für Festo Motorcontroller .............................................................................. 8
1.9.1 Steuerungs-Funktionsbausteine ....................................................................................... 8
1.9.2 Organisations-Funktionsbausteine ................................................................................. 19
1.9.3 Parametrierungs-Funktionsbausteine ............................................................................. 20
1.10 Beispiele .................................................................................................................................... 28
1.10.1 Beispiel zur Ansteuerung eines Festo Motorcontrollers .................................................. 28
1.10.2 Beispiel zur Parametrierung eines Festo Motorcontrollers ............................................. 31

2 Glossar .............................................................................................................................................. 33

3 Index .................................................................................................................................................. 35

ii
1 Die Bibliothek Festo_Motion.lib

1.1 Übersicht
Festo_Motion.lib ist eine interne Bibliothek für CoDeSys 2.3. Mit dieser Bibliothek können Festo
Motorcontroller (Antriebscontroller) der folgenden Typen angesteuert werden:
– CMMD-AS-...
– CMMP-AS-...
– CMMS-AS-...
– CMMS-ST-...
– SFC-DC-...
– MTR-DCI-...
– SFC-LAC-...
– SFC-LACI-...

Die Kommunikation erfolgt über Feldbus und nutzt eines der folgenden Kommunikationsprotokolle:
– CANopen
– PROFIBUS
Die Ansteuerung der Festo Motorcontroller erfolgt über das Festo Profil für Handhaben und Positionieren
(FHPP).
Die Bibliothek enthält Funktionsbausteine zur Steuerung und zur Parametrierung der einzelnen Antriebe.
Weitere Informationen zur Bedienung und Einrichtung der entsprechenden Motorcontroller-Typen sind der
jeweiligen Dokumentation der Motorcontroller zu entnehmen.

1.1.1 Architektur
Jeder Motorcontroller wird über die steuerungsspezifische Hardwarekonfiguration in das CoDeSys-Projekt
eingebunden.
– Alle Funktionsbausteine, die zur Steuerung eines Motorcontrollers direkt auf die E/A-Daten zugreifen,
benötigen die erste Adresse der Output Daten sowie die erste Adresse der Input Daten als
Durchgangsvariable.
– Alle Funktionsbausteine, die zur Parametrierung eines Motorcontrollers direkt auf die E/A-Daten
zugreifen, benötigen die erste Adresse der Festo Parameter Channel (FPC) Output Daten sowie die
erste FPC Adresse der Input Daten als Durchgangsvariable.
Für jede Motorcontrollerinstanz muss auch eine Instanz der Funktionsbausteine zur Steuerung
erzeugt werden. Ein Funktionsbaustein, der zur Steuerung dient, kann also nicht für zwei
verschiedene Motorcontroller genutzt werden.

Motoreinheiten/ Steuerungsbaustein Parametrierbausteine


Motorcontroller

CMMD-AS-... CMMS_AS_CTRL (FB) CMMS_AS_PRM_INIT (FB)


CMMS_AS_PRM_SINGLE (FB)
CMMP-AS-... CMMP_AS_CTRL (FB) CMMP_AS_PRM_INIT (FB)
CMMP_AS_PRM_SINGLE (FB)
CMMS-AS-... CMMS_AS_CTRL (FB) CMMS_AS_PRM_INIT (FB)
CMMS_AS_PRM_SINGLE (FB)
CMMS-ST-... CMMS_ST_CTRL (FB) CMMS_ST_PRM_INIT (FB)
CMMS_ST_PRM_SINGLE (FB)
MTR-DCI-... MTR_DCI_CTRL (FB) MTR_DCI_PRM_INIT (FB)
MTR_DCI_PRM_SINGLE (FB)

SFC-DC-... SFC_DC_CTRL (FB) SFC_DC_PRM_INIT (FB)


SFC_DC_PRM_SINGLE (FB)

1
Die Bibliothek Festo_Motion.lib

SFC-LAC-... SFC_LAC_CTRL (FB) SFC_LAC_PRM_INIT (FB)


SFC_LAC_PRM_SINGLE (FB)
SFC-LACI-... SFC_LACI_CTRL (FB) SFC_LACI_PRM_INIT (FB)
SFC_LACI_PRM_SINGLE (FB)

Folgende Abbildungen zeigen die Übergabe der Ein- und Ausgangsdaten vom Feldbus an die
Funktionsbausteine.

Bild: Steuerungskonfiguration

Bild: Verknüpfung zwischen Antriebscontroller und Funktionsbaustein

Die Ein- bzw. Ausgangsdaten des Festo Parameter Channel liegen um 8 Byte versetzt hinter den FHPP-
Standard Daten.

2
Die Bibliothek Festo_Motion.lib

1.2 Voraussetzungen
Zur Kommunikation über Feldbus werden für Festo Motorcontroller jeweils die zugehörigen Dateien
benötigt:

Motorcontroller Elementname in CoDeSys Dateiname für CANopen Dateiname für


PROFIBUS

CMMD-AS-… CMMD-AS-… (FHPP) (EDS) CMMD-AS_CAN_FHPP.eds --


CMMD-AS… -- D-AS0B68.gsd
CMMP-AS-… CMMP-AS-… (FHPP) (EDS) – CMMP-AS-…- --
…_CAN_FHPP.eds
CMMP-AS… -- P-AS0B06.gsd
CMMS-AS-… CMMS-AS (FHPP) (EDS) CMMS-AS_CAN_FHPP.eds --
CMMS-AS… -- S-AS0B67.gsd
CMMS-ST-… CMMS-ST (FHPP) (EDS) CMMS-ST_CAN_FHPP.eds --
CMMS-ST… -- S-ST0AB7.gsd
MTR-DCI-...-CO MTR-DCI-…-CO (FHPP) (EDS) MTR-DCI-…-FHPP.eds --
MTR-DCI-...-PB Festo MTR-DCI… -- MTR00974.gsd
SFC-DC-...-CO SFC-DC-VC-3-E-…-CO (FHPP) SFC-DC-…-CO-FHPP.eds --
(EDS)
SFC-DC-...-PB Festo SFC-DC… -- SFC00973.gsd
SFC-LAC-…-CO SFC-LAC-…-CO-FHPP SFC-LAC-…-CO-FHPP.eds --
SFC-LAC-…-PB Festo SFC-LAC… -- SFC00972.gsd
SFC-LACI-…-CO SFC-LACI-…-CO-FHPP SFC-LACI-…-CO-FHPP.eds --
SFC-LACI-…-PB Festo SFC-LACI -- SFC00BCE.gsd

Bei der Installation von CoDeSys provided by Festo werden bereits mitgelieferte
Konfigurationsdateien automatisch installiert und in folgendem Verzeichnis gespeichert:
...\CoDeSys V2.3\Targets\Festo\...\IOCONFIG\
Nicht mitgelieferte Konfigurationsdateien können über den Standarddialog von CoDeSys
"Konfigurationsdatei hinzufügen" installiert werden.

Zur Nutzung der Funktionsbausteine ist die zugehörige Bibliothek Festo_Motion.lib in das Softwarepaket
"CoDeSys provided by Festo" einzubinden.
Hinweise zur Einbindung einer Bibliothek finden Sie in der allgemeinen CoDeSys-Hilfe im Kapitel
"Die Ressourcen" - Abschnitt "Bibliotheksverwaltung".

1.2.1 E/A-Konfiguration für PROFIBUS


Zur E/A-Konfiguration werden über die GSD-Dateien die zwei folgenden Einstellungen unterstützt:
Einstellung Bedeutung Profil

FHPP Standard Reine Verwendung des Steuerungs- Festo Handhabungs- und Positionierprofil
Funktionsbausteins Standard
FHPP Standard Verwendung von Steuerungs-, Festo Handhabungs- und Positionierprofil
+ FPC Organisations und Parameter- mit Parameterkanal
Funktionsbausteinen

3
Die Bibliothek Festo_Motion.lib

Bild: EA-Konfiguration (Beispiel)

• Speichern Sie nach Abschluss der Konfiguration die Daten in ihrem Projekt.

Weitere Informationen zu den Basis- und den DP-Parametern finden Sie in der Hilfe zum CoDeSys
Programmiersystem. Spezielle Informationen zur Konfiguration und Parametrierung finden Sie in
der Dokumentation zum jeweiligen PROFIBUS-Teilnehmer.

1.3 Bestimmungsgemäße Verwendung


Die beschriebenen Funktionsbausteine (FB's) dienen zur Steuerung und Parametrierung des zugehörigen
Gerätes. Mit den Bausteinen können Sie die vielfältigen Funktionen des jeweiligen Gerätes komfortabel in
ihr Programm einbinden. Sie werden für jede Motoreinheit bzw. jeden Motorcontroller (jede Achse) in das
Anwenderprogramm eingebunden und dort mit einer separaten Instanz zyklisch aufgerufen. Die
gleichzeitige Verwendung anderer Funktionsbausteine zur Steuerung desselben Gerätes ist unzulässig.
Beachten Sie die "Sicherheitstechnischen Hinweise" sowie den bestimmungsgemäßen Gebrauch der
jeweiligen Geräte, Baugruppen und Module. Beim Anschluss handelsüblicher Zusatzkomponenten, wie
Sensoren und Aktoren, sind die angegebenen Grenzwerte für Drücke, Temperaturen, elektrische Daten,
Momente usw. einzuhalten.

1.4 Zielgruppe
Diese Beschreibung wendet sich ausschließlich an ausgebildete Fachleute der Steuerungs- und
Automatisierungstechnik, die Erfahrungen mit der Installation, Inbetriebnahme, Programmierung und
Diagnose von Positioniersystemen und den relevanten Feldbussen besitzen.

1.5 Service
Bitte wenden Sie sich bei technischen Problemen an Ihren lokalen Service von Festo oder an folgende E-
Mail Adresse:
– service_international@festo.com

4
Die Bibliothek Festo_Motion.lib

1.6 Sicherheitshinweise
Bei der Inbetriebnahme und Programmierung von Positioniersystemen sind unbedingt die in den
Beschreibungen und Bedienungsanleitungen zu den eingesetzten Komponenten gegebenen
Sicherheitsvorschriften zu beachten.
Der Anwender hat dafür Sorge zu tragen, dass sich niemand im Einflussbereich der angeschlossenen
Aktoren bzw. der Achssysteme aufhält. Der mögliche Gefahrenbereich muss durch geeignete Maßnahmen
wie Absperrungen oder Warnhinweise gesichert werden.

Warnung
Elektrische Achsen können mit großer Kraft und Geschwindigkeit verfahren. Kollisionen können
zu schweren Verletzungen oder zur Zerstörung von Bauteilen führen.
• Stellen Sie sicher, dass niemand in den Einflussbereich der Achsen sowie anderer
angeschlossener Aktoren greifen kann und sich keine Gegenstände im Verfahrbereich
befinden, solange das System an Energiequellen angeschlossen ist.

Warnung
Fehler bei der Parametrierung können Personen- und Sachschäden verursachen.
• Geben Sie den Regler nur dann frei, wenn das Achssystem fachgerecht installiert und
parametriert ist.

5
Die Bibliothek Festo_Motion.lib

1.7 Allgemeine Hinweise zu Festo Motorcontrollern


Die folgenden Abschnitte enthalten Informationen zu den Motion-Bausteinen für Festo Motorcontroller.
Folgende zusätzliche Beschreibungen sind zum Verständnis notwendig:

1.7.1 Dokumentationen zu Festo Motorcontrollern

Dokumentation Inhalt

Kurz-Beschreibung und Beschreibungen Kurzbeschreibung: Wichtige Inbetriebnahmehinweise und


auf CDROM (siehe Katalog) Erstinformationen.
Beschreibungen: Inhalte wie nachfolgend beschrieben.
Beschreibungen P.BE-... Installation, Inbetriebnahme und Diagnose von elektrischen
Achsen mit dem jeweiligen Festo Motorcontroller.
Bedienungsanleitung zum Zubehör Montage und Inbetriebnahme des elektrischen Mini-
Schlittens SLTE als Antriebselement.
Hilfesystem zum Festo Configuration Tool Funktionsbeschreibungen der Konfigurationssoftware Festo
(in FCT-Software enthalten) Configuration Tool.
Hilfesystem zu CoDeSys provided by Verwendung der hier beschriebenen Motion-Bausteine für
Festo (diese Hilfe) Festo Motorcontroller.

Hinweis
• Beachten Sie unbedingt die dort aufgeführten Informationen und sicherheitstechnischen
Hinweise.

6
Die Bibliothek Festo_Motion.lib

1.8 Festo Profil für Handhaben und Positionieren (FHPP)


Zugeschnitten auf die Zielapplikationen für Handhabungs- und Positionieraufgaben hat Festo ein
optimiertes Datenprofil entwickelt, das "Festo Handling and Positioning Profile (FHPP)".
Das FHPP ermöglicht eine einheitliche Steuerung und Programmierung für die verschiedenen
Feldbussysteme und Controller von Festo.
Im FHPP erfolgt für den Anwender einheitlich die Definition der ...
– Betriebsarten
– E/A-Datenstruktur
– Parameterobjekte
– Ablaufsteuerung.

Bild: Prinzip FHPP

Steuer- und Statusbytes


Die Steuerung über den Feldbus erfolgt über 8 Byte E/A-Daten. Das Auslösen von Steuerungsfunktionen
und die Auswertung von Statusmeldungen des Bausteins erfolgt meist durch Einzelbit-Operationen.
Parameterkanal
Über den Parameterkanal kann die Steuerung auf alle Parameterwerte des Controllers zugreifen. Hierfür
werden weitere 8 Byte E/A-Daten verwendet.

1.8.1 Betriebsarten
Satzselektion
Mit der Betriebsart Satzselektion können gespeicherte Verfahrsätze ausgeführt werden. Hierzu werden bei
der Inbetriebnahme die Verfahrsätze mit dem Festo Configuration Tool parametriert oder über das
Bedienfeld geteacht.
Direktbetrieb
In der Betriebsart Direktbetrieb werden die wesentlichen Verfahrdaten direkt über die Steuerbytes
übergeben.
– Zielpositionen und Geschwindigkeiten können zur Laufzeit von der Steuerung je nach Betriebszustand
ermittelt und vorgegeben werden.
– Keine Beschränkung durch die Anzahl der gespeicherten Verfahrsätze.
In beiden Betriebsarten können Werte über die SPS geteacht/parametriert werden.
Folgende Direktbetriebsarten können ausgewählt werden:
– Direktbetrieb Positionsregelung
– Direktbetrieb Drehmomentregelung
– Direktbetrieb Drehzahlregelung

7
Die Bibliothek Festo_Motion.lib

1.9 Funktionsbausteine für Festo Motorcontroller


Die Namen der Funktionsbausteine für Festo Motorcontroller beginnen mit der Bezeichnung des
Motorcontrollers z. B. CMMP-AS. Weiterhin folgt die Funktion des Funktionsbausteins z. B. CTRL für
Steuerungsbaustein.
Die Bibliothek Festo_Motion.lib stellt folgende Funktionsbausteine (FB’s) zur Verfügung:
– Steuerungs-FB's zur Steuerung des jeweiligen Festo Motorcontrollers
– Organisations-FB's für die Parametrierung der jeweiligen Festo Motorcontroller-Typen
– Parameter-FB's zur Übertragung einzelner Parameter auf den jeweiligen Festo Motorcontroller

Funktionsbaustein Erläuterung

xxx_xx_CTRL Funktionsbaustein zur Steuerung des Motorcontrollers

xxx_xx_PRM_INIT Organisations-Funktionsbaustein für die Parametrierung des


Motorcontrollers

xxx_xx_ PRM_SINGLE Übertragung von einzelnen Parametern

xxx_xx_ PRM_MULTI Übertragung einer Parameterliste (Parameter Array)

xxx_xx_ PRM_DIAG Auslesen des Diagnosespeichers

xxx_xx_ PRM_DIRMP Übertragung der Parameter für den Direktbetrieb Positionsregelung

xxx_xx_ PRM_KO Übertragung von Kommunikationsobjekten

Hinweise
– Die Funktionsbausteine können antriebsabhängige Unterschiede aufweisen.
– Für den Motorcontroller CMMD-AS können die Bausteine des CMMS-AS verwendet werden.

1.9.1 Steuerungs-Funktionsbausteine
Ein- und Ausgänge
In der folgenden Tabelle finden Sie alle Ein- und Ausgänge, die ein FHPP-Funktionsbaustein zur
Steuerung eines Motorcontrollers maximal zur Verfügung stellen kann. Die tatsächliche Anzahl ist
abhängig von den Regelmodi, die der zu steuernde Motorcontroller unterstützt. Die Information, welcher
Motorcontroller welche Regelmodi unterstützt, ist der entsprechenden Motorcontroller Dokumentation zu
entnehmen ( Kapitel "Eingeschränkte Auswahl von Ein- und Ausgängen").
Legende:
– Ein-/Ausgang: Benennung eines Ein- bzw. Ausgangs des CoDeSys-Funktionsbausteins ..._CTRL.
– Typ: Datentyp, den der jeweilige Eingang erwartet bzw. der an einem Ausgang ausgegeben wird.
– Beschreibung: Deutsche Bezeichnung und Kurzbeschreibung des CoDeSys-Funktionsbausteins (0 =
FALSE, 1 = TRUE).

Eingang Typ Beschreibung

FB_CFG WORD FB Konfiguration


Bit 0 = FALSE: Low Byte first
Bit 0 = TRUE: High Byte first
Bit 1 = reserved
...
Bit 31 = reserved
Pos_Factor_numerator DINT Zählerwert zur Umrechnung von Position nach
Inkrementen
Pos_Factor_denumerator DINT Nennerwert zur Umrechnung von Position nach
Inkrementen
AxisType INT Angeschlossener Achstyp

8
Die Bibliothek Festo_Motion.lib

Eingang Typ Beschreibung

EnableDrive BOOL Antrieb freigeben


= 1: Antrieb freigeben
= 0: Antrieb gesperrt
Stop BOOL Stopp
= 1: Betrieb freigeben.
= 0: Stop aktiv (Notrampe + Fahrauftrag verwerfen). Der
Antrieb stoppt mit maximaler Bremsrampe, der
Fahrauftrag wird zurückgesetzt.
Brake BOOL Bremse lösen
= 1: Bremse lösen
= 0: Bremse aktivieren
Hinweis: Bremse lösen ist nur möglich, wenn der Regler
gesperrt ist. Sobald der Regler freigegeben ist, hat er
Hoheit über die Steuerung der Bremse.
ResetFault BOOL Störung quittieren
Mit einer steigenden Flanke wird eine anliegende
Störung quittiert und der Störwert gelöscht.
HMIAccessLocked BOOL Software Zugriff blockiert
Steuerung des Zugriffs auf die lokale (integrierte)
Diagnose-Schnittstelle des Controllers.
= 1: Die Software FCT darf den Controller nur
beobachten, die Gerätesteuerung (HMI control) kann von
der Software nicht übernommen werden.
= 0: Die Software FCT kann die Gerätesteuerung
übernehmen (um Parameter zu ändern oder Eingänge zu
steuern).
OPM INT FHPP-Betriebsart + Regelmodus
= 0: Satzselektion
= 1: Direktbetrieb Positionsregelung
= 5: Direktbetrieb Drehmomentregelung
= 9: Direktbetrieb Drehzahlregelung
= 13: Reserviert
= 17: Nachführbetrieb
Halt BOOL Halt
= 1: Halt ist nicht aktiv
= 0: Halt aktiviert (Bremsrampe + Fahrauftrag nicht
verwerfen). Die Achse stoppt mit definierter
Bremsrampe, der Fahrauftrag bleibt aktiv (mit
ClearRemainingPosition kann Restweg gelöscht
werden).
StartTask BOOL Start Fahrauftrag
Durch eine steigende Flanke werden die aktuellen
Solldaten übernommen und eine Positionierung gestartet
(auch z. B. Satz 0 = Referenzfahrt!).
StartHoming BOOL Start Referenzfahrt
Durch eine steigende Flanke wird die Referenzfahrt mit
den eingestellten Parametern gestartet.
JoggingPos BOOL Tippen positiv
Der Antrieb fährt mit vorgegebener Geschwindigkeit bzw.
Drehzahl in Richtung größerer Istwerte, solange das Bit
gesetzt ist. Die Bewegung beginnt mit der steigenden
und endet mit der fallenden Flanke.
JoggingNeg BOOL Tippen negativ
Der Antrieb fährt mit vorgegebener Geschwindigkeit bzw.
Drehzahl in Richtung kleinerer Istwerte, siehe
JoggingPos.

9
Die Bibliothek Festo_Motion.lib

Eingang Typ Beschreibung

TeachActualValue BOOL Wert teachen


Bei fallender Flanke wird der aktuelle Istwert in das
Sollwertregister des aktuell adressierten Verfahrsatzes
übernommen. Istwerte können
z. B. Position, Druck oder Moment sein.
ClearRemainingPosition BOOL Restweg löschen
Im Zustand "Halt" bewirkt eine steigende Flanke das
Löschen des Positionierauftrages und den Übergang in
den Zustand "Bereit".
AbsoluteRelative BOOL Absolut/Relativ
= 0: Sollwert ist absolut
= 1: Sollwert ist relativ zum letzten Sollwert
SetFunction BOOL Kurvenscheibe
= 0: Kurvenscheibe nicht aktiv
= 1: Kurvenscheibe aktiv
DeactivateStrokeLimit BOOL Drehmomentgrenzwert nicht aktiv (nur bei
Drehmomentregelung)
= 0: Drehmomentüberwachung aktiv
= 1: Drehmomentüberwachung nicht aktiv
RecordNo SINT Satznummer
Vorwahl der Satznummer für Satzselektion.
SetFuncNumber USINT Kurvenscheibenfunktion
= 0: Reserviert
= 1: Synchronisation auf externen Eingang
= 2: Synchronisation auf externen Eingang mit
Kurvenscheibenfunktion (d. h. Slave mit physikalischem
Master)
= 3: Synchronisation auf virtuellen Master mit
Kurvenscheibenfunktion
SetFuncGroup USINT Kurvenscheibengruppe
= 0: Synchronisation mit/ohne Kurvenscheibe
= 1: Reserviert
= 2: Reserviert
= 3: Reserviert
SetValuePosition DINT Position
Position in der Positionseinheit
SetValueForceRamp USINT Drehmomentrampe
Wert der Drehmomentrampe in % des Nennwertes oder
Maximalwertes
SetValueVelocity USINT Geschwindigkeit
Geschwindigkeit in % der Maximalgeschwindigkeit
SetValueForce DINT Drehmoment
Drehmoment in % des maximalen Drehmoments
SetValueRotRamp SINT Geschwindigkeitsrampe
Geschwindigkeitsrampe in %der maximalen Rampe
SetValueRotSpeed DINT Geschwindigkeit
Geschwindigkeit in Geschwindigkeitseinheit

10
Die Bibliothek Festo_Motion.lib

Ein-/Ausgang Typ Beschreibung

b_FHPP_In VAR_IN_OUT FHPP-Eingangsdaten


Erste Adresse der Input Daten (Ausgangsdaten des
Motorcontrollers)
b_FHPP_Out VAR_IN_OUT FHPP-Ausgangsdaten
Erste Adresse der Output Daten (Eingangsdaten des
Motorcontrollers)

Ausgang Typ Beschreibung

OPMString STRING(80) Rückmeldung der gewählten FHPP-Betriebsart +


Regelmodus
Satzselektion = 'Record Mode selected'
Direktbetrieb Positionsregelung = 'Directmode
Positioncontrol selected'
Direktbetrieb Drehmomentregelung = 'Directmode
Forcecontrol selected'
Direktbetrieb Drehzahlregelung = 'Directmode
Velocitycontrol selected'
Betriebsart und Regelmodus ungültig = 'not specified'
StateOPMString STRING(80) Rückmeldung aktive FHPP-Betriebsart + Regelmodus
Satzselektion = 'Record Mode active'
Direktbetrieb Positionsregelung = 'Directmode
Positioncontrol active'
Direktbetrieb Drehmomentregelung = 'Directmode
Forcecontrol active'
Direktbetrieb Drehzahlregelung = 'Directmode
Velocitycontrol active'
Betriebsart und Regelmodus ungültig = 'not specified'
DriveEnabled BOOL Regler freigegeben
= 0: Antrieb gesperrt, Regler nicht aktiv
= 1: Antrieb (Regler) freigegeben
Ready BOOL Betrieb freigegeben
= 0: Stopp aktiv
= 1: Betrieb freigegeben, Positionieren möglich
Warning BOOL Warnung
= 0: Warnung liegt nicht an
= 1: Warnung liegt an
Fault BOOL Störung
= 0: Keine Störung
= 1: Störung liegt an bzw. Störreaktion aktiv. Störcode im
Diagnosespeicher.
SupplyVoltagePresent BOOL Lastspannung liegt an
= 0: Keine Lastspannung
= 1: Lastspannung liegt an
ControlFCT_HMI BOOL Gerätesteuerung Software
= 0: Gerätesteuerung frei (z. B. SPS/Feldbus)
= 1: Gerätesteuerung durch Software (SPS control is
Locked)
StateOPM INT Rückmeldung FHPP-Betriebsart + Regelmodus
= 0: Satzselektion
= 1: Direktbetrieb Positionsregelung
= 5: Direktbetrieb Drehmomentregelung
= 9: Direktbetrieb Drehzahlregelung
= 13: Reserviert
= 17: Nachführbetrieb

11
Die Bibliothek Festo_Motion.lib

Ausgang Typ Beschreibung

HaltActive BOOL Halt


= 0: Halt ist aktiv
= 1: Halt ist nicht aktiv, Achse kann bewegt werden
AckStart BOOL Quittung Start
= 0: Bereit für Start (Referenzieren, Tippen)
= 1: Start ausgeführt (Referenzieren, Tippen)
MC BOOL Motion Complete
= 0: Fahrauftrag aktiv
= 1: Fahrauftrag abgeschlossen, ggf. mit Fehler
Hinweis: MC wird erstmals nach dem Einschalten (Zustand
"Antrieb gesperrt") gesetzt.
AckTeach BOOL Acknowledge Teach
= 0: Bereit für Teachen
= 1: Teachen ausgeführt, Istwert wurde übernommen
DriveIsMoving BOOL Achse bewegt sich
= 0: Geschwindigkeit der Achse < Grenzwert
= 1: Geschwindigkeit der Achse >= Grenzwert
DragError BOOL Schleppfehler
= 0: Kein Schleppfehler
= 1: Schleppfehler aktiv
StandstillControl BOOL Stillstandsüberwachung
= 0: Achse bleibt nach MC im Toleranzfenster
= 1: Achse hat nach MC das Toleranzfenster verlassen
DriveIsReferenced BOOL Antrieb referenziert
= 0: Referenzierung muss durchgeführt werden
= 1: Referenzinfo vorhanden, Referenzfahrt muss nicht
durchgeführt werden
RC1 BOOL 1. Satzweiterschaltung durchgeführt
= 0: Eine Weiterschaltbedingung wurde nicht konfiguriert
oder nicht erreicht
= 1: Die erste Weiterschaltbedingung wurde erreicht
RCC BOOL Satzweiterschaltung abgeschlossen - gültig, sobald MC
vorliegt.
= 0: Satzverkettung abgebrochen. Mindestens eine
Weiterschaltbedingung wurde nicht erreicht
= 1: Satzkette wurde bis zum Ende abgearbeitet.
ActualFuncActive BOOL Kurvenscheibe aktiv
= 0: Kurvenscheibe nicht aktiv
= 1: Kurvenscheibe aktiv
VelocityLimitReached BOOL Geschwindigkeitsgrenzwert erreicht (nur bei
Drehmomentregelung)
= 1: Geschwindigkeitsgrenzwert erreicht
= 0: Geschwindigkeitsgrenzwert nicht erreicht
StrokeLimitReached BOOL Drehmomentgrenzwert erreicht (nur bei
Drehmomentregelung)
= 0: Drehmomentüberwachung erreicht
= 1: Drehmomentüberwachung nicht erreicht
ActualRecordNo SINT Satznummer
Rückmeldung der Satznummer für Satzselektion.

12
Die Bibliothek Festo_Motion.lib

Ausgang Typ Beschreibung

ActualFuncNumber USINT Rückmeldung Kurvenscheibenfunktion


= 0: Reserviert
= 1: Synchronisation auf externen Eingang
= 2: Synchronisation auf externen Eingang mit
Kurvenscheibenfunktion (d. h. Slave mit physikalischem
Master)
= 3: Synchronisation auf virtuellen Master mit
Kurvenscheibenfunktion
ActualFuncNumber USINT Rückmeldung Kurvenscheibengruppe
= 0: Synchronisation mit/ohne Kurvenscheibe
= 1: Reserviert
= 2: Reserviert
= 3: Reserviert
ActualPosition DINT Position
Rückmeldung der Position in Positionseinheit
ActualVelocity SINT Geschwindigkeit
Rückmeldung Geschwindigkeit in % der maximalen
Geschwindigkeit
ActualForce INT Drehmoment
Rückmeldung Drehmoment in % des maximalen
Drehmoments
ActualRotRamp SINT Geschwindigkeitsrampe
Rückmeldung Geschwindigkeitsrampe in % der maximalen
Rampe
ActualRotSpeed DINT Geschwindigkeit
Rückmeldung Geschwindigkeit in Geschwindigkeitseinheit

Eingeschränkte Auswahl von Ein- und Ausgängen bei CoDeSys Funktionsbausteinen ..._CTRL
In der folgenden Tabelle finden Sie die Ein- und Ausgänge, die nur von bestimmten Festo Motorcontrollern
und ggf. nur für bestimmte Betriebsarten unterstützt werden.

Ein-/Ausgang Typ Motorcontroller Betriebsart

Pos_Factor_numerator DINT MTR_DCI alle Betriebsarten


SFC_DC
Pos_Factor_denumerator DINT MTR_DCI alle Betriebsarten
SFC_DC
AxisType INT SFC_LACI alle Betriebsarten
Brake BOOL CMMD_AS alle Betriebsarten
CMMP_AS
CMMS_AS
CMMS_ST
SFC_LACI
StartHoming BOOL alle Satzselektion
Direktbetrieb Positionsregelung
TeachActualValue BOOL alle Satzselektion
AbsoluteRelative BOOL alle Direktbetrieb Positionsregelung
SetFunction BOOL CMMP_AS_CAM Direktbetrieb Positionsregelung
DeactivateStrokeLimit BOOL MTR_DCI Direktbetrieb Drehmomentregelung
SFC_DC
SFC_LAC
SFC_LACI

13
Die Bibliothek Festo_Motion.lib

Ein-/Ausgang Typ Motorcontroller Betriebsart

RecordNo SINT alle Satzselektion


SetFuncNumber USINT CMMP_AS_CAM Direktbetrieb Positionsregelung
SetFuncGroup USINT CMMP_AS_CAM Direktbetrieb Positionsregelung
SetValuePosition DINT alle Direktbetrieb Positionsregelung
SetValueForceRamp USINT CMMP_AS Direktbetrieb Drehmomentregelung
SetValueVelocity USINT alle Direktbetrieb Positionsregelung
SetValueForce DINT alle Direktbetrieb Drehmomentregelung
SetValueRotRamp SINT CMMD_AS Direktbetrieb Drehzahlregelung
CMMP_AS
CMMS_AS
CMMS_ST
SetValueRotSpeed DINT CMMD_AS Direktbetrieb Drehzahlregelung
CMMP_AS
CMMS_AS
CMMS_ST
AckTeach BOOL alle Satzselektion
DriveIsReferenced BOOL alle Satzselektion
Direktbetrieb Positionsregelung
RC1 BOOL CMMD_AS Satzselektion
CMMP_AS
CMMS_AS
CMMS_ST
SFC_LAC
SFC_LACI
RCC BOOL CMMD_AS Satzselektion
CMMP_AS
CMMS_AS
CMMS_ST
SFC_LAC
SFC_LACI
ActualFuncActive BOOL CMMP_AS_CAM Direktbetrieb Positionsregelung
VelocityLimitReached BOOL MTR_DCI Direktbetrieb Drehmomentregelung
SFC_DC
SFC_LAC
SFC_LACI
StrokeLimitReached BOOL MTR_DCI Direktbetrieb Drehmomentregelung
SFC_DC
SFC_LAC
SFC_LACI
ActualRecordNo SINT alle Satzselektion
ActualFuncNumber USINT CMMP_AS_CAM Direktbetrieb Positionsregelung
ActualFuncGroup USINT CMMP_AS_CAM Direktbetrieb Positionsregelung
ActualPosition DINT alle Direktbetrieb Positionsregelung
ActualVelocity SINT alle Direktbetrieb Positionsregelung
ActualForce INT alle Direktbetrieb Drehmomentregelung

14
Die Bibliothek Festo_Motion.lib

Ein-/Ausgang Typ Motorcontroller Betriebsart

ActualRotRamp SINT CMMD_AS Direktbetrieb Drehzahlregelung


CMMP_AS
CMMS_AS
CMMS_ST
ActualRotSpeed DINT CMMD_AS Direktbetrieb Drehzahlregelung
CMMP_AS
CMMS_AS
CMMS_ST

Verknüpfung der Funktionsbausteine


Zur Ansteuerung eines Festo Motorcontrollers sind die jeweiligen Feldbusdaten an den Funktionsbaustein
zu übergeben.
Folgende Abbildung zeigt eine beispielhafte Steuerungskonfiguration mit einem CMMP-AS CANopen
Slave.

Bild: Steuerungskonfiguration (Beispiel)

15
Die Bibliothek Festo_Motion.lib

Die Übergabe erfolgt am besten über eine Array Variable, wobei lediglich das erste Element des Array an
den Baustein übergeben werden muss.

Bild: Adressen verknüpfen

Zur Parametrierung eines Motorcontrollers werden 8 weitere Bytes, die Festo Parameter Channel Daten
(FPC-Daten) an einen speziellen Funktionsbaustein übergeben. Anhand dieses "Übergabe"-Funktions-
bausteins werden alle im Projekt notwendigen Parametrierungs-Funktionsbausteine mit Daten versorgt.

16
Die Bibliothek Festo_Motion.lib

Visualisierung der Funktionsbausteine


Für jeden Motorcontroller gibt es einen Funktionsbaustein zur Steuerung und mehrere Funktionsbausteine
zur Parametrierung.
Ergänzend dazu steht jeweils ein Visualisierungselement zur Verfügung, womit die Erstinbetriebnahme
erleichtert wird.

Bild: Visualisierungselement für den Festo Motorcontroller CMMP-AS-... (Beispiel)

Die Eingangsdaten eines mit der Visualisierung verknüpften Funktionsbausteins werden auf der linken
Hälfte der Visualisierung dargestellt, Ausgangsdaten auf der rechten Hälfte. Ein- bzw. Ausgänge werden
Blau bei TRUE und Grau bei FALSE angezeigt.

Verbindung der Visualisierung


Das zum ausgewählten Funktionsbaustein passende Visualisierungselement wird in einem
Visualisierungsobjekt eingefügt.
Hinweise zum Anlegen eines Visualisierungsobjekts finden Sie in der allgemeinen CoDeSys-
Hilfe im Kapitel "CoDeSys Visualisierung".

Gehen Sie wie folgt vor:


1. Öffnen Sie das Editierfenster des Visualisierungsobjekts durch Doppelklick auf den Namen des
Objektes im Registerblatt 'Visualisierungen'.
2. Gehen Sie auf den Menüpunkt 'Einfügen' und wählen den Befehl 'Visualisierung'. Sie können auch
das Symbol 'Visualisierung' in der Funktionsleiste anklicken.
3. Bewegen Sie den Mauszeiger in das Editierfenster. Der Mauszeiger wird innerhalb des Fensters mit
dem entsprechenden Symbol gekennzeichnet.
4. Klicken Sie in das Editierfeld und halten die Maustaste gedrückt. Ziehen Sie gleichzeitig die Maus über
das Editierfeld und erstellen Sie somit einen Platzhalter für das Visualisierungselement. Sobald der
Platzhalter die gewünschten Maße hat, lassen Sie die Maustaste los.
5. Suchen Sie im Dialogfenster "Visualisierung auswählen" das passende Visualisierungselement und
bestätigen Sie die Auswahl über die Schaltfläche "OK".

17
Die Bibliothek Festo_Motion.lib

Das gewünschte Visualisierungselement erscheint im Editierfenster des Visualisierungsobjekts.


• Passen Sie ggf. die Größe und Position des Visualisierungselements an. Klicken Sie dazu auf das
Element und verwenden Sie auch die Randmarkierungen.
• Zur Konfiguration öffnen Sie das Dialogfenster durch Doppelklick auf das Visualisierungselement. Hier
können Sie verschiedene Einstellungen zur Darstellung und zur Verbindung des
Visualisierungselements vornehmen.

Bild: Visualisierung verknüpfen

6. Aktivieren Sie im Dialogfenster "Visualisierung" die Kategorie "Visualisierung".


7. Öffnen Sie das Dialogfenster "Platzhalter ersetzen" durch Mausklick auf die Schaltfläche
"Platzhalter...".
8. Verbinden Sie das Visualisierungselement mit der zugehörigen Instanz (Name der Achse). Geben Sie
dazu in der Spalte "Ersetzung" den Namen des Funktionsbausteins in Verbindung mit dem
übergeordneten Programmnamen ein.

18
Die Bibliothek Festo_Motion.lib

1.9.2 Organisations-Funktionsbausteine
Ein- und Ausgänge der Organisations-Funktionsbausteine
Funktionsbausteine des Typs …_PRM_INIT regeln bei Nutzung von Parametrierungs-Funktionsbau-
steinen den Zugriff auf die E/A Daten. Der Datenaustausch findet über den Festo Parameter Channel
(FPC) statt.

Parametrier-Funktionsbausteine ..._PRM_... benötigen zwingend eine Instanz des


Organisations-Funktionsbausteins ..._PRM_INIT.

Die folgende Tabelle zeigt die Aus- und Eingänge eines Organisations-Funktionsbausteins.
Legende:
– Ein-/Ausgang: Benennung eines Ein- bzw. Ausgangs des CoDeSys-Funktionsbausteins
..._PRM_INIT.
– Typ: Datentyp, den der jeweilige Eingang erwartet bzw. der an einem Ausgang ausgegeben wird.
– Beschreibung: Deutsche Bezeichnung und Kurzbeschreibung des CoDeSys-Funktionsbausteins
(0 = FALSE, 1 = TRUE).

Ein- / Ausgang Typ Beschreibung

FB_CFG WORD FB Konfiguration


Bit 0 = FALSE: Low Byte zuerst
Bit 0 = TRUE: High Byte zuerst
Bit 1 = Reserviert
...
Bit 31 = Reserviert
DATA_REF VAR_IN_OUT FPC Datenstruktur vom Datentyp FHPP_PRM_REF
Inhalt der Datenstruktur spiegelt E/A Daten des FPC wieder
b_FPC_In VAR_IN_OUT FHPP-FPC Eingangsdaten
Erste Adresse der CAN-Input Daten des FPC (Ausgangsdaten
des Motorcontrollers)
b_FPC_Out VAR_IN_OUT FHPP-FPC Ausgangsdaten
Erste Adresse der CAN-Output Daten des FPC (Eingangsdaten
des Motorcontrollers)

19
Die Bibliothek Festo_Motion.lib

1.9.3 Parametrierungs-Funktionsbausteine
Funktionsbaustein xxx_PRM_SINGLE
Der Baustein xxx-PRM-SINGLE überträgt einen einzelnen Parameter an den jeweiligen Antriebscontroller.

Bild: Beispiel Funktionsbaustein CMMP_AS_PRM_SINGLE

Ein- und Ausgänge


Folgende Tabelle zeigt die Aus- und Eingänge, die der Funktionsbaustein xxx_PRM_SINGLE zur
Parametrierung eines Motorcontrollers besitzt.
Ein- / Ausgang Typ Beschreibung

Execute BOOL Start Übertragung


0->1: Durch eine steigende Flanke wird die Übertragung
eines Parameters gestartet
Write BOOL Lesen/Schreiben
= 0: Parameter lesen
= 1: Parameter schreiben
Voraussetzung: UpperLimit = 0; LowerLimit = 0
UpperLimit BOOL Lesen oberer Grenzwert
= 1: oberen Grenzwert lesen
Voraussetzung: Write = 0; LowerLimit = 0;
LowerLimit BOOL Lesen unterer Grenzwert
= 1: unteren Grenzwert lesen
Voraussetzung: Write = 0; UpperLimit = 0;
PNU WORD Nummer des entsprechenden Parameters
Subindex SINT Subindex des entsprechenden Parameters
DatatypeWR USINT Datentyp des zu schreibenden Parameters
= 1: Byte
= 2: Word
= 4: Double Word
ParamValueWR DINT Parameterwert beim Schreiben eines Parameters
DATA_REF VAR_IN_OUT FPC Datenstruktur
Datenstruktur, die vom FB ..._PRM_INIT zur Verfügung
gestellt wird
Done BOOL Übertragungsstatus
= 0: Übertragung wurde nicht ausgelöst
= 1: Übertragung wurde ausgelöst
Err BOOL Fehler
= 0: kein Fehler bei der Übertragung eines Parameters
= 1: Fehler bei der Übertragung eines Parameters
ErrStr STRING(80) Ausgabe einer Fehlermeldung als String
ActPNU WORD Aktuelle Nummer des entsprechenden Parameters
ActSubindex SINT Aktueller Subindex des entsprechenden Parameters

20
Die Bibliothek Festo_Motion.lib

Ein- / Ausgang Typ Beschreibung

DatatypeRD USINT Datentyp des gelesenen Parameters


= 1: Byte
= 2: Word
= 4: Double Word
ParamValueRD DINT Parameterwert beim Lesen eines Parameters
RETVAL UINT Aktueller Status der FB-Instanz
Bei Verwendung mehrerer Instanzen des FB’s wird der
aktuelle interne Status des jeweiligen FB’s ausgegeben.

Tabelle: xxx_PRM_SINGLE, Ein- und Ausgänge


Legende:
– Ein-/Ausgang: Benennung eines Ein- bzw. Ausgangs des CoDeSys-Funktionsbausteins.
– Typ: Datentyp, den der jeweilige Eingang erwartet bzw. der an einem Ausgang ausgegeben wird.
– Beschreibung: Deutsche Bezeichnung und Kurzbeschreibung des CoDeSys-Funktionsbausteins
(0 = FALSE, 1 = TRUE).

Eingeschränkte Auswahl an Funktionsbausteinen


Die folgenden Ein- und Ausgänge werden nur von bestimmten Festo Motorcontrollern unterstützt. Alle
anderen Ein- bzw. Ausgänge sind unabhängig vom Typ des Motorcontrollers bei allen CoDeSys-
Funktionsbausteinen ..._PRM_SINGLE vorhanden.
Ein-/Ausgang Typ Motorcontroller

UpperLimit BOOL CMMD_AS


LowerLimit BOOL CMMP_AS
CMMS_AS
CMMS_ST
DatatypeWR USINT MTR_DCI
DatatypeRD USINT SFC_DC
SFC_LAC
SFC_LACI

Bei Verwendung der folgenden Ein-und Ausgänge mit den genannten Motorcontrollern ist der
Positionsfaktor zu berücksichtigen.
Ein-/Ausgang Typ Motorcontroller

ParamValueWR DINT MTR_DCI


SFC_DC
ParamValueRD DINT
SFC_LAC
SFC_LACI

Funktionsbaustein xxx_PRM_MULTI
Der Baustein xxx-PRM-MULTI überträgt eine Liste von Parametern an den jeweiligen Motorcontroller.

Bild: Beispiel Funktionsbaustein CMMP_AS_PRM_MULTI

21
Die Bibliothek Festo_Motion.lib

Ein- und Ausgänge


Folgende Tabelle zeigt die Aus- und Eingänge, die der Funktionsbaustein xxx_PRM_MULTI zur
Parametrierung eines Motorcontrollers besitzt.
Ein- / Ausgang Typ Beschreibung

Execute BOOL Start Übertragung


0->1: Durch eine steigende Flanke wird die Übertragung
eines Parameters gestartet
SizeOfParam USINT Größe des zur Übertragung vorgesehenen Parameterfeldes
(Array)
AdrOfParam POINTER_TO_BYTE Adresse des zur Übertragung vorgesehenen
Parameterfeldes (Array)
DATA_REF VAR_IN_OUT FPC Datenstruktur
Datenstruktur, die vom FB ..._PRM_INIT zur Verfügung
gestellt wird
Done BOOL Übertragungsstatus
= 0: Übertragung wurde nicht ausgelöst
= 1: Übertragung wurde ausgelöst
Das Ergebnis des Lesevorgangs steht im Parameterfeld
(Array) im Wert Value.
ParamNr USINT Nummer des Parameters, der aktuell übertragen wird
Err BOOL Fehler
= 0: kein Fehler bei der Übertragung eines Parameters
= 1: Fehler bei der Übertragung eines Parameters
ErrStr STRING(80) Ausgabe einer Fehlermeldung als String
RETVAL UINT Aktueller Status der FB-Instanz
Bei Verwendung mehrerer Instanzen des FB’s wird der
aktuelle interne Status des jeweiligen FB’s ausgegeben.

Beispiel eines Parameterfeldes (Array)


MultiParam : ARRAY [1..5] OF FHPP_PRM_DESCRIPTION :=
(PNU:=404, SUBINDEX:=2, ACCESS:= 1, LENGTH:= 4, VALUE:=100),
(PNU:=404, SUBINDEX:=3, ACCESS:= 1, LENGTH:= 4, VALUE:=200),
(PNU:=404, SUBINDEX:=4, ACCESS:= 0, LENGTH:= 4, VALUE:=300),
(PNU:=404, SUBINDEX:=5, ACCESS:= 1, LENGTH:= 4, VALUE:=400),
(PNU:=404, SUBINDEX:=6, ACCESS:= 0, LENGTH:= 4, VALUE:=500);

Aufbau der Struktur FHPP_PRM_DESCRIPTION


TYPE FHPP_PRM_DESCRIPTION :
STRUCT
PNU : UINT ; (* Parameter Nummer des spezifizierten Parameters *)
SUBINDEX : USINT; (* Subindex des spezifizierten Parameters *)
ACCESS : USINT; (* 0 = Parameter lesen / 1 = Parameter schreiben *)
LENGTH : USINT; (* Länge des Parameters in Anzahl Bytes *)
(* (immer 4 für CMM... Controller, sonst siehe *)
(* FB xxx_PRM_Single Eingang DatatypeWR) *)
VALUE : DINT ; (* Ausgelesenes Ergebnis oder geschriebener Wert *)
(* Bei diesen Bausteinen: *)
(* MTR_DCI_PRM_MULTI, SFC_DC_PRM_MULTI, *)
(* SFC_LAC_PRM_MULTI, SFC_LACI_PRM_MULTI *)
(* muss der Posfaktor berücksichtigt werden. *)
END_STRUCT
ENT_TYPE

22
Die Bibliothek Festo_Motion.lib

Funktionsbaustein xxx_PRM_DIAG
Der Baustein xxx-PRM-DIAG liest den Fehlerspeicher oder ggf. den Warnungsspeicher des jeweiligen
Motorcontrollers aus.

Bild: Beispiel Funktionsbaustein CMMP_AS_PRM_DIAG

Ein- und Ausgänge


Folgende Tabelle zeigt die Aus- und Eingänge, die der Funktionsbaustein xxx_PRM_DIAG zur
Parametrierung eines Motorcontrollers besitzt.
Ein- / Ausgang Typ Beschreibung

ReadLatest BOOL Lesen letzter Eintrag


0->1: Durch eine steigende Flanke wird die letzte
Meldung ausgelesen
ReadAll BOOL Lesen alle Einträge
0->1: Durch eine steigende Flanke werden alle
Meldungen ausgelesen
Warning BOOL Umschalten Warnungen
= 0: lesen Fehler
= 1: lesen Warnungen
DATA_REF VAR_IN_OUT FPC Datenstruktur
Datenstruktur, die vom FB ..._PRM_INIT zur
Verfügung gestellt wird
Done BOOL Übertragungsstatus
= 0: Übertragung wurde nicht ausgelöst
= 1: Übertragung wurde ausgelöst
ParamNr USINT Parameternummer des Fehlerspeichers
Nummer des Parameters, der aktuell übertragen
wird
ReadLatest: ParamNr = 1
ReadAll: ParamNr des aktuell abgearbeiteten
Fehlerspeichers
Err BOOL Fehler
= 0: kein Fehler bei der Übertragung eines
Parameters
= 1: Fehler bei der Übertragung eines
Parameters
ErrStr STRING(80) Ausgabe einer Fehlermeldung als String
DiagBuff ARRAY [1..n] OF Diagnosepuffer
FHPP_PRM_DIAGMESSAGE Im Diagnosepuffer (Array) werden die gelesenen
Meldungen abgelegt. Die Vollständigkeit der
Einträge und die Anzahl der Parameter ist vom
jeweiligen Gerät abhängig.
RETVAL UINT Aktueller Status der FB-Instanz
Bei Verwendung mehrerer Instanzen des FB’s wird
der aktuelle interne Status des jeweiligen FB’s
ausgegeben.

23
Die Bibliothek Festo_Motion.lib

Eingeschränkte Auswahl an Funktionsbausteinen


Die folgenden Ein- und Ausgänge werden nur von bestimmten Festo Motorcontrollern unterstützt. Alle
anderen Ein- bzw. Ausgänge sind unabhängig vom Typ des Motorcontrollers bei allen CoDeSys-
Funktionsbausteinen ..._PRM_DIAG vorhanden.
Ein-/Ausgang Typ Motorcontroller

Warning BOOL CMMP_AS


CMMP_AS_CAM

Aufbau der Feldstruktur des Diagnosepuffers


DiagBuff ARRAY [1..32] OF FHPP_PRM_DIAGMESSAGE;
TYPE FHPP_PRM_DIAGMESSAGE :
STRUCT
DiagEvent : DINT ; (* Diagnoseereignis PNU 200 / PNU 210 *)
DiagMsgNumber : DINT ; (* Störnummer PNU201 / PNU 211 *)
DiagTimeStamp: : TOD ; (* Zeitstempel der Diagnosemeldung *)
DiagMsgDescription : STRING; (* Beschreibung der Diagnosemeldung *)
END_STRUCT
ENT_TYPE

Da die Struktur FHPP_PRM_DIAGMESSAGE allgemeingültig ist, werden z. B. Einträge wie


DiagEvent und DiagTimeStamp nicht von allen Antrieben unterstützt. Die Größe des
Diagnosepuffers ist ebenfalls vom jeweiligen Motorcontroller abhängig.

Funktionsbaustein xxx_PRM_DIRMP
Der Baustein xxx-PRM-DIRMP schreibt bzw. liest die Dynamikwerte für den Direktbetrieb
(Positionsregelung).

Bild: Beispiel Funktionsbaustein CMMP_AS_PRM_DIRMP

Ein- und Ausgänge


Folgende Tabelle zeigt die Aus- und Eingänge, die der Funktionsbaustein xxx-PRM-DIRMP zur
Parametrierung eines Motorcontrollers besitzt.
Ein- / Ausgang Typ Beschreibung

AxisType INT Angeschlossener Achstyp


Execute BOOL Start Übertragung
0->1: Durch eine steigende Flanke wird die Übertragung
eines Parameters gestartet
Write BOOL Lesen/Schreiben
= 0: Parameter lesen
= 1: Parameter schreiben
Velocity DINT Basisgeschwindigkeit: PNU 540
Acceleration DINT Beschleunigung: PNU 541
Deceleration DINT Verzögerung: PNU 542

24
Die Bibliothek Festo_Motion.lib

Ein- / Ausgang Typ Beschreibung

JerkLimit DINT SFC_LACx: Ruckbegrenzung: PNU 543


CMMx_xxx: Ruckbegrenzung: PNU 546
DampingTime DINT Filterzeit: PNU 1023
Load DINT Zusatzgewicht: PNU 544
DATA_REF VAR_IN_OUT FPC Datenstruktur
Datenstruktur, die vom FB ..._PRM_INIT zur Verfügung
gestellt wird
Done BOOL Übertragungsstatus
= 0: Übertragung wurde nicht ausgelöst
= 1: Übertragung wurde ausgelöst
Err BOOL Fehler
= 0: kein Fehler bei der Übertragung eines Parameters
= 1: Fehler bei der Übertragung eines Parameters
ErrStr STRING(80) Ausgabe einer Fehlermeldung als String
ActVelocity DINT Aktuelle Basisgeschwindigkeit: PNU 540
ActAcceleration DINT Aktuelle Beschleunigung: PNU 541
ActDecceleration DINT Aktuelle Verzögerung: PNU 542
ActJerkLimit DINT SFC_LACx: Aktuelle Ruckbegrenzung: PNU 543
(Pos/Neg) CMMx_xxx: Aktuelle Ruckbegrenzung: PNU 546
ActDampingTime DINT Aktuelle Filterzeit: PNU 1023
ActLoad DINT Aktuelles Zusatzgewicht: PNU544
RETVAL UINT Aktueller Status der FB-Instanz
Bei Verwendung mehrerer Instanzen des FB's wird der
aktuelle interne Status des jeweiligen FB's ausgegeben.

Eingeschränkte Auswahl an Funktionsbausteinen


Die folgenden Ein- und Ausgänge werden nur von bestimmten Festo Motorcontrollern unterstützt. Alle
anderen Ein- bzw. Ausgänge sind unabhängig vom Typ des Motorcontrollers bei allen CoDeSys-
Funktionsbausteinen ..._PRM_DIRMP vorhanden.
Ein-/Ausgang Typ Motorcontroller

DampingTime DINT SFC_LAC


ActDampingTime DINT SFC_LACI

Load DINT SFC_LAC


SFC_LACI
ActLoad DINT

25
Die Bibliothek Festo_Motion.lib

Funktionsbaustein xxx_PRM_KO
Der Baustein xxx-PRM-KO überträgt eine Liste von Kommunikationsobjekten (KO) an den jeweiligen
Motorcontroller.

Bild: Beispiel Funktionsbaustein CMMP_AS_PRM_KO

Hinweis
Die Verwendung des Funktionsbausteins xxx-PRM_KO schließt die gleichzeitige Kommunikation
mit dem Festo Configuration Tool (FCT) aus.

Ein- und Ausgänge


Folgende Tabelle zeigt die Aus- und Eingänge, die der Funktionsbaustein xxx_PRM_KO zur
Parametrierung eines Motorcontrollers besitzt.
Ein- / Ausgang Typ Beschreibung

Execute BOOL Start Übertragung


0->1: Durch eine steigende Flanke wird die Übertragung
eines Parameters gestartet
Write BOOL Lesen/Schreiben
= 0: Kommunikationsobjekt lesen
= 1: Kommunikationsobjekt schreiben
KO DINT Kommunikationsobjekt
Nähere Informationen über Kommunikationsobjekte erhalten
Sie beim Service von Festo.
ParamValueWR DINT Parameterwert beim Schreiben eines Kommunikationsobjekts
DATA_REF VAR_IN_OUT FPC Datenstruktur
Datenstruktur, die vom FB ..._PRM_INIT zur Verfügung
gestellt wird
Done BOOL Übertragungsstatus
= 0: Übertragung wurde nicht ausgelöst
= 1: Übertragung wurde ausgelöst
Err BOOL Fehler
= 0: kein Fehler bei der Übertragung eines Parameters
= 1: Fehler bei der Übertragung eines Parameters
ErrStr STRING(80) Ausgabe einer Fehlermeldung als String
ParamValueRD DINT Parameterwert beim Lesen eines Kommunikationsobjekts
RETVAL UINT Aktueller Status der FB-Instanz
Bei Verwendung mehrerer Instanzen des FB’s wird der
aktuelle interne Status des jeweiligen FB’s ausgegeben.

26
Die Bibliothek Festo_Motion.lib

Funktionsbaustein xxx_CAM_PRM_CAMNUMBER
Mit dem Baustein xxx_CAM_PRM_CAMNUMBER können Sie:
– eine Kurvenscheibe über die Vorgabe der Kurvenscheibennummer im Antrieb auswählen
– die aktuelle Kurvenscheibe mit Hilfe des Lesebefehls ausgeben lassen.

Die Funktion zur Verwendung von Kurvenscheiben ist optional. Bitte wenden Sie sich an den
Service von Festo.

Bild: Beispiel Funktionsbaustein CMMP_AS_CAM_PRM_CA;MI;BER

Hinweis
Führen Sie nach Zurücksetzen der Steuerung die Funktion erneut durch.

Ein- und Ausgänge


Folgende Tabelle zeigt die Aus- und Eingänge, die der Funktionsbaustein xxx_CAM_PRM_CAMNUMBER
zur Parametrierung eines Motorcontrollers besitzt.
Ein- / Ausgang Typ Beschreibung

Execute BOOL Start Übertragung


0->1: Durch eine steigende Flanke wird die Übertragung
eines Parameters gestartet
Write BOOL Lesen/Schreiben
= 0: PNU 700 Subindex 1 lesen
= 1: PNU 700 Subindex 1 schreiben
CamNumber DINT Vorwahl der Kurvenscheiben Nummer
DATA_REF VAR_IN_OUT FPC Datenstruktur
Datenstruktur, die vom FB ..._PRM_INIT zur Verfügung
gestellt wird
Done BOOL Übertragungsstatus
= 0: Übertragung wurde nicht ausgelöst
= 1: Übertragung wurde ausgelöst
Err BOOL Fehler
= 0: kein Fehler bei der Übertragung eines Parameters
= 1: Fehler bei der Übertragung eines Parameters
ErrStr STRING(80) Ausgabe einer Fehlermeldung als String
ActCamNumber DINT Nummer der aktuell ausgewählten Kurvenscheibe
RETVAL UINT Aktueller Status der FB-Instanz
Bei Verwendung mehrerer Instanzen des FB’s wird der
aktuelle interne Status des jeweiligen FB’s ausgegeben.

27
Die Bibliothek Festo_Motion.lib

1.10 Beispiele
1.10.1 Beispiel zur Ansteuerung eines Festo Motorcontrollers
Festo Motorcontroller CMMP-AS mit zugehörigem Funktionsbausten CMMP_AS_CTRL

Bild: Beispiel Funktionsbaustein CMMP_AS_CTRL

Mit diesem Baustein ist die Ansteuerung des Motorcontrollers vom Typ CMMP-AS-... in folgenden vier
Kombinationen aus Betriebs- und Regelungsart möglich:
– Satzselektion
– Direktbetrieb Positionsregelung
– Direktbetrieb Drehmomentregelung
– Direktbetrieb Drehzahlregelung

Die Übernahme der eingestellten Betriebs- und Regelungsart wird erst durch Start einer
Bewegung, d.h. durch eine steigende Flanke am Eingang "StartTask" übernommen und angezeigt.

Voraussetzungen für Betriebsbereitschaft


In Abhängigkeit des jeweiligen Motorcontrollers sind dort ggf. zusätzliche Eingangssignale erforderlich, z.
B. an DIN_4, DIN_5, DIN_13, etc. Detaillierte Informationen entnehmen Sie der Beschreibung des
verwendeten Motorcontrollers.
– Motorcontroller ist eingeschaltet
– Lastspannung ist vorhanden
– Steuerhoheit liegt bei der SPS

Herstellen der Betriebsbereitschaft


Aktion des Anwenders Rückmeldung

-- SupplyVoltagePresent = 1
EnableDrive = 1 DriveEnabled = 1
MC = 1
Stop = 1 Ready = 1
Halt = 1 HaltActive = 0

28
Die Bibliothek Festo_Motion.lib

Referenzfahrt
Aktion des Anwenders Rückmeldung

StartHoming = 0->1 AckStart = 1


MC = 0
DriveIsMoving = 1
HaltActive = 1
-- DriveIsMoving = 0,
(Abschluss der Referenzfahrt) MC = 1,
DriveIsReferenced = 1,
HaltActive = 1

Einstellung und Betrieb "Satzselektion"


Aktion des Anwenders Rückmeldung

OPM = 0 OPMString = 'Record Mode selected'


StateOPMString = 'Record Mode active'
StateOPM = 0
RecordNo = 1 --
StartTask 0->1 OPMString = 'Record Mode selected'
StateOPMString = 'Record Mode active'
StateOPM = 0
AckStart = 1
MC = 0
DriveIsMoving = 1
ActualRecordNo = 1
ActualPosition = ...
-- DriveIsMoving = 0
(Abschluss der Positionierung) MC = 1

Einstellung und Betrieb "Direktbetrieb Positionsregelung"


Aktion des Anwenders Rückmeldung

OPM = 1 OPMString = 'Directmode Positioncontrol selected'


StateOPMString = 'Directmode Positioncontrol active'
StateOPM = 1
SetValueVelocity = ... --
SetValuePosition = ... --
StartTask = 1 OPMString = 'Directmode Positioncontrol active'
StateOPMString = 'Directmode Positioncontrol active'
StateOPM = 1
AckStart = 1
MC = 0
DriveIsMoving = 1
ActualVelocity = ...
ActualPosition = ...
-- DriveIsMoving = 0
(Abschluss der Positionierung) MC = 1

29
Die Bibliothek Festo_Motion.lib

Einstellung und Betrieb "Direktbetrieb Drehmomentregelung"


Aktion des Anwenders Rückmeldung

OPM = 5 OPMString = 'Directmode Forcecontrol selected'


StateOPMString = vorherige Betriebs- und Regelungsart als
STRING
StateOPM = vorherige Betriebs- und Regelungsart als INT
SetValueForce = ... --
StartTask = 1 OPMString = 'Directmode Forcecontrol active'
StateOPMString = 'Directmode Forcecontrol active'
StateOPM = 5
AckStart = 1
MC = 0
DriveIsMoving = 1
ActualForce = ...
ActualPosition = ...
-- DriveIsMoving = 0
(Erreichen der MC = 1
Drehmomentvorgabe)

Einstellung und Betrieb "Direktbetrieb Drehzahlregelung"


Aktion des Anwenders Rückmeldung

OPM = 9 OPMString = 'Directmode Velocitycontrol selected'


StateOPMString = vorherige Betriebs- und Regelungsart als
STRING
StateOPM = vorherige Betriebs- und Regelungsart als INT
SetValueRotRamp = ... --
SetValueRotSpeed = ... --
StartTask = 1 OPMString = 'Directmode Velocitycontrol active'
StateOPMString = 'Directmode Velocitycontrol active'
StateOPM = 9
AckStart = 1
MC = 0
DriveIsMoving = 1
ActualRotRamp = ...
ActualRotSpeed = ...
-- DriveIsMoving = 0
(Erreichen der Drehzahlvorgabe) MC = 1

30
Die Bibliothek Festo_Motion.lib

1.10.2 Beispiel zur Parametrierung eines Festo Motorcontrollers


Festo Motorcontroller CMMP-AS mit zugehörigem Funktionsbausten CMMP_AS_PRM_SINGLE.

Bild: Beispiel Funktionsbaustein CMMP_AS_PRM_SINGLE

Mit diesem Baustein ist die Parametrierung des Motorcontrollers vom Typ CMMP-AS-... in allen vier
Kombinationen aus Betriebs- und Regelungsart möglich:
– Satzselektion
– Direktbetrieb Positionsregelung
– Direktbetrieb Drehmomentregelung
– Direktbetrieb Drehzahlregelung

Hinweis
Eine Beschreibung der von den unterschiedlichen Motorcontrollern unterstützten Parametern
nach FHPP entnehmen Sie bitte der jeweiligen Produkt Dokumentation.

Voraussetzungen für Betriebsbereitschaft


In Abhängigkeit des jeweiligen Motorcontrollers sind dort ggf. zusätzliche Eingangssignale erforderlich, z.
B. an DIN_4, DIN_5, DIN_13, etc. Detaillierte Informationen entnehmen Sie der Beschreibung des
verwendeten Motorcontrollers.
– Motorcontroller ist eingeschaltet
– Lastspannung ist vorhanden
– Steuerhoheit liegt bei der SPS

Herstellen der Betriebsbereitschaft


Aktion des Anwenders Rückmeldung

-- SupplyVoltagePresent = 1

EnableDrive = 1 DriveEnabled = 1
MC = 1

Stop = 1 Ready = 1

Halt = 1 HaltActive = 0

Parameter Lesen (z. B. Referenzfahrtmethode)


Aktion des Anwenders Rückmeldung

Write = 0 Keine Rückmeldung


UpperLimit Lesen oberer Grenzwert
PNU = 1011 Keine Rückmeldung
Subindex = 1 Keine Rückmeldung
Execute = 0->1 Done = TRUE
Err = FALSE
ErrStr = 'no Error'
ActPNU = 1011
ActSubindex = 1
ParamValueRD = ...
RETVAL = 0

31
Die Bibliothek Festo_Motion.lib

Parameter Schreiben (z. B. Beschleunigung Referenzfahrtmethode)


AKtion des Anwenders Rückmeldung

Write = 1 Keine Rückmeldung


PNU = 1013 Keine Rückmeldung
Subindex = 1 Keine Rückmeldung
ParamValueWR = ... Keine Rückmeldung
Execute = 0->1 Done = TRUE
Err = FALSE
ErrStr = 'no Error'
ActPNU = 1013
ActSubindex = 1
ParamValueRD = ...
RETVAL = 0

Die mit dem Funktionsbaustein vom Typ ..._PRM_SINGLE in den Motorcontroller geschriebenen Werte
werden in einem flüchtigen Speicher abgelegt und sind nur solange gültig, bis die Steuerspannung von
24 V am Motorcontroller unterbrochen wird. In einen nicht flüchtigen Speicher können die Werte durch
Beschreiben der PNU 127 Subindex 2 mit dem Wert 1 dauerhaft übernommen werden.
Zur dauerhaften Übernahme von geschriebenen Parametern sind folgende Aktionen auszuführen:
Aktion des Anwenders Rückmeldung

Write = 1 Keine Rückmeldung


PNU = 127 Keine Rückmeldung
Subindex = 2 Keine Rückmeldung
ParamValueWR = 1 Keine Rückmeldung
Execute = 0->1 Done = TRUE
Err = FALSE
ErrStr = 'no Error'
ActPNU = 127
ActSubindex = 2
ParamValueRD = 0
RETVAL = 0

32
2 Glossar

C
COB-ID: Communication Object Identifier
Controller: Steuerelektronik, welche die Regelsignale auswertet und über die Leistungselektronik die
Spannungsversorgung für den Motor bereitstellt (Leistungselektronik + Regler +
Positioniersteuerung).

E
EDS-Datei: Electronic Data Sheet, elektronisches Datenblatt, das die Funktionalität und
Eigenschaften eines CANopen-Gerätes in standardisierter Form beschreibt.

F
Festo Configuration Tool (FCT): Inbetriebnahme-Software mit einheitlicher Projekt- und
Datenverwaltung für alle unterstützten Gerätetypen. Die speziellen Belange eines Gerätetyps
werden durch PlugIns mit den notwendigen Beschreibungen und Dialogen unterstützt.
Festo Handling und Positioning Profil (FHPP): Einheitliches Feldbus-Datenprofil für
Positioniersteuerungen von Festo.
Festo Parameter Channel (FPC): FHPP-spezifische PKW-Ausführung
FHPP: Einheitliches Feldbus-Datenprofil für Positioniersteuerungen von Festo (Festo Handling und
Positioning Profil)
FPC: FHPP-spezifische PKW-Ausführung (Festo Parameter Channel)

G
GSD-Datei: Geräte-Stammdaten-Datei in der alle spezifischen Eigenschaften des Slaves hinterlegt
sind (z. B. Anzahl der EAs, Anzahl der Diagnosebytes usw.).

K
Konsistenz: Ein Datenbereich, der als konsistent definiert ist, wird zusammenhängend, d. h. in einem
Buszyklus übertragen.

N
Node-ID: Dient zur eindeutigen Identifizierung eines Busteilnehmers

P
PDO: Process Data Object
PKE: Bestandteil des Parameterkanals (PKW), der die Auftrags- bzw. die Antwortkennung (AK) und
die Parameternummer (PNU) enthält.
PKW: Telegrammteil, der zur Übertragung von Parametern dient. PKW steht für Parameter-Kennung-
Wert (siehe auch "Festo Parameter Channel (FPC)")
PNU: Parameter, die sich über den Parameterkanal übertragen lassen, werden über die
Parameternummer (PNU) angesprochen. Die Parameternummer ist Bestandteil der
Parameterkennung (PKE) und dient zur Identifizierung bzw. Adressierung des jeweiligen
Parameters.
Positionierbetrieb (Profile Position mode): Betriebsmodus zur Ausführung eines Verfahrsatzes
oder eines direkten Positionierauftrags.
Projektnullpunkt (PZ): Maßbezugspunkt für alle Positionen in Positionieraufträgen (Project Zero
point). Der Projektnullpunkt bildet die Basis für alle absoluten Positionsangaben (z. B. in der
Verfahrsatztabelle oder bei direkter Steuerung über Steuerungs- bzw. Diagnose-Schnittstelle).
Bezugspunkt für den Projektnullpunkt ist der Achsennullpunkt. Beim MTR-DCI sind
Projektnullpunkt PZ und Achsennullpunkt AZ identisch.

33
Glossar

R
Referenzfahrt: Durch die Referenzfahrt wird die Referenzposition und damit der Ursprung des
Maßbezugssystems einer Achse festgelegt.
Referenzierung (Homing mode): Betriebsmodus, in dem eine Referenzfahrt durchgeführt wird.
Referenzierungsmethode: Methode zur Festlegung der Referenzposition: gegen Festanschlag
(Überstrom-/Geschwindigkeitsauswertung) oder mit Referenzschalter
Referenzpunkt (REF): Bezugspunkt für das inkrementale Messsystem. Der Referenzpunkt definiert
eine bekannte Lage bzw. Position innerhalb des Verfahrweges des Antriebs.

S
Subindex (IND): Bestandteil des Parameterkanals (PKW), der ein Element eines Array-Parameters
(Unterparameternummer) adressiert.

T
Target Support Package: Das Target Support Package ermöglicht die Installation von
Zielsystemspezifischen Dateien zur Ansteuerung von Festo CoDeSys Motorcontrollern. Das
Programm finden Sie im Startmenü unter "Programme" in der Auswahl "Festo Software\CoDeSys
V2.3 by Festo"
Teach-Betrieb (Teach mode): Betriebsmodus zur Einstellung von Positionen durch Anfahren der
Zielposition z. B. bei der Erstellung von Verfahrsätzen.
Tippbetrieb: Manuelles Verfahren in positive oder negative Richtung

V
Verfahrsatz: In der Verfahrsatztabelle definierter Fahrbefehl, der z. B. Zielposition, Positioniermodus,
Verfahrgeschwindigkeit und -beschleunigungen angibt.

34
3 Index
D P
Direktbetrieb................................................. 7 Parameterkanal ............................................ 7
F S
FHPP ........................................................... 7 Satzselektion ................................................ 7
Sicherheitshinweise zur Festo_Motion.lib..... 5

35