Teachpunkte wie am besten organisieren?

  • Hallo zusammen,

    ich bin gerade dabei in der Firma eine vernünftige Programmstruktur für unsere Kuka Roboter (zum ersten mal im Einsatz, sonst Epson) zu basteln.


    Dabei bin ich gerade am überlegen wie ich meine gesamten Roboterpositionen logisch, übersichtlich und sinnvoll in meinen Programme anlege.


    Ich habe mir überlegt ein Modul mit allen abteachbaren Punkten zu erstellen. Die .dat Datei dann auf public setzen und vor den Punkten Global zu schreiben.

    So hätte ich ja dann Zugriff von jedem x-beliebigen Unterprogramm auf alle meine Punkte und ich hätte alle meine Teachpunkte übersichtlich in einem Programm, wo ich ein nachteachen auch schön durchführen könnte und die Punkte ewig in irgendwelchem Programmcode suchen zu müssen.


    Allerdings fehlt mir jetzt die Erfahrung um zu sagen, ja das ist die beste Variante.


    Könnt ihr mir vielleicht ein paar Erfahrungsberichte mitteilen, was zu beachten wäre wenn man es so macht oder gibt es villt. noch elegantere Lösungen?



    Und zu guter Letzt noch eine Frage an die Experten. Wenn ich ein Expertenmodul erstelle und teache mir ein Punkt über das ILF ab und setze den Haken bei ,,globaler Punkt''. Warum muss ich dann immernoch in der .dat Datei die Punkte mit Global versehen, obwohl der Punkt ja schon als Global im ILF deklariert wurde? Ist das villt. ein Verbesserungsvorschlag für KUKA oder übersehe ich da etwas?


    Ich bin über jede Antwort dankbar :)


    Gruß Max

  • Schritt für Schritt zum Roboterprofi!
  • Servus Max,


    wichtig bei globale Punkten ist auf jeden Fall ihnen einen einzigartigen Namen zu geben, um Doppeldeklarationen zu vermeiden. Weiters könntest du die Punkte auch ins config.dat im User Fold kopieren. Diese sind dann global verfügbar und du musst nicht nach einem bestimmten .dat file suchen, sondern hast die Punkte zentral gespeichert. Was die beste Variante für deine Anwendung ist, hängt letzten Endes von deiner Präferenz ab.


    Bzgl. ILF:

    Diese Punkte werden ins Global_Points.dat gespeichert


    Hier noch weitere Infos, es gibt mehrere Threads zu diesem Thema. Evtl. auch einfach mal danach suchen. ;)


    Globaler Punkt


    Wie deklariere ich einen Punkt in einer Datenliste global


    LG

  • Moin Max,


    Die Robotersteuerung speichert globale Punkte unter KRC:\R1\System in der Datei Global_Points.dat. Die Namen der Datensätze beginnen mit "g"für "global".

    Die Abnahme von GOTO Anweisungen verhält sich reziprok zur Qualität einer Programmierung

  • Hallo,


    das mit der Global_Points.dat gibt erst bei den neueren KSS Versionen. Er hat seine KSS Version nicht dazugeschrieben.;)

    Was immer funktioniert ist eine Dat-File nehmen:

    So schauts in etwa aus. Header kann anders sein, je nachdem wo das File auf der Steuerung liegt und ob Kommentar dabei ist. Ab "DEFDAT" ists interessant.


    &ACCESS RV

    &REL 1

    DEFDAT globale_Positionen PUBLIC


    DECL GLOBAL E6POS XP1={X 0.0,Y 0.0,Z 0.0,A 0.0,B 0.0,C 0.0,S 6,T 27,E1 0.0,E2 0.0,E3 0.0,E4 0.0,E5 0.0,E6 0.0}


    END


    wie das Dat-File benannt ist, ist egal.

    Punkt als Global deklarieren ist wichtig.


    Ich machs eigentlich immer Oldschool in der Config.dat. Besonders bei KRC2 ists sehr mühsam die

    Deklaration des Punkts zu finden. Da gibds kein falsch oder richtig in meinen Augen. Config.dat untersucht meines Wissens halt jeder KUKA-Programmierer gleich wenn er Deklarationen sucht.

    In der Config.dat kannste dir auch das "GLOBAL" in der Deklaration sparen.


    Gruss

    Martl

  • Also ich belasse die globalen Punkte wie durch Kuka erstellt in der "global_points.dat" und sortiere mir diese entsprechend über Kommentare/Folds den einzelnen Prozessen zu. Dadurch das in der DAT nur die Bewegungsparameter abgelegt werden schreibe ich mir z.b. immer Projektbezogene Teiledaten hinzu (Variantenbezeichnungen, Gewichte, etc.).



    Wichtig bei so einer Vorlage finde ich halt immer das es einheitlich ist und bleibt, falls Ihr also auch mit älteren KSS Versionen arbeitet wäre es schlauer die Punkte in der Config.dat abzulegen.

    Bei der Config.dat aber dann auch darauf achten das die Punkte in dem Teil "User Globals" abgelegt wird, bei einem Systemupdate wird der Teil meines Wissens nach nämlich nicht angefasst.


    Was die Erfahrungen angeht, kann ich nur sagen, dass ich mittlerweile direkte Prozesspunkte (also bspw ein Greifpunkt beim Handling) lokal belasse, natürlich dann auch nur wenn dieser Punkt nur in dem entsprechenden Modul aufgerufen wird. Falls solche Prozesspunkte in einer eigenen Grundstellungskette abgefahren werden ,sollten diese natürlich auch global angelegt werden.

  • Mahlzeit….


    Jedes Produkt hat sein eigenes Programm…

    Also seine eigene src. Und dat Datei…


    So bin ich mir sicher dass alle geteachten Punkte nur zu diesem Produkt gehören…


    Global ist bei mir nur überwachungen…greifersnsteuerungen etc.

  • Moin,

    ich würde davon abraten die globalen Punkte über verschiedene .dat zu verteilen. Irgendwann verliert man den Überblick, was wo deklariert ist. Die zentrale Verwaltung ist da einfacher zu warten.

    never touch a running system

  • Servus Max,


    ich habe auch immer ein Teach Programm, das ist meiner Meinung immer die einfachste Lösung. Zum einen ist bei Kopie auf baugleiche Anlagen nur das Teach Programm Unterschiedlich, bei Programmänderungen musst du nicht Teach Positionen beachten, du kannst einfach einspielen und es passt für alle Roboter. Des Weiteren ist es einfacher so ein Programm auf einen anderen Roboter Typ umzustellen. Kuka in ABB ist relativ Einfach aber zu Fanuc wird Problematisch, ist aber mit der Zentralen Teachposition Verwaltung wieder relativ einfach Umzusetzen.


    Gruss vom Team

  • Servus Team Rosario,

    Ja so werde ich es denke ich auch machen.

    Ein globales Teachprogramm welches übersichtlich durch Folds und Kommentare strukturiert wird.


    Das macht die eigentlichen Unterprogramme meiner Meinung nach auch übersichtlicher.


    Gruß vom Max :)

  • Habe gerade das Thema hier gefunden und hatte mir ein paar Fragen gestellt.

    Wie würde in dem Falle einer Public .dat mit allen benötigten Punkten (global) tun Beispiel ein teachvorgang aussehen? Also man fährt ein Programm in T1 ab und möchte jetzt ein Punkt neu teachen.

    Bzw. zunächst die Frage, wie erstellst du überhaupt die Bewegungsprofile in einem Programm? ILF oder manuell in KRL? Und wie fügt man im Feld einen Punkt zur .dat hinzu?


    Ich arbeite im Moment mit KUKA.ExpertTech und mache alles drumherum in Work Visual. Funktioniert, flutscht aber nicht so geschmeidig.

    Deshalb würde ich mich über ne Antwort zu dem Workflow mit so einer beschrieben .dat POS Sammlung freuen.


    Gruß

  • Servus RJust, man macht einfach ein neues Modul und in der Source sind alle ILFs von den teachbaren Punkten und in der .dat setzt man alle Punkte auf global. Wenn man einen weiteren Punkt benötigt erstellt man sich einfach ein ILF in der .src


    Aufrufen tut man das Ganze dann in den jeweiligen Unterprogrammen mit Expertenbefehlen.


    In dem Programm mit allen teachbaren Punkten kann man sich das Ganze ja so organisieren das man es als eigenständiges Bewegungsprogramm abfahren lassen kann.


    Erleichtert mir die Arbeit ungemein, da ich die ganze Kommunikation mit der SPS etc nicht benötige und die Bewegungsroutinen so besser testen kann.

  • Hey der_max89 , danke für die schnelle Rückmeldung!

    Dann hatte ich das tatsächlich zunächst anders vor Augen.

    Also du hast quasi eine Datenbank mit ILF erstellten Bewegungen (src)/globalen Punkten (public dat), jedoch ohne Logiken via SPS.

    Die eigentlichen Programme für EXT nutzen dann die globalen Punkte und auch die nötigen Logiken, alles mit Expertenbefehlen.


    Also wäre der Workflow beim Punkt zur Bewegung im eigentlichen Programm hinzufügen:

    Du gehst in die "Datenbank" an die passende Stelle, fügst ein ILF Befehl ein, gehst in die dat um "global" in die DECL zu schreiben. Dann in das eigentliche Programm und den Punkt manuell einfügen?


    Ich finde den Ansatz ehrlich gut, aber für meine Anwendung passt es glaube nicht so. Werde es mir aber merken!


    Was man natürlich korrekt und umprogrammiert übernehmen muss, sind die ganzen restlichen Bewegungsparameter wie Beschl., Geschw., Überschleifen usw. Oder nutzt du die FDAT und PDAT Daten?


    Da fällt mir gerade auf, dass man diese ja auch global machen könnte und dann für die eigentlichen Programme in Form von z.B. BAS(#TOOL,FP1.TOOL_NO) nutzen könnte. Sofern die gleichbleibend sind, könnte man die Parameter von markanten Punkten (hier XP1) in das EXT Programm übernehmen.


    Wie sieht das bei dir aus?

  • Wenn ich mal ein fremdes Programm mit diesem externen Teachprogramm ändern/anpassen/teachen muss bekomme ich schnell mal die Krätze. Oft sind die schlecht gepflegt, so dass da halt doch nicht alle Bewegungsfolgen so drin sind wie im anderen Programm. Ist auch häufiger gar nicht so einfach, wenn ein Programm mal auf enge Taktzeiten optimiert wird.

    Wenn im Produktionsprogramm die Experten Befehle verwendet werden und Expert Tech nicht installiert ist, dann kann im Produktionsprogramm nur mit Kunstgriffen geteacht werden. Da ist das dann für mich ein absolutes NoGo.

    jm2c

  • Moin Hermann,

    vielen Dank für deine Aussage! Genau das sind meine Gedanken gewesen, deshalb habe ich auch ExpertTech installiert. Aber mir fehlt irgendwie noch eine komfortable Möglichkeit, die mit ExpertTech geteachten Punkte global Verfügbar zu machen und wiederzuverwenden. Z.B. für Rückzugsstrategien oder einfach weitere Anlagen.

    Wie handhabst du das?

  • Nach Möglichkeit die Rückzugsroutine auch im entsprechenden Programmfile unterbringen, dann brauchts keine globalen Punkte.

    Also im Hauptprogramm beim Rückzug schauen in welchem UP man steckt, und die dort untergebrachte, als global deklarierte Rückzugsroutine für diesen Ablauf aufrufen.

  • Wenn ich mal ein fremdes Programm mit diesem externen Teachprogramm ändern/anpassen/teachen muss bekomme ich schnell mal die Krätze. Oft sind die schlecht gepflegt, so dass da halt doch nicht alle Bewegungsfolgen so drin sind wie im anderen Programm. Ist auch häufiger gar nicht so einfach, wenn ein Programm mal auf enge Taktzeiten optimiert wird.

    Wenn im Produktionsprogramm die Experten Befehle verwendet werden und Expert Tech nicht installiert ist, dann kann im Produktionsprogramm nur mit Kunstgriffen geteacht werden. Da ist das dann für mich ein absolutes NoGo.

    jm2c

    Servus Hermann,

    Ja kann dich da absolut verstehen. Bei uns sind überwiegend Scara Roboter im Einsatz wo man meist nur eine Zielposition einteachen muss und bei mehreren Varianten ist das mit einem globalen Teachprogramm (welches sauber gepflegt wird) für uns am schönsten.


    Wenn man komplexere Anwendungen hat mit sehr vielen Zwischenpunkten würde ich wahrscheinlich auch lokale ILF verwenden ✌️


    Gruß

    Max

  • Nach Möglichkeit die Rückzugsroutine auch im entsprechenden Programmfile unterbringen, dann brauchts keine globalen Punkte.

    Also im Hauptprogramm beim Rückzug schauen in welchem UP man steckt, und die dort untergebrachte, als global deklarierte Rückzugsroutine für diesen Ablauf aufrufen.

    Ok, unabhängig davon: Wie nutzt du oft wiederverwendete Position mit ExpertTech?

    Einfach die PTPs/LINs mit den Koordinaten kopieren?

    Die Gefahr, einen Punkt beim Ändern der Koordinaten zu vergessen, ist relativ groß.


    Oder Punkt via ExpertTech teachen, manuell neue POS z.B. in config.dat deklarieren und die Positionsdaten des zuvor erstellten Punktes in die config.dat kopieren? Danach dann die Koordinaten bei der Bewegung durch den Punktnamen ersetzen?

    So würde man beim "nachteachen" zwar keinen Punkt vergessen, jedoch ist das nachteachen nicht durch ein "Touch-Up" durchführbar, oder?


    Lässt sich zufällig der Name des aktuellen Punktes auslesen? Dann könnte man via submit und und irgendeinem Input die POS_ACT in den aktuellen Punkt schreiben. Also quasi teachen.

  • Den Fall hatte ich noch nie.

    Nachteachen von Punkten mit Namen mit expert tech sollte schon gehen. So würde ich das machen.

    Ehrlich gesagt verwende ich expert tech nur extrem selten. Kostet halt extra, wird selten dazugekauft.

    Immer nach dem kiss Prinzip arbeiten. Keep it simple, stupid.

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