Beiträge von rob76

    Sowas macht man besser in der Backgroundlogic, die wird zyklisch abgearbeitet und in TPE programmiert. z.B. so:

    3: GO[8:X/J1]=($SCR_GRP[1].$MCH_POS_X*100) ;

    4: GO[9:Y/J2]=($SCR_GRP[1].$MCH_POS_Y*100) ; 

    5: GO[10:Z/J3]=($SCR_GRP[1].$MCH_POS_Z*100) ; 

    6: GO[11:W/J4]=($SCR_GRP[1].$MCH_POS_W*100) ; 

    7: GO[12:P/J5]=($SCR_GRP[1].$MCH_POS_P*100) ; 

    8: GO[13:R/J6]=($SCR_GRP[1].$MCH_POS_R*100) ;


    Um zu verhindern das deine Schleife im Karel die ganze Prozessorzeit frisst hilft ein "Delay" in der


    Schleife.

    Leider nicht....

    Aber du kannst dir einfach einen Punkt anlegen mit der aktuellen Pos in den gewünschten Frames und du setzt die Winkel w,p,r auf 0°

    Anfahren und fertig.....dauert 10 sek.


    Kannst natürlich auch ein Makro daraus basteln und es auf einen Userkey legen.

    In SYSTEM -> CONFIG findest du ziemlich weit unten "Confirmation for AUTO DI"

    Dort kannst du das Signal zum bestätigen für den AUTO Mode angeben. Wenn ich mich recht erinnere muss das Signal jedes mal kommen wenn Du von T1/T2 zu Auto wechselst. Probiere das mal aus.

    Mein Code sieht so aus:

    XML
    <?xml version="1.0" ?>
    <PASSWORD>
    <SCREEN rw_access="0" access="1" scrn_id="1" sp_id="107" level="2"/>
    </PASSWORD>

    Funktioniert bei mir wie gewünscht...

    RO´s werden angezeigt aber sind nicht änderbar.

    Wenn sie auch nicht angezeigt werden sollen muss access="0" sein.

    Hallo Ananaselefant, das ist keine Fehlermeldung sondern der Status des aktuell angewählten Programm.

    Bei Start wird das Programm abgearbeitet und hat am Ende den Status "aborted", der Cursor springt wieder in Zeile 1 hoch.

    Die angezeigte Zeile 0 bezieht sich auf die Zeilennummer welche gerade abgearbeitet wird, da das Programm nicht gestartet ist kann er keine Zeile abarbeiten.....also Zeile=0.

    Da in deinem Programm keine Schleife oder ähnliches vorhanden ist wird das Programm auch nicht wieder erneut automatisch ausgeführt, außer DU startest erneut.


    Das verhalten der Steuerung ist also absolut korrekt.


    Keine Ahnung was ihr da erforschen wollt.....ich an eurer Stelle würde erstmal die grundlegenden Dinge des Roboterprogrammierens in Form einer Schulung "erforschen" ;)


    Insbesondere bei Kollaborierenden Robotern sollte man genau wissen was man da macht, alles andere wäre grob fahrlässig.

    Steht Dir Roboguide zur Verfügung, bzw. hat Robert den ASCII-Loader als Software-Option?
    Denn dann kannst Du in einem Offline-Editor (Notepad++ oder Ultra-Edit, Wordpad auch möglich) mit Suchen und Ersetzen die vielen Beweungsanweisung schneller mit der Offset-Verschiebung ergänzen ohne das händisch im Roboter zu hacken.

    Das geht übrigens auch sehr viel einfacher auf dem Roboter selber.

    Im Editor: EDCMD->Replace->Motion modify->Insert option

    Das war aber nicht die Frage, er möchte die Kommentare der Frames schreiben und nicht die Koordinaten.

    Nun zur Frage, die Kommentare stehen im Systemprogramm TPFDEF.


    So geht's in Karel:

    Code
    SET_VAR(entry, 'TPFDEF', 'SETUP_DATA[1,1,1].$COMMENT', 'Werkzeug 1', STATUS)
    SET_VAR(entry, 'TPFDEF', 'SETUP_DATA[1,1,2].$COMMENT', 'Werkzeug 2', STATUS)
    SET_VAR(entry, 'TPFDEF', 'SETUP_DATA[1,1,3].$COMMENT', 'Werkzeug 3', STATUS)
    
    SET_VAR(entry, 'TPFDEF', 'SETUP_DATA[1,3,1].$COMMENT', 'Userframe 1', STATUS)
    SET_VAR(entry, 'TPFDEF', 'SETUP_DATA[1,3,2].$COMMENT', 'Userframe 2', STATUS)
    SET_VAR(entry, 'TPFDEF', 'SETUP_DATA[1,3,3].$COMMENT', 'Userframe 3', STATUS)

    Hmmm, stand der Dinge ist das Karel Motion seit 1995 offiziell nicht mehr weiterentwickelt wird und Fanuc dringend davon abrät es weiter zu benutzen.
    Alle neuen TPE Motion Optionen nach 1995 gibt es schlichtweg nicht in Karel Motion, darunter auch sehr sinnvolle Optionen wie High Sensitiv Collision Detection, Coord, Multigroup Motion, usw.
    Dein Gerücht für die Wiederauferstehung halte ich für sehr unwahrscheinlich, es laufen schon seit Jahren bei Fanuc Diskussionen Karel Motion endgültig sterben zu lassen. D.h. nicht nur das entfernen aus der Doku sondern wirklich aus dem System.
    Einige Karel Motion Funktionen wurden sogar schon komplett entfernt, ab V7.30 z.B. Karel Path Motion und Move Along.
    Wofür sollte Fanuc Jahrzehnte an Entwicklung im Karel Bahnplaner nachholen?
    Es gibt doch gar keine nachfrage dafür, die wenigsten Programmierer beherrschen überhaupt Karel.

    Um die Masterung zu kontrollieren:
    Alle Achsen auf 0 Grad fahren und die jeweiligen Markierungen auf den Achsen überprüfen.
    Sollte sich da wirklich was mechanisch verschoben haben kannst du mit Bordmitteln nichts machen.(Zumindest nichts genaues)
    Dazu müsste der Roboter dann neu eingemessen werden (Masterfixture oder Visionmastern).


    Was bedeutet Col_Guard ist tief eingestellt? Kleiner Wert bedeutet weniger empfindlich bei Kollision, ist das wirklich so gewollt?
    Ist das ein "normaler" Punkt wo er crasht oder wird die Position durch etwas beeinflusst ( Softfloat, Offset, etc)?


    Eine schwäche des Roboters ist das sicher nicht, weder bei Fanuc noch bei anderen großen Herstellern.
    Die Ursachen können vielfältig sein. Von Anlagenbedienern die in ihrer Schicht das Programm "optimieren", bis hin zu nicht festgeschraubten Robotern oder Anlagenteilen habe ich schon alles gesehen.

    Du musst es auf die Steuerung kopieren.
    Im File MENU auf COPY, Device FR: auswählen und rüberkopieren....so sollte es gehen.

    Hier mal vollständig:


    GET_REG Built-In Procedure
    Purpose: Gets an INTEGER or REAL value from the specified register Syntax :
    GET_REG(register_no, real_flag, int_value, real_value, status)
    Input/Output Parameters:
    [in] register_no :INTEGER [out] real_flag :BOOLEAN [out] int_value :INTEGER [out] real_value :REAL
    [out] status :INTEGER
    %ENVIRONMENT Group :REGOPE
    Details:
    • register_no specifies the register to get.
    • real_flag is set to TRUE and real_value to the register content if the specified register has a
    real value. Otherwise, real_flag is set to FALSE and int_value is set to the contents of the
    register.
    • status explains the status of the attempted operation. If not equal to 0, then an error
    occurred.