EAP send mechanism
Sending of an EAP telegram is triggered based on a trigger mechanism. The configuration of an EAP device is used to determine how this trigger mechanism works. For each TxData a trigger condition is defined. If this trigger condition is met, TxData are sent via an EAP telegram. In other words: In each EAP device, trigger conditions are used for each TxData to configure the operation of the trigger mechanism.
There are 5 different types of trigger conditions, which are described here.
Superposition of trigger conditions The explanations of the individual trigger conditions indicate which other trigger conditions need to be deactivated. In other words, which conditions are not allowed in combination. The example further below shows that several active trigger conditions mutually overlap. How they overlap is not clearly defined. It is therefore advisable to disable all trigger conditions that are not permitted. |
- Poll Request Rx PD
The trigger condition Poll Request Rx PD controls the sending of a response telegram in Polled Data Exchange mode (see section Communication methods). Once a TxData has a valid entry for the trigger condition Poll Request Rx PD, the respective TxData operates in this mode. A valid entry is present, if it matches the object index of an RxData configured in the EAP device. This RxData then defines the expected request for returning the TxData as response. When the EAP device receives an EAP telegram containing the expected process data, in the next cycle the TxData is returned in a new EAP telegram to the sender of the request telegram. Consequently, the EAP device serves as Polled Data Exchange server for this TxData, when the trigger condition Poll Request RxData is enabled.
All other conditions (2 to 5) have to be disabled, if the Poll Request Rx PD condition is enabled. - Divider/Modulo
A Divider/Modulo condition is used to specify the frequency with which a TxFrame or a TxData is sent (see illustration below). The frequency is always a multiple of the task cycle time driving the EAP device. The divider value defines the multiple. The Modulo value specifies the start cycle at which the TxFrame or the TxData is sent for the first time. If the Divider has the value 0, this condition is disabled.
Conditions 3, 4 and 5 are not relevant if the Divider/Modulo condition is enabled; they should nevertheless be disabled. Condition 1 must be disabled. - Cycle Time
The TxData is sent at particular intervals, as defined by the cycle time value (unit: µs) (see illustration below). The cycle time should be an integer multiple of the task cycle time. If a value is configured that is not an integer multiple of the task cycle time, the next smaller multiple is set automatically, down to 0, if necessary. If the value is 0 µs, this condition is disabled.
Trigger conditions 1, 2, 4 and 5 should be disabled, if the cycle time trigger condition is enabled. Relationship between cycle time and task cycle time
Assuming the task cycle time is 5 ms (5000 µs), the cycle time of process data A is 10000 µs, and the cycle time of process data B is 20000 µs. The task cycle time is now slowed down from 5 ms to 15 ms (15000 µs). Neither the cycle time of process data A nor that of process data B is a multiple of the task cycle time; the cycle time is therefore not divisible by the task cycle time without remainder.
As a result, process data A is only sent every 15 ms (15000 µs), process data B only every 30 ms (30000 µs).- Change of State (CoS): On Change Timeout
The TxData is only sent when the value of one of its variables has changed compared with the previous value. A maximum time interval is defined as timeout time (unit: µs). If the value of a variable does not change within this interval, the TxData is sent regardless, after the time interval has elapsed (see illustration below). The value for the time interval must be an integer multiple of the task cycle time. If the time interval is set to 0 µs, the trigger condition CoS On Change Timeout is disabled. Trigger conditions 1, 2 and 3 must be disabled, if the trigger condition CoS On Change Timeout is enabled. - Change of State (CoS): Inhibit Time
The Inhibit Time specifies a minimum time interval, so that the TxData is not sent before this time interval has elapsed after it was last sent.
The Inhibit Time therefore specifies a minimum time interval in µs, after which the TxData is sent - even if one value of the included Tx variable has changed (see illustration below). The value for this time interval can only be an integer multiple of the task cycle time, and it must be less than the value of CoS On Change Timeout. If the time interval is set to 0 µs, the trigger condition Inhibit Time is disabled.
Trigger conditions 1, 2 and 3 should be disabled, if the inhibit condition Inhibit Time is enabled.
Configuration options for the trigger conditions The trigger conditions 1, 3 and 5 (Poll Request RxData, Cycle Time and Inhibit Time) can be configured via the EAP object dictionary (see chapter CANopen object dictionary in the documentation for the TwinCAT EAP device). |
Special features of the trigger conditions For all trigger conditions that define a time interval, this interval cannot be smaller than the task cycle time of the task driving the EAP device. |
A combination of the conditions is not recommended because they are not clearly defined. The following gives a good example of the complexity:
The last line clearly shows that the transmission at 160 ms and 240 ms does not take place because it is prevented by the additional divider/modulo conditions.