23
" Zautomatyzowane systemy produkcyjne Zautomatyzowane systemy produkcyjne Wprowadzenie do automatyki Programowalne układy logiczne

Wprowadzenie do automatyki

  • Upload
    others

  • View
    10

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne

Zautomatyzowane systemy produkcyjne

Wprowadzenie do automatyki

Programowalne układy logiczne

Page 2: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-2

PLC – programowane sterowniki logiczne

Sterowniki programowalne powstały jako próba zastąpienia tradycyjnych układów

stałoprogramowych przetwarzających sygnały wejściowe w wyjściowe zgodnie z

programem określonym przez wykorzystane elementy oraz połączenia pomiędzy nimi

(np. układy cyfrowe w realizacji stykowo – przekaźnikowej, układy zbudowane z

elementów przełączających pneumatycznych i hydraulicznych czy układy wykonane w

technologii półprzewodnikowej). Układy stałoprogramowe realizują zadania, które mogą

być zapisane w postaci równań logicznych.

Programowalny sterownik logiczny (ang. Programmable Logic Controller, PLC) to

wyspecjalizowane urządzenie mikroprocesorowe wyposażone w programowalną pamięć,

sterownik realizuje zadanie sterowania wykonując cyklicznie program umieszczony w

swojej pamięci.

Standard PLC opisuje norma IEC 61131 opracowana w latach dziewięćdziesiątych XXw.

przez Międzynarodową Komisję Elektrotechniki (International Electrotechnical

Commision, IEC). Norma definiuje sterownik programowalny jako:

„cyfrowy system elektroniczny do stosowania w środowisku przemysłowym, który

posługuje się pamięcią programowalną do przechowywania zorientowanych na

użytkownika instrukcji w celu sterowania przez cyfrowe lub analogowe wejścia i wyjścia

szeroką gamą maszyn i procesów”.

Page 3: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-3

Budowa PLC

Klasyfikacja ze względu na budowę

▪ sterowniki kompaktowe – mają sztywną architekturę w jednej obudowie umieszczone

są zasilacz, jednostka centralna CPU (mikroprocesor + pamięć), moduły wejść i wyjść

(zwykle cyfrowych),

▪ sterowniki modułowe – mają architekturę elastyczną, składają się z modułów, które

mogą być dowolnie łączone i konfigurowane,

▪ sterowniki kompaktowo–modułowe – sterowniki kompaktowe, które mogą być

rozbudowywane.

Klasyfikacja ze względu na możliwości

▪ przekaźniki inteligentne – najmniejsze sterowniki, które mogą obsługiwać do kilkunastu

wejść cyfrowych (rzadziej analogowych),

▪ sterowniki małe – stosowane w przypadku prostych zadań, do sterowania

pojedynczymi urządzeniami, mają zwykle kilkadziesiąt wejść/wyjść, na ogół są

sterownikami kompaktowymi,

▪ sterowniki średnie i duże – wykorzystywane w przypadku złożonych zadań, są

sterownikami modułowymi, mają kilkaset (sterowniki średnie), kilkaset tysięcy

(sterowniki duże) wejść/wyjść.

Page 4: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-4

Rodziny sterowników największych producentów

ProducentPrzekaźniki

inteligentne

Sterowniki

małe średnie duże

Siemens Logo SIMATIC S7-200 SIMATIC S7-300 SIMATIC S7-400

Schneider

ElectricZelio

Nano

Micro

Twido

Premium

Compact

Momentum

Quantum

GE Fanuc VersaMax-Nano VersaMax-Micro

90-30

VersaMax

PACSystems RX3i

90-70

PACSystems RX7i

Mitsubishi

ElectricALPHA

MELSEC FX1

FX2MELSEC QnAS

MELSEC QnA

MELSEC System Q

OmronCPM1, CPM2,

CQM1H

C200H-alpha

CJ1, CS1CVM1

Rockwell

Automation

(Allen-Bradley)

Pico MicroLogix

SLC500

FlexLogix

ControlLogix

PLC-5

Page 5: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-5

Przykłady sterowników PLC

Sterowniki Siemens: LOGO, S7-300 i panele HMI

Page 6: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-6

Architektura PLC

Zasada działania sterownika

▪ sygnały z czujników kontrolowanego obiektu (procesu) zamieniane są w modułach

wejściowych na sygnały cyfrowe akceptowane przez sterownik i zapamiętywane w

obszarze pamięci danych wejściowych,

▪ mikroprocesor przetwarza program obliczając na podstawie danych wejściowych

wartości sygnałów wyjściowych i zapisuje je w pamięci danych wyjściowych,

▪ moduły wyjściowe korzystając z danych wyjściowych generują sygnały dla urządzeń

wykonawczych.

mod

wej

ść

mik

rop

roce

sor

moduł

wyj

ść

pamięć

program użytkownikaobiekt

sterownik PLC

dane

magistrala danych

obiekt

programator

(komputer)

Page 7: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-7

Cykl programowy PLC

Sterownik wykonuje działania w sposób cykliczny realizując tzw. cykl programowy

sterownika. Na cykl pracy składają się fazy:

▪ inicjalizacja (operacje niezbędne do rozpoczęcia cyklu, obliczany jest czas cyklu,

uaktualniane są tablice błędów, zerowany zegar resetujący),

▪ odczyt danych wejściowych (dane z modułów wejściowych wprowadzane są do

pamięci sterownika),

▪ wykonanie programu (realizacja programu użytkownika),

▪ zapisu danych wyjściowych (dane wyjściowe wysyłane są do modułów wyjściowych),

▪ komunikacja z urządzeniami zewnętrznymi (przetwarzane są żądania nadesłane

przez programator i wyspecjalizowane moduły),

▪ diagnostyka (kontrola konfiguracji sterownika i weryfikacja programu użytkownika).

Cykl programowy zwykle trwa od ułamka do kilkudziesięciu milisekund. W przypadku

przekroczenia dopuszczalnego czasu (zwykle od 100 do 500 ms) cykl jest przerywany i

rejestrowany jest błąd przekroczenia czasu.

Page 8: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-8

Jednostka centralna PLC

Jednostka centralna, procesor, CPU (ang. Central Processing Unit) to cyfrowy

synchroniczny układ sekwencyjny, którego zadaniem jest pobieranie, interpretowanie i

wykonywanie rozkazów znajdujących się w pamięci. Ciąg rozkazów tworzy tzw. program.

Czynności które wykonuje procesor w trakcie realizacji pojedynczego rozkazu nazywane

są cyklem rozkazowym.

Podstawowe układy procesora

❑ układ sterowania (zarządza pracą pozostałych bloków), składniki:

▪ licznik rozkazów – rejestr (układ do przechowywania informacji) w którym

przechowywany jest adres (miejsce w pamięci) kodu następnego rozkazu,

▪ rejestr rozkazów – rejestr do którego układ sterowania przepisuje z pamięci kod

rozkazu, który powinien być wykonany w bieżącym cyklu rozkazowym,

▪ dekoder rozkazów – zamienia rozkazy na wartości sygnałów sterujących,

❑ układ wykonawczy (zajmuje się realizacją rozkazów), składniki:

▪ jednostka arytmetyczno–logiczna – wykonuje operacje arytmetyczno–logiczne,

wyniki przechowuje w akumulatorze,

▪ akumulator – rejestr procesora służący do chwilowego przechowywania wyników

ostatnio wykonanej operacji.

Page 9: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-9

Jednostka centralna PLC

Cykl rozkazowy procesora:

▪ faza pobrania rozkazu: na podstawie adresu z licznika rozkazów pobierany jest kod

rozkazu i zapamiętywany w rejestrze rozkazów; pobrany rozkaz jest dekodowany w

dekoderze rozkazów, a wartość licznika przenoszona jest na adres następnego

rozkazu,

▪ faza wykonania rozkazu: układ sterowania wysyła zdekodowany rozkaz na wejście

