zz912 píše: ↑19. 3. 2020, 7:18
Pokud bych měl (hypoteticky) potřebu velkého množství vstupů/výstupů, nebo bych měl některé vstupy/výstupy hodně vzdálené od PC.
Tak bych si za síťovou kartu pro MESU dal switch a do něho zapojil několik MESA karet, třeba:
7i93
http://store.mesanet.com/index.php?rout ... uct_id=341
+ nějaké to oddělení.
Obdobu této myšlenky používají u nás chlapi v práci, akorát používají Siemens PLC + switch a roztahají si tak profinet po celé lince. Lze takto uvažovat i u ethernetových MESA karet + Linux CNC?
Jde mi o to, že v práci máme sice na větších linkách i stovky vstupů a výstupů, ale ovládáme "jen" ventily od válečků a koncové snímače (hódně zjednodušeně). Ovšem reakční rychlost PLC+sítě není potřeba nějak vysoká.
Na druhé straně řízení servomotorů / krokáčů pomocí STEP/DIR má trochu větší nároky na řízení, než jen "válec vysunut/zasunut"
Vím, že vzhledem k tomu, že začínám, tak předbíhám. Ovšem zajímá mě potenciál Linux CNC.
Pokud by to tak šlo, budu mít větší motivaci ke studiu Linux CNC a když ne, nebudu si aspoň kreslit vzdušné zámky.
Konečnou odpověď nechám na někom se zkušeností.
Switch do komunikace vnese další prodlevu a možnost kolize při komunikaci. Záleží i na switchi a jeho nastavení. Mají několik režimů zpracování ethernet rámců.
Obecně o ethernetu:
https://en.wikipedia.org/wiki/Ethernet_frame
- používá rámce
- každý rámec obsahuje hlavičku, data a kontrolní součet
- k adresaci používá tzv. MAC adresy - o délce 6 bytů, zapisuje se obvykle v šestnáckové soustavě odděleno po bytech dvojtečkou 00:00:be:ef:ca:1f tato adresa musí být v každém jedinečná v části sítě, která spolu komunikuje bez routeru (jen switche, huby, bridge - prakticky se používají jen switche)
- hlavička rámce obsahuje cílovou a zdrojovou MAC adresu (je důležité, že obě, uvidíme později).
- existují speciální MAC adresy - broadcast (ff:ff:ff:ff:ff:ff) - doručuje se na všechna zařízení - ostatní nejsou pro nás důležité
Switch
- má "porty" - tj ty konektory, kam se připojují kabely, ty fungují jako full duplex - mohou zároveň přijímat i odesílat
- má paměť, do které si ukládá, na kterém portu viděl jakou MAC adresu, ta má ovšem omezenou velikost, ne nějakou normou, ale výrobcem, měla by se vypráznit (část), pokud vypojíš kabel
- má nějakou další paměť, do které si ukládá zpracovávané rámce
- paměť se maže při vypnutí
Teď pohádka o switchi"
čerstvě zapnutý switch, nějaká připojená zařízení
portem 1 přichází rámec of MAC_1 pro MAC_2
switch přijme hlavičku
podívá se na zdrojovou adresu MAC_1 a uloží si ji do tabulky vazbu port_1-MAC_1
podívá se na cílovou adresu MAC_2
podívá se do tabulky port-MAC a najde leda prd
protože nezjistil kudy, pošle rámec všemy porty (mimo toho , kterým přišel) pryč
a portem 3 přichází další rámec od MAC_3 pro MAC_1
zase vytahne adresy z hlavičky
uloží si vazbu MAC_3-port_3
mrkne do tabulky a najde MAC_na port_1
a pošle rámec jen tím jedním port_1 pryč
a přes port 2 přichází rámec MAC_2 -> MAC_3
a zase stejný postup, přidání do tabulky + odeslání známým portem
Co když přes port_1 přijde rámec MAC_12 -> MAC_3 ?
žádná křeč, za jedním portem může být víc MAC address (třeba další switch+zařízení)
Se zmiňovanou broadcast MAC adresou se zachází tak, že se nikam neukládá a rámce na ni směřované se rozešlou vždy všemi porty (to samé s multicast - broadcast je speciální případ multicastu)
Tohle funguje plně duplexně na více portech zároveň.
Potíže nastanou
- zařízení (MAC adres) je moc, a přeplní se paměť. Je to málo pravděpodobné, bude záležet na implementaci, pravděpodobně se budou nejstarší záznamy přepisovat novějšími. Neznámé MAC se budou posílat všemy porty ven, to nechceme.
- moc zařízení chce najednou posílat data na jednu MAC - dokud vyrovnávací paměť ve switchi stačí, požadavky se řetězí za sebe, jinak se rámce, které se nevejdou zahazují, tohle by mohl být problém s MESA kartama k jednomu PC u "hloupých" switchů buffer nebývá moc velký, na druhou stranu 100Mbit, nebo 1Gbit jsou poměrně propustná média.
S propustností souvisí ještě dva údaje switche, kerými se někteří moc nechlubí
- propustnost na backplane dva 100Mbit porty při full duplex komunikaci na plné pecky potřebují 200Mbit propustnost backplane. Více portů znamená větší požadovanou propustnost. Někteří šetří a počítají s tím, že charakter provozu bude takový, že k plnému vytížení všech portů nedojde
- propustnost packet per second - nejde jen o rychlost dat, ale mnoho malých rámců - hlavička + pár bytů dat přináší nemalou režii - příjem hlavičky, hledání portu. Přenést 50Mbit/s v rámcích velkých 1,5 kB je mnohem snažší, než to samé po 100 bytech
A k tomu všemu switche (ty chytřejší) mohou mít nastaveno jak s rámcem nakládají
https://community.fs.com/blog/compariso ... ching.html
- tak jak je popsáno - po příjmu hlavičky sypou data pryč tzv cut through
- store and forward - přijmou celý rámec, zkontrolují CRC, pokud je OK, posílají dál. Pokud CRC nevychází rámec zahodí. - to vnáší další prodlevu