Globale Punkte in zwei Programmen für Inline-Formular

  • Moin,
    derzeit programmiere ich zwei Roboterprogramme auf einer KR C4, die auf die gleichen Punkte zugreifen sollen.
    Programm 1 macht irgendwelche Dinge, legt ein Teil in A ab und macht weitere Dinge. Programm 2 muss irgendwann mal auf den Punkt A zugreifen, um das Teil wieder aufzunehmen.


    Bis jetzt programmiere ich hauptsächlich mit Inline-Formularen. Am besten würde mir eine Lösung gefallen, mit der ich die gemeinsamen Punkte in einem "Dummy-Programm" ohne weitere Funktion teachen und aktualisieren kann. Ist das möglich? Wenn ja, wie? :hilfe:


    Grüße :zwink:

  • Schritt für Schritt zum Roboterprofi!
  • Dat.File Public machen, Position Global deklarieren, fertig.
    Oder die Deklaration der Positionen in die Config.dat verschieben.
    Dann sind sie auch global.

    Gruß Roland


    Wie poste ich falsch?

    Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Ich bin wie ich bin. Die Einen kennen mich, die Anderen können mich.

    Konrad Adenauer


  • Dat.File Public machen, Position Global deklarieren, fertig.


    aber wie? :hilfe:


    Geht das überhaupt mit Inline-Formularen, oder muss ich alles in KRL schreiben? Vielleicht stelle ich mich ja auch einfach nur etwas doof an, aber bis jetzt habe ich alle Bewegungen immer mit Inline-Formularen und Touch-up zur Korrektur gemacht......

  • Die dat kann nur mit nen externen Editor public gemacht werden. Einfach auf nen stick kopieren und am Ende der DEF-Zeile ein "public"
    einfügen. speichern und wieder auf den Robi schieben (die neu dat mit der alten ersetzen).



    Hier mal nen Prog Bsp.:


    DEFDAT Bsp_Prog PUBLIC
    :
    :
    GLOBAL DECL E6POS XBspPunkt={X 93.5413208,Y 218.229202,Z 2478.95508,A 81.3140564,B -25.0296803,C -31.8720703,S 3,T 35,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}
    :
    :
    ENDDAT



    Ansonsten ist hier noch ganz gut erklärt unter anderem auch was der Robi alles erstellt wenn du im Programm nen Punkt erstellst.
    http://www.roboterforum.de/rob…global/msg54599/#msg54599


    Gruß Toud

    Einmal editiert, zuletzt von Toud ()

  • :danke:, das hat mir denke ich schon etwas weitergeholfen.


    Mittlerweile geht es jetzt um mehrere Programme, die alle auf bestimmte, globale Punkte zugreifen sollen. Im einen Programm ist es P4, im anderen P5. Es sind natürlich andere Punkte, die ich durch einen globalen ersetzen möchte.


    Da ich bis jetzt aber nichts global deklariert habe, sind diese Punkte in jedem Programm nur ähnlich und heißen auch alle anders. Jetzt möchte ich die Punkte entsprechend umbenennen und global machen. Wie würde ich am besten vorgehen und schreibe ich ein X vor die Namen oder nicht?


    Beispiel:
    Punkt A verwendet von prog_1 und prog_2
    Punkt B verwendet von prog_1 und prog_3
    Punkt C verwendet von prog_2 und prog_3


    Sollte es dann lieber nur eine *.dat-Datei für alle geben? Die Punkte sollen aber auch durch handverfahren änderbar "touch-up" sein. Wo deklariere ich z.B. den Punkt A?

  • Morgen,
    erst mal zu dem x, das schreibt der Kuka automatisch vor jedem Punkt wenn due einen neu anlegst (Also wird aus A automatisch xA).


    Dann würd ich dir empfehlen, dass du dir ein genaues chema ausdengst wie dein Punkte heißen sollen. Z.B. Hunderter Punkte.
    Dabei steht der Hunderter Wert für die Jeweilige Station (100 - 199 = Stanze; 200 - 299 = Band etc.). Dann ist es so dass wir z.B. in
    zehner oder fünfer Schritte in die Station fahren. Wobei die noch Sichere Position vor der Station nen Zehnerpunkt ist (z.B. 110 = warten
    vor der Stanze) und die fünziger Position die arbeits Position ist (Endposition -> 150 Entnehmen aus der Stanze). Dann wird auf den selben
    weg zurück gefahren. Die Punkte nach den fünfziger sind zusatz Punkte wenn entweder anders rausgefahren werden muss oder noch was
    eingelegt wird.
    Es gibt natürlich auch genug anwendungen wo du nicht in zehner oder fünfer schritte fahren kannst, weil dir da die Punkte ausgehen, aber
    das ist schon mal nen übersichtliches System wo mann mit einem Blick sieht wo der Robi grade ist (anfahren oder endposition etc.)
    Wenn man buchstaben verwendet (anfahren 1, anfahren 2 etc) wird das ziehmlich schnell unübersichtlich, bzw beim nachteachen überliest mann
    schnelle mal nen Punkt, weil eh alles nur Text ist was da auf dem Display zu finden ist. Vorallem wenn mehrer Stationen hat was mann nicht was
    für nen anfahren grad gemeint ist.
    Wenn du ne Struktur hast würd ich dann eine Dat nehmen wo alle Punkte rein kommen und diese dann Global machen, damit keine Punkte gelöscht
    werden wenn du mal nen Prog nicht mehr brauchst und diese wo anders verwendest.

    Einmal editiert, zuletzt von Toud ()

  • Naja, sprechende Punktnamen sind schon brauchbar.
    z.B. xWP_Aufnahme für Warteposition über der Teileaufnahme oder xGreifPosStat2 für Greifposition Station 2
    Das erleichtert wenns gut gemacht wird einiges bei der Übergabe an den Kunden....


    Wichtig eben Tool und Base dabei korrekt zu beachten. Globale Positionen sind da etwas .... na eben heikel.

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • Ich halte von Punktenummerierung eigentlich gar nix, sondern vergebe lieber Namen, die Rückschlüsse auf die Positionen geben (wie auch WolfHenk). Wer seine Programme offline erstmal vorbereitet, der kann auch Punktenamen verwenden wie xVorAblage1Palette1 und xAblage1Palette1. Da ich aber auch häufig noch am KCP anpasse, nenne ich die Positionen meist einfacher:


    xPAL1VABL1 und xPAL1ABL1 bedeutet Palette 1 vor Ablage Position 1 und Palette 1 Ablage Position 1.


    Noch schöner sieht es aus, wenn man mit Groß und Kleinschreibung arbeitet.


    xPal1VAbl1 usw...

    Greetings, Irrer Polterer!

    Wie poste ich falsch? Nachdem ich die Suche und die FAQ erfolgreich ignoriert habe, erstelle ich das gleiche Thema in mehreren Unterforen, benutze einen sehr kreativen Titel wie "Hilfe", am Besten noch mit mehreren Ausrufezeichen, und veröffentliche einen so eindeutigen Text, dass sich jeder etwas Anderes darunter vorstellt.


    Life is a beta version. Full of bugs and no Manual.

  • Ob ich da jetzt Namen oder Nummern für nehme, werde ich dann sehen, es sind ja auch nicht sooo viele Punkte, die ich global brauche. Die anderen werden alle fortlaufend per Inline-Formular angelegt und geteacht. Die Frage ist nur, was passiert, wenn z.B. XP5 global ist, und ich in einem anderen Programm vier Punkte geteacht habe und jetzt einen fünften anlege. Der heißt dann ja auch XP5.....



    Wichtig eben Tool und Base dabei korrekt zu beachten. Globale Positionen sind da etwas .... na eben heikel.


    Dazu gleich eine Frage: Im Inline-Formular zu dem Punkt kann ich ja auch Base und Tool auswählen. Also sind beide Eigenschaften ja auch Eigenschaften des globalen Punktes, oder nicht? Ich habe sowiso keine verschiedenen Tool-Geometrien, die Tools unterscheiden sich nur in den Lastdaten (Teil gegriffen oder nicht).


    Also nochmal zusammenfassen: Eine einfache *.dat anlegen, Punkte in T1 anfahren (und wie dann speichern/teachen?? Geht das nicht nur in einem Programm??) und wenn gespeichert mit global und public versehen, wie beschrieben?

    Einmal editiert, zuletzt von h_robot ()

  • nun, zur Position gibts noch weitere Daten... Die alle global, dann bist Du sicher vor Überraschungen.... Aber alles hat auch ein Ende, (außer einer Leberwurst) und das ist dann eben das Inlineformular... Wenn Du Globale Punkte anlegst, dann kannst Du die im ILF eines Programms ändern, siehst es aber nicht, wenn Du ein anderes Programm anwählst. Dort kann das ILF völlig falsche Daten zeigen, was aber dann keineswegs wahr ist...


    Es gehört also auch etwas Forschung Deinerseits dazu, was wie wo und wann passiert.


    Zum Howto: Teach einfach mal herkömmlich in einem temporären Programm die globalen Punkte und verschiebe dann Deine Daten aud dem .dat in die Config.dat
    Danach erstell die weiteren Programme. Punkte nachteachen einfach wie gewohnt.

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

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