MC_CustomJob

Funktionsbeschreibung

Dieser Funktionsbaustein ermöglicht die Steuerung einer Achse durch einen benutzerdefinierten Algorithmus, der die zyklische gesetzte Position, die Geschwindigkeit und die Beschleunigung der Achse berechnet.

Der von Ihnen zur Programmierung eines Bewegungsprofils erstellte Funktionsbaustein muss FB_CustomJobBase der MotionInterface-Bibliothek erweitern. Dann wird der Funktionsbaustein am Eingang CustomJob zur Verfügung gestellt.

Grafische Darstellung

Eingänge

Eingang

Datentyp

Beschreibung

Master

Axis_Ref

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

Kann unbelegt (nicht zugewiesen) bleiben, wenn bei dem benutzerdefinierten Auftrag (angegeben am Eingang CustomJob) eine Master-Achse verwendet wird.

Wurde eine Achse zugewiesen, erhält der Rückruf an den Benutzerfunktionsbaustein zur Definition des Bewegungsprofils die Bewegungswerte der Master-Achse. Andernfalls werden die Bewegungswerte der Master-Achse als null angegeben.

Axis

Axis_Ref

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

Execute

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE.

Eine steigende Flanke des Eingangs Execute startet den Funktionsbaustein. Der Funktionsbaustein setzt die Ausführung fort, und der Ausgang Busy wird auf TRUE gesetzt.

Dieser Funktionsbaustein kann während seiner Ausführung neu gestartet werden. Die Zielwerte werden zum Zeitpunkt des Auftretens der steigenden Flanke durch die neuen Werte überschrieben.

BufferMode

MC_Buffer_Mode

Die Zielwerte (Position, Geschwindigkeit, Beschleunigung) der Achse werden durch die neuen Werte im Bewegungstaskzyklus überschrieben, sobald der Funktionsbaustein auf der Achse aktiv wird.

Standardwert: Aborting

Puffermodus.

Mögliche Werte:

  • Wert Aborting

  • Wert Buffered

Eine Beschreibung der Werte finden Sie unter MC_Buffer_Mode.

OperationMode

MC_OperationMode

Betriebsart für Funktionsbaustein

Standardwert: Position

CustomJob

MOIN.FB_CustomJobBase

Eine Instanz eines vom Benutzer erstellten Funktionsbausteintyps, der von FB_CustomJobBase abgeleitet werden muss. Die Funktionsbausteininstanz kann mit zusätzlichen Parametern parametriert werden (z. B. Zielposition, Geschwindigkeit, Beschleunigung, Ruck usw.), gemäß den Anforderungen des durch den benutzerdefinierten Auftrag verwendeten Algorithmus.

Setzen Sie die folgenden Methoden außer Kraft:

  • CalculateMovement

  • Prepare

  • ResetJob

Setzen Sie die übrigen Methoden dieses Funktionsbausteins nicht außer Kraft.

Ausgänge

Ausgang

Datentyp

Beschreibung

InSteadyState

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE, wie vom benutzerdefinierten Auftrag gemeldet.

  • FALSE: Der stabile Zustand wurde noch nicht erreicht, oder es wurde ein Fehler erkannt.

  • TRUE: Stabiler Zustand erreicht. Auf diese Weise signalisiert der benutzerdefinierte Auftrag, dass ein gepufferter Auftrag aktiv werden kann.

Busy

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE, wie vom benutzerdefinierten Auftrag gemeldet.

  • FALSE: Der Funktionsbaustein wird nicht ausgeführt.

  • TRUE: Der Funktionsbaustein wird ausgeführt.

Active

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE.

  • FALSE: Der Funktionsbaustein steuert die Bewegung der Achse nicht.

  • TRUE: Der Funktionsbaustein steuert die Bewegung der Achse.

CommandAborted

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE.

  • FALSE: Die Ausführung wurde nicht abgebrochen.

  • TRUE: Die Ausführung wurde durch einen anderen Funktionsbaustein abgebrochen.

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.

Wenn Sie den Funktionsbaustein MC_SetPosition mit einem Funktionsbaustein MC_CustomJob verwenden, kann dies zu Positionssprüngen führen, wenn Sie die Offset-Position in Ihrer Positionsberechnung nicht berücksichtigen.

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
Verwenden Sie den Funktionsbaustein MC_SetPosition nicht mit einem Funktionsbaustein MC_CustomJob, ohne die Offset-Position anzupassen.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

Um potenzielle Positionssprünge zu vermeiden, basieren Sie die Berechnung der Achsposition für den nächsten Zyklus auf der letzten physischen Position (gemäß Axis.lrPosition) der Achse oder überprüfen Sie, ob die Offset-Position in Ihrer Positionsberechnung korrekt berücksichtigt wird.

Wenn Sie den Funktionsbaustein MC_CustomJob mit einer Modulo-Achse verwenden, wird die über die Methode CalculateMovement generierte Position bei einem Modulo-Überlauf modulokorrigiert. Diese Korrektur basiert auf dem Speichern des Modulo-Offsets in MC_CustomJob. Das bedeutet, dass sich die Position für den nächsten Zyklus, wenn die Berechnung auf der letzten Referenzposition basiert (gemäß Axis.lrPosition), um die Größe des Modulo-Sprungs verschiebt.

 WARNUNG
UNBEABSICHTIGTER GERÄTEBETRIEB
Stellen Sie sicher, dass alle Auswirkungen von Modulo-Sprüngen bei der Positionsberechnung korrekt berücksichtigt werden, wenn Sie den Funktionsbaustein MC_CustomJob mit einer Modulo-Achse verwenden.
Die Nichtbeachtung dieser Anweisungen kann Tod, schwere Verletzungen oder Sachschäden zur Folge haben.

Hinweise

Wenn eine Achse für den Eingangs-Master bereitgestellt wird, werden die neuen Ziel- oder Referenzwerte für die Master-Achse für den laufenden Echtzeitzyklus berechnet, bevor MC_CustomJob ausgelöst wird. Dies bedeutet, dass die benutzerdefinierte Auftragsimplementierung aktuelle (aus dem Echtzeitzyklus neu berechnete) Werte von der Master-Achse erhält, wenn sie aufgerufen wird, um ihre Werte für die Slave-Achse zu berechnen.

Wenn die Betriebsart über den Eingang OperationMode auf Velocity gesetzt wird und der Antrieb in der Betriebsart Cyclic Synchronous Velocity nicht betrieben werden kann, dann stellt der Funktionsbaustein MC_CustomJob einen Fehler fest. Die Achse wird dadurch nicht beeinflusst.