Umstieg NC2 zur MC3
Funktionsbausteine
NC2 Funktionsbaustein | MC3 Funktionsbaustein | Hinweis |
|---|---|---|
MC_Power.Enable_Positive MC_Power.Enable_Negative | MC_Power.EnablePositive MC_Power.EnableNegative | Unterstrich entfernt |
MC_ExtSetPointGenEnable | Weitere Details zur Externe Sollwertgenerierung | |
MC_ExtSetPointGenDisable | MC_ActivateExternalSetpointGeneration mit einem Aborting Kommando ablösen | Beispiel: MC_Halt |
MC_ExtSetPointGenFeed |
| |
MC_ExtSetPointGenFeedWithTorque | - |
|
|
|
|
MC_GearInDyn | In Zukunft über MC_GearIn |
|
MC_GearOut |
| Durch ein Bewegungs- oder Halt/Stop-Kommando auf eine Slave-Achse wird diese vom Master abgekoppelt. |
MC_CamOut |
| Durch ein Bewegungs- oder Halt/Stop-Kommando auf eine Slave-Achse wird diese vom Master abgekoppelt. |
MC_Power.Override (Wertebereich in %) | MC_SetOverride.VelocityFactor (Wertebereich normalisiert auf 1) | Bei der MC3 ist der Override standardmäßig auf 1 (100%) gesetzt. In der Motion UI erfolgt die Eingabe in %. |
MC_SetPosition.Mode | MC_SetPosition.Relative | Umbenennung des Eingangs für bessere Lesbarkeit im Code. |
MC_Reset | MC3: Wirkt, wenn sich die Achse im Fehlerzustand befindet. Ein zusätzlicher asynchroner Reset-Befehl für Sercos-Geräte wird ebenfalls ausgelöst und ausgewertet. Der Schleppfehler wird nicht zurückgesetzt und bleibt trotz Reset-Kommando bestehen. | |
MC_Home.bCalibrationCam | Siehe Kapitel MC_Home und Homing-Module | Zentrale Konfiguration, Parametrierung und Verknüpfung mit I/O-Komponenten zentral in Homing Modulen |
MC_Home.HomingMode := MC_DefaultHoming | MC_Home führt die Standard-Referenzierfahrt, die im Homing-Objekt konfiguriert ist, aus. | |
MC_Home.HomingMode := MC_Direct | MC_SetHomingState.Mode := EHomingMode.DirectSetPosition | Zusätzlicher Funktionsbaustein neben MC_Home. |
MC_Home.HomingMode := MC_ForceCalibration | MC_SetHomingState.Mode := EHomingMode.ForceIsPositionValid | Zusätzlicher Funktionsbaustein neben MC_Home. |
MC_Home.HomingMode := MC_ResetCalibration | MC_SetHomingState.Mode := EHomingMode.ResetIsPositionValid | Zusätzlicher Funktionsbaustein neben MC_Home. |
MC_MoveVelocity.InVelocity MC_MoveVelocity.Busy MC_MoveVelocity.Active
| MC_MoveVelocity.InVelocity MC_MoveVelocity.Busy MC_MoveVelocity.Active
| In der Ausgangssituation wurde das Kommando mit NC2: MC3: |
MC_GearIn.InGear MC_GearIn.Busy MC_GearIn.Active (ebenso MC_GearInPos) | MC_GearIn.InGear MC_GearIn.Busy MC_GearIn.Active (ebenso MC_GearInPos) | In der Ausgangssituation wurde das Kommando mit NC2: MC3: |
Re-Triggern eines MC-Funktionsbausteins am Beispiel MC_MoveAbsolute
VAR
axis_nc2 : TC2_MC2.AXIS_REF;
axis_mc3 : Tc3_Mc3Ptp.AXIS_REF;
move_absolute_mc3 : Tc3_Mc3Ptp.MC_MoveAbsolute;
move_absolute_nc2_1 : Tc2_MC2.MC_MoveAbsolute;
move_absolute_nc2_2 : Tc2_MC2.MC_MoveAbsolute;
END_VARCASE step OF
0:
// MC3 init movement
move_absolute_mc3(Axis := axis_mc3, Position := 111, Execute := TRUE);
// NC2 init movement
move_absolute_nc2_1(Axis := axis_nc2, Position := 111, Velocity := 100, Execute := TRUE);
step := step + 1;
1:
// MC3 retrigger same FB instance during one cycle
move_absolute_mc3 (Axis := axis_mc3, Position := 111, Velocity := 100, Execute := FALSE);
move_absolute_mc3 (Axis := axis_mc3, Position := 222, Velocity := 100, Execute := TRUE);
// NC2 use additional FB instance
move_absolute_nc2_1(Axis := axis_nc2, Position := 111, Velocity := 100,Execute := FALSE);
move_absolute_nc2_2(Axis := axis_nc2, Position := 222, Velocity := 100,Execute := TRUE);
step := step + 1;
END_CASE![]() | Re-Triggern eines MC-Funktionsbausteins am Beispiel MC_MoveAbsolute In der NC2 gilt: Wenn der Eingang Für die MC3 gilt diese Einschränkung nicht. Wenn der Eingang |
Status
NC2 | MC3 | Hinweis |
|---|---|---|
myAxisRef.Status.IoDataInvalid | myAxisRef.McToPlc.Std.AxisState | PLCopen Zustandsdiagramm erweitert (Zustände: Invalid, NotReady, Enabling, Disabling). Beispiel: Die Achse verbleibt im Zustand NotReady, wenn die Antriebshardware nicht bereit ist (siehe Kapitel Zustandsdiagramm) |
myAxisRef.Status.Homed | AxisRef.McToPlc.Std.IsPositionValid |
|
myAxisRef.ReadStatus() | myAxisRef.McToPlc.Std | Statusinformationen können direkt aus dem CDT |
Fehler auf Ebene der Antriebshardware oder fehlende Kommunikation
Ausgangssituation ist der Wechsel des TwinCAT-Systems von Config nach Run. Dabei ist die Antriebshardware in einem Fehlerzustand oder die Kommunikation über den EtherCAT-Feldbus ist gestört.
- NC2: Ein Achsfehler wird angezeigt, wenn
MC_Power.Enable = TRUE. Des Weiteren kann ein Kommunikationsproblem z. B. übermyAxisRef.Status.IoDataInvalidabgefragt werden. - MC3: Wenn die Kommunikation zwischen Achse und Antrieb hergestellt ist, werden der Antriebsstatus und mögliche Fehler direkt ausgewertet und ggf. als Achsfehler angezeigt. Das Zustandsdiagramm der MC3-Achse ist gegenüber der NC2 und PLCopen erweitert (Zustände: Invalid, NotReady, Enabling, Disabling). Über den Achsstatus der MC3 kann zentralisiert der Zustand ausgewertet werden.
- Beispiel 1: Wenn
MC_Power.Enable := FALSEund keine Kommunikation mit dem Antrieb möglich ist, verbleibt der Achsstatus im ZustandmyAxisRef.McToPlc.Std.AxisState = EAxisState.NotReady. - Beispiel 2: Wenn
MC_Power.Enable := FALSEund der Antrieb ist im Fehlerzustand, dann meldet die MC3-AchsemyAxisRef.McToPlc.Std.AxisState = EAxisState.ErrorStop.
