CREAD/CWRITE mit Kamera

  • Hallo


    Ich habe jetzt mein System aufgebaut:
    Kamera(Ethernet)----<Schnittstellen Konverter>--------> Roboter(RS232)


    Ich kann jetzt meine Position von einem Artikel einlesen.
    Kamera wird von Roboter getriggert.
    Wenn kein Artikel im Bild ist dann werden die Daten verworfen und neue getriggert.


    Es treten allerdings bei mir ab und zu folgende Fehler auf.
    1.
    Eintrag 4861 (System, Fehler)
    2007-12-13 17:00:47'693
    Empfangspufferüberlauf
    Module: System MsgNo: 1023


    Voran kann es liegen?



    2
    Eintrag 3562 (System, Hinweis)
    2007-12-13 15:29:44'070
    CRead(..,EXT_FCT-Handle,..) unzulässiges Argument
    Module: System MsgNo: 1439


    Tritt unregelmäßig auf, ich kann leider nicht sagen wann. Ich quittiere alles, triggere neue, läuft alles.



    Gruss


    Maxim

  • Schritt für Schritt zum Roboterprofi!
  • Guten Morgen Maxim,


    1. entweder werden von der Kamera mehr Telegramme geschickt als mit CREAD gelesen
    werden, oder die Telegrammendeerkennung schlägt zu früh zu (2 Telegramme !!)
    [XONXOFF]
    CHAR_TIMEOUT=50 ; msec Timeout after last received character
    ; to recognize the end of telegram


    2. Äähhh? Was hat hier ein EXT_FCT-Handle zu suchen ?
    Post mir bitte Dein COPEN und das entsprechende CREAD (nur Abschnitte)

    Wer nach allen Seiten offen ist kann nicht ganz dicht sein

  • 1.
    Ich nutze XONXOF
    Ich könnte heute leider Posting nicht lesen.
    Ich weiß nicht wie groß ist CHAR_TIMEOUT, kann ich den Fehler mit Überlauf irgendwie abfangen?
    dass die Daten wenn die nicht davor glesen wurden, verworfen werden



    2
    hier sind die ausschnitte


    ;Initialisieren

    ;Start Serielle Schnittstelle
    RMODUS=#ABS
    WMODUS=#ASYNC
    COPEN(:SER_2,HANDLE)
    TIMEOUT=20.0
    OFFSET=0
    ;INIT SOFTWARE
    $TIMER[6]=0.0
    B_CAMERA_END=FALSE
    B_CAMERA_END=FALSE
    B_CAMERA_TRIGGER=FALSE
    I_Conveyor_Step=0


    IF $DATA_SER2>0 THEN
    ;Lesen von Serieller Schnittstelle
    CREAD(HANDLE,STATUS,RMODUS,TIMEOUT,OFFSET,"%F%F%F%F%F%F ",R_CAMERA_1_X,R_CAMERA_1_Y,R_CAMERA_1_a,R_CAMERA_2_X,R_CAMERA_2_Y,R_CAMERA_2_a)
    B_CAMERA_BUSY=FALSE
    CAM_POINT[1].CX=R_CAMERA_1_X ;/R_CAMERA_pix_mm_x
    CAM_POINT[1].CY=(R_CAMERA_1_Y ;/R_CAMERA_pix_mm_y)*(-1)
    CAM_POINT[1].Ca=R_CAMERA_1_a
    CAM_POINT[2].CX=R_CAMERA_2_X ;/R_CAMERA_pix_mm_x
    CAM_POINT[2].CY=(R_CAMERA_2_Y ;/R_CAMERA_pix_mm_y)*(-1)
    CAM_POINT[2].Ca=R_CAMERA_2_a


    Gruß


    Maxim

    Einmal editiert, zuletzt von mkilber ()

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