Skip to main content

Kontynuujmy pracę z programowaniem układu rozruchowego dla podajnika w języku LAD i SCL.

Lista zmiennych:

Nazwa zmiennejTypAdres
xPrzyciskStart Bool Bool%I0.0
xPrzyciskStopBool%I0.1
xPodajnikUruchomBool%Q0.0
xSensorBool%I0.2

Scenariusz nr 4: Układ rozruchu po wciśnięciu Start i zatrzymania przyciskiem Stop😀 – z przerzutnikiem

Wciśnięcie przycisku Start uruchamia podajnik. Po puszczeniu przycisku podajnik zatrzymuje się.

Jak to napisać w języku SCL?🤔

W języku SCL musisz wykorzystać instrukcję wywołania warunkowego IF… ELSEIF…

IF NOT "xPrzyciskStop" THEN
    "xPodajnikUruchom" := 0;
ELSIF "xPrzyciskStart" THEN
    "xPodajnikUruchom" := 1;
END_IF;

Scenariusz nr 5: Dojazd na czujnik😀

Wciśnięcie przycisku Start uruchamia podajnik. Po puszczeniu przycisku podajnik zatrzymuje się. Dodatkowo, przecięcie wiązki czujnika, zatrzymuje podajnik. Zwróć uwagę, że sygnał z czujnika jest typu NC – tzn, że gdy wiązka nie jest przecięta sterownik na wejściu widzi wartość TRUE, stan wysoki.

Jak to napisać w języku SCL?🤔

W języku SCL do instrukcji wywołania warunkowego IF… ELSEIF… musisz dodać kolejny warunek logiczny dotyczący zmiennej czujnika – „xSensor”.

IF NOT "xPrzyciskStop"
   OR NOT "xSensor"
THEN
    "xPodajnikUruchom" := 0;
ELSIF "xPrzyciskStart" THEN
    "xPodajnikUruchom" := 1;
END_IF;

Scenariusz nr 6: Dojazd za czujnik😀

Aby kontener znalazł się za czujnikiem, konieczne będzie wykrycie zbocza narastającego sygnału z czujnika (przypominam, że jest to sygnał NC). W tym celu zastosujemy w języku LAD instrukcję triggera.

Jak to napisać w języku SCL?🤔

W języku SCL musisz osobno wywołać blok funkcyjny triggera w linijce nr 1. W lini nr 4 odnosimy się do wyjścia Q z tego bloku funkcyjnego.

"R_TRIG_DB"(CLK:="xSensor");

IF NOT "xPrzyciskStop"
    OR "R_TRIG_DB".Q
THEN
    "xPodajnikUruchom" := 0;
ELSIF "xPrzyciskStart" THEN
    "xPodajnikUruchom" := 1;
END_IF;

Co dalej?

Przejdź do części nr 3, w której rozwiniemy funkcjonalność naszego programu. Pokażę Ci nowe instrukcje w języku SCL!

  1. Część #1: Operator przypisania, operacje bool’owskie – programowanie PLC w języku SCL na przykładach
  2. Część #2: Przerzutniki w SCL – programowanie PLC w języku SCL na przykładach
  3. Część #3: Triggery, timery – programowanie PLC w języku SCL na przykładach

O autorze

Kamil Biedulski

Author Kamil Biedulski

Automatyk i programista, CTO w ControlByte

Więcej postów tego autora Kamil Biedulski