MC_DigitalCamSwitch

Funktionsbeschreibung

Dieser Funktionsbaustein ist die digitale Entsprechung einer Kurvenschalteinheit auf einer mechanischen Welle oder Schiene. Der Funktionsbaustein stellt bis zu 32 Tracks bereit. Sobald eine vorgegebene Position erreicht ist, wird ein logischer und/oder physischer Ausgang ausgelöst.

Die Tracks werden als ein Array von 32 booleschen Werten dargestellt. Auf diesen Tracks können insgesamt bis zu 255 Schaltereignisse angeordnet werden.

In MC_CamSwitch_Ref (Alias der Struktur ST_CamSwitch_Ref der MotionInterface-Bibliothek) legen Sie die Anzahl der Schaltereignisse (NumberOfSwitches) und einen Zeiger auf ein Array von Schaltereignissen (ST_CamSwitch) fest. Der Wert für den Parameter NumberOfSwitches muss der Anzahl der Einträge ST_CamSwitch im Array entsprechen.

Ein Schaltereignis wird durch die Struktur ST_CamSwitch der MotionInterface-Bibliothek dargestellt.

Der Funktionsbaustein MC_DigitalCamSwitch kann die Richtigkeit des Parameters NumberOfSwitches und die Richtigkeit der einzelnen Schaltereignisse im Array der Schaltereignisse, die mit Einträgen der Struktur ST_CamSwitch definiert sind, nicht überprüfen.

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
  • Stellen Sie sicher, dass der Wert des Parameters NumberOfSwitches gleich der Anzahl der Array-Einträge ist, die über ST_CamSwitch definierte Schaltereignisse enthalten.
  • Stellen Sie sicher, dass die Parametrierung jedes mit ST_CamSwitch definierten Schaltereignisses korrekt ist.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

Der Parameter TrackNumber der Struktur ST_CamSwitch gibt die Nummer des Tracks an, d. h. den Ausgang. Der maximale Wert ist 32.

Der Parameter Position der Struktur ST_CamSwitch gibt die Position des Tracks an, an dem das Schaltereignis in Benutzereinheiten ausgelöst werden soll.

Der Parameter AxisDirection der Struktur ST_CamSwitch gibt die Bewegungsrichtung an, in der das Schaltereignis ausgelöst werden soll. Die entsprechende Enumeration ET_AxisDirection liefert drei Werte:

  • Both (0): Das Schaltereignis wird bei Bewegungen in beide Bewegungsrichtungen ausgelöst.

  • Positive (1): Das Schaltereignis wird nur bei Bewegungen in positiver Bewegungsrichtung ausgelöst.

  • Negative (2): Das Schaltereignis wird nur bei Bewegungen in negativer Bewegungsrichtung ausgelöst.

Der Parameter CamSwitchMode der Struktur ST_CamSwitch gibt die Art der Umschaltung für das auszulösende Schaltereignis an. Die entsprechende Enumeration ET_CamSwitchMode liefert vier Werte:

  • On (0): Der Ausgang wird auf ON gesetzt, wenn die angegebene Position erreicht ist.

  • Off (1): Der Ausgang wird auf OFF gesetzt, wenn die angegebene Position erreicht ist.

  • Invert (2): Der Ausgang wird umgeschaltet, wenn die angegebene Position erreicht ist.

  • TimeBased (3): Der Ausgang wird für den über den Parameter Duration festgelegten Zeitraum auf ON gesetzt.

Über den Eingang TrackOptions des Funktionsbausteins können Sie eine Kompensationszeit für das Auslösen der Schaltereignisse über MC_Track_Ref festlegen (dies ist ein Alias der Struktur ST_Track_Ref der MotionInterface-Bibliothek). Jedes Element des Arrays für die Struktur ST_Track_Ref gibt die Kompensationszeit für den entsprechenden Track an. Ein Element des Arrays hat zwei Werte:

  • OnCompensation: Gibt die Kompensationszeit in Sekunden an, nach der der Ausgang auf ON gesetzt wird.

  • OffCompensation: Gibt die Kompensationszeit in Sekunden an, nach der der Ausgang auf OFF gesetzt wird.

