-> Hier kostenlos registrieren
Hallo,
ich hab eine RFID Lesegeräte am Comport meiner CX5130 angeschlossen. Der Betrieb mit dem virtuellen Comport über USB und ADS funktioniert einwandfrei. Stecke ich nun das Lesegerät auf den comport, bekomm ich auch im Windows (BIOS geändert auf Windows Betrieb) die nötigen Daten. Also der Com Stecker funktioniert. Will ich das nun über die PLC betreiben, kommt im RXBuffer nichts an.
Konfiguration COM Schnittstelle: (wurde so mit Scannen gefunden)

Kommunikationseinstellungen: Parität, Stoppbits, Datenbits und Baudrate entsprechen der Konfig des Lesegeräts:

Die In und Out sind verknüpft mit:
Im Main Programm habe ich folgende Variablen deklariert:
Der Aufruf sieht so aus:
Ich bekomme aber keinen Fehler im SerialLineControl und der RxBuffer bzw. der TxBuffer ändert sich auch nicht.
Task Config: (von 4ms schon auf 2ms herunter gedreht - ändert auch nichts.

Bitte um Tipps was falsch sein könnte.
danke!
ich hab eine RFID Lesegeräte am Comport meiner CX5130 angeschlossen. Der Betrieb mit dem virtuellen Comport über USB und ADS funktioniert einwandfrei. Stecke ich nun das Lesegerät auf den comport, bekomm ich auch im Windows (BIOS geändert auf Windows Betrieb) die nötigen Daten. Also der Com Stecker funktioniert. Will ich das nun über die PLC betreiben, kommt im RXBuffer nichts an.
Konfiguration COM Schnittstelle: (wurde so mit Scannen gefunden)

Kommunikationseinstellungen: Parität, Stoppbits, Datenbits und Baudrate entsprechen der Konfig des Lesegeräts:

Die In und Out sind verknüpft mit:
Code:
VAR_GLOBAL
stIn_PcCom AT %I* : PcComInData;
stOut_PcCom AT %Q* : PcComOutData;
END_VAR
Im Main Programm habe ich folgende Variablen deklariert:
Code:
PROGRAM MAIN
VAR
(* communication buffer between application and SerialLineControl *)
RxBuffer : ComBuffer;
TxBuffer : ComBuffer;
(* serial line control *)
fbLineCtrl : SerialLineControl;
(* receive data *)
fbReceiveByte : ReceiveByte;
aPrefix : ARRAY[0..1] OF BYTE := [16#10, 16#02];
aSuffix : ARRAY[0..1] OF BYTE := [16#10, 16#03];
(* data buffer *)
aRxData : ARRAY[0..999] OF BYTE;
END_VAR
Der Aufruf sieht so aus:
Code:
(*~~~~~~~~~~~~~~~~ cyclic call of serial background comm. ~~~~~~~~~~~~~~~~~*)
fbLineCtrl(
Mode := SERIALLINEMODE_PC_COM_PORT,
pComIn := ADR(GV.stIn_PcCom),
pComOut := ADR(GV.stOut_PcCom),
SizeComIn := SIZEOF(GV.stIn_PcCom),
TxBuffer := TxBuffer,
RxBuffer := RxBuffer
);
IF fbLineCtrl.Error THEN
//error handling
END_IF
fbReceiveData(
pPrefix:= ADR(aPrefix),
LenPrefix:= 2,
pSuffix:= ADR(aSuffix),
LenSuffix:=2,
pReceiveData := ADR(aRxData),
SizeReceiveData := SIZEOF(aRxData),
Timeout:= T#700MS,
RXbuffer := RxBuffer
);
Ich bekomme aber keinen Fehler im SerialLineControl und der RxBuffer bzw. der TxBuffer ändert sich auch nicht.
Task Config: (von 4ms schon auf 2ms herunter gedreht - ändert auch nichts.

Bitte um Tipps was falsch sein könnte.
danke!