16. Januar 2019, 02:49:56
Roboterforum.de - Die Industrieroboter- Anwender und Experten Community

 Positionsdaten und mit einem wert vergleichen


hot_post Autor Thema:  Positionsdaten und mit einem wert vergleichen  (Gelesen 2785 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

28. Juli 2014, 18:30:20
Gelesen 2785 mal
Offline

Weberman


Hallo, bin total neu auf diesem Gebiet.
ich möchte mit Melfa Basic z.B. eine Nadel vermessen mit einer Laserlichtschranke und die Strecke mir in mm in einer Variable schreiben.
Danach möchte ich den Wert mit einer Vorgabe vergleichen.
Also Nadel unterbricht den Laser und fährt weiter bis Laser nicht mehr unterbrochen ist. Die Strecke von den beiden Punkten soll gemessen werden.

Hatte es damit versucht. Bekomme aber Syntax Error,was mache ich falsch?

Wäre super wenn mir jemand dabei helfen könnte.


'Nadel Durchmesser vermessen
Def Act 1, M_In(5)= 1 GoSub *Dm1 'Interrupt
Def Act 2, M_In(6)= 0 GoSub *DM2 'Interrupt
'
Spd 30  ' 30mm/s
'Aktivieren Interrupt
Act 1 = 1
Act 2 = 0
'Laser Durchfahrt
Mov P1
Dly 0.1
Mvs P2
'
PErgebnis = PD1 - PD0
PD3 = PEergebnis ' Ergebnis in Variable speichern
'Berechnung Tolleranz
If PD3 < 1.79 Then M_Out(7)=1 EndIf 'goto Homeposition
If PD3 > 1.81 Then M_Out(7)=1 EndIf 'goto Homeposition
'
END
'*******************************
*Dm1
PD0 = P_Curr   'Aktuelle Position XYZ Wert
Return 0
'
*Dm2
PD1 = P_Curr   'Aktuelle Position XYZ Wert
Return 0
  • gefällt mir    Danke

28. Juli 2014, 19:09:04
Gelesen 2785 mal
Offline

Urmel

Global Moderator
Hallo,

wenn du schreiben würdest, in welcher Zeile der Syntax-Error kommt, wäre die Hilfsbereitsschaft sicher größer.

Nach einem kurzen Blick auf das Programm fallen mir als erstes die Kommentare hinter Anweisungen auf. Wenn das neuerdings erlaubt ist, habe ich das nicht mitgekriegt.

Grüße

  Urmel
  • gefällt mir    Danke

28. Juli 2014, 19:21:50
Gelesen 2785 mal
Offline

Weberman


Hallo Urmel,
in den If Anweisungen bekomme ich ein Syntax fehler

Die Kommentare sind so, schon erlaubt. Benutze Melfa Basic V
  • gefällt mir    Danke

28. Juli 2014, 20:35:24
Gelesen 2785 mal
Offline

Urmel

Global Moderator
Bei den Kommentaren war ich mir nicht sicher, ich schreibe meinen Code immer so, das er möglichst auch auf älteren Robotern läuft.

Nächste Idee: Was ist mit dem Endif ? Begrenzt das nur mehrzeilige Ifs ? Was passiert beim Weglassen oder Umschreiben in mehrere Zeilen ?
  • gefällt mir    Danke

28. Juli 2014, 20:50:24
Gelesen 2785 mal
Offline

Weberman


  • gefällt mir    Danke

28. Juli 2014, 20:56:51
Gelesen 2785 mal
Offline

Weberman


Hallo Urmel,
hat nix gebracht, denke das es an dem größer / Kleiner Zeichen liegt...... die sind schwarz. mache mal ein Screenshot
  • gefällt mir    Danke

28. Juli 2014, 21:06:32
Gelesen 2785 mal
Offline

Weberman


Zur Info:
Roboter = RV-3 SDB
Teachbox = TB 56
Software = Melfa Basic V
  • gefällt mir    Danke

29. Juli 2014, 08:07:24
Gelesen 2785 mal
Offline

Urmel

Global Moderator
Hallo,

bei der Hitze kann ich nicht mehr richtig denken.  :zwink:

Du vergleichst da zwei inkompatible Typen mit dem < , die Variable ist eine Position (also Koordinaten mit Stellungsflags), das andere ein Double.

Du könntest höchstens so etwas wie PD3.X < 1.79 schreiben. Wahrscheinlich suchst du eher etwas wie
MAbstand = Dist(PD0, PD1)

Grüße

  Urmel
« Letzte Änderung: 29. Juli 2014, 08:25:02 von Urmel »
  • gefällt mir    Danke

30. Juli 2014, 18:47:10
Gelesen 2785 mal
Offline

Weberman


Danke Urmel,

Jepp das war es. Danke. Hatte nicht bedacht das alle Achsen-Positionen ausgelesen werden :angry:

Hast du auch Ahnung von TCP Verschiebung wenn eine Nadel eine Laserlichtschranke durch fährt?
Meine damit, wenn 2 Laserlichtschranken ( 1 in X und 1 in Y ) angebracht sind und die Nadel leicht schief ist, möchte ich den TCP dementsprechend verschieben.

Als Anfänger kann man nur lernen.....

Gruß Webermann




  • gefällt mir    Danke

30. Juli 2014, 19:58:36
Gelesen 2785 mal
Offline

Urmel

Global Moderator
Hallo,


man könnte einmal eine gerade Nadel vermessen und dann eine schiefe. Das man Positionen subtrahieren kann, hast du ja schon herausgefunden. Den so ermittelten Versatz kann man auf den TCP aufaddieren. In der Variable P_Tool steht der aktuelle TCP, mit dem Befehl Tool kann man ihn setzen. Eventuell macht es Sinn bei dieser Vermessung nur die X,Y,Z Komponenten zu verwenden. Mit den Winkeln könnte es komplizierter werden.

Grüße

  Urmel
  • gefällt mir    Danke

31. Juli 2014, 19:51:30
Gelesen 2785 mal
Offline

Weberman


Hallo Urmel,
Danke für die Antwort. Möchte erst mal ausprobieren ob ich mit der XYZ hinkomme. Wie lautet denn der Befehl die 3 Koordinaten auszulesen ? und wie mache ich die Berechnung bzw. die Verschiebung des TCP.

Danke nochmal Urmel

Gruß Weberman
  • gefällt mir    Danke

01. August 2014, 12:25:16
Gelesen 2785 mal
Offline

Urmel

Global Moderator
Also mit den Positionen kann man rechnen. Der Roboter wandelt die intern in Matrizen um und rechnet damit.

Angenommen die Position Pgerade ist mit gerade Nadel geteacht und Pkrumm an der selben Stelle mit
einer krummen Nadel. Dann geht

PDiff = Pgerade - Pkrumm

' Wir ignorieren erstmal die Winkel
PDiff.A = 0
PDiff.B = 0
PDiff.C = 0

' Der neue TCP wird aus dem alten und der Korrektur berechnet

PNeu = P_Tool + PDiff
Tool PNeu


Grüße

  Urmel
  • gefällt mir    Danke

02. August 2014, 17:48:52
Gelesen 2785 mal
Offline

Weberman


Hi Urmel,
werde es in 2 Wochen ausprobieren. Super Dank an dich.

Weist Du ob es möglich ist,mit einer FX3g und Got 1000 über ein normales Netzwerk Daten zu senden und zu empfangen? wenn ja welches Modul brauche ich.

Sonnige Grüße
  • gefällt mir    Danke

03. August 2014, 10:51:31
Gelesen 2785 mal
Offline

Urmel

Global Moderator
Mit den GOT kenne ich mich nicht aus, wir verwenden richtige PCs.

Mit der FX3U verwende ich das herstellereigne Protokoll, normales TCP geht aber wohl auch, müsste man mal die Doku inspizieren. FX3G hatte ich noch nicht.
  • gefällt mir    Danke

26. August 2014, 20:21:05
Gelesen 2785 mal
Offline

Weberman


Hallo Urmel,

also der Aufbau den ich gemacht habe:
2 Laser, einen in x Richtung einer in Y Richtung.

möchte nun mit der Nadel in den beiden Richtungen die Laser durchfahren und wenn Laser unterbrochen wird soll die aktuelle Position ausgelesen werden.

In den MEXTL habe ich den TCP von meinen Nadelhalter ( Nadelspitze ) eingegeben. ( Y 123.71 und Z 160 Rest alles auf Null )

Weitere Eckdaten: Nadel Durchmesser ist 1,8 mm
Laserstrahl ist 0,2mm

Also wenn ich den einen Laserstrahl unterbreche habe ich immer noch 1,6mm bis zum Mittelpunkt der Nadel. Dieses müsste ich ja auch berücksichtigen.

So nun zu meiner Frage: Wie Berechne ich das alles für den neuen TCP ?

Komme irgendwie mit den Variablen nicht zurecht. :-|

Und wie schreibe ich das in den neuen Tool...? Ist das neue Tool dann eine Globale Variable danach ???

Wäre echt super wenn Du mir da helfen könntest.

Sonnige Grüße

Webermann
  • 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