Siemens Industry Online Support
Siemens AG
Entry type: FAQ, Entry ID: 51101016, Entry date: 08/22/2011

How is data with variable message length transferred via the TCP protocol and received by an S7-300 station via the Industrial Ethernet CP?

  • Entry
  • Associated product(s)

You must call the functions below in the S7 program in order to transfer data with an S7-300 via a TCP connection configured in NetPro:

  • FC5 "AG_SEND" to send the data
  • FC6  "AG_RECV" to receive the data

Data transfer via the TCP protocol is performed as a data stream. There is no information transferred either about the length or about the start and end of a message. The Send application feeds the data into the TCP connection. The data is transferred byte for byte as a transparent data stream through the TCP protocol.
The Receive application must evaluate the data stream to determine where a message begins and ends in the data stream.
The sender defines a message structure which can be interpreted by the recipient. The message structure comprises the user data, in this example ASCII characters, and a final control character, such as CR (carriage return). The end of a message is signaled by the final control character.

Description of the S7 program
This sample program shows you how a S7-300 station is able to receive data with variable message length via the TCP protocol. The function block FB103 "AG_RECV_TCP_xVAR" is available for this.
FB103 "AG_RECV_TCP_xVAR" calls the FC6 "AG_RECV" function internally in order to receive data with variable message length via the TCP protocol.
The FB103 "AG_RECV_TCP_xVAR" function block, which is optimized for time, can receive a programmable number of bytes, exclusively containing ASCII characters, as a closed message within an OB cycle. The user can adapt the maximum number of bytes which can be received in a cycle with FC6 "AG_RECV" for the OB1 cycle time that it requires.

The file below gives a detailed description of the S7 program.

NET_receive_TCP_variable_data_en.pdf ( 312 KB )

Downloading the S7 program
The STEP 7 project includes a sample program for calling the FB103 "AG_RECV_TCP_xVAR" function block. It was created with STEP 7 V5.5.

TCP_xVAR.zip ( 46 KB )

Security information
In order to protect plants, systems, machines and networks against cyber threats, it is necessary to implement – and continuously maintain – a holistic, state-of-the-art industrial security concept. Siemens’ products and solutions constitute one element of such a concept. For more information about industrial security, please visit
Support to the statistics
With this function the IDs found are listed according to number (format .txt).

Generate list
Copy URL
View this page in new design
mySupport Cockpit
Related links