Języki graficzne: Język schematów drabinkowych LD Język schematów blokowych FBD CPU obsługuje następujące typy bloków kodu, które umożliwiają stworzenie wydajnej struktury programu użytkownika: - Bloki organizacyjne (OB) - definiujące strukturę programu. Domyślny blok cykliczny OB1; - Funkcje (FC) i bloki funkcji (FB) - zawierają kod programu odpowiadający za wykonanie określonego zadania lub kombinacje parametrów; - Bloki danych (DB) - przechowują dane, które mogą być używane przez wszystkie bloki programu. 1
S7-1200 TIA Portal STEP 7 umożliwia korzystanie z następujących języków programowania: - LAD (IEC 61131-3: LD) - oparty na schematach obwodów, - FBD oparty na graficznych symbolach. Podczas tworzenia bloku kodu zostaje wybrany język programowania, który będzie używany przez ten blok. Program użytkownika może korzystać z kodu stworzonego w dowolnym lub we wszystkich językach programowania. W oparciu o wymagania aplikacji użytkownik podczas tworzenia swojego programu może wybrać dla niego strukturę: - liniową - program liniowy wykonuje wszystkie instrukcje zadania automatyzacji po kolei jedną po drugiej; zwykle, program liniowy umieszcza wszystkie instrukcje w OB przeznaczonym do cyklicznego wykonywania Main [OB1]; - modułową - program modułowy wywołuje określone bloki kodu (OB, FB lub FC) do wykonania specyficznych zadań. Bloki organizacyjne wprowadzają w programie pewną strukturę. Służą, jako interfejs między systemem operacyjnym i programem użytkownika. OB są sterowane zdarzeniami. 2
Rys. 7.1. Typy bloków organizacyjnych 3
Cykl programowy (scan cycle) S7-1200 TIA Portal Zakładka Online&diagnostics: - wyświetlanie i zmiana trybu pracy CPU zakładka CPU operator panel - wyświetlanie czasu cyklu - wyświetlenie informacji diagnostycznych CPU 4
Język schematów drabinkowych LD umożliwia realizację zadania sterowania za pomocą standaryzowanych symboli graficznych. Symbole te umieszcza się w gałęziach obwodów w sposób podobny do szczebli w schematach drabinkowych dla przekaźnikowych układów sterowania. Obwód (network) jest definiowany jako zbiór wzajemnie połączonych elementów graficznych. Z obwodem może być skojarzona etykieta (label) posiadająca postać nazwy lub liczby dziesiętnej bez znaku zakończonych dwukropkiem. Obwód LD ograniczony jest z lewej i prawej strony przez szyny prądowe (prawa szyna może pozostawać w domyśle). Szyny te nie są elementami obwodu. Stan lewej szyny jest zawsze uważany za ON, (stanu prawej szyny nie definiuje się). 5
S7-1200 TIA Portal Wygląd edytora języka LD w Step 7 - Okno edytora bloku programu Main (OB1) 6
W języku LD mogą także występować funkcje i bloki funkcyjne, z następującymi wyjątkami: - parametry aktualne funkcji mogą być opcjonalnie pokazane przez wypisanie odpowiednich danych lub zmiennych na zewnątrz bloku, w sąsiedztwie nazw parametrów formalnych umieszczonych wewnątrz bloku; - każdy blok powinien zawierać przynajmniej jedno wejście i wyjście logiczne, by umożliwić przepływ prądu przez blok 7
Styk - jest elementem przekazującym do połączenia poziomego po prawej stronie styku stan będący wynikiem mnożenia logicznego AND stanu linii łączącej po lewej stronie styku oraz wartości przypisanej mu logicznej zmiennej wejściowej, wyjściowej lub pamięciowej. Styk nie modyfikuje wartości skojarzonej z nim zmiennej. Cewka - przekazuje stan połączeń z lewej strony na prawą bez zmian, powodując jednocześnie zapamiętanie stanu połączenia po swej lewej stronie przez przypisaną jej zmienną logiczną Cewka modyfikuje wartość zmiennej. 8
Elementy obwodu mogą być łączone: poziomo przekazuje stan elementu znajdującego się bezpośrednio po stronie lewej do elementu po stronie prawej, pionowo przedstawia się jako linię pionową przecinającą się z jedną lub więcej liniami poziomymi na każdym końcu. Stan połączenia pionowego odpowiada sumie logicznej OR dla stanów połączeń poziomych występujących po lewej stronie połączenia pionowego. Stan połączenia pionowego powinien być przekazany wszystkim dołączonym po prawej stronie połączeniom poziomym, natomiast nie może być przekazywany do jakiegokolwiek elementu po lewej stronie połączenia pionowego. 9
Szczebel drabiny logicznej (obwód, NETWORK) musi posiadać odpowiedni format i składnię. Oto kilka najważniejszych zasad: Jeżeli szczebel zawiera przekaźnik (cewkę) uaktywniany zboczem sygnału sterującego, to musi być on jedynym przekaźnikiem w tym szczeblu. W jednym szczeblu może wystąpić tylko jedna funkcja skoku lub ominięcia. Musi być ona ostatnią instrukcją szczebla, a szczebel ten nie może zawierać przekaźników. Szczebel musi zawierać przynajmniej jeden styk przed wystąpieniem przekaźnika, funkcji skoku, funkcji ominięcia, bloku funkcyjnego lub połączenia pionowego. Niedozwolone jest zwieranie ostatniego elementu szczebla bezpośredniego z szyną sygnałową. W ogólnym przypadku wykonanie zadań elementów szczebla programu sterującego następuje od lewej do prawej strony. 10
Nieprawidłowe połączenie styku I0.5 (połączenie z wnętrzem odgałęzienia) Nieprawidłowe połączenie styku I0.5 (początek wewnątrz innego rozgałęzienia) 11
Znaczenie EN i ENO dla instrukcji ramkowych: Dla niektórych instrukcji ramkowych stosuje się parametr power flow zasilanie (EN i ENO). Te parametry są związane z podawaniem zasilania i określają czy instrukcja jest wykonywana podczas cyklu programu: - EN - instrukcja ramkowa ma być wykonana, to na jej wejściu musi wystąpić zasilanie (EN=1); - ENO - jeżeli wejście EN bloku LAD jest bezpośrednio połączone do szyny zasilania z lewej strony, to wtedy instrukcja ramkowa zawsze będzie wykonana. Jeżeli na wejściu EN bloku jest zasilanie i funkcje bloku są wykonane bez błędów, to ENO przekazuje zasilanie (ENO=1) do następnego elementu. Jeżeli zostanie wykryty błąd podczas wykonywania instrukcji z bloku, to przekazanie zasilania jest zatrzymywane (ENO=0) na tej ramce z instrukcjami, w której został wygenerowany błąd. 12
Wykonanie programu polega na przepływie prądu, analogicznie jak w schemacie drabinkowym dla systemu przekaźników elektromechanicznych. Przepływ prądu następuje z lewej strony do prawej, przy czym obowiązują następujące zasady: wartość żadnego elementu obwodu nie powinna być wyznaczana dopóki nie wyznaczono wartości wszystkich jego wejść, wyznaczanie wartości elementu obwodu nie może być zakończone dopóki nie wyznaczono wartości dla wszystkich jego wyjść, wykonywanie programu dla całego obwodu nie jest zakończone dopóki nie wyznaczono wartości wyjść dla wszystkich elementów tego obwodu, w ramach elementu oprogramowania napisanego w języku LD kolejne obwody powinny być wyznaczane w kolejności z góry na dół, tak jak pojawiają się w schemacie drabinkowym, z wyjątkiem gdy kolejność ta ulega zmianie z powodu wprowadzenia elementów kontrolnych. 13
Funkcje (FC) - jest to szybko uruchamiany blok kodu, który zazwyczaj wykonuje określone działania na zbiorze wartości wejściowych. FC przechowuje wyniki operacji w komórkach pamięci. FC stosuje się do wykonywania następujących zadań: - standardowych i powtarzalnych działań, jak na przykład obliczeń arytmetycznych, - funkcji technologicznych, takich jak indywidualne sterowanie za pomocą sieci działań logicznych. FC może być wywoływana wielokrotnie w różnych miejscach programu. Ta możliwość wielokrotnego użycia FC upraszcza programowanie często występujących zadań. Funkcje umieszczone w głównym bloku organizacyjnym OB1 tworzą program podzielony na podfunkcje. Tworzenie programu liniowego z podziałem na funkcje daje następujące korzyści: - struktura programu jest przejrzysta - możliwe jest testowanie poszczególnych sekcji programu - zmiany są łatwiejsze i szybsze do wykonania. 14
S7-1200 TIA Portal Program podzielony na podfunkcje wywoływane jednorazowo 15
Blok funkcyjny FB - jest podprogramem wykonywanym wtedy, kiedy jest wywołany z innego bloku kodu (OB, FB lub FC). FB ma zmienną pamięć zlokalizowaną w bloku danych DB lub instancji DB. CPU wykonuje program zawarty w FB i zapamiętuje parametry bloku oraz statyczne dane lokalne w danej instancji DB. Gdy wykonanie FB jest zakończone, wtedy CPU powraca do bloku kodu, z którego FB został wywołany. Instancja DB zachowuje wartości wpisane podczas tego wykonania FB. Bloki danych DB są umieszczane w programie użytkownika po to, by przechowywały dane dla bloków kodu: - Globalny DB - przechowuje dane dla bloków kodu programu użytkownika. Dostęp do danych zawartych w globalnym DB ma dowolny OB, FB i FC; - Instance DB - zapewnia blok pamięci skojarzonej z wywołaniem FB i przechowuje dane po zakończeniu działania FB. Bloki DB pozwalają na użycie tego samego FB do sterowania wielu urządzeń. 16
Schemat funkcjonalny bramy typu szlaban Stacja operatorska 17
Sformułowanie zadania sterującego Sterowanie bramą może odbywać się w 2 trybach pracy: automatycznie lub ręcznie. Do podnoszenia i zamykania szlabanu służy silnik zasilany przez styczniki K1 i K2. Krańcówki S13 i S14 sygnalizują zamknięcie lub otwarcie zapory. Brama jest zabezpieczona przed opuszczeniem (podniesieniem) w przypadku obecności czegokolwiek w strefie bramy (czujnik S7). Przyciski sterowania pracą bramy: - otwórz (S3) - zamknij (S4) - blokada (S5) unieruchomienie bramy (zapora w pozycji zamkniętej) Stan zapory sygnalizuje lampka kontrolna: - zapora opuszczona światło czerwone - ruch zapory mrugające światło czerwone w trybie 0.5s ON/0.5s OFF Opis działania układu praca automatyczna (S1 ON) krótkie naciśnięcie przycisku S3 powoduje otwarcie bramy (załączenie przekaźnika K2, aż do zadziałania krańcówki S14), naciśnięcie przycisku S4 powoduje zamkniecie bramy (załączenie przekaźnika K1, aż do zadziałania krańcówki S13). W każdej chwili akcja może być zatrzymana po uaktywnieniu czujnika S7. Brama może być zablokowana na stałe przy opuszczonej zaporze przycisk blokada praca ręczna (S2-ON) zapora podnosi się (przekaźnik K2 jest załączony, aż do zadziałania krańcówki S14), jeżeli na stałe jest wciśnięty przycisk S3, zaś opuszcza się (przekaźnik K1 jest załączony aż do zadziałania krańcówki S13, gdy na stałe jest wciśnięty przycisk S4. Pozostałe przyciski działają podobnie jak w trybie automat. 18
1 Brama zamknięta zablokowana Czer_stop 3,5 not Blok_zal Stop 2 Brama zamknięta Czer_stop 6 Przeszkoda Czer_stop (off/on) Otwórz 3 Otwieranie S_otw, Czer_stop (off/on) 3 not Stop i Otwórz 5 not Stop i Zamknij not Kon_otw 4 Brama otwarta Zamknij 5 Zamykanie S_otw, Czer_stop (off/on) 2 not Kon_zam 1 Blok_zal 19
20
21
22
Język schematów blokowych FBD należy do grupy języków graficznych i polega na graficznym tworzeniu programu PLC przez użycie gotowych bloczków, obrazujących funkcje logiczne wykonywane przez program. Realizacja programu w języku FBD opiera się na przepływie sygnału (analogicznie do przepływu sygnału pomiędzy elementami systemu przetwarzania sygnału) z wyjścia (z prawej strony) funkcji lub bloku funkcyjnego do przyłączonego wejścia (z lewej strony) następnej funkcji lub bloku funkcyjnego. Obwód (network) stanowi zbiór wzajemnie połączonych za pomocą linii elementów języka graficznego. w obwodzie mogą występować sprzężenia zwrotne, gdy wyjście funkcji lub bloku funkcyjnego jest wprowadzone na wejście funkcji lub bloku funkcyjnego poprzedzającego je w obwodzie 23
Przykłady sprzężenia zwrotnego: a) pętla jawna, b) pętla ukryta S7-1200 TIA Portal Język FBD jest graficznym językiem programowania. Reprezentacja logiki jest w nim oparta na graficznych symbolach. W celu stworzenia logiki złożonych operacji wystarczy połączyć symbole logiczne równoległymi gałęziami. Działania arytmetyczne i inne złożone funkcje mogą być reprezentowane bezpośrednio razem z symbolami logicznymi. STEP 7 nie ma ograniczenia, co do ilości instrukcji (wierszy i kolumn) w sieci programowanej w FBD. 24
S7-1200 TIA Portal Edycja bloku FB w języku FBD 25
dla interpretacji sygnału zanegowanego należy posłużyć się znakiem negacji kółkiem Rys. 7.11. Negacja kolejność wykonywania obwodów może być zmieniona w przypadku użycia elementów sterujących wykonaniem programu wyjścia bloków nie powinny być łączone razem, w szczególności realizacja OR lub AND, należy jawnie użyć bloku funkcji logicznej 26
Rys. 7.12. Postać graficzna instrukcji FBD Przy wykonywaniu programu obowiązują następujące zasady: - wartość żadnego elementu obwodu nie jest wyznaczana, dopóki nie wyznaczono wartości wszystkich jego wejść, - wyznaczanie wartości elementu obwodu nie jest zakończone, dopóki nie wyznaczono wartości dla wszystkich jego wyjść, - wykonywanie programu dla całego obwodu nie jest zakończone, dopóki nie wyznaczono wartości wyjść dla wszystkich elementów tego obwodu, - w ramach elementu organizacyjnego oprogramowania napisanego w języku FBD wykonywanie programu dla obwodu powinno być zakończone, zanim rozpocznie się wykonywanie następnego obwodu, w którym wykorzystywane są wyjścia obwodu poprzedniego. 27
28
29
30