Sterowniki Programowalne (SP) Wykład #7 Język programowania PLC (Instruction List - IL)

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

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

Sterowniki Programowalne (SP) Wykład #8 ęzyk programowania PLC (Structured Text - ST)

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Sterowniki Programowalne (SP)

Notatka Aplikacyjna NA 03006PL Maj 2016

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).

Opracował: Jan Front

Struktura i działanie jednostki centralnej

Architektura komputerów

Sterowniki Programowalne (SP) - Wykład #1 Wykład organizacyjny

Sterowniki Programowalne (SP)

Czym jest IEC ?

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

Sterowniki Programowalne (SP) Automatyka i Robotyka Wydział Elektrotechniki i Automatyki Politechnika Gdańska

Sterowniki Programowalne (SP) Wykład #4

Sterowniki Programowalne (SP) Wykład 11

Mikrokontroler ATmega32. Język symboliczny

Sterowniki Programowalne (SP) - Wykład #1 Wykład organizacyjny

PROJEKT WSPÓŁFINANSOWANY ZE ŚRODKÓW UNII EUROPEJSKIEJ W RAMACH EUROPEJSKIEGO FUNDUSZU SPOŁECZNEGO OPIS PRZEDMIOTU. Sieci i sterowniki przemysłowe

Podstawy programowania. 1. Operacje arytmetyczne Operacja arytmetyczna jest opisywana za pomocą znaku operacji i jednego lub dwóch wyrażeń.

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Sterowniki programowalne

Programowanie Niskopoziomowe

Katedra Systemów Cyfrowego Przetwarzania Sygnałów

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

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

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

CoDeSys 3 programowanie w języku drabinkowym LD

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

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

Sterowniki Programowalne (SP)

4 Literatura. c Dr inż. Ignacy Pardyka (Inf.UJK) ASK MP.01 Rok akad. 2011/ / 24

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

Procesor ma architekturę rejestrową L/S. Wskaż rozkazy spoza listy tego procesora. bgt Rx, Ry, offset nand Rx, Ry, A add Rx, #1, Rz store Rx, [Rz]

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

Algorytmika i Programowanie VBA 1 - podstawy

E-4EZA1-10-s7. Sterowniki PLC

CoDeSys 3 programowanie w języku FBD

Architektura systemów komputerowych Laboratorium 14 Symulator SMS32 Implementacja algorytmów

Programowanie. programowania. Klasa 3 Lekcja 9 PASCAL & C++

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

Budowa komputera Komputer computer computare

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

Języki programowania zasady ich tworzenia

Tworzenie prostego programu w językach ST i LD

Projektowanie. Projektowanie mikroprocesorów

Wydział Zarządzania AGH. Katedra Informatyki Stosowanej. Podstawy VBA cz. 1. Programowanie komputerowe

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

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

Podstawy programowania w języku C

Politechnika Gdańska. Gdańsk, 2016

Podstawy programowania sterowników GeFanuc

Lista instrukcji procesora 8051 część 2 Skoki i wywołania podprogramów, operacje na stosie, operacje bitowe

Architektura komputerów. Asembler procesorów rodziny x86

Przeciążanie operatorów

Sterowniki Programowalne (SP) Wykład 6

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

NOWOCZESNE METODY KSZTAŁTOWANIA UMIEJĘTNOŚCI ZAWODOWYCH STANOWISKA TECHNODYDAKTYCZNE

PLC - język tekstu strukturalnego ST

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

NOWOCZESNE METODY KSZTAŁTOWANIA UMIEJĘTNOŚCI ZAWODOWYCH STANOWISKA TECHNODYDAKTYCZNE

Norma IEC definiuje podział na dwie zasadnicze grupy:

Emulator sterowników PLC serii FX

Systemy Czasu Rzeczywistego (SCR)

Instrukcja do ćwiczeń nr 4 typy i rodzaje zmiennych w języku C dla AVR, oraz ich deklarowanie, oraz podstawowe operatory

PoniŜej znajdują się pytania z egzaminów zawodowych teoretycznych. Jest to materiał poglądowy.

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

Operacje wykonywane są na operandach (argumentach operatorów). Przy operacji dodawania: argumentami operatora dodawania + są dwa operandy 2 i 5.

Instrukcje warunkowe i skoku. Spotkanie 2. Wyrażenia i operatory logiczne. Instrukcje warunkowe: if else, switch.

METODY I JĘZYKI PROGRAMOWANIA PROGRAMOWANIE STRUKTURALNE. Wykład 02

Zasady wykonywania programu drabinkowego w sterowniku

CPU ROM, RAM. Rejestry procesora. We/Wy. Cezary Bolek Uniwersytet Łódzki Wydział Zarządzania Katedra Informatyki

INFORMATYKA W SZKOLE. Podyplomowe Studia Pedagogiczne. Dr inż. Grażyna KRUPIŃSKA. D-10 pokój 227

Kurs SIMATIC S7-300/400 i TIA Portal - Podstawowy. Spis treści. Dzień 1. I System SIEMENS SIMATIC S7 - wprowadzenie (wersja 1503)

1 Podstawy c++ w pigułce.

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

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

UTK Można stwierdzić, że wszystkie działania i operacje zachodzące w systemie są sterowane bądź inicjowane przez mikroprocesor.

Programowanie Niskopoziomowe

Architektura systemów komputerowych

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

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

Zadanie Zaobserwuj zachowanie procesora i stosu podczas wykonywania następujących programów

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

Architektura komputerów

Technika mikroprocesorowa I Wykład 2

Wprowadzenie do programowania

" Sterowniki programowalne f.1/1

Programowanie Niskopoziomowe

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja cz. 1

System operacyjny Linux

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Programowanie w C++ 1 Opis procesora Sextium II. Opis procesora Sextium. materiały dydaktyczne udostępnione przez Tomasza Wierzbickiego

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

Język ludzki kod maszynowy

DOBÓR JĘZYKA PROGRAMOWANIA KONTROLERA PLC

Wykład II PASCAL - podstawy składni i zmienne, - instrukcje wyboru, - iteracja, - liczby losowe

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

Systemy wbudowane. Przykłady kodu Assembler

Transkrypt:

Sterowniki Programowalne (SP) Wykład #7 Język programowania PLC (Instruction List - IL) WYDZIAŁ ELEKTROTECHNIKI I AUTOMATYKI KATEDRA INŻYNIERII SYSTEMÓW STEROWANIA Jarosław Tarnawski październik 2016

Zawartość wykładu Norma IEC 61131 i rodzaje języków programowania Języki niskopoziomowe i wysokopoziomowe Czy w każdym PLC/PAC jest dostępny każdy język programowania? Akumulator i stos; sposób działania stosu Lista rozkazów IL Analogie LD i IL w styki/przekaźniki Operacje binarne z pośrednictwem stosu Realizacje niskopoziomowe funkcji wysokopoziomowych Zasoby IL dla PLC GE Fanuc 90-30 Sposoby wywołania przekaźników czasowych i liczników Wywołanie bloku IL z programu głównego w LD Deklarowanie zmiennych Definiowanie pamięci na potrzeby Akumulatora i Stosu Regulator dwustanowy w IL; program sygnalizacji świetlnej w IL Wady i zalety języka IL Bibliografia

Norma IEC 61131 Norma IEC61131 - Programmable Logic Controllers składa się z 5 części: W trzeciej części IEC61131-3 zdefiniowano języki programowania PLC. Dzięki definicji i ujednoliconemu sposobowi programowania użytkownicy mogą oczekiwać bardzo podobnego sposobu programowania PLC różnych producentów. Określono model programowy, model komunikacyjny, typy i struktury danych. Zawartość normy: 1. Informacje ogólne (General Information) 2. Sprzęt i wymagania testowe (Equipment and Test Requirements) 3. Języki programowania (Programing Languages) 4. Wytyczne użytkownika (User Guidelines) 5. Wymiana informacji (Messaging Service)

Norma IEC 61131 Norma IEC61131 - Programmable Logic Controllers definiuje następujące języki programowania: Języki graficzne: 1. Język drabinkowy (Ladder Diagram LD) 2. Język bloków funkcyjnych (Function Block Diagram - FBD) Języki tekstowe: 3. Lista instrukcji (Instruction List IL) 4. Tekst strukturalny (Structured Text - ST) 5. Język grafów strukturalnych (Sequential Function Chart - SFC) Niektórzy producenci dostarczają moduł programowania w języku C, ale nie jest on zdefiniowany w normie!

