Wykład nr 9 Programowanie sterowników PLC Piotr Bilski

Slides:



Advertisements
Podobne prezentacje
Tablice 1. Deklaracja tablicy
Advertisements

Katarzyna Szafrańska kl. II ti
Język C/C++ Funkcje.
Algorytmy – c.d. złożoność algorytmów struktury danych
Zmienne i Typy.
Język ANSI C Funkcje Wykład: Programowanie komputerów
Wykonał : Marcin Sparniuk
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
PROGRAMOWANIE STRUKTURALNE
CPU.
Instrukcje strukturalne
Definiowanie typów dokumentów Część 2. Przestrzenie nazw, XML Schema.
OOPSmalltalk - stałe, klasy, bloki, instrukcje sterujące1 Komunikaty do self Odbiorcą jest obiekt, w którym wykonuje się ten komunikat Szukanie metody.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 7: Procedury i funkcje © Jan Kaczmarek.
Materiały do zajęć z przedmiotu: Narzędzia i języki programowania Programowanie w języku PASCAL Część 6: Tablice, rekordy, zbiory.
Kurs Pascala – spis treści
Wykład nr 7: Synchronizacja procesów
Systemy operacyjne Wykład nr 4: Procesy Piotr Bilski.
Biblioteki i przestrzenie nazw
Systemy operacyjne.
Magistrala & mostki PN/PD
Pakiety i ATD 1 Definicja. Pakietem albo jednostką programową nazywamy grupę logicznie powiązanych elementów, które mogą być typami, podtypami, obiektami.
Komputer, procesor, rozkaz.
Uniform Resource Locators
Wykład 2 struktura programu elementy języka typy zmienne
Wstęp do interpretacji algorytmów
PASCAL Dr Anna Kwiatkowska.
Wprowadzenie do programowania w języku Turbo Pascal
Typy wyrażenia, schematy blokowe, writeln, readln, if, pętle
Podprogramy.
Typy złożone, case, stałe. Typ zbiorowy type typ_zb = set of typ_podstawowy; Typem podstawowym może być tylko typ porządkowy. Typem podstawowym może być
Inżynieria Oprogramowania
Podstawy programowania
Układy sekwencyjne pojęcia podstawowe.
Podstawy programowania w języku C i C++
Instytut Tele- i Radiotechniczny WARSZAWA
Podstawy programowania
Procedury i funkcje.
Rejestr systemu Windows
Jerzy F. Kotowski1 Informatyka I Wykład 14 DEKLARATORY.
Programowanie strukturalne i obiektowe
Koncepcja procesu Zadanie i proces. Definicja procesu Process – to program w trakcie wykonywania; wykonanie procesu musi przebiegać w sposób sekwencyjny.
Algorytmy.
POŚREDNIK Jak reprezentowana jest informacja w komputerze? liczby – komputer został wymyślony jako zaawansowane urządzenie służące do wykonywania.
Elżbieta Fiedziukiewicz
Architektura PC.
Programowanie baz danych
Modelowanie obiektowe Diagramy czynności
Wykład 10 typ zbiorowy rekurencja.
ZAPIS BLOKOWY ALGORYTMÓW
Programowanie strukturalne i obiektowe C++
System plików.
Zapis blokowy algorytmów
Zmienne i typy danych w C#
Zagadnienia AI wykład 6.
Programowanie proceduralne Podstawy Programowania dla geoinformatyków Wykład 3 Rafał Witkowski, 2015.
Podstawowe struktury danych. Typy danych.
Iga Lewandowska I EMII MU
Wstęp do interpretacji algorytmów
Wykład 2 Programowanie obiektowe. Programowanie obiektowe wymaga dobrego zrozumienia działania funkcji definiowanych przez użytkownika, w ten sposób będziemy.
Wstęp do programowania Wykład 2 Dane, instrukcje, program.
P ASCAL Definicje, deklaracje, podstawowe instrukcje 1.
Zmienne typy danych w VBA. MS Excel – typy danych w języku programowania VBA.
Grzegorz Cygan Wprowadzenie do PLC
Programowanie Obiektowe – Wykład 6
Programowanie Obiektowe – Wykład 2
Projektowanie systemów cyfrowych z wykorzystaniem języka VHDL
Wprowadzenie do programowania obiektowego
POJĘCIE ALGORYTMU Wstęp do informatyki Pojęcie algorytmu
Zapis prezentacji:

Wykład nr 9 Programowanie sterowników PLC Piotr Bilski Systemy wbudowane Wykład nr 9 Programowanie sterowników PLC Piotr Bilski

