show the entry list
S7-300 CPU 31x -- Configuring and programming communication -- Using communication blocks
How do you cyclically read out the 8 channels of the FM 350-2 counter module as quickly as possible?
How do you read out the IP address of the S7-300 CPU in the user program at runtime?
How do you enable the ad-hoc mode when you call the TRCV instruction?
How do you use the blocks for MODBUS/TCP communication over the integrated PROFINET interface of the S7-300 and S7-400 CPUs and IM151-8 PN/DP CPU in STEP 7 Professional (TIA Portal)?
Which security modules can be reached with SOFTNET Security Client V4 over a secure IPsec tunnel connection?
What is the difference between the initialization and runtime parameters on the blocks for Modbus TCP?
Why is the status value A090 (hex) output for Modbus TCP although you have entered the correct license?
What are the differences between the licensed version and the downloadable demo version of the blocks for Modbus TCP?
Why is the value A083 (hex) output permanently at the STATUS output parameter of the block for Modbus TCP when the ENQ_ENR=true input parameter has been set?
Which blocks for Modbus TCP can you rename or re-wire when the block numbers of the Modbus blocks are already being used in the user program?
How do you implement chronological messaging with S7-300 CPUs and WinCC?
How do you program communication blocks FB14 "GET" and FB15 "PUT" for data exchange in the S7 program of an S7-300 CPU?
How can you read out diagnostics data from a SIRIUS 3RK3 modular safety system using a S7-300/400 CPU?
Which ports are released for Modbus/TCP communication and how many Modbus clients can communicate with a SIMATIC S7 CPU as Modbus server?
How do you configure a specified and an unspecified S7 connection for data exchange between S7-300 and/or S7-400 by way of Industrial Ethernet CPs?
What restrictions are there for active jobs when communicating with SFC 58 / SFC 59 and SFB 52 / SFB 53 via PROFIBUS DP and PROFINET IO?
How do you program communication blocks FB12 "BSEND" and FB13 "BRCV" for data exchange in the S7 program of an S7-300 CPU?
How do you program the communication blocks FB63 "TSEND", FB64 "TRECV", FB65 "TCON" and FB66 "TDISCON" in order to use the ISO-on-TCP protocol for data exchange by way of the integrated PROFINET interface of a CPU or by way of the CP443-1 Advanced?
How do you program the communication blocks FB63 "TSEND", FB64 "TRCV", FB65 "TCON" and FB66 "TDISCON" in order to use the TCP protocol for data exchange by means of the integrated PROFINET interface of an S7-300 or S7-400 CPU?
How do you establish OPEN MODBUS / TCP communication from a SIMATIC S7 and where can you find further information?
How do you program the communication blocks FB67 "TUSEND", FB68 "TURCV", FB65 "TCON" and FB66 "TDISCON" in order to use the UDP protocol for data exchange by means of the integrated PROFINET interface of a CPU?
How does data communication work between S7-300/S7- 400 and S7-200 via MPI using S7 basic communication?
How great is data consistency in the PUT and GET S7 communication functions for the individual S7-300 CPUs and C7 complete devices?
How can you access via PROFIBUS DP another CPU, which is connected to the PROFIBUS DP as a slave, from a DP master using basic communication with SFC72 "I_GET" and SFC73 "I_PUT"?
How can you access consistent data without SFC14/15 as part of the process image?
ET 200S (standard modules) -- Configuring and programming communication -- Using communication blocks
When using the FB81 S_MODB on an S7-400 with more than 8 Kbytes of marker, how do you access the marker area above MB 255?
How do you set the input parameter TIME_RTS_OFF of the S_V24 instruction in the case of low data transfer rates?
How do you use the ET200S 1SI module in conjunction with a CPU S7-15xx?
How in WinAC MP 2008 do you program data transfer with the ET200S 1SI module for the 4-byte or 8-byte communication type?
Which CPU can you operate as a PROFINET I device?
What restrictions are there for active jobs when communicating with SFC 58 / SFC 59 and SFB 52 / SFB 53 via PROFIBUS DP and PROFINET IO?
Which ports are released for Modbus/TCP communication and how many Modbus clients can communicate with a SIMATIC S7 CPU as Modbus server?
How do you program the communication blocks FB63 "TSEND", FB64 "TRCV", FB65 "TCON" and FB66 "TDISCON" in order to use the TCP protocol for data exchange by means of the integrated PROFINET interface of an S7-300 or S7-400 CPU?
How do you program the communication blocks FB63 "TSEND", FB64 "TRECV", FB65 "TCON" and FB66 "TDISCON" in order to use the ISO-on-TCP protocol for data exchange by way of the integrated PROFINET interface of a CPU or by way of the CP443-1 Advanced?
How do you program the communication blocks FB67 "TUSEND", FB68 "TURCV", FB65 "TCON" and FB66 "TDISCON" in order to use the UDP protocol for data exchange by means of the integrated PROFINET interface of a CPU?
What should you watch out for when connecting a SIMATIC HMI device configured with WinCC flexible ES to a SIMATIC ET 200 CPU?
"Report System Errors" function can be used with ET 200S CPU from firmware version V2.1
Using the SFB75 (send alarm to the DP master) on an ET 200S CPU
ET 200pro -- Configuring and programming communication -- Using communication blocks
What restrictions are there for active jobs when communicating with SFC 58 / SFC 59 and SFB 52 / SFB 53 via PROFIBUS DP and PROFINET IO?
How do you program the communication blocks FB63 "TSEND", FB64 "TRCV", FB65 "TCON" and FB66 "TDISCON" in order to use the TCP protocol for data exchange by means of the integrated PROFINET interface of an S7-300 or S7-400 CPU?
How do you program the communication blocks FB63 "TSEND", FB64 "TRECV", FB65 "TCON" and FB66 "TDISCON" in order to use the ISO-on-TCP protocol for data exchange by way of the integrated PROFINET interface of a CPU or by way of the CP443-1 Advanced?
How do you program the communication blocks FB67 "TUSEND", FB68 "TURCV", FB65 "TCON" and FB66 "TDISCON" in order to use the UDP protocol for data exchange by means of the integrated PROFINET interface of a CPU?
S7-400 CPU 41x -- Configuring and programming communication -- Using communication blocks
When using the FB81 S_MODB on an S7-400 with more than 8 Kbytes of marker, how do you access the marker area above MB 255?
How do you enable the ad-hoc mode when you call the TRCV instruction?
How do you use the blocks for MODBUS/TCP communication over the integrated PROFINET interface of the S7-300 and S7-400 CPUs and IM151-8 PN/DP CPU in STEP 7 Professional (TIA Portal)?
How do you establish a redundant MODBUS/TCP communication over the integrated PROFINET interface of a CPU 41x-H in STEP 7 V5.5?
What is the difference between the initialization and runtime parameters on the blocks for Modbus TCP?
Why is the status value A090 (hex) output for Modbus TCP although you have entered the correct license?
What are the differences between the licensed version and the downloadable demo version of the blocks for Modbus TCP?
Why is the value A083 (hex) output permanently at the STATUS output parameter of the block for Modbus TCP when the ENQ_ENR=true input parameter has been set?
Which blocks for Modbus TCP can you rename or re-wire when the block numbers of the Modbus blocks are already being used in the user program?
How can you read out diagnostics data from a SIRIUS 3RK3 modular safety system using a S7-300/400 CPU?
Which communication options are there in SIMATIC S7?
How does data communication work between S7-300/S7- 400 and S7-200 via MPI using S7 basic communication?
Consistent data in S7-400, summary of mechanisms
Which ports are released for Modbus/TCP communication and how many Modbus clients can communicate with a SIMATIC S7 CPU as Modbus server?
How do you implement chronological messaging with S7-400 CPUs and WinCC?
How do you configure a specified and an unspecified S7 connection for data exchange between S7-300 and/or S7-400 by way of Industrial Ethernet CPs?
How do you establish OPEN MODBUS / TCP communication from a SIMATIC S7 and where can you find further information?
How do you use WinCC flexible to transfer a project to an operator panel via S7 routing?
What restrictions are there for active jobs when communicating with SFC 58 / SFC 59 and SFB 52 / SFB 53 via PROFIBUS DP and PROFINET IO?
How do you program the communication blocks FB63 "TSEND", FB64 "TRECV", FB65 "TCON" and FB66 "TDISCON" in order to use the ISO-on-TCP protocol for data exchange by way of the integrated PROFINET interface of a CPU or by way of the CP443-1 Advanced?
How do you program the communication blocks FB63 "TSEND", FB64 "TRCV", FB65 "TCON" and FB66 "TDISCON" in order to use the TCP protocol for data exchange by means of the integrated PROFINET interface of an S7-300 or S7-400 CPU?
How do you program the communication blocks FB67 "TUSEND", FB68 "TURCV", FB65 "TCON" and FB66 "TDISCON" in order to use the UDP protocol for data exchange by means of the integrated PROFINET interface of a CPU?
How can you access consistent data without SFC14/15 as part of the process image?
How great is data consistency in the PUT and GET S7 communication functions for the individual S7-400 CPUs?
How do you program the communication blocks FB67 "TUSEND", FB68 "TURCV", FB65 "TCON" and FB66 "TDISCON" in order to use the UDP protocol for data exchange by means of the integrated PROFINET interface of a CPU?
Part number:

