Język schematów blokowych FBD
Rozwiązanie zadania automatyzacji w formie schematu układu logicznego zbudowanego z funktorów logicznych nosi nazwę schematu funkcyjnego (ang.: FBD Function Block Diagram). Na rys. 4.3.7. pokazano program sterujący napisany w języku FBD. Jest to ten sam program w wersji STL i LAD pokazany na rys. 4.3.6.
Rys. 4.3.7. Program sterujący zapisany w języku FBD
Wybór języka, w którym programista będzie pisał program sterujący zależy od niego samego. Należy podkreślić, że program tworzony w formie schematu drabinkowego LAD lub schematu funkcyjnego FBD jest natychmiast przetwarzany przez programator na listę instrukcji STL.
Budowa programu
Każde zadanie związane z automatyzacją traktowane jest jako projekt. Pierwszym zadaniem jest wybór sprzętu, jego kompletacja i konfiguracja. W przypadku sterownika w wykonaniu kompaktowym wybieramy sterownik odpowiedni do projektu; w przypadku sterownika o budowie modułowej należy wybrać zasilacz, moduł jednostki centralnej oraz moduły dyskretnych wejść i wyjść, moduły wejść/wyjść analogowych itd. składające się na sterownik PLC (rys. 4.3.8). Skonfigurowanie sprzętu zamyka etap tworzenia struktury sprzętowej układu sterowania. Kolejnym etapem jest wybranie sposobu pisania programu użytkowego. Korzystne dla użytkownika jest adresowanie symboliczne zmiennych (rys. 4.3.9), gdyż łatwiej jest rozpoznać konkretne nazwy niż podobne do siebie ciągi cyfr adresowania absolutnego, np. I 0.0 oraz I 0.4.
Rys. 4.3.8. Przykład konfigurowania sprzętu sterownika o budowie modułowej
Rys. 4.3.9. Tworzenie nazw symbolicznych – przykład
Zanim przejdziemy do programowania podstawowych funkcji logicznych tytułem wprowadzenia w programowanie zostanie podane kilka prostych przykładów. Przyjmujemy, że jeżeli element układu jest w stanie pasywnym (przycisk jest nie wciśnięty, lampka nie świeci, stycznik nie działa itp.), to przypisujemy mu wartość logiczną „0”, natomiast jeżeli element układu jest w stanie aktywnym (przycisk jest wciśnięty, lampka świeci itp.) to przypisujemy mu wartość logiczną „1”.
Przykład 1
Lampka sygnalizacyjna H1 powinna zaświecić, jeżeli przycisk zwierny S1 zostanie wciśnięty i świecić tak długo, jak długo przycisk ten jest wciśnięty.
Napiszemy listę przyporządkowującą (adresowanie symboliczne).
Przycisk zwierny S1 – I0.0
Lampka sygnalizacyjna H1 –Q0.0
Schemat sterowania stykowego pokazuje rys. 4.3.10, a schemat połączeń zacisków sterownika rys. 4.3.11.
Jeżeli S1= 0 (przycisk S1 jest nie wciśnięty), I0.0 = 0 (brak sygnału na wejściu I0.0), to Q0.0 = 0 i lampka H1 nie świeci (H1=0); jeżeli S1 =1 (przycisk S1 jest wciśnięty) na wejściu I0.0 pojawia się 1, to I0.0 =1, a w następstwie tego Q0.0 = 1; gdy wyjście sterownika jest ustawione na „1” zapala się lampka H1 (H1 = 1).
Przykład 2
Lampka sygnalizacyjna powinna świecić przy nie wciśniętym przycisku zwiernym S1. Napiszemy listę przyporządkowującą (adresowanie symboliczne).
Przycisk zwierny S1 – I0.0
Lampka sygnalizacyjna H1 – Q0.0
Schemat sterowania stycznikowego pokazuje rys. 4.3.13, a schemat połączeń zacisków sterownika rys. 4.3.14.
Program sterujący pokazano na rys. 4.3.15.
Rys. 4.3.15. Schemat LAD, STL i FBD
Jeżeli S1= 0 (przycisk S1 jest nie wciśnięty), I0.0 = 0 (brak sygnału na wejściu I0.0), to Q0.0 = 0 i lampka H1 świeci (H1=1); jeżeli S1 =1 (przycisk S1 jest wciśnięty) na wejściu I0.0 pojawia się 1, to I0.0 =1, a w następstwie tego Q0.0 = 1; gdy wyjście sterownika jest ustawione na „1” lampka H1 gaśnie (H1 = 0).
Przykład 3
Lampka sygnalizacyjna H1 powinna świecić przy nie wciśniętym przycisku rozwiernym.
Napiszemy listę przyporządkowującą (adresowanie symboliczne).
Przycisk rozwierny S1 – I0.0
Lampka sygnalizacyjna H1 – Q0.0
Schemat sterowania stykowego pokazuje rys. 4.3.16, a schemat połączeń zacisków sterownika rys. 4.3.17.
Jeżeli S1= 0 (przycisk S1 jest nie wciśnięty), I0.0 = 1 (jest sygnał na wejściu I0.0), to Q0.0 = 1 i lampka H1 świeci (H1=1); jeżeli S1 =1 (przycisk S1 jest wciśnięty) na wejściu I0.0 pojawia się 0, to I0.0 =0, a w następstwie tego Q0.0 = 0; gdy wyjście sterownika jest ustawione na „0” lampka H1 gaśnie (H1 = 0).