Wstęp Celem programowania jest implementacja algorytmu sterowania Norma IEC 61131 zdefiniowany jest standard programowania dla wszystkich rodzin Podstawowe pojęcia to model programowania i model danych

Rodzaje języków programowania PLC Języki tekstowe IL – odpowiednik asemblera dla PLC ST – odpowiednik C lub Pascala dla PLC Języki graficzne LD – język schematów drabinkowych, składa się ze styków, cewek, połączeń między nimi oraz funkcji FBD – język funkcjonalnych schematów blokowych (schematy przepływu sygnałów)

Struktura wewnętrzna programu Opisywana przez sekwencyjny schemat funkcjonalny SFC Jest to graf składający się z wierzchołków (kroków programu) oraz krawędzi (tranzycji między krokami) Kroki definiowane są przez akcje programu Tranzycje opisują warunki przejścia z jednego stanu programu do następnego

Elementy języków programowania PLC Typy danych (stałe, zmienne oraz ich wartości) Jednostki organizacyjne oprogramowania (niezależne fragmenty programu: funkcje, bloki funkcjonalne, programy) Elementy sekwencyjnego schematu funkcjonalnego Elementy konfiguracji (wspomagają konfigurację sprzętu i instalację oprogramowania: konfiguracje, zasoby, zadania, zmienne globalne)

Model programistyczny

Zalety modelu programistycznego Prosta reprezentacja hierarchicznej struktury zależności pomiędzy elementami programu Łatwe wykonywanie wielu zadań w systemie wieloprocesorowym Jednoznaczna interpretacja uruchamiania konfiguracji, zasobu itp.

Model komunikacji Wymiana danych odbywa się pomiędzy: Elementami jednego programu Programami w ramach jednej konfiguracji Różnymi konfiguracjami

Komunikacja między elementami jednego programu Najprostsze w realizacji Połączenie typu wejście-wyjście (bloków funkcjonalnych)

Komunikacja między różnymi programami Zmienne globalne (VAR_GLOBAL) Funkcje komunikacyjne

Komunikacja między konfiguracjami – ścieżka dostępu

Cele stosowania normy IEC 61131 Bezpieczeństwo stosowania obszarów danych wprowadzenie nazw zmiennych o określonym zasięgu wymuszenie określenia typu danych zmiennej Rozszerzenie możliwości jednostek organizacyjnych (wielokrotne wykorzystanie funkcji, programów itp.) Ujednolicenie języków i technik programowania Ujednolicenie struktury programu

Struktura programu Jednostki organizacyjne są niezależne od siebie Rekurencje są niemożliwe (funkcja nie może wywołać samej siebie) Bloki funkcjonalne są elementami dynamicznymi, funkcje – statycznymi Jednostka ma następujące elementy: Nazwa i typ (PROGRAM, FUNCTION, FUNCTION BLOCK) Deklaracja zmiennych (wejściowych, wyjściowych i lokalnych) Kod FUNCTION ALARM: BOOL;

Deklaracje zmiennych Zmienne przechowywane są w pamięci danych Muszą mieć zadeklarowany typ Zmienne są przyporządkowane adresom wejść lub wyjść Zmienne globalne deklarowane są poza jednostkami organizacyjnymi, lokalne wewnątrz nich Zmienne podtrzymywane bateryjnie

Deklaracje zmiennych - przykład VAR S1 AT%I1 :BOOL; S2 :BOOL; END_VAR VAR RETAIN K1 AT%Q1 :BOOL;

Kod jednostki Występuje po części deklaracyjnej Zalecenie: kod powinien być pisany w jednym języku! Ujednolicona strukturyzacja programu (schemat SFC oparty na sieciach Petriego) Przykład: %Q1 := NOT(NOT STOP OR %I4) AND (%Q1 OR %I1 AND NOT %Q2)

Realizacje kodu jednostki ~%Q1 %Q1 (R) ~STOP %Q1 (S) Język LD %I4 %I1 AND S %Q2 %Q1 LD %I1 ANDN %Q2 S %Q1 LDN STOP OR %I4 R %Q1 RS R1 Język FBD STOP OR %I4 FlipFlop(S:=%I1 AND NOT %Q2, R1:=NOT STOP OR %I4); %Q1 := FlipFlop.Q1; Język ST Język IL

Wpływ wielozadaniowości na wykonanie programu Problem przydziału procesora do uruchomionego zadania Uruchomione programy maja różne priorytety Przypisywanie zmiennych do adresów fizycznych Szczegółowe informacje o przydziale i sposobie wykonania przechowywane są w konfiguracji

Przykład konfiguracji

