TS5065 | TwinCAT PLC Motion Control XFC NCI
Home


Vorwort

TS5065 | TwinCAT PLC Motion Control XFC NCI
Vorwort
Vorwort
Weiterführende Informationen
•
Hinweise zur Dokumentation
•
Sicherheitshinweise


Hinweise zur Dokumentation

Vorwort [image] Hinweise zur Dokumentation
Hinweise zur Dokumentation
Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs- und Automatisierungstechnik, das mit den geltenden nationalen Normen vertraut ist.
Zur Installation und Inbetriebnahme der Komponenten ist die Beachtung der Dokumentation und der nachfolgenden Hinweise und Erklärungen unbedingt notwendig.
Das Fachpersonal ist verpflichtet, für jede Installation und Inbetriebnahme die zu dem betreffenden Zeitpunkt veröffentliche Dokumentation zu verwenden.
Das Fachpersonal hat sicherzustellen, dass die Anwendung bzw. der Einsatz der beschriebenen Produkte alle Sicherheitsanforderungen, einschließlich sämtlicher anwendbaren Gesetze, Vorschriften, Bestimmungen und Normen erfüllt.
Disclaimer
Diese Dokumentation wurde sorgfältig erstellt. Die beschriebenen Produkte werden jedoch ständig weiter entwickelt.
Wir behalten uns das Recht vor, die Dokumentation jederzeit und ohne Ankündigung zu überarbeiten und zu ändern.
Aus den Angaben, Abbildungen und Beschreibungen in dieser Dokumentation können keine Ansprüche auf Änderung bereits gelieferter Produkte geltend gemacht werden.
Marken
Beckhoff®, TwinCAT®, EtherCAT®, Safety over EtherCAT®, TwinSAFE®, XFC®und XTS® sind eingetragene und lizenzierte Marken der Beckhoff Automation GmbH.
Die Verwendung anderer in dieser Dokumentation enthaltenen Marken oder Kennzeichen durch Dritte kann zu einer Verletzung von Rechten der Inhaber der entsprechenden Bezeichnungen führen.
Patente
Die EtherCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP1590927, EP1789857, DE102004044764, DE102007017835
mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.
Die TwinCAT Technologie ist patentrechtlich geschützt, insbesondere durch folgende Anmeldungen und Patente:
EP0851348, US6167425 mit den entsprechenden Anmeldungen und Eintragungen in verschiedenen anderen Ländern.
EtherCAT® ist eine eingetragene Marke und patentierte Technologie lizensiert durch die Beckhoff Automation GmbH, Deutschland
Copyright
© Beckhoff Automation GmbH & Co. KG, Deutschland.
Weitergabe sowie Vervielfältigung dieses Dokuments, Verwertung und Mitteilung seines Inhalts sind verboten, soweit nicht ausdrücklich gestattet.
Zuwiderhandlungen verpflichten zu Schadenersatz. Alle Rechte für den Fall der Patent-, Gebrauchsmuster- oder Geschmacksmustereintragung vorbehalten.


Sicherheitshinweise

Vorwort [image] Sicherheitshinweise
Sicherheitshinweise
Sicherheitsbestimmungen
Beachten Sie die folgenden Sicherheitshinweise und Erklärungen!
Produktspezifische Sicherheitshinweise finden Sie auf den folgenden Seiten oder in den Bereichen Montage, Verdrahtung, Inbetriebnahme usw.
Haftungsausschluss
Die gesamten Komponenten werden je nach Anwendungsbestimmungen in bestimmten Hard- und Software-Konfigurationen ausgeliefert. Änderungen der Hard- oder Software-Konfiguration, die über die dokumentierten Möglichkeiten hinausgehen, sind unzulässig und bewirken den Haftungsausschluss der Beckhoff Automation GmbH & Co. KG.
Qualifikation des Personals
Diese Beschreibung wendet sich ausschließlich an ausgebildetes Fachpersonal der Steuerungs-, Automatisierungs- und Antriebstechnik, das mit den geltenden Normen vertraut ist.
Erklärung der Symbole
In der vorliegenden Dokumentation werden die folgenden Symbole mit einem nebenstehenden Sicherheitshinweis oder Hinweistext verwendet. Die Sicherheitshinweise sind aufmerksam zu lesen und unbedingt zu befolgen!
GEFAHR
Akute Verletzungsgefahr!
Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, besteht unmittelbare Gefahr für Leben und Gesundheit von Personen!
WARNUNG
Verletzungsgefahr!
Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, besteht Gefahr für Leben und Gesundheit von Personen!
VORSICHT
Schädigung von Personen!
Wenn der Sicherheitshinweis neben diesem Symbol nicht beachtet wird, können Personen geschädigt werden!
Achtung
Schädigung von Umwelt oder Geräten
Wenn der Hinweis neben diesem Symbol nicht beachtet wird, können Umwelt oder Geräte geschädigt werden.
Hinweis
Tipp oder Fingerzeig
Dieses Symbol kennzeichnet Informationen, die zum besseren Verständnis beitragen.