jednostki arytmetyczno – logicznej, wynik operacji trafia do akumulatora.

pamięć

program

użytkownika

dane

licznik rozkazów

rejestr rozkazów

dekoderrozkazów

układ sterowania

jednostka arytmetyczno-logiczna akumulator

układ wykonawczy

procesor

Page 10: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-10

Programowanie sterowników PLC

Norma IEC 61131 definiuje dwie grupy języków programowania:

Języki tekstowe

▪ język listy instrukcji IL (ang. Instruction List) – odpowiednik języka niskiego poziomu

(asemblera), którego instrukcje bazują na liście rozkazów procesora.

▪ język tekstu strukturalnego ST (ang. Structured Text) – odpowiednik języka

wysokiego poziomu, zawiera podobny zestaw instrukcji jak Pascal czy C.

Języki graficzne

▪ LD język schematów drabinkowych (ang. Ladder Diagram) oparty na schematach

układów cyfrowych realizowanych w technologii stykowo–przekaźnikowej,

▪ FBD język funkcjonalnych schematów blokowych (ang. Function Block Diagram)

oparty na schematach stosowanych do opisu układów logicznych wykorzystujących

bramki logiczne, przerzutniki, timery, liczniki.

▪ SFC język sekwencyjnego schematu funkcjonalnego (ang. Sequential Function

Chart) oparty na strukturze sieci Petriego.

Page 11: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-11

Struktura programu

Każde zadanie sterowania stanowi tzw. projekt. Program użytkowy rozwiązujący

określone zadanie może składać się z oddzielnych modułów oprogramowania

nazywanych jednostkami organizacyjnymi oprogramowania (POU, ang. Program

Organization Units). Rozbicie programu użytkownika na jednostki organizacyjne

poprawia czytelność programu i umożliwia ponowne użycie kodu (wykorzystanie

jednostki organizacyjnej w innych projektach).

Zgodnie z normą IEC 61131 jednostkami organizacyjnymi oprogramowania są:

▪ funkcje – wyznaczają wartość argumentu wyjściowego na podstawie argumentów

wejściowych, wejście jednoznacznie określa wartość wyjścia,

▪ bloki funkcjonalne – posiadają „pamięć”, wartość argumentu wyjściowego nie wynika

tylko z wartości wejść, zależy również od stanu „pamięci”,

▪ programy – podstawowe jednostki organizacyjne programu użytkowego, mają dostęp

do wejść i wyjść sterownika, mogą udostępniać te wartości innym POU, odpowiadają

„programowi głównemu” w klasycznych językach programowania.

Norma zakłada, że pojedyncza jednostka organizacyjna musi być zaprogramowana w

jednym języku programowania.

Page 12: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-12

Zmienne

Zmienne są używane przez jednostki organizacyjne programu (POU) do

przechowywania i przetwarzania danych. Każda zmienna odpowiada pewnej informacji

umieszczonej w strukturze wejść, wyjść lub w pamięci sterownika.

Zmienna prosta (skalarna, jednoelementowa) to pojedyncza wartość należąca do typu

elementarnego (liczba, znacznik czasu). Zmienne proste mogą być przedstawione

symbolicznie (poprzez nazwę) lub reprezentowane bezpośrednio poprzez określenie ich

położenia (odwołanie do wejścia/wyjścia lub komórki pamięci).

Zmienna prosta reprezentowana bezpośrednio

%<położenie><rozmiar><adres>

<położenie> określa obszar pamięci w którym jest umieszczona zmienna:

I – wejście, Q – wyjście, M – obszar danych.

<rozmiar> określa liczbę bitów, które zmienna zajmuje: X – bit, B – bajt (8 bitów),

W – słowo (16 bitów), D – podwójne słowo (32 bity), L – poczwórne słowo (64 bity).

<adres> to ciąg liczb całkowitych rozdzielonych kropkami, które określają położenie

zmiennej w danym obszarze pamięci sterownika, kolejne pola są interpretowane jako

