LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Podobne dokumenty
LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Szkoła programisty PLC : sterowniki przemysłowe / Gilewski Tomasz. Gliwice, cop Spis treści

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Spis treści. Dzień 1. I Rozpoczęcie pracy ze sterownikiem (wersja 1707) II Bloki danych (wersja 1707) ZAAWANSOWANY TIA DLA S7-300/400

Kurs Zaawansowany S7. Spis treści. Dzień 1

Ćwiczenia z S Komunikacja S z miernikiem parametrów sieci PAC 3200 za pośrednictwem protokołu Modbus/TCP.

Kurs SIMATIC S7-300/400 i TIA Portal - Zaawansowany. Spis treści. Dzień 1

PROGRAMOWALNE STEROWNIKI LOGICZNE

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

Ćwiczenia z S S jako Profinet-IO Controller. FAQ Marzec 2012

STEROWANIE URZĄDZENIAMI PRZEMYSŁOWYMI ĆWICZENIE 4 BLOKI FUNKCYJNE

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1410) II Edycja programu (wersja 1406) III Środowisko TIA Portal (wersja 1410)

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy

Kurs STARTER S5. Spis treści. Dzień 1. III Budowa wewnętrzna, działanie i obsługa sterownika (wersja 0504)

Projekt z przedmiotu Specjalizowane języki programowania Temat: Zastosowanie programowania obiektowego w środowisku LabView

Adresowanie obiektów. Adresowanie bitów. Adresowanie bajtów i słów. Adresowanie bajtów i słów. Adresowanie timerów i liczników. Adresowanie timerów

BAZY DANYCH MAKRA I PRZYCISKI. Microsoft Access. Adrian Horzyk. Akademia Górniczo-Hutnicza

Podstawy pracy w systemie Doradca.

Satel Integra FIBARO

Spis treści. I Sterowniki programowalne SIMATIC (wersja 1908) II Łączenie sterownika z programatorem (wersja 1908)

Pierwsze kroki z easy Soft CoDeSys Eaton Corporation. All rights reserved.

Pętla for. Wynik działania programu:

ZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS

Elektrotechnika II Stopień (I stopień / II stopień) Ogólno akademicki (ogólno akademicki / praktyczny)

znajdowały się różne instrukcje) to tak naprawdę definicja funkcji main.

Robert Barański, AGH, KMIW State Machine v1.0. Maszyna stanów (State Machine)

Programowanie sterowników przemysłowych / Jerzy Kasprzyk. wyd. 2 1 dodr. (PWN). Warszawa, Spis treści

Ćwiczenia z S Komunikacja S z przyciskowym panelem HMI KP300 PN. FAQ Marzec 2012

Sterowniki programowalne Programmable Controllers. Energetyka I stopień Ogólnoakademicki. przedmiot kierunkowy

Informatyka I. Wykład 3. Sterowanie wykonaniem programu. Instrukcje warunkowe Instrukcje pętli. Dr inż. Andrzej Czerepicki

PLC1: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs podstawowy

PLC2: Programowanie sterowników logicznych SIEMENS SIMATIC S7-300/400 - kurs zaawansowany

Kurs STEP7 TIA - Zaawansowany. Spis treści. Dzień 1. I Konfiguracja sprzętowa sterownika SIMATIC S7-1200/1500 (wersja 1501)

Konfiguracja i programowanie sterownika GE Fanuc VersaMax z modelem procesu przepływów i mieszania cieczy. Przebieg ćwiczenia

Materiały dodatkowe. Simulink PLC Coder

Systemy Czasu Rzeczywistego (SCR)

Sterowniki Programowalne (SP)

Programowanie obiektowe

Politechnika Białostocka

Przejrzystość, intuicyjny charakter i łatwość oprogramowania sterowników FATEK.

1. Podstawowe wiadomości Możliwości sprzętowe Połączenia elektryczne Elementy funkcjonalne programów...

I. KARTA PRZEDMIOTU CEL PRZEDMIOTU WYMAGANIA WSTĘPNE W ZAKRESIE WIEDZY, UMIEJĘTNOŚCI I INNYCH KOMPETENCJI EFEKTY KSZTAŁCENIA

Tworzenie programu i konfiguracja w LOGO! Soft Comfort V8

Sterowniki Programowalne (SP) Wykład 11

Notatka Aplikacyjna NA 03002PL Kwiecień 2016

Kurs Podstawowy S7. Spis treści. Dzień 1

Spis treści. Dzień 1. I Sterowniki programowalne SIMATIC (wersja 1805) II Łączenie sterownika z programatorem (wersja 1805)

Spis treści. Dzień 1. I Konfiguracja sterownika (wersja 1312) II Tryby pracy CPU (wersja 1312) III Bloki funkcyjne (wersja 1312)

O autorze... 9 Wprowadzenie... 11

Katedra Inżynierii Systemów Sterowania WEiA PG. Przemysłowe Sieci Informatyczne Laboratorium

Podstawy PLC. Programowalny sterownik logiczny PLC to mikroprocesorowy układ sterowania stosowany do automatyzacji procesów i urządzeń.

Dokumentowanie zajęć realizowanych w ramach kształcenia modułowego

Rysunek 1: Okno z lista

Podstawy programowania. Wykład Funkcje. Krzysztof Banaś Podstawy programowania 1

Wymagania programowe: STEP 7 STEP 7-Micro/Win

Robert Barański, AGH, KMIW MathScript and Formula Nodes v1.0

Podstawy Programowania C++

Zmienne, stałe i operatory

Elektrotechnika I stopień Ogólno akademicki. kierunkowy (podstawowy / kierunkowy / inny HES)

10 Programowanie wielokrotnego lokalnego bloku danych

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

LABORATORIUM ENERGOOSZCZĘDNEGO BUDYNKU

1. Cel ćwiczenia. Celem ćwiczenia jest zestawienie połączenia pomiędzy dwoma sterownikami PLC za pomocą protokołu Modbus RTU.

Programowanie obiektowe

Język programowania DELPHI / Andrzej Marciniak. Poznań, Spis treści

Instrukcja do ćwiczenia P4 Analiza semantyczna i generowanie kodu Język: Ada

Bramki logiczne Instrukcja do ćwiczeń laboratoryjnych

Laboratorium Elektrycznych Systemów Inteligentnych

ZAAWANSOWANY TIA. Spis treści

Sterowniki PLC. Elektrotechnika II stopień Ogólno akademicki. przedmiot kierunkowy. Obieralny. Polski. semestr 1

s FAQ: /PL Data: 29/08/2014

PLAN WYNIKOWY PROGRAMOWANIE APLIKACJI INTERNETOWYCH. KL IV TI 6 godziny tygodniowo (6x15 tygodni =90 godzin ),

LABORATORIUM INTELIGENTNYCH SYSTEMÓW ELEKTRYCZNYCH. Ćwiczenie 10. Wykorzystanie funkcji ściemniacza w systemie TEBIS

Opracował: Jan Front

Informatyka I. Klasy i obiekty. Podstawy programowania obiektowego. dr inż. Andrzej Czerepicki. Politechnika Warszawska Wydział Transportu 2018

Myśl w języku Python! : nauka programowania / Allen B. Downey. Gliwice, cop Spis treści

Modułowy programowalny przekaźnik czasowy firmy Aniro.

podstawowa obsługa panelu administracyjnego

E-E-A-1008-s6. Sterowniki PLC. Elektrotechnika I stopień Ogólno akademicki. kierunkowy (podstawowy / kierunkowy / inny HES)

Siemens S Konfiguracja regulatora PID

Ćwiczenia z S Komunikacja S z dotykowymi panelami HMI na przykładzie współpracy sterownika z panelem KTP600 PN.

Systemy Wbudowane. Założenia i cele przedmiotu: Określenie przedmiotów wprowadzających wraz z wymaganiami wstępnymi: Opis form zajęć

Podstawy informatyki. Informatyka stosowana - studia niestacjonarne. Grzegorz Smyk. Wydział Inżynierii Metali i Informatyki Przemysłowej

Zapisywanie algorytmów w języku programowania

LABORATORIUM INTELIGENTNYCH SYSTEMÓW ELEKTRYCZNYCH

Metody Programowania

1. Tworzenie nowego projektu.

D:\DYDAKTYKA\ZAI_BIS\_Ćwiczenia_wzorce\04\04_poprawiony.doc 2009-lis-23, 17:44

kiedy znowu uzyska sterowanie, to podejmuje obliczenie od miejsca, w którym poprzednio przerwała, i z dotychczasowymi wartościami zmiennych,

Konfiguracja regulatora PID

PROLOG WSTĘP DO INFORMATYKI. Akademia Górniczo-Hutnicza. Wydział Elektrotechniki, Automatyki, Informatyki i Inżynierii Biomedycznej.

Komunikacja z wykorzystaniem Protokołu TCP oraz funkcji AG_SEND/AG_RECV

Tworzenie i wykorzystanie usług sieciowych