Übersicht

Übersicht
Übersicht
Die Bibliothek TcNci_XFC erleichtert die zeitgenaue Erfassung von relativen Bahnwegen und die bahngenaue Ausgabe von Digitalsignalen in Verbindung mit EtherCAT-XFC-Klemmen. Die benötigten Ausgabe-Bausteine sind Bestandteil der TcMC2_XFC Bibliothek.
Voraussetzung ist eine hochgenaue Totzeitkompensation der Achsen, die ab TwinCAT 2.11 für EtherCAT- und Sercos-Antriebe zur Verfügung steht.
So kann jederzeit ein genauer Zusammenhang zwischen Zeit und relativer Bahnposition hergestellt werden.
Zur Berechnung der Zeitstempel bzw. Positionen stellt die Bibliothek verschiedene Funktionsbausteine bereit.
Um die Bibliothek in einem Projekt zu verwenden, müssen Sie zusätzlich folgende Bibliotheken mit einschließen:
TcNci.lib (enthält die Struktur des zyklischen Kanal-Interface)
TcMc2_XFC.lib (enthält die benötigten Ausgabebausteine für die Ansteuerung der XFC-Ausgangsklemmen, sowie weitere wiederverwendete Strukturen)
TcMC2.lib (Wiederverwendete Strukturen)


Totzeitkompensation

Totzeitkompensation
Totzeitkompensation
Voraussetzung für die hochgenaue Umrechnung von Positionen in Zeiten und umgekehrt ist eine exakte Totzeitkompensation der Achsen. Ab TwinCAT 2.11 steht eine solche Totzeitkompensation für EtherCAT- und Sercos-Achsen zur Verfügung, die weitestgehend automatisch arbeitet. Dennoch kann eine manuelle Konfiguration notwendig sein, um beispielsweise antriebsinterne Totzeiten auszugleichen.
Unterstützung der Distributed Clocks
Die Unterstützung der Distributed Clocks muss bei EtherCAT-Antrieben zunächst wie folgt aktiviert werden:
1.
Rufen Sie den Dialog EtherCAT "Advanced Settings" des Antriebs auf.
sysman ax5000 advanced.gif
2.
Aktivieren Die den Schalter "Include DC Shift Times"
⇨
Die Zeitinformationen in den Info-Daten ("InfoData") des Antriebs zur Verfügung gestellt und später mit der NC-Achse verknüpft.
sysman ax5000 shifttimes.gif
"DcInputShift" ist die Zeit, die benötigt wird, um Statusinformationen, wie z. B. die Istposition eines Antriebs in die Steuerung, zu übertragen. Also die Zeit zwischen der Erfassung und der Auswertung dieser Daten.
"DcOutputShift" ist die Zeit für die Ausgabe der Prozessdaten an den Antrieb, d.h. für den Zeitverzug zwischen Berechnung und Wirkung dieser Daten.
Die Zeitinformationen werden dynamisch vom System bereitgestellt und werden von der NC zur Totzeitkompensation einer Achse verwendet.
Für Sercos-Achsen werden die Zeiten DcInputShift und DcOutputShift von der Sercos-Karte zur Verfügung gestellt und müssen nicht konfiguriert werden. Beim Verknüpfen eines Antriebs mit einer NC-Achse werden diese Zeiten ebenfalls verknüpft.
sysman sercos dcshift.gif
Kompensation der Encoder-Totzeit
Die Totzeitkompensation für die Datenerfassungsseite aktivieren Sie auf dem Reiter "Time Compensation" des Achs-Encoders aktiviert. Dadurch wird die vom System bereit gestellte Totzeit aus DcInputShift zur Kompensationsberechnung verwendet.
In besonderen Fällen, wenn es beispielsweise durch die verwendete Hardware zu zusätzlichen Totzeiten kommt, kann es notwendig werden, weitere Zeiten zu konfigurieren.
Der Wert "Encoder Delay in Cycles" gibt zusätzliche Verzögerungen um ganze I/O-Zyklen an. Diese Zeit ist demnach keine feste Größe, sondern ändert sich mit der Zykluszeit.
Der Wert "Additional Encoder Delay" ist ein fester Zeitwert in µs, der durch die verwendete Hardware verursacht wird.
Kompensation der Antriebs-Totzeit
Die Totzeitkompensation in Ausgaberichtung aktivieren Sie auf dem Reiter "Time Compensation" des Drives der NC-Achse. Dadurch wird die vom System bereitgestellte Zeit DcOutputShift zur Kompensationsberechnung verwendet.
Auch hier können in besonderen Fällen weitere Zeiten konfiguriert werden.
Der Wert "Task Delay in Cycles" wird durch die Einstellung der Taskkonfiguration verursacht. Abhängig vom eingestellten Timing der Tasks kann sich die Totzeit um einen Zyklus verlängern.
Der Wert "Drive Delay in Cycles" gibt zusätzliche Verzögerungen um ganze I/O-Zyklen an, die durch den Antrieb verursacht werden.
Der Wert "Additional Drive Delay" ist ein fester Zeitwert in µs, der durch die verwendete Hardware verursacht wird.
Auswirkung der Totzeitkompensation
Durch die Totzeitkompensation werden alle zyklisch mit der SPS ausgetauschten Daten der NC (NcToPlc) auf den aktuellen Zeitpunkt umgerechnet. Insbesondere Istposition, Sollposition und Schleppfehler der Achse beziehen sich auf den gerade aktuellen Zeitpunkt und spiegeln die physikalische Position der Achse zu diesem Zeitpunkt wider. Sie können damit durch die SPS für weitere hochgenaue Zeit- und Positionsberechnungen herangezogen werden. (Siehe insbesondere die Basisfunktionen XFC_GetCurDcTaskTime, XFC_TimeOfPathPosition und XFC_PathPositionAtTime.)


