CASE: pojęcie PLC wyjaśnione prostym językiem
Liczby i daneJak pilot do telewizora: wciśnij 1, a dostaniesz kanał 1, wciśnij 3, a dostaniesz kanał 3. CASE patrzy na jedną liczbę i wykonuje tylko tę część kodu, która do niej pasuje.
Wybór jednej sekcji kodu na podstawie wartości, np. numeru stanu. W tym wywołaniu CASE wykonuje się tylko pasująca sekcja.
CASE na prawdziwej maszynie
CASE wybiera jedną sekcję kodu tekstowego do wykonania na podstawie liczby. Zapisuje się go jako CASE State OF, potem ponumerowane gałęzie, a na końcu END_CASE. Wykonuje się tylko pasująca gałąź.
To zwykły sposób zapisu maszyny stanów w SCL lub Structured Text, bo trzyma logikę każdego stanu w jednym miejscu. Łańcuch IF i ELSIF może zrobić to samo, ale z każdym nowym stanem trudniej go czytać.
Gałąź może wymieniać kilka liczb, więc dwa stany mogą dzielić ten sam kod. Gałąź ELSE może wyłapać wartość, której nie oczekuje żadna gałąź.
CASE: przykład z objaśnieniem
Partia zapisuje swoje położenie w zmiennej State. Gdy State ma wartość 10, CASE wykonuje gałąź partii. Gdy stan przejdzie na 30, wykonuje się tylko gałąź wstrzymania, a ta utrzymuje urządzenia zatrzymane.
CASE: częsty błąd
Zapisywanie wyjścia tylko w jednej gałęzi. Gałąź, która się nie wykonuje, zostawia swoje zmienne bez zmian. Polecenie ustawione w jednym stanie pozostaje więc włączone w następnym, chyba że coś je skasuje.
Nadal masz wątpliwości? Zapytaj w Szatnia.