< Wróć do bazy wiedzy

Jakie możliwości programowania drabinkowego daje Fupla?

 

Edytor Fupla umożliwia użytkownikowi programowanie sterowników w języku drabinkowym. Do tego celu została przygotowana biblioteka bloków funkcyjnych edytora Fupla  (Ladder Diagram) znajdująca się w rodzinie Binary:

Położenie biblioteki LadderDiagram w oknie bibliotek Edytora Fupla

Położenie biblioteki LadderDiagram w oknie bibliotek Edytora Fupla

Biblioteka Ladder Diagram zawiera podstawowe elementy służące do programowania sterowników w języku drabinkowym:

Zawartość biblioteki Ladder Diagram

Zawartość biblioteki Ladder Diagram

Dostęp do elementów biblioteki Ladder Diagram jest także możliwy z paska zadań edytora Fupla. W celu wyświetlenia paska Ladder Diagram (domyślnie jest on ukryty) należy z menu Widok (View) wybrać opcję Paski narzędzi (Toolbars), a następnie Ladder Diagram. Powoduje to pojawienie się paska elementów nad obszarem roboczym edytora:

Położenie paska narzędzi Ladder Diagram w Edytorze Fupla

Położenie paska narzędzi Ladder Diagram w Edytorze Fupla

Z komponentów biblioteki Ladder Diagram korzysta się w taki sam sposób jak z elementów innych bibliotek. Wybieramy interesujący nas element i przeciągamy go na obszar roboczy projektu. Analogicznie wykonuje się także łączenia poszczególnych elementów. Podczas tworzenia projektów z wykorzystaniem biblioteki Ladder Diagram istnieje także możliwość używania bloków z innych sektorów (np. liczniki, timery). Poniżej przedstawiono opis elementów wchodzących w skład biblioteki Ladder Diagram:

 BIBLIOTEKA LADDER DIAGRAM
 Element Opis elementu 
 Programowanie drabinkowe: Cewka

 COIL (Cewka)

– stan na wejściu elementu przekazywany jest na wyjście oraz do zmiennej przypisanej do bloku

 Programowanie drabinkowe: Cewka Zamknięta

 COIL CLOSED (Cewka zamknięta)

– na wyjście elementu oraz do zmiennej przypisanej do bloku przekazywana jest negacja sygnału wejściowego

 Programowanie drabinkowe: Cewka ze zboczem opadającym  COIL NEGATIVE (Cewka ze zboczem opadającym)

– do zmiennej przypisanej do bloku przekazywany jest stan wysoki (1) w jednym cyklu, gdy na wejściu pojawi się zbocze opadające (przełączenie sygnału ze stanu 1 na 0)

– na wyjściu elementu występuje zawsze taki sam stan jak na wejściu

 Programowanie drabinkowe: Cewka ze zboczem narastającym  COIL POSITIVE (Cewka ze zboczem narastającym)

– do zmiennej przypisanej do bloku przekazywany jest stan wysoki (1) w jednym cyklu, gdy na wejściu pojawi się zbocze narastające (przełączenie sygnału ze stanu 0 na 1)

– na wyjściu elementu występuje zawsze taki sam stan jak na wejściu

 Programowanie drabinkowe: Cewka Reset  COIL RESET (Cewka Reset)

do zmiennej przypisanej do bloku przekazywany jest stan niski (0),  gdy na wejściu pojawi się stan wysoki (1)

– stan zmiennej przypisanej do bloku nie zmieni się, gdy na wejściu pojawi się stan niski

– na wyjściu elementu występuje zawsze taki sam stan jak na wejściu

 Programowanie drabinkowe: Cewka Set  COIL SET (Cewka Set)

do zmiennej przypisanej do bloku przekazywany jest stan wysoki (1),  gdy na wejściu pojawi się stan wysoki (1)

– stan zmiennej przypisanej do bloku nie zmieni się, gdy na wejściu pojawi się stan niski

