Norma IEC 1131-3 definiuje podział na dwie zasadnicze grupy:



Podobne dokumenty
Sterowniki programowalne

Działanie i charakterystyka sterownika GE FANUC VersaMaxNano

1. Cel ćwiczenia. 2. Podłączenia urządzeń zewnętrznych w sterowniku VersaMax Micro

Sterowniki Programowalne (SP) Wykład #4

Sterowniki Programowalne (SP)

W 5_2 Typy języków programowania sterowników PLC (zdefiniowane w IEC-61131) - języki graficzne (LD, FBD); języki tekstowe (ST, IL).

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Elementy oprogramowania sterowników. Instrukcje podstawowe, funkcje logiczne, układy czasowe i liczenia, znaczniki

CoDeSys 3 programowanie w języku drabinkowym LD

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

SFC zawiera zestaw kroków i tranzycji (przejść), które sprzęgają się wzajemnie przez połączenia

STEROWANIE MASZYN I URZĄDZEŃ I. Laboratorium. 4. Przekaźniki czasowe

Opracował: Jan Front

Język programowania: Lista instrukcji (IL Instruction List)

Podstawy programowania PLC w języku drabinkowym - ćwiczenie 5

Język programowania: Lista instrukcji (IL Instruction List) Wykład w ramach przedmiotu: Sterowniki programowalne Opracował dr inż. Jarosław Tarnawski

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

Sterowniki Programowalne (SP) Wykład 11

PROGRAMOWALNE STEROWNIKI LOGICZNE

INSTRUKCJA OBSŁUGI. Przekaźnik czasowy ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

Programowanie sterowników PLC wprowadzenie

Sterownik Visilogic V260

Istnieje wiele metod przekształcania algorytmów wprogram sterujący.

CoDeSys 3 programowanie w języku FBD

STEROWANIE MASZYN I URZĄDZEŃ I. Laboratorium. 1. Wprowadzenie

Politechnika Gdańska. Gdańsk, 2016

Sterowniki programowalne. System GE Fanuc serii Zasady działania systemu (część I)

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

Tworzenie prostego programu w językach ST i LD

Zmiany. Initial Step krok inicjujący sekwenser

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

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

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

ĆWICZENIE 7. Wprowadzenie do funkcji specjalnych sterownika LOGO!

Standardowe bloki funkcjonalne

Adaptacja sterownika PLC do obiektu sterowania. Synteza algorytmu procesu i sterowania metodą GRAFCET i SFC

Projekt z przedmiotu Systemy akwizycji i przesyłania informacji. Temat pracy: Licznik binarny zliczający do 10.

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

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

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Automatyzacja i robotyzacja procesów produkcyjnych

Podstawy programowania sterowników GeFanuc

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2018 CZĘŚĆ PRAKTYCZNA

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

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

ZASOBY ZMIENNYCH W STEROWNIKACH SAIA-BURGESS

Stan/zdarzenie Nexo. Zmienne wirtualne. Zdarzenia wirtualne

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

Przykłady wybranych fragmentów prac egzaminacyjnych z komentarzami Technik mechatronik 311[50]

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

Systemy wbudowane. Wprowadzenie. Nazwa. Oznaczenia. Zygmunt Kubiak. Sterowniki PLC - Wprowadzenie do programowania (1)

1. SFC W PAKIECIE ISAGRAF 2. EDYCJA PROGRAMU W JĘZYKU SFC. ISaGRAF WERSJE 3.4 LUB 3.5 1

Nazwa kwalifikacji: Projektowanie i programowanie urządzeń i systemów mechatronicznych Oznaczenie kwalifikacji: E.19 Numer zadania: 01

JĘZYK SFC Sequential Function Chart ki 2004 Graf sekwencji rbańs rad U on inż. K dr

Modułowy programowalny przekaźnik czasowy firmy Aniro.

Opis: Instrukcja warunkowa Składnia: IF [NOT] warunek [AND [NOT] warunek] [OR [NOT] warunek].

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2018 CZĘŚĆ PRAKTYCZNA

EGZAMIN POTWIERDZAJĄCY KWALIFIKACJE W ZAWODZIE Rok 2018 CZĘŚĆ PRAKTYCZNA

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

1 Podstawy c++ w pigułce.

Literatura. adów w cyfrowych. Projektowanie układ. Technika cyfrowa. Technika cyfrowa. Bramki logiczne i przerzutniki.

Czym jest IEC ?

W_4 Adaptacja sterownika PLC do obiektu sterowania. Synteza algorytmu procesu i sterowania metodą GRAFCET i SFC

Emulator sterowników PLC serii FX

Funkcje: wejściowe, wyjściowe i logiczne. Konfigurowanie zabezpieczeń.

LABORATORIUM PRZEMYSŁOWYCH SYSTEMÓW STEROWANIA

Definicje. Algorytm to:

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 SIMATIC S7-300/400 i TIA Portal - Podstawowy. Spis treści. Dzień 1. I System SIEMENS SIMATIC S7 - wprowadzenie (wersja 1503)

Język FBD w systemie Concept

Funkcje: wejściowe, wyjściowe i logiczne. Konfigurowanie zabezpieczeń.

IC200UDR002 ASTOR GE INTELLIGENT PLATFORMS - VERSAMAX NANO/MICRO

STEROWANIE MASZYN I URZĄDZEŃ I. Laboratorium. 8. Układy ciągłe. Regulator PID

PODSTAWY PROGRAMOWANIA STEROWNIKÓW PLC

Przykład programowania PLC w języku drabinkowym - ćwiczenie 6

Zasady wykonywania programu drabinkowego w sterowniku

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

LABORATORIUM AUTOMATYKA i ROBOTYKA Inne funkcje sterownika PLC część 2

Część 3. Układy sekwencyjne. Układy sekwencyjne i układy iteracyjne - grafy stanów TCiM Wydział EAIiIB Katedra EiASPE 1

Język programowania PASCAL

Regulator PID w sterownikach programowalnych GE Fanuc

JĘZYKI PROGRAMOWANIA Z PROGRAMOWANIEM OBIEKTOWYM. Wykład 6

INSTRUKCJA OBSŁUGI. Licznik amperogodzin ETM ELEKTROTECH Dzierżoniów. 1. Zastosowanie

UKŁADY KOMBINACYJNE WPROWADZENIE. przerzutniki, bramki ze sprzężeniami zwrotnymi. Układ przełączający Y t. Q t stan wewnętrzny

Układy VLSI Bramki 1.0

INSTRUKCJA OBSŁUGI CZYTNIKA POSIDRO-DEGA Czytnik jednoosiowy współpracuje z enkoderami inkrementalnymi

Funkcje: wejściowe, wyjściowe i logiczne. Konfigurowanie zabezpieczeń.

AKTUATOR DO SYSTEMU DUO Q

Skrypty i funkcje Zapisywane są w m-plikach Wywoływane są przez nazwę m-pliku, w którym są zapisane (bez rozszerzenia) M-pliki mogą zawierać

Uwagi dotyczące notacji kodu! Moduły. Struktura modułu. Procedury. Opcje modułu (niektóre)

Klawisze szybkiego wyboru układu drabinkowego

Sterowanie procesem wiercenia otworów w elemencie na linii produkcyjnej przy pomocy sterownika PLC

Wykład z Technologii Informacyjnych. Piotr Mika

Architektura komputerów Wykład 2

Przemysłowe Systemy Automatyki ĆWICZENIE 2

LABORATORIUM 3 ALGORYTMY OBLICZENIOWE W ELEKTRONICE I TELEKOMUNIKACJI. Wprowadzenie do środowiska Matlab

Podstawy programowania skrót z wykładów:

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

MiAcz2. Programowalne systemy przemysłowe automatyki PLC

Transkrypt:

1. Standaryzacja metod programowania sterowników PLC Na początkowym etapie rozwoju sterowników PLC każdy producent stosował własny język programowania ze specyficzną listą rozkazów. Jednak wraz z wzrostem powszechności ich stosowania pojawiła się konieczność standaryzacji metod programowania. Prace normalizacyjne rozpoczęły się dosyć wcześnie, bo w roku 1970. Trwały jednak bardzo długo, ponieważ poszczególne języki programowania stosowane w sterownikach różnych firm znacznie się różniły. W roku 1993 Międzynarodowa Komisja Elektroniki wydała normę IEC 1131, która w części trzeciej zawierała charakterystykę języków programowania sterowników. Do normy włączono kilka języków zarówno tekstowych, jaki i graficznych. Wspólną ich cechą jest istnienie rozkazów, wyrażeń lub bloków operacji logicznych i podobieństwo sposobu ich przedstawiania do form stosowanych w technice przekaźnikowej. Norma IEC 1131-3 definiuje podział na dwie zasadnicze grupy: języki tekstowe: język listy instrukcji (IL). język strukturalny (ST), języki graficzne: język schematów drabinkowych (LD), język schematów bloków funkcyjnych (FBD), sekwencyjny język graficzny (SFC). Nadal jednak postępuje proces ewolucji narzędzi i języków programowania. Ostatnio niektórzy producenci oprogramowania rozszerzyli ofertę języków graficznych o język diagramów przepływowych (FC). Najpopularniejszym językiem programowania jest język schematów drabinkowych LD 1.1. Język listy instrukcji IL Programowanie w języku IL polega na używaniu właściwych instrukcji programowych (tzw. mnemoników), wynikających z listy poleceń sterownika. Biorąc 1

następnie pod uwagę właściwe zasady tworzenia programu sterującego, umieszcza się te mnemoniki w odpowiednich wierszach edytora programu (tzw. sieciach) wraz z operandami (argumentami). Pojedyncza linia edytowanego programu musi zawierać: mnemonik rozkazu operand bądź operandy Program w metodzie IL konstruuje się na ekranie monitora za pomocą klawiatury alfabetycznej i po stwierdzeniu jego prawidłowości przesyła do sterownika PLC. Możliwe jest umieszczenie komentarzy objaśniających znaczenie używanych instrukcji w tworzonym programie sterującym. Dla tej metody programowania sterownika najczęściej nie istnieje możliwość testowania programu w trybie online. Jest to podyktowane tym, że do tworzenia programu metodą IL używa się edytorów tekstów, które nie pozwalają na umieszczanie informacji o aktualnym stanie używanych operandów. Przykład konstrukcji pojedynczej linii programu wraz z komentarzem Wyjaśniając powyższy przykład, stwierdzamy, że mnemonik rozkazu dla timera typu ON jest skrót TON. Operandem (argumentem) operacji są wyrażenia oznaczone przez skróty T21 i K10. pierwszy argument instrukcji związany jest z typem timera (operand bitowy), a drugi z typem stałej 10, która napisana jest przy użyciu kodowania dziesiętnego. Ponieważ układy mikroprocesorowe operują na wartościach binarnych, wartość tej liczby zostaje zamieniona na postać zero-jedynkową, czyli 00001010. 2

