[TC 3] Kollisionsvermeidung zwischen zwei über Motion-Control eingebundenen Axen

Pneumatik

Level-2
Beiträge
46
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
[TC 3] Kollisionsvermeidung zwischen zwei über Motion-Control eingebundenen Achsen

Hallo Zusammen,

ich möchte gerade für einen Portalroboter mit zwei Gantries eine Kollisionsvermeidung schreiben, da diese Gantries in einem bestimmten Bereich kollidieren können.
Nun ist meine Überlegung in einem übergeordneten Funktionsbaustein und einem Property "IsSafe" je Gantry auszugeben, ob das Gantry sich in einem kollisionsgefährdeten Bereich befindet.
(Wenn es in einem sicheren Bereich ist darf sich das andere Bewegen)

Ich kann das gerade nicht live an den Achsen testen habe eine (wie ich finde etwas umständliche) Idee wie ich es realisieren könnte.

Code für das Property IsSafe.Get:
Code:
IF ((fbAxisX1.Axis1.NcToPlc.ActPos < GVL_Gantry1.fMaxSafePos)     AND (fbAxisX1.Axis1.NcToPlc.ActPos > GVL_Gantry1.fMinSafePos) 
    AND    (fbAxisX1.Axis1.Status.Homed = 1)
    AND (fbAxisX1.Axis1.Status.NotMoving)) THEN
    IsSave:=TRUE;
ELSE
    IsSave:=FALSE;
END_IF;

Macht dieser Ansatz Sinn?
Gibt es nicht vielleicht eine deutlich elegantere Methode als über diesen Umweg mittels Propertys ? Ich habe darüber leider wenig gefunden kann mir aber kaum vorstellen, dass das ein üblicher Ansatz wäre.
 
Zuletzt bearbeitet:
Zurück
Oben