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



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

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

JĘZYKI PROGRAMOWANIA STEROWNIKÓW

Sterowniki Programowalne (SP)

Struktura i działanie jednostki centralnej

Notatka Aplikacyjna NA 03006PL Maj 2016

Opracował: Jan Front

Sterowniki Programowalne (SP) Wykład #4

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

Sterowniki programowalne

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

Czym jest IEC ?

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

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

Architektura komputerów

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

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

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

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

Programowanie Niskopoziomowe

Projektowanie. Projektowanie mikroprocesorów

Tworzenie prostego programu w językach ST i LD

Norma IEC definiuje podział na dwie zasadnicze grupy:

" Sterowniki programowalne f.1/1

Sterowniki Programowalne (SP) Wykład 11

Zasady wykonywania programu drabinkowego w sterowniku

Podstawy programowania sterowników GeFanuc

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

Katedra Systemów Cyfrowego Przetwarzania Sygnałów

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

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

Algorytmika i Programowanie VBA 1 - podstawy

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

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

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

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

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

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

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

Architektura systemów komputerowych

Budowa komputera Komputer computer computare

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

Programowanie Niskopoziomowe

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

Architektura systemów komputerowych. Lista instrukcji procesora

Bash - wprowadzenie. Bash - wprowadzenie 1/39

Układ wykonawczy, instrukcje i adresowanie. Dariusz Chaberski

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

Rozszerzalne kody operacji (przykład)

Systemy wbudowane. Przykłady kodu Assembler

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

2.1. W architekturze MIPS, na liście instrukcji widzimy dwie instrukcje dotyczące funkcji: .text main: la $a0, string1 # drukuj pierwszy łańcuch

Technika mikroprocesorowa I Studia niestacjonarne rok II Wykład 2

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

PLC - język tekstu strukturalnego ST

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

Podstawy programowania w języku C

Regulator PID w sterownikach programowalnych GE Fanuc

CoDeSys 3 programowanie w języku FBD

Podstawy Informatyki Języki programowania

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

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

Technika mikroprocesorowa I Wykład 2

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

Języki programowania: norma IEC

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

Procesor i jego architektura (CISC, RISC, 32/64 bity). Systemy wieloprocesorowe. wer Wojciech Myszka 16 pa«zdziernika 2008

Wprowadzenie. Organizacja pracy i środowisko programistyczne. Mirosław Ochodek

Systemy Czasu Rzeczywistego (SCR)

Przyczyny dwustopniowego tłumaczenia

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]

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

Technologie Informacyjne Wykład 3

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

Język FBD w systemie Concept

MOŻLIWOŚCI PROGRAMOWE MIKROPROCESORÓW

Sterowniki Programowalne (SP)

Podstawy Informatyki Języki programowania c.d.

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

. III atyka, sem, Inform Symulator puterów Escape rchitektura kom A

Wstęp do informatyki. Maszyna RAM. Schemat logiczny komputera. Maszyna RAM. RAM: szczegóły. Realizacja algorytmu przez komputer

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

A Machine Architecture that is Really Intuitive and Easy. Dane: notacja dwójkowa, zapis w kodzie dopełnieniowym

Mikrokontroler ATmega32. Język symboliczny

Podstawy programowania. Wykład Pętle. Tablice. Krzysztof Banaś Podstawy programowania 1

petla:... ; etykieta określa adres w pamięci kodu (docelowe miejsce skoku) DJNZ R7, petla

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

Obliczenia na stosie. Wykład 9. Obliczenia na stosie. J. Cichoń, P. Kobylański Wstęp do Informatyki i Programowania 266 / 303

Podstawy techniki cyfrowej Mikroprocesory. Mgr inż. Bogdan Pietrzak ZSR CKP Świdwin

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

Wstęp do programowania

Sterowniki PLC. Sterowniki PLC. Wprowadzenie nazewnictwo. Historia. Dlaczego sterowniki PLC stały się tak popularne?

Wstęp do programowania

Emulator sterowników PLC serii FX

Instrukcja użytkownika

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

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

System operacyjny Linux

Programowanie strukturalne. Opis ogólny programu w Turbo Pascalu

MiAcz2. Programowalne systemy przemysłowe automatyki PLC

Transkrypt:

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

Norma IEC 1131

Języki tekstowe

Języki graficzne

Języki programowania dla systemu GE Fanuc 90-30 PACs SoftPLC (Cimplicity ME) LD IL C LD FBD ST C LD IL ST FDB SFC LD Ladder Diagram język drabinkowy IL Instruction List lista instrukcji FDB Function Block Diagram schematy bloków fukcyjnych ST Structured Text język strukturalny SFC Sequential Function Chart graf sekwencji C język C

Język asemblera 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

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 musi 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 akumulatorze (Accumulator Instructions) LD LDN ST STN Typy danych: BOOL, INT, REAL LD_BOOL, LD_INT, LD_REAL ST_BOOL, ST_INT, ST_REAL

Operacje przekaźnikowe (Coil Instructions) S R Wykonywane, gdy akumulator == 1

Operacje na bitach (Bool instructions) NOT AND ANDN OR ORN XOR XORN

IL i LD operacje stykowo-przekaźnikowe 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

Stos (ang. stack) 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 Wierzchołek stosu POP Rozmiar (pojemność stosu) Na rys. 5 elementów

Zasada działania stosu 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)

1 2 3 4 5 6 7 8 9 Operacje zagnieżdżone 10 11 12 13

Operacje matematyczne zagnieżdżone 1 2 3 4 5 6 7 8 9 10 11 12

Grupy instrukcji IL dla 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) Itd. do dyspozycji są właściwie niemal wszystkie operacje z LD

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 dla skoków LD_BOOL we8 JMPC tutaj odpowiednik IF (we8 == 1) THEN GOTO tutaj LD_INT rejestr4 GE rejestr5 ST_BOOL wy7 tutaj: LD_INT rejestr6 MUL rejestr6 ST_INT rejestr7 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)

Odstępstwa od normy w GE Fanuc Operatory matematyczne są dwuargumentowe MUL_REAL(arg1, arg2) => wynik trafia do akumulatora Operatory relacji są dwuargumentowe GE_REAL(zmienna, 34) Występują inne bloki znane z języka drabinkowego TMR, UPCTR, MOVE itd.

Rozkazy IL

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

'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

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) JMP koniec skasuj: MOVE_REAL(0.0, 1, u) koniec:

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 Legierski, Kasprzyk, Hajda, Wyrwał, Programowanie Sterowników PLC Dokumentacja GE Fanuc,