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

SMC_GroupJog

Elster
2018-09-14
2018-09-17
  • Elster - 2018-09-14

    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!

     
  • eschwellinger

    eschwellinger - 2018-09-17

    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:

    1. Mit SMC_GroupReadActualPosition die aktuelle Position im Produkt-Koordinatensystem auslesen
    2. Mit MC_SetPosition die virtuellen Achsen, die für das Joggen verwendet werden, auf die ausgelesene Position setzen
    3. 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

     
  • Elster - 2018-09-17

    Hallo Herr Schwellinger,

    vielen Dank für Ihre Hilfe, das Jogging funktioniert jetzt tadellos.

     

Log in to post a comment.