Unterschiede

Hier werden die Unterschiede zwischen zwei Versionen angezeigt.

Link zu dieser Vergleichsansicht

Beide Seiten der vorigen RevisionVorhergehende Überarbeitung
Nächste Überarbeitung
Vorhergehende Überarbeitung
embedded_systems:ethercat:understanding_ethercat:understanding_sync_with_dc [2019-02-05 14:53] mgehrig2embedded_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 ===== ===== Additional Documentation =====
-TODO+  * [[https://infosys.beckhoff.com/english.php?content=../content/1033/ethercatsystem/2469122443.html&id= | Beckhoff documentation ]] (Very extensive) 
 +  * [[https://www.acontis.com/en/dcm.html | Acontis documentation]] 
  
 ===== 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 by all participants.+The Sync0 event is triggered synchronously on all participants.
  
 ==== 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:09) after the Sync0 event.
 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.
 +
 +{{ :embedded_systems:ethercat:understanding_ethercat:2469760779_web.gif?direct |}}
  
 ==== DCM Master Shift Mode ==== ==== DCM Master Shift Mode ====
Zeile 21: 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 error message+The coresponding error message will be something like: 
 +<code> 
 +082039 : eUsrJob_ProcessAllRxFrames - not all previously sent frames are received/processed (frame loss)! 
 +</code>
  
 ==== DCM Bus Shift Mode ==== ==== DCM Bus Shift Mode ====
Zeile 32: 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 between the frames is only deterministic to a limited extent. +==== Cycle time ==== 
-In this mode only the period between the Sync 0 events is deterministic!+The cycle time between the EtherCAT frames is only deterministic to a limited extent. 
 +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 two consecutive inputs measurements is very constant, because they are synchronized with the Sync0 event. 
 +The same is true for writing outputs. 
 + 
 +For calculations in control applications, the period duration (setpoint!) must be used, not the measured time between two EtherCAT frames.
  
  
 ===== Example Setting and Read with a ELMO EtherCAT Slave ===== ===== Example Setting and Read with a ELMO EtherCAT Slave =====
 +==== 1000usec cycle ====
 +
 {{ :embedded_systems:ethercat:understanding_ethercat:timing_turnaround_elmo_1000usec.png?direct |}} {{ :embedded_systems:ethercat:understanding_ethercat:timing_turnaround_elmo_1000usec.png?direct |}}
  
Zeile 51: 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 ====
  
 {{ :embedded_systems:ethercat:understanding_ethercat:timing_turnaround_elmo_250usec.png?direct |}} {{ :embedded_systems:ethercat:understanding_ethercat:timing_turnaround_elmo_250usec.png?direct |}}
 This example shows the flow of a signal through an EtherCAT network with an elmo Gold Twitter and a cycletime of 250usec. 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/sec.
 +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 =====
 +{{:embedded_systems:ethercat:understanding_ethercat:graphs.rar|Download graphs}}
 +