3. Rodzaje błędów spotykanych w algorytmach sterowania SFC

3.3. Błędy algorytmu SFC tzw. niedostępne dla jego rozwoju

Jak pokazuje analiza algorytmu SFC z rysunku 28, który zawiera błąd niebezpieczny dla procesu przemysłowego, może być i tak, że błąd taki może nigdy się nie objawić w praktyce pomimo tego, że wystąpi w algorytmie. Odnosząc to do rysunku 28 błąd niebezpieczny nie objawi się nigdy, gdy tłoczysko siłownika Z3 będzie przez cały swój okres „eksploatacji” pobudzać czujnik CZ3 przed upływem okresu czasu 6 sekund a to będzie zachowane wtedy, gdy układ przygotowania sprężonego powietrza „zadba” zawsze o jego odpowiednią wartość lub zachowana będzie zawsze szczelność podłączenia siłownika Z3 do przewodu pneumatycznego zasilającego. 
Należy nadmienić, że inaczej wygląda sprawa z tzw. błędem niedostępnym, który może wystąpić w algorytmie SFC na skutek najprawdopodobniej nieuwagi projektanta, ponieważ nikt raczej świadomie nie projektuje algorytmu, który nie będzie wykonywalny w praktyce. Jak dalej zobaczymy na przykładzie tego samego procesu przemysłowego z rysunku 27 błąd niedostępny zatrzyma proces przemysłowy na kroku (etapie) skojarzonym z tą częścią algorytmu SFC, w którym ten błąd „wyprodukowano”. Rysunek 30 ilustruje algorytm SFC dla tego procesu z tzw. błędem niedostępnym.

Rysunek 30: Algorytm SFC z błędem niedostępnym uniemożliwiającym m.in. rozwój algorytmu po zapaleniu tranzycji T0

W algorytmie SFC z rysunku 30 poprzez ten błąd niedostępny, w zależności od rozwoju algorytmu nie mają prawa się wydarzyć alternatywnie dwie rzeczy. Pierwszą rzeczą może być to, że gdy tłoczysko siłownika Z3 „zdąży” pobudzić czujnik CZ3 w czasie mniejszym niż 6 sekund, to po wykonaniu kompletnej pojedynczej (czytaj: pierwszej po uruchomieniu procesu i jedynej) obróbki materiału, czyli nawierceniu trzech otworów i wycofaniu tłoczysk proces i tak nie zakończy się. Gdzie to widzimy? Widzimy to w tym, że po pierwsze algorytm nie zawiera poprawnie uruchomionej drugiej procedury współbieżnej oraz po drugie, nawet gdyby tak było, warunkiem wyjścia z tej drugiej procedury współbieżnej (oprócz zapalenia tranzycji T0) byłoby zaistnienie kroku nr 11, który nigdy nie zaistnieje. (Autor jest przekonany, że Czytelnik wie dlaczego). Drugą rzeczą będzie to, że gdy pojawi się omawiana wcześniej awaria w działaniu siłownika Z3 i pojawi się dzięki temu krok nr 11, to i tak nie nastąpi wyjście z tej drugiej procedury współbieżnej, ponieważ pierwsza procedura współbieżna się nie zakończyła (Czytelnik zapewne wie dlaczego), czyli i nie zaistnieje nigdy krok nr 10. Zatem błąd niedostępny spowodował zatrzymanie realizacji procesu przemysłowego na nawierceniu otworu numer trzy.
Należy nadmienić, że tworząc algorytmy SFC projektant powinien zawsze zadbać o poprawną ich semantykę zgodnie z normą EN 61131-3. Szczególnie jest to istotne w przypadku tworzenia algorytmu „na papierze”, nie zaś odpowiednim środowisku narzędziowym do tego celu, gdzie ewentualne błędy struktury algorytmu mogą być „zauważone” i z „podpowiedzią” wyeliminowane.