Basisfunktionen

Basisfunktionen
Basisfunktionen
Weiterführende Informationen
•
XFC_PathPositionAtTime
•
XFC_TimeOfPathPosition
•
XFC_TimeToPathPosition


XFC_PathPositionAtTime

Basisfunktionen [image] XFC_PathPositionAtTime
XFC_PathPositionAtTime
XFC_PathPositionAtTime berechnet einen relativen Bahnweg, zu einem gegebenen Zeitpunkt bezogen auf die aktuelle Bahnposition.
Die Funktion extrapoliert den Bahnweg bezogen auf die aktuelle Dynamik. Eine genaue Extrapolation ist nur über einen kurzen Zeitraum möglich, da sich die Dynamik der Gruppe ändern kann.
Der Funktionsbaustein benötigt genau einen Aufruf, um das Ergebnis bereitzustellen. Er kann also ähnlich wie eine Funktion verwendet werden, gibt aber neben dem relativen Bahnweg eventuell auch einen Fehler zurück. Dieser Fehler muss ausgewertet werden, um sicherzustellen, dass der berechnete Bahnweg gültig ist.
Eingänge
VAR_INPUT
GrpId : UDINT;
DcTime : T_DCTIME32;
Options : ST_NcTimeConversionOptions;
END_VAR
GrpId | Gruppen-Id der Nci-Gruppe. Hierüber wird die angefragte Nci-Gruppe eindeutig im System identifiziert.
DcTime | Distributed Clock System Time. DcTime enthält die unteren 32 Bit der vollständigen DcTime und deckt damit einen Zeitbereich von +/- 2 Sekunden um den aktuellen Zeitpunkt ab. Um einen möglichst genauen Bahnweg zu berechnen, sollte die Zeit sehr nahe an der aktuellen Zeit liegen, also möglichst nur wenige SPS- bzw. NC-Zyklen in der Zukunft oder in der Vergangenheit.
Options | Datenstruktur mit Optionen für die Extrapolation des relativen Bahnweges.
Options. | SubIndex | nicht implementiert
Options. | InterpolationOptions | 0: Die Extrapolation des relativen Bahnweges wird mit der aktuellen Bahngeschwindigkeit durchgeführt, ohne die aktuelle Bahnbeschleunigung zu berücksichtigen. 1: Die Bahnbeschleunigung der Achse wird in die Extrapolation des relativen Bahnweges einbezogen.
Options. | CompensationTime | zusätzliche Kompensationszeit.
Ausgänge
VAR_OUTPUT
PathPosition : LREAL;
Error : BOOL;
ErrorID : UDINT;
END_VAR
PathPosition | Extrapolierter relativer Bahnweg, bis zum vorgegebenen Zeitpunkt DcTime.
Error | Wird im Fehlerfall TRUE.
ErrorID | Liefert bei einem gesetzten Error-Ausgang die Fehlernummer


