RS232 Kommunikation

KrazyD

Level-1
Beiträge
16
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
RS232 Readfunktion geht nicht

Hi Forum,
ich benutze für die serielle Kommunikation die lib CAA SerialCom. Der Funktionsbaustein Write funktioniert auch, schreibt den String aber auch bei zyklischem Aufruf nur einmal und nicht wie ich möchte bei jedem Durchlauf erneut.
Das größere Problem ist bei mir aber der Read FB. Ich habe eine loop gebaut und so CoDeSys mit Hterm verbunden. Egal was ich bei Hterm sende nichts wird in den Buffer geschrieben, auf den mit dem Pointer in der Funktion gezeigt wird.
Sieht jemand etwas woran das scheitern könnte?

mfg
D
Code:
com_write(hCom:= com_open.hCom,xExecute:=com_open.xDone,pBuffer:=ADR(str_out), szSize:=SIZEOF(str_out));

com_read(hCom:= com_open.hCom, xExecute:= com_open.xDone, pBuffer:= ADR(str),szBuffer:=SIZEOF(str));
 
Zuletzt bearbeitet:
Schreib doch mal bitte WIE du das Problem gelöst hast, damit jemand, der in 5 Jahren diesen Thread findet es auch lösen kann.
 
Das Problem war, dass für den erneuten Aufruf der Funktion es nicht reicht xExecute auf FALSE zu setzen und dann wieder die Funktion aufzurufen, sondern die Funktion muss einmal mit xExecute:=FALSE durchlaufen werden, dann geht es.
Sieht bei mir so aus:
Code:
    read_done:=FALSE;
    com_read(hCom:= com_open.hCom, xExecute:= com_open.xDone, pBuffer:= ADR(str),szBuffer:=SIZEOF(str),udiTimeOut := 200000);
    IF com_read.xDone THEN;
        com_read(hCom:= com_open.hCom, xExecute:= FALSE, pBuffer:= ADR(str),szBuffer:=SIZEOF(str));    
    END_IF
 
Zuletzt bearbeitet:
Zurück
Oben