20. März 2019, 18:34:39
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

[offen] Hilfe Abfrage für aktives Werkzeug in Robotstudio


normal_post Autor Thema: [offen] Hilfe Abfrage für aktives Werkzeug in Robotstudio  (Gelesen 856 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

20. Dezember 2018, 19:18:09
Gelesen 856 mal
Offline

IRBHRW6660


Hallo, ich habe ein Problem festgestellt, ich versuche gerade, einen automatischen Werkzeugwechsel in Robotstudio zu programmieren, aber ich vermisse immer noch einen einzelnen Befehl und ich möchte eine IF-Bedingung erstellen, die nach dem aktiven Werkzeug fragt. Wie IF-Werkzeug = drill1 THEN ... ENDIF. Kennt jemand diesen Abfragebefehl?

Danke für die Hilfe !
« Letzte Änderung: 20. Dezember 2018, 20:28:41 von IRBHRW6660 »
  • gefällt mir    Danke

Heute um 18:34:39
Antwort #1

Werbung

Gast

20. Dezember 2018, 20:37:54
Antwort #1
Offline

IsSchoGuat


Hallo,
meinst du so?
Hiermit kannst du Tooldaten, Werkzeugdaten und aktuelle Position abfragen.
Gib in der     

PERS tooldata temp_tool:=[TRUE,[[0,0,0],[1,0,0,0]],[0,[0,0,0],[1,0,0,0],0,0,0]];
    PERS wobjdata temp_wobj:=[FALSE, TRUE, "",[[0, 0, 0],[1, 0, 0, 0]],[[0,0,0],[1,0,0,0]]];
    PERS robtarget temp_target:=[[0,0,0],[1,0,0,0],[0,0,0,0],[9E9,9E9,9E9,9E9,9E9,9E9]];

PROC test()
                temp_tool:=CTool();

                temp_wobj:=CWObj();
                temp_target:=CRobT(\Tool:=temp_tool\WObj:=temp_wobj);

IF temp_tool = drill THEN
.....
ENDIF
ENDPROC

Hilfe in --> Rapid Instruktionen und Datentypen  oder schreibe ctool in den editor markieren und f1 dann kommst du zu hilfe

Hoffe konnte dir helfen
Schöne Feiertage
Gruß Florian
  • gefällt mir    Danke

20. Dezember 2018, 22:30:54
Antwort #2
Offline

IRBHRW6660


Schonmal danke für die Antwort, ja genau den Befehl habe ich gesucht aber dennoch klappt es nicht, er geht immer in das IF rein, egal welches Werkzeug ich ausgewählt habe.

PERS tooldata SpindeelTCP:=[TRUE,[[244.3,0,219.413],[1,0,0,0]],[67,[0,0,1],[1,0,0,0],0,0,0]];
PERS tooldata SpindelBohrer1:=[TRUE,[[391.937,0,219.413],[1,0,0,0]],[68,[0,0,1],[1,0,0,0],0,0,0]];
PERS tooldata temp_tool:=[TRUE,[[244.3,0,219.413],[1,0,0,0]],[67,[0,0,1],[1,0,0,0],0,0,0]];

PROC main()
       
    temp_tool:=CTool();
       
   IF temp_tool=SpindeelTCP THEN Werkzeugwechsel1weg;
   Werkzeugwechsel2greif;

   ENDIF
ENDPROC

So sieht momentan das Programm aus, es scheint mir als würde die Abfrage immer TRUE ergeben aber es kann ja nicht sein, dass er alle Werkzeuge gleichzeitig trägt. Ich habe unter dem Raster "Home" als Werkzeug "SpindelBohrer1" angegeben dennoch führt er den Befehl aus, mache ich etwas falsch?

Schöne Grüße!
  • gefällt mir    Danke

20. Dezember 2018, 23:08:16
Antwort #3
Offline

IsSchoGuat


Hallo,
Werkzeugwechsel1weg... Wird aufgerufen wenn if Bedingung erfüllt ist.
Werkzeugwechsel2greif wird immer aufgerufen....
Was meintest du genau?
Grüße Florian

  • gefällt mir    Danke

20. Dezember 2018, 23:25:24
Antwort #4
Offline

IsSchoGuat


Sorry,
Ich hab das then übersehen
Die Antwort ist immer wahr weil genau dieses Werkzeug aktiv ist...tool wird beim nächsten fahrbefehl getauscht wenn du ei anderes Werkzeug verwendest...ansonsten wird es vermutlich das erste sein das eingelesen wird... Nur eine Vermutung nach 1em Glas zuviel...?


« Letzte Änderung: 20. Dezember 2018, 23:32:55 von IsSchoGuat »
  • gefällt mir    Danke

Heute um 18:34:39
Antwort #5

Werbung

Gast

21. Dezember 2018, 08:46:10
Antwort #5
Offline

Programmiersklave


Bin nicht überzeugt, dass man zwei Records auf Gleichheit aller Inhalte überprüfen könnte.

Man kann aber die Namen vergleichen. Hilfreich dazu sind die Funktionen ArgName() (um den Namen herauszubekommen, wenn man ihn an eine andere Routine übergibt bzw. bei der Zuweisung temporär zu speichern) und GetSysData(....\ObjectName) zum Herausfinden des aktuell aktiven Tools. 

Strings kann man auf Gleichheit überprüfen. Allerdings wäre mir Dein Ansatz zu "wurschtig" an der Stelle. Ist ja nicht gesagt, dass das im Programm aktive Tool auch physikalisch am Roboter ist, da braucht ja nur mal einer unglücklich eine Routine aufrufen mit einem Bewegungssatz, der das Tool benutzt, und schon meint der Roboter, dieses Werkzeug wäre "dran". Ich würde die Tools auf jeden Fall extern verwalten.

Grüße,
Michael

21. Dezember 2018, 09:12:52
Antwort #6
Offline

IsSchoGuat


Hi,
Da hast du natürlich recht das wäre etwas schlampig... das habe ich nicht berücksichtigt.
Wir verwenden normalerweise zusätzlich eine Hardwarekennung am Greifer.
Assoziieren Werkzeugkodierung mit einem Tool und bei Falschanwendung Fehlermeldung.

Gruß
  • gefällt mir    Danke


Teile per facebook Teile per linkedin Teile per pinterest Teile per reddit Teile per twitter
 

über das Roboterforum

Nutzungsbedingungen Impressum Datenschutzerklärung

Sponsoren des Roboterforums

ROBTEC GmbH