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
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 |
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. |
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. |
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 Auftragsimplementierung 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.
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. |