– na wyjściu elementu występuje zawsze taki sam stan jak na wejściu

 Programowanie drabinkowe: Styk otwarty  CONTACT (Styk otwarty)

– na wyjściu elementu pojawi się stan wysoki gdy na wejściu pojawi się stan 1 oraz gdy zmienna przypisana do bloku ma stan 1

 Programowanie drabinkowe: Styk zamknięty  CONTACT CLOSED (Styk zamknięty)
– na wyjściu elementu pojawi się stan wysoki gdy na wejściu pojawi się stan 1 oraz gdy zmienna przypisana do bloku ma stan 0
 Programowanie drabinkowe: Styk ze zboczem opadającym  CONTACT NEGATIVE (Styk ze zboczem opadającym)
– na wyjściu elementu w jednym cyklu pojawi się stan wysoki gdy na wejściu pojawi się stan 1 oraz gdy na zmiennej przypisanej do bloku wystąpi przełączenie sygnału ze stanu 1 na 0
 Programowanie drabinkowe: Styk ze zboczem narastającym  CONTACT POSITIVE (Styk ze zboczem narastającym)
– na wyjściu elementu w jednym cyklu pojawi się stan wysoki gdy na wejściu pojawi się stan 1 oraz gdy na zmiennej przypisanej do bloku wystąpi przełączenie sygnału ze stanu 0 na 1

 

W celu zobrazowania działania poszczególnych elementów wchodzących w skład biblioteki Ladder Diagram warto posłużyć się przykładami programów.

 

Przykład 1

Celem pierwszego przykładowego programu jest stworzenie algorytmu, który sterowałby stanem zapalenia żarówki. Podstawowe założenia:

  • Załączenie tylko jednego przełącznika powoduje zapalenie żarówki;
  • Załączenie lub wyłączenie dwóch przełączników powoduje zgaszenie żarówki;

Przykładowy program w języku drabinkowym może wyglądać następująco:

Program w języku drabinkowym realizujący założenia pierwszego przykładu

Program w języku drabinkowym realizujący założenia pierwszego przykładu

 

Przykład 2

Drugi z programów jest bardziej rozbudowany i stanowi przykład algorytmu odpowiedzialnego za sterowanie bramą wjazdową. Podstawowe założenia:

  • Szlaban bramy jest podnoszony i opuszczany przez silniki zasilane stycznikami K1_otw oraz K2_zam;
  • Przewidziano istnienie styków krańcowych (otwarty, zamkniety), wykrywających otwarcie lub zamknięcie szlabanu;
  • Przewidziano istnienie czujnika (stop) odpowiedzialnego za zatrzymanie zamykania szlabanu, jeżeli wykryta zostanie obecność przedmiotu w strefie bramy;
  • Brama może być sterowana za pomocą przycisków: Otwórz lub Zamknij;
  • Przewidziano istnienie blokady, która unieruchamia bramę w pozycji zamkniętej (po naciśnięciu przycisku blokada);

Program wykonany w języku drabinkowym realizujący założenia może więc wyglądać następująco:

Program w języku drabinkowym realizujący założenia drugiego przykładu

Program w języku drabinkowym realizujący założenia drugiego przykładu

 

Przykład 3

Ostatni program realizuje algorytm sterowania poziomem wody w zbiorniku. Założenia:

  • Praca układu (wł. / wył.) może być sterowana poprzez przyciski Start / Stop;
  • Przewidziano istnienie dwóch czujników: poziomu minimalnego i maksymalnego cieczy w zbiorniku (l_min, l_max);
  • Zawór zasilający zbiornik sterowany jest za pomocą sygnału zawor;
  • Zadanie sterowania polega takim regulowaniu dopływu, by nie dopuścić do przekroczenia poziomów: minimalnego i maksymalnego w zbiorniku;

Program wykonany w języku drabinkowym realizujący założenia może wyglądać następująco:

Program w języku drabinkowym realizujący założenia trzeciego przykładu

Program w języku drabinkowym realizujący założenia trzeciego przykładu