Beiträge von dust2

    Er hat als Option Profinet m/s...


    Dann ist doch Alles gut:
    Deine IRC5 wird Profinet-Slave für die übergeordnete SPS und ProfiNet-Master für den Greifer!
    Bei dem neuen Rechner DSQC1000 ist Profinet M/S nur noch ein Softwarestack (KW-Software), da gibt es keine PCI-Karten mehr, beide Netze laufen gemeinsam über den LAN3 Netzwerkanschluss der Steuerung
    Die Roboter-Slave-Seite projektiert der SPSler, die Roboter-Masterseite musst Du projektieren, die ABB Doku" Profinet m/s SW" beschreibt alles Schritt für Schritt!
    Lies Dir das in Ruhe durch, probiere selbst und wenn dann Fragen auftauchen nochmal melden!


    Grüße dust2

    Mein SafeMove Kurs ist leider erst im Herbst, möchte es aber jetzt schon wissen:
    Kartesischer Arbeitsbereich bis 10cm vor dem Zaun, Werkzeug & Lastdaten korrekt definiert:


    Situation1:
    P1 100cm innerhalb Arbeitsbereich, P2 100cm außerhalb Arbeitsbereich, Roboter kommt von P1 und soll mit 100% und max. Last nach P2 fahren:


    Situation2:
    P1 und P2 liegen jeweils 2 cm vor der kartesischen Raumgrenze, die Bahn verläuft also parallel entlang des Arbeitsbereich Robi soll mit MoveL von P1 nach P2 fahren


    Was macht der Roboter - Praxiserfahrung(Doku habe ich gelesen)?


    Danke dust2

    Hallo,
    habe gerade meinen ersten Robi mit DSQC1000 ( RW 5.61.2008.2) zur IB.
    E/A-Signale vom Beckhoffkoppler BK5250 übers DeviceNet scheinen stark verzögert anzukommen!?SearchL kann ich nur machen wenn Geschwindigkeit v100. Habe mal einen Interrupt parallel aufs Signal schauen lassen während SearchL, das Signal kommt manchmal gefühlt 3-4 Sekunden später im RAPID an als an der Hardware.
    Hardware und Software schließe ich nun nach einem Tag Tests nun langsam aus, da schon x-mal genauso gemacht und nie Probleme! Koppler mit Polling oder COS, diverse Baudraten, alles versucht!


    Kann dieses Verhalten ebenfalls vom neuen Rechner kommen? Jemand ähnliche Probleme?


    Danke dust2

    Hallo Rudi,


    Du kaufst die Option Profibus bei ABB nach und sendest denen Deine system.xml. Die schicken Dir dann die Hardware (PCI-Karte oder FA) zu und ein Zertifikat mit einen neuen Control-Module-Key speziell für Deinen Roboter.
    Mit dem neuen Control-Module-Key und den Drive-Module-Key(s) Deines vorhanden Roboters erzeugst Du ein neues System. Danach vergleichst Du alte und neue system.xmls, wenn Alle alten Optionen noch da und Profibus zusätzlich auch da, ist das neue System ok und dieses spielst du dann auf den Roboter auf


    Grüße dust2

    Der Haken in WorkVisual bei den KLParametern "Antriebstreibersimulation" ist nur für Simulation der Achse am Office-PC ohne realen Regler! Ich hatte mal vergessen, den Haken dann am Roboter rauszunehmen und bekam dann immer Fehler "Regelabweichung" sobald ich E1 bewegen wollte!


    Trat der Fehler plötzlich im Betrieb auf? Lief das Alles schon mal vorher?

    Hallo abb_robo.


    wenn du schon so einen genauen Messtaster hast, wäre es doch schade, wenn Du ihn so grob vermisst!
    Schreib Dir doch ein kleines Programm was mit SerachL eine feststehende Kante in Deiner Anlage 4-10 mal antastet und dabei den Messtaster umorientiert in Z! Als Start-Tool kannst Du einen X=0 und Y=0 anbehmen, hier muss nur Z stimmen! Aus den erhaltenen Positionen und dem Radius des Tastkopfes kannst Du nun einfach die x/y-Werte Deines Taster-TCP berechnen! Man kann das dann noch weiter treiben, indem man bei weiteren Suchfahrten das Tool immer weiter vor der nächsten Suchfahrt korrigiert solange bis sich kleine Änderung mehr einstellt!


    Grüße dust2

    Danke für Eure Tips!


    Problem war, das der Programmierer irgendwo ganz versteckt im Programm per INTERRUPT TORQMON[6] auf 40 gesetzt hat bei Lastaufnahme!??
    Das wirkt auch, wenn die Kollisionsüberwachung deaktiviert ist! Die Quantecs scheinen da etwas empfindlicher zu sein als 2000er Serie!


    Grüße dust2

    Hallo,


    habe hier einen nagelneuen KR120R3200PA C4 FLR der bei Programmoveride >85% ständig mit Kollisonsüberwachung A6 aussteigt während Bewegungen bei denen die A6 schnell drehen muss! Rein äußerlich alles ok, nichts kratzt oder geht schwer wenn A6 manuell verfahren wird!


    VLIN ist 2m/sec


    LOAD_DATA[1]={M 80.0,CM {X 0.0,Y 0.0,Z 200.0,A 0.0,B 0.0,C 0.0},J {X 10.0,Y 8.0,Z 20.0}}
    LOAD_DATA[2]={M 88.0,CM {X 0.0,Y 0.0,Z 400.0,A 0.0,B 0.0,C 0.0},J {X 10.0,Y 8.0,Z 20.0}}
    Kommt hin in der Realität, daneben stehen drei KR110 PA(KRC2)mit gleichen Greifern und gleichem Programm und die laufen seit zwei Jahren!


    Habe schon mal an der Z-Komponte des Trägheitsmomentes rumgespielt, wenn ich die hochnehme auf Z 55 wird es etwas besser (Kollisonsüberwachung kommt erst nach 5 min) aber der Robi fährt natürlich viel undynamischer und ich brach max. Speed!


    Kabelschlepp durch Hohlachse schließe ich als Ursache aus geht alles leicht und ist im Verhältnis zum Greifergewicht denke ich vernachlässigbar als Fehlerquelle!


    Die KUKA-Kollisonsüberwachung ist ausgeschalten die ganze Zeit, deswegen verstehe ich nicht wo der Fehler herkommt!


    Bin kommende Woche wieder am Robi und will folgendes versuchen:


    1. $ACC_AXIS[6] explizit runternehmen und mal schauen!
    2. TRACE-Aufzeichung MOMENT und Strom A6
    3. $TORQMON[6] anschauen und dran rumspielen


    Hat jemand sonst noch Tips oder Erfahrungen mit diesem Fehler?


    Danke dust2

    Hallo Robiman,


    wenn ich richtig verstanden habe, willst Du gewissen Strings Indexe zuweisen und dann zu einem vorgegebenen String den Index suchen!?
    MeineDatenTemp sollte dann auch vom Typ Meinedata sein der Einfachheit wegen:


    RECORD MeineData
    string Info;
    num Index;
    ENDRECORD

    VAR MeineData MeineDaten{3}:=[["Horst",23],["Klaus",24],["Ulli",25]];
    VAR MeineData MeineDatenTemp;



    MeineDatenTemp.Info:="Horst"; ! hier der Suchstring aus Deiner Anwendung rein
    MeineDatenTemp.Index:=fHoleIndex(MeineDatenTemp.Info);



    suchen:


    FUNC num fHoleIndex (string sSuch)
    VAR num nlauf;


    FOR nlauf FROM 1 TO 3 DO
    IF MeineDaten{nlauf}.Info=sSuch RETURN MeineDaten{nlauf}.Index;
    ENDFOR

    ! nichts gefunden
    RETURN -99999;
    ENDFUNC


    Habs nicht getestet nur als Idee!


    Grüße dust2

    Hallo Fischertech,


    ....aber eigentlich wäre ein kürzerer Weg M und I korrekt zu berechnen....


    da deine Werkstücke fast immer quaderförmig aus dem gleichen Werkstoff kannst Du doch berechnen:


    M aus Dichte Werkstoff und Abmessungen und evt. Füllfaktor bei verpackten Werkstücken
    Schwerpunkt aus Toolhöhe und Abmessungen
    J aus Abmessung unter Berücksichtigung tool(Drehpunkt) mit Formel für Quader


    Das trägst du dann in Dein LOAD-DATA-ein!?


    Grüße dust2

    Hallo,


    danke für die Antwort! Die Idee ist nicht schlecht, man kann auch einfach die Orientierungen der Teachpositionen nutzen!
    Ich habs zusammen mit einem Kollegen hinbekommen, funktioniert super und so genau wie beim 6-Achser!
    Ansatz wie oben und dann weiter :


    3. Ortsvektor auf Kreismittelpunkt M in Polarkoordinaten
    4. Richtungsvektoren des Werkzeug-KS in P1-P4 als Polarkoordinaten
    5. Winkeldifferenzen für P1-P4 zu M
    6. ergibt jeweils einen Winkel in den Dreiecken an P1-P4 jeweils aus r und Tool.trans.x /y
    7. für P1-P4 Tool-Komponenten in den Dreiecken
    8. Mittelwert der Toolkomponenten und Abweichung (Messfehler)


    Ist halt wie beim 6-Achser nur halt mit Polar- statt Kugelkoordinaten denke ich mir!?
    Nur tool.trans.z muss man halt prinzipbedingt mit Lineal messen, da sehe ich beim 4 -Achser keine Möglichkeit das genau zu vermessen, da fehlt ein Freiheitsgrad für eine Berechnung bzw. kann man den Flansch meist mit angebauten Greifer halt nicht mehr genau anfahren wenn man es zweidimensional machen will!


    Das einzige was mir nun noch fehlt, ist eine Funktion, die mir alle in der Task deklarierten Tools auflistet, damit ich auswählen kann, welches Tool ich nun in x/y mit den Messwerten korrigieren will!?
    ABB macht es in Systemroutine loaddetect auch irgendwie und listet alle Tools auf und fragt welches Tool fürs Pendeln genutzt werden soll!??


    Grüße dust2

    Hallo,


    habe einen IRB640 mit asymetrischen Tool, gemessen mit Lineal ca:


    PERS tooldata tR1Gripper:=[TRUE,[[-265,5,435],[1,0,0,0]],[33,[0,0,1.1],[1,0,0,0],0,0,0.223]];


    Da ich bei der Pallettierung um den TCP umorientieren muss, brauch ich den TCP exakt! Die Idee ist nun, eine Routine zu schreiben die 3-4 Punkte in Welt aufnimmt, wenn der unbekannte TCP um eine feststehende Prüfspitze in 3-4 Richtungen (in der Ebene) umorientiert wird! Die 4 Punkte liegen ja dann auf einen Kreis, dessen Radius die Hypotenuse im rechtwinkligen Dreieck aus Tool.trans.x und Tool.trans.y sein wird! Aber mir fehlt mind. ein Winkel in diesem Dreieck!? Bei der Vermessung irgendwelche Orientierungen abzulesen, das ich genau um 180Grad gegenüberstehe wollte ich vermeiden!Die Berechnung in der Ebene müsste doch einfacher als im Raum(6-Achser) sein, mir fehlt der mathematische Ansatz? Bitte um ein paar Hinweise!


    Danke dust2

    Danke Stups,


    schau mir gerade die BAS an:
    d.h. also wenn zwischen den PDAT-Zuweisungen und der Bewegungsinstruktion kein BAS-Aufruf kommt, bleiben die Parameter unwirksam?
    In meinem Programm gibt es viele Stellen wo das so ist!?


    PDAT_ACT.VEL=aktVelPtp_L1 ;[%] PTP Geschwindigkeit
    PDAT_ACT.ACC=100.0 ;[%] PTP Beschleunigung
    PDAT_ACT.APO_DIST= 50.0 ;[%] UeberschleifDistance
    PDAT_ACT.APO_MODE= #CDIS


    LIN P1

    Hallo,


    bin dabei ein fremdes KRC2-Programm auf KRC4 zu übertragen. Im KRC2-Programm wurden die Bewegungsparameter eingestellt mit:


    PDAT_ACT.VEL=aktVelPtp_L1 ;[%] PTP Geschwindigkeit
    PDAT_ACT.ACC=100.0 ;[%] PTP Beschleunigung
    PDAT_ACT.APO_DIST= 50.0 ;[%] UeberschleifDistance
    PDAT_ACT.APO_MODE= #CDIS
    BAS(#PTP_PARAMS,VelPtp_L1)


    LIN P1



    PDAT sind doch Anweisung, wie sie automatisch in Folds generiert werden. Im vorliegenden Fall werden aber keine Folds verwendet!?
    Ausserhalb Fold macht man das eigentlich mit:


    $APO.CPTP = 30 ; in %
    $APO.CDIS = 50 ; in mm
    $VEL.CP=30



    Die KRC4 nimmt die Anweisung in beiden Varianten auch ohne FOLDS!
    Fragen:
    1. Gibt es einen Unterschied oder sind das nur zwei verschiedene Schreibweisen?
    2. Sollte man die PDAT-Anweisungen in der KRC4 ohne FOLDS verwenden oder lieber $APO.CPTP oder ist das egal?
    3. Hat jemand ne Doku, wo alle Parameter für die BAS()-Funktion beschrieben sind- nutzt man die noch in der KRC4?


    Danke für Eure Hilfe!


    grüße dust2

    Hallo Högi,


    du brauchst die Software CMD von Phönix und passendes Programmierkabel (gibts alles offiziell nicht mehr zu kaufen und läuft maximal bis Win XP), damit fügst Du das Modul als Standardmodul ein oder lässt es im ONLINE-Modus suchen, dann die geänderte Konfiguration auf die Interbuskarte in der S4+ runterspielen und das Modul in der eio.cfg einfügen


    Schick mir mal ne PM mit Deiner Mail und Deiner eio.cfg , ich suche mal Doku raus, bin sicher ich finde noch was.......


    Grüße dust2