MC_CamIn_BkPlcMc (ab V3.0)
Der Funktionsbaustein startet und überwacht eine Kurvenscheiben-Kopplung zwischen zwei Achsen. Zum Lösen der Kopplung ist ein MC_CamOut_BkPlcMc Baustein zu verwenden.
Eingänge
VAR_INPUT
Execute: BOOL;
MasterOffset: LREAL:=0.0;
SlaveOffset: LREAL:=0.0;
MasterScaling: LREAL:=0.0;
SlaveScaling: LREAL:=0.0;
StartMode: MC_StartMode_BkPlcMc:=MC_StartMode_Absolute;
CamTableId: MC_CAM_ID_BkPlcMc;
BufferMode: MC_BufferMode_BkPlcMc:=Aborting_BkPlcMc; (ab/from V3.0.8)
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Execute | BOOL | Eine steigende Flanke an diesem Eingang startet die Kopplung. |
MasterOffset | LREAL | [mm, 1] Dieser Wert wird mit der Istposition des Masters verrechnet, bevor der sich ergebende Wert in der Master-Spalte der Tabelle gesucht wird. |
SlaveOffset | LREAL | [mm, 1] Dieser Wert wird mit der Slave-Position aus der Tabelle verrechnet. |
MasterScaling | LREAL | [mm, 1] Dieser Wert wird mit der Istposition des Masters verrechnet, bevor der sich ergebende Wert in der Master-Spalte der Tabelle gesucht wird. |
SlaveScaling | LREAL | [mm, 1] Dieser Wert wird mit der Slave-Position aus der Tabelle verrechnet. |
StartMode | MC_StartMode_BkPlcMc | Ein Wert aus MC_StartMode_BkPlcMc, der das Verhalten der Slave-Achse beim Aktivieren der Kopplung festlegt. |
CamTableId | MC_CAM_ID_BkPlcMc | Hier ist eine Variable des Typs MC_CAM_ID_BkPlcMc zu übergeben, die von einem Baustein des Typs MC_CamTableSelect_BkPlcMc initialisiert wurde. |
BufferMode | MC_BufferMode_BkPlcMc | reserviert. Dieser Eingang wurde vorbereitend ergänzt und sollte derzeit nicht oder mit der Konstanten Aborting_BkPlcMc belegt werden. (ab V3.0.8) |
Ein-/Ausgänge
VAR_INOUT
Master: Axis_Ref_BkPlcMc;
Slave: Axis_Ref_BkPlcMc;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Master | Axis_Ref_BkPlcMc | Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben. |
Slave | Axis_Ref_BkPlcMc | Hier ist die Adresse einer Variablen vom Typ Axis_Ref_BkPlcMc zu übergeben. |
Ausgänge
VAR_OUTPUT
Busy: BOOL;
InSync: BOOL;
CommandAborted: BOOL;
Error: BOOL;
ErrorID: UDINT;
EndOfProfile: BOOL;
END_VAR
Name | Typ | Beschreibung |
---|---|---|
Busy | BOOL | Hier wird signalisiert, dass ein Kommando abgearbeitet wird. |
InSync | BOOL | Hier wird das erstmalige erfolgreiche Aufsynchronisieren der Achsen signalisiert. Das Signal bleibt anschließend auch dann anstehen, wenn die Synchronisierung zu einem späteren Zeitpunkt zeitweise oder bleibend aussetzt. |
CommandAborted | BOOL | Hier wird ein Abbruch der Kopplung signalisiert. |
Error | BOOL | Hier wird das Auftreten eines Fehlers signalisiert. |
ErrorID | UDINT | Hier wird eine codierte Fehlerursache bereitgestellt. |
EndOfProfile | BOOL | Hier wird signalisiert, ob der Master das Ende des definierten Bereichs erreicht hat. |
Verhalten des Bausteins
Auf eine steigende Flanke an Execute hin untersucht der Baustein das übergebene Achsinterface. Dabei können eine Reihe von Problemen erkannt und gemeldet werden:
- Wenn CamTableId.bValidated nicht durch einen Baustein vom Typ MC_CamTableSelect_BkPlcMc gesetzt wurde wird mit Error und ErrorID:=dwTcHydErrCdTblNoInit reagiert.
- Wenn sich entweder Master oder Slave nicht im Ruhezustand befinden wird mit Error und ErrorID:=dwTcHydErrCdNotStartable reagiert.
- Wenn als StartMode der Wert MC_StartMode_RampIn vorgegeben wird reagiert der Baustein mit Error und ErrorID:=dwTcHydErrCdNotSupport reagiert.
Wenn diese Überprüfungen ohne Problem durchgeführt werden konnten wird die Kopplung initiiert. In Abhängigkeit von StartMode wird die Bezugsposition für Slave entweder auf den Wert 0.0 oder mit der aktuellen Istposition von Slave festgelegt. Die Achse befindet sich ab jetzt im Zustand McState_Synchronizedmotion und der Baustein beginnt mit der Berechnung und Überwachung der Kopplung.
Sollposition und Sollgeschwindigkeit von Slave werden in Abhängigkeit von Istposition und Sollgeschwindigkeit des Masters und der Tabelle berechnet.
Wenn bei aktiver Kopplung die Slaveachse erstmalig die durch die Kopplung geforderte Geschwindigkeit erreicht, wird dies am Ausgang InGear signalisiert. Da die Kopplung derzeit nur im Stillstand aktiviert werden kann ist dies unmittelbar der Fall. Sollte während aktiver Kopplung die Slaveachse aus einem beliebigen Grund den Vorgaben nicht folgen können bleibt InGear unverändert.
Tritt bei aktiver Kopplung im Bewegungsgenerator ein Fehlercode auf wird mit Error und ErrorID:=Bewegungsalgorithmus-Fehlercode reagiert.
Eine fallende Flanke an Execute beendet weder die Berechnung noch die Überwachung der Kopplung. Dies kann nur durch die Kopplung durch einen MC_CamOut_BkPlcMc Baustein oder das Auftreten eines Fehlers bewirkt werden. Erst dann werden alle anstehenden Ausgangssignale gelöscht.
Dieser Baustein übernimmt zeitweise die Aufgabe der Sollwertgenerierung. Um dies zu signalisieren wird Busy nicht nur bis zum Übergang in die Synchronität TRUE, sondern bleibt bis zum Auflösen der Kopplung anstehen. |
Bausteinaufruf Es ist zwingend erforderlich, diesen Baustein zyklisch aufzurufen wenn Busy auf TRUE steht. Anschließend ist der Baustein noch mindestens einmal mit Execute:=FALSE aufzurufen. |