Hier werden die Unterschiede zwischen zwei Versionen angezeigt.
Beide Seiten der vorigen RevisionVorhergehende ÜberarbeitungNächste Überarbeitung | Vorhergehende Überarbeitung | ||
embedded_systems:ethercat:understanding_ethercat:understanding_sync_with_dc [2019-01-11 09:28] – mgehrig2 | embedded_systems:ethercat:understanding_ethercat:understanding_sync_with_dc [2019-02-13 11:32] (aktuell) – mgehrig2 | ||
---|---|---|---|
Zeile 1: | Zeile 1: | ||
====== Understanding Synchronisation with Distributed Clocks ====== | ====== Understanding Synchronisation with Distributed Clocks ====== | ||
+ | ===== Additional Documentation ===== | ||
+ | * [[https:// | ||
+ | * [[https:// | ||
+ | |||
+ | |||
===== The Sync0 Synchronisation Signal ===== | ===== The Sync0 Synchronisation Signal ===== | ||
In a DC system each participant has its own clock which is synchronized with all other clocks. | In a DC system each participant has its own clock which is synchronized with all other clocks. | ||
- | The Sync0 event is triggered synchronously | + | The Sync0 event is triggered synchronously |
==== The Sync0 Event ==== | ==== The Sync0 Event ==== | ||
The Sync0 event ist triggered on all devices of the network at the same time. | The Sync0 event ist triggered on all devices of the network at the same time. | ||
- | The slaves can read inputs and set outputs after a deterministic and configurable time after the Sync0 event. | + | The slaves can read inputs and set outputs after a deterministic and configurable time (1C32:06 + 1C32: |
Thus it is possible that all outputs in the whole network are set simultaneously within nanoseconds. | Thus it is possible that all outputs in the whole network are set simultaneously within nanoseconds. | ||
+ | The same is true for reading inputs at a determenistic time. | ||
It is also possible to set the outputs with a desired time delay. | It is also possible to set the outputs with a desired time delay. | ||
+ | |||
+ | {{ : | ||
==== DCM Master Shift Mode ==== | ==== DCM Master Shift Mode ==== | ||
Zeile 18: | Zeile 26: | ||
The slaves then do not receive the data sufficiently early before the next Sync0 even is triggeredt. | The slaves then do not receive the data sufficiently early before the next Sync0 even is triggeredt. | ||
- | TODO: corresponding | + | The coresponding |
+ | < | ||
+ | 082039 : eUsrJob_ProcessAllRxFrames - not all previously sent frames are received/ | ||
+ | </ | ||
==== DCM Bus Shift Mode ==== | ==== DCM Bus Shift Mode ==== | ||
Zeile 29: | Zeile 40: | ||
After the Sync0 event, the received data from the Ethernet driver are first copied into the buffer of the Acontis stack on the master. | After the Sync0 event, the received data from the Ethernet driver are first copied into the buffer of the Acontis stack on the master. | ||
Then the application can evaluate the received data and set the outputs. | Then the application can evaluate the received data and set the outputs. | ||
- | As soon as the cyclic job of the application is completed, the EC Frame is sent from the stack. | + | As soon as the cyclic job of the application is completed, the EC Frame is sent from the master to the slaves. |
- | The period | + | ==== Cycle time ==== |
- | In this mode only the period | + | The cycle time between the EtherCAT |
+ | If the application needs in one cycle more time to calculate the results, the frames are sent later than in the cycle before. | ||
+ | |||
+ | The time between | ||
+ | The same is true for writing outputs. | ||
+ | |||
+ | For calculations in control applications, | ||
===== Example Setting and Read with a ELMO EtherCAT Slave ===== | ===== Example Setting and Read with a ELMO EtherCAT Slave ===== | ||
- | {{ : | + | ==== 1000usec cycle ==== |
- | This example shows the flow of a signal through an EtherCAT network. | + | {{ : |
+ | |||
+ | This example shows the flow of a signal through an EtherCAT network | ||
- The application sets a signal (e.g. a torque signal) which is forwarded from the Acontis stack to the EC bus. | - The application sets a signal (e.g. a torque signal) which is forwarded from the Acontis stack to the EC bus. | ||
- The stack sends the EC frame after the application is finished. | - The stack sends the EC frame after the application is finished. | ||
Zeile 48: | Zeile 67: | ||
- After the next Sync0 event the application can evaluate the signal. | - After the next Sync0 event the application can evaluate the signal. | ||
+ | ==== 250usec cycle ==== | ||
+ | |||
+ | {{ : | ||
+ | This example shows the flow of a signal through an EtherCAT network with an elmo Gold Twitter and a cycletime of 250usec. | ||
+ | |||
+ | Most of the lag is due to slow copy and write operations of the Gold Twitter controller. | ||
+ | Another motor controller may be faster. | ||
+ | |||
+ | The delay marked with the circle may be omitted. | ||
+ | Depending on the timing of the EtherCAT frame the data will be sent in the same cycle. | ||
+ | |||
+ | ==== Notes to bandwith ==== | ||
+ | The bandwith of EtherCAT is 100MBit/ | ||
+ | If a large part of the bandwidth is used, then the transmission of the EtherCAT frame takes almost the entire period. | ||
+ | This can lead to an additional latency of one period. | ||
+ | |||
+ | |||
+ | ===== Appendix ===== | ||
+ | {{: | ||