Oto przykładowy program PLC utworzony metodą IL: Przykładowe instrukcje języka IL L.p. Mnemonik OPIS 1. LD n Ładuj operand (n numer bitu) 2. LDN n Ładuj operand z negacją 5. A n Iloczyn logiczny AND 6. O n Suma logiczna OR 7. ALD Łączenie w iloczynie 8. OLD Łączenie w sumie 12. JMP n Instrukcja skoku pod adres etykiety n 14. RET Instrukcja powrotu z podprogramu Język ten składa się z sekwencji instrukcji, z których każda powinna zaczynać się od nowej linii. Instrukcja powinna zawierać nazwę operatora oraz operand, może być poprzedzona etykietą zakończoną dwukropkiem. 1.2. Język strukturalny ST Język strukturalny ST (Structured Text) należy do grupy języków tekstowych. Jest on przeznaczony głównie do opisu złożonych wyrażeń, których nie można zrealizować w językach graficznych (lub jest to bardzo utrudnione). Na rysunku 1 przedstawiono fragment zapisu w tym języku. Język ST jest podstawowym językiem używanym do opisywania akcji w poszczególnych krokach i warunkach struktur wyrażonych w językach SFC i FC. Podstawowymi elementami języka są wyrażenia i polecenia. Wyrażenia dostarczają wartości odpowiadające określonemu typowi danych. Składają się one z operatorów i operandów. Operandem może być zmienna, stała, funkcja lub inne wyrażenie. 3

Obliczenia są wykonywane przez zastosowanie operatorów do operandów według ściśle określonej kolejności priorytetów. Podstawowymi poleceniami języka są: instrukcja przypisania np. a:= b, RETURN, IF... ELSEIF... ELSE... END_IF, CASE... ELSE... END_CASE, FOR... TO... DO... END_FOR, WHILE... END_WHILE, REPEAT... UNTIL... END_REPEAT, EXIT. W postaci tekstowej język ten ujmuje zdefiniowane w normie standardowe funkcje i bloki funkcyjne. 1.3. Język schematów blokowych (FBD) Tworzenie programu sterującego PLC z wykorzystaniem języka FBD polega na używaniu w programie sterującym właściwych tej metodzie bloków graficznych, reprezentujących gotowe instrukcje programowe. Bloki te dostępne są w bibliotece modułów, a zasada ich użycia polega na wywołaniu bloku i umieszczeniu go we właściwym miejscu ekranu monitora. Powstaje w ten sposób struktura graficzna programu sterującego. Funkcje te są widziane w edytorze programu jako prostokąty z opisanymi zmiennymi wejściowymi i wyjściowymi. Przykład bloku graficznego 4

Przedstawiony blok wykonuje operację iloczynu logicznego AND na dwóch operandach bitowych I0.3 i I0.0. W języku FBD dla tego typu instrukcji nie istnieje instrukcja odwrotna, np. AND NAND, jak to ma miejsce w metodzie IL A i AN. Tu dla wykonania instrukcji logicznych, gdzie jeden z operandów jest zanegowany, należy posłużyć się znakiem negacji kółkiem. Przedstawiony blok AND może być używany w programie sterującym jako pojedyncza instrukcja programowa, zwracająca rezultat wykonanej operacji, lub może być użyty jako część składowa sieci instrukcji. Sieć instrukcji powstaje na skutek użycia wielu bloków FBD połączonych liniami na ekranie monitora. Przykład sieci FBD dla programu sterującego zawartego w BLOCK_2: Realizacja programu w tym języku opiera się na przepływie sygnału analogicznie do przepływu sygnału pomiędzy elementami systemu przetwarzania sygnału. Przepływ sygnału następuje z wyjścia (prawa strona) funkcji lub bloku funkcyjnego do przyłączonego wejścia (lewa strona) następnej funkcji lub bloku funkcyjnego. Definicja obwodu oraz zasady obowiązujące przy wykonywaniu programu są analogiczne jak w języku schematów drabinkowych. Nie powinny być natomiast łączone razem wyjścia bloków funkcyjnych, należy użyć jawnie funkcji logicznej. Wyjścia bloków funkcyjnych nie powinny być łączone. 5

Na przykład realizacja sumy logicznej OR poprzez równoległe łączenie elementów w węzeł (wired-or) jak w języku LD, jest niedopuszczalne. Należy użyć jawnie funkcji logicznej OR. 1.4. Sekwencyjny język graficzny SFC Język ten jest podstawowym językiem zdefiniowanym w normie IEC 1131-3. Opisuje on operacje, wykorzystując prostą reprezentację graficzną dla poszczególnych kroków procesu i warunków nazywanych tranzycjami. Wyrósł on na gruncie metod opisu automatów sekwencyjnych, do których zalicza się: metodę polegającą na użyciu grafu przejść (każdy węzeł grafu jest związany ze stanem automatu, natomiast łuk grafu jest określony przez zmienną logiczną lub funkcję kilku zmiennych); metodę tablicy stanów (liczba kolumn rośnie wykładniczo ze wzrostem liczby wejść np. dla 20 wejść w tablicy stanów potrzeba więcej niż milion kolumn); ściśle związany z fizyczną realizacją metody schematów drabinkowych opierającą się na analogii do schematów przekaźnikowych. Opis działania sterownika jest realizowany w postaci sekwencji SFC (Sequential Function Chart). Proces cykliczny jest podzielony na kolejne kroki oddzielone warunkami logicznymi. Na rysunku obok pokazano fragment edytora graficznego SFC. Formalizm ten może być wykorzystany przy programowaniu sterownika w celu stworzenia odpowiedniej struktury wewnętrznej programu. 6

Zwykle do opisu poszczególnych akcji związanych z krokami i warunkami wykorzystuje się inne języki. Język ten umożliwia równoległe przejście pomiędzy dwoma krokami lub tranzycjami, co oznacza, że istnieje w nim możliwość równoległego przetwarzania części programu. Język diagramów przepływowych FC Struktura tego języka jest zbliżona do języka SFC. Występują w nim dwa podstawowe bloki: blok akcji i blok testu (decyzyjny). Język ten można interpretować jako algorytm blokowy działania układu, który może być użyty do opisywania operacji sekwencyjnych z dodatkowymi możliwościami, których nie posiada SFC. Struktura programu składa się z bloków akcji i testów połączonych zorientowanymi liniami (strzałkami), które przedstawiają przebieg (kierunek) realizacji programu. Podstawowe graficzne elementy języka FC to: Begining of FC początek FC; Ending of FC - koniec FC; Flow links FC kierunek przejścia FC; FC Action - akcja FC; FC test - warunek decyzyjny FC; FC sub-program wywołanie podprogramu FC; FC I/O specyfic action akcja dodatkowa FC; FC connectors połączenie FC; FC comments komentarz FC. Podobnie jak w przypadku języka SFC do wypełnienia bloków akcji i testów wykorzystuje się inne języki, takie jak na przykład język schematów drabinkowych, język listy instrukcji lub język strukturalny. Język ten nie należy do języków objętych normą IEC 1131-3. 7

2. Charakterystyka języka schematów drabinkowych LD (na przykładzie sterowników GE Fanuc) Język ten umożliwia realizację zadań sterowania za pomocą standaryzowanych symboli graficznych, wynikających z listy symboli sterownika. Uwzględniając następnie właściwe zasady tworzenia programu sterującego umieszcza się te symbole w odpowiednich miejscach ekranu, tworząc tym samym strukturę programu sterującego. Różne symbole używane w programie sterującym oznaczają zarówno operandy, jak i instrukcje. Do połączeń operandów używane są tzw. linie łączące. W wyniku takich połączeń otrzymujemy np.: funkcje sumy logicznej, iloczynu logicznego, itp. Dopuszcza się również używanie zdefiniowanych bloków reprezentujących gotowe bloki funkcyjne, np.: Timer, Counter. Jest to tradycyjny język programowania sterowników, zapisany w formie szczebli, wykonywany jest od góry do dołu. Program sterujący wykonywany jest szczebel po szczeblu kolejno od lewej do prawej strony każdego szczebla. Przepływ sygnału logicznego w każdym ze szczebli jest kontrolowany przez prosty zestaw funkcji programistycznych, pracujących podobnie jak przekaźniki i styki mechaniczne. To czy styk prześle sygnał logiczny wzdłuż szczebla zależy od wartości zmiennej związanej z tym stykiem w programie. Przykładowo, styk może przesyłać sygnał logiczny, jeżeli powiązana z nim zmienna ma wartość 1. Ten sam styk nie będzie przesyłał sygnału logicznego, jeżeli powiązana z nim zmienna ma wartość 0. 8

Jeżeli styk lub inna funkcja występująca w szczeblu nie przesyła dalej sygnału logicznego, pozostałe elementy szczebla nie są wykonywane. Sygnał przepływa wzdłuż lewej szyny w dół i dochodzi do następnego szczebla. Szczebel może zawierać wiele złożonych funkcji do przemieszczania danych w pamięci, przeprowadzania obliczeń matematycznych, czy sterowania komunikacją pomiędzy sterownikiem a pozostałymi urządzeniami w systemie. Elementy obwodu mogą być łączone poziomo - szeregowo (stan tego połączenia odpowiada iloczynowi logicznemu), lub pionowo równolegle (suma logiczna). W przypadku języka LD wykonywanie programu polega na przepływie prądu, przy czym obowiązują następujące zasady: wartość żadnego elementu obwodu nie powinna być wyznaczona dopóki nie wyznaczono wartości wszystkich jego wejść, wyznaczenie wartości elementu obwodu nie może być zakończone dopóki nie wyznaczono wartości dla wszystkich jego wyjść, wykonanie programu dla całego obwodu nie jest zakończone dopóki nie wyznaczono wartości wyjść dla wszystkich elementów tego obwodu, kolejne obwody powinny być wyznaczane w kolejności z góry na dół, tak jak pojawiają się w języku drabinkowym, wyjątkiem będzie wprowadzenie elementów kontrolnych (np. warunek skoku, powrót warunkowy lub bezwarunkowy). każdy blok powinien zawierać przynajmniej jedno wejście i wyjście logiczne by umożliwić przepływ prądu przez blok. 9

Podczas pisania programu należy przestrzegać następujących zasad: 1. Program wykonywany jest wg kolejności szczebli występujących w schemacie drabinkowym, od szczebla pierwszego do ostatniego. 2. Sygnał przepływa od lewej strony szczebla (od szyny zasilającej) do prawej. 3. Jeśli w szczeblu występują połączenia równolegle, to najpierw sprawdzana jest linia położona najniżej. 4. W każdym szczeblu może występować maksymalnie 8 linii równoległych. 5. W każdej linii może znajdować się do 10 elementów połączonych szeregowo. 6. Przekaźniki występują zawsze po prawej strome na końcu linii. 7. W jednym szczeblu nie mogą wystąpić przekaźniki uruchamiane przez różną kombinacje styków (przez różne funkcje logiczne). Przekaźniki takie musza znajdować się w oddzielnych szczeblach drabiny. 8. Jeśli szczebel zawiera przekaźnik załączany zboczem sygnału sterującego to powinien to być jedyny przekaźnik w tym szczeblu. 9. Szczebel musi zawierać przynajmniej jeden styk przed przekaźnikiem, instrukcją, blokiem funkcyjnym, funkcją lub linia pionową - aby spełnić ten wymóg, można użyć styk otwarty ze zmienną systemową (ALW_ON). 10. Konstrukcja szczebla musi być poprawna z logicznego punktu widzenia. 11. Nie może wystąpić rozgałęzienie mające początek lub koniec wewnątrz innego rozgałęzienia. 12. Każda funkcja i blok funkcyjny posiadają wejście uaktywniające (enable), które jest zawsze zaznaczone na schemacie jako wejście główne. Funkcja lub blok wykonywane są tylko wtedy, gdy do tego wejścia dopływa sygnał (prąd). 13. W szczeblu zawierającym funkcje lub blok funkcyjny nie mogą wystąpić rozgałęzienia rozpoczynające się od linii pionowej z wyjątkiem przekaźników. 10

14. W szczeblu zawierającym funkcje lub blok funkcyjny po prawej stronie bloku nie mogą wystąpić żadne styki. 15. Funkcje posiadają zwykle wyjście umożliwiające przekazanie sygnału (prądu) do elementów znajdujących się po prawej stronie funkcji. Wyjście to znajduje się na schemacie po prawej stronie u góry i jest oznaczone jako OK. W zależności od rodzaju funkcji, sygnał na wyjściu OK. może pojawić się w każdym cyklu sterowania, w którym funkcja jest aktywna, bądź tylko wtedy, gdy funkcja została wykonana poprawnie. Dla większości funkcji wyjście to jest opcjonalne i nie musi być używane. Używanie rejestrów, z których korzystają bloki (liczniki, czasomierze, funkcje PID) w innych blokach może prowadzić do ich niepoprawnego działania. 2.1. Podstawowymi elementami schematu drabinkowego są: przekaźniki (relays) W skład przekaźnika wchodzą: cewka - przekazuje stan połączenia z lewej strony na prawą powodując jednocześnie zapamiętanie stanu połączenia z jej lewej strony przez przypisaną jej zmienną logiczną, styki - są elementami przekazującymi 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 przypisanej mu wartości logicznej. Styk nie modyfikuje wartości skojarzonej z nim zmiennej. Możemy wyróżnić przekaźniki typu latch (zatrzask) z podtrzymaniem sygnału wejściowego sygnałem wyjściowym, przekaźniki impulsowe reagujące tylko na zmianę stanu wejściowego (przejście z 0 na 1 lub odwrotnie). Czasomierze (Timery) umożliwiają realizację uwarunkowań czasowych w programie sterującym zliczając czas. Możemy wyróżnić czasomierze załączające, sygnał na wyjściu pojawi się gdy wejście będzie w stanie wysokim i upłynie czas zadany. W czasomierzach wyłączających sygnał na wejściu powoduje wyzerowanie czasomierza i przejście wyjścia w stan wysoki, zanik sygnału wejściowego rozpoczyna odliczanie zadanego czasu, po osiągnięciu którego następuje zanik sygnału na wyjściu. 11

Liczniki Rozróżniamy liczniki zliczające w górę i liczniki zliczające w dół, służą one do zliczania zdarzeń. Zmiana wejścia licznika z 0 na 1 powoduje zwiększenie lub zmniejszenie wartości bieżącej o jeden. Każdy czasomierz i licznik wykorzystuje kolejne trzy słowa pamięci (rejestry) w których przechowuje wartość bieżącą, wartość zadaną oraz słowo kontrolne. 2.1.1. Rodzaje styków Styki są stosowane do monitorowania stanu zmiennych. Od stanu zmiennej przypisanej stykowi oraz od typu styku zależy, czy będzie on przekazywał sygnał. Zmienna jest ustawiona (ON) jeżeli jej wartość jest równa 1, zmienna jest nie ustawiona (OFF) jeżeli jej wartość jest równa 0. Styk otwarty Styk taki działa jak wyłącznik, który przekazuje sygnał (zwiera styki), gdy wartość logiczna przypisanej mu zmiennej wynosi 1. Styk zamknięty / Styk taki działa jak wyłącznik, którego styki pozostają zwarte (przekazuje sygnał), gdy wartość logiczna przypisanej mu zmiennej wynosi 0. Przykład Powyżej widzimy przykładowy szczebelek z 10 elementami o nazwach pomocniczych od E1 do E10. Przekaźnik E10 ma wartość logiczną 1, jeżeli zmienne E1, E2, E5, E6 i E9 są równe 1, a zmienne E3, E4, E7 i E8 są równe 0. 12

