Jak jsem potkal Watchdog Error

Watchdog ErrorTak si jednoho hezkého zimního odpoledne programujeme, projekt utěšeně roste a už je z něj pěkný cvalík. Skoro už i dělá, co je v zadání a ne co se mu zrovna hodí. A najednou bác! Po chvilce běhu místo obvyklého rychlého blikání LED RUN (signalizující běh programu) tato LED zhasne a místo ní zlověstně bliká LED ERR.

A k ní ještě svítí LED od výstupu Y0 a Y2. Ne ihned po přechodu do stavu RUN, ale až po chvíli. Přesněji řečeno po náhodné době. Zapeklitá věc, vždyť jsme přidali jen několik MOV instrukcí a nějaké to porovnání. Nic složitého. Asi jsme rozbili PLC.

Zvláštní ale je, že když program zastavíme a znovu spustíme, tak chvíli běží správně. Také návrat ke starší verzi programu nebo nějaký jiný jednodušší program v našem PLC utěšeně běží. Takže alespoň to není HW chyba. Chvála bohu za to. Přes tyto úspěchy jsme cítili, že takovéto sporadické pokusy nestačí, že je třeba založit průzkum problému na solidní vědecké bázi. Rozhodli jsme se proto, a byl to můj návrh, přečíst si manuál. A tu po chvíli hledání jsme na straně H8-2 (FBs – Manual 1 – Hardware – Chapter 8) objevili přehlednou tabulku popisující chování LED ERR a výstupů Y0 až Y3 v případě zásadní chyby SW nebo HW. Z tabulky vyplynulo, že naše záhadná chyba (bliká ERR a svítí Y0 a Y2) znamená „Watchdog occurs“, což přeloženo do běžného jazyka znamená, že nějaká trubka udělala ten program příliš dlouhý a doba jednoho scan cyklu překročila rozumnou mez, přibližně 200 ms.

Pro diagnostiku jakékoliv chyby nebo stavu PLC nám přišly vhod následující speciální registry:

  • R4049 – hodnota 0x0005 znamená Watchdog fail
  • R4139 – CPU status: Watchdog Error je bit č. 4
  • R4136, R4137 a R4138 – aktuální, maximální a minimální doba trvání scan cyklu v [ms]
  • Dále tuto chybu zjistíte při podrobnější prozkoumání okna PLC Status, které se objeví při připojení PLC k programu WinProLadder, viz obrázek níže.

Watchdog Error

Program jsme tedy prořezali, zkrátili, místy i rozepsali do více kroků tak, že složitější operace se provádějí přes více scan cyklů. A poučení? Spočítané to bylo dobře, falíruje v tom jenom to násobení. To pro příště až budete plánovat nějakou další výpravu na severní pól.

 

Poznámky pod čarou:

  1. Při závažných chybách PLC, kdy se rozbliká LED ERR, LED RUN trvale zhasne a program se nevykonává, se všechny výstupy přepnou do stavu L (0, klidový stav). Svítící LED diody u výstupů indikují číslo chyby.
  2. Experimenty, jak dlouho může trvat hlavní smyčka, byly následující:
    • OK: 22ms, 87ms, 168ms, 206ms, 229ms, 239ms
    • WDG ERR: 244ms, 287ms, 330ms
  3. I při blikání LED ERR PLC komunikuje přes Port 0. Lze tedy pomocí FATEK protokolu zjistit stav R4139 nebo změnit program.
  4. Testy probíhaly na FBs-10MC, verze OS 4.65. Nebyly použity žádné rozšiřující desky ani moduly.
  5. Dobu trvání watchdogu lze nastavovat pomocí instrukce 90.WDT, ale je to základní bezpečnostní prvek PLC. Tak opatrně.
  6. Chyba WatchDogu (stejně jako ostatní případné chyby vyhlašované v PLC) se neodstraní prostým vypnutím a zapnutím PLC. Vždy je potřeba vzniklou chybu vyhodnotit a pak provést nějaký zásah.
  7. Pokud chyba WatchDogu nenastává příliš často a z bezpečnostní analýzy plyne, že nehrozí žádné nebezpečí, když se PLC znovu spustí, je možné (po přechodnou dobu, než se problém podaří vyřešit v PLC programu) používat ke spuštění PLC několik různých metod:
    • Nakonfigurovat některý vstup na PLC tak, aby jeho sepnutí způsobilo spuštění programu v PLC. Nastavení vstupu se provede z programu WinProladder[MENU] -> Konfigurace V/V -> [nastavení vstupů] -> Vstup Froce RUN.  Viz registr R4049 – „Force RUN“. (Poznámka: V programu WinProladder má být správně napsáno Force a nikoli Froce).
    • Použít panel FAC-FBS-PEP nebo FAC-FBS-BPEP, který umožňuje (v servisním menu: „PLC STOP / RUN“) zastavit/spustit program v PLC.
    • Spustit program v PLC pomocí programu WinProladder (tato metoda vyžaduje zkušenou obsluhu nebo programátora)