Język C++ zajęcia nr 2

Laboratorium z przedmiotu Programowanie obiektowe - zestaw 04

Transkrypt:

AKADEMIA GÓRNICZO- HUTNICZA IM. STANISŁAWA STASZICA W KRAKOWIE LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA Wydział Inżynierii Mechanicznej i Robotyki Katedra Automatyzacji Procesów Przedmiot: Przemysłowe Systemy Sterowania (PSS) Laboratorium 11: Bloki programowe OB., FB, FC, DB Kraków

Cel ćwiczeń laboratoryjnych 1. Poznanie funkcjonalności OB., FC, FB, DB 2. Określenie różnicy pomiędzy funkcją i blokiem funkcji 3. Poznanie sposobów alokacji pamięci Po ukończeniu zajęć student powinien potrafić: 1. Samodzielnie zorganizować program w sposób liniowy i modułowy 2. Określić przydatność stosowania FB lub FC do danego zadania automatyzacji 3. Zrealizować obsługę wielu urządzeń za pomocą funkcjonałów

Wstęp Podczas tworzenia programu użytkownika do zadania automatyzacji używa się instrukcji zamieszczanych w blokach kodu (OB., FB lub FC). W oparciu o wymagania aplikacji użytkownik podczas tworzenia swojego programu może wybrać dla niego albo strukturę liniową, albo modularną. Program liniowy wykonuje wszystkie instrukcje zadania automatyzacji po kolei jedną po drugiej. Zwykle, program liniowy umieszcza wszystkie instrukcje w OB przeznaczonym do cyklicznego wykonywania (OB 1). Program modułowy wywołuje określone bloki kodu do wykonania specyficznych zadań. W celu stworzenia struktury modularnej, użytkownik musi podzielić złożone zadania automatyzacji na mniejsze podzadania odpowiadające funkcjom procesu. Każdy blok kodu zapewnia segment programu dla wykonania podzadania. Użytkownik określa strukturę programu poprzez wywoływanie jednego bloku kodu z innego bloku. Bloki organizacyjne OB Bloki organizacyjne wprowadzają w programie pewną strukturę. Służą jako interfejs między systemem operacyjnym i programem użytkownika. OB są sterowane zdarzeniami. Zdarzenie, takie jak przerwanie diagnostyczne lub interwału czasowego, powoduje, że CPU wykonuje OB. Niektóre OB mają predefiniowane zdarzenia startowe i działanie. Rys. 1. Definicja nowego bloku programu

Cykliczny OB zawiera główny program. Użytkownik może włączyć więcej niż jeden cykliczny OB w swój program użytkownika. W trybie RUN, cykliczne OB działają z najniższym priorytetem i mogą być przerwane przez wszystkie inne typy programów. (Rozruchowy OB nie przerywa działania cyklicznego OB, ponieważ CPU wykonuje rozruchowy OB przed wejściem do trybu RUN.) Po zakończeniu wykonywania cyklicznego OB, CPU natychmiast zaczyna ponownie wykonywać cykliczny OB. To działanie cykliczne jest normalnym sposobem pracy sterowników PLC. W wielu aplikacjach cały program użytkownika jest zlokalizowany w jednym cyklicznym OB., jak np. w domyślnym cyklicznym OB1. Rys. 2. Zasada wykonywania bloków organizacyjnych W celu dodania nowego bloku organizacyjnego należy w drzewie projektu w polu Program blocks kliknąć LPM w pozycję Add new block. Po tej akcji pojawi się okno wyboru rodzaju bloku (Rys. 1). Do dydpozycji są 4 rodzaje bloków: OB - blok organizacyjny FC - funkcja FB - blok funkcji DB - blok danych Blok organizacyjny może być programowany w dowolnym języku wspieranym przez CPU. Dostępne są trzy typy bloków organizacyjnych, których zasadę działania przedstawiono na (Rys. 2). Zasadniczo dzielą się one na: Blok typu Startup (OB100) - wykonywany przed przejściem do trybu pracy RUN

