A.L. Programování Mosaic 12. 6. 2024 9:33 16. 11. 2022 13:14

Dobrý den,

chtěl bych se zeptat na zajímavé chování CPU. Když používám v SW multiplexer viz. screenshot, tak pokud na určující vstup multiplexeru přivedu hodnotu která překračuje počet vstupů multiplexeru tak CPU padne do HALT s výše uvedenou chybou.. Je mi jasné, že zadat hodnotu 3 pro mulipexer se třemi vstupy je samozřejmě nesmysl, ale přijde mi divné, že to vyvolá kompletní pád systému...

Je toto chování korektní a předpokládané? Osobně bych očekával (a na jiných PLC co znám to tak funguje), že pokud dám na určující vstup multiplexeru číslo vyšší než kolik vstupů má multiplexer tak by nemělo dojít přechodu CPU do režimu HLAT a multiplexer na svém výstupu předává hodnotu nejvyššího vstupu..

Děkuji za odpověď. 

Odpovědi 4

M.B. 14. 11. 2022 13:20

Dobrý den,

v tomto ohledu implementace odpovídá normě ČSN EN 61 131-3 ed. 2, která specifikuje, že vstup mimo rozsah <0..n-1>, kde n je počet vstupů, je běhová chyba.

I.L. 14. 11. 2022 17:09

Nechybí v dokumentaci Mosaicu popis funkce MUX() ? Na rozdíl od podobné funkce SEL() jsem ho nikdy nenašel...

M.B. 15. 11. 2022 8:53

Máte pravdu, MUX je uveden pouze ve výčtu klíčových slov a vlastní popis chybí. Děkuji za upozornění, chybu napravíme.

A.L. 16. 11. 2022 13:14

Dobrý den, děkuji za odpověď. Rozumím a budu respektovat. 

Nicméně třeba u PLC Simatic se CPU zachová tak, že vyhlásí chybu "programming error" a rozsvítí kontrolku SF na CPU, pak je na programátorovi jak daný stav ošetří v OB121, zda nechá CPU dál běžet a jen na OP zobrazí chybu nebo padne do režimu STOP.. Podobně se chová i PLC Mitsubishi kde je na programátorovi jak danou chybu bude řešit.

Chování Tecomatu mi přijde docela striktní.. V případě, že upravuji SW na technologii která je v provozu a upíši se, tak CPU hned bez varování jde do HALT a odstaví celou technologii (to se mi totiž stalo), což je velmi nepříjemný zážitek... Přitom se v podstatě nic zásadního neděje, raději bych měl nefunkční kousek kódu než nečekaný pád celého systému. Za mě by bylo super kdyby CPU na chybu programátora jen upozornilo a nepřešlo do režimu HALT, popřípadě v HW konfiguraci mít možnost nastavit si chování CPU v případě chyby programátora. 

Tento dotaz je vyřešený.