Projektingenieur bei Perceptron in Norddeutschland für Homeoffice gesucht
Zum nächstmöglichen Eintritt suchen wir Sie als Roboter-Programmierer (m/w)
>> mehr Infos <<

Autor Thema:  Ausgewählte Positionen anfahren  (Gelesen 2065 mal)

0 Mitglieder und 1 Gast betrachten dieses Thema.

Offline Netman86

  • Forum Mitglied LV 5
  • *
  • Beiträge: 45
  • Bewertet: 0
Ausgewählte Positionen anfahren
« am: 30. November 2009, 10:12:16 »
Hallo,

stehe zurzeit vor folgendem Problem mit meinem Melfa Basic 5-Programm:

Der Roboter hält ein Teil mittels Greifhand in eine Messstation. Die Teile haben alle unterschiedliche Abmessungen. Anhand des Teiletyps muss ich also die richtige (vorher geteachte) Position ermitteln. Das ganze muss also variabel gestaltet sein, denn später können weitere Teile dazu kommen. Deshalb dachte ich an eine Art "Datenbank" oder Datei zum Lesen der Datensätze oder an ein Array mit Positionen. Nur wie kann ich das dann ansprechen? Massig IF oder CASE-Anweisungen sind ja auch nicht gerade elegant. Hat jemand einen Tipp für mich wie ich das Problem lösen kann?  

« Letzte Änderung: 30. November 2009, 10:48:14 von Netman86 »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


Mitsubishi Roboterservice
Beratung, Verkauf, Inbetriebnahmen, Wartung und Reparatur von Mitsubishi Robotern
ROBTEC GmbH ist Offizielles Robotercenter von Mitsubishi Electric

Offline Urmel

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1124
  • Bewertet: +16
Re: Ausgewählte Positionen anfahren
« am: 30. November 2009, 13:45:28 »
Hallo,


also ich habe schon in mehreren Anwendungen tatsächlich eine Datenbank verwendet, natürlich auf einem zusätzlichen Industrie-PC.

Man kann auch auch dem Roboter Textdateien speichern und mit Input daraus lesen. Allerdings teilen die ihren Speicherplatz mit den Roboterprogrammen, da ist nicht so viel da.

Ansonsten kannst du schon mit Array arbeiten, so in der Art
Mov PStation(Teilnr)und die Auswahl mit Case oder so in einem Unterprogramm (GoSub).

Grüße

  Urmel
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Netman86

  • Forum Mitglied LV 5
  • *
  • Beiträge: 45
  • Bewertet: 0
Re: Ausgewählte Positionen anfahren
« am: 30. November 2009, 14:46:38 »
Danke erstmal. Die Situation hat sich nochmal geändert ^^
Und zwar bekomme ich nun den Positionsname direkt als String übermittelt.
Mein bisheriger Code ist somit folgender:

INPUT #1, PMess1, PMess2, PMess3
MVS PMess1
'starte Messung
MVS PMess2
'starte Messung

Manchmal kann es allerdings sein, dass eine Messung entfällt, d.h. das z.b. PMess2 mal ein leerer String ist. Wie könnte ich das jetzt noch prüfen?

Mit
IF PMess2<>"" THEN

bekomme ich einen Fehler.


  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Urmel

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1124
  • Bewertet: +16
Re: Ausgewählte Positionen anfahren
« am: 30. November 2009, 14:56:06 »
Das kann so gar nicht gehen. Eine Positionsvariable ist kein String.

Ein
Input #1, Px
Mvs Px

erwartet die Koordinaten einer Position als String, nicht den Namen einer Position. Also etwas in der Form "(123.45,456.78,789.01,0.12, 23.45, 67.89)".

Einen Variablennamen kann man in Melfa Basic nicht so übergeben. Das hatten wir hier erst letzte Woche ...
http://www.roboterforum.de/roboter-forum/mitsubishi_roboter/variablennamen_aus_wert_einer_zweiten_variable_zusammenstellen-t6613.0.html
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Netman86

  • Forum Mitglied LV 5
  • *
  • Beiträge: 45
  • Bewertet: 0
