Serielle Datenübertragung

  • Hallo zusammen,


    ich versuche gerade eine einfache serielle Datenübertragung per Hyperterminal zu erstellen.
    Nur irgendwo ist de Wurm drin!Bekomme keine Strings übertragen.
    Das Kabel habe ich gerad extra nocheinmal auseinannder genommen und durch gemessen!Es ist ein Nullmodem Kabel.


    Nun meine Einstellungen:


    Im Hyperterminal habe ich erstmal kein Protokoll ausgewählt!
    Habs aber auch schon mit dem XON/XOFF probiert.


    HW_Inf.ini


    COM1=DISABLE ;WIN95 mouse
    COM2=ENABLE ;Vx Works <= muss ich den Com2-Port für die Nutzung vom Hyperterminal deaktivieren?
    COM3=DISABLE ;not implemented
    COM4=DISABLE ;not implemented



    Serial.ini


    [COM2]


    BAUD=9600
    CHAR_LEN=8 ;7,8
    STOP_BIT=1 ; 1,2
    PARITY=2 ;EVEN=2 , ODD=1, NONE=0


    PROC=4 ; 3964R=1, SRVT=2, WTC=3, XONXOFF=4


    Habe ich irgendein Parameter vergessen?


    Achso es ist ein KR 6/2, Sotware KRC1 V3.2.6


    danke

    Einmal editiert, zuletzt von blender ()

  • Schritt für Schritt zum Roboterprofi!
  • Oder könnte vielleicht jemand seine Einstellungen mal Posten, damit ich meine mal abgleichen kann?
    Über Beispile wäre ich auch dankbar.
    Für den Anfang habe ich mir vorgenommen den Rob über meinen Win PC per RS232 anzusteuern.
    Wenn das funktioniert soll darauf aufgebaut werden.

  • Hallo,
    schau mal da:
    http://www.roboterforum.de/rob…t_kuka_krc_1-t1485.0.html


    Da ist einiges beschrieben,
    ansonsten mal die Suchfunktion des Forums benutzen, zur seriellen Schnittstelle ist
    schon sehr viel hier vorhanden.


    Oder schau mal da:
    http://www.roboterforum.de/rob….0.html;msg15904#msg15904
    Da steht nämlich, dass das Protokoll XON/XOFF bzw. keines erst ab Version 4.x geht :(
    Da musst du dieses sagenumwobene 3964R verwenden. :bawling:



    Hermann

    Einmal editiert, zuletzt von Hermann ()

  • KRC1?
    schreib mal net "com2=ENABLE" sondern "com2=ENABLE_EX"

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

    Einmal editiert, zuletzt von WolfHenk ()

  • Hallo, blender!


    HW_Inf.ini


    COM1=DISABLE ;WIN95 mouse
    COM2=ENABLE ;Vx Works <= ist so richtig
    COM3=DISABLE ;not implemented
    COM4=DISABLE ;not implemented


    Serial.ini


    [COM2]


    BAUD=9600
    CHAR_LEN=8 ;7,8
    STOP_BIT=1 ; 1,2
    PARITY=2 ;EVEN=2 , ODD=1, NONE=0


    PROC=1 ; 3964R=1, SRVT=2, WTC=3, XONXOFF=4


    Mit diesen Einstellungen laufen unsere Roboter seit Version 1.1.10. Wir verwenden lediglich eine höhere Baudrate, die unter [COM2] geändert wird. Unter [3964R] haben wir einige Werte etwas erhöht, spielt aber bei wenigen Daten keine Rolle.


    Gruß


    PA

  • Oder schau mal da:
    http://www.roboterforum.de/rob….0.html;msg15904#msg15904
    Da steht nämlich, dass das Protokoll XON/XOFF bzw. keines erst ab Version 4.x geht :(
    Da musst du dieses sagenumwobene 3964R verwenden. :bawling:



    Hermann


    Das habe ich leider übersehen. Das werd ich Montag gleich mal ändern!
    Aber am Anfang versuche ich ja nur zwischen XP und dem Win95 Rechner aus der Steuerung zu kommunizieren. Da müsste das doch mit dem XonXoff klappen oder liege ich da falsch! :uglyhammer_2:




    KRC1?
    schreib mal net "com2=ENABLE" sondern "com2=ENABLE_EX"


    Was bedeutet denn das _EX?


    PAW danke für die Settings. Ich werds Montag nochmal abgleichen!


    Danke für die Antworten und nen schönes Wochenende!

  • Hallo,


    na wenn Du nur auf Windowsebene kommunizieren willst, dann musst du
    schreiben:


    COM2=DISABLE ;Vx Works <= ist SO richtig !!!!!!


    Denn mit dem Eintrag ENABLE wird die Schnittstelle für VXWorks reserviert,
    und Windows hat dann keinen Zugriff mehr darauf. Dann kann man nur
    noch auf Roboterebene auf die Schnittstelle zugreifen.


    Die Baudraten usw. werden dann selbstverständlich auch im Hyperterminal
    bzw in den Windows Standarddialogen eingestellt.


    Die weiteren Einstellungen in der hw_inf.ini haben dann keinen praktischen
    Nährwert.


    Hermann

  • was das _EX bedeutet, weiß der Mann, der die Schnittstelle geschrieben hat (Der ist hier sicher auch am Lesen :blumen: ).
    Ich vermute "Extra".
    Ich weiß aus eigener Erfahrung, daß die Sachen, die ich beruflich verwende alle unter ENABLE_EX laufen, sofern ich es mit ner KRC1 zu tun habe. Sogar das Xon-Xoff-Protokoll... (Das aber nur ab 4.XX)


    WH

    Wolfram (Cat) Henkel

    never forget Asimov's Laws at the programming of robots...

    "Safety is an integral part of function. No safety, no production. I don't buy a car without brakes."


    Messages und Mails mit Anfragen wie "Wie geht das..." werden nicht beantwortet.

    Diese Fragen und die Antworten interessieren jeden hier im Forum.


    Messages and Mails with questions like "how to do..." will not be answered.

    These questions and the answers are interesting for everyone here in the forum.

  • @Wolfram
    nach 3 Wochen Urlaub vom Roboterforum bin ich wieder da :supi:
    _EX soll "extended" heissen.
    Mit Einführung der KRC2 (MFC2, das neue Motherboard konnte die COM1 und COM2 nicht mehr vxWorks zuweisen) entfiel COM1 und COM2. Es gab aber noch KRC2's mit Mutterbretter (z.B. SuperMicro) wo COM2 noch funkte. Für diesen Fall wurde dann das ENABLE_EX "erfunden".


    blender
    für Win to Win kommunikation muss der entsprechende COM disabled sein !
    Kommunikation PC-Roboter: wenn Du eine Software kleiner V4.0 auf der Steuerung hast funkt nur das serielle Protokoll 3964R auf der Roboterseite. Hyperterminal kann das nicht.
    KRC1 kann auf V4.x aufgerüstet werden (neue CPU, Speicher, ... nötig)

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Hallo,


    ich war leider die letzte Woche krank und konnte deshalb nichts testen.
    Bin jetzt aber wieder an der Sache dran und total am verzweifeln. :waffen100:


    Ich bekomme keine reine Windows kommunikation.
    Den COM2-Port habe ich auf Disable gestellt, und im Hyperterminal habe ich alle Übertragungsparameter identisch eingestellt. Gibt es nochwas worauf ich achten muß?
    Hab mitlerweile alle Themen aus diesem Forum durch, aber leider hat mir noch nichts weiter geholfen.


    Ich verwende folgendes Kabel:
    25pol auf 9pol: 2-2,3-3,6-4,7-5,20-6,5-7,4-8,22-9.


    Ich hoffe hier hat jemand noch eine Idee.


    Gruß
    blender

  • Hallo Blender,


    das Kabel ist ok.
    Hast Du nach der Änderung in der hw_inf.ini (DISABLE) einen Kaltstart gemacht ? (Kaltstart nötig)
    Welches Protokoll hast Du in den beiden Hyperterminals eingestellt ?
    (Vorschlag: kein Protokoll)
    Sollte eigendlich sofort funken da ja von KUKA (ausser das Kabel COM2 zum Motherboard) nichts dazwischenliegt.
    a+

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Hast Du nach der Änderung in der hw_inf.ini (DISABLE) einen Kaltstart gemacht ? (Kaltstart nötig)


    Ja danach habe ich nochmal neu gestartet.Kalststart bedeutet doch einmal neu hochfahren oder?
    Protokoll habe ich keins ausgewählt.


    Sollte eigendlich sofort funken da ja von KUKA (ausser das Kabel COM2 zum Motherboard) nichts dazwischenliegt.
    a+


    Was meinst du denn mit nichts dazwischen?


    Ich habe es gerade mal mit 2 XP Rechner probiert, das klappt sofort.

    Einmal editiert, zuletzt von blender ()

  • Kaltstart heisst Runter- und Hochfahren MIT Kaltstartoption !
    Was hast für Softwareversion auf der Steuerung ?


    Mit dazwischen meine ich eine Windows-Windows-Kommunikation ohne KUKA-Software im der Kommunikation.

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Hallo,
    Sollte zwar funktionieren,
    Ich habe solche Experimente aber immer mit Brücken der Handshake-Signale in den Steckern
    gemacht. Beim 25-poligen glaube: 4-5, 6-8-20 oder so ähnlich.
    Beim 9-poligen müsste es 7-8, 1-4-6 sein. (rts-cts, und dsr-dtr-dcd)


    Hermann

  • ja, das wollte ich Dir gerade schreiben:
    bin mir jetzt nicht 100% sicher, aber die V3.2 sollte schon den Warmstart haben.
    Schau unter Menue Konfiguration -> Ein-/Ausschaltoptionen -> Kaltstart erzwingen.
    Wenn Du dieses Menue hast, bitte Kaltstart erzwingen einstellen !
    :supi:

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Und schon wieder stehe ich vor einem kleinen Problem. :denk:
    Ich hab die Doku Cread/Cwrite mir schon zu Gemüte geführt und auch schon Programme aus diesem Forum.
    Das CWrite klappt super,es kommt am Hyperterminal an, nur die Read funktion noch nicht!
    Ich möchte wenn ich am Terminal auf 5 drücke das er kurz vor und zurück fährt. Und später sollen dann X,Y, und ein Winkel von meinem Programm übertragen werden.
    Ach und die Progammierung verstehe ich noch nicht so ganz, ich habe jetzt alles in die src datei geschrieben, wird das dann alles auf die dat Datei paralles übertragen?
    Hier mein Programm:



    ;-------Deklarationen
    EXT BAS (BAS_COMMAND :IN,REAL :IN )
    INT HANDLE, Offset



    REAL Timeout



    DECL CHAR c
    DECL CHAR d
    DECL CHAR z
    Real R_Wert


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


    CHANNEL :xprechner :SER_2 $PSER_2 ;Zuweisung einer Variablen an den Kanal


    ;------Initialisierung


    BAS (#INITMOV,0 ) ;Ini von Geschw. Beschl. Koordiatensystem



    Schreibmodus=#SYNC ;synchrone Datenuebertragung
    Lesemodus=#ABS ;aktives Lesen intialisieren
    c="A"
    d="B"



    ;-------Hauptprogramm


    COPEN(:xprechner, HANDLE) ;Kanal oeffnen
    IF (HANDLE==0) THEN ;falls kein Kanal geoeffnet wurde
    HALT ;dann Programmstop
    ENDIF



    CWRITE(HANDLE, Schreibstatus,Schreibmodus,"%c%c",c,d)


    CREAD(HANDLE, Lesestatus,Lesemodus,"%c",z)
    IF (z==5) THEN


    PTP HOME Vel= 100% DEFAULT
    LIN P1 Vel = 2m/s CPDAT1 Tool[1] Base[0]
    PTP HOME Vel= 100% DEFAULT
    ENDIF


    CCLOSE(HANDLE, Closestatus); Kanal schließen

    Einmal editiert, zuletzt von blender ()

  • wird scho :D


    - denke Du hast Dich hier verschrieben. CREAD schaut flg aus:
    CREAD(HANDLE,lesestatus,lesemodus,TIMEOUT,OFFSET,"%c",z)
    wobei real timeout=10.0 (lange warten auf Deinen Tastendruck)
    int offset=0 (immer vor dem CREAD auf 0 setzen)


    - die Abfrage IF (z==5) THEN ist falsch, Du musst auf "5" (ASCII) abfragen

    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