Bloki (programowo) cykliczne - wykonywane w trybie RUN w nieskończonej pętli while Bloki przerwań - program w nich wykonywany jest tylko w wypadku wystąpienia konkretnego zdarzenia OB może zostać także wykorzystany do obsługi zdarzenia przerwania. Jeśli zajdzie takie zdarzenie, to CPU przerywa cykl programu użytkownika i wywołuje OB skonfigurowany do obsługi tego zdarzenia. Po zakończeniu działania przez OB obsługujący przerwanie, CPU podejmuje wykonywanie programu użytkownika od miejsca, w którym wystąpiło przerwanie. Poprzez stworzenie ogólnego bloku kodu, który może być wykorzystywany w programie użytkownika można uprościć projektowanie i implementację programu użytkownika. Funkcjonały Do wykonywania standardowych zadań, takich jak sterowanie pompami lub silnikami można stworzyć bloki kodu wielokrotnego użytku. Te ogólne bloki kodu można przechowywać w bibliotece z możliwością wykorzystania w różnych aplikacjach lub rozwiązaniach. Jeżeli program użytkownika ma strukturę modularną zgodną z zadaniami funkcjonalnymi, to realizacja programu użytkownika jest łatwiejsza do zrozumienia i zarządzania. Składniki modularne nie tylko pomagają standaryzować konstrukcję programu, ale również sprawiają, że wprowadzanie uaktualnień i modyfikacji kodu programu jest łatwiejsze i szybsze. Tworzenie składników modularnych upraszcza debugowanie programu. Jeżeli cały program ma strukturę złożoną ze zbioru modułów programowych, to funkcjonalność każdego bloku kodu można testować zaraz po jego opracowaniu. Tworzenie składników modułowych powiązanych z określonymi zadaniami funkcyjnymi upraszcza i przyspiesza wdrażanie całej aplikacji. Funkcja FC Funkcja (FC) działa jak podprogram. FC to 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 i stosuje się do wykonywania następujących zadań: Standardowych i powtarzalnych działań, jak na przykład obliczeń arytmetycznych. Zadania funkcyjne, takie jak indywidualne sterowanie za pomocą 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ń.

Przeciwnie niż blok funkcji (FB), FC nie jest skojarzona z żadnym blokiem danych instance (DB). Dla danych tymczasowych (obszar pamięci L) występujących podczas przeprowadzania obliczeń, FC wykorzystuje lokalny stos danych. Dane tymczasowe nie są zapamiętywane. W celu zapamiętania danych należy przypisać wartości wyjściowej miejsce w pamięci, na przykład w pamięci M lub w globalnym DB. Blok funkcji (FB) Blok funkcji (FB) działa jak podprogram z pamięcią. Jego wywołanie może być programowane za pomocą parametrów bloku. FB przechowuje wejściowe (IN), wyjściowe (OUT) i wejściowo/wyjściowe parametry w zmiennej pamięci zlokalizowanej w bloku danych (DB) lub instancji DB. Instancja DB zapewnia blok pamięci skojarzonej z wywołaniem FB i przechowuje dane po zakończeniu działania FB. FB są zwykle używane do sterowania działaniem zadań lub urządzeń, które nie kończą swojej pracy w jednym cyklu programu. W celu przechowywania parametrów operacyjnych w taki sposób, by były szybko dostępne w kolejnych cyklach programu, każda FB w programie użytkownika ma jedną lub więcej instancji DB. Kiedy FB jest wywoływana, wtedy również jest otwierany DB przechowujący parametry bloku i statyczne dane lokalne dla danego wywołania lub instancji FB. Instancja DB pamięta te wartości po zakończeniu działania FB. Użytkownik może nadać wartości początkowe parametrom interfejsu FB. Te wartości zostaną przeniesione do skojarzonej instancji DB. Jeśli parametrom nie zostaną nadane wartości, to będą wykorzystane wartości pamiętane w instancji DB. W niektórych przypadkach istnieje konieczność nadania parametrów początkowych. Można skojarzyć różne bloki danych instancji DB z różnymi wywołaniami FB. Bloki DB pozwalają na użycie tego samego FB do sterowania wielu urządzeń. Tworzenie struktury programu polega na tym, że jeden blok kodu wywołuje inny FB oraz instancję DB. CPU wykonuje wówczas 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. Projektując FB do wykonywania ogólnych zadań sterowania, użytkownik może wykorzystać ten FB z wieloma urządzeniami wybierając różne instancje DB do różnych wywołań FB. Uwaga Funkcje i bloki funkcji muszą być zagnieżdżone w bloku OB, aby mogły być wywoływane. Niezagnieżdżone FC i FB nie będą wykonywane Uwaga Wywołanie funkcji FC jest szybsze niż wywołanie bloku funkcji FB, gdyż FC nie odnosi się do bloku danych DB. Stąd stosowanie funkcji jest bardziej optymalne