XFC_TimeOfPathPosition

Basisfunktionen [image] XFC_TimeOfPathPosition
XFC_TimeOfPathPosition
XFC_TimeOfPathPosition berechnet den Zeitpunkt, zu dem eine Nci-Gruppe einen vorgegebenen relativen Bahnweg zurückgelegt hat bzw. haben wird.
Die Funktion extrapoliert den Zeitpunkt bezogen auf die aktuelle Bahnposition und Dynamik. Eine genaue Extrapolation ist nur über einen kurzen Zeitraum möglich, da sich die Dynamik der Nci-Gruppe ändern kann.
Der Funktionsbaustein benötigt genau einen Aufruf, um das Ergebnis bereitzustellen. Er kann also ähnlich wie eine Funktion verwendet werden, gibt aber neben der Zeit eventuell auch einen Fehler zurück. Dieser Fehler muss ausgewertet werden, um sicherzustellen, dass die berechnete Zeit DcTime gültig ist.
Eingänge
VAR_INPUT
GrpId : UDINT;
PathPosition : LREAL;
Options : ST_NcTimeConversionOptions;
END_VAR
GrpId | Gruppen-Id der Nci-Gruppe. Hierüber wird die angefragte Nci-Gruppe eindeutig im System identifiziert.
PathPosition | Relativer Bahnweg
Options | Datenstruktur mit Optionen für die Extrapolation des relativen Bahnweges.
Options. | SubIndex | nicht implementiert
Options. | InterpolationOptions | 0: Die Extrapolation des relativen Bahnweges wird mit der aktuellen Bahngeschwindigkeit durchgeführt, ohne die aktuelle Bahnbeschleunigung zu berücksichtigen. 1: Die Bahnbeschleunigung der Achse wird in die Extrapolation des relativen Bahnweges einbezogen.
Options. | CompensationTime | zusätzliche Kompensationszeit
Ausgänge
VAR_OUTPUT
DcTime : T_DCTIME32;
Error : BOOL;
ErrorID : UDINT;
END_VAR
DcTime | Distributed Clock System Time, zu der der relative Bahnweg PathPosition zurückgelegt sein wird bzw. zu der dieser durchfahren wurde. DcTime enthält die unteren 32 Bit der vollständigen DcTime und deckt damit einen Zeitbereich von +/- 2 Sekunden um den aktuellen Zeitpunkt ab.
Error | Wird im Fehlerfall TRUE.
ErrorID | Liefert bei einem gesetzten Error-Ausgang die Fehlernummer


XFC_TimeToPathPosition

