Opätovné naštartovanie Ethernet shieldu

Odpovědět
romanm
Příspěvky: 45
Registrován: 11 pro 2018, 23:17
Reputation: 0

Opätovné naštartovanie Ethernet shieldu

Příspěvek od romanm » 12 led 2021, 21:57

Mám arduino uno + ethernet shield s pevnou IP. beží mi na ňom aj client aj server. Pokiaľ odpojím od siete switch, do ktorého je shield pripojený, tak komunikácia prestane komunikovať. Nefunguje ani client, ani server. Program v arduine beží ďalej, len komunikácia nefunguje. Existuje nejaká finta ako znova "nahodiť" ethernet?
Môžem v loope, keď zistím, že sa neviem pripojiť z arduina na server, znova inicializovať etnernet príkazom

Kód: Vybrat vše

  Ethernet.begin(mac, ip);
Môže sa vôbec vykonať viacnásobná inicializácia Ethernetu mimo funkciu setup?
Keď iba odpojím kábel, tak arduino opätovne naštartuje. Keď ale kábel prehodím z podružného do hlavného switcha, tak komunikácia sa neobnoví. Ako keby sa shield nevedel "dohovoriť" so switchom.

romanm
Příspěvky: 45
Registrován: 11 pro 2018, 23:17
Reputation: 0

Re: Opätovné naštartovanie Ethernet shieldu

Příspěvek od romanm » 14 led 2021, 18:41

Zistil som, že toto Ethernet shieldy s čipom W5100 niekedy robia. Asi to budem rišiť nejakým počítadlom nepodarených pokusov a následným sw resetom celého arduina, aj so shieldom.
Len musím poriešiť napočítané impulzy z elektromerov, aby sa nestratili. Asi zápisom na SD.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Opätovné naštartovanie Ethernet shieldu

Příspěvek od pavel1tu » 14 led 2021, 19:02

No, provozuji trvale 1-4 roky jeden 5100 a dva 5500 a problémy nemám.
Mám je ale jen jako klienty. Četl jsem že bývá problém při přepínání mezi client/server. Ale netestoval jsem to.
Jde udělat RESET jen toho LAN modulu (tedy vyčetl jsem to kdysi v datasheetu toho čipu), na nějakou adresu se uloží nějaká hodnota a měl by se resetnout. Také jsem to zatím netestoval.

Jinak já pro jistotu před každým odesíláním zkoumám připojení.
Odesílám 1x za 5minut, pokud je chyba připojení, zkouším to ještě 3x (po 20s), pak teprve hlásím chybu. Do databáze zapisuji i kody chyb všech modulů (0-OK, 1-3 opakované pokusy - chyby), nejen LANmodulu. S každou chybou prodlužuji koeficientem "delay" kdy čekám odpověď po odeslání dat - kdyby byl ucpaný NET.
Pravda je že za rok mi LANmodul asi 50x zapsal "1" a 2x "2". Ale zápisů je přes 100.000, tak tomu nepřikládám váhu.

Každých 5 minut zapisuji 3x (do 3 databází)
- data z meteostanice
- data všech baterek, zdrojů a solárního panelu (meteostanice, alarmu)
- eventy a poruchové data všech modulů/alarmu
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

romanm
Příspěvky: 45
Registrován: 11 pro 2018, 23:17
Reputation: 0

Re: Opätovné naštartovanie Ethernet shieldu

Příspěvek od romanm » 14 led 2021, 20:23

pavel1tu píše:
14 led 2021, 19:02
No, provozuji trvale 1-4 roky jeden 5100 a dva 5500 a problémy nemám.
No skus len tak skusmo odpojit napajanie samotneho switchu. Arduino nechaj bezat. Potom zapoj switch a sleduj, ci sa ti rozbehne. Nejde tu o to, ci je client, alebo server, ten ethernet shield jednoducho zamrzne. Skus to tak viackrat a sleduj ci sa rozbehne. Cital som, ze viaceri sa pokusali iba o restart shieldu, ale akosi sa im to nepodarilo. Skusim este googlit.
Ak odpojim iba kabel, tak mozno v 50% sa shield nerozbehne.
Chyby tiez zapisujem, ale zo snimacov. Chybu vypadku siete asi tazko zapisem :-)
Z teplotnych snimacov som uz prekonal 5mil. zapisov, v podstate zatial nenastal taky pripad, ako som popisoval vyssie. Prisiel som na to nahodou, ked som mal na stole jedno arduino, ktore som testoval a vypol som switch. Mozno v praxi, ked vypadne elektrina,tak vypadne aj arduino so shieldom, aj switch, arduino musi nabootovat a trva mu to dlhsie, ako nabootovanie switcha, preto sa v praxi tato chyba este neobjavila.

Uživatelský avatar
pavel1tu
Příspěvky: 2054
Registrován: 26 říj 2017, 08:28
Reputation: 0
Bydliště: Trutnov
Kontaktovat uživatele:

Re: Opätovné naštartovanie Ethernet shieldu

Příspěvek od pavel1tu » 15 led 2021, 08:33

Aha, vyzkouším.
Celou síť mám doma zálohovanou, běží mi na tom kamera a alarm - tak výpadek nehrozí.
UNO, NANO, Mikro, PRO mini, DUE, ESP32S2, RPi PICO
Pavel1TU
"Správně napsaný kod lze číst jako knihu"

martinius96
Příspěvky: 579
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: Opätovné naštartovanie Ethernet shieldu

Příspěvek od martinius96 » 15 led 2021, 10:27

Aký je to switch? Možno drží IP adresu na tom switchporte po nejaký lease time a to znemožní komunikovať na inom porte kvôli kolízii rovnakej IP adresy... Nerozsvieti sa ti LED COL (COLLISION) na Ethernet shielde?
Ja síce využívam DHCP, ale možno by to fungovalo aj v tvojom prípade.
Použi v loope toto:

Kód: Vybrat vše

Ethernet.maintain();
Stačí to volať raz za x sekúnd...
V podstate to vyžiada IP adresu, resp. predĺži lease time...
Môžeš si nechať vypísať i to, aký to vráti stav...

Kód: Vybrat vše

byte:
0: nothing happened
1: renew failed
2: renew success
3: rebind fail
4: rebind success

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 3 hosti