Programmänderungen bei mehreren Programmen

  • Hallo,
    hab mal wieder eine Frage:


    Hab bei einem Kunden mehrere Handlings-Roboter stehen.
    Die Roboter nehmen Teile von einem Band und legen es in die Maschine ein, bzw. umgekehrt.
    Auf jeder Anlage laufen verschiedene Bauteile. Für jedes Bauteil haben wir ein Programm, da die Positionen sich immer etwas unterscheiden. Ein Cell Programm verwaltet die Programmauswahl.
    Soweit also Standard :angel:


    Nun hat aber der Kunde dauernd Änderungswünsche :wallbash:
    so dass sich die Programme öfter mal verändern.
    Dann müssen alle Typprogramme "angefasst" werden


    Ich würde daher die Typverwaltung gerne anders machen.
    Also nur ein Programm und die Positionen anders verwalten.
    Hat jemand eine Idee, wie man das machen kann?
    Ideen von uns waren u.a
    - Positions-Arrays mit Index (geht nicht, weil im Inlineformular nicht eingebbar)
    - Umkopieren der Dat-Files (keine Ahnung, wie das gehen könnte)


    Hat jemand eine Idee, wie sich das sonst realisieren lässt?

    Gruss<br /><br />Dodo

  • Schritt für Schritt zum Roboterprofi!
  • ich seh da zwei möglichkeiten:


    - für jedes teil separate teachpunkte, die im programm übersprungen werden. nur der auserwählte wird per switch einem frame zugewiesen. von diesem punkt aus dann die "vor"-positionen berechnen.


    - eine tabelle die die werte beinhaltet, welche sich von typ zu typ ändern. wenn nur die länge anders ist, reicht das zett. auch das wird auf den typ geswitcht.


    der typ kann per dialog beim programmstart festgelegt werden.


    zu knapp? :angel:


    naja. wenn das programm immer das gleiche macht, find ich es wirklich umständlich, nicht standard, für jeden typ, nur wegen der unterschiedlichen geometrie, ein eigenes zu hinterlegen...


    gruss, rob

    &quot;When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see.&quot;<br />Bill Joy 1978


  • wenn das programm immer das gleiche macht, find ich es wirklich umständlich, nicht standard, für jeden typ, nur wegen der unterschiedlichen geometrie, ein eigenes zu hinterlegen...


    Hmmm, haben mir nette Leute in Augsburg so beigebracht! :kopfkratz:


    mal ne blöde Frage. Was verstehst Du in diesem Kontext unter einem "Frame" ?


    Das mit dem Überspringen hört sich ganz gut an. Das könnte man entsprechend "falten".

    Gruss<br /><br />Dodo

  • ein frame ist eine position ohne status und turn. also nur { x y z a b c }.
    man könnte auch sagen ein punkt im raum mit ausrichtung.
    ich mach ein kleines beispiel. brauch aber etwa ne halbe stunde...

    &quot;When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see.&quot;<br />Bill Joy 1978

  • also. so könnte das mit inline teachpunkten aussehen. das dat ist unübersichtlich wie immer. ich hab's trotzdem dazugetan. bei einem 5.2er sollte das laufen, wenn du das INI mit deinem ersetzt (wegen der techpacks) (erst teachen ;))


    das src:


    ...und das dat:


    ich verwend normal keine inline formulare. dann lässt sich das auch mit nem normalen editor anschauen... sonst kannst du den roboter verwenden, oder den von KUKA schweisstechnik(freeware): http://www.roboterforum.de/rob…um/index.php?topic=1455.0


    ich muss jetzt nochmal in die halle und kann erst am abend wieder reinschauen...

    &quot;When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see.&quot;<br />Bill Joy 1978

    Einmal editiert, zuletzt von rob ()

  • Hallo.


    Ich möchte mal meine Vorgehensweise darlegen, wenn ich eine Bearbeitungszelle mit mehreren Typen zu programmieren habe.
    Ich lege für jedes Teil Datensätze in der config.dat an (arrays) die die erforderlichen Abmessungen des Werkstücks enthalten.
    Mit diesen Werten berechne ich mir die Aufnahme und Ablegepositionen mitsammt den Anfahrten.
    Voraussetzung dafür ist, das ich mir Base-Koordinatensysteme an den Ablagen oder Aufnahmen vermessen habe, die einen Bezug zu den Berechnungen bilden.
    In den Unterprogrammen (in denen die Bewegungen stattfinden) berechne ich mir erst alle Positionen, und fahre sie dann an.
    Durch die Verwendung der Datensätze, kann das Typenspektrum auch leicht erweitert werden.

    Ob orange oder blau, die können nerven wie die Sau.

  • :genau: ...und das teil am besten als STRUCtur auslegen:


    $config.dat :
    --------------


    ...dann lässt sich in den programmen so darauf zugreifen...

    Code
    DEF arbeit (akt_teil :IN )
    INT akt_teil
    FRAME position
    ;...
    position = $NULLFRAME
    position.x = position.x - teil[akt_teil].laenge / 2.0 ; geht auch wenns vorher keine null ist
    ;...


    ...und so wird das programm aufgerufen...

    Code
    arbeit( langes_teil ) ; oder
    arbeit( kurzes_teil )

    &quot;When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see.&quot;<br />Bill Joy 1978

    Einmal editiert, zuletzt von rob ()


  • Ich lege für jedes Teil Datensätze in der config.dat an (arrays) die die erforderlichen Abmessungen des Werkstücks enthalten.
    Mit diesen Werten berechne ich mir die Aufnahme und Ablegepositionen mitsammt den Anfahrten.


    Mit was für Teilen arbeitest Du?
    Wenn ich mir das mit unseren Teilen (Gussteile Automobiltechnik) vorstelle... :kopfkratz:


    rob: Ich guck mir das mal näher an, sieht gut aus!
    :danke:

    Gruss<br /><br />Dodo

  • hmm... gussteile... OK.
    wenn die teile komplett verschieden sind, ist die lösung mit "teachpunkte switchen" wohl am sinnvollsten. wenn du mir zwei beispielprogramme mailst, kann ich dir einen vorschlag machen. am besten mit $config.dat und cell.src.


    rkarmann ät rego-fix punkt ch

    &quot;When using vi the screen of your terminal acts as a window into the file which you are editing. Changes which you make to the file are reflected in what you see.&quot;<br />Bill Joy 1978

  • Also wir haben es mit allen möglichen verschiedenen Teilen zu tun.
    Gußteile unter anderem auch,
    das fängt bei kleinen Teilen wie Fittings an und hört bei 2 t schweren Motorblöcken auf.
    Die Datenverwaltung im Roboter wird bei uns aber nur im Notfall benutzt, da meistens eine SPS die Datenverwaltung übernimmt.
    Die Daten werden bei einem Typwechsel über Profibus an den Roboter übermittelt.
    Ich kann dir aber mal ein Programmbeispiel zukommen lassen in dem die Verwaltung im Roboter liegt.
    Die Daten werden mit Hilfe der Configmon.ini eingegeben und auch abgerufen.

    Ob orange oder blau, die können nerven wie die Sau.

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