Języki tekstowe programowania PLC Cechy Instruction List IL Język niskopoziomowy Podobny do: Assembler Cechy: Mnemoniki, Akumulator, Stos Typowe Rozkazy: LD wartosc GT 10 JMPC skok1 LD adres1 ST wynik skok1: LD adres2 ST wynik JMP etykieta etykieta: Structured Text ST Język wysokopoziomowy Podobny do: Pascal, C, Basic Cechy: Operator podstawienia := Koniec wiersza ; Kontrola typów danych 0.0 <> 0 Typowe Rozkazy: If..then..else..end_if; Case..of..end_case For..to..do..end_for; While..do..end_while; Repeat..until..end_repeat

Języki programowania dostępne w PLC/PAC GE Fanuc 90-30 PACs SoftPLC (Proficy ME) LD IL C LD FBD ST C LD IL ST FDB SFC LD Ladder Diagram język drabinkowy FDB Function Block Diagram schematy bloków funkcyjnych IL Instruction List lista instrukcji ST Structured Text język strukturalny SFC Sequential Function Chart graf sekwencji C język C

Język assemblera Język niskopoziomowy przedostatni poziom przed językiem maszynowym Rozkazy odpowiadają jednemu kodowi maszynowemu Język symboliczny ułatwiający programowanie, zapamiętanie np. polecenia LOAD jest łatwiejsze niż odpowiadającemu mu kodowi operacji maszynowej wraz z trybami adresowania i argumentami Mnemoniki to nazwa krótkich rozkazów wykonywanych przez procesory Procesory RISC (Reduced Instruction Set Computers) CISC (Complex Instruction Set Computers) w zależności od listy rozkazów

Zasady języka IL Jak czytamy w normie: Lista instrukcji składa się z instrukcji! Każda instrukcja powinna zaczynać się w nowej linii i powinna zawierać operator z ewentualnym modyfikatorem i jeśli to konieczne dla konkretnej operacji jeden lub więcej operandów oddzielanych przecinkiem. Instrukcja może być poprzedzona etykietą zakończoną znakiem : Pomiędzy instrukcje mogą być wprowadzane puste linie. Komentarze zawierają się wewnątrz znaków (* *) etykieta operator operand Komentarz start: LD %I1 (*Naciśnięty przycisk*) ANDN %M1 (*Brak blokady*) ST %Q1 Załącz urządzenie

Akumulator Akumulator (A) to rejestr w pamięci, który jest podstawą działania języka IL. Jest wykorzystywany do: wczytywania do niego wartości z komórek pamięci PLC, wykonywania operacji matematycznych/logicznych, przechowywania tymczasowych wyników, kopiowania stanu akumulatora do wybranych komórek pamięci. Podstawowe operacje: LD pamiec1 (od LOAD) - załaduj stan komórki pamiec1 do A ST pamiec2 (od STORE) zapisz stan A pod adres pamiec2 Może obsługiwać różne typy danych (BOOL, INT, REAL). W programowaniu obiektowym nazywa się to przeciążaniem. Dane dla jednej operacji muszą być zawsze tego samego typu.

Operacje na pamięci Zapisanie komórki pamięci odbywa się z pośrednictwem akumulatora Zawartość komórki pamięci %M1 zapisana jest do %Q2 LD %M1 ST %Q2 Zawartość rejestru %R3 zapisana jest na wyjście analogowe %AQ1 LD %R3 ST %AQ1

Operacje na bitach, analogie LD i IL LD_BOOL we1 AND we2 ST_BOOL wy1 LD_BOOL we3 OR we4 STN_BOOL wy2 LD_BOOL we5 S wy3 LDN_BOOL we6 R wy3

Operacje na bitach, analogie LD i IL LD_BOOL we1 PT wy1 LD_BOOL we2 NT wy2

Stos Liniowa struktura pamięci działająca wg zasady LIFO (ang. Last In First Out). Dostęp do stosu występuje wyłącznie przez wierzchołek stosu. Posiada dwie funkcje do obsługi: Odłóż na stos Pobierz ze stosu push(argument) wynik=pop() PU SH POP Wierzchołek stosu Rozmiar (pojemność stosu) Na rys. 5 elementów