Re: Ausgewählte Positionen anfahren
« am: 30. November 2009, 15:12:20 »
Wie könnte ich den Variablennamen sonst bekommen?
Ich kann mir also nur die Koordinaten übergeben lassen und in meine Positionsvariable speichern?
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Urmel

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1124
  • Bewertet: +16
Re: Ausgewählte Positionen anfahren
« am: 30. November 2009, 15:23:41 »

Du kannst es in Melfa Basic ausprogrammieren. Da ist einiges an Arbeit

Input #1,PositionsName$

For i = 1 To AnzahlDerPositionen

  If ArrayMitNamen$(i) = PositionsName$ Then PositionsNummer = i

Next i

Mvs PositionsKopie(i)


Also zwei zusätzliche Arrays, eines mit Strings und eines mit Kopien der Positionswerte. Beide sind so sortiert, das im Stringarray der Name der Position auf dem gleichen Index steht, wie der Positionswert im anderen Array.

Das ist etwas mühsam, besonders wenn sich die Positionen ändern ...
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Netman86

  • Forum Mitglied LV 5
  • *
  • Beiträge: 45
  • Bewertet: 0
Re: Ausgewählte Positionen anfahren
« am: 30. November 2009, 16:01:12 »
Danke, dann werd ich damit mal weiter probieren. Das "$"-Zeichen sagt doch nix andres aus als Zeichenkette oder? An den Stellen aus deinem Code, wo es steht bekomme ich immer einen Syntaxfehler, kann das an Melfa Basic 5 liegen dass er damit nix anfangen kann?

  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Urmel

  • Global Moderator
  • Forum Legende LV 1
  • *
  • Beiträge: 1124
  • Bewertet: +16
Re: Ausgewählte Positionen anfahren
« am: 30. November 2009, 16:06:01 »
Ich hab das nur so runtergeschrieben. Die Variablennamen sollten verständlich sein. Ich glaube sie dürfen auch nicht so lang sein.

Stringvariablen müssen, wenn nicht über Def vereinbart, mit einem C beginnen, numerische mit M.
Also müsste es z.B. CName$ und Mi heißen.
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert

Offline Netman86

  • Forum Mitglied LV 5
  • *
  • Beiträge: 45
  • Bewertet: 0
Re: Ausgewählte Positionen anfahren
« am: 30. November 2009, 17:17:33 »
ok werde morgen weiter probieren. aber dann ist wohl die Variante mit
Mov PStation(Teilnr)

und mehreren CASE-Anweisungen die wesentlich einfacherere(wenn auch unkomfortablere), so mal ich ja mehrere verschiedene Positionen anfahren muss.


« Letzte Änderung: 30. November 2009, 17:32:06 von Netman86 »
  • finde ich gut    Danke, das hat mir geholfen    brauche Hilfe    da stimmt was nicht    Lesenswert


question
Winkel mit gesetztem TCP im Koordinatensystem anfahren?

Begonnen von dreadek

2 Antworten
1492 Aufrufe
Letzter Beitrag 11. August 2009, 09:03:04
von dreadek
xx
Absolut-Position anfahren via Ethernet

Begonnen von shorlebein

4 Antworten
1315 Aufrufe
Letzter Beitrag 24. Januar 2014, 17:11:25
von Urmel
question
Laufvariable bei Positionen!?

Begonnen von skok

8 Antworten
4591 Aufrufe
Letzter Beitrag 07. Dezember 2005, 08:44:16
von Werner Hampel
xx
Positionen nicht erreichbar?

Begonnen von skynet

6 Antworten
1144 Aufrufe
Letzter Beitrag 17. April 2014, 11:15:30
von skynet
 

über das Roboterforum

Nutzungsbedingungen Impressum
Sitemap