Hallo zusammen,
könnt ihr mir mit folgendem Problem / Verständisproblem helfen:
Ein Programm hat folgenden Ablauf (ScaraRoboter)
moveJ(appro(PosX)
moveJ PosX
waitEndMove
Teil ablegen
nMoveID = moveJ(appro(PosX)
waitEndMove
wait(GetMoveId()>=nMoveID + 0.5)
Danach ist das Programm beendet und falls Teil Abholen ansteht wird das ähnliche Programm zum abholen aufgerufen.
Zuerst hatte ich nur waitEndMove: Bewegung wird komplett ausführt und Programm beendet -> Problem: Taktzeitverlust da letzte Bewegung nicht überschliffen wird.
Ohne die beiden Wait-Befehle die letzte Bewegung nicht ausgeführt und Programm beendet -> erst wenn nächstes Programm gestartet wird wird die Bewegung ausgeführt
(Ich verstehe nicht was den Roboter zum anhalten bringt)
Mit wait(GetMoveID) bleibt der Roboter in dieser Zeile stehen. Ich würde erwarten nach 50% der Bewegung wird Programm beendet.
Ziel:
Roboter soll am Ende vom Programm auf eine bestimmte Vorposition fahren. Falls zu diesem Zeitpunkt schon ein neuer Auftrag ansteht überschleifen.
Ich hofe ihr versteht mein Problem.
Wäre es evtl. besser alles in ein Programm zu packen?