Kommunikation mit Kuka KRC 1

  • Hallo,
    Muss euch mal wieder nerven... :biggrins:
    Hab dieses Prog aufm Rechner gefunden und ein bischen umgeschrieben... bekomme jedoch die Fehlermeldung:
    Sollgeschwindigkeit A4!??
    Warum???




    DEF TEST()


    EXT BAS (BAS_COMMAND :IN,REAL :IN)
    DECL AXIS HOME


    INT dx, dy, HANDLE, Offset
    REAL TIMEOUT


    DECL CHAR Eingabe[30]
    DECL CHAR Form[10]


    DECL STATE_T Lesestatus,Schreibstatus, Closestatus, Auswertstatus, Verarbeitungsstatus
    DECL MODUS_T Lesemodus, Schreibmodus




    ;--------Ini


    BAS(#INITMOV, 0)


    HOME={AXIS: A1 0,A2 -90,A3 90,A4 0,A5 0,A6 0}


    Schreibmodus=#SYNC
    Lesemodus=ABS
    Timeout=10



    dy=0
    dx=0


    WartePos={X -864,Y -916,Z 680,A 47.57,B 4.46 ,C 179.96,S'B010',T'B000010'}



    ;---------------Hauptprogramm


    LOOP


    COPEN(:SER_2,HANDLE)
    IF(HANDLE==0) THEN
    HALT


    ENDIF


    Satzanfang=0
    CREAD(HANDLE,Lesestatus,Lesemodus,Timeout,Satzanfang,"%s", Eingabe[])


    Form[]="%02d"
    Offset=1
    SREAD(Eingabe[],Auswertstatus,Offset,Form[],dx)


    Form[]="%02d"
    Offset=5
    SREAD(Eingabe[],Auswertstatus,Offset,Form[],dy)




    WartePos.X = WartePos.X+dx
    WartePos.Y = WartePos.Y+dy




    WAIT SEC 1.0




    PTP HOME
    LIN WartePos
    PTP HOME


    END

  • Schritt für Schritt zum Roboterprofi!
  • Hey,
    habe als Eingabe dies Eingegeben:
    Leerzeichen20Leerteichen30

  • Naja,
    wenn man aus der Homeposition, in der die Drehachsen 4 und 6 parallel bzw. identisch sind
    linear, wo auch immer hinfahren möchte, dann gibt es IMMER diese Fehlermeldung.
    Das ist das altbekannte Strecklagen- / Alpha5- / Singularitäten- oder wie auch immer man
    es nennen möchte -Problem.


    Einfach eine andere Startposition wählen, dann klappt's vielleicht. Hautpsächlich mal die
    Achse 5 auf einen Winkel <>0 stellen.


    Hermann

  • wenn der Roboter so steht hat Hermann schon recht.


    Wenn Du bei Deiner Werteeingabe zwischen den Werten (egal wieviele Zahlen) ein Leerzeichen eingibst, brauchst Du nur eine Zeile zum Einlesen. Ausserdem scheint mir OFFSET=5 falsch zu sein.


    Satzanfang=0
    CREAD(HANDLE,Lesestatus,Lesemodus,Timeout,Satzanfang,"%d%d",dx,dy)

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Guten Morgen!


    Ok, besten Dank!


    Werde es gleich in der FH ausprobieren!


    LindePaul.


    Ja, hast recht 5 ist falsch!

  • Hallo,



    der Roboter steht so, siehe Zitat. Also als erstes mal die Position HOME ändern, und
    sich dann mit dem Protkoll beschäftigen.
    Das Programm müsste schon funktionieren auch die Sache mit dem Offset 5 sollte funktionieren,
    wenn die zweite Zahl bei der 5. Stelle im Eingabestring anfängt, was bei " 20 30" der Fall ist.


    Die Lösung von LindePaul ist deutlich einfacher. Der Vorteil der vorgegebenen Lösung ist, dass man
    sich die Variable Eingabe[] schon mal ansehen kann und sieht was da als Rohdaten über die Schnittstelle kommt.


    Edit: Schaut Euch doch das Programm mal in Ruhe an:
    zuerst wird mit CREAD von der Schnittstelle gelesen, Variable Eingabe[]
    dann wird diese Eingabe[] mit Sread zerlegt, und da ist beim zweiten Sread der Offset schon korrekt.


    Hermann

  • Hallo,
    hab das so umgeändert:
    A4 geändert


    HOME={AXIS: A1 0,A2 -90,A3 90,A4 -50,A5 0,A6 0}


    und nur mit Cread ausgelesen.
    Satzanfang=0
    CREAD(HANDLE,Lesestatus,Lesemodus,Timeout,Satzanfang,"%d%d",dx,dy)
    SREAD habe ich weggelassen


    Habe auch in der Variable nachgeschaut(dx=20 und dy=30)
    das hast schon mal geklappt.
    Bekomme nun trotzdem die Fehlermeldung: Sollgeschwindigkeit A4
    Liegt es an der Beschleunigung oder der Geschwindigkeit wie in der Doku angegeben?

  • Hey...
    Es funzt...es lag an der Geschwindigkeit.
    Danke euch trotzdem!!!

  • Upps...
    Sorry...das ging nur mit PTP!
    Mit dem Befehl LIN WartePos, erscheint die Fehlermeldung!
    Sollgeschwindigkeit A4

  • Guten Morgen!


    In der Serial.ini stellt man ja die Kommunikationart ein(3964, WTC, SRVT, XON/XOFF)ein.
    In der CREAD/CWRITE Doku wird die Protokollart 3964R und XON/XOFF beschrieben die anderen nicht.Wofür steht WTC und SRVT?


    Kann man auch ohne die obengenannten Arten kommunizieren?

  • - das sind Sondertelegramme von Nordamerikanischen Firmen
    - WTC WeldTronic Communication
    - SRVT Servo Robot Vision Telegram


    - man muss eine Protokollart auswählen. Wobei das XONXOFF-Protokoll
    auf "pure communication" umgestellt werden kann.

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Hallo,


    Ok, Danke!


    Wie stell ich denn das XONXOFF Protokoll auf "pure communication" um?

  • serial.ini


    [XONXOFF]
    CHAR_TIMEOUT=50 ; msec Timeout after last received character
    ; to recognize the end of telegram
    MAX_TX_BUFFER=2 ; 1..5
    MAX_RX_BUFFER=2 ; 1..20
    SIZE_RX_BUFFER=100 ; 1..2048 longest expected telegram length + 15 characters


    XON_VAL=17 ; 0..255 XON character (decimal)
    XOFF_VAL=19 ; 0..255 XOFF character (decimal)
    [glow=red,2,300] ; if XON_VAL=0 and XOFF_VAL=0 then XON/XOFF protocol
    ; is disabled (pure communication)[/glow]DSR_LINE=0 ; 0 = DSR line not connected, 1 = DSR line must be high

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Hallo,


    ja bei mir ist der Eintrag DSR_LINE nicht vorhanden. D.h um mit XONXOFF zu kommunizieren muss ich die Pins brücken. Das habe ich verstanden.
    An dem Robby,an dem ich arbeite, habe ich lediglich einen Nullmodemkabel angeschlossen. Habe auch nichts gebrückt, und die Kommunikation per Hyper oder mit deinem Testprog für XONXOFF klappt gut.


    Also kann ich ausgehen, dass jemand vor mir schon die Brücke robseitig eingebaut hat??

  • aha...Also kann ich auch dann das XONXOFF PC seitig weglassen und die Daten einfach so rüberschicken?

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