Probleme bei der komunikation von KRC 2 mit Schunk Kamera über (CRead CWrite)

  • Hallo zusammen ich hoffe ihr könnt mir weiterhelfen. Bin nun schon seit Tagen am rumprobieren was der Fehler sein könnte aber ich komm nicht darauf.
    Ich muss im Zuge einer Probearbeit die Lage eines Würfels an den Kuka Roboter Übergeben und dann den Würfel automatisch aufnehmen lassen.
    Als Equipment wurden mir die Kamera Schunk SRV 300 und ein Kuka Roboter zur Verfügung gestellt.
    Die Kommunikation soll nun über die Serielle Schnittstelle mit CRead und CWrite erfolgen.
    Habe dafür auch schon einiges hier im Forum nachgelesen bzw ausprobiert.


    Wenn ich die Hex Werte direkt mit einem PC an die Kamera schicke macht diese ein Bild.
    Schicke ich diese aber über den krc mit CWrite passiert gar nichts.
    Ich kann aber die werte, die die KRC schickt mittels SerialPort Monitor auslesen.
    Hier mein Programm:



    Serial.Ini und hw_inf.ini und custom.dat wurden entsprechend der Anleitung geändert.
    Sobald der Cwrite Befehl ausgeführt wird sind diese hex werte am Serial Port Monitor zu lesen.
    Die Kamera macht aber nichts. Werden die 6 hex zahlen des Arrays über den PC geschickt macht die Kamera ein Bild.

    Zitat

    11 ; für copen
    dann folgen die 6 Werte vom Array für die Bildaufnahme Bilda[]
    und danach noch 13 für CClose


    Was könnte der Fehler sein? Ist es möglich, dass die 11 und 13 stören aber dafür habe ich ja die Wait sec 2.0 Anweisung.
    Ich hoffe ihr könnt mir helfen. Vielen Dank im Voraus.

    Zitat
  • Schritt für Schritt zum Roboterprofi!
  • Also das mit der 11 und 13 verstehe ich nicht.
    Nach welcher Anleitung wurde serial.ini und hw_inf.ini geändert? Am besten hier mal posten.
    Also nicht die Anleitung, sondern die beiden Dateien.
    Was für eine KRC und welche Softwareversion (bei der KRC1 gibt's da grosse Unterschiede).
    Nachdem es ser3 ist vermute ich aber mal KRC2.

  • Hallo danke für die nachfrage!


    Es handelt sich um die krc2 edition 05


    Habe in den folgenden dateien jeweils die untenstehenden änderungen durchgeführt.


    ---------hw_inf.ini-----------------------


    Zitat


    [SERIAL]
    ;ENABLE: COM is accessible by robot (vxWorks)
    ;DISABLE: COM is accessible by Win95
    ;CONSOLE: for developer only
    COM3=ENABLE ;[ENABLE, DISABLE, CONSOLE]


    ---------serial.ini-----------------------------------------


    und in der ---------custom.dat--------------------- wurde diese zeile angepasst.

    Zitat


    DECL SER $PSER_3={PROTO 4,PROC 2,RCO 0,BL 0,BAUD 9600,NOC 8,NOS 1,PARITY 0,TRC 0,FLP 1,LLP 60,RT 0,PT 0,DSR 0,WCCXON 0,VXON 11,VXOFF 13,WEOBC 1,VEOBC 3} ;SCHNITTSTELLE 2


    Soweit ich es verstanden habe handelt es sich bei der 11 und der 13 der aufruf von
    11 für copen
    und 13 für cclose.


    bin mir aber nicht 100% sicher.

  • Dann mach mal da:


    die Änderung:

    Code
    XON_VAL=0           ; 0..255  XON  character (decimal)
    XOFF_VAL=0          ; 0..255  XOFF character (decimal)
                         ; if XON_VAL=0 and XOFF_VAL=0 then XON/XOFF protocol
                         ; is disabled (pure serial communication)


    denke mal die Werte aus der custom.dat sind nicht mehr verwendet, ansonsten noch:

    Code
    DECL SER $PSER_3={PROTO 4,PROC 2,RCO 0,BL 0,BAUD 9600,NOC 8,NOS 1,PARITY 0,TRC 0,FLP 1,LLP 60,RT 0,PT 0,DSR 0,WCCXON 0,VXON 0,VXOFF 0,WEOBC 1,VEOBC 3} ;SCHNITTSTELLE 2


    Die 11 und 13 sind die Codes für XON / XOFF, die könnten die Kamera schon stören.

  • Hallo ,


    siehst du wirklich die Bytes mit Deinem SerialPort Monitor? Ich würde den Befehl


    CWRITE(HANDLE,SW_T,MW_T,"%1r",BILDA[]) ; Schicke Array für Bild auslöser


    etwas anders interpretieren: Sende nur das erste Element (%1r). Für das komplette Array hätte ich hier %r angegeben.


    Mir ist auch Dein Offset von 24 nicht ganz klar. Normalerweise ist der Offset 0, da man alles lesen will. Auch hier sollte mit %r das ganze Array gelesen werden können.


    Ich lasse mich gern eines Besseren belehren.


    mfg



    MOM

  • Hallo danke für die antworten.


    Der Tip mit xon xoff auf 0 setzten hat funktioniert damit ich keine 11 und 13 mehr bekomme.
    Ein Bild wird aber trozdem nicht gemacht.
    Der Wert muss auf %1r bleiben sonst sendet der rob wieres zeug mit vielen 00 00 zwischen den zeichen.
    Aber trozdem danke für den tip.
    Der offset ist auf 24 weil dort erst meine relevanten werte beginnen.
    --------------------------------------------------------------------


    bekomme vom roboter vollgende zeile geschickt.

    Zitat

    Read data


    00000000: 05 12 01 FE 20 D9 ...þ Ù


    wenn ich diese zeile nun bei mir eingebe im serial port monitor und an die kammera schicke bekomme ich vollgendes zurück.



    Sehe da keinen unterschied im code funktioniert aber nicht!


    Kann es sein das ein Abschlusszeichen mit übermittelt werden muss???


    Wenn ja wie würde das ausschauen?


    Weis nicht was ich noch ändern kann damit mir meine Kamera ein bild macht:(


    mfg

  • Könnten auch noch die Signale RTS/CTS DTR/DSR sein.
    Die werden evtl. mit dem Monitorprogramm richtig gesetzt, bei der KRC evtl. nicht.
    Da sollten dann Brücken von 7-8 und 6-4 (bei 9poligem Stecker) helfen.

  • Hallo Danke für den Tip mit dem Kabel war zwar nicht die Brücke aber mein Kabel hatte anscheinend einen treffer weg^^


    Etz gehts mitm Bild Auslöser:)
    ------------------------------------------------------------------------------------------------------------------------------------------------------
    Steh aber schon vor dem nächsten Problem.


    In der angehängten Bilddatei befinden sich die übertragenen Werte die die Kamera an den Roboter schickt.
    Diese Werte werden nach dem Befehl Cwrite, der als Bildauslöser dient, übermittelt.
    Diese jeweils 4 Byte langen hex-Blöcke stellen die Koordinaten und Drehwinkel dar.
    Ist es möglich diese hex-Daten direkt in eine Fließkommazahl (float) umzuwandeln?


    Haben aber Probleme die Zahlen einzulesen. Was wäre hierfür die beste Lösung?
    Bei Umwandlungszeichen %r Fehlermeldung: (Keine Daten/ Variablen mehr vorhanden)


    Bei Umwandlungszeichen %e (Variablendeklaration in REAL geändert) Fehlermeldung : (Unzulässige Variablenkombination) -->Programmabbruch



    Es sind aber Werte in den Variablen vorhanden wenn ich diese beobachte.


    Hoffe sie können uns Weiterhelfen
    Vielen Dank schon im Voraus

  • Tja, und welche dezimalen Werte sollen da in den Kästchen dargestellt sein?
    In der Kamera-Doku sollte das Zahlenformat für die Daten dokumentiert sein. Dann in der Kuka-Doku nach einem entsprechenden Format suchen. Wenn's nicht klappt dann byte/wortweise (%i) einlesen und 'händisch' umwandeln.


    Edit:
    Ah, seh gerade, dass das %r schon das byteweise Lesen sein soll. Würde es mal mit %4r probieren.
    Das händische wäre dann insgesamt 12 mal %1r und dann laut Zahlenformat mit einem mehr oder weniger komplizierten Programm wandeln.


    Noch ein Edit:
    Hab' nachgesehen, sollte ein IEEE-Format sein. Dann sollte eigentlich %4r%4r%4r mit X,Y,G als Real deklariert funktionieren.

    Einmal editiert, zuletzt von Hermann ()

  • Hallo Danke allen zusammen für die Hilfestellungen.


    Der letzte tip einfach direkt als real zu dekarieren hat funktioniert.
    Muste nur noch ein wenig mit dem Offset tricksen da ich da öfter fehler bekommen habe.
    Verwende jetzt einfach einen 1 Cread befehle in dennen ich Abfall Variablen einlese.


    Hier mein Funktionierendes Programm für die Funktion:



    :danke:

  • Hallo allemiteinander,


    hat jemand die Dokumentation über cread/cwrite vorliegen und könnte sie mir als PDF zukommen lassen?


    Habe ein ähnliches Problem mit einer Kameraanwendung, und bevor ich im Trüben fische hätte ich gerne ne Doku, wo ich zumindest gewisse Anhaltspunkte nachlesen kann.


    Vielen Dank im voraus.

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