Welcome to our new forum
All users of the legacy CODESYS Forums, please create a new account at account.codesys.com. But make sure to use the same E-Mail address as in the old Forum. Then your posts will be matched.
Close
ich habe eine Frage zum Funktionblock SMC_GroupJog aus der SoftMotion Robotics Bibliothek:
Bei Aktivierung des Funktionsblocks wird die Achsgruppe zunächst in den Ursprung des ausgewählten Produktkoordinatensystems bewegt, soweit zumindest meine Beobachtung in der Praxis.
Um nun festzulegen, wo das Ziel dieser Initialbewegung innerhalb des Aufbaus selbst liegt habe ich mithilfe von SMC_SetDynCoordTransformEx das Produktkoordinatensystem verschoben (ein Auslesen mit MC_ReadCoordinateTransform bestätigt dies).
Die Funktion GetPose() des implementierten SMC_IDynamicCS Interfaces zum Aufruf von SMC_SetDynCoordTransformEx gibt hierbei zunächst eine feste Position zurück.
Verwende ich nun jedoch wieder SMC_GroupJog hat sich die Zielposition der Initialbewegung nicht verändert und bleibt unbeeinbruckt vom vorangehenden Verschieben.
Ein erneutes Überprüfen mit MC_ReadCoordinateTransform zeigt, dass der Ursprung des Produktkoordinatensystems wieder zu seiner ursprünglichen Position zurückgesetzt wurde.
Mir ist nicht ganz ersichtlich was hier genau passiert und ich frage mich, ob es eine Möglichkeit gibt dieses Verhalten zu umgehen, da in meinem Fall die angefahrene Position innerhalb des verwendeten Roboters liegt.
Vielen Dank im Voraus für jegliche Hilfe!
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
um die Initialbewegung zu vermeiden, die ja praktisch nie erwünscht ist, geht man normalerweise zu Beginn des Joggens so vor:
Mit SMC_GroupReadActualPosition die aktuelle Position im Produkt-Koordinatensystem auslesen
Mit MC_SetPosition die virtuellen Achsen, die für das Joggen verwendet werden, auf die ausgelesene Position setzen
MC_GroupJog starten
noch was es macht einen großen Unterschied, ob ein statisches (ortsfestes) Produkt-Koordinatensystem verwendet wird (MC_SetCoordinateTransform) oder ein dynamisches (SMC_SetDynCoordTransformEx, MC_TrackConveyorBeltm, ...)
Hoffe das hilft dir weiter.
Grüße
Edwin
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hallo zusammen,
ich habe eine Frage zum Funktionblock SMC_GroupJog aus der SoftMotion Robotics Bibliothek:
Bei Aktivierung des Funktionsblocks wird die Achsgruppe zunächst in den Ursprung des ausgewählten Produktkoordinatensystems bewegt, soweit zumindest meine Beobachtung in der Praxis.
Um nun festzulegen, wo das Ziel dieser Initialbewegung innerhalb des Aufbaus selbst liegt habe ich mithilfe von SMC_SetDynCoordTransformEx das Produktkoordinatensystem verschoben (ein Auslesen mit MC_ReadCoordinateTransform bestätigt dies).
Die Funktion GetPose() des implementierten SMC_IDynamicCS Interfaces zum Aufruf von SMC_SetDynCoordTransformEx gibt hierbei zunächst eine feste Position zurück.
Verwende ich nun jedoch wieder SMC_GroupJog hat sich die Zielposition der Initialbewegung nicht verändert und bleibt unbeeinbruckt vom vorangehenden Verschieben.
Ein erneutes Überprüfen mit MC_ReadCoordinateTransform zeigt, dass der Ursprung des Produktkoordinatensystems wieder zu seiner ursprünglichen Position zurückgesetzt wurde.
Mir ist nicht ganz ersichtlich was hier genau passiert und ich frage mich, ob es eine Möglichkeit gibt dieses Verhalten zu umgehen, da in meinem Fall die angefahrene Position innerhalb des verwendeten Roboters liegt.
Vielen Dank im Voraus für jegliche Hilfe!
Hallo,
dann halt hier
um die Initialbewegung zu vermeiden, die ja praktisch nie erwünscht ist, geht man normalerweise zu Beginn des Joggens so vor:
noch was es macht einen großen Unterschied, ob ein statisches (ortsfestes) Produkt-Koordinatensystem verwendet wird (MC_SetCoordinateTransform) oder ein dynamisches (SMC_SetDynCoordTransformEx, MC_TrackConveyorBeltm, ...)
Hoffe das hilft dir weiter.
Grüße
Edwin
Hallo Herr Schwellinger,
vielen Dank für Ihre Hilfe, das Jogging funktioniert jetzt tadellos.