kontinuierliche Identifikationsfahrt

  • Moin Leute,


    ich habe folgendes Problem: In einem linearen Regal an der Roboterstraße hängen Werkzeuge zur Fräsbearbeitung. Diese Plätze müssen vom Roboter mittels eines Lasersensors auf Belegung überprüft werden, jedesmal wenn eine Bestückungstür geöffnet wurde. Nun sind ca. 30 Werkzeuge in einer Reihe und der Roboter fährt von Platz zu Platz, hält kurz an, und meldet den jeweiligen Belegtstatus an das übergeordnete Jobmanagement. Dieses sagt ihm auch jedesmal vorher zu welchem Platz er fahren soll.
    Nun soll meine Aufgabe sein, dass der Roboter nicht zwischendurch anhält, sondern kontinuierlich am Regal entlangfährt und trotzdem für jeden Platz einen richtigen Status hochmeldet.
    Hat da jemand einen Ansatz wie man das anstellen könnte?


    Ich hoffe ich hab mich verständlich genug ausgedrückt.

  • ANZEIGE
  • Hallo,


    ich habe leider keine Ahnung von Fanuc-Robotern. Gibt es da keine Möglichkeit mehrere Programme parallel laufen zu lassen ?


    Bei unseren Mitsubishis würde ich einfach einen zweiten Task nehmen, der in etwa so aussieht (wenn man die Werkzeuge alle hintereinander abfährt):


    WAIT Startbedingung


    FOR MI=1 TO AnzahlDerWerkzeuge


    WHILE DIST(P_CURR, Position von Werkzeug(MI)) > Toleranz
    DLY 0.02
    WEND


    Sensor auslesen und Daten für Werkzeug MI weitergeben


    NEXT MI



    D.h. man schaut alle 20 ms wie weit der Roboter vom der nächsten Messposition weg ist. Ist er näher als eine gewisse Toleranz, wird gemessen und auf die nächste Position gewartet.


    Vielleicht kann man das in ähnlicher Form umsetzen ?


    Grüße


    Urmel

    Einmal editiert, zuletzt von Urmel ()

  • Hallo,


    klar gibts bei Fanuc die Möglichkeit mehrere Programme parallel laufen zu lassen.Bei der C-Steuerung ist das Serienmäßig drin,bei anderen muß es als Option zugekauft werden.



    Gruß


    Mike

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

  • Hi,


    hmm, alles was ich bis jetzt gelesen hab, kann ich nich als Lösung sehen.
    Das ist nich so einfach wie es aussieht, da musst du rumprobieren.
    z.B.:


    In meinen Augen wird es schwierig den Roboter nicht anzuhalten.


    Multitasking gehr erst nicht, da die Position des Roboters nur in der Haupttask abgefragt werden kann.
    Karel könnte an der Stelle die Lösung sein

  • Hallo Leute,
    Danke für eure nette Hilfe. Ich glaub auch, dass ich da so nicht weiterkomme. Ich hab nebenbei noch weiter damit rumprobiert. Ohne jedoch jedes mal anzuhalten hab ich keine Fortschritte gemacht.


    Muss ich wohl mit leben. Danke trotzdem. :huh: :kopfkratz:

  • Hallo,
    würde die Flinte nicht so schnell in's Korn werfen.
    Mit einer parallelen Task müsste es schon gehen, ich habe vor kurzem sowas ähnliches gemacht,
    da wird während der Fahrt sogar ein Abstand gemessen, und daraus dann die
    Greifposition ermittelt.


    Die aktuelle Position des Roboters kann in der parallelen Task in der Variablen
    $SCR_GRP[1].$MCH_POS_X
    $SCR_GRP[1].$MCH_POS_Y
    ...
    ermittelt werden (Achtung immer Weltkoordinaten, also kein Userframe).


    Um's experimentieren wirst' aber nicht ganz rumkommen.


    Hermann


  • Must du aber davor $SCR_GRP[1].$M_POS_ENB auf TRUE setzen
    Weltkoordinaten, ist halt ein wenig rechenarbeit nötig, ansonsten ist die Funktion gut zu gebrauchen

  • Hallo Leute,


    ich habs. Der Tipp mit den Weltkoordinaten aus den Systemvariablen war goldrichtig. Ich lass die ganze Berechnung in einem parallelen Task laufen und gebe mir die Ergebnisse in Registern aus, welche durch das übergeordnete JobManagement ausgelesen werden.


    Klappt super! Vielen Dank!
    :ylsuper: :danke: :beerchug:

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