hierarchiczny sposób adresacji, pierwsze pole od lewej oznacza poziom najwyższy

(adres zależy od urządzenia i jego konfiguracji).

Page 13: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-13

Bezpośrednie adresowanie zmiennych

1. %IX1.2 – drugi bit modułu wejściowego umieszczonego w pierwszym gnieździe

2. %IX2.3 – trzeci bit modułu wejściowego umieszczonego w drugim gnieździe

3. %IX2.5 – piąty bit modułu wejściowego umieszczonego w drugim gnieździe

4. %QX4.4 – czwarty bit modułu wyjściowego umieszczonego w czwartym gnieździe.

12345678

XBI8

12345678

XBO8

12345678

XBO824V DC

zasilacz sterownik slot I slot II slot III slot IV

moduły wejścia moduły wyjścia

12345678

XBI8

1 2 3 4

Page 14: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-14

Deklaracja zmiennych symbolicznych

VAR

<nazwa> AT<lokalizacja>: <typ> := <wartość>;

END_VAR

<nazwa> to unikalny ciąg znaków identyfikujący zmienną (litery alfabetu angielskiego,

cyfry, podkreślenie, nie może zaczynać się od cyfry),

<lokalizacja> określa położenie zmiennej zgodnie z zasadami adresowania

bezpośredniego (opcjonalna),

<typ> określa rodzaj i zakres wartości, które może przyjmować zmienna:

BOOL – zmienne boolowskie, BYTE, WORD, DWORD, LWORD – słowo 8, 16, 32 i 64-

bitowe, INT – liczby całkowite, REAL – liczby rzeczywiste,

<wartość> określa początkową wartość zmiennej (opcjonalna)

Przykład

VAR

a: BOOL := 1; (*zm. boolowska inicjowana 1*)

b AT%IX1.2: BOOL; (*zm. boolowska, I slot, 2 bit wejścia*)

x, y, z: INT; (*trzy zmienne całkowite*)

END_VAR

Page 15: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-15

Język schematów drabinkowych LD

Język LD (ang. Ladder Diagram – schemat drabinkowy) należy do grupy języków

graficznych i jest odpowiednikiem układów cyfrowych realizowanych w technologii

stykowo-przekaźnikowej.

Program w języku LD jest tworzony jako zbiór elementów połączonych w obwody.

Wykonanie programu polega na przepływie sygnału przez kolejne obwody analogicznie

do przepływu prądu w obwodzie zbudowanym z przekaźników.

Elementy obwodów w języku LD

lewa szyna prądowa – ogranicza obwód z lewej strony

prawa szyna prądowa – ogranicza obwód z prawej strony (opcjonalna)

połączenie poziome i pionowe

zestyk zwierny (normalnie otwarty) – sygnał przepływa przez element gdyskojarzona z nim zmienna ma wartość 1

zestyk rozwierny (normalnie zamknięty) – sygnał przepływa przez elementgdy skojarzona z nim zmienna ma wartość 0

cewka – stan połączenia z lewej strony cewki (0 lub 1) jest przenoszony naprawą stroną i zapamiętywany w skojarzonej zmiennej

***

***

***

Page 16: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-16

Język LD – koniunkcja

VAR

a AT%IX1.1: BOOL; (*pierwszy sygnał wejściowy*)

b AT%IX1.2: BOOL; (*drugi sygnał wejściowy*)

z AT%QX2.1: BOOL; (*sygnał wyjściowy*)

END_VAR

𝑧 = 𝑎 𝑏

( )a b z

a bz

TRUE TRUE TRUE

Żarówka zapala się po naciśnięciu przycisków a i b

Page 17: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-17

Język LD – alternatywa

VAR

a AT%IX1.1: BOOL; (*pierwszy sygnał wejściowy*)

b AT%IX1.2: BOOL; (*drugi sygnał wejściowy*)

z AT%QX2.1: BOOL; (*sygnał wyjściowy*)

END_VAR

𝑧 = 𝑎 + 𝑏

a

b

zTRUE

Żarówka zapala się po naciśnięciu

