SIMULACIJA PLC KONTROLERA

Elektronski fakultet Niš
Katedra za elektroniku
SIMULACIJA PLC KONTROLERA PREKO
MIKROKONTROLERA PIC16F877A
MILAN MLADENOVIĆ 11734
ALEKSANDRA PETROVIĆ 10600
IVAN STOJANOVIĆ 10666
Standardi za prenos podataka







TIA/EIA-232-F
TIA/EIA-423-B
TIA/EIA-422-B
TIA/EIA-485
SCSI
FireWire
USB
Standard TIA/EIA-232-F
 Definisan je u ANSI specifikaciji,
 Maksimalni protok podataka je 20kbs, mada sada postoji
veliki broj softverskih rešenja koja postižu 116 kbps i više,
 Logičkoj nuli odgovara stanje "SPACE", koji se nalazi u
opsegu napona +3V do +25V,
 Logičkoj jedinici odgovara stanje "MARK", koji je u opsegu
-3V do -25V,
 Naponski nivo između -3 do + 3 V nije definisan,
 Napon na kolu ne sme da pređe 25V u odnosu na masu,
 Struja kola ne sme pređe vrednost 500 mA.
Klasifikacija standarda po brzini
Serijski port
Signali serijskog porta
DSUB-9
Signal
Opis signala
pin 3
TD
Transmit Data
pin 2
RD
Receive Data
pin 7
RTS
Request To Send
pin 8
CTS
Clear To Send
pin 6
DSR
Data Set Ready
pin 5
SG
Signal Ground
pin 1
CD
Carrier Detect
pin 4
DTR
pin 9
RI
Data Terminal Ready
Ring Indicator
Značenje signala
Značenje signala
Signal
Opis signala
TD
Transmit Data
Serijski izlaz podataka (TXD)
RD
Receive Data
Serijski ulaz podataka (RXD)
RTS
Request ToSend
Indicira da je modem spreman za razmenu podataka
Kada modem detektuje signal "Carrier" od modema sa
druge strane linije, onda ona postaje aktivna
CTS
Clear To Send
DSR
Data Set Ready
DCE signalizira da je spreman za rad
SG
Signal Ground
Masa
CD
Carrier Detect
DCE javlja da je uspostavljena veza
DTR
Data Terminal Ready
RI
Ring Indicator
Indicira DCE uređaju da je DTE spreman
Signalizira detekciju signala "zvona" na telefonskoj liniji
Mikrokontroler PIC16F877A
PIC16F877A – karakteristike/1













RISC CPU visokih performansi
35 instrukcija obima jedne reči
Radna frekvencija do 20 MHz
Sve instrukcije su jednocikluske, sem instrukcija grananja
koje su dvocikluske
Trajanje taktnog intervala 200 ns (pri frekvenciji 20 MHz)
Opkôd je obima 14 bita
Hardverski magacin (stack) ima osam nivoa
Postoje tri načina adresiranja (direktno, indirektno i relativno)
Programska flash memorija je kapaciteta 8 k X 14-bitnih reči
Memorije za podatke (RAM) je kapaciteta 368 X 8 bita
Memorije za podatke (EEPROM) je kapaciteta 256 X 8 bita
Prekidi (maksimalno 14 izvora prekida)
šest ulazno-izlaznih portova (A, B, C, D i E)
PIC16F877A – karakteristike/2








 Timer0 (TMR0): osmobitni tajmer/brojač_događaja
 Timer1 (TMR1): šesnaestobitni tajmer/brojač_događaja
 Timer2 (TMR2): osmobitni tajmer/brojač_događaja
Serijska komunikacija: MSSP, USART
Paralelna 8-bitna komunikacija: PSP
ICSP (In Circuit Serial Programing) preko samo dva izvoda
Analogni komparatorski modul sa programabilnim referentnim
naponima
8-kanalni 10-bitni ADC (Analog-to-Digital Converter, analogno/
digitalni konvertor)
Power-on Reset - reset pri uključenju napajanja (POR)
Power-up timer - unošenje kašnjenja nakon uključenja
napajanja (PWRT)
Oscillator Start-up Timer - unošenje kašnjenja neposredno po
stabilizovanju radne frekvencije oscilatora (OST)
PIC16F877A – karakteristike/3
 Sleep mode - režim rada sa veoma malim utroškom energije
 Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom
za nezavisni rad
 Izbor tipa oscilatora (RC, XT, HS, LP)
 100000 ciklusa Write/Erase programske memorije
 1000000 ciklusa Write/Erase memorije za podatke EEPROM
 Trajanje podataka u EEPROM duže od 40 godina
 Radni napon može da bude u opsegu od 2V do 5.5V
 Mala potrošnja energije:
 <0.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz
 20µA pri naponu od 3V i radnom taktu od 32kHz
 <1µA u standby režimu rada
PIC16F877A – raspored pinova
na kućištu DIP-40
PIC16F877A – arhitektura/1
PIC16F877A – arhitektura/2












Aritmetičko-logička jedinica (ALU)
Akumulator (Working Register)
Hardverski magacin (Stack) organizivan u 8 nivoa
EEPROM memorija podataka obima 256 bajtova
Flash programska memorija – 8 kiloreči obima 14 bita
RAM (File Registers) – 368 bajtova
Višekanalni A/D konvertor,
USART,
SPI interfejs,
I2C interfejs,
šest U/I portova,
tajmere itd.
Logička kola
Multiplekseri
Lečevi i flip-flopovi
Taktovanje flip-flopova
Kombinovanje lečeva i flipflopova
Postoje dva načina na koje se kombinuju lečevi kod flip-flopova.
Kod prvog načina lečevi se kombinuju tako da se:
 Važećim ulaznim podacima koji su prisutni na ulazima flip-flopa
smatraju samo oni koji su prisutni u trenutku kada je važeći i
upravljački signal;
 Stanje flip-flopa menja samo kada stanje upravljačkog impulsa
nije aktivno. Ovaj tip flip-flopa se naziva master-slave.
Kod drugog načina važi sledeći princip. Flip-flop se okida samo u
toku promene taktnog impulsa sa '0' na '1' (ili sa '1' na '0'), a u
ostatku perioda promene nisu dozvoljene uključujući i period
taktnog signala. Ovaj flip-flop se naziva ivično-okidani flip-flop.
PLC kontroleri - definicija
 PLC - namenski elektronski uređaj, zasnovan na mikroprocesoru,
koji je u mogućnosti da obavlja brojne tipove upravljačkih funkcija
različitog nivoa složenosti
 PLC - industrijski računar čiji su hardver i softver posebno
prilagođeni radu u industrijskim uslovima, a koji se može lako
programirati i ugrađivati u nove i postojeće industrijske sisteme.
PLC kontroleri - opis
 PLC - (Programmable) - označava mogućnost programiranja.
Program rada se unapred priprema i puni u permanentu memoriju
PLC kontrolera. PLC program se razvija u jeziku lestvičastih (ladder)
dijagrama, koji je nastao po ugledu na tzv. relejne šeme.
 PLC - (Logic) - jedna od glavnih osobina PLC kontrolera je
mogućnost obavljanja logičkih (Bulovih) funkcija. PLC generiše
diskretne (digitalne) izlazne signale u funkciji (logičkoj) diskretnih
ulaznih signala - karakteristično za prvobitne tipove PLC kontrolera.
Savremeni PLC-ovi, pored logičkih mogu da obavljaju: aritmetičke
operacije, odmeravaju vremenske intervale, prebrojavaju događaje,
a prihvataju i generišu, pored diskretnih, i analogne signale.
 PLC (Controller) - Glavna primena u industriji (proizvodnoj) gde se
