Starten eines Programms bei erreichen einer Position

  • Hallo Zusammen,
    bin auf der Suche nach eine Lösung für das Starten eines kleinen Programmes, Signalaustausch, beim erreichen einer Position. Stelle mir so etwas vor in etwa wie MoveJSync bei ABB. Kann mir da jemand eventuell einen kleinen hilfreichen Tipp geben.
    In Abhängigkeit von der Bewegung, bei erreichen einer gewissen Nähe zur Position, sollte dann ein kleines Programm abgearbeitet werden.
    Wäre für eine Information dankbar.
    Habe leider in der FANUC-Dokumentation noch nichts darüber gefunden. Bin wahrscheinlich betriebsblind? :roll:


    robotic74

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • ANZEIGE
  • soll er nur EIN Signal setzen?
    Kann er mit der selben Funktion wie die Homepos.
    Heißt glaub ich entweder refpos


    Er kann meist mehrere davon, auch wenn die Option nicht gekauft ist. Soweit ich mich erinnere ist jede dieser Positionen ein Raumwürfel mit einstellbarer Kantenlänge oder eine einstellbare Winkelabweichung der Achsen.
    Wenn Option nicht gekauft findet man das in den Systemdaten (aber tief versteckt)


    In KAREL gibts auch sowas. Programmierbar mit set_perch(Jpos, tolerance,indx)


    Damit kannst Du einen Ausgang schalten (und unter TP kannst Du mit "run" einen Task im Hintergrund starten, der diesen Ausgang überwacht und noch mehr tut)


    Es muß aber noch was einfacheres geben. Habe leider hier zuhause kein TP-Handbuch...

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Hallo WolfHenk,
    danke für Deine Infos, Ich dachte da an Conditoner und Signale zu deaktivieren eventuell auch Register zu setzen. Hätte schon etwas von ein paar Zeilen.
    das Thema RefPos funzt aber nur für drei Positionen im System, soweit ich weiß. Gibt es da auch die Möglichkeit die Anzahl zu erweitern wie bei den Registern?


    Dank im Vorraus.


    robotic74

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • vage erinnerungen an eine Variable maxrefpos und einen Neustart...

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Hallo, wenn ich das jetzt richtig verstanden habe soll ein Prog ausgeführt werden, wenn ein bestimter Punkt erreicht ist.


    So würde es funktionieren.


    If Lpos=X;Y;Z;W;P;R then
    Call (auszuführendes Prog)
    endif


    und danach geht dein prog ja normal weiter.

  • Hallo Mad_Robot,
    wenn es so einfach wäre hätte ich das nicht hier rein schreiben brauchen.


    es geht einfach um folgendes:


    Roboter verlässt seinen Arbeitsbereich, es besteht eine Kommunikation mit einer SPS über bestimmte Verriegelungssignale.
    So nun soll der Roboter aber nicht zwanghaft stehen bleiben wenn dieser den Arbeitsbereich verlässt sondern schön die Bewegung verschleifen. Zu diesem Verschleifen kommt nun unser Programmvorlaufzeiger. In Deinem Fall Mad_Robot würde mir das überhaupt nichts bringen. Da auch hier der Programmvorlaufzeiger eigentlich dann vorbei springen würde, da die Position noch nicht erreicht wäre. So da aber bei einem Stopp des Roboterprogramms sichergestellt werden muss das dieser auch hardwaretechnisch den Bereich wirklich verlassen hat möchte ich gern eine Möglichkeit finden die es mir ermöglicht in Abhängigkeit meines TCP in der nähe des anzufahrenden Punktes ein Programm anzustarten. Dieses Programm würde dann die Arbeitsbereichüberwachung deaktivieren, Conditoner (Monitorbefehl), und Signale wie auch Register setzen bzw. rücksetzen wie beliebt. Dies würde im allgemeinen Ablauf des Roboters keine sichtbaren Auswirkungen auf die Bewegung haben, wäre sicher und Taktzeitoptimiert.
    Dies mache ich bei ABB immer so um einen flüssigen und auch hardwartechnisch sichern Ablauf zu garantieren. Bei ABB heißt die Bewegungsinstruktion je nach Typ MoveJSync,MoveLSync und MoveCSync. In diese Instruktion sieht aus wie jede normale Bewegungsinstruktion nur das ich am Schluss in einem String die aufzurufende Routine deklarieren kann. Total easy.


    So Mad_Robot nach diesem kleinen Ausflug in meine Gedankenwelt hoffe ich das Du eventuell einen weiteren Vorschlag machen kannst.


    robotic74

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Benutz die Distance before Funktion.
    Damit sollte es funktionieren.Die Gleiche Funktion wie bei Kuka Trigger when distance.


    Gruß


    Mike

    Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck

  • Nicht in Karel,sondern ganz normal im Programm.Programmaufruf und Signalausgabe werden parallel zum normalen Ablauf abgearbeitet.


    Gruß


    Mike

    Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck

  • Hallo Mike,
    die "distance befor"-Funktion gibt es mit welcher Option? Oder ist das Standard? Habe das in meiner Dokumentation nirgens gefunden. :kopfkratz:
    Aber wenn das eine Trigger-Funktion ist kann ich keine Logischen Zuweisungen tätigen, oder? Dann hilft mir das auch nichts, leider.


    Aber Danke :blumen: noch einmal für Eure Bemühungen.


    WolfHenk: Sag mal im Karel gibt es da so etwas nicht?


    robotic74


    P.S.: Aber mit dem setzen eines Ausgangs könnte ich doch wieder ein Makro anstossen, oder? Ist zwar durchs Knie in den Kopf geschossen aber so sollte das eigentlich funktionieren.

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Erst mußt du die Systemvariable einstellen.$SCR_GRP[1].$M_POS_ENB=true.


    An der Distance before anweisung kannst du doch ein call starten.Dann kannst du aufrufen was du willst.Und es wird parallel abgearbeitet.


    Gruß


    Mike

    Hubraum ist durch nichts zu ersetzen, außer durch noch mehr Ladedruck

  • Hallo Mike,
    super Sache das mit der Distance befor-Funktion. Werde das bei Gelegenheit mal testen wenn ich das gelbe Monster wieder mal zwischen die Finger bekomme! :biggrins:


    Vielen Dank Jungs für die Infos.


    Und wieder hat es sich einmal bestätigt das man nicht alles wissen kann. :bawling:


    robotic74

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Hallo zusammen,
    vielen Dank für die Infos! Mit der Distance Befor -Funktion hat es wunderbar funktioniert. Konnte dies auf den mm genau optimieren. War einfach die Perfekte Funktion die ich gesucht hatte.


    Danke Mike. Hatte diese Funktion nicht gesehen vor lauter Optionen! :mrgreen:


    Danke :blumen: :blumen:


    robotic74

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden