Kilka sterowników na jednym porcie Ethernet

Dyskusje dotyczące działania obsługi programu LinuxCNC
Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 14
Posty: 9394
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Kilka sterowników na jednym porcie Ethernet

#1

Post napisał: tuxcnc » 12 maja 2025, 20:36

Od dawna zabierałem się do tego tematu i w końcu dzisiaj zrobiłem pierwsze próby.

Problem wziął się stąd, że można zbudować proste i tanie urządzenia (np. czytnik enkoderów) komunikujące się przez Ethernet z LinuxCNC.
Także dostępne są tanie sterowniki (na W5500 i ESP32 lub W5500 i RP2040), które jednak są dość biedne w zasoby. Podłączenie dwóch rozwiązywało by problem braku I/O lub obsługi czwartej czy piątej osi...
Raczej nie chodzi o dwie karty sieciowe w komputerze, choć o tym też możemy porozmawiać.
Jest wiele mini komputerów, które są pełnowartościowym sprzętem, ale nie umożliwiają instalacji dodatkowych kart, więc raczej temat dotyczy jednej karty i switcha.

Na razie dowiedziałem się, że nie istnieją żadne przewidywalne reguły.
Kupiłem tani switch https://www.aliexpress.com/item/1005007037391356.html i nie polecam. Działać, to i owszem działa, ale strasznie się przycina i gubi pakiety...
Z braku lepszego pomysłu podłączyłem stary router wifi (on ma wbudowany switch) i działa on całkiem dobrze...
Tak więc nie wiem co powinienem kupić...
Także okazało się, że robi ogromną różnicę co się ze sobą łączy.
Przy podłączeniu dwóch identycznych sterowników W5500-ESP32 dzieją się cuda. Oczywiście oba zaprogramowałem z innymi adresami IP i innymi portami, ale one kłócą się ze sobą i zasadniczo działają na zmianę...
Natomiast W5500-ESP32 nie ma żadnych konfliktów z W5500-RP2040...
Na dzisiaj mam dość i więcej prób robić nie będę.

Czy ktoś już przerabiał ten temat?




strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 4710
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

Re: Kilka sterowników na jednym porcie Ethernet

#2

Post napisał: strikexp » 12 maja 2025, 21:04

Weź nawet się nie kompromituj jakimiś chińskimi no name w zastosowaniach przemysłowych. Kup zwykły switch, TP-link można kupić za 35zł. Ale co warto kupić za stówkę to musisz sam pogrzebać bo nie jestem na bieżąco w producentach.
Sprzęt sieciowy to przede wszystkim sprzęt niezawodny, na którym działa internet od kabla na słupie wzwyż. Można taki używany sprzęt wyrwać tanio na allegro.

Konfliktom pasowałoby przyjrzeć się w analizatorze sieci Ethernet. Tu wchodzisz w całe zagadnienie jak wygląda taka komunikacja.
Ostatnio zmieniony 12 maja 2025, 21:31 przez strikexp, łącznie zmieniany 1 raz.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 14
Posty: 9394
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Kilka sterowników na jednym porcie Ethernet

#3

Post napisał: tuxcnc » 12 maja 2025, 21:12

strikexp pisze:
12 maja 2025, 21:04
Weź nawet się nie kompromituj jakimiś chińskimi no name w zastosowaniach przemysłowych. Kup zwykły switch, TP-link można kupić za 35zł. Ale co warto kupić za stówkę to musisz sam pogrzebać bo nie jestem na bieżąco w producentach.
Sprzęt sieciowy to przede wszystkim sprzęt niezawodny, na którym działa internet od kabla na słupie wzwyż. Można taki używany sprzęt wyrwać tanio na allegro.

Konfliktom pasowałoby przyjrzeć się w analizatorze sieci Ethernet. Tu wchodzisz całe zagadnienie jak wygląda taka komunikacja.
Internet nie ma tu nic do rzeczy, bo nie jest systemem czasu rzeczywistego. Sprzęt działający zadowalająco przy transmisji filmu może nie nadawać się do sterowania CNC.
Żaden analizator sieci nie odpowie na pytanie dlaczego urządzenie nie odpowiada na pingi.


strikexp
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 4710
Rejestracja: 31 mar 2017, 19:47
Lokalizacja: Warszawa

Re: Kilka sterowników na jednym porcie Ethernet

#4

Post napisał: strikexp » 12 maja 2025, 21:30

Odpowiedź masz na wikipedii:
https://pl.wikipedia.org/wiki/Ping

Na ogół brak fizycznego połączenia lub zawieszone urządzenie. Aczkolwiek ping jest zdaje się wbudowany w hardware chipa obsługującego ethernet. Więc zawieszenie oznacza problem z chipem lub elektryczny.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 14
Posty: 9394
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Kilka sterowników na jednym porcie Ethernet

#5

Post napisał: tuxcnc » 12 maja 2025, 21:56

strikexp pisze:
12 maja 2025, 21:30
Odpowiedź masz na wikipedii:
https://pl.wikipedia.org/wiki/Ping

Na ogół brak fizycznego połączenia lub zawieszone urządzenie. Aczkolwiek ping jest zdaje się wbudowany w hardware chipa obsługującego ethernet. Więc zawieszenie oznacza problem z chipem lub elektryczny.
Mam do Ciebie prośbę, żebyś mi nie tłumaczył tego, czego sam nie rozumiesz.


drzasiek90
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 7
Posty: 2346
Rejestracja: 25 kwie 2016, 11:58
Lokalizacja: Jodlowa
Kontakt:

Re: Kilka sterowników na jednym porcie Ethernet

#6

Post napisał: drzasiek90 » 12 maja 2025, 23:32

tuxcnc pisze:
12 maja 2025, 20:36
Przy podłączeniu dwóch identycznych sterowników W5500-ESP32 dzieją się cuda. Oczywiście oba zaprogramowałem z innymi adresami IP i innymi portami, ale one kłócą się ze sobą i zasadniczo działają na zmianę...
Natomiast W5500-ESP32 nie ma żadnych konfliktów z W5500-RP2040...
W5500 nie ma na stałe przypisanego adresu MAC, adres ustawia się w kodzie w bibliotece która go obsługuje.
Jeśli nie zmieniłeś adresu w kodzie, to zgłaszają ci się dwa urządzenia z identycznym adresem MAC.

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 14
Posty: 9394
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Kilka sterowników na jednym porcie Ethernet

#7

Post napisał: tuxcnc » 13 maja 2025, 05:41

drzasiek90 pisze:
12 maja 2025, 23:32
W5500 nie ma na stałe przypisanego adresu MAC, adres ustawia się w kodzie w bibliotece która go obsługuje.
Jeśli nie zmieniłeś adresu w kodzie, to zgłaszają ci się dwa urządzenia z identycznym adresem MAC.
Cholera jasna...
To nie jest w bibliotece, tylko w programie.
Linia od ustawienia MAC jest nad linią z ustawieniem IP i dwie linie nad ustawieniem portu, sto razy na nią patrzyłem, a wczoraj jakiejś wybiórczej ślepoty dostałem...
Oczywiście sypało się właśnie z tego powodu, po zmianie MAC zaczęło działać jak powinno...

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 14
Posty: 9394
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Kilka sterowników na jednym porcie Ethernet

#8

Post napisał: tuxcnc » 13 maja 2025, 14:56

Kilka słów wyjaśnienia.

Nie chodzi o to, żeby stworzyć potworka składającego się z kilkunastu płytek i plątaniny przewodów.
Jeśli ktoś od razu zakłada duże potrzeby, to niech sobie kupi EC500, bardzo fajny sterownik, obsługujący sześć osi, trzy enkodery i sporo wejść/wyjść w przemysłowym standardzie 24V, wszystko za niewiele ponad trzy stówki.
Ale z drugiej strony, taki sterownik do prostego ploterka w rodzaju CNC3018 to stanowczy przerost formy nad treścią.
Kombinacja będąca przedmiotem wątku jest częścią projektu, który na razie chodzi mi po głowie, ale jest bliski realizacji, a nazywać się będzie "Mój pierwszy LinuxCNC". Będzie to jak najprostsze i jak najtańsze, ale w pełni funkcjonalne sterowanie trzyosiowej frezarki, pracujące przez Ethernet. Na razie sercem będzie sterownik na ESPDuino32 z CNCShield, choć w przyszłości zapewne obsługiwany będzie także inny sprzęt. Każdy zainteresowany dostanie szczegółową instrukcję jak zaprogramować i podłączyć sprzęt, ale także rozbudowane pliki konfiguracyjne LinuxCNC, umożliwiające natychmiastową pracę, a nie tylko wykonanie prostych testów. Taki sterownik będzie kosztował w granicach 50-100 PLN, natomiast bazową maszyną będzie CNC1310, taka malutka, ale bardzo przyzwoicie wykonana frezareczka (oczywiście skonfigurowanie trochę większej maszyny będzie kwestią edycji kilku wartości w plikach konfiguracyjnych).
No i tu właśnie jest problem, że ktoś (dla kogo CNC, Linux i programowanie mikrokontrolerów są czarną magią) poświęci czas i pieniądze na uruchomienie takiej maszyny i któregoś dnia obudzi się z ręką w nocniku, bo jakakolwiek jej rozbudowa okaże się niemożliwa.
Dlatego pomysł jest taki, żeby sterownik poszatkować na zupełnie niezależne urządzenia. Na przykład jeden sterownik obsługujący trzyosiową frezarkę i drugi obsługujący np. czwartą i piąta oś oraz kilka wejść/wyjść. To mogły by być zupełnie niezależne urządzenia z własnym zasilaniem i obudową, zestawiane w miarę potrzeb i obsługiwane przez uruchomienie odpowiedniej konfiguracji LinuxCNC.
Po głowie chodzi mi też tani STM32F401, na którym można by było zbudować trzy sprzętowe liczniki enkoderów z obsługą indeksu wrzeciona (projekt w sumie prosty, ale na razie musi poczekać, chyba że znajdzie się ktoś chętny tym się zająć).


