chyba komunikace s Unipi Extension xS51
-
Dobrý den,
Mám Unipi Extension xS51 připojený k Neuron S103 asi pěti metry kabelu.
RS-485 je na obou koncích řádně zakončena.
Na sběrnici je ještě jedno zařízení mojí vlastní konstrukce.
Po čtvrt roce bezproblémového provozu se komunikace zastavila a výstupy zůstaly viset na konstantních hodnotách.
Je mi známo, že extension samotný má v dokumentaci uvedenu nějakou watchdog funkci, ale pro tentokrát bych rád řešil stranu kontroléru.Jsem od instalace daleko, ale když jsem po několika dnech zaznamenal, že se děje něco divného, Neuron jsem restartoval a vše se plně rozběhlo.
Lze nějak hlídat komunikaci/obnovování vstupů a v případě problému to nějak reinicializovat, nebo komplet restartovat automaticky?
Děkuji
-
Opravdu pro mě nemáte žádnou odpověď?
Teď jsem zařízení našel ve stejném stavu. Neuron ukazoval v ladění proměnné červeně a neměnné.
Po teplém startu vše běží.
Není možné komunikaci (s Extension xS51) nějak hlídat a vyvolat teplý restart, pokud se zastaví?
Díky
-
@ladmanj
Dobrý den,
pokud instalace 3 měsíce fungovala bez problémů, vypadá to spíše na změnu provozních podmínek nebo špatnou instalaci. Jaký druh kabelu je použit, je v blízkosti nějaký zdroj rušení? Jaká zařízení jsou připojena na PLC a extension? Jakou konfiguraci Modbus používáte (rychlost atd.)? Jak jsou jednotky napájeny?
Jakou máte verzi fw desky Neurona a extensiony? Můžete zkusit aktualizaci dle tohoto článku.
Softwarové řešení hw problému není snadné. Můžete zkusit detekovat chybu linky pomocí její proměnnécommerror
a následně zkusit restartovat extension nebo IO desku Neurona pomocí proměnnýchreboot
. -
Díky, vyzkouším uvedené rady. Firmware jsem od nákupu neuronů neupdatoval, tak v tom vidím naději. Ty proměnné k detekci chyby také považuji za dobré nasměrování.
-
@ladmanj
Dobrý den,
teplý restart je možné provést zavoláním funkce reloadapplication s parametrem flags (příznaky restartu, 1 - cold restart, jinak warm). Funkci je možné přidat pravým tlačítkem nebo zavolat z ST. -
@cleve said in chyba komunikace s Unipi Extension xS51:
Softwarové řešení hw problému není snadné. Můžete zkusit detekovat chybu linky pomocí její proměnné
commerror
a následně zkusit restartovat extension nebo IO desku Neurona pomocí proměnnýchreboot
.V tom máte jistě pravdu. Napájení i celkové zapojení je provedeno pečlivě. Nicméně chybu nelze vyloučit v žádném případě.
Komunikace běží na 57600 8N1. Sběrnice je dlouhá cca 5m, na obou koncích zakončená. Na neuronu je zapnut příslušný DIP switch, na opačném konci je 120R rezistor.Na sběrnici je kromě neurona unipi extension modul a jedno zařízení mé vlastní konstrukce, které interně používá libmodbus.
Použitý kabel je https://www.jablotron.com/cz/produkt/kabel-sbernice-2x20awg-2x24awg-676/
Obě zařízení jsou tímto kabelem také napájená.Potenciálně problematické je, že v mém vlastním modulu je vzduchový kompresorek s kartáčovým stejnosměrným motorem, ale ten je napájen z (analogového) regulátoru proudu a běží se zlomkem jmenovitého proudu a taktéž se nekoná standardní rozběhová proudová špička.
Ano připouštím, že moje zařízení může teoreticky něco ošlivého poslat do sběrnice. Ano připouštím, že moje zařízení se může "rozhodnout", že do sběrnice bude už navěky bez přestání vysílat a pak komunikace zdechne.
Jenže, jak je v takovém případě možné, že pomůže pokaždé teplý restart mervisu?
Nerestartuje se linux ani nic jiného. Nevypíná se napájení sběrnice.Mimochodem: už k tomu opět došlo a to i po updatu firmwaru v neuronu. V extension jsem fw ještě neupdatoval. Z bezpečnostních důvodů to nechci dělat přes ssh na dálku.
Díky za případné další informace.
-
@cleve said in chyba komunikace s Unipi Extension xS51:
@ladmanj
Dobrý den,
teplý restart je možné provést zavoláním funkce reloadapplication s parametrem flags (příznaky restartu, 1 - cold restart, jinak warm). Funkci je možné přidat pravým tlačítkem nebo zavolat z ST.Omlouvám se, ale není mi jasné jak se ve FBD zavolá ta funkce reloadapplication (nedokumentovaná) tak, aby se restart provedl jen při true boolean proměnné. Kdyby flag 0 byl "žádná akce", 1 "warm restart", 2 "cold restart", tak bych věděl, ale když 1 je cold a vše ostatní je warm restart, tak nějak nevím co dělat.
Chápu že je to míněno tak, že v takovém případě se funkce vůbec nemá volat, ale já nevím jak takovou věc ve fbd nakreslit. Pokud to nepůjde, pokusím se to nadatlovat v ST, ale zatím ho stále neovládám. Dokážu C, C++, python, pascal, assembler pro různé platformy, Verilog, tak se nakonec zvládnu i ST. Zatím mi ale způsobuje nevolnost.
-
@ladmanj
Dobrý den,
pro warm restart použijte hodnotu 0. Pokud jej chcete volat z FBD, musíte si zviditelnit vstup "en", jinak by blok restartoval neustále. Pokud chcete zrestartovat RT, pošlete na vstup true. Musíte si ale ošetřit, aby při bootu nebyla hodnota znovu true, to byste se dostal do smyčky nekonečného restartu. -
@cleve
OK, díky, myslel jsem si to, že EN bude ta cesta, ale chtěl jsem se ujistit.