Beiträge von Andy

    Hallo


    ich folgenden Zustand:
    Ein fertiges Programm mit Bewegungspunkten die mit einem externen TCP geteacht wurden. Beispiel Tool 1 Type #Base, Base 10 Type #TCP
    Da die Anlage versetzt wird und niemand weiss ob das Base richtig eingemessen wurde soll nun im Vorfeld das Base neu eingemessen werden und auf das alte Programm verrechent werden, so daß die Punkte in der realen Welt nicht verschoben werden.


    Bei normelm Base also ohne externen TCP ist das mit dem internen KUKA Editor Problemlos machbar. Mit einem externen TCP funktioniert das aber nicht.


    Nun meine Frage geht es überhaupt mit dem Editor oder geht es gar nicht mit dem Editor.
    Mit Delmia ist das kein Problem leider habe ich das nicht zur Verfügung.

    Hallo


    kennt jemand eine Möglichkeit Werkzeugdaten on the Fly zu ändern.
    Normalerweise werden die neue Werkzeugdaten erst dann übernommen wenn
    die Bewegungssätze die der Roboter im Vorlauf hat abgearbeitet wurden oder
    eine Satzanwahl oder ähnliches durchgeführt wurde.


    Ich möchte aber in dem Moment in dem der Roboter die Tooldaten bekommt sofort mit diesen auch weiterfährt.


    Gruss Andy

    Ok
    dann mal ein Programmbeispiel
    -------------------------------------------------------------------------------------
    DEF test( )


    DECL INT ANSWER
    DECL STATE_T STATE
    DECL INT OFFSET
    DECL MSG_T EMPTY_MSG


    EMPTY_MSG={MSG_T: VALID FALSE,RELEASE FALSE,TYP #NOTIFY,MODUL[] " ",KEY[] " ",PARAM_TYP #VALUE,PARAM[] " ",DLG_FORMAT[] " ",ANSWER 0}



    $MSG_T.Release=FALSE
    $MSG_T=EMPTY_MSG
    $MSG_T.MODUL[]="TEST"
    $MSG_T.KEY[]="Meine Meldung"
    $MSG_T.TYP=#NOTIFY
    $MSG_T.VALID=TRUE
    WHILE $MSG_T.VALID
    WAIT SEC 0.1
    ENDWHILE
    WAIT SEC 0.1
    $MSG_T=EMPTY_MSG
    WAIT SEC 0.3


    ;*****************************************************
    ;Liefert die Meldung: Meine Meldung



    $MSG_T.Release=FALSE
    $MSG_T=EMPTY_MSG
    $MSG_T.MODUL[]="ESCDiag"
    $MSG_T.KEY[]="ESCAllwaysTop"
    $MSG_T.TYP=#NOTIFY
    $MSG_T.VALID=TRUE
    WHILE $MSG_T.VALID
    WAIT SEC 0.1
    ENDWHILE
    WAIT SEC 0.1
    $MSG_T=EMPTY_MSG
    WAIT SEC 0.3


    ;*****************************************************
    ;Liefert die Meldung: Immer im Vordergrund



    END
    ------------------------------------------------------------------------------------


    Im 2 Teil wird auf die Datenbank ESCDiag.mdb verwiesen bzw. zugegriffen
    und jetzt will ich das gleiche mit der Kuka_con.mdb machen und zwar so



    $MSG_T.Release=FALSE
    $MSG_T=EMPTY_MSG
    $MSG_T.MODUL[]="IO"
    $MSG_T.KEY[]="IN_1"
    $MSG_T.TYP=#NOTIFY
    $MSG_T.VALID=TRUE
    WHILE $MSG_T.VALID
    WAIT SEC 0.1
    ENDWHILE
    WAIT SEC 0.1
    $MSG_T=EMPTY_MSG
    WAIT SEC 0.3



    dann sollte der gespeicherte Langtext als Meldung erscheinen und nicht
    wie bei mir "IN_1"


    ich hoffe das war jetzt verständlicher schön wäre es jetzt noch den Text in einer Variablen zu speichern muss aber für meinen Zweck nicht sein wenn das obrige Funktioniert bin ich schon glücklich


    Gruss Andy

    Hey


    dachte es wäre schon klar was ich machen will.


    Also den Langtext aus der Datenbank auslesen und in einer Variablen speichern weil die möchte ich anschliessend mit einem andern Text verknüpfen und als Meldung ausgeben.


    Wie gesagt brauche nur den Text in einer Variablen den Rest habe ich schon realisiert.


    Hintergrund der Aktion ist das Gripperpaket es zeigt mir nur die Meldung welcher Endschalter fehlt als Simulationsmeldung die widerum wird aber nicht im Logbuch gespeichert es sei den der Anwender drückt die Taste Simulieren.
    Nun war die Idee eine kurze Zustandsmeldung abzusetzen für ca 0.3 Sekunden und dann wieder zu löschen somit befindet sich ein Eintrag im Logbuch.
    Dann kann man später besser nachvollziehen welcher Endschalter gefehlt hat.


    Hoffe du verstehst mein Vorhaben jetzt


    Gruss Andy

    bert


    hallo Bert danke die Doku habe ich bereits auch ist das Programmieren nicht das Problem.
    Mir ging es eher darum, wer schon Erfahrung mit der rechtlichen Seite hat weil die ist beim Safe Robot nicht ganz ohne.

    Hi,


    Grundsätzlich ist jede Idee gut solange sie sauber funktioniert.


    Zu Deiner Idee will ich folgendes anmerken wenn du nur Brake oder Halt reinprogrammierst wirst du wenig Erfolg haben.
    Brake= Bremst den Roboter nur danach geht es ganz normal in Deinem Programm weiter
    Halt= hält den Roboter zwar an sobald aber jemand Start drückt fährt er ebenfalls im Programm weiter


    Für mich stellt sich ein Frage:
    Hängt der Robi an einer SPS?
    Wenn ja dann sollte der Fall über die SPS abgesichert werden.
    Der Roboter meldet über die Schnittstelle 2 Variable $on_Path und $Near_Posret
    wenn $near_posret auf False geht kommt eine Meldung "Sak Fahrt T1/2 erforderlich" (beim wiederumschalten von T1 auf Ext) dann darf auch von der SPS kein Start mehr erfolgen.
    Zu erwähnen wäre, dass der Bediener den Roboter ca +/- 100 mm verfahren darf bevor die Meldung kommt
    der Wert kann aber unter $nearpathtol eingestellt werden.


    Alternativ kann auch die Variable §on_path abgefragt werden bei der Variable darf man ca. +/- 1mm verfahren bevor sie auf False geht


    Hängt der Roboter an keiner SPS dann melde Dich nochmal


    Gruss Andy

    Hallo zusammen,


    ich hab mal zu Safe Robot eine Grundsatzfrage:


    Wer darf überhaupt Safe Robot in Betrieb nehmen bzw. muss man bei KUKA unbedingt einen Kurs belegen?


    Wer haftet im Schadensfall


    Gruss Andy

    Hallo zusammen,


    kennt jemand eine Möglichkeit die Grippernamen automatisch nach zu Beschriften.


    Problem:
    Vor der Programmierung wurden alle Gripper Beschriftet und anschliessend alle Gripper im Programm programmiert.
    So jetzt werden die Grippernamen geändert und man muss im Programm auf jede Gripperanweisung gehen und
    mit ->ändern ->eingabe die neue Beschriftung übernehmen.


    Bei den E/A Beschriftungen geht das ja sehr komfortabel mit dem Externen Editor von KUKA
    nur für die Gripper habe ich nichts gefunden.


    Kennt jemand eine andere Lösung?


    Gruss Andy :danke:

    Hallo Leute,


    also ich möchte folgendes wissen:


    wenn der Roboter angehalten wird (im Programm) möchte ich wissen ob der Roboter nun von Hand verfahren wurde oder im Programm verfahren wurde.


    Momentan habe ich das ganze so gelöst, ich speichere mir die Position (Axis) ab, sobalt einer die Betriebsart
    Extern verlässt wenn nun im Programm weiter gefahren wird bekomme ich das über die Variable $Pro_Act mit und
    speichere die Position fortlaufend ab. Wenn jemand die Mouse oder die Achsverfahrtasten betätigt bleibt $Pro_Act False.


    Wenn nun ein Interrupt auslöst prüfe ich die letze gespeicherte Position mit der aktuellen, stimmen die +/- 1 Grad
    dann sage ich der Roboter wurde nicht von Hand verfahren.


    Funktioniert bis auf eine Kleinigkeit auch ganz gut muss das nun vollends testen, ob das ganze auch Wasserdicht ist.


    Für andere Vorschläge bin ich gerne Dankbar.


    Gruss Andy


    Nachtrag: Alle 5er SW

    Hallo Leute,


    hab ein Dringendes Problem ich muss die Taste "Simuliere" im Automatik bzw. EXT anzeigen lassen.


    Kann mir bitte einer weiterhelfen wo ich das Umstellen kann.


    Mit der Taste "Ändern" bei Ausgängen funzt das im Automatik sollte doch auch mit der "Simuliere" Taste gehen


    SW 4.1.7


    Besten Dank


    PS: Hab es gefunden funzt nun einwandfrei.


    Gruss Andy

    Hallo zusammen


    wir machen das mit dem Password zurücksetzen immer so:


    Den passenden Eintrag in der Reg exportieren und auf Diskette speichern.
    Wenn jemand das Passwort ändert einfach Diskette rein und doppelklick auf die Datei und das
    geänderte Password wird wieder mit dem orginalen überschrieben.


    Mit einer kleinen Batch lässt sich auch das alte sichern und später wieder zurück schreiben ohne
    dass ich das alte wissen muss


    Gruss Andy

    Danke Dir Kai_n


    hab das gestern schon so versucht und es ging einfach nicht. Nachdem ich es heute morgen getestet hab
    oh wunder dann ging es.


    Nochmal besten Dank :danke:

    Hallo zusammen,


    ich habe folgendes Problem, wenn ich mit Swrite eine REAL Variable in eine CHAR kopiere möchte ich nur
    die 2 ersten Nachkomma Stellen kopiert haben.


    Hier mal der Programmcode:
    -------------------------------------------------------------------------------
    DEF a1( )
    REAL MESSWERT
    INT OFFSET
    DECL STATE_T STATE
    CHAR TEST1[20]
    CHAR TEST2[20]
    INI
    MESSWERT=-9.111
    OFFSET=0
    TEST2[]="MESSWERT=%f"


    PTP HOME Vel= 100 % DEFAULT


    SWRITE(TEST1[],STATE,OFFSET,TEST2[],MESSWERT)


    HALT
    PTP HOME Vel= 100 % DEFAULT
    END
    -------------------------------------------------------------------------


    bei meinem Beispiel werden aber immer mehr als 2 Nachkomma Stellen in TEST1[] kopiert.


    schöne Grüsse Andy