Kommunikation über die Serielle Schnittstelle

  • Suche eine einfach Lösung die aktuelle Position über die serielle Schnittstelle auszulesen und nach der Verarbeitung auf einem Laptop wieder eine neue Position an den Roboter zu übergeben. Die Kommunikation sollte auf dem Laptop in ein Borland-Delphi Programm integriert werden. Kann mir da jemand helfen.
    Würde mich freuen.


    Ciao

  • Schritt für Schritt zum Roboterprofi!
  • Ungefähr sowas hab ich schon mal gemacht. Der Befehl bei Kuka heisst CWRITE. der hat ne ganz komische nicht C-mässige Option, ich glaub %r war das, schau ich morgen nach, dann schickt der die variablen als bytes, nicht als ASCII, das spart Platz. Der Empfänger war bei mir LabView, aber ich denke den Serial Port als Byte-Array aus zu lesen ist auch mit Delphi nicht weiter schwer.
    Ich schreib mal morgen hier rein obs echt %r war, aber ich meine %r2.25 schickt ein Array mit 25 Werten als 2-Byte Werte an den serial Port.

    If you and DEAD people can read Hex, how many people can read Hex?

  • Also ich habe jetzt in den Editor das mal eingegeben:


    DEF SENDEN()
    INT HANDLE
    DECL STATE_T SW_T, SC_T
    DECL MODUS_T MW_T


    MW_T=#SYNC


    OPEN_P()
    WRITE_P()
    CLOSE_P()
    END


    DEF OPEN_P()
    COPEN(:SER_3, HANDLE)
    IF (HANDLE==0) THEN
    HALT
    ENDIF
    END


    DEF WRITE_P()
    CWRITE (HANDLE, SW_T, MW_T, "%+#10.4F", $POS_ACT.X)
    IF (SW_T.RET1<>#CMD_OK) THEN
    HALT
    ENDIF
    END


    DEF CLOSE_P()
    CCLOSE(HANDLE, SC_T)
    IF (SC_T.RET1<>#CMD_OK) THEN
    HALT
    ENDIF
    END


    So und immer bei der Zeile:
    IF (XXX.RET1<>#CMD_OK) THEN
    sagt er es wäre kein zugehöriger Typ.
    was is an dem Programm falsch???

    Einmal editiert, zuletzt von Albrecht ()

  • ja habs umgeändert aber was für ein Programm brauche ich dann mit welchen Einstellungen auf meinem PC. Das ist jetzt noch so die Letzte Hörde die ich hoffentlich habe.
    Und das mit dem .RET1 habe ich aus einer KUKA docu entnommen die ich hier gefunden habe.

  • ich versuche schon verzweifelt eine CREAD/CWRITE Doku für die KRC32 aufzutreiben.
    Dann kann man sagen welche Kommunikationsprotokolle auf dem PC eingestellt werden müssen.

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • was für ein Program brauche ich auf meinem PC damit ich mit der Steuerung (KRC32) über die serielle Schnittstelle einen Roboter steuern kann??? Also mit dem APS-ARCH ist das nicht möglich.

  • Also ich habe jetzt ein wenig mit dem Roboter und dem PC rumgespielt und bin jetzt soweit das ich Daten die ich von der KRC 32 sende am PC auslesen kann.
    [glow=red,2,300]ABER[/glow] da kommen nur 7 Zeichen am PC an, egal was ich an der Steuerung sende. Es ist in ASCII immer:
    5555554
    und sonst 6mal Kreuz und einmal Karo


    Das Programm am PC habe ich in qbasic geschrieben:

    Code
    OPEN "COM1: 19200, N,8,1,ASC,CD,CS,DS" For Random As #1
    Cls
    Do
       If Loc(1) Then
       z$ = Input$(1, #1)
       Print z$
    End If
    Loop Until z$ = Chr$(27)
    Close #1


    im Roboter ist in der /$CUSTOM.DAT eingestellt:
    DECL SER $PSER_1= {PROTO 1, PROC 0, RCO 5, BL 0, BAUD 19200, NOC 8, NOS 1, PARITY 0, TRC 1, FLP 0, LLP 0, RT 300, PT 5, DSR 0, WCCXON 0, VXON 0, VXOFF 0, WEOBC 0, VEOBC 0}


    und das Programm was ich auf der Steuerung geschrieben habe sieht so aus:


    Ist an dem Programm was falsch oder warum gibt es "nur" son Müll aus???


    :hilfe: :hilfe: :hilfe:

    Einmal editiert, zuletzt von Albrecht ()

  • Du hast wahrscheinlich das LSV2-Protokoll als PROC eingestellt. Das Protokoll versucht 6 mal einen Verbindungsaufbau (5 = ENQ) dann mag's nimma und sendet 4 = EOT.


    Solltest als Protokoll XONXOFF einstellen. Bin noch im Urlaub - versuche Montag was zu finden bezügl PROC

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • ich weis nicht ob es evtl noch am kabel liegen kann, weil haben ein kabel wo nur 3 belegungen sind.
    6 - 7
    2 - 2
    3 - 3
    wir probieren jetzt nochmal ein anderes, aber wir dachten halt weil die Datenübertragung mit APS geklappt hat brauchen wir kein anderes.
    wenn wir das Xon/Xoff protokol verwenden überträgt er garnix.


    ja ich weis aber in der Docu steht nix darüber was er ausgibt und was man einstellen muss um eine Verbindung mit nem PC herzustellen.


    aber die Programme sind erstmal so richtig, oder???


    so wir haben jetzt ein richtiges nullmodemkabel
    9-pol. auf 25 pol.
    2 an 2
    3 an 3
    7 an 5
    8 an 4
    5 an 7
    und da wird immernoch nicht mehr übertragen

    Einmal editiert, zuletzt von Albrecht ()

  • soooo ich hab es nochmal ohne deine Brücke probiert und siehe da ich kann "Hallo Welt" von der KRC zum PC übertragen. :ylsuper: :beerchug: :ylsuper:
    so jetzt meine Frage lautet der Befehl zur übergabe der aktuellen Position des Roboters???
    ich versuche es z.Z. mit

    Code
    CWRITE (HANDLE, SW_T, MW_T, " %+#10.4F", $POS_ACT.X)


    aber da bringt er mir immer die Fehlermeldung:
    Q 1419 - TOOL NICHT PROG.
    Ursache: Dem Programmdatum $TOOL wurde kein Wert zugewiesen


    wie werde ich den Fehler los??? oder ist die übertragungszeile falsch???

  • es liegt nicht an der CWRITE-Zeile, die ist ok.
    Wie die Meldung sagt, das $Tool ist nicht definiert.
    Bei der neuen Software (KRC2) ist es genauso wenn Du $POS_ACT abfrägst.
    Erst wenn der Basisbefehl INIT_MOVE durchlaufen wird funkt es

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

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