Beiträge von newbiemechatronic

    Hallo zusammen,
    wir haben bei uns einen Denso Roboter Model VS-6556E/GM-BW. Seit Sommerbeginn wirf der Roboter eine Fehlermeldung aus, aufgrund derer er sich nicht einmal mehr Verfahren lässt. Die Meldung lautet "6426 J6 Kodiererdaten nicht empfangen", wobei auch für die anderen Achsen die selbe Meldung erscheint. Jetzt wollte ich mich mit Denso in Verbindung setzen, bezüglich Hilfe bei der Reaktivierung. Da der Roboter vorher längere Zeit nur herum stand, nehme ich des weiteren an, dass auch ein Service notwendig sein wird. Der Kontakt zu Denso über die Kontaktseite auf der Homepage ist aber bisher leider erfolglos geblieben. Hat jemand Kontaktdaten, für einen technischen Support, an den ich mich wenden könnte. Das Problem ist, dass der Roboter lange vor meiner Zeit zu uns gekommen ist und auch schon vor meiner Zeit stillgelegt worden ist. Ich bin für jede Hilfe dankbar.


    lg
    newbie

    Hallo zusammen,


    ich hab dieses Mal einen etwas komischen Fehler zu dem ich einfach nichts finde. Aufgetreten ist der Fehler vergangenen Donnerstag, bei einem KR6 sixx R900 mit KRC4 compact. Gemeldet hat die Steuerung einen Umrichterfehler auf sämtlichen Achsen und einen Erdschluß auf allen Achsen. Mein Kollege, der zu der Zeit mit dem Roboter gearbeitet hat hat die Meldungen fotografiert und dann alle Meldungen quittiert. Seitdem ist der Fehler auch nicht mehr aufgetreten. Ich hab mir von meinem Kollegen alles erklären lassen, was er mit dem Robi gemacht hat, aber außer ein Testprogramm im AUT Modus zu starten hat er nichts gemacht. Ich hab das ganze seit Freitag dann laufen lassen und bin die ganze Zeit daneben gesessen, der Fehler ist leider nicht mehr aufgetaucht. Daher wollte ich einmal hier im Forum nachfragen, ob jemand diesen Fehler schon einmal gehabt hat und mir sagen könnte wonach ich suchen soll? Ich hab euch ein Foto von den Meldungen angehängt. Weiterführend hätte ich natürlich die Frage ob ich den Robi weiter betreiben kann/soll, oder ob ich ihn besser vorübergehend deaktivieren soll.


    Grüße
    newbie

    Hi Otto Sieben,
    vielen Dank für die Info. Ich hab mir heute schon von demjenigen, der bei uns den Robi betreut, die Doku zu mxAutomation kommen lassen. Die Freigabe für die Technologiepakete hab ich noch nicht gefunden, werde es mir aber morgen nochmal anschauen. Zu der Idee mit der Kommunikation zur SPS: Die haben wir auch schon gehabt (wäre mir persönlich auch lieber), aber da Spielt der Sensor noch nicht mit. Bei dem von uns verwendeten Sensor geschieht die Datenauswertung auf einem PC und von dort werden die Daten an den KUKA geschickt. Dafür brauchen wir EthernetKRL. Das ganze ist auch schon mal auf einem anderen Robi bei uns gelaufen (den es leider nicht mehr gibt).
    Aber so wie es ausschaut, werde ich wohl bei KUKA das EthernetKRL für die KSS8.5 besorgen müssen und das ganze auf der neuen Version aufsetzen müssen. Hat jemand da vielleicht Erfahrung, ob sich bei einer neueren Version etwas an der Konfiguration ändert? Oder kann ich einfach mein altes Konfig File auf den Robi laden und die Kommunikation wieder aufbauen.


    Vielen Dank an das tolle Forum.
    newbie

    Hi vielen Dank für die Info,


    so wie ich das jetzt verstanden hab sollten die zwei Protokolle sich nicht gegenseitig beeinflussen. Nur zur Klärung: hast du auch beides über die X66 Schnittstelle laufen lassen? Oder war das getrennt? Für die Profinet IO's hast du da mxAutomation verwendet oder eine andere Software von KUKA.

    Hallo zusammen,


    ich habe von SICK einen Scanner bekommen mit dem wir bei uns einen Griff in die Kiste realisieren wollen. Geplant ist den Scanner mit einem KR6 mit KRC4 compact zu betreiben. Davon haben wir zur Zeit zwei Stück verfügbar.
    Der eigentlich geplante läuft mit KSS8.5.6. Für die Kommunikation wird EthernetKRL benötigt.
    Für das Projekt habe ich EtherntKRL 2.2.8.155 bekommen, das leider nicht auf KSS8.5 läuft.
    Jetzt war die Idee das ganze auf dem zweiten Roboter zu realisieren. Mein Problem ist, dass der bei uns via Siemens SPS und mxAutomation 2.1.6 in einem Testversuch läuft. Prinzipiell wäre es kein Problem da den Scanner hineinzuhängen. Ich bin mir nur nicht sicher wie sehr sich EthernetKRL und mxAutomation vertragen. Noch dazu würde dann alles über die X66 Schnittstelle der C4 compact laufen und ich bin mir absolut nicht sicher wie sich das verträgt. Meines Wissens nach läuft mxAutoamtion ja auf Proifnet basis und was ist wenn ich jetzt nich EthernetKRL dazu hänge?
    Ich bin wie immer für jeden Input dankbar.


    newbie

    Hey euch allen,


    Vielen Dank für die Tolle Hilfe mit dem Projekt. Ich hab's endlich geschafft alle digitalen Ein- und Ausgänge zu konfigurieren. Sind auch schon getestet und funktionieren spitze. Jetzt bin ich dabei die analogen Fertig zu machen. Nachdem ich mit die Systemparameter Doku jetzt mehrfach durchgelesen habe ist eine letzte Frage bei mir aufgekommen. Bei der Konfiguration gibt man den Logical, den Physical und den Bit Value an. In der Doku steht jetzt: Wenn der Logical Value auf null gesetzt wird, werden direkt die physischen Werte zugeordnet. Wenn der physische Wert auf null gesetzt wird wird direkt der Bit-Wert zugeordnet. Wenn der Bit Value auf null gesetzt wird wird der Wert auf Basis des Analog Encoding Type berechnet. Verstehe ich das ganze richtig, dass ich jetzt hergehen könnte, bei allen null reinschreiben könnte und bei Analog Encoding Type für den Messbereich -10V bis +10V einfach nur Two complement auf max = 2^(16-1)-1 und min = 2^(16-1) konfigurieren muss?


    Ich danke euch allen nochmals vielmals für die tolle Hilfe hier im Forum :danke:

    Hi,


    6303_6349: Nach dem ich jetzt den "Unit Typ" unter "Unit" geändert habe, ist endlich die Meldung mit der Größe weg. Wieso das bisher funktioniert hat, weiß ich aber immer noch nicht (ist aber auch egal). :denk:
    Der nächste Schritt ist das erstellen der Signale, nehme ich an? Wir haben da schon für die bisherigen 16 Eingangs- bzw. Ausgangssignale Signale definiert. Die müssen wahrscheinlich auch geändert werden. Zwei Dinge sind mir jetzt noch unklar:
    1) Was trage ich in "Unit Mapping" ein? Zähle ich da einfach die Ein- und Ausgänge zusammen und sage dann: Der erste Eingang ist ein Analoger Eingang, daher erstelle ich ein Analoges Eingangssignal und unter Unit Mapping trage ich dann dafür 0 ein. Da wir 8 analoge Eingänge haben, müsste ich für den ersten digitalen Eingang also 8 Eintragen (9 Eingang im Verbund - 1)? Und das selbe für die Ausgänge?


    2) Wenn ich ein analoges Signal erzeuge, will der Instanz Editor den maximum logical value, den maximum physical value, maximum physical value limit, das maximum bit value und auch die entsprechenden minimal eingesetzt bekommen. Bei einer analogen Eingangskarte mit 12 Bit Auflösung, -10 ... +10V Messbereich, einer Breite im Prozessbild von 4x16 Bit? Der maximale pysical Value wäre dann 10V, der maximum bit value 32,767 (2^15 ? 1), der minimale bit value ?32,768 (?1 × 2^15)? Was wird dann als logical value angegeben?


    Vielen Dank für die Hilfe

    Hi Programmiersklave,


    Ich hab folgendes gemacht:
    1) Im RobotStudio hab ich unter Kunfiguration -> I/O -> Unit nachgeschaut. Da ist der Beckhoff Koppler als DeviceNet Unit eingetragen. Der Typ ist bei uns Standardmäßig auf DN_Generic gesetzt (Screenshot Bild 5). Sollter der im laufenden Betrieb anders sein?


    2) Auf dem FlexPendant hab ich im ereignis Log nachgeschaut und finde ein paar meldungen bezüglich der E/A. Von der DeviceNet Meldung hab ich ein Foto angehängt. Sind diese Größen einzutragen? Was mich wundert ist die unterschiedliche Größe, obwohl gleich viele Ein- als auch Ausgänge vorhanden sein sollten.


    Grüße newbie

    Hi 6303_6349,
    vielen Dank erstmal für die Antwort. Ich hab hier einmal einen Screenshot im Robotstudio gemacht. Das ist die alte Konfiguration, wie wir sie bis jetzt genutzt haben. Aus irgendeinem Grund konnten wir damit 16 Ein- und Ausgänge steuern. Keine Ahnung wie der Kollege das damals bei der Inbetriebnahme gemacht hat. Nur damit ich auch alles überprüfe, das Vorgehen ist das folgende: RobotStudio öffnen -> Direktverbindung zu Roboter erstellen -> unter Konfiguration -> I/O wählen -> Unit Type -> BK5250 -> Bearbeite Unit Type.
    Und hier werden dann die neuen Input und Output Size eingetragen. Stimmt dieses Vorgehen? Und wie macht man dann das Mapping der Ein und Augänge? Ganz schlau werde ich aus den verfügbaren Unterlagen nicht.

    Hallo 6303_6349
    Nach langem Warten haben wir heute endlich die Beckhoff Module bekommen und auch gleich eingebaut. Beim Konfigurieren der Module sind wir aber auf ein Problem gestoßen. Wir haben die Module in der Reihenfolge eingebaut wie du meintest. Beim Eintragen der Ein- und Ausgangsgröße sind wir uns aber unklar was wir da eintragen sollen. Wir hatten bis jetzt 16 digitale Eingänge und digitale 16 Ausgänge. Im Instanz Editor wird die Größe in Bytes eingetragen. Bei uns steht aber beide Male nur "1", was uns etwas verwundert da 16 Ein- oder Ausgänge ja eigentlich 2 Bytes sein sollten. Jetzt sind wir uns nicht sicher was wir mit den neuen Modulen eintragen sollen. Welche Größe ist hier einzutragen. Die Größe im Prozessabbild oder Größe anhand der Auflösung. Zur Info wir verwenden RW5.61_08.00.8001. Wie müssen wir hier die Größe zusammenrechnen und eintragen. Ist nach dem Eintragen der Werte, dann noch etwas zu machen, bezüglich des Mappings der Ein und Ausgänge?
    lg und schöne Feiertage aus Wien
    newbie

    Zitat

    [size=1][font=verdana, sans-serif]Aber auch nur zufällig, weil Du die Wahrscheinlichkeit drastisch erhöhst, dass der eine dem anderen nicht in die Schleife grätscht. Ein Handshake ist das nämlich nicht. [/font][/size]


    Programmiersklave: Vielen Dank für das Feedback. Ich hab mir deinen Rat jetzt nochmal angeschaut und daraufhin die beiden Programme nochmals von neuem überarbeitet. Mit dem Python Code werde ich hier aber nicht quälen, da es dafür andere Orte gibt. Nur zum KRL Code hätte ich noch ein paar Fragen. Ich habe den Code in der Loop einmal in zwei Bereiche geteilt. Einmal ist keine neue Information vom Master erhältlich, heißt folglich, ich muss keine neuen Werte lesen und kann mich bewegen. Ist Available gesetzt so warte ich bis MWriting einmal True gesetzt wird. Danach wird gewartet, dass MWriting wieder False wird. Jetzt müsste sichergestellt sein, dass der Master die Daten vollständig geschrieben hat. Danach ließt der Robi gleich einmal die neuen Werte ein und setzt ein Signal, dass er die neu eingelesene werte noch nicht abgearbeitet hat. Jetzt Verfährt der Roboter und meldet anschließend wieder, dass alles abgearbeitet wurde.





    Ich hoffe ich habe deine Anregungen richtig interpretiert und auch in einer Form umgesetzt, bei der man nicht ewig den Fehler suchen muss, weil "irgendwas knall".
    Grüße
    Bernhard

    Ich hab den Fehler gerade gefunden. Anscheinend benötigt man eine Wartezeit sowohl im Python Script als auch im KUKA Programm bevor man den Handshake abschließt.Wenn man vor "[size=1][font="dejavu sans mono", monaco, "lucida console", "courier new", monospace]SMOVING = FALSE[/font][/size]" und "[size=1][font="dejavu sans mono", monaco, "lucida console", "courier new", monospace]robot.write("MWriting", FALSE)[/font][/size]" jeweils eine Pause einbaut, funktioniert das Programm wie gewünscht und er bewegt mehrere Achsen zusammen.

    Ich hab jetzt probiert einen Handshake mit zwei zusätzlichen Variablen einzubauen, aber der Roboter bewegt immer noch eine Achse nach der anderen. Eingeführt habe ich die Variablen MWriting (Master schreibt) und SMoving (Slave bewegt sich). Im KUKA Programm überprüfe ich ob der Master Schreibt. Wenn nicht geschrieben wird. Setze ich SMoving auf TRUE und sperre damit jede weiteren Schreibbefehl. Dann lese ich die Achsen aus und bewege mich. Sobald der Robi fertig ist wird SMoving auf FALSE gesetzt. Der KRL Code dafür sieht vollgendermaßen aus.



    In Python hab ich natürlich auch den Handshake eingebaut :

    Code
    flag = robot.read("SMoving")
    
    if flag == 'FALSE':
        robot.write("MWriting", True)
        robot.write("MA1",A_1)
        robot.write("MA2",A_2)
        robot.write("MA3",A_3)
        robot.write("MA4",A_4)
        robot.write("MA5",A_5)
        robot.write("MWriting", False)


    Die Daten werden nach wie vor übertragen, die Achsbewegungen finden nur nacheinander statt.

    Hi,
    die Daten werden von mir mittels eines Python-Scripts und KukaVarProxy direkt auf die Steuerung geschrieben. Ich hab die Variablen MA1 - MA5 in der $config.dat angelegt und kann sie mittels VarProxy beschreiben. DAS MasterSlave.src greift auf die globalen Variablen zu. Daher passiert nichts im SPS.sub. Du meinst ich muss eine Synchronisierung zwischen dem schreibenden Python-Scritp und dem lesenden Roboter aufbauen?

    Hallo zusammen,
    Ich hab bei uns gestern eine Mast-Slave Anwendung mit einem KR6 in Betrieb genommen. Der Robi bekommt von einem Master Modell Werte für die Achsen zugeschickt und folgt dann anschließend den Bewegungen des Master Modells. Soweit funktioniert alles. Ich kann die Achswerte an die Steuerung senden und auch in Bewegungne umsetzen. Umgesetzt habe ich das ganze Programm so ähnlich wie in dem Post https://www.roboterforum.de/ro…iben/1261/msg2254#msg2254 . Bei testen ist mir nur aufgefallen, dass der Roboter nicht alle Achsen gleichzeitig bewegt, sondern immer nur eine Achse nach der anderen. Bedeutet ich bewege im Modell die 1 und die 2 Achse gleichzeitig und der Robi bewegt zuerst nur die erste und dann die zweite Achse. Wie schaffe ich es, dass alle Achsen zugleich bewegt werden. Dazu gleich einmal der Code den ich verwende:



    SlavePos ist bei mir als AXIS im .dat hinterlegt. Bei der Programmierung bin ich davon ausgegangen, dass zuerst die einzelnen werte eingelesen werden und dann alle Achsen, den zugewiesenen Wert annehmen, jetzt zeigt sich in den Tests aber, dass eine Achse nach der anderen ausgerichtet werden. Hat jemand einen Tipp, mit welchem Verfahrbefel ich eine gleichzeitige Bewegung erreichen kann. Zusätzlich würde ich gerne die Geschwindigkeit bei den achseweisen Bewegungen unabhängig von den SPTP Home Befehlen steuern. Gefunden hab ich dazu nur den Befehl $VEL_AXIS[1]=SVEL_JOINT(15). Muss ich hier für jede Achse einzeln die Geschwindigkeit festlegen, oder kann ich das gleich für alle Achsen mit einem Befehl machen?
    Grüße
    newbie

    Hallo zusammen,
    Wir haben einen IRB 2400/26 mit IRC5 für ein Forschungsprojekt. Derzeit haben wir einen BK5250 Devicenet-Koppler mit 16 Eingängen und 16 Ausgängen. Wir haben jetzt zusätzliche digitale und analoge Ein- und Ausgangskarten bestellt. Da die derzeitigen Karten von ABB eingebaut und konfiguriert worden sind, wollte ich fragen ob jemand eine Anleitung besitzt, wie ich die zusätzlichen Karten hinzufügen kann. Falls benötigt wir haben zur Zeit eine KL1819 (digitale Eingänge) und eine KL2809 (digitale Ausgänge) an dem Buskoppler hängen. Bestellt worden sind eine zusätzliche KL1819 (digitale Eingänge), eine zusätzliche KL2809 (digitale Ausgänge), eine KL3404 (analoge Eingänge), eine KL3454 (analoge Eingänge), eine KL4034 (analoge Ausgänge) und eine KL4424 (analoge Ausgänge). Montieren würde ich die Module auf die folgende Weise: BK5250 -> KL1819 -> KL1819 -> KL2809 -> KL2809 -> KL3404 -> KL3454 -> KL4034 -> KL4424


    Ich danke schon einmal im Vorraus für jede Hilfe.

    Hallo zusammen,
    ich bin gerade dabei ein neues Forschungsprojekt bei uns vorzubereiten. Das ganze soll bei uns auf einem KUKA KR16-2 mit KRC4 realisiert werden. Für das Projekt müsste ein Endeffektor mit einem Mikrocontroller am Roboter angebracht werden und mit der KRC4 kommunizieren. Das ganze soll dabei über eine Ethernet-Schnittstelle laufen, die digitalen Ein- bzw. Ausgänge des Mikrocontroller kann ich nicht verwenden, da die schon anderweitig benötigt werden. Zur Zeit planen wir einen Arduino zu verwenden. Das ganze ist nicht Sicherheitsrelevant, kann also so einfach wie möglich ausgeführt werden. Übertragen werden sollen zunächst nur Zahlenwerte (von der KRC4 zum Arduino) und Zustandssignale (Arduino zur KRC4). Wünschen würden wir uns das ganze im Rahmen einer globalen Unterfunktion, heißt im Hauptprogramm wird die Unterfunktion aufgerufen, der der zu übermittelnde Zahlenwert übergeben wird und die Unterfunktion schickt das ganze an den Arduino. Mit selbst erstellten Kommunikationsprofilen bei Robotern habe ich noch keine Erfahrungen gemacht und wollte darum einmal bei euch nachfragen, ob es hier schon Erfahrungen bezüglich einer Kommunikation KRC4 und Arduino gibt.
    lg aus Wien
    newbie

    Hallo zusammen,
    Ich glaube ich habe dieses Mal eine etwas ungewöhliche Frage und hoffe ihr könnt mir helfen. Ich bin gerade dabei die letzten Verbesserungen an unserer Demozelle zu tätigen. In der Zelle soll ein KR6 Teile aus einem Behälter herausgreifen und auf eine rutsche ablegen. Die Pose der Teile bekomme ich von einer Kamera und einem PC, die mir die Daten in das Base[5] System hineinschreiben. Danach muss sich der Robi nur noch auf den Ursprung des Base-Systems zubewegen und kann das Teil greifen. Soweit funktioniert auch alles ganz gut.
    Da der Robi die Teile nach dem Greifen auf eine Rutsche ablegt und so zurück in den Behälter befördert, kommt es aber dazu, dass sich die Teile natürlich am Ende der Rutsche ansammeln. versucht er nun in der nähe der Rutsche zu greifen, ist die Gefahr für eine Kollision leider viel zu hoch. Daher würde ich gerne sobald ich die Positionsdaten vom PC erhalte überprüfen ob das ausgesuchte Teil in der nähe der Rutsche liegt und dann gegebenenfalls eine Meldung an den Bediener rausschicken, dass die Teile durchmischt werden müssen. Dazu müsste man meines Verständnis nach nur die Lage des BASE[5] im World bestimmen und mit vorgegebenen Werten vergleichen. Leider hab ich in meinen Unterlagen aber dazu nichts gefunden, bzw bin ich mir nicht sicher ob ich die Koordinaten der BASE einfach direkt mit vorgegebenen XYZ Werten vergleichen kann. Ich hoffe jemand kann mir da einen kleinen Tipp geben.
    schöne Grüße
    Bernhard