-> Hier kostenlos registrieren
Hallo,
arbeite mich gerade in Beckhoff ein.
Ich würde gern einfach nur 5 Bytes senden und empfangen. das senden klappt super nur das empfangen will nicht so wie ich.
Hier mal der Code, ich will halt senden und Empfangen auslagern:
Hier mein Puffer:
Hier mein Vars von der Main:
Hier meine MAIN, über die Bools Send und Recv steuere ich was ich gerade machen will.
Hier das empfangen was nicht klappt.
Und hier das senden was klappt wenn der Sende Puffer was drin hat.
Das senden und empfangen teste ich mit TELNET.
Über etwas hilfe wäre ich sehr glücklich.
grüße kai
arbeite mich gerade in Beckhoff ein.
Ich würde gern einfach nur 5 Bytes senden und empfangen. das senden klappt super nur das empfangen will nicht so wie ich.
Hier mal der Code, ich will halt senden und Empfangen auslagern:
Hier mein Puffer:
Code:
TYPE Buffer :
STRUCT
SendBuff : ARRAY[1..5] OF BYTE;
RecvBuff : ARRAY[1..5] OF BYTE;
END_STRUCT
END_TYPE
Code:
PROGRAM MAIN
VAR
hServer : T_HSERVER;
bListen : BOOL;
fbServerConnection : FB_ServerClientConnection;
Send : BOOL := FALSE;
Recv : BOOL := FALSE;
data : Buffer;
Emp : UDINT;
END_VAR
Code:
F_CreateServerHnd( sSrvNetID := '',
sLocalHost := '',
nLocalPort := 6000,
nMode := LISTEN_MODE_CLOSEALL,
bEnable := TRUE,
hServer := hServer);
fbServerConnection( eMode := eACCEPT_ALL,
sRemoteHost := '',
nRemotePort := 0,
bEnable := TRUE,
tReconnect := T#1s,
hServer := hServer);
IF Send THEN
Senden(hSocket := fbServerConnection.hSocket ,len := 5, pPlace := ADR(data.SendBuff ));
END_IF;
IF Recv THEN
Empfangen(hSocket := fbServerConnection.hSocket ,len := 5, pPlace := ADR(data.RecvBuff ));
END_IF;
Hier das empfangen was nicht klappt.
Code:
FUNCTION Empfangen : UDINT
VAR_INPUT
hSocket : T_HSOCKET;
len : DINT;
pPlace : DWORD;
END_VAR
VAR
fbrecv : FB_SocketReceive;
END_VAR
Code:
fbrecv( bExecute := FALSE );
fbrecv( sSrvNetId := '',
hSocket := hSocket,
cbLen := len,
pDest := pPlace,
bExecute :=TRUE,
tTimeout := T#5s);
Empfangen := fbrecv.nRecBytes;
Und hier das senden was klappt wenn der Sende Puffer was drin hat.
Code:
FUNCTION Senden : BOOL
VAR_INPUT
hSocket : T_HSOCKET;
len : DINT;
pPlace : DWORD;
END_VAR
VAR
fbSend : FB_SocketSend;
END_VAR
Code:
fbSend( bExecute := FALSE );
fbSend( sSrvNetId := '',
hSocket := hSocket,
cbLen := len,
pSrc :=pPlace,
bExecute :=TRUE,
tTimeout := T#5s);
Senden := fbSend.bError;
Das senden und empfangen teste ich mit TELNET.
Über etwas hilfe wäre ich sehr glücklich.
grüße kai