Basisfunktionen [image] XFC_TimeToPathPosition
XFC_TimeToPathPosition
XFC_TimeToPathPosition berechnet die Zeitdauer, innerhalb der eine Nci-Gruppe einen relativen Bahnweg zurückgelegt hat bzw. die seit diesem vergangen ist.
Die Funktion extrapoliert den Zeitpunkt bezogen auf die aktuelle Bahnposition und Dynamik. Eine genaue Extrapolation ist nur über einen kurzen Zeitraum möglich, da sich die Dynamik der Gruppe ändern kann.
Der Funktionsbaustein benötigt genau einen Aufruf, um das Ergebnis bereitzustellen. Er kann also ähnlich wie eine Funktion verwendet werden, gibt aber neben der Zeit eventuell auch einen Fehler zurück. Dieser Fehler muss ausgewertet werden, um sicherzustellen, dass die berechnete Zeitdauer gültig ist.
Eingänge
VAR_INPUT
GrpId : UDINT;
PathId : UDINT;
PathPosition : LREAL;
Options : ST_NcTimeConversionOptions;
END_VAR
GrpId | Gruppen-Id der Nci-Gruppe. Hierüber wird die angefragte Nci-Gruppe eindeutig im System identifiziert.
PathId | Eindeutige, kontinuierlich über den Bahnverlauf steigende Id die zum relativen Bahnweg gehört.
PathPosition | Relativer Bahnweg
Options | Datenstruktur mit Optionen für die Extrapolation des relativen Bahnweges.
Options. | SubIndex | nicht implementiert
Options. | InterpolationOptions | 0: Die Extrapolation des relativen Bahnweges wird mit der aktuellen Bahngeschwindigkeit durchgeführt, ohne die aktuelle Bahnbeschleunigung zu berücksichtigen. 1: Die Bahnbeschleunigung der Achse wird in die Extrapolation des relativen Bahnweges einbezogen.
Options. | CompensationTime | zusätzliche Kompensationszeit.
Ausgänge
VAR_OUTPUT
Duration : DINT;
TimeOfPosition : T_DCTIME32;
Error : BOOL;
ErrorID : UDINT;
END_VAR
Duration | Zeitdauer in Nanosekunden, nach der der relative Bahnweg zurückgelegt sein wird (> 0) bzw. die seit diesem vergangen ist (< 0). Duration ist ein Differenzwert aus zwei Variablen des Typs T_DCTIME32
TimeOfPosition | Distributed Clock System Time zu der der relative Bahnweg zurückgelegt sein wird bzw. wurde. DcTime enthält die unteren 32 Bit der vollständigen DcTime und deckt damit einen Zeitbereich von +/- 2 Sekunden um den aktuellen Zeitpunkt ab.
Error | Wird im Fehlerfall TRUE.
ErrorID | Liefert bei einem gesetzten Error-Ausgang die Fehlernummer


Nockenschaltwerk

Nockenschaltwerk
Nockenschaltwerk
Weiterführende Informationen
•
XFC_PathPositionCam
•
MC_PathDigitalCamSwitch_MultiEdge


XFC_PathPositionCam

Nockenschaltwerk [image] XFC_PathPositionCam
XFC_PathPositionCam
XFC_PathPositionCam realisiert eine Bahnnocke, die einen digitalen Ausgang bahnabhängig ein- und ausschaltet.
Im Gegensatz zum digitalen Nockenschaltwerk MC_PathDigitalCamSwitch_MultiEdge schaltet der Funktionsbaustein genau eine Nocke auf einer digitalen Ausgangsspur. Der Baustein ist damit einfacher parametrierbar, kann aber nicht eingesetzt werden, wenn mehrere Nocken auf einer Ausgangsspur notwendig sind.
Die Output-Datenstruktur enthält neben dem Schaltzustand des digitalen Ausgangs genaue Zeitinformationen über die nächsten Schaltvorgänge.
Mit dieser Information kann die eigentliche Ausgabe an einer XFC-Ausgangsklemme mit einem nachgeschalteten Funktionsbaustein erfolgen (XFC_EL2252 oder XFC_EL2262).
Eingänge
VAR_INPUT
HParam : UDINT;
FirstPathId : UDINT;
LastPathId : UDINT;
FirstOnPathPosition : LREAL;
LastOnPathPosition : LREAL;
OnCompensation : LREAL;
OffCompensation : LREAL;
Options : ST_CamSwitchOptions;
END_VAR
HParam | H_parameterwert der mit dem Schaltzustand korrespondiert..
FirstPathId | Eindeutige, kontinuierlich über den Bahnverlauf steigende Id die zum relativen Bahnweg bis zum Einschalten der Nocke gehört.
LastPathId | Eindeutige, kontinuierlich über den Bahnverlauf steigende Id die zum relativen Bahnweg bis zum Ausschalten der Nocke gehört.
FirstOnPathPosition | Relativer Bahnweg bis zum Einschalten der Nocke.
LastOnPathPosition | Relativer Bahnweg bis zum Ausschalten der Nocke.
OnCompensation | Kompensationszeit für die steigende Flanke der Nocke in [s]. Der Schaltzeitpunkt wird bei negativen Werten von OnCompensation vorgezogen und sonst verzögert. Der hier parametrierte Wert OnCompensation hat Vorrang vor TRACK_REF
OffCompensation | Kompensationszeit für die fallende Flanke der Nocke in [s]. Der Schaltzeitpunkt wird bei negativen Werten von OffCompensation vorgezogen und sonst verzögert. Der hier parametrierte Wert OffCompensation hat Vorrang vor TRACK_REF
Options | Optionale Parameter
Options. | EncoderIndex | Wenn mehr als ein Encoder mit der Achse Verbunden ist, kann der Encoder-Index [0..9] hier festgelegt werden. Der erste Encoder hat den Index 0.
Options. | UseAcceleration | UseAcceleration kann TRUE gesetzt werden, um die Beschleunigung der Achse in die Positions-Berechnungen mit einzubeziehen. UseAcceleration kann von Vorteil sein, wenn die Sollwerte der Beschleunigung verwendet werden können. Bei Encoder-Achsen, die ein verrauschtes Positionssignal liefern, ist UseAcceleration eventuell von Nachteil, da auch die Beschleunigung fehlerhaft ist.
Ein/Ausgänge
VAR_IN_OUT
NciToPlc : NciChannelToPlc;
Output : OUTPUT_REF;
END_VAR
NciToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen
Output | Die Datenstruktur Output enthält den berechneten Zustand des digitalen Ausgangs und die zugehörigen Zeitstempel für die Ausgabe an einer digitalen XFC Ausgangsklemme


