7 Programming FCs (Functions) and FBs for S7 Ethernet CPs
A-249
S7-CPs for Industrial Ethernet Configuring and Commissioning
Release 01/2007
C79000-G8976-C182-07
Relationship between Block Call and IO Data
Operation as PROFINET IO controller
As a PROFINET IO controller, the CP does not monitor the cyclic calls of the
PNIO_SEND/RECV blocks. If the blocks are not called, the last transferred IO
data and IOCS/IOPS data are taken as valid.
Operation as PROFINET IO device
FC11 and FC12 each have their own watchdog. Depending on the CPU cycle
time, the connection to the PROFINET IO controller is terminated if one of the
two blocks is no longer called following the initialization phase.
Optimizing data transfer (only when operating as PROFINET IO controller)
It is possible to call the blocks with a length (LEN parameter) that is shorter than
the configured total length of the IO data on the PNIO chain.
You can use this so that time-critical data is transferred in every CPU cycle
whereas non critical data is not transferred in every cycle.
Example:
You could, for example, transfer only the first data area (time-critical data) in every
cycle and the total length of the configured IO data in every second cycle. To do
this, you must place the time-critical data in the lower area (starting at IO address
0) during configuration.
7.8.4 Data Consistency
The entire input or output data area of the PNIO controller is always transferred in
its entirety and is therefore consistent.
Operation as PROFINET IO controller
Regardless of this, using the length information in the block call, you can also
read or output an input or output area smaller than the configured area
consistently.
Note: You should, however, bear in mind that in terms of the “IO user data” within a
PROFINET IO system, data consistency can only be guaranteed within the
individual IO slots. This applies regardless of the fact that consistent data transfer
between CPU and IO controller is guaranteed for the blocks described here.
Block call
To guarantee data consistency, you must, however, only access the IO data when
the block has completed free of errors (output parameter NDR = TRUE). You must
also check that the IOCS or IOPS status for the data is GOOD.