AiS Programowalne układy przemysłowe automatyki Cz.2 (wybrane slajdy) 1 Programowalny sterownik logiczny PLC WEJŚCIA styki mechaniczne, przełączniki zbliżeniowe STEROWNIK Program sterujący wprowadzony do pamięci WYJŚCIA silniki, solenoidy 2 1
PLC Siemens S5 95 3 PLC GE Fanuc VersaMax 4 2
Siemens S7-200 5 PLC Siemens S7 1200 6 3
S7 200 - PC 7 Ustawianie stanu wyjść cyfrowych w trybie STOP 8 4
Filtrowanie wejść cyfrowych 9 Specyfikacja identyfikatorów, którymi możemy się posługiwać przy tworzeniu programu sterującego Identyfikator - oznaczenie nazwa I - zmienna wejściowa Q - zmienna wyjściowa M - wewnętrzna zmienna dyskretna SM - wewnętrzna zmienna specjalna (zmienna systemowa) V - zmienne pamięciowe T - timer C - licznik AI - zmienna wejściowa analogowa AQ - zmienna wyjściowa analogowa AC - akumulator HC - szybki licznik K stała 10 5
Obraz pamięci wejść i wyjść Obraz wejść procesu I S7-200 próbkuje fizyczne wejścia na początku każdego cyklu programu i zapisuje je do rejestru obrazu wejściowego procesu. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit I[adres bajtu].[adres bitu] I0.1 Bajt, słowo lub podwójne słowo I[rozmiar][adres bazowy] IB4 Obraz wyjść procesu Q Na końcu cyklu programu, S7-200 kopiuje wartości zapisane w rejestrze obszaru wyjść procesu do wyjść fizycznych. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit Q[adres bajtu].[adres bitu] Q1.1 Bajt, słowo lub podwójne słowo Q[rozmiar][adres bazowy] QB5 11 Obszary pamięci danych Obszar pamięci danych V Pamięć typu V może by użyta do przechowywania pośrednich wyników operacji programu wykonywanych przez CPU. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit V[adres bajtu].[adres bitu] V10.2 Bajt, słowo lub podwójne słowo V[rozmiar][adres bazowy] VW100 Obszar pamięci o dostępie bitowym M Pamięć typu M może by użyta jako obszar znaczników do zapamiętania stanów binarnych wyników operacji logicznych. Obszar ten jest dostępny poprzez adresowanie bitów, bajtów, słów oraz podwójnych słów. Bit M[adres bajtu].[adres bitu] M26.7 Bajt, słowo lub podwójne słowo M[rozmiar][adres bazowy] MD20 12 6
Akumulatory Akumulatory są uniwersalnymi rejestrami odczytu i zapisu, które mogą by użyte podobnie jak pamięć. Przykładowo, akumulatorów można użyć do przekazania parametrów do i z podprogramu oraz zachowania pośrednich wartości użytych w obliczeniach. S7-200 posiada 32-bitowe akumulatory (AC0, AC1, AC2 i AC3). Dane w akumulatorach mogą by dostępne jako bajty, słowa i podwójne słowa. Rozmiar dostępnych danych jest zależny od instrukcji użytej przy pobieraniu danych z akumulatora 13 Dostęp do danych bitowych S7-200 zachowuje dane w różnych obszarach pamięci, które maj unikalne adresy. Można bezpośrednio odwoływać się do adresu pamięci, który chcemy użyć. Pozwala to programowi na bezpośredni dostęp do danych. Aby mieć dostęp do bitu w obszarze pamięci, należy podać adres, który zawiera identyfikator obszaru pamięci, adres bajtu i numer bitu. Rysunek pokazuje przykład dostępu do bitu (który zwany jest równie adresowaniem bajt.bit ). 14 7
Zasady programowania w języku drabinkowym PLC Obwody programowanego układu są rozmieszczone w postaci poziomych linii zawierających wejścia (styki) oraz wyjścia (cewki). Wejścia zawsze poprzedzają wyjścia i mogą mieć formę styków normalnie otwartych lub styków normalnie zamkniętych. W każdej linii programu musi być co najmniej jedno wyjście, odpowiadające dowolnemu urządzeniu sterowanemu przez PLC. Wejścia i wyjścia posiadają przypisane symbole tworząc instrukcje schematu drabinkowego. Język drabinkowy zawiera także takie elementy jak liczniki, timery oraz funkcje arytmetyczne służące do wykonywania złożonych sekwencji programowych. 15 Schemat drabinkowy PLC 24 V Wejścia Wyjścia 0 V 1 linia programu 2 linia programu 3 linia programu 4 linia programu styk normalnie otwarty styk normalnie zamknięty 16 8
Interpretacja schematu drabinkowego Dwie linie pionowe nazywane są liniami zbiorczymi i reprezentują połączenie zasilania, w tym wypadku 24V i 0V. Każda z poziomych linii jest linią programu. Wyjście umieszczone na linii programu jest włączone jeżeli styki doprowadzają zasilanie (24V) do cewki. Podczas programowania w języku drabinkowym należy zwrócić uwagę na fakt, iż program jest wykonywany przez PLC począwszy od pierwszej linii, której instrukcje są wykonywane kolejno od lewej do prawej strony i dopiero wówczas program wykonuje instrukcje kolejnej linii. Pytanie 17 Realizacja programu drabinkowego PLC odczytywanie stanu wejść 1 1 warunki logiczne programu 2 2 ustawienie stanu wyjść Cykl pracy 3 3 End End 18 9
Cykl PLC S7-200 ; typowo 3-10ms Odczyt - realizacja programu - zapis 19 Podstawowe elementy programu S7-200 20 10
Podprogramy Podprogramy stanowiące części programu aplikacji są wykonywane tylko wtedy, gdy zostaną odpowiednio wywołane w programie głównym, przez inny podprogram lub przez wystąpienie zdarzenia/przerwania systemowego. Podprogramy są bardzo pomocne do tworzenia powtarzających się funkcji. Utworzona funkcja może by wywoływana wiele razy w programie aplikacji skracając w ten sposób ilość niezbędnego kodu sterującego procesem. Użycie podprogramów dostarcza wiele korzyści Użycie podprogramów redukuje całkowitą ilość kodu programu. Użycie podprogramów zmniejsza długość cyklu programu przez przesunięcie części kodu poza procedurę główną. S7-200 cyklicznie wykonuje tylko procedur główną, niezależnie czy kod jest czy nie jest wykonywany. Zastosowanie podprogramów w procedurze głównej pozwala wykonywać ich kod tylko gdy jest to konieczne/dozwolone. Podprogramy dzielą kod na funkcjonalne części przez co staje się czytelniejszy oraz łatwiejszy do wykorzystania w innych programach z minimalnym, dodatkowym nakładem pracy. 21 Programy przerwań Programy przerwań stanowią opcjonalną część programu, która reaguje na specyficzne zdarzenie w systemie. Procedura przerwania określa czynności, które należy wykonać w razie wystąpienia zdarzenia. Kiedy zdarzenie wystąpi S7-200 wykonuje kod procedury przerwania. Procedura przerwania nie jest wykonywana przez program główny. Jest ona skojarzona ze zdarzeniem i S7-200 wykonuje ją tylko w przypadku wystąpienia zdarzenia oraz tyle razy ile ono wystąpi. 22 11
Struktura modułowa programu w języku drabinkowym OB1 PB100 JU PB100 CALL DB21 JU PB101 JC FB 220 JU PB 170 BE BE DB21 FB220 BE BE BE PB170 JC FB200 PB101 JU PB150 BE FB200 BE PB150 23 Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 24 12
Sposoby prezentacji programu PLC LAD - Ladder Diagram Schemat drabinkowy STL - Statement Lists Lista instrukcji CSF - Control System Flowcharts Funktory logiczne GRAPH - Graf W programowaniu PLC najwcześniej znalazł zastosowanie język drabinkowy (LAD), ponieważ jest on łatwy w użyciu i mało skomplikowany. Obecnie język drabinkowy LAD znajduje najszersze zastosowanie w PLC. 25 LAD,STL,CSF,GRAPH 5 26 13
Błędy niekrytyczne S7-200 27 Systemowe bity pamięci SM Bity systemowe zawierają różne informacje i funkcje sterujące oraz stanowią komunikację pomiędzy sterownikiem S7-200, a programem użytkownika 28 14
Błędy krytyczne S7-200 29 Wykrywanie błędów niekrytycznych Wystąpienie błędu niekrytycznego nie powoduje zmiany trybu pracy S7-200 na tryb STOP. Błąd taki jest jedynie zapamiętywany w pamięci SM a program wykonuje się dalej. Możliwe jest jednak programowe wymuszenie przejścia sterownika w tryb STOP w momencie wykrycia niekrytycznego błędu. Niżej zamieszczony przykład pokazuje sieć programu, który monitoruje wystąpienie dwóch niekrytycznych błędów oraz powoduje zmian trybu sterownika na STOP w przypadku wystąpienia którego z nich. 30 15
Funkcje detekcji zboczy sygnałów I P I oraz I N I I P I I N I p.bogdański, B.Janota Realizacja programu przełącznik impulsowy za pomocą funkcji detekcji zbocza narastającego i pamięci bitowej Set M0.0 Reset M0.0 16
Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 33 Program Latching/Zatrzask 17
Realizacja programu Zatrzask Realizacja programu Zatrzask za pomocą funkcji Set/Reset 18
Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 37 Timer TON z zapamiętywaniem 19
Timer TON Timer TON z zapamiętywaniem Przebiegi czasowe 20
Timer TOF Liczniki standardu SIMATIC 21
Licznik zliczający w dół Licznik zliczający w górę/dół 22
Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 45 Instrukcje operacji logicznych Inwersja 23
Przykład instrukcji INV Instrukcje zwiększania i zmniejszania INC i DEC 24
Podstawowe funkcje złożone języka PLC operacje kombinacyjne operacje pamięciowe- operacje zatrzasku, operacje czasowe - timery, liczniki, operacje arytmetyczne i logiczne, operacje organizacyjne- wywołania bloków, skoków. 49 Instrukcje pętli FOR-NEXT Na przykład, podajemy wartość INIT jako 1, a FINAL na 10, instrukcje pomiędzy instrukcją For a Next będą wykonywane 10 razy, a INDX będzie inkrementowany 1, 2, 3,... 10. Jeżeli wartość początkowa jest większa niż wartość końcowa (FINAL) wtedy pętla nie jest wykonywana. Po każdym wykonaniu instrukcji pomiędzy instrukcjami FOR i NEXT, wartość INDX jest inkrementowana, a rezultat jest porównywany z wartością końcową. Jeżeli INDX jest większy niż wartość końcowa, pętla jest kończona. 25
Przykład instrukcji FOR_NEXT Rodzina paneli TD 52 26
Właściwości paneli tekstowych Zadania realizowane przez panel TD Wyświetlanie hierarchii menu użytkownika i ekranów umożliwiających operatorowi na oddziaływanie z aplikacją lub procesem. Menu użytkownika i ekrany tworzone są za pomocą wizarda Text Display z STEP 7-Micro/WIN. Wyświetlanie alarmów (komunikatów wyzwalanych bitowo), które są generowane przez sterownik S7-200. Alarmy te są definiowane w wizardzie Text Display z STEP 7-Micro/WIN. Modyfikowanie zadeklarowanych zmiennych programowych. Definiowanie zmiennych jako ciąg znaków tekstowych lub też jako ciąg znaków liczbowych definiowanie zmiennych jako słowo, podwójne słowo lub liczba rzeczywista Forsowanie lub odforsowanie wejść/wyjść. Można forsować indywidualne wejścia/wyjścia w sterowniku S7-200 (TD 200C, TD 200 i TD400C tylko) Ustawianie czasu i daty (jeżeli sterownik S7-200 obsługuje zegar czasu rzeczywistego) Wyświetlanie statusu CPU (zawierającego informację o wersji) 53 Konfiguracja panela TD Urządzenie TD można skonfigurować do wyświetlania ekranów (inicjowanych przez akcję operatora) oraz alarmów wyzwalanych bitowo (inicjowanych przez CPU S7-200). Ekrany umożliwiają operatorowi na oddziaływanie z aplikacją w CPU S7-200. Można skonfigurować menu użytkownika (do 8 pozycji lub grup dla TD 200C, TD200 i TD400C, oraz do 4 pozycji lub grup dla TD 100C), które tworzy hierarchię dla ekranów. Można utworzy do 8 ekranów dla każdej pozycji w menu lub grupy. Komunikaty alarmowe umożliwiają programowi użytkownika umieszczonemu w CPU S7-200 na oddziaływanie z operatorem poprzez wyświetlanie komunikatów na urządzeniu TD. Podczas konfiguracji urządzenia, wskazuje się, jaki typ wiadomości (ekrany lub alarmy) będzie domyślnym trybem wyświetlania dla urządzenia TD. Po włączeniu panel TD przechodzi do domyślnego trybu wyświetlania. Urządzenie TD po okresie bezczynności (jeżeli przez jedną minutę nie zostanie naciśnięty żaden przycisk) także powraca do domyślnego trybu wyświetlania. 54 27
Łańcuch znaków (String) Łańcuch jest ciągiem znaków, gdzie każdy znak zapisany jest jako bajt. Pierwszy bajt łańcucha definiuje długość łańcucha, która odpowiada ilości znaków. Łańcuch może mieć długość od 0 do 254 znaków plus bajt długości, tak więc maksymalna długość łańcucha wynosi 255 bajtów. Długość Znak 1 Znak 2 Znak 3 Znak 4 Znak 254 Operacje na łańcuchach znaków Łączenie dwóch łańcuchów (Concatenate String) Instrukcja SCAT dołącza łańcuch podany w IN na koniec drugiego łańcucha podanego w OUT. Kopiowanie łańcucha (Copy String) Instrukcja kopiowania SCPY kopiuje łańcuch podany w IN do drugiego łańcucha podanego w OUT. Długość łańcucha (String Length) Instrukcja SLEN określa długość łańcucha znaków podanego na wejście IN. 28
Kopiowanie fragmentu łańcucha Instrukcja kopiowanie fragmentu łańcucha z całości (SSCPY) kopiuje określoną ilość znaków N z podanego łańcucha w IN począwszy od indeksu INDX, do nowego łańcucha znaków OUT. Regulator PID Instrukcja regulatora (PID) wykonuje regulację PID dla określonej pętli regulacji oraz definiuje obszar wejść i wyjść określonych w tabeli (TBL). 58 29
Algorytm regulatora ciągłego PID U ( t ) 1 d ε ( t ) = K P ε ( t ) + ε ( t ) dt + T d T i dt Współczynnik proporcjonalności K p możemy ustalić jako proporcję zmian K p = U/ ε dla składnika proporcjonalnego. Stała T D -czas wyprzedzenia to czas od błędu do zrównania się odpowiedzi proporcjonalnej z różniczkową. Stałą T i nazywamy czasem zdwojenia lub izodromu. Określamy ją porównawczo jako czas, który mija od podania na regulator skoku wielkości wejściowej błędu ε 1 =1(t) do momentu w którym odpowiedź części całkującej zrówna się z odpowiedzią części proporcjonalne. 59 Algorytmy przyrostowe regulatora cyfrowego PID 60 30