Dobrý den,
při použití FB SigErr13 z knihovny RegoLib 2.0 jsem náhodou narazil na problém, že mi nechtěl zmizet výstup signál poruchy 7 po zániku vstupního signálu a kvitaci.
Po dlouhých pokusech hledání, kde je chyba jsme přišli na to, že pokud je vstup In2:=true, tak potom když vstup In7 projde stavy false -> true ->false a je odkvitováno, tak výstup Err7 trvale v true. Přitom vedlejší vstupy In6 a In8 fungují správně, tzn. že po zániku vstupu a odkvitování výstupy jsou false.
Tento FB používám již dlouho v mnoha projektech a nyní jsem vlastně náhodou narazil na toto chování. Zkoušeno na CP-1005 i v simulátoru, Mosaic 2020,2 Upd1 Fix1
Mohli byste to prosím nějak prozkoumat? Přikládám ukázku.
Díky, ZK
VAR_GLOBAL RETAIN
ERR_01:SigErr13;
In_AL_2:bool;
In_AL_7:bool;
Kvitace:bool;
END_VAR
PROGRAM prgMain
VAR_INPUT
END_VAR
VAR_OUTPUT
END_VAR
VAR
END_VAR
VAR_TEMP
END_VAR
ERR_01.In2:= In_AL_2; //pokud trva tento vstup In2
ERR_01.Cfg.PresetTime2:=T#0s;
ERR_01.Cfg.control2:=2;
ERR_01.In7:= In_AL_7; //tak In7 nefunguje spravne, pokud prejde 0 -> 1 -> 0 a Kvitace, Tak Err7 je stale 1
ERR_01.Cfg.PresetTime7:=T#0s;
ERR_01.Cfg.control7:=2;
ERR_01.AckI:=Kvitace;
ERR_01.ResI:=Kvitace;
ERR_01();
Kvitace:=false;
END_PROGRAM
Odpovědi 2
Dobrý den,
díky vašemu popisu jsme chybu našli rychle. V příloze najdete opravenou knihovnu. Omlouváme se za komplikace.
Děkuji za rychlou reakci, vyzkoušeno, funguje. ZK
Tento dotaz je vyřešený.