-> Hier kostenlos registrieren
Hallo zusammen,
ich habe ein seltsames Phänomen bei der TCP Kommunikation zwischen einer S7 1212 DC/DC/DC Firmware 4.7.0 und einem externen, per TCP angebundenen Datenlogger. Der Datenlogger wird im eigenen Haus entwickelt und ich stehe in Kontakt mit dem C-Programmierer der die Firmware des Loggers betreut. Die eingelesenen Daten haben immer einen Offset von 14 im Array der empfangenen Daten.

Die von TRCV emfpangenen Daten werden immer mit einem Offset von 14 eingelesen:

Ich hab jetzt zwei verschieden lange Datenbereiche getestet. Eigentlich benötige ich nur 16 Byte als rcv Daten auf der SPS Seite, daher starteten wir zunächst mit 16 Byte. Da in der Doku der TRCV empfohlen wird Lese- und Sendedaten gleich lang zu gestalten und dem Datenlogger 66 Byte Daten gesendet werden haben wir nun auch die von SPS Seite zu empfangenen Daten auf 66 Byte erhöht. Der Offset von 14 bleibt.
Ein Screenshot aus Wireshark sollte belegen, dass es in den am Datenlogger ausgehenden Daten keinen Offset gibt:

Kann das möglichweise an einer Fehlkonfiguration meinerseits an der Nutzung der Siemens Bibliothek "LOpenUserComm_Tcp" liegen? Wir können uns nicht erklären woher dieser Offset kommt.
ich habe ein seltsames Phänomen bei der TCP Kommunikation zwischen einer S7 1212 DC/DC/DC Firmware 4.7.0 und einem externen, per TCP angebundenen Datenlogger. Der Datenlogger wird im eigenen Haus entwickelt und ich stehe in Kontakt mit dem C-Programmierer der die Firmware des Loggers betreut. Die eingelesenen Daten haben immer einen Offset von 14 im Array der empfangenen Daten.
Code:
REGION OpenUserCommunication
#LOpenUserComm_Tcp(enable := #E_ENABLE,
sendRequest := #locals.sendRequest,
rcvLen := #RCV_LEN,
sendLen := #SND_LEN,
adhocMode := FALSE,
tcpConnParam := #tcpConnParam,
connectionEstablished => #tmp_con_estab,
error => #locals.error,
statusID => #locals.statusID,
status => #locals.statusWRD,
sendData := #DB_SENDDATA,
rcvData := #DB_RECEIVEDATA);
IF NOT #E_ENABLE THEN
FOR #i := 0 TO 65 DO
#DB_RECEIVEDATA[#i] := 0;
END_FOR;
END_IF;
END_REGION

Die von TRCV emfpangenen Daten werden immer mit einem Offset von 14 eingelesen:

Ich hab jetzt zwei verschieden lange Datenbereiche getestet. Eigentlich benötige ich nur 16 Byte als rcv Daten auf der SPS Seite, daher starteten wir zunächst mit 16 Byte. Da in der Doku der TRCV empfohlen wird Lese- und Sendedaten gleich lang zu gestalten und dem Datenlogger 66 Byte Daten gesendet werden haben wir nun auch die von SPS Seite zu empfangenen Daten auf 66 Byte erhöht. Der Offset von 14 bleibt.
Ein Screenshot aus Wireshark sollte belegen, dass es in den am Datenlogger ausgehenden Daten keinen Offset gibt:

Kann das möglichweise an einer Fehlkonfiguration meinerseits an der Nutzung der Siemens Bibliothek "LOpenUserComm_Tcp" liegen? Wir können uns nicht erklären woher dieser Offset kommt.