Bloki danych DB Bloki danych (DB) są umieszczane w programie użytkownika po to, by przechowywały dane dla bloków kodu. Wszystkie bloki kodu w programie użytkownika mają dostęp do globalnego DB, ale poszczególne instancje DB przechowują dane dla określonych bloków funkcji (FB). Program użytkownika może przechowywać dane w specjalizowanych obszarach pamięci CPU, przeznaczonych dla wejścia (I), wyjścia (Q) i pamięci bitowej (M). Ponadto użytkownik może wykorzystywać bloki danych (DB) dla uzyskania szybkiego dostępu do danych przechowywanych w samym programie. Użytkownik może nadać DB status tylko do odczytu. Dane pamiętane w DB nie są usuwane po zamknięciu bloku danych lub po zakończeniu wykonywania korzystającego z nich bloku kodu. Są dwa typy DB: 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. Instancja DB przechowuje dane dla określonych FB. Struktura danych w instancji DB odzwierciedla parametry (wejściowe, wyjściowe i wejściowo/wyjściowe) oraz dane statyczne FB. Pamięć Temp FB nie jest przechowywana w instancji DB. Mimo, że instancja DB przechowuje dane dla konkretnego FB, to dostęp do tych danych ma dowolny blok kodu. Rys. 3. Urządzenie do pakowania cukierków, za : http://wdp.com.pl/userfiles/editor/_wdp/prezentacje/20163_wdp/yamato-03.2016-1.jpg Przykład Zadanie automatyzacji będzie polegało na zautomatyzowaniu trzech identycznych urządzeń do pakowania mieszanki cukierków - zawsze trzech kolorów (Rys. 3). Każdy podajnik ma specjalny czujnik przelotu cukierka nazwany żółty1, żółty2, zielony1,

zielony2, etc. Wszystkie cukierki wpadają do paczki. Gdy w paczce znajduje się 40 cukierków, uruchamiane jest urządzenie, które zgrzewa paczkę, odcina ją i zakłada nową. Układ umożliwia pakowanie trzech paczek równocześnie. Użycie FB i FC wymaga pewnego doświadczenia, ale mniej doświadczeni użytkownicy mogą skorzystać z poniższego algorytmu. Krok 1 Utworzenie programu bez użycia FC i FB (Rys. 4). Każde wystąpienie cukierka powoduje inkrementację rejestru ilość. Po przekroczeniu 40 wystąpień uruchamiana jest zgrzewarka (Q0.0) Rys. 4. Ogólny program realizujący zadanie automatyzacji Po sprawdzeniu poprawności działania programu przechodzi się do następnego kroku. Krok 2 Należy utworzyć funkcję lub blok funkcji i zadeklarować odpowiedne zmienne (Rys. 5). Uwaga Sprawdź działanie programu, jeśli zmienna ilość jest typu Temp

Rys. 5. Interfejs bloku funkcji FB Następnie należy przekleić wcześniej utworzony program do bloku funkcji i zamienić zmienne globalne na wskaźniki z interfejsu (Rys. 6). Rys. 6. Program w bloku funkcji FB wraz z zamienionymi przyłączami Krok 3 Należy zagnieździć funkcję lub blok funkcji w bloku OB, a następnie podłączyć usunięte zmienne globalne do odpowiadających im wskaźników(rys. 7)

Rys. 7. Zagnieżdżenie bloku funkcji FB Krok 4 Po sprawdzeniu poprawności działania programu należy przejść do multipleksowania FB lub FC poprzez zagnieżdżenie kolejnych funkcji lub bloków funkcji i podłączenie do nich odpowiednich zmiennych globalnych. (Rys. 8) Rys. 8. Multipleksowanie bloku funkcji FB

Ćwiczenie 1 Wykorzystując wskaźnik typu IN/OUT zrealizuj powyższy program z użyciem bloku FC Ćwiczenie 2 Zrealizuj trzy ekrany na panelu HMI, jak na (Rys. 9). Przycisk dolej oraz wylej powinien mieć działanie bistabilne. Korzystając z bloku cyklicznych przerwań (OB30) oraz funkcji lub bloku funkcji zrealizuj następującą funkcjonalność: Jeśli dolej jest w stanie wysokim, to poziom (INT) wzrasta o 3, co 200 ms Jeśli wylej jest w stanie wysokim, to poziom (INT) maleje o 2, co 200 ms Jeśli wylej i dolej są w stanie wysokim, to poziom (INT) wzrasta o 1, co 200 ms Nałóż ograniczenia na poziom - nie może on przekroczyć wartości 100, ani być ujemny. Zrealizuj program dla 3 zbiorników. Rys. 9. Okno aplikacji dla 1 zbiornika