Description
You can use the open communication of the PROFINET for data exchange by means of the integrated Industrial Ethernet interface of a CPU, for example. The protocols below are supported for this:

  • TCP
  • ISO-on-TCP
  • UDP

The following communication blocks are available for open communication by way of Industrial Ethernet using the UDP protocol:

  • FB65 "TCON" for connecting the UDP endpoint
  • FB66 "TDISCON" for disconnecting the UDP endpoint
  • FB67 "TUSEND" for sending data
  • FB68 "TURCV" for receiving data

These communication blocks are available in the Standard Library -> Communication Blocks.
Copy the latest versions of the above-mentioned communication blocks from the standard library into your user program and then call them in your user program.
The parameters for connecting the UDP endpoint are saved in a data structure. In this example, the data structure UDT65 "TCON_PAR" is used, which is parameterized by the user. There is no need to configure a communication connection in NetPro.

Description of the sample program
The S7 program contains the call of the FB65 "TCON" and the data structure UDT65 "TCON_PAR" with the parameters for connecting the UDP endpoint. The S7 program also includes the call of the communication blocks FB67 "TUSEND" and FB68 "TURCV" from the Standard Library -> Communication Blocks. The FB67 "TUSEND" is for sending data to an S7 station, to a PC station, or to a third-party system. The FB68 "TURCV" is for receiving data from an S7 station, from a PC station or from a third-party system.

