PROFINET IO Timing

In the current implementation per device 2 Communication Relations (CR) between the controller and the device are defined. One CR describes the IO telegram from the controller to the device (outputs) and the other the IO telegram from the device to the controller (inputs).

The timing of the corresponding IO telegrams can be defined separately for each device.

The editable timing parameters are:

  • Send clock
  • Reduction ratio
  • Phase
  • FrameSendOffset.

The relation between these parameters is shown in the following drawing.

../_images/ea55757a45ffeb5a0a33139000eba54e

For each device a SendCycle must be configured, which determines the sending interval of IO frames.

It is based on a time base of 31.25 µs und is calculated as:

SendClock [ms] = SendClockFactor * 31.25 µs / 1000.

The cycle time of an IO telegram is defined by the SendCyle. It’s calculated as:

SendCyle [ms] = SendClock [ms] * Reduction Ratio.

The values of the individual parameters are limited by the maximum value 512 ms of the SendCycle.

The following table summarizes the relation of the timing parameters.

Parameter Meaning Relation Range
SendCycle Is the cycle time of a RT telegrams. SendCyle = SendClock * Reduction ratio. 1ms ..512 ms
SendClock The SendCycle is divided into several time slots. The SendClock defines the size of a time slot within the SendCyle. SendClock = SendClock factor * 31.25 µs; SendClock * Reduction ratio <= 512 ms
SendClock factor Is multiplied with the time base 31.25 µs to calculate the SendClock. SendClock factor  = SendClock / 31.25 µs 1..128
Reduction ratio The reduction ratio defines the number of time slots within the SendCyle. SendClock * Reduction factor <= 512 ms 1..16384
Phase The time slot in which the IO frame is sent. A integer value of the range 1 … Reduction ratio 1..16384
FrameSendOffset It’s an offset value relative to the beginning of a time slot. For all RT_Classes the value 0xFFFFFFFF means sending as soon as possible. Only for RT_CLASS_3 it is neseccary to support this parameter. 0x0 …0xFFFFFFFF