KRC 32 Serielle Schnittstelle

  • das heisst, das die KRC32 das Signal RTS richtig auf HIGH setzt (RS-232 arbeitet mit Signalpegeln im Bereich von +3 ... +15 V zur Darstellung einer logischen 0 (SPACE) und -3 ... -15 V zur Darstellung einer logischen 1 (MARK)).
    Warum wird nun das entsprechende CTS-Signal am PC nicht als HIGH angezeigt ?
    Kann sich ja nur um einen Kabelfehler handeln !!!

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Schritt für Schritt zum Roboterprofi!
  • er wird Weihnachten :bawling:


    an welchem Stecker hast Du gemessen ?
    Wenn Du an der KRC32 das CTS gemessen hast stimmt es (LOW).
    Das CTS an der KRC32 wird erst durch den PC (RTS) auf HIGH gesetzt.


    Hast du jetzt das komplette Kabel durchgemessen ?
    25 pol KRC32 8 pol PC


    RTS 4 ------------- 8 CTS
    CTS 5 ------------- 7 RTS
    TX 2 ------------- 2 RX
    RX 3 ------------- 3 TX
    GND 7 ------------ 5 GND

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • da kannst du als geschäääänk vorbeikomme :zwink:
    also dieser verbindun würde ich entnehmen das ich se brücken muss:
    9polig 25polig
    DIN8 female
    5 7 ---GND----- (Signalmasse)
    2 3 ---RxD----. (Recieve Data - Empfangsdaten
    | von Gegenstelle über DCE zum DTE)
    3 2 ---TxD----' (Transmit Data - Sendedaten vom DTE
    über DCE zur Gegenstelle)
    7 4 ---RTS----. (Reqest To Send - Empfangsbereitschaft
    | des DTE)
    8 5 ---CTS----o (Clear To Send - Sendebereitschaft
    | des DCE)
    9 22 ---RING---' (DCE hat Ruf erkannt)
    4 20 ---DTR----. (Data Terminal Ready - DTE ist prinzipiell
    | bereit, d.h. Port aktiviert)
    6 6 ---DSR----o (Data Set Ready - DCE ist prinzipiell
    | bereit, d.h. eingeschaltet)
    1 8 ---DCD----' (Data Carrier Detect, man ist verbunden)

  • ok ich hab jetzt noch ne weile rumprobiert und ich bin jetzt zu nem gaaaanz eigenwilligen ergebnis gekommen,welches ich ger ein wenig erklärt hätte.
    UND ZWAR: (lufthol)
    wenn ich in dem Docklite den punkt bei rts ausmache kann ich daten von der krc empfangen.
    wenn ich jetzt den punkt anmache kann ich sie vom pc senden und die krc empfängt sie sogar.


    das ist aber ein rs485 transceiver control (heist bei docklite so) das heist das das rts nur fürs senden high-pegel hat.


    ist das jetzt der rts cts protokoll??ich denke nicht, denn wenn ich das wieder einstelle geht wieder nix.


    ich blick langsam bei den ganzen protokollen nich mehr durch :bawling: ich werd noch ganz verrückt :icon_rofl:

  • die meisten billigen Rs485-Konverter brauchen das RTS-Signal zum Umschalten SEnden/Empfangen - ist bekannt.
    Du kannst doch Dein Docklight auf Hardwarehandshaking RTS/CTS stellen (nicht auf manuell stellen wo man die Signale sieht). Funkt es dann auch ?

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • also ic habe jetzt pin 4 und 5 am 25pol gebrückt undjetzt funktioniert das ganze perfekt und ohne probleme


    und wir wären bei der fehlersuche fast verblödet :uglyhammer_2:

  • Hallo Albrecht,
    ist zwar nicht Sinn der Sache bei einem Handshake sich selbst die Signale zu geben, aber
    der Zweck heiligt die Mittel.


    :blumen: :blumen: :blumen:


    Wann hast du Geburtstag (gehabt) ?

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Albrecht schrieb:

    Zitat


    also ic habe jetzt pin 4 und 5 am 25pol gebrückt undjetzt funktioniert das ganze perfekt und ohne probleme


    und wir wären bei der fehlersuche fast verblödet


    HMI_VISU Schrieb am 17.07.07:

    Zitat


    Kannst ja mal RTS\CTS , DTR\DSR testweise an PC und Roboter beideitig brücken,
    oder du misst mal die PEgel, wie LindePaul schon sagte!


    Hi Albrecht:


    Wollte eigentlich schon damals, dass du nicht verblödest!! :mrgreen:

  • Hallo


    ich versuche gerade die Kommunikation KUKA<-> Notebook (über Schnittstellen-Wandler Ethernet.->Seriell) über Serielle Schnittstelle zu realisieren.


    Roboter KR5sixx
    KRC V7.0.9 Grundsystem KS V7.0.56RT


    Die Doku zum Cread habe ich durchgelesen. Was mir direkt aufgefallen war, dass hw_inf.ini nicht im Verzeichnis C:/ KRC/ROBOTER/INIT vorhanden war. Ich habe die per hand eingefügt.


    Die Einstellungen habe ich laut Beschreibung seriell.ini und hw_inf.ini Laut Beschreibung gemacht
    Hw_inf.ini Seriell.ini
    Com1 enable gleich Konverter


    Die Kommunikation steht Ich kann von der Steuerung an Notebook über Hyperterminal was senden und empfangen


    Jetzt habe ich ein Programm geschrieben um einfach ein String von dem Notebook zu lesen. String deswegen da ich danach statt Notebook Kamera anwenden will und die kann nur String. In dem String steht nur Zahl 100.



    1.
    Wo füge ich die Zeile ein
    CHANNEL : SER_1 :SER_1 $PSER_1
    Ich habe die in System/Config.dat eingefügt


    2
    Mein Programm


    ++++++++++++++++datenliste++++++++++++++++++++


    &ACCESS RVP
    &REL 38
    &PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
    &PARAM EDITMASK = *
    DEFDAT SER
    ;FOLD EXTERNAL DECLARATIONS;%{PE}%MKUKATPBASIS,%CEXT,%VCOMMON,%P
    ;FOLD BASISTECH EXT;%{PE}%MKUKATPBASIS,%CEXT,%VEXT,%P
    EXT BAS (BAS_COMMAND :IN,REAL :IN )
    DECL INT SUCCESS
    ;ENDFOLD (BASISTECH EXT)
    ;FOLD USER EXT;%{E}%MKUKATPUSER,%CEXT,%VEXT,%P
    ;Make here your modifications


    DECL STATE_T STATUS ;
    DECL MODUS_T RMODUS,WMODUS
    ;DECL FRAME PUNKT
    INT HANDLE,OFFSET
    REAL TIMEOUT ;,XPOS,YPOS,ZPOS
    REAL ERG
    ;ENDFOLD (USER EXT)
    ;ENDFOLD (EXTERNAL DECLERATIONS)
    ENDDAT
    ****************Programm
    &
    &ACCESS RVP
    &REL 38
    &PARAM TEMPLATE = C:\KRC\Roboter\Template\vorgabe
    &PARAM EDITMASK = *
    DEF SER( )
    ;FOLD INI
    ;FOLD BASISTECH INI
    GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
    INTERRUPT ON 3
    BAS (#INITMOV,0 )
    ;ENDFOLD (BASISTECH INI)
    ;FOLD USER INI
    ;Make your modifications here


    ;ENDFOLD (USER INI)
    ;ENDFOLD (INI)


    ;------------INITIALIZATIONS
    RMODUS=#ABS
    WMODUS=#ASYNC
    TIMEOUT=2.0
    ;------------INSTRUCTIONS


    COPEN(:SER_1,HANDLE)
    IF HANDLE==0 THEN ;channel ist noch zu
    HALT
    ENDIF
    ;LOOP


    WAIT FOR $DATA_SER1>0
    OFFSET=0
    CREAD(HANDLE,STATUS,RMODUS,TIMEOUT,OFFSET,"%d",ERG)
    IF (STATUS.RET1<>#CMD_OK)THEN
    HALT
    ENDIF



    END



    Bei der Ausführung springt er bei mir in die if Abfrage
    COPEN(:SER_1,HANDLE)
    IF HANDLE==0 THEN ;channel ist noch zu
    HALT
    ENDIF


    Das heißt dass das Chanel nicht aufgemacht wird


    Ich freue mich auf Ihre KOMMENTARE


    Gruß


    Maxim

  • Das Problem liegt nut in der verwendeten V7.0.
    Da gibt es keine hw_inf.ini mehr :eviltongue:
    Die heisst jetzt KRC.XML im Mada-Verzeichniss. die brauchst du aber nicht ändern - dort ist der COM2 (nur COM2 funktioniert) bereits enabled.


    [glow=red,2,300]CHANNEL : SER_1 :SER_1 $PSER_1
    Ich habe die in System/Config.dat eingefügt[/glow]
    brauchst Du nicht, schmeiss die Zeile wieder raus


    COPEN auf COM2 muss funktionieren

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • hallo
    bzw ich habe auch COM2 Anschlüss
    der aber niergenwo zu finden nicht in Systemsteuerung und auch wenn ich Hyperterminal aufmache kann ich nur COM 1 auswählen


    Gruss


    Maxim

  • Hallo,


    es funktioniert mit COM2 tatsächlich, vielen Dank.
    So kann ich aber nicht komtrollieren, ob die Komunikation mit der Kamera steht. Bei COM 1 habe ich immer über Hyperterminal überprüft.
    gibt es für schnelle Kontrolle andere Möglichkeiten.?


    Gruß
    Maxim

  • Hallo


    ich habe jetzt an COM2 meine Kamera angeschlossen.
    Und es geht wie beschrieben.
    Komisch ist nur das der PORT COM2 niergendwo zu sehen ist nur in der Datei die du erwähnt hast. So kann ich nicht wie früher die Kommunukation über Hyperteminal überprüfen.


    Gruß


    Maxim

  • Hallo Maxim,
    der COM2 wurde Windows entzogen und dem vxWorks (Roboter) zugewiesen.
    In Windows nicht mehr sichtbar.
    Du kannst die Kommunikation mit dem in der V7 eingebauten seriellen Loggen überprüfen.
    Bin krank zuhause und habe kein KCP vor mir.
    irgendwo im Konfiguration/EA-Treiber/serielle Kommunikation/serielles Loggen
    Häckchen ran und der Logger ist scharf, Häckchen wieder weg und im Log-Verzeichnis steht eine Datei serialcom.log

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • Hallo


    Vielen Dank
    ich probiere es direkt aus.


    Ich habe jetzt eine andere Frage. (eventuell blöde Frage)


    ich senden mit der Kamera ein String <POSX POSY WINKEL>, bei einem Artikel funktioniert es wunderbar.
    ich lese mit CREAD
    CREAD(HANDLE, SR_T, MR_T, TIMEOUT, OFFSET,“%F %F %F“, XPOS, YPOS, APOS,)


    Jetzt will ich je nach dem, ob ein oder mehrere Artikel im Bild sind auch die Positionen anfahren.
    Ich könnte von Kamera ein deffinierten String schicken
    für ein Artikel <POSX POSY WINKEL 0 0 0 0 0 0>
    und für drei <POSX POSY WInkel POSX POSY WINKEL POSX POSY Winkel>
    und dann( theoretisch mit SREAD in einzelne Teile zerlegen)


    Zur Zeit ist mein String von der Kamera so deffiniert, dass je nachdem wieviel Artikel da sind, soviel Positionen auch ausgegeben wird. Also Stringlänge nicht konstant.


    Mein Problem ist, dass ich nicht weiß wie ich die Positinen von 1. Artikel von den Positionen von 2. Artikel bei dem Roboter nach dem Einlesen trenne.
    Hast du da eine Idee wie ich es am besten und am schnellsten realisieren könnte.



    Wunsche dir gute Besserung
    Gruß


    Maxim

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