2.1.2. Przekaźniki Przekaźniki są stosowane do sterowania wartościami zmiennych dyskretnych. Dopływ sygnału do przekaźnika musi być sterowany przez inne elementy logiczne. Przekaźniki natychmiast zmieniają wartość zmiennych, nie przesyłają one sygnału do swojej prawej strony. Jeżeli określony stan zmiennej przypisanej przekaźnikowi ma decydować o wykonaniu pewnej części programu sterującego, należy tam zastosować zmienną wewnętrzną lub przekaźnik i styk kontynuacji. Przekaźniki są zawsze umieszczane skrajnie, po prawej stronie linii programu sterującego. Szczebel może zawierać do ośmiu przekaźników. Typ przekaźnika należy dobrać stosownie do żądanego działania programu sterującego. Stan przekaźników z pamięcią jest zapamiętywany po wyłączeniu zasilania lub po przejściu sterownika z trybu zatrzymania (STOP) do trybu pracy (RUN). Stan przekaźników bez pamięci jest ustawiany na zero po wyłączeniu zasilania lub po przejściu sterownika z trybu zatrzymania (STOP) do trybu pracy (RUN). 13

Przekaźnik o stykach otwartych ( ) Przekaźnik ustawia wartość przypisanej zmiennej jeden, gdy dopłynie do niego sygnał. Jest to przekaźnik bez pamięci, nie może on być zatem zastosowany wraz ze zmiennymi, które cechuje pamięci stanu. Przykład W powyższym przykładzie, przekaźnik ustawia wartość przypisanej mu zmiennej na 1, jeżeli wartość E1 jest równa 1, a wartość E2 jest równa 0. Przekaźnik o stykach zamkniętych (/) Przekaźnik ten ustawia wartość przypisanej zmiennej dyskretnej na jeden, gdy nie dopływa do niego sygnał. Jest to przekaźnik bez pamięci, nie może on być zatem zastosowany wraz ze zmiennymi, które cechuje pamięć stanu. Przykład. W powyższym przykładzie, przekaźnik E3 ustawia wartość przypisanej mu zmiennej na 1, jeżeli wartość E1 jest równa 0. Przekaźnik o stykach otwartych z pamięcią (M) Podobnie jak zwykłe przekaźniki o stykach otwartych, przekaźnik taki ustawia wartość przypisanej mu zmiennej na 1, gdy dopłynie do niego sygnał. Stan przekaźnika zostaje podtrzymany w przypadku zaniku zasilania sterownika. Z tego powodu, nie może być on zatem zastosowany wraz ze zmiennymi, które nie posiadają pamięci stanu. 14

Przekaźnik o stykach zamkniętych z pamięcią (/M) Przekaźnik taki ustawia wartość przypisanej mu zmiennej dyskretnej na 1, gdy nie dopłynie do niego sygnał. Stan przekaźnika zostaje podtrzymany w przypadku zaniku zasilania. Z tego powodu, nie może być on zatem zastosowany wraz ze zmiennymi, które nie posiadają pamięci stanu. Przekaźnik uaktywniany zboczem narastającym sygnału (P) Jeżeli wartość zmiennej przypisanej przekaźnikowi wynosi 0, w momencie dotarcia do niego sygnału, wartość ta zostaje ustawiona na 1, do czasu wykonania tej instrukcji w następnym cyklu. Przekaźniki ustawiane zboczem sygnału mogą być stosowane ze zmiennych z pamięcią lub bez pamięci stanu. Przekaźnik uaktywniany zboczem opadającym sygnału (N) Jeżeli wartość zmiennej przypisanej przekaźnikowi wynosi 0, w momencie, gdy przestaje do niego dopływać sygnał, wartość ta zostaje ustawiona na 1, do czasu wykonania tej instrukcji w następnym cyklu. Przekaźniki ustawiane zboczem sygnału mogą być stosowane ze zmiennych z pamięcią lub bez pamięci stanu. Przykład W powyższym przykładzie zmienna E1 zmienia wartość z 0 na 1, sygnał dopływa do przekaźnika E2 i E3, a zmienna związana z E2 zmienia wartość z 1 na 0, sygnał przestaje dopływać do E2 i E3, przez co zmienna związana z przekaźnikiem E3 przyjmuje wartość 1 na okres jednego cyklu 15

2.1.3. Bloki funkcyjne Możemy wyróżnić następujące rodzaje bloków funkcyjnych: - Liczniki i przekaźniki czasowe - Funkcje matematyczne - Relacje matematyczne - Operacje bitowe - Operacje na danych - Operacje tablicowe - Funkcje konwersji - Funkcje sterujące Poniżej zostały przedstawione najczęściej stosowane bloki funkcyjne: Liczniki i przekaźniki czasowe blok TMR Program sygnalizacyjny, że sygnał aktywny na wejściu I1 trwał nieprzerwanie przynajmniej 10 sekund: Przekaźnik czasowy bez pamięci. Sygnał na wejściu I1 uaktywnia blok funkcyjny TMR. Następuje zliczanie czasu, którego wartość przechowywana jest w rejestrze R1. Dla każdego bloku funkcyjnego TMR należy zarezerwować trzy kolejne rejestry. Wartość zadana wynosi 100 i jest ona podana w dziesiątych częściach sekundy. Po osiągnięciu zadanej wartości na wyjściu przekaźnika Q1 pojawi się sygnał wysoki. Każdorazowy zanik sygnału na wejściu I1 powoduje wyzerowanie licznika. 16

Liczniki i przekaźniki czasowe blok ONDTR Program sygnalizujący, że sygnał aktywny na wejściu I1 trwał przynajmniej 10 sekund. Przekaźnik czasowy z pamięcią. Zlicza on czas gdy dopływa do nigo sygnał i zatrzymuje liczenie po zaniku sygnału. Zerowanie wymaga drugiego sygnału. Liczniki i przekaźniki czasowe blok UPCTR Program sygnalizujący, że do wejścia I1 dotarło przynajmniej 10 impulsów: Licznik zliczający w górę. Służy on do zliczania impulsów od 0 do wartości zadanej. Każda zmiana sygnału I1 z 0 na 1 powoduje zwiększenie jego wartości bieżącej o 1. Podanie sygnału na I2 powoduje wyzerowanie licznika. Po zliczeniu wartości zadanej przesyłany jest sygnał do przekaźnika M1. Na ten licznik należy zarezerwować trzy kolejne rejestry. Funkcja matematyczna blok ADD Dodawanie liczby 26 do liczby w rejestrze R44. Do dodawania liczb wykorzystano blok ADD_INT. Służy on do dodawania liczb całkowitych. Pierwszy operand to stała równa 26, drugi liczba w rejestrze R44. Wynik operacji przesyłany jest do rejestru R50. 17

Relacje matematyczne Blok EQ Sprawdzenie, czy liczba w rejestrze R1 to liczba 16 Blok EQ pozwala na porównanie dwóch liczb. Jeżeli parametry wejściowe spełniają relację równości, przesyłany jest sygnał potwierdzający Q. Operacje na danych blok MOVE Skopiowanie słowa bitowego z rejestru R1 na wyjście, od adresu Q1 Do przemieszczania danych jako pojedynczych bitów służy funkcja MOVE. Ponieważ dane są przesyłane jako bity, nowy adres nie musi odpowiadać temu samemu typowi danych, co adres oryginalny. Skopiowanie jednego słowa na wyjście począwszy od Q1, spowoduje, że wynik zajmie szesnaście kolejnych lokacji. 3. Organizacja zmiennych w sterownikach PLC Lokalizacja danych w pamięci sterownika GE Fanuc Dane wykorzystywane w programie sterującym przechowywane są jako zmienne rejestrowe lub zmienne dyskretne. Pamięć zorientowana rejestrowo Każdy adres w pamięci zorientowanej rejestrowo oznacza pojedyncze słowo bitowe (o długości 16 bitów). W pamięci tego typu przechowywane są następujące dane: %AI wartość wejściowych zmiennych analogowych, %AQ wartość wyjściowych zmiennych analogowych %R rejestry służące do przechowywania danych liczbowych 18

Typy zmiennych rejestrowych Typ Opis %R Rejestr w którym można przechowywać dane programu sterującego (np. wyniki obliczeń). Symbolowi powinien towarzyszyć adres rejestru (np.%r00201). %AI Zmienna ta przechowuje wartość jednego rejestru wejścia analogowego lub inną wartość. Po przedrostku podawany jest adres rejestru (np.%ai0015). %AQ Zmienna ta przechowuje wartość jednego rejestru wyjścia analogowego lub inną wartość. Po przedrostku podawany jest adres rejestru (np.%aq0056). Pamięć zorientowana bitowo Każdy adres w pamięci oznacza pojedynczy bit, który może przyjmować wartości 0 lub 1 Typy zmiennych dyskretnych Typ Opis %I Wartości wejściowych zmiennych dyskretnych. Po symbolu podawany jest adres zmiennej w tabeli stanu wejść (np.%i00121). Wartości wszystkich zmiennych typu %I są umieszczane w tabeli stanu wejść, przechowywany jest w niej aktualny stan wszystkich wejść sterownika. Do momentu przyporządkowania adresu zmiennej moduł wejść nie przesyła żadnych danych do sterownika. Zmienne typu %I mogą posiadać pamięć stanu. %Q Wartości wyjściowych zmiennych dyskretnych. Po symbolu podawany jest adres zmiennej w tabeli stanu wyjść (np.%q00016). Wartości wszystkich zmiennych typu %Q umieszczane są w tabeli stanu wyjść, przechowywany jest w niej aktualny stan wszystkich wyjść sterownika. Do momentu przyporządkowania adresu zmiennej, 19