MC_PathDigitalCamSwitch_MultiEdge

Nockenschaltwerk [image] MC_PathDigitalCamSwitch_MultiEdge
MC_PathDigitalCamSwitch_MultiEdge
MC_PathDigitalCamSwitch_MultiEdge ist ein digitales Nockenschaltwerk mit einer oder mehreren Nocken auf einer digitalen Ausgabespur. Der Funktionsbaustein ist in der Lage mehrere Schaltvorgänge während eines SPS-Zyklus durchzuführen. Die Schaltvorgänge werden durch Positionsnocken definiert. Weitere Ausgabespuren werden mit unabhängigen Instanzen des Funktionsbausteins realisiert.
Die Output-Datenstruktur enthält neben der Schaltzustände des digitalen Ausgangs genaue Zeitinformationen über die nächsten Schaltvorgänge. Mit dieser Information kann die eigentliche Ausgabe an einer XFC-Multitimestamp-Ausgangsklemme mit einem nachgeschalteten Funktionsbaustein erfolgen (XFC_EL1259_MultiEdge, XFC_EL2212_MultiEdge, XFC_EL2262_MultiEdge oder XFC_EL2258_MultiEdge).
HINWEIS! Zeitnocken und Bremsnocken können mit dem Baustein MC_PathDigitalCamSwitch_MultiEdge nicht verwendet werden. Klemmen ohne Multitimestamp-Funktionalität sind in Verbindung mit diesem Baustein nicht geeignet.
Eingänge
VAR_INPUT
Enable : BOOL;
HParam : DINT;
Options : ST_CamSwitchOptions;
END_VAR
Enable | Über den Eingang Enable wird das Nockenschaltwerk aktiviert. Der Ausgangszustand bleibt unverändert, solange Enable=FALSE ist.
HParam | H-Parameterwert, der mit dem Schaltzustand TRUE korrespondiert.
Options | Optionale Parameter
Options. | EncoderIndex | Wenn mehr als ein Encoder mit der Achse Verbunden ist, kann der Encoder-Index [0..9] hier festgelegt werden. Der erste Encoder hat den Index 0.
Options. | UseAcceleration | UseAcceleration kann TRUE gesetzt werden, um die Beschleunigung der Achse in die Positions-Berechnungen mit einzubeziehen. UseAcceleration kann von Vorteil sein, wenn die Sollwerte der Beschleunigung verwendet werden können. Bei Encoder-Achsen, die ein verrauschtes Positionssignal liefern, ist UseAcceleration eventuell von Nachteil, da auch die Beschleunigung fehlerhaft ist.
Ausgänge
VAR_OUTPUT
InOperation : BOOL;
Busy : BOOL;
Error : BOOL;
ErrorID : UDINT;
END_VAR
InOperation | InOperation ist TRUE, solange das Nockenschaltwerk aktiv ist und die Nockenspur gemäß der Nockenparametrierung berechnet wird.
Busy | Busy ist TRUE solange die Funktion des Bausteins nicht beendet ist.
Error | Wird im Fehlerfall TRUE.
ErrorID | Liefert bei einem gesetzten Error-Ausgang die Fehlernummer
Ein/Ausgänge
VAR_IN_OUT
NciToPlc : NciChannelToPlc
Switches : PATH_CAMSWITCH_REF;
Output : OUTPUT_REF_MULTIEDGE;
TrackOptions : TRACK_REF;
END_VAR
NciToPlc | Struktur des zyklischen Kanalinterfaces von der NCI zur SPS. Auf diese Struktur wird nur lesend zugegriffen.
Switches | Die Datenstruktur Switches enthält einen Verweis auf die Parametrierung aller Nocken auf der Nockenspur.
Output | Die Datenstruktur Output enthält die berechneten Zustände des digitalen Ausgangs und die zugehörigen Zeitstempel für die Ausgabe an einer digitalen XFC Ausgangsklemme.
TrackOptions | Die Datenstruktur TrackOptions enthält die Parametrierung der Nockenspur.


