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](https://www.sabur.com.pl/wp-content/uploads/faq1_polozenie_biblioteki_LadderDiagram_w_oknie_bibliotek_edytora_fupla.png)
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](https://www.sabur.com.pl/wp-content/uploads/faq2_zawartosc_biblioteki_Ladder_Diagram.png)
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](https://www.sabur.com.pl/wp-content/uploads/faq3_polozenie_paska_narzedzi_Ladder_Diagram_w_edytorze_Fupla.png)
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 |
![]() |
COIL (Cewka) – stan na wejściu elementu przekazywany jest na wyjście oraz do zmiennej przypisanej do bloku |
![]() |
COIL CLOSED (Cewka zamknięta) – na wyjście elementu oraz do zmiennej przypisanej do bloku przekazywana jest negacja sygnału wejściowego |
![]() |
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 |
![]() |
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 |
![]() |
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 |
![]() |
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 |
![]() |
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 |
![]() |
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 |
![]() |
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 |
![]() |
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](https://www.sabur.com.pl/wp-content/uploads/faq4_program_w_jezyku_drabinkowym_realizujacy_zalozenia_pierwszego_przykladu.png)
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](https://www.sabur.com.pl/wp-content/uploads/faq5_program_w_jezyku_drabinkowym_realizujacy_zalozenia_drugiego_przykladu.png)
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](https://www.sabur.com.pl/wp-content/uploads/faq6_program_w_jezyku_drabinkowym_realizujacy_zalozenia_trzeciego_przykladu.png)
Program w języku drabinkowym realizujący założenia trzeciego przykładu