First create the hardware configuration for the S7-300 station. Configure Marker byte 10 as clock marker. The send request is triggered by this clock marker. Save and compile the hardware configuration of your S7-300 station and load it into the CPU.

The STEP 7 program consists of blocks OB100, OB1, FB500, DB500, FC95, FC96, UDT65, UDT66, and FB63, FB64, FB67 and FB68.

OB100
The OB100 is a restart OB and is run when the CPU is restarted (warm start). In this OB the first communication trigger is enabled with marker M0.3.

OB1
OB1 is called cyclically. The FB500 is called in OB1 with the instance data block DB500 and marker M0.3 as INIT_COM parameter. The marker M0.3 is reset in OB1 after the FB500 has been called.


Fig. 01

FB500
The FB500 is called cyclically in OB1.

The functions FC95 "SET_UDP_REMOTE"and FC96 "SET_UDP_ENDPOINT" as well as the function blocks FB65 "TCON", FB67 "TUSEND", FB68 "TURCV" and FB66 "TDISCON" are called in the FB500.


Fig. 02

Using the input parameters of the function FC96 "SET_UDP_ENDPOINT" you define the parameters of the UDP endpoint.
 
Input parameters Data type Description
ID Word Connection number
DEV_ID Byte B#16#01 for the IM151-8 PN/DP CPU
B#16#02 for the CPU 31x-2PN/DP, IM154-8 CPU
B#16#03 for the CPU 319-3PN/DP
B#16#05 for the CPU 412-2PN, CPU 414-3 PN/DP, CPU 416-3 PN/DP
LOC_PORT DInt Local port in the CPU
Permissible port numbers for S7-300 CPUs up to and including V2.6 and S7-400 CPUs up to and including V5.1: 2000 to 5000
Permissible port numbers for S7-300 CPUs V2.7 onwards and S7-400 CPUs V5.2 onwards: 1 to 49151


Fig. 03

Using the input parameters of the function FC95 "SET_UDP_REMOTE" you define the parameters of the UDP endpoint.
 
Input parameters Data type Description
REM_PORT DInt Remote port of the communication partner
Permissible port numbers for S7-300 CPUs up to and including V2.6 and S7-400 CPUs up to and including V5.1: 2000 to 5000
Permissible port numbers for S7-300 CPUs V2.7 onwards and S7-400 CPUs V5.2 onwards: 1 to 49151
IP_ADDR1 Int IP address of the communication partner
IP_ADDR2 Int
IP_ADDR3 Int
IP_ADDR4 Int

Note
You enter the connection number in Network 2 of FB500. This is stored in a static tag and so in the instance data block DB500.


Fig. 04

