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 im SPS-Code 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.

Name der Bibliothek und Namespace

Name der Bibliothek: PLCopen MC part 1

Namespace: PLCO

Grafische Darstellung

G-SE-0076976.1.gif-high.gif

 

 

Eingänge

Eingang

Datentyp

Beschreibung

Master

Axis_Ref

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

Kann unbelegt zugewiesen bleiben, wenn bei dem benutzerdefinierten Auftrag (angegeben an Eingang CustomJob) eine Masterachse verwendet wird.

Wurde eine Achse zugewiesen, erhält der Rückruf an den Benutzerfunktionsbaustein zur Definition des Bewegungsprofils die Bewegungswerte der Masterachse. Andernfalls werden die Bewegungswerte der Masterachse 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 Bewegungstask-Zyklus überschrieben, wenn der Funktionsbaustein auf der Achse aktiv wird.

Standardwert: Aborting

Puffermodus.

Mögliche Werte:

oWert Aborting

oWert Buffered

Eine Beschreibung der Werte finden Sie unter MC_Buffer_Mode.

CustomJob

MOIN.FB_CustomJobBase

Eine Instanz eines vom Benutzer erstellten Funktionsbausteintyps, der von FB_CustomJobBase abgeleitet werden muss. Die Funktionsbaustein-Instanz 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:

oCalculateMovement

oPrepare

oResetJob

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

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

oTRUE: 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

oFALSE: Der Funktionsbaustein wird nicht ausgeführt.

oTRUE: Der Funktionsbaustein wird ausgeführt.

Active

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE.

oFALSE: Der Funktionsbaustein steuert die Bewegung der Achse nicht.

oTRUE: Der Funktionsbaustein steuert die Bewegung der Achse.

CommandAborted

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE.

oFALSE: Die Ausführung wurde nicht abgebrochen.

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

Error

BOOL

Wertebereich: FALSE, TRUE.

Standardwert: FALSE.

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

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

ErrorID

ET_Result

Diese Aufzählung stellt Diagnoseinformationen zur Verfügung.

Hinweise

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

Mögliche Werte von ET_Result

ErrorId

Ursache

Abhilfemaßnahme

AxisInErrorStop

Der Funktionsbaustein kann nicht ausgeführt werden, weil ein Achsenfehler erkannt wurde und sich die Achse im Betriebszustand ErrorStop befindet,

Stellen Sie sicher, dass sich die Achse nicht im Betriebszustand ErrorStop befindet, wenn versucht wird, einen neuen Funktionsbaustein zu starten.

AxisIsDisabled

Der Funktionsbaustein kann nicht ausgeführt werden, da sich die Achse im Betriebszustand Disabled befindet.

Stellen Sie sicher, dass sich die Achse nicht im Betriebszustand Disabled befindet, wenn versucht wird, einen neuen Funktionsbaustein zu starten.

AxisIsStopping

Der Funktionsbaustein kann nicht ausgeführt werden, da ein Funktionsbaustein MC_Stop aktiv ist und die Achse sich in Betriebszustand Stopping befindet.

Stellen Sie sicher, dass sich die Achse nicht im Betriebszustand Stopping befindet, wenn versucht wird, einen neuen Funktionsbaustein zu starten.

AxisNotHomed

Die Achse ist nicht referenziert (das Flag xHomed der Achse ist FALSE).

Referenzieren Sie die Achse, um einen gültigen Nullpunkt zu erhalten, um eine Bewegung relativ zum Nullpunkt zu starten.

BufferModeInvalid

Ein von MC_Buffer_Mode.Aborting oder MC_Buffer_ModeBuffered abweichender Wert wurde am Eingang BufferMode übergeben.

Übergeben Sie den Wert von MC_Buffer_Mode.Aborting oder MC_Buffer_Mode.Buffered als BufferModeInput (wenn zuvor kein Wert übergeben wurde, wird MC_Buffer_Mode.Aborting verwendet).

BufferSaturated

Die maximale Anzahl der Funktionsbausteine, die für die Achse gepuffert werden kann, wurde erreicht.

Puffern Sie zu jedem Zeitpunkt nur einen Funktionsbaustein für eine bestimmte Achse.

InternalErrorInCyclicCalculation

FB_CustomJobBAse hat einen ungültigen LREAL-Wert zurückgegeben.

Korrigieren Sie Ihre Implementierung von FB_CustomJobBAse, sodass keine ungültigen LREAL-Werte (unendlich und NaN (keine Zahl) sind ungültige LREAL-Werte).

NoBusCommunication

Der Feldbus befindet sich nicht im Zustand Operational (Sercos: Phase 4).

Stellen Sie sicher, dass sich der Feldbus im Zustand Operational (Sercos: Phase 4) an der steigenden Flanke des Execute-Eingangs und während der Ausführung befindet.

NotSupportedWithFeedbackAxis

Befehl nicht zulässig, während benutzerdefinierter Auftrag ausgeführt wird.

Implementieren Sie die Funktionen für MC_CustomJob  in der Bewegungssteuerungsanwendung.

OutOfMemory

Nicht ausreichender Speicher für Bewegungsbefehl.

Reduzieren Sie den von der Anwendung benötigten Speicher.

UnexpectedReturnValue

Nicht bestimmbarer Rückgabewert vom System.

Wenden Sie sich an Ihren Schneider Electric Ansprechpartner.