Datentypen

Datentypen
Datentypen
Weiterführende Informationen
•
PATH_CAMSWITCH_REF
•
MC_PathCamSwitch


PATH_CAMSWITCH_REF

Datentypen [image] PATH_CAMSWITCH_REF
PATH_CAMSWITCH_REF
Der Datentyp PATH_CAMSWITCH_REF verweist auf eine Datenstruktur mit Nockenparametern für ein digitales Nockenschaltwerk MC_PathDigitalCamSwitch_MultiEdge .
TYPE PATH_CAMSWITCH_REF :
STRUCT
NumberOfSwitches : UDINT;
pSwitches : POINTER TO MC_PathCamSwitch;
SizeOfSwitches : UDINT;
END_STRUCT
END_TYPE
Die eigentliche Datenstruktur zur Parametrierung eines digitalen Nockenschaltwerkes ist üblicherweise ein ARRAY OF MC_PathCamSwitch. PATH_CAMSWITCH_REF verweist mit einem POINTER auf diese Struktur und definiert eindeutig die Größe der Struktur und die Anzahl der tatsächlich verwendeten Nocken.
Eine Variable des Typs PATH_CAMSWITCH_REF wird, wie in dem folgenden Beispiel gezeigt, initialisiert:
VAR
CamSwitchArray : ARRAY[1..3] OF MC_PathCamSwitch;
CamSwitchRef : PATH_CAMSWITCH_REF;
END_VAR

(* real number of defined digital cams *)
CamSwitchRef.NumberOfSwitches := 1; (* 1..3 *)
(* pointer to the digital cam data array *)
CamSwitchRef.pSwitches := ADR(CamSwitchArray);
(* maximum size of the digital cam data array *)
CamSwitchRef.SizeOfSwitches := SIZEOF(CamSwitchArray);


MC_PathCamSwitch

Datentypen [image] MC_PathCamSwitch
MC_PathCamSwitch
Der Datentyp MC_PathCamSwitch enthält alle Parameter einer digitalen Nocke für ein digitales Nockenschaltwerk MC_PathDigitalCamSwitch_MultiEdge.
TYPE MC_PathCamSwitch :
STRUCT
FirstOnPosition : LREAL;
LastOnPosition : LREAL;
FirstPathId : UDINT;
LastPathId : UDINT;
CamSwitchMode : E_CamSwitchMode;
Duration : LREAL;
END_STRUCT
END_TYPE
Die Datenstruktur zur Parametrierung eines digitalen Nockenschaltwerks ist üblicherweise ein ARRAY OF MC_PathCamSwitch. Eine weitere Struktur PATH_CAMSWITCH_REF verweist auf diese Struktur.
FirstOnPosition | Erste Position, ab der die Nocke eingeschaltet ist.
LastOnPosition | Letzte Position, bis zu der die Nocke eingeschaltet ist. Die Nockenfunktion ist invertiert, wenn LastOnPosition < FirstOnPosition. LastOnPosition wird bei Zeitnocken nicht verwendet.
FirstPathId | Eindeutige, kontinuierlich über den Bahnverlauf steigende Id die zum relativen Bahnweg bis zum Einschalten der Nocke gehört.
LastPathId | Eindeutige, kontinuierlich über den Bahnverlauf steigende Id die zum relativen Bahnweg bis zum Ausschalten der Nocke gehört.
CamSwitchMode | Typ der digitalen Nocke (Positionsnocke, Zeitnocke oder Bremsnocke).
Duration | Duration definiert die Einschaltdauer der Nocke in [s] und wird ausschließlich bei Zeitnocken verwendet.
TYPE E_CamSwitchMode :
(
CAMSWITCHMODE_POSITION, (* position cam *)
CAMSWITCHMODE_TIME, (* time cam *)
CAMSWITCHMODE_BREAK (* break cam *)
);
END_TYPE