Connection of the UDP endpoint is started by a positive edge at the input parameter "REQ" of FB65 "TCON". The data structure UDT65 "TCON_PAR" with the parameterization of the local UDP endpoint is incorporated in the instance data block of FB500.
On the input parameter "CONNECT" of the FB65 "TCON", the memory area is specified that contains the parameterization of the local UDP endpoint.
The connection of the UDP endpoint is set up at system start and remains until it is disabled with FB66 "TDISCON", the CPU goes into STOP mode, or the power supply is switched off.


Fig. 05

The send job is triggered by a positive edge on the input parameter "REQ" of the FB67 "TUSEND". The send job trigger is controlled by clock marker M10.6 and the "C1.SEND_BUSY" tag. If the send job is running, "C1.SEND_BUSY" is set. It is then not possible to trigger a new send request.
You specify the memory area that contains the data to be sent at the input parameter "DATA".
You enter the number of bytes to be sent at the input parameter "LEN".
At the input parameter "ADDR" you specify the address of the data area where the recipient's IP address is stored. In this example, the address parameters of the communication partner are stored in the data structure UDT66 "TADDR_PAR". This is incorporated in instance data block DB500.
The output parameters "DONE", "ERROR" and "STATUS" are required for job evaluation.


Fig. 06

If the send job is successfully completed, "C1.SEND_BUSY" is reset. A new send job can now be triggered.
If the send job is completed with an error, then "C1.SEND_BUSY" is likewise reset and the value of the output parameter "STATUS" of FB67 is saved for error analysis.


Fig. 07


Fig. 08

The data can be received as soon as the UDP endpoint is connected.
With the input parameter "DATA", you specify the address and length of the data area where the received data is saved.
At the input parameter "ADDR" you specify the address of the data area where the sender's IP address is stored. In this example, the address parameters of the communication partner are stored in the data structure UDT66 "TADDR_PAR". This is incorporated in instance data block DB500.


Fig. 09

The output parameter "NDR" is for showing that new data has been received. The RCVD_LEN output parameter indicates the length of the data received.
If the data is successfully received, then the value of the "RCVD_LEN" output parameter is saved.
If the data is not received successfully, then the value of the "STATUS" output parameter is saved and evaluated.


Fig. 10 

You can disconnect the UDP endpoint with FB66 "TDISCON". You start the job to disconnect the UDP endpoint with a positive edge at the input parameter "REQ" of FB66 "TDISCON".


Fig. 11 

The STEP 7 project as download
The STEP 7 project contains a sample program for calling FB500 and the functions FC95 "SET_UDP_ENDPOINT", FC96 "SET_UDP_REMOTE", the blocks FB65 "TCON", FB66 "TDISCON", FB67 "TUSEND" and FB68 "TURECV" with status evaluation. It was created with STEP 7 V5.4 SP3.

Sample_open_UDP.zip ( 44 KB )

Configuration of UDP connections
In order to send UDP datagrams to multiple communication partners, you configure additional local and remote UDP endpoints. Copy the FB500 so that you receive more function blocks (such as FB501). Change the parameters of the local and remote UDP endpoint and generate new instance data blocks.

The ID of the local UDP endpoint can be selected from the value range of 1 to 4095.
The local and remote ports for S7-300 CPUs as from V2.7 and S7-400 CPUs as from V5.2 can be selected from the value range of 1 to 49151.

The ID and the port must be unique for each local UDP endpoint, in other words you must define a different ID and a different port for each local UDP endpoint.

Define the remote port and the IP address according to the configuration of the communication partner.

The table below shows how to configure multiple local and remote UDP endpoints. In this example, the same ID and the same port are used for the local and the remote endpoints.
 
Local/remote UDP endpoint 1 2 3
ID 1 2 3
LOC_PORT 2000 2001 2002
REM_PORT 2000 2001 2002
IP address of the communication partner 172.16.43.40 172.16.43.50 172.16.43.60

Additional information

  • Detailed information on open communication by way of Industrial Ethernet is available in the manual "System and Standard Functions for S7-300/400 Volume 1 and Volume 2" in Entry ID: 44240604.
  • Instructions for configuring a UDP connection for communication by way of S7-300 and S7-400 Industrial Ethernet CPs are available in Entry ID: 47885893.

 Entry ID:29738463   Date:2012-04-18 
I regard this article....as helpfulas not helpful                                 
mySupport
My Documentation Manager 
Newsletter 
CAx-Download-Manager 
Support Request
To this entry
Print
Create PDF 
Send to a friend
QuickLinks
Compatibility tool 
Topics
Help
Online Help
Guided Tour