pukury
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 1
Posty: 7748
Rejestracja: 23 lis 2004, 22:41
Lokalizacja: kraków

Re: Kilka sterowników na jednym porcie Ethernet

#9

Post napisał: pukury » 13 maja 2025, 16:37

Hej.
Trzymam kciuki ( jak to się mówi) :mrgreen:
A ta mała maszynka - bardzo fajna .
pzd.
Mane Tekel Fares

Awatar użytkownika

Autor tematu
tuxcnc
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 14
Posty: 9394
Rejestracja: 26 lut 2011, 23:24
Lokalizacja: mazowieckie

Re: Kilka sterowników na jednym porcie Ethernet

#10

Post napisał: tuxcnc » 13 maja 2025, 18:30

Na dzisiaj mam dość.
Może nie w formie jestem, może dlatego że trzynasty...
W każdym razie idzie jak po grudzie, a to jakaś literówka, a to niewłaściwa kolejność, a to o czymś zapomniałem...
W każdym razie skonfigurowałem czwartą oś na drugim sterowniku.
Na pierwszym jest trzyosiowa frezarka z krańcówkami bazującymi, czujnikiem narzędzia, kamerą do ustawiania materiału, czyli full-wypas, tylko w wersji mini. To skonfigurowałem przedwczoraj.
Dzisiaj dobił drugi sterownik ESP32-W5500, z identycznymi zasobami, czyli trzy step/dir, osiem wejść i sześć wyjść z możliwością ustawienia jako PWM.
W sumie daje to sześć osi, szesnaście wejść i dwanaście wyjść/PWM.
Oczywiście da się to zmienić, bo co prawda pinów nie przybędzie, ale można im przypisać inne funkcje (tylko nie wiem czy jest taka potrzeba).
Tutaj taka dygresja, że autor UDP2HAL wykorzystał sprzętowe timery do generowania impulsów step. Timery są cztery, ale jeden jest używany do innych celów, więc więcej niż trzech osi na jednym ESP32 uruchomić się nie da. Tak przy okazji, to nie próbujcie ściągać kodu źródłowego z netu. Na Githubie jest nowa wersja, która oczywiście nie działa, bo autor coś popieprzył i nie raczył sprawdzić czy publikowany kod działa... Ja używam starej wersji w której zrobiłem trochę własnych poprawek. Jak autor dojdzie ładu z nową wersją, to pomyślę żeby jej użyć.

Wracając do tematu, to oczywiście diabeł tkwi w szczegółach.
Ten chiński switch nadal nie działa, sterowanie wywala się najpóźniej po kilku sekundach, ale na tym starym routerze działa bardzo stabilnie.
Trzeba by było zrobić jakieś rozpoznanie co do switcha, który nadaje się do pracy w czasie rzeczywistym. Chodzi o sprzęt nowy, dostępny w sklepie lub na popularnych portalach, żeby nie było polowania na zabytki...
Tutaj dygresja. Pisałem już, że sprzęt doskonały do Internetu może być absolutnie nieprzydatny do sterowania CNC. Kiedy oglądasz film, to połączenie może szarpać, a pakiety mogą się gubić, bo dane są buforowane, a utracone pakiety ponownie żądane. Kiedy pracuje maszyna, to komunikacja musi być bezbłędna, bo rozpędzony silnik nie zaczeka na dane...

W każdym razie, wygląda na to, że się da...

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”