Systemy sterowania
w elektronice przemysłowej
dr inż. Bartosz Pękosławski
Łódź, dn. 1.03.2012
Katedra Mikroelektroniki i Technik Informatycznych
Politechnika Łódzka
Dane kontaktowe
2
Adres e-mail:
Bieżące informacje:
www.dmcs.p.lodz.pl/pracownicy/display.do?id=849
Materiały dla studentów:
fiona.dmcs.p.lodz.pl/~bartoszp
Godz. przyjęć:
wtorki 11:00-12:00,
czwartki 14:00-15:00
1. Konstrukcja i działanie mikrokontrolerów (rodzina 51 i rodziny PIC/ST/AVR/MSP430).
Współczesne odmiany kontrolera 51 i PIC/ST/AVR oraz ich specjalizowane peryferia.
Asembler mikrokontrolera AVR - mapa pamięci, tryby adresowania, obsługa portów
zewnętrznych.
2. Asembler AVR – zapis stałych liczbowych, przegląd wybranych instrukcji,
obsługa stosu, przekazywanie parametrów do podprogramu, obsługa przerwań
3. Asembler AVR – obsługa zintegrowanych peryferiów (obsługa timera 0, odmierzanie
czasu za pomocą timera, tryby PWM – generowanie przebiegów prostokątnych
o danym współczynniku wypełnienia, obsługa timera 1 i 2, watchdog, przetwornik A/C,
komparator analogowy)
4. Asembler AVR – obsługa kontrolerów komunikacji szeregowej (interfejs USART –
komunikacja za pomocą RS232, interfejs SPI, interfejs Two-Wire/I
2
C), interfejs JTAG,
interfejs USB
5. Asembler AVR – komunikacja z użytkownikiem (obsługa wyświetlacza
siedmiosegmentowego, alfanumerycznego i graficznego, obsługa klawiatury,
przetwornika piezoelektrycznego)
6. Programowanie mikrokontrolera ATmega w języku C, przegląd bibliotek dla płytek
Kamami ZL15AVR
Plan wykładów
3
Plan wykładów
4
7. Metody sterowania i obszary ich zastosowań. Realizacja układów sterowania
z wykorzystaniem układów cyfrowych (układy reprogramowalne i systemy
mikroprocesorowe – mikrokontrolery).
8. Podstawowe informacje o systemach pomiarowych. Elementy i układy pomiarowe.
Czujniki, przetworniki wielkości nieelektrycznych stosowane w przemyśle.
9. Elementy wykonawcze w elektronice przemysłowej - podstawowe rodzaje,
zastosowanie, sterowanie.
10.Sterowniki przemysłowe PLC - budowa, zasada działania, możliwości rozszerzeń.
Komputery przemysłowe. Charakterystyka języków programowania stosowanych
w elektronice przemysłowej. Język drabinkowy. Język listy instrukcji.
11.Transmisja danych w zastosowaniach przemysłowych (Profibus, ControlNet, CAN,
MODBUS). Praca sterowników i komputerów przemysłowych w sieci.
12.Integracja sieci przemysłowych. Budowa i zasada działania podstawowych urządzeń
sieciowych stosowanych w przemyśle. Podstawowe algorytmy trasowania
i Quality of Service stosowane w przemyśle.
Plan wykładów
5
13.Idea monitoringu stanu i przebiegu procesu produkcyjnego. Informatyczny system
obsługi produkcji. Przekazywanie wskaźników i parametrów produkcji pomiędzy
systemami monitorującymi oraz zbieranie informacji o procesach produkcji
rozproszonych w całym przedsiębiorstwie.
14. Systemy SCADA. Oprogramowanie klasy MES/MOM. Kluczowe parametry
wydajności.
15.Kolokwium zaliczeniowe
6
Literatura
Literatura podstawowa:
1. Pełka R.: Mikrokontrolery, architektura, programowanie, zastosowania.
WKŁ Warszawa 1999
2. Doliński J.: Mikrokontrolery AVR w praktyce. BTC 2004
3. Legierski
T.,
Wyrwał
J.:
Programowanie
sterowników
PLC.
WPK J. Skalmierskiego, Gliwice 1998
4. Kwiecień A.: Analiza przepływu informacji w komputerowych sieciach
przemysłowych, 2002 [dostęp on-line]
Literatura uzupełniająca:
5. Baranowski R.: Mikrokontrolery AVR ATmega w praktyce. BTC 2005
6. Starecki T.: Mikrokontrolery jednoukładowe rodziny 51. Nozomi, Warszawa 1996
7. Jabłoński T., Pawłsiuk K.: Programowanie mikrokontrolerów PIC w języku C.
BTC 2005
8. Solnik W., Zajda Z.: Komputerowe sieci przemysłowe Profibus DP i MPI, OWPW,
Wrocław 2005
9. Kasprzyk
J.:
Programowanie
sterowników
przemysłowych,
WNT,
Warszawa 2006
7
Ocena końcowa
50% kolokwium zaliczające na wykładzie,
50% ocena z laboratorium
8
Laboratorium
Prowadzący: mgr inż. Paweł Marciniak
Laboratorium: ZK
Zestawy mikroprocesorowe + emulatory:
Kamami ZL15AVR + JTAG ICE MkII
Środowisko: AVR Studio
Zasoby zestawów:
► mikrokontroler ATmega32
► 4-przyciskowa klawiatura
► 5-pozycyjny joystick
► 8 diod LED
► czterocyfrowy wyświetlacz siedmiosegmentowy LED
► wyświetlacz LCD 2x16 znaków / graficzny wyświetlacz LCD 128x64 pikseli
► układ zegara M41T00 (STMicroelectronics) wraz z podstawką na baterię CR2032
► układ termometru TC77 (Microchip) pracujący na magistrali SPI
► czujnik temperatury MCP9701 (Microchip)
► odbiornik podczerwieni TSOP31236 (36 kHz)
► przetwornik piezoelektryczny
► złącze dla modułu USB<->UART
► złącza programatora ISP i JTAG
► złącze przeznaczone do zasilania zestawu z portu USB komputera
► złącze DB9 wraz z konwerterem napięć MAX232 do realizacji transmisji RS232
► zestaw złącz szpilkowych z wszystkimi użytecznymi sygnałami mikrokontrolera oraz układów peryferyjnych
► potencjometr umożliwiający podawanie napięcia z zakresu 0...5 V na wejście przetwornika analogowo-
cyfrowego wbudowanego w mikrokontroler
9
Cele i efekty
Znajomość współczesnych metod wykorzystania techniki cyfrowej
w aplikacjach systemów sterowania, kontroli, nadzoru,
ze szczególnym uwzględnieniem techniki mikroprocesorowej
i elektronicznych elementów mocy; elementy czujnikowe
i wykonawcze w zastosowaniach przemysłowych.
Znajomość metod sterowania procesów przemysłowych z naciskiem na
zastosowania sterowników PLC, sztywnej logiki realizowanej na różnych
elementach wykonawczych; komputery przemysłowe, sterowniki PLC
oraz sieci przemysłowe.
Znajomość w stopniu podstawowym zagadnień dotyczących komputerów
przemysłowych z uwzględnieniem architektury oraz zastosowanie
układów programowalnych w procesach przemysłowych.
10
Mikrokontroler
Mikrokontroler - układ scalony mikroprocesora
z wbudowanymi dodatkowymi układami peryferyjnymi
(autonomiczny system mikroprocesorowy)
Inna nazwa: mikrokomputer jednoukładowy
Zastosowanie mikrokontrolerów:
sterowanie urządzeniami
Mikroprocesor – scalony, sekwencyjny układ cyfrowy
działający zgodnie z pobieranymi z pamięci
i interpretowanymi rozkazami (programem)
11
Rys historyczny
Pierwsze mikroprocesory:
F14 CADC (F-14A Central Air Data Computer, 1970),
Intel 4004 (1971),
Intel 8008 (1972),
National Semiconductor IPC-16A/520 PACE (1975),
Motorola MC68000 (1979).
Pierwsze mikrokontrolery:
Texas Instruments TMS1000 (1971),
Intel 4048 (1975).
12
Struktura mikrokontrolera
Główne elementy:
jednostka arytmetyczno-logiczna (ALU),
układ sterowania (CU/dekoder rozkazów),
rejestry (danych, adresowe, akumulator, PC, IR, SP),
pamięć danych (RAM),
pamięć programu,
porty wejścia-wyjścia (I/O),
wewnętrzne układy peryferyjne.
13
Układy peryferyjne
układy czasowo-licznikowe (timery),
kontrolery transmisji szeregowej (UART, SPI, I2C, USB, itd.),
przetworniki A/C i C/A,
zegar czasu rzeczywistego (RTC),
układ kontroli poprawnej pracy (watchdog),
czujniki wielkości nieelektrycznych (np. czujniki temperatury),
układy PWM,
komparatory analogowe,
transceivery radiowe,
dekodery MP3,
sterowniki wyświetlaczy LCD,
itd.
14
Inne elementy
systemu mikroprocesorowego
pamięci zewnętrzne,
przełączniki /
klawiatury,
diody LED / wyświetlacze,
sygnalizatory (przetworniki piezoelektryczne),
czujniki zewnętrzne,
elementy wykonawcze (silniki, przekaźniki, zawory itp.),
zewnętrzne układy peryferyjne,
układy taktujące.
15
Układy taktujące
rezonator kwarcowy lub ceramiczny,
wewnętrzny układ taktujący (oscylator RC, PLL),
zewnętrzne źródła sygnału zegarowego.
16
Programowanie
fabryczne (pamięć stała ROM),
w programatorze (pamięć EPROM, EEPROM, Flash),
w systemie (ISP),
programowanie zewnętrznej pamięci.
17
Języki programowania
kod maszynowy – zera i jedynki, np.
asembler – język niskiego poziomu, rozkazy zapisane
w postaci symboli (mnemoników), np.
ADD R20, R21
języki wysokiego poziomu (głównie C), np.
c = a + b;
001000
10100
10101
opcode
operand 1 operand 2
18
Rodzaje mikroprocesorów
i mikrokontrolerów
Długość słowa (rozmiar szyny danych i rejestrów):
4 bitowe,
8 bitowe,
16 bitowe,
32 bitowe,
64 bitowe.
Rodzaj architektury:
von Neumanna,
harwardzka,
zmodyfikowana harwardzka.
Złożoność listy rozkazów (zestawu instrukcji):
CISC,
RISC,
MISC.
19
Architektury mikroprocesorów
i mikrokontrolerów
Architektura Harvard:
Architektura von Neumanna:
CU
ALU
I/O
Pamięć
programu
Pamięć
danych
Cechy/zalety architektury RISC:
mniejsza liczba rozkazów (prostszy dekoder rozkazów),
brak mikrokodu i prostsze instrukcje (instrukcje wykonywane w mniejszej liczbie
cykli maszynowych - wydajność),
mniej trybów adresowania (prostszy w pisaniu kod),
mniej odwołań do pamięci dzięki dużej liczbie rejestrów roboczych (wydajność).
CU
ALU
I/O
Pamięć
programu
i danych
(wspólna)
Zmodyfikowana architektura harwardzka – osobna pamięć programu i danych,
ale wspólna przestrzeń adresowa
20
Architektura big endian / little endian
Kolejność zapisu i przesyłania bajtów:
od najstarszego do najmłodszego (big endian),
od najmłodszego do najstarszego (little endian).
Rejestr:
Pamięć:
Big-endian
Little-endian
0A
0B
0C
0D
rosnące
adresy
0D
0C
0B
0A
0A 0B 0C 0D
21
Architektura potokowa
Instrukcja 1:
Instrukcja 2:
Instrukcja 3:
Instrukcja 4:
IF ID EX ME WB
IF ID EX ME WB
IF ID EX ME WB
IF ID EX ME WB
czas
IF – pobranie instrukcji, ID - dekodowanie instrukcji, EX – wykonanie instrukcji (ALU),
ME – zapis do pamięci, WB -zapis do pliku rejestrów
22
Rodziny mikrokontrolerów
Wielu producentów / wiele rodzin, m.in.:
Atmel:
AVR (8 bitowe),
AVR32 (32 bitowe).
Freescale (Motorola):
68HC11 (8 bitowe),
S08 (8 bitowe),
ColdFire (32 bitowe).
Intel (i wielu innych producentów):
MCS-51 (8 bitowe).
Hitachi:
H8 (8 bitowe / 16 bitowe),
SuperH (32 bitowe).
Microchip:
PIC (8 bitowe / 16 bitowe / 32 bitowe)
NEC:
V850 (32 bitowe).
ST Microelectronics:
ST (8 bitowe / 16 bitowe).
Texas Instruments:
MSP430 (16 bitowe),
C2000 (32 bitowe),
Stellaris (32 bitowe).
Toshiba:
TLCS (8 bitowe / 16 bitowe).
Zilog:
eZ80 (8 bitowe),
eZ8 (16 bitowe).
ARM (różni producenci):
ARM7 (32 bitowe),
Cortex-M3 (32 bitowe).
23
Rodzina MCS-51
Zmodyfikowana architektura
harwardzka, CISC
8-bitowe rejestry i szyna danych
16-bitowa szyna adresowa
128B RAM
akumulator i 8 rejestrów R0-R7
2 timery 16-bitowe
12 cykli zegara/cykl maszynowy
liczne wersje ulepszone
i rozbudowane, np.
ADuC847 (Analog Devices)
24
Rodzina PIC
PIC10
Architektura harwardzka, RISC
8-bitowe rejestry i szyna danych
12-bitowa szyna adresowa
akumulator, 32 rejestry 8-bitowe
timer 8-bitowy
2 cykle zegara/cykl maszynowy
komparator napięcia
25
Rodzina ST
STM8
Architektura harwardzka, CISC
8-bitowa szyna danych
32-bitowa szyna adresowa
6 rejestrów (ACC, PC, SP)
timery 8- i 16-bitowe
1 cykl zegara/cykl maszynowy
10-bitowy przetwornik A/C
26
Rodzina MSP430
Architektura von Neumanna?,
RISC
16-bitowa szyna danych
16-/20-bitowa szyna adresowa
16 rejestrów
(12 ogólnego przeznaczenia)
timery 16-bitowe
1 cykl zegara/cykl maszynowy
10-/12- lub 16-bitowy
przetwornik A/C
27
Rodzina AVR 8-bit
Architektura harwardzka, RISC
8-bitowe rejestry i szyna danych
16-bitowa szyna adresowa
32 rejestry R0-R31
timery 8- i 16-bitowe
1 cykl zegara/cykl maszynowy
10-bitowy przetwornik A/C
ISP
28
Rodzina AVR 8-bit
Rodzaje:
ATtiny
0,5 – 8 kB pamięci programu
obudowy 6- do 32- pinowe
ograniczone zasoby
niski pobór mocy
ATmega
4 – 256 kB pamięci programu
obudowy 28- do 100- pinowe
rozbudowany zestaw instrukcji
rozbudowane zasoby
29
ATmega 32
Vcc = 4,5 – 5,5 V
(ATmega32L : 2,7 – 5,5 V)
f = 0 – 16 MHz
(ATmega32L : 0 – 8 MHz)
Pamięć Flash, SRAM, EEPROM
USART, SPI
Przetwornik A/C
Timery
PWM
Komparator analogowy
JTAG
30
ATmega 32 - wyprowadzenia
31
Mapa pamięci
Flash
16384 * 2B = 32kB
RAM
2144B
ATmega 32
EEPROM
1024B = 1kB
0x0000
0x0000
0x0000
0x3FFF
0x085F
0x03FF
32
Rejestry
32 rejestry robocze:
R0 – R31
64 rejestry specjalne
33
Rejestry robocze wskaźnikowe
3 rejestry wskaźnikowe:
34
Rejestry specjalne
Rejestr statusowy SREG:
Wskaźnik stosu SP:
I – Global Interrupt Enable; T – Bit Copy Storage; H – Half Carry Flag; S – Sign Bit
V – Two’s Complement Overflow Flag; N – Negative Flag; Z – Zero Flag; C – Carry Flag
35
Asembler - rodzaje instrukcji
instrukcje przesyłu danych,
instrukcje arytmetyczne,
instrukcje operacji bitowych,
instrukcje porównań,
instrukcje skoków bezwarunkowych,
instrukcje skoków i powrotów z podprogramów,
instrukcje skoków warunkowych,
instrukcje dodatkowe.
36
Asembler – struktura programu
.include ”m32def.inc”
.def moj_rejestr=R18
.equ stala=10
...
.cseg
.org 100
LDI moj_rejestr,0x23
...
;komentarz
loop:
...
RJMP loop
inicjalizacja
dyrektywy
pętla główna
37
Asembler – makra i podprogramy
.macro delay1
NOP
NOP
NOP
NOP
.endmacro
....
delay1
....
delay2:
NOP
NOP
NOP
RET
....
RCALL delay2
....
38
Asembler – instrukcje warunkowe
IF r1 = 0 THEN i1 ELSE i2
TST r1
BRNE else
i1
RJMP exit
else:
i2
exit:
CASE r1 OF 0, 1, 2, ...
TST r1
BREQ case0
DEC r1
BREQ case1
DEC r1
BREQ case2
....
RJMP exit
case0:
i1
RJMP exit
case1: i2
RJMP exit
case2:
i3
RJMP exit
....
exit:
39
Asembler – pętle
WHILE r1 <> 0 DO ...
next: TST r1
BREQ exit
...
RJMP next
exit:
DO ... WHILE r1 <> 0
next:
....
TST r1
BRNE next
exit:
FOR r1 = 0 TO N
CLR r1
next:
....
INC r1
CPI r1, N
BRNE next
exit:
FOR r1 = N DOWNTO 0
LDI r1, N
next:
....
DEC r1
BRNE next
exit:
40
Tryby adresowania
Adresowanie natychmiastowe,
Adresowanie bezpośrednie,
Adresowanie bezpośrednie rejestrowe,
Adresowanie pośrednie rejestrowe,
Adresowanie pośrednie rejestrowe z przesunięciem,
Adresowanie pośrednie rejestrowe z predekrementacją,
Adresowanie pośrednie rejestrowe z postinkrementacją,
Adresowanie pamięci programu,
Adresowanie pośrednie pamięci programu,
Adresowanie względne pamięci programu.
41
Adresowanie natychmiastowe
Drugi operand – wartość natychmiastowa w argumencie
LDI r1, n
- zapis wartości n do rejestru r1 (R16 – R31)
SUBI r1, n
ANDI r1, n
ORI r1, n
CPI r1, n
ADIW rd, n
(rd = R24, R26, R28, R30)
42
Adresowanie bezpośrednie
Argument (liczba) jest adresem efektywnym operandu w pamięci
danych
STS addr, r1
- zapisanie wartości rejestru r1 pod adres addr
LDS r1, addr
43
Adresowanie bezpośrednie rejestrowe
Argumenty są nazwami rejestrów, w których są operandy
INC r1
DEC r1
CLR r1
SER r1
ADD r1, r2
SUB r1, r2
AND r1, r2
OR r1, r2
EOR r1, r2
CP r1, r2
MOV r1, r2
....
44
Adresowanie pośrednie rejestrowe
Adres efektywny operandu znajduje się w rejestrze wskaźnikowym
LD r1, X
LD r1, Y
LD r1, Z
ST X, r1
ST Y, r1
ST Z, r1
45
Adresowanie pośrednie rejestrowe
z przesunięciem
Adres efektywny operandu = adres z rejestru wskaźnikowego + przesunięcie
LD r1, Y+dis
LD r1, Z+dis
ST Y+dis, r1
ST Z+dis, r1
46
Adresowanie pośrednie rejestrowe
z predekrementacją
Adres efektywny operandu z rejestru wskaźnikowego jest zmniejszany o 1
przed wykonaniem operacji
LD r1, -X
LD r1, -Y
LD r1, -Z
ST -X, r1
ST -Y, r1
ST -Z, r1
47
Adresowanie pośrednie rejestrowe
z postinkrementacją
Adres efektywny operandu z rejestru wskaźnikowego jest zwiększany o 1
po wykonaniu operacji
LD r1, X+
LD r1, Y+
LD r1, Z+
ST X+, r1
ST Y+, r1
ST Z+, r1
48
Adresowanie pamięci programu
LPM
- kopiuje starszy lub młodszy bajt z pamięci programu spod
adresu wskazywanego przez Z
49
Adresowanie pośrednie
pamięci programu
IJMP - załadowanie do PC wartości z rejestru Z ; bez powrotu
ICALL – z możliwością powrotu (RET)
50
Adresowanie względne
pamięci programu
RJMP label
- załadowanie do PC adresu będącego sumą adresu
bieżącego oraz różnicy adresu bieżącego i adresu
etykiety; bez powrotu
RCALL label - z możliwością powrotu (RET)
51
Obsługa portów I/O
x = A, B, C, D (port)
Rejestry:
DDRx
- kierunek wejście (bit=0) / wyjście (bit=1)
PINx
- stan wejść (tylko odczyt)
PORTx - stan wyjść
Instrukcje:
IN r1, PINx
- odczyt stanu wejść do r1
OUT PORTx, r1
- ustawienie stanu wyjść zgodnie z r1
SBI PORTx, n
- stan wysoki na wyjściu n
CBI PORTx, n
- stan niski na wyjściu n
Dziękuję za uwagę.