Ausgewählte Positionen anfahren

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

    Einmal editiert, zuletzt von Netman86 ()

  • ANZEIGE
  • Hallo,



    Deshalb dachte ich an eine Art "Datenbank" oder Datei zum Lesen der Datensätze


    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

    Code
    Mov PStation(Teilnr)


    und die Auswahl mit Case oder so in einem Unterprogramm (GoSub).


    Grüße


    Urmel

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


    Code
    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

    Code
    IF PMess2<>"" THEN


    bekomme ich einen Fehler.


  • Wie könnte ich den Variablennamen sonst bekommen?


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



    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 ...

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

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

  • ok werde morgen weiter probieren. aber dann ist wohl die Variante mit

    Code
    Mov PStation(Teilnr)


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

    Einmal editiert, zuletzt von Netman86 ()

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