Stos krok1 krok2 krok3 krok4 krok5 krok6 krok7 Push(3) Push(5) Push(1) Push(9) Pop() Pop() Push(2) 3 5 1 9 1 5 2 3 5 1 5 3 5 3 5 3 3 3 Stan stosu po każdej operacji (przy założeniu pustego stosu przed krokiem 1)

Operandy ( oraz ) w języku IL W logice IL występują tzw. operacje zagnieżdżone (ang. nested) do których obsługi wykorzystuje się stos. Operacje wywoływane w programie są z wykorzystaniem znaków nawiasów. Nawias otwierający ( powoduje zapisanie zawartości Akumulatora na stosie natomiast nawias zamykający ) powoduje wczytanie danej z wierzchołka stosu do Akumulatora. Tak jak w przypadku akumulatora stos może być przeładowywany tj. przyjmować różne typy danych (ale dane muszą być tego samego typu dla jednej operacji)

Operandy ( oraz ) w języku IL

Operandy ( oraz ) w języku IL

# Program Akumulator Stos 1 LD_BOOL V_I1 V_I1 Tytuł rozdziału 2 AND( V_I1 Operacje na bitach V_I1 3 LD_BOOL V_I2 V_I2 V_I1 4 OR V_T10 V_I2 OR V_T10 V_I1 5 AND V_11 V_I2 OR V_T10 AND V_T11 V_I1 6 OR( V_I2 OR V_T10 AND V_T11 V_I1 7 LD_BOOL V_T32 V_T32 V_I2 OR V_T10 AND V_T11 V_I1 8 OR V_T33 V_T32 OR V_T33 V_I2 OR V_T10 AND V_T11 V_I1 9 ST_BOOL V_M77 V_T32 OR V_T33 V_I2 OR V_T10 AND V_T11 V_I1 10 ANDN V_T88 V_T32 OR V_T33 ANDN V_T88 V_I2 OR V_T10 AND V_T11 V_I1 11 ) (V_I2 OR V_T10 AND V_T11) OR (V_T32 OR V_T33 ANDN V_T88) 12 AND V_T88 (V_I2 OR V_T10 AND V_T11) OR (V_T32 OR V_T33 ANDN V_T88) AND V_T88 13 OR V_Q67 (V_I2 OR V_T10 AND V_T11) OR (V_T32 OR V_T33 ANDN V_T88) AND V_T88 OR V_Q67 14 ) V_I1 AND (V_I2 OR V_T10 AND V_T11) OR (V_T32 OR V_T33 ANDN V_T88) AND V_T88 OR V_Q67 15 ST_BOOL V_T99 V_I1 V_I1 V_I1

Skoki jako metoda rozgałęzień i decyzji Jak zrealizować w IL funkcje IF THEN? Skok jeśli akumulator jest równy 1 (TRUE) JMPC etykieta Skok jeśli akumulator jest równy 0 (FALSE) JMPCN etykieta Jeśli warunek nie jest spełniony (dla skoków warunkowych JMPC i JMPCN) program jest kontynuowany od następnej po skoku instrukcji Skok bezwarunkowy: JMP etykieta

Etykiety LD_BOOL we8 JMPC tutaj LD_INT rejestr4 GE rejestr5 ST_BOOL wy7 tutaj: LD_INT rejestr6 MUL rejestr6 ST_INT rejestr7 odpowiednik IF (we8 == 1) THEN GOTO tutaj Etykiety wyróżnia w programie nazwa etykiety oraz znak dwukropka W tym przypadku etykietą jest słowo tutaj: Etykieta jest wykorzystana jako argument funkcji JMPC (skoku warunkowego w przypadku stanu wysokiego w akumulatorze)

Instrukcje IL w normie IEC 61131

LP OPERATOR MODYFIKATOR SKŁADNIA 1 LD N Załaduj operand do Akumulatora (Aku) 2 ST N Zapisz wartość Aku pod adres operandu 3 S R 4 AND N, ( Logiczne AND 5 & N, ( Logiczne AND 6 OR N, ( Logiczne OR 7 7a XOR NOT Ustaw (wpisz 1) pod adres operandu i podtrzymaj jeśli Aku jest równy 1 Skasuj (wpisz 0) pod adres operandu i podtrzymaj jeśli Aku jest równy 1 N, ( Logiczne exlusive OR Negacja 8 ADD ( Dodawanie 9 SUB ( Odejmowanie 10 MUL ( Mnożenie 11 11a DIV MOD ( ( Dzielenie Dzielenie modulo 12 GT ( Porównanie > 13 GE ( Porównanie >= 14 EQ ( Porównanie = 15 NE ( Porównanie <>,!= 16 LE ( Porównanie <= 17 LT ( Porównanie < 18 JMP C, N Skok pod etykietę 19 CAL C, N Wywołanie bloku funkcyjnego 20 RET C, N Powrót z funkcji, bloku funkcyjnego lub programu 21 ) Wykonaj wcześniej rozpoczętą operację

Instrukcje IL w GE Fanuc Operacje na bitach i słowach bitowych AND, OR, XOR, NOT Operacje matematyczne ADD, SUB, MUL, DIV, MOD Relacje matematyczne EQ, NE, GE, GT, LT, LE, RANGE Przekaźniki czasowe i liczniki ONDTR, TMR, UPCTR, DNCTR Operacje na tablicach Operacje sterujące programem Bloki regulatorów (np. PID(adress, SP,PV,man,up,dn) a CV w A) Do dyspozycji są właściwie niemal wszystkie operacje z LD. Zasoby systemu operacyjnego (zmienne systemowe, bloki funkcyjne) są dostępne niezależnie od języka!

Deklarowanie zmiennych Norma wprowadza sekcję VAR END_VAR; do definiowania zmiennych VAR A, B : INT; END_VAR Ale producenci PLC dostarczają swoje mechanizmy definiowania zmiennych i związywanie ich z fizycznymi adresami PLC

Deklarowanie zmiennych

Instrukcje IL w GE Fanuc

Instrukcje IL w GE Fanuc

Instrukcje IL w GE Fanuc

Operacje matematyczne 'operacje matematyczne ADD_REAL(argument1, argument2) ST_REAL wynik MUL_REAL(wynik, argument3) ST_REAL wynik02

Sprawdzanie poprawności wykonania operacji bloku funkcyjnego

'przykładowe wykorzystanie timera odliczenie 1sekundy LD_BOOL we1 TMR_TENTHS(rejestr, 10) ST_BOOL wy1

'przykładowe wykorzystanie licznika UPCTR LD_BOOL we2 UPCTR(rejestr2, we3, 3) ST_BOOL wy2

Regulator PID

Ostatni program zawiera konstrukcję licznika modulo 10 z funkcją autoresetowania

Przykładowe programy w języku IL

Przykładowe programy w języku IL

Przykładowe programy w języku IL

Regulator dwustanowy w IL MUL_REAL(zadana, 1.1) ST_REAL gorna MUL_REAL(zadana, 0.9) ST_REAL dolna GT_REAL(y, gorna) JMPC skasuj LT_REAL(y, dolna) JMPC ustaw JMP koniec ustaw: MOVE_REAL(100.0, 1, u) skasuj: koniec: JMP koniec MOVE_REAL(0.0, 1, u)

Komentarze w programie i podświetlanie składni Komentarzem w programie jest wszystko co znajduje się za znakiem apostrofu. Edytor posiada możliwość kolorowania składni (odróżniania słów kluczowych mnemoników i zmiennych od reszty programu) oraz kolorowanie oddzielnie komentarzy.

Definiowanie adresów akumulatora i stosu

Zalety języka IL Duże zbliżenie do języka maszynowego Znajoma forma programu dla programujących w assemblerze Łatwa implementacja kompilatora Zwartość programu możliwość zmieszczenia na jednej stronie ekranu całej złożonej funkcji (niemożliwe do osiągnięcia w językach graficznych) Kontrola typów (wynikająca z konieczności korzystania z akumulatora)

Wady języka IL Znacznie mniejsza czytelność programu (w stosunku do języka drabinkowego) Korzystanie z pośrednictwa akumulatora i stosu akumulatora nie jest intuicyjne Dostosowanie użytkownika do maszyny, a nie maszyny do użytkownika Nauka tego rodzaju programowania jest trudniejsza niż języka drabinkowego

Bibliografia INTERNATIONAL STANDARD IEC 61131-3, Second edition 2003-01 Legierski T., Kasprzyk J., Wyrwał J., Hajda J.: Programowanie sterowników PLC, Wydawnictwo Pracowni Komputerowej Jacka Skalmierskiego, Gliwice, 1998 Dokumentacja GE Fanuc,