Elementy wspólne języków Ograniczniki – znaki specjalne (np. + _ $ = := # ; ( ) * ) Słowa kluczowe – identyfikatory funkcji, operacji, deklaracji itp. (np.. FUNCTION, VAR_INPUT, INT, BOOL, AND, ADD) Literały – służą do przedstawiania wartości danych (stałych i zmiennych) Identyfikatory – ciągi znaków alfanumerycznych w celu definiowania własnych zmiennych, etykiet, funkcji itp.

Zmienne Deklarowane są poza POU (globalne) lub wewnątrz (lokalne) lub jako parametry (wejściowe/wyjściowe) Deklaracja zawiera nazwę, typ oraz atrybuty Odwołanie do zmiennej to wskazanie na pewne miejsce w pamięci Typ wymusza rezerwację określonej wielkości pamięci

Typy danych BOOL – true/false SINT – liczby całkowite -128 do 127 USINT – liczby całkowite 0 do 255 REAL – liczby rzeczywiste pojedynczej precyzji LREAL – liczby rzeczywiste podwójnej precyzji ANY_NUM – ogólne dane liczbowe ANY_DATE – ogólna data STRING – ciąg znaków o zmiennej długości BYTE – ciąg 8 bitów WORD – ciąg 16 bitów Itd.

Przykłady danych ‘’ – ciąg pusty ‘R’ – litera R ‘$’’ – apostrof ‘$R$L’ – CR+LF T#14ms – czas trwania – 14ms t#5d14h12m18s3.5ms – dokładna godzina (time of day) DATE#2006-04-15

Pochodne typy danych Typy definiowane przez użytkownika Rozpoczynają się słowem TYPE, kończą – END_TYPE Brak możliwości deklaracji typów graficznie Możliwe jest podawanie nazw alternatywnych (aliasów), typów wyliczeniowych, okrojonych, tablic danych oraz struktur Zmienne otrzymują wartości domyślne

Przykłady pochodnych typów danych TYPE (* typ wyliczeniowy*) ANALOG_SIGNAL_TYPE: (SINGLE_ENDED, DIFFERENTIAL) END_TYPE TYPE (* typ wyliczeniowy*) ANALOG_16_IN: ARRAY[1..16] OF ANALOG_DATA; ANALOG_ARRAY: ARRAY[1..4,1..16] OF ANALOG_DATA; END_TYPE

Zmienne Deklarowane na samym początku POU Słowa kluczowe: VAR, VAR_INPUT, VAR_OUTPUT, VAR_IN_OUT, VAR_EXTERNAL, VAR_GLOBAL Przykład: VAR_OUTPUT RETAIN Sivar: DINT := 240; END_VAR

Zmienne proste Są to zmienne przechowujące jedną wartość Adres poprzedza symbol %, po którym następuje przedrostek lokalizacji i rozmiaru: I – wejście O – wyjście M – pamięć X – jeden bit B – jeden bajt W – słowo D – podwójne słowo

Przykłady zmiennych prostych %QX45 – 45. bit wyjścia %IW20 – 20. słowo wejścia %MB7 – 7. bajt w pamięci (pod adresem 7) %IW2.5.7.1 – adresowanie hierarchiczne (np. 1. słowo wejścia 7. gniazda w 5. kasecie na 2. magistrali) 10010101

Jednostki organizacyjne oprogramowania Stanowią niezależne moduły w aplikacji użytkownika Funkcja jest blokiem o parametrach wejściowych, produkującą wartość wyjściową Blok funkcjonalny ma wejścia i wyjścia, generacja sygnałów wyjściowych zależy od wejść i historii Program jest najwyższą jednostką, wszystkie funkcje i bloki muszą znajdować się wewnątrz niego

Funkcje Produkują jeden element danych wyjściowych Prezentowane graficznie jako prostokąty Możliwe dodatkowe wejście EN i wyjście ENO (relacja: 0 -> 0, 1 -> 1) Przykłady:

Bloki funkcjonalne Mogą produkować wiele wartości wyjściowych Są elementami dynamicznymi (informacja o stanie – pamięć!) Blok może być wykonywany w programie wielokrotnie, ale za każdym razem konieczna jest rezerwacja pamięci – ukonkretnienie egzemplarza Brak możliwości deklarowania zmiennych reprezentowanych bezpośrednio (%I, %Q, %M)

Programy Odpowiedniki „programu głównego” w klasycznych językach programowania Nie są wywoływane jawnie przez inne POU Można w nich deklarować zmienne reprezentowane bezpośrednio Program w trakcie wykonania jest kojarzony z zadaniem