NetLab jak pomalé to může být

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

EtherCAT: rámec, který se čte za jízdy

Nejchytřejší nápad v téhle labce, a dá se popsat jednou větou: místo aby každý uzel dostal vlastní rámec, projede všemi jeden jediný a každý si z něj za jízdy vezme svoje bajty a zapíše svou odpověď — aniž by ho zastavil.

jeden rámec tam……a týž rámec zpátky, každý uzel si po cestě vzal svoje+30EtherCAT70 µsrámec na uzel282 µsnejvyšší frekvence smyčky14.3 kHzpoměr4.0×využití drátu86 % / 10 %
Přidávej uzly a sleduj oba pruhy. Rámec na uzel roste s počtem uzlů v celých rámcích; EtherCAT jen o zpoždění v každém uzlu, které je o dva řády menší.

Proč to funguje

Uzel EtherCATu není přepínač. Je to posuvný registr na cestě: rámec do něj vteče jednou stranou a druhou vytéká o pár set nanosekund později, a mezitím obvod přepíše ta místa v rámci, která patří jemu. Nic se neukládá, nic se nečeká, nic nemá frontu.

rámec na uzelEtherCAT
rámců na cyklusN1
režieN × 38 B38 B
zdržení na uzelcelá doba rámce~0,5 µs
využití drátu (8 B/uzel)~10 %přes 80 %

A co za to

Není to zadarmo a stojí za to říct, co se dává:

  • Speciální hardware v každém uzlu. Ten obvod musí přepsat rámec, který jím teče, v reálném čase — běžný ethernetový adaptér to neumí. Řídicí strana naopak stačí obyčejná.
  • Topologie je řetěz nebo kruh, ne hvězda. Přerušený kabel uprostřed odpojí všechno za sebou — pokud se to nezapojí do kruhu, pak to přežije jedno přerušení.
  • Není to IP síť. Nedá se na to připojit notebook a otevřít stránku. Je to sběrnice, která používá ethernetový hardware jako drát.

To poslední je ta pointa a stojí za zopakování: EtherCAT nevyřešil problém rychlosti Ethernetu. Vyřešil ho tím, že přestal používat Ethernet jako síť a začal ho používat jako fyzickou vrstvu, na které si postavil vlastní pravidla — zhruba tak, jako Modbus RTU používá RS-485 z LinkLabu. Vrstvy z kapitoly 1 se daly rozebrat a poskládat jinak.

Distribuované hodiny

Druhá polovina toho, proč se EtherCAT používá v pohybové regulaci: všechny uzly mají hodiny srovnané na společný čas s odchylkou pod mikrosekundu. Nejde tedy jen o to, že data dorazí včas — všechny osy můžou sepnout ve stejný okamžik, a to je u vícero souběžně se pohybujících os to podstatné. Jitter mezi osami je horší než jitter jedné osy.

Vzorce v této kapitole

t — cyklus EtherCATu
t ≈ t_rámce + 2·N·(t_uzel + t_kabel) [s] kap. 10