Sie können positive und negative Werte für die Kompensationszeit verwenden, um eine positive oder negative Kompensation zu ermöglichen. Wenn CamSwitchMode auf Invert gesetzt ist, wird unabhängig vom vorherigen Status des Ausgangs nur der Wert für OnCompensation verwendet. Wenn CamSwitchMode auf TimeBased eingestellt ist, wird nur der Wert für OnCompensation verwendet (der Ausgang ON bleibt für die mit dem Parameter Duration für das Schaltereignis angegebene Zeit erhalten. Die Kompensation (neue Triggerposition) hängt von der Beschleunigung und der Geschwindigkeit zum Zeitpunkt der Berechnung ab: ((neue Triggerposition + Kompensationszeit) * Geschwindigkeit) + (0,5 * Beschleunigung * Kompensationszeit2). Bei einer Modulo-Achse kann sich die neue Triggerposition eines Schaltereignisses in der nächsten Modulo-Periode befinden. Wenn die neue Triggerposition eines Schaltereignisses über zwei Modulo-Perioden liegt, wird der Fehler EdgePositionOutOfTwoModuloRanges erkannt.

Über den Eingang EnableMask des Funktionsbausteins können Sie die vom Funktionsbaustein zu steuernden Tracks angeben. Mit dem Standardwert FFFFFFFF hex werden die Tracks vom Funktionsbaustein gesteuert. Wenn der Wert für EnableMask während der Laufzeit geändert wird, werden die Tracks, deren EnableMask-Wert 0 ist, nicht zurückgesetzt, aber die Tracks werden nicht mehr vom Funktionsbaustein gesteuert.

Beispiel mit sieben Schaltereignissen auf zwei Tracks auf einer Modulo-Achse gemäß der Definition in den Strukturen ST_CamSwitch_Ref und ST_CamSwitch:

Schaltereignis

TrackNumber CamSwitchMode Position AxisDirection Duration

S01

1

0 (On)

2000

1 (Positive)

-

S02

1

1 (Off)

3000

1 (Positive)

-

S03

1

0 (On)

4000

1 (Positive)

-

S04

1

1 (Off)

1000

1 (Positive)

-

S05

2

0 (On)

2500

2 (Negative)

-

S06

2

1 (Off)

3200

2 (Negative)

-

S07

2

3 (TimeBased)

3000

0 (Both)

1750 ms

Grafische Darstellung des Beispiels:

Die Bewegungsrichtung ist positiv, wie durch den Pfeil angezeigt.

Schaltereignisse S01, S02, S03 und S04 werden Track 1 mit dem Parameter TrackNumber zugewiesen, d. h. sie wirken auf Ausgang 1. Schaltereignisse S05, S06 und S07 werden Track 2 mit dem Parameter TrackNumber zugewiesen, d. h. sie wirken auf Ausgang 2.

Schaltereignis S01 wird an Position 2000 ausgelöst (CamSwitchMode = On). Schaltereignis S02 wird an Position 3000 ausgelöst (CamSwitchMode = Off).

Schaltereignis S03 wird an Position 4000 ausgelöst (CamSwitchMode = On). Modulo-Sprünge wirken sich nicht auf die Ausgänge aus. Ausgang 1 bleibt On bis zum nächsten Schaltereignis, unabhängig von einem Modulo-Sprung, der in der Zwischenzeit auftreten kann. Schaltereignis S04 wird an Position 1000 ausgelöst (CamSwitchMode = Off).

Der Parameter AxisDirection der Schaltereignisse S05 und S06 wird auf 2 (Negative) gesetzt, sodass diese Schaltereignisse im Beispiel nicht mit positiver Bewegungsrichtung ausgelöst werden.

Das Schaltereignis S07 wird an Position 3000 ausgelöst (CamSwitchMode = TimeBased) und bleibt für eine Dauer von 1750 ms gemäß der Einstellung im Parameter Duration aktiv.

Grafische Darstellung

Eingänge

Eingang

Datentyp

Beschreibung

Axis

Axis_Ref

Verweis auf die Achse, für die der Funktionsbaustein ausgeführt werden soll.

Switches

MC_CamSwitch_Ref

MC_CamSwitch_Ref (Alias der Struktur ST_CamSwitch_Ref der MotionInterface-Bibliothek) ermöglicht die Festlegung der Anzahl der Schaltereignisse (NumberOfSwitches) und eines Zeigers auf ein Array von Schaltereignissen (ST_CamSwitch). Die maximale Anzahl an Schaltereignissen beträgt 255.

Enable

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE.

Der Eingang Enable startet oder beendet die Ausführung eines Funktionsbausteins.

  • FALSE: Die Ausführung des Funktionsbausteins wurde beendet. Die Ausgänge Valid, Busy und Error werden auf FALSE gesetzt.

  • TRUE: Der Funktionsbaustein wird ausgeführt. Der Funktionsbaustein fährt mit der Ausführung fort, solange der Eingang Enable auf TRUE gesetzt ist.

EnableMask

DWORD

Standardwert: FFFFFFFF hex

Dieser Eingang legt die vom Funktionsbaustein zu steuernden Tracks fest. Mit dem Standardwert werden alle Tracks vom Funktionsbaustein gesteuert. Wenn der Wert für EnableMask während der Laufzeit geändert wird, werden die Tracks, deren EnableMask-Wert 0 ist, nicht zurückgesetzt, aber die Tracks werden nicht mehr vom Funktionsbaustein gesteuert.

TrackOptions

MC_Track_Ref

Dieser Eingang legt eine Kompensationszeit für das Auslösen der Schaltereignisse fest, die einem Track über MC_Track_Ref zugewiesen sind (dies ist ein Alias der Struktur ST_Track_Ref der MotionInterface-Bibliothek).

Ausgänge

Ausgang

Datentyp

Beschreibung

InOperation

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE.

  • FALSE: Der Funktionsbaustein berechnet nicht und die Schaltereignisse werden nicht berücksichtigt.

  • TRUE: Der Funktionsbaustein berechnet und die Schaltereignisse werden berücksichtigt.

Error

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE.

  • FALSE: Der Funktionsbaustein wird ausgeführt. Während der Ausführung wurde kein Fehler erkannt.

  • TRUE: Bei der Ausführung des Funktionsbausteins ist ein Fehler aufgetreten.

ErrorID

ET_Result

Diese Aufzählung stellt Diagnoseinformationen zur Verfügung.

Eingänge/Ausgänge

Eingang/Ausgang

Datentyp

Beschreibung

Outputs

ARRAY [1..32] OF BOOL

Das Array an diesem Ein-/Ausgang gibt die Tracks an.