nie są przesyłane żadne dane do modułu. Zmienne typu %Q mogą posiadać pamięć stanu. %M Wewnętrzne zmienne dyskretne programu sterującego. Zmienne typu %M mogą posiadać pamięć stanu. %T Wartość wewnętrznych dyskretnych zmiennych programu sterującego, bez pamięci stanu. Wartości zmiennych typu %T nie są przechowywane w przypadku utraty zasilania lub przejścia w tryb STOP i następnie w tryb RUN Zmienne te nie mogą być wykorzystywane w przekaźnikach z pamięcią. %S Przedrostek %S umieszczany jest przed zmiennymi systemowymi. Umożliwiają one dostęp do danych systemowych, takich jak informacje o błędach działania sterownika, pracy modułów wejść/wyjść. Wśród zmiennych systemowych można wyróżnić cztery grupy, oznaczone odpowiednio symbolami %S, %SA, %SB oraz %SC. - Zmienne %S, %SA, %SB i %SC mogą być przypisane dowolnym stykom. - Zmienne %SA, %SB i %SC mogą być przypisane przekaźnikom z pamięcią stanu. - Zmienne %S można używać jako zmienne wejściowe funkcji i bloków funkcyjnych. - Zmienne %SA, %SB i %SC mogą być wykorzystane jako parametry wejściowe lub wyjściowe bloku funkcyjnego. %G Wartości zmiennych globalnych. Umożliwiają one dostęp do danych wspólnie wykorzystywanych przez kilka sterowników. Zmienne typu %G zawsze posiadają pamięć stanu i mogą być przypisywane stykom i przekaźnikom z pamięcią stanu. Nie mogą być natomiast przypisywane do przekaźników bez pamięci. 20

3.1. Nazwy zmiennych Nazwa zmiennej może mieć długość od 1 do 7 znaków. W nazwie można stosować litery od A do Z, cyfry od 0 do 9. Pierwszy znak musi być literą. Nazwy zmiennych przypisuje się w tablicy deklaracji zmiennych. Używanie nazw nie jest obowiązkowe. %Q0004 zmienna Q4 Lampa_3 nazwa zmiennej Q4 Nazwa zmiennej nie rozróżnia małych i dużych liter chyba, że w procedurze zdefiniowano globalną nazwę zmiennej. Wtedy nazwa globalna jest pisana małymi literami, a nazwa lokalna dużymi Używanie nazw zmiennych i opisów zmiennych W programach sterujących można stosować nazwy zmiennych i opisy zmiennych, aby uczynić program bardziej czytelnym i łatwiejszym do zrozumienia dla użytkownika. Zmienne z pamięcią stanu i zmienne bez pamięci stanu Zmienne cechują się pamięcią stanu, jeśli obszar pamięci, w których przechowywane są wartości zmiennych jest automatycznie zachowywany w przypadku zatrzymania sterownika (przejście z trybu RUN w tryb STOP) lub w przypadku utraty i ponownego włączenia zasilania. Pamięcią stanu cechują się następujące dane i zmienne: Program sterujący Tablice błędów i dane diagnostyczne Bity wymuszenia stanu Zmienne rejestrowe (%R, %AI, %AQ) Zmienne bitowe %I, %SC, %G, bity błędów i bity zarezerwowane) Zmienne rejestrowe przechowywane w pamięci %Q i %M Zmienne typu %Q i %M wykorzystywane jako zmienne wyjściowe bloków funkcyjnych lub skojarzone z przekaźnikami z pamięcią stanu pod warunkiem 21

że przy zmiennych tych zaznaczono opcję Ret (retentive) w tablicy deklaracji zmiennych. O tym, czy zmienne cechuje pamięć stanu, czy nie, decyduje rodzaj przekaźnika w programie sterującym, z którym zmienna została użyta po raz ostatni. Następujące dane i zmienne nie dysponują pamięcią stanu: Zmienne %T Zmienne systemowe %S, %SA i %SB Zmienne typu %Q i %M nie zadeklarowane jako zmienne z pamięcią Zmienne typu %Q i %M skojarzone z przekaźnikami bez pamięci stanu. 4. Przykład sterowanie poziomem wody w zbiorniku w języku LD Zawór zasilający V 101 Zbiornik wody LHH-101 Czujnik poziomu górnego LH-101 Czujnik poziomu dolnego Z-101 Odpływ wody Deklaracja zmiennych użytych w programie Zmienna Nazwa symboliczna Opis % I0001 START Przycisk załączenia automatyki % I0002 STOP Przycisk wyłączenia automatyki % I0003 LH-101 Czujnik poziomu dolnego % I0004 LHH-101 Czujnik poziomu górnego % Q0002 Z-101 Wyjście załączenia elektrozaworu % M0001 AUTO Przekaźnik pomocniczy RS % M0002 WODA Przekaźnik pomocniczy RS 22

Styki AUTO, WODA oraz przekaźniki AUTO WODA są elementami wirtualnymi. Zrzut fragmentu programu sterującego Styki zwierne START, STOP, LH-101 i LHH-101 są stykami fizycznymi podłączonymi do wejść sterownika. Przekroczenie ustawionego poziomu powoduje zwarcie styków w czujniku LHH-101 Jedynym wyjściem fizycznym jest przekaźnik Z-101 przypisany do wyjścia Q2 Literatura: 1. ASTOR: GE Fanuc Automation. Sterowniki programowalne VersaMax Micro. Podręcznik użytkownika. Warszawa, 2006. 2. Kasprzyk, Jerzy: Programowanie sterowników przemysłowych. WNT. Warszawa, 2006. 3. Mikulczyński, Tadeusz: Automatyzacja procesów produkcyjnych. WNT. Warszawa, 2009. 23