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

Systemy wbudowane

  • Upload
    anka

  • View
    52

  • Download
    1

Embed Size (px)

DESCRIPTION

Systemy wbudowane. Wykład nr 9 Programowanie sterowników PLC Piotr Bilski. Wstęp. Celem programowania jest implementacja algorytmu sterowania W normie IEC 61131 zdefiniowany jest standard programowania dla wszystkich rodzin Podstawowe pojęcia to model programowania i model danych. - PowerPoint PPT Presentation

Citation preview

Page 1: Systemy wbudowane

Systemy wbudowane

Wykład nr 9

Programowanie sterowników PLC

Piotr Bilski

Page 2: Systemy wbudowane

Wstęp

• Celem programowania jest implementacja algorytmu sterowania

• W normie IEC 61131 zdefiniowany jest standard programowania dla wszystkich rodzin

• Podstawowe pojęcia to model programowania i model danych

Page 3: Systemy wbudowane

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)

Page 4: Systemy wbudowane

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

Page 5: Systemy wbudowane

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)

Page 6: Systemy wbudowane

Model programistyczny

Page 7: Systemy wbudowane

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.

Page 8: Systemy wbudowane

Model komunikacji

Wymiana danych odbywa się pomiędzy:

• Elementami jednego programu

• Programami w ramach jednej konfiguracji

• Różnymi konfiguracjami

Page 9: Systemy wbudowane

Komunikacja między elementami jednego programu

• Najprostsze w realizacji

• Połączenie typu wejście-wyjście (bloków funkcjonalnych)

Page 10: Systemy wbudowane

Komunikacja między różnymi programami

Zmienne globalne

(VAR_GLOBAL)

Funkcje komunikacyjne

Page 11: Systemy wbudowane

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

Page 12: Systemy wbudowane

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

Page 13: Systemy wbudowane

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;

Page 14: Systemy wbudowane

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

Page 15: Systemy wbudowane

Deklaracje zmiennych - przykład

VAR

S1 AT%I1 :BOOL;

S2 :BOOL;

END_VAR

VAR RETAIN

K1 AT%Q1 :BOOL;

END_VAR

Page 16: Systemy wbudowane

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)

Page 17: Systemy wbudowane

Realizacje kodu jednostki%I1

%I4

~STOP

%Q1 (R)

%Q1 (S)

~%Q1

LD %I1

ANDN %Q2

S %Q1

LDN STOP

OR %I4

R %Q1

FlipFlop(S:=%I1 AND NOT %Q2,

R1:=NOT STOP OR %I4);

%Q1 := FlipFlop.Q1;

Język LD

Język IL Język ST

RS

OR

AND%Q1S

R1

%I1

%Q2

STOP

%I4

Język FBD

Page 18: Systemy wbudowane

Wpływ wielozadaniowości na wykonanie programu

• Problem przydziału procesora do uruchomionego zadania

• Uruchomione programy mają różne priorytety

• Przypisywanie zmiennych do adresów fizycznych

• Szczegółowe informacje o przydziale i sposobie wykonania przechowywane są w konfiguracji

Page 19: Systemy wbudowane

Przykład konfiguracji

Page 20: Systemy wbudowane

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.

Page 21: Systemy wbudowane

Zmienne

• Deklarowane są poza POU (globalne), 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

Page 22: Systemy wbudowane

Typy danych• BOOL – true/false• SINT – liczby całkowite -128 do 127• INT – liczby całkowite -32768 do 32767• 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.

Page 23: Systemy wbudowane

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

Page 24: Systemy wbudowane

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

Page 25: Systemy wbudowane

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

Page 26: Systemy wbudowane

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

Page 27: Systemy wbudowane

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

Page 28: Systemy wbudowane

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

Page 29: Systemy wbudowane

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

Page 30: Systemy wbudowane

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:

Page 31: Systemy wbudowane

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)

Page 32: Systemy wbudowane

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