Arthur - 2017-03-14

Hallo Zusammen

Ich arbeite an einer KNX Schnittstelle für Codesys 3.5, welche über UDP kommuniziert. Die Kommunikation läuft über die Multicastadresse 224.0.23.12. Ich habe jedoch Schwierigkeiten beim Empfangen von Daten, welche über Muticast gesendet werden. Und zwar wie folgt:
Wenn ich die Daten an die IP-Adresse „192.168.178.78“ (IP des Codesys Divice) sende klappt alles wunderbar. Wenn ich aber die Daten an die Multicastadresse „224.0.23.12“ sende, empfange ich keine Daten(Im Wireshark werden die Daten angezeigt).

....weiss jemand was ich falasch mache?

Arthur

Code:

FUNCTION_BLOCK UDPEmpfang
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
eState: INT:= 0;
IPAddress   : NBS.IP_ADDR; (* IP Address *)
uiPort   : UINT; (* Port No. *)
sReceived   : STRING; (* Holds the received message *)
ctRecAnswers   : CAA.COUNT; (* No. of received messages *)
UDPPeer   : NBS.UDP_Peer; (* FB UDP Peer *)
XUDPPeer   : NBS.UDP_Peer; (* FB UDP Peer *)
UDPSend   : NBS.UDP_Send; (* FB UDP Send *)
UDPReceive   : NBS.UDP_Receive; (* FB UDP Receive *)
Peer   : CAA.HANDLE; (* Handle to the peer connection *)
xEnable   : BOOL;
udpData   :STRING;
END_VAR
////=============Programm=================
UDPPeer(xEnable:= xEnable, ipAddr:= IPAddress, uiPort:= uiPort, hPeer=> Peer);
CASE eState OF
0: // Init
IPAddress.sAddr:= '192.168.178.78';//'0.0.0.0';//'192.168.178.255';//'192.168.178.78';//'192.168.178.78'; // IP Adress where Codesys application is running //224.0.23.12
uiPort:= 3671;
xEnable:= TRUE;
eSTATE := 10;
10: // Start listening
IF UDPPeer.xActive THEN
UDPReceive(xEnable:= TRUE, hPeer:= Peer, szSize:= SIZEOF(sReceived), pData:= ADR(sReceived));
IF UDPReceive.xReady THEN
udpData := sReceived; // Data from UDP-stream
ctRecAnswers := ctRecAnswers + 1; // Number of UDP calls
ELSIF UDPReceive.xError THEN
eState:= 20;
END_IF
ELSE
eState:= 20;
END_IF
20:
// Error
END_CASE