przycisku a lub b

a

b

TRUE

( )z

Page 18: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-18

Język LD – negacja

VAR

a AT%IX1.1: BOOL; (*pierwszy sygnał wejściowy*)

z AT%QX2.1: BOOL; (*sygnał wyjściowy*)

END_VAR

𝑧 = ത𝑎

( )a z

a z

Żarówka zgaśnie po naciśnięciu przycisku a

Page 19: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-19

Przykład 1. – program w języku LD

VAR

a AT%IX1.1: BOOL; b AT%IX1.2: BOOL; c AT%IX1.3: BOOL;

z AT%QX2.1: BOOL;

END_VAR

Kanoniczna post. dysjunkcyjna

cbacbacbaz ++=

Kanoniczna post. koniunkcyjna

)()()()()( cbacbacbacbacbaz ++++++++++=

a zcb

a b c

a b c

Minimalna postać dysjunkcyjna

abacz +=

a

b

c

a

b

a

c

a

b

cc

b

c

b

c z

a

a

zc

b

a zb

c

( )cbaz +=

Minimalna postać koniunkcyjna

Page 20: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-20

Przykład 2. – program w języku LD

VAR

a AT%IX1.1: BOOL; b AT%IX1.2: BOOL; c AT%IX1.3: BOOL;

z1 AT%QX2.1: BOOL; z2 AT%QX2.1: BOOL;

END_VAR

Minimalna postać dysjunkcyjna

b

z1

ca

a cb

a b c

z2cb

Minimalna postać koniunkcyjna

bcz

cabbcacbaz

=

++=

2

1

a

b

z2cb

b

c

a

b

c

z1a

c

( )( )( )( )bcz

cbacacbbaz

=

+++++=

2

1

Page 21: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-21

Język funkcjonalnych schematów blokowych FBD

Język FBD (ang. Function Block Diagram) należy do grupy języków graficznych, jest

wzorowany na opisie układów cyfrowych przy pomocy schematów logicznych.

Program w języku FBD jest tworzony jako zbiór bloków funkcyjnych połączonych w

obwody. Wykonanie programu polega na przepływie sygnału przez kolejne bloki

analogicznie do przepływu prądu (gazu, cieczy) w układzie zbudowanym z

elektronicznych (pneumatycznych, hydraulicznych) elementów logicznych.

Elementy obwodów w języku FBD

połączenie

połączenie z negacją

koniunkcja (iloczyn logiczny) sygnałów wejściowych

alternatywa (suma logiczna sygnałów wejściowych

negacja sygnału wejściowego

& AND

≥1 OR

NOT

Page 22: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-22

Przykład 1. – program w języku FBD

VAR

a AT%IX1.1: BOOL; b AT%IX1.2: BOOL; c AT%IX1.3: BOOL;

z AT%QX2.1: BOOL;

END_VAR

Kanoniczna post. dysjunkcyjna

cbacbacbaz ++=

Minimalna postać dysjunkcyjna

abacz +=

( )cbaz +=

Minimalna postać koniunkcyjna

ANDa

c

ANDa

b

ORz

ORb

c

aAND

z

ANDa

b

c

ANDa

c

ANDa

b

c

ORz

NOTb

Page 23: Wprowadzenie do automatyki

" Zautomatyzowane systemy produkcyjne s.3-23

Przykład 2. – program w języku FBD

VAR

a AT%IX1.1: BOOL; b AT%IX1.2: BOOL; c AT%IX1.3: BOOL;

z1 AT%QX2.1: BOOL; z2 AT%QX2.1: BOOL;

END_VAR

Minimalna postać dysjunkcyjna

bcz

cabbcacbaz

=

++=

2

1

Minimalna postać koniunkcyjna

( )( )( )( )bcz

cbacacbbaz

=

+++++=

2

1

ANDa

b

c

ORz1

ANDa

c

b

ANDa

b

c

ANDb

c

z2AND

b

c

z2

ORb

c

ANDz1

ORa

b

ORa

b

c

ORb

c