koristi za automatsko upravljanje procesima - prati ključne parametre
procesa (posredstvom priključenih senzora i davača, i shodno
memorisanom programu, generiše pobudu kojom deluje na proces
posredstvom aktuatora
PLC kontroler MicroLogix
firme Allen-Bradley
PLC kontroleri – blok šema
+V
Izvor napajanja
Prekidač
1
Prekidač
2
Ulazni
modul
Logička
jedinica
-V
Izlazni
modul
Sijalica
1
Sijalica
2
PLC kontroleri – primena
kod parking servisa
PLC kontroleri – primena
kod kontrole procesa
Simulacija PLC kontrolera
 PLC kontroler je simuliran preko PIC16F877A mikrokontrolera,
 Mikrokontroler ima takt od 4MHz i napaja se preko linearnog
regulatora napona LM7805,
 U cilju kasnijeg proširenja uređaja, postoji mogućnost povezivanja
mikrokontrolera sa računarom (preko integrisanog kola MAX232),
a komunikacija je bez handshaking-a.
PLC kontrolera – elek. šema
Db
CN0
Din
U1
1
1N4002
V in
7 8M05
V ou t
Gnd
1
2
3
V DD
R1
1N4002
Power
C2
C3
C4
2.2nF
100nF
2
C1
MCL R
220uF
100uF
SW1
SW
Gnd
Gnd
Gnd
Gnd
Gnd
Gnd
Gnd
OSC 1
Gnd
Gnd
PIC16F877A
MCL R
V DD
Gnd
OSC 1
OSC 2
CN6
MCL R
P A0
P A1
P A2
P A3
P A4
P A5
RD
WR
CS
V DD
V SS
OSC 1
OSC 2
P C0
P C1
P C2
P C3
P D0
P D1
P B7
P B6
P B5
P B4
P B3
P B2
P B1
P B0
V DD
V SS
P D7
P D6
P D5
P D4
P C7
P C6
P C5
P C4
P D3
P D2
40
39
38
37
36
35
34
33
32
31
30
29
28
27
26
25
24
23
22
21
VDD
VDD
VDD
VDD
Gnd 1
Gnd 2
Gnd 3
Gnd 4
CN7
V DD
Gnd
D1
LED
D2
LED
D3
LED
D4
LED
D5
LED
D6
LED
D7
LED
D8
LED
RN1
TX
RX
1
2
3
4
5
6
7
8
9
6
5 Gnd
4 Gnd
3 Gnd
2 Gnd
Gnd
Gnd Gnd Gnd Gnd Gnd Gnd
1 Gnd
CN2
Gnd Gnd Gnd Gnd Gnd Gnd Gnd
U2
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
Gnd 5
22pF
Gnd 6
22pF
Gnd 7
Gnd 1
Gnd 2
Gnd 3
Gnd 4
Gnd 5
Gnd 6
C6
CN1
CN5
VDD
OSC 2
4MHz
C5
Gnd Gnd Gnd Gnd Gnd Gnd
VDD
VDD
VDD
VDD
VDD
VDD
VDD
VDD
V DD
Y1
VDD
C11
100nF
CN4
C10
C9
MAX232
100nF
U3
1
2
3
4
5
6
7
8
100nF
VDD
VDD
VDD
VDD
VDD
CN3
C 1+
V+
C 1C 2+
C 2VT2 o ut
R 2i n
V cc
Gnd
T1 o ut
R 1i n
R 1o ut
T1 in
T2 in
R 2o ut
16
15
Gnd
14
R X1
13
TX 1
12
TX
11
RX
10
9
V DD
R X1
TX 1
C8
100nF
Gnd
C7
100nF
Gnd
1
6
2
7
3
8
4
9
5
DB9/F
Gnd
Gnd
PLC kontroler – štamp.ploča
PLC kontroler – blok šema 1
PLC kontroler – blok šema 2
PLC kontroler – raspored
pinova na ploči
PLC kontroler – raspored
pinova mikrokontrolera
PLC kontroler – funkcije
pinova mikrokontrolera
Organizacija pinova mikrokontrolera je sledeća:
 PC7 i PC6 su pinovi za eventualnu komunikaciju sa PC
računarom,
 PC5-PC2 predstavljaju ulaze 2 dvoulazna logička kola,
 PB7-PB5 su ulazi flip-flopova (D i JK ili T i JK),
 PB4-PB1 su ulazi multipleksera,
 PB0 je izlaz multipleksera,
 PD7 je ulaz demultipleksera,
 PD6-PD5, PC1-PC0 su izlazi demultipleksera,
 PD4-PD3 su izlazi flip-flopova,
 PD2-PD1 su izlazi logičkih kola, respektivno,
 PD0 signalizira promenu takta,
 PA5-PA3 su kontrolišući pinovi i definišu 8 različitih kombinacija,
 PA1-PA0 su selektorski ulazi za multiplekser i demultiplekser.
PLC kontroler – realizacija
logike za kombinaciju 000
PLC kontroler – realizacija
kola sa kombinacijom 000
PLC kontroler – realizacija
kola sa kombinacijom 000
PLC kontroler – realizacija
logike za kombinaciju 001
PLC kontroler – realizacija
logike za kombinaciju 010
PLC kontroler – realizacija
logike za kombinaciju 011
Kôd u mikroC-u
int k = 0;
// Definisanje varijabli
char AX, BX, CX, DX, EX, FX, JK, TX, Q1, Q2, Q3 = 0;
char clk, clkk = 1;
void main()
{
TRISA = 0b111111;
// Definisanje i inicijalizacija
PORTA = 0b000000;
// pinova PORTOVA A, B, C i D
TRISB = 0b11111110;
PORTB = 0b00000000;
TRISC = 0b10111100;
PORTC = 0b00000000;
TRISD = 0b10000000;
PORTD = 0b00000000;
CMCON = 7;
ADCON1 = 0x06;
// Definisanje pinova A porta
// kao digitalnih
Kôd u mikroC-u
do {
// Formiranje Beskonacne Petlje
if (k == 0) {
// Prilikom starta, tj. prilikom prvog
// obilaska petlje - kasnjenje je dve
// sekunde
Delay_ms(2000);
}
k++;
delay_ms(400);
// Takt za flip-flopove je 0,4 sekunde
clkk = clk;
// Opis funkcije I kola
AX = (PORTC.F5 && PORTC.F4);
// Opis funkcije ILI kola
BX = (PORTC.F5 || PORTC.F4);
// Opis funkcije I kola
CX = (PORTC.F3 && PORTC.F2);
// Opis funkcije ILI kola
DX = (PORTC.F3 || PORTC.F2);
Kôd u mikroC-u
// Opis funkcije EXILI kola
EX = ((PORTC.F5 && !(PORTC.F4)) || (!(PORTC.F5) && PORTC.F4));
// Opis funkcije EXNILI kola
FX = ((PORTC.F5 && PORTC.F4) || (!(PORTC.F5) && !(PORTC.F4)));
if (clk==1) {
// Ako je ivica takta rastuca...
PORTD.F0 = 1;
// Opis funkcija JK i T flip-flopa
Q1 = JK;
JK = ((PORTB.F6 && (!Q1)) || ((!(PORTB.F5) && Q1)));
Q2 = TX;
TX = ((!(PORTB.F7) && Q2) || (PORTB.F7 && (!Q2)));
}
else if (clk==0) {
// Ako je ivica takta opadajuca ...
PORTD.F0 = 0;
}
// Implementacija logike sa Slike 7-7
(1)
if ((PORTA.F5==0) && (PORTA.F4==0) && (PORTA.F3==0)) {
PORTC.F1 = !AX;
PORTC.F0 = !CX;
Kôd u mikroC-u
// Funkcija MUX 4/1
if ((PORTA.F1==0) && (PORTA.F0==0)) {
PORTB.F0 = PORTB.F4;
PORTD.F6 = PORTB.F4;
}
if ((PORTA.F1==0) && (PORTA.F0==1)) {
PORTB.F0 = PORTB.F3;
PORTD.F5 = PORTB.F3;
}
if ((PORTA.F1==1) && (PORTA.F0==0)) {
PORTB.F0 = PORTB.F2;
PORTD.F2 = PORTB.F2;
}
if ((PORTA.F1==1) && (PORTA.F0==1)) {
PORTB.F0 = PORTB.F1;
PORTD.F1 = PORTB.F1;
}
PORTD.F3 = JK;
// JK flip-flop
PORTD.F4 = PORTB.F7;
// D flip-flop
}
Kôd u mikroC-u
// Implementacija logike sa Slike 7-8
(2)
else if ((PORTA.F5==0) && (PORTA.F4==0) && (PORTA.F3==1)) {
PORTD.F1 = !BX;
PORTD.F2 = !DX;
// Funkcija MUX 2/1
if (PORTA.F0==0) {
PORTB.F0 = PORTB.F4;
PORTD.F6 = PORTB.F4;
}
if (PORTA.F0==1) {
PORTB.F0 = PORTB.F3;
PORTD.F5 = PORTB.F3;
}
PORTD.F3 = JK;
// JK flip-flop
PORTD.F4 = TX;
// T flip-flop
}
else if ((PORTA.F5==0) && (PORTA.F4==1) && (PORTA.F3==0)) {
PORTD.F1 = EX;
PORTD.F2 = FX;
Kôd u mikroC-u
// Funkcija MUX 2/1
if (PORTA.F0==0) {
PORTB.F0 = PORTB.F4;
PORTD.F6 = PORTB.F4;
}
if (PORTA.F0==1) {
PORTB.F0 = PORTB.F3;
PORTD.F5 = PORTB.F3;
}
PORTD.F3 = JK;
// JK flip-flop
PORTD.F4 = TX;
// T flip-flop
}
else if ((PORTA.F5==0) && (PORTA.F4==1) && (PORTA.F3==1)) {
PORTD.F1 = AX;
PORTD.F2 = !CX;
// Funkcija MUX 2/1
if (PORTA.F0==0) {
PORTB.F0 = PORTB.F4;
PORTD.F6 = PORTB.F4;
}
Kôd u mikroC-u
if (PORTA.F0==1) {
PORTB.F0 = PORTB.F3;
PORTD.F5 = PORTB.F3;
}
PORTD.F3 = JK;
PORTD.F4 = PORTB.F7;
}
clk = !clkk;
} while (1);
}//~
// JK flip-flop
// D flip-flop
// Formiranje takta
// Kraj Petlje
Programiranje mikrokontrolera
Za programiranje mikrokontrolera PIC16F877A
korišćeni su
 Bootstrap loader (ALLPIC) i
 Softverski alat (IC-Prog).
ALLPIC bootstrap loader
 Jednostavan i veoma jeftin (do 10 evra),
 Pripada grupi tzv. JDM loadera,
 Programiranje se ostvaruje preko serijskog porta,
 Zahteva eksterno napajanje 15-20V.
ALLPIC – električna šema
IC Prog – softverski alat
 Jednostavan za korišćenje
 Kompatibilan sa većim brojem bootstrap loadera
Mapa programske memorije
Vežba
 Dovesti napajanje preko adaptera, koji treba da bude
podešen na 7.5V (nestabilisani jednosmerni napon).
 Proveriti za kombinaciju PA5-PA3= “000“ PLC kontrolera,
koje su opisane u osmom poglavlju. Skicirati dijagrame
ulaznih i izlaznih veličina (logičkih vrednosti).
 Uz nadzor asistenta, preko klema/konektora i spoljašnjih
vodova (izolovanih žica) napraviti bar jednu logičku šemu.
Proveriti logičku šemu za sve moguće kombinacije.
Skicirati dijagrame ulaznih i izlaznih veličina.
Napomene
 Ukoliko je pin nekog porta definisan kao izlazni, nikako ne
treba dovoditi na njega logičku '0' ili logičku '1'.
 Pinovi Porta A su direktno su stalno povezani na konektor
sa prekidačima SW-CN5, s obzirom da se radi o kontrolišućim
pinovima.
 Ukoliko pin nekog porta nije povezan pre priključivanja
napajnja, njegovo stanje biće identično stanju koje je
definisano kao početno u kodu u mikroC-u.
 Pre priključivanja napajanja, na potenciometru AC/DC
adaptera treba izabrati 7.5V nestabilisano.
Zaključak
 Namera autora ovog rada bila je da se prikaže jedan
način za simulaciju PLC kontrolera. Pomenuti kontroler
je realizovan pomoću mikrokontrolera PIC16F877A.
 U sedmom poglavlju je opisan način realizacije logičkih i
sekvencijalnih kola pomoću PLC-a, a u devetom poglavlju
opisana je laboratorijska vežba za samostalan rad, gde
studenti mogu da ostvaruju različite logičke šeme preko
klema (na ploči).
 Za programiranje mikrokontrolera PIC16F877A korišćeni
su ALLPIC programator i softver IC-Prog.
 Kako bi se ostvarile eventualne nadogradnje projekta,
predviđena je serijska komunikacija mikrokontrolera
i računara bez handshakinga. Prilagođenje naponskih
nivoa se ostvaruje sa standardnim kolom MAX232.
CV Milana Mladenovića
CV Aleksandre Petrović
CV Ivana Stojanovića