67
UNIVERZITET U NIŠU ELEKTORNSKI FAKULTET KATEDRA ZA ELEKTRONIKU Smer: EKIS Predmet: Embedded sistemi Simulacija PLC kontolera pomoću PIC16F877 mikrokontrolera studenti: Aleksandar Gošić 11486 Aleksandar Lakićević 11523 mentor: prof. dr Mile Stojčev PDF created with pdfFactory Pro trial version www.pdffactory.com

PLC Izvestaj

Embed Size (px)

Citation preview

Page 1: PLC Izvestaj

UNIVERZITET U NIŠU ELEKTORNSKI FAKULTET KATEDRA ZA ELEKTRONIKU Smer: EKIS Predmet: Embedded sistemi

Simulacija PLC kontolera pomoću PIC16F877 mikrokontrolera

studenti: Aleksandar Gošić 11486

Aleksandar Lakićević 11523

mentor: prof. dr Mile Stojčev

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 2: PLC Izvestaj

1

Sadržaj UVOD ......................................................................................................... 2 PLC ............................................................................................................. 3 PLC sistem .................................................................................................. 5 Programiranje PLC-a. Ladder dijagrami ...................................................... 6 Projektni zadatak ......................................................................................... 7 MIKROC – Softver za programiranje PIC mikrokontrolera ........................10 Editovanje koda ..........................................................................................13 Učitavanje HEX fajla u mikrokontroler–Programiranje mikrokontrolera ....17 Princip rada bootloadera .............................................................................25 Realizacija softvera - Realizacija zadate kombinacione funkcije................26 Transformacija ladder dijagrama u mikroC kod ..........................................29

Primer 1:..................................................................................................29 Primer 2:..................................................................................................35

Primeri za laboratorijske vežbe ...................................................................41 Literatura ....................................................................................................48 Zaključak ....................................................................................................49 Dodatak ......................................................................................................50

Opis mikrokontrolera PIC16F877............................................................50 Serijska komunikacija posredstvom MAX232 drajvera ...........................63 U/I moduli ...............................................................................................64 Napajanje ................................................................................................65

Biografije autora .........................................................................................66

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 3: PLC Izvestaj

2

UVOD Smisao ovog zadatka je da se pomoću PIC16F877 mikrokontrolera

simulira rad programabilnog logičkog kontrolera (PLC). Za pisanje koda koristili smo kompajler mikroC, a za upis koda u mikrokontroler koristili smo mikroBootloader, produkte firme MikroElektronika iz Beograda.

Primena i način rada PLC kontrolera biće pojašnjena u prvom delu teksta. Kasnije je opisan kompletan hardver sistema počevši od mikrokontrolera pa nadalje. Zatim, biće opisani softveri za editivanje koda i za učitavanje koda u mikrokontroler. Na kraju je objašnjeno kako se pomoću osnovnih logičkih funkcija realizuju konkretne složene funkcije, što je ilistrovano kroz nekoliko prostih primera.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 4: PLC Izvestaj

3

PLC 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 - digitalni elektronski uređaj koji poseduje programabilnu memoriju za smeštanje instrukcija kojima se realizuju specifične funkcije, kao što su logičko sekvenciranje, tajming, brojanje i artimetičke operacije, a u cilju upravljanja različitim mašinama i procesima putem digitalnih ili analognih ulazno/izlaznih modula.

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 - (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) - slika 1.

Slika 1. PLC - upravljačka jedinica procesa.

PLC kontroler se razlikuje od računarskog sistema opšte namene po

tome što nema spoljnu memoriju (diskove), kao i niz standardne

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 5: PLC Izvestaj

4

ulazno/izlazne opreme. Pored toga, njegov operativni sistem je jednostavniji i pruža komparativno manje mogućnosti od računara opšte namene. Zapravo, PLC je koncipiran i projektovan za jedan relativno uzak i jasno definisan obim poslova vezanih za nadzor i upravljanje pojedinim uređajima, mašinama i procesima, što je rezultovalo u njegovoj izuzetnoj efikasnosti i jednostavnosti. U izvesnom smislu, područje primene PLC kontrolera isto je kao i za specijalizovane mikroračunarske kontrolere ili signal procesore. Ključna razlika leži u činjenici da korišćenje PLC-a ne zahteva od korisnika gotovo nikakvo predznanje o arhitekturi mikroračunarskih sistema i programiranju. Drugim rečima, korisnik PLC kontrolera je u najvećoj mogućoj meri oslobođen rešavanja različitih problema vezanih za čisto računarski aspekt, i može da se u punoj meri skoncentriše na projektovanje same aplikacije. Na slici 2 su prikazani savremeni komercijalni PLC-ovi.

Slika 2. Izgled PLC kontrolera

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 6: PLC Izvestaj

5

PLC sistem Na slici 3 su, u obliku blok dijagrama, prikazane četiri osnovne

jedinice svakog PLC sistema kao i načina na koji su medusobno povezane: 1. Centralna procesorksa jedinica (CPU) ili logička jedinica

predstavlja „mozak“ sistema, a sastoji se iz sledece tri podjedinice: a. Mikroprocesor. b. Memorija – za cuvanje sistemskog softvera i korisnickog programa c. Izvor napajanja - obezbeduje napajanje mikroprocesora,

memorije, ulaznog i izlaznog modula. 2. Programator/Monitor (PM). PM je uredaj koji se koristi za

komunikaciju sa PLC-om. Primeri PM-ova su: rucni terminali, industrijski terminali i personalni racunari. Sa jedne strane, prema operateru, ovi uredaji poseduju ekran i tastaturu, dok sa druge, prema PLC-u, odgovarajuci komunikacioni interfejs za prenos programa, podataka, statusnih informacija ka/iz PLC-a.

3. U/I moduli. Ulazni modul poseduje terminale (prikljucne tacke) na koje se dovode elektricni signali koje generišu senzori ili prevaraci. Izlazni modul poseduje terminale preko koji PLC šalje izlazne signale kojima pobuduje relee, solenoide, motore, displeje i druge izlazne uredaje.

4. Rekovi i šasije. Delovi PLC sistema CPU, PM i U/I moduli smeštaju se u metalne ormare – tzv. rekove.

Slika 3. PLC sistem

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 7: PLC Izvestaj

6

Programiranje PLC-a. Ladder dijagrami Kao što je već ranije istaknuto, PLC je početno razvijen sa idejom da

zameni relejne sisteme. To znači da se očekivalo da on realizuje odgovarajuću vremensku sekvencu logičkih operacija. Pored toga, uspešna primena PLC-a u praksi, zahtevala je i da se njegovo programiranje prilagodi tehnici koja je svim korisnicima relejnih sistema dobro poznata. Iz svih ovih razloga, za projektovanje PLC-ova razvijen je programski jezik zasnovan na leder (lestvičastim) dijagramima – leder programski jezik. Jedan prostiji primer ladder dijagrama je prikazan na slici 4.

Slika 4. Primer ladder dijagrama

Kao što se vidi sa slike, ladder dijagram se sastoji od uslova funkcije

sa leve strane i akcije sa desne strane. Osnovni tipovi uslova (bit naredbe za definiasanje uslova) su normalno otvoren prekidač( ) i normalno zatvoren prekidač ( ). Pomoću njih je moguće realizovati sve osnovne logičke funkcije o čemu će biti reči kasnije. Simbol za akciju je ( ) i ona se izvršava ako je iskaz (uslov) na levoj strani dijagrama istinit.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 8: PLC Izvestaj

7

Projektni zadatak Kao što smo već napomenuli zadatak ovog projekta je bio da se pomoću mikrokontrolera simulira rad PLC-a. Za tu svrhu je iskorišćen MICROCHIP-ov mikrokontroler PIC16F877. Konkretno, zadatak je bio da se opišu osnovne logičke kombinacione funkcije koje bi permanentno bile smeštene u softer mikrokontrolera, a da se konkretne složene funkcije realizuju, u glavnom delu softvera, povezivanjem osnovih logičkih funkcija. Sa jedne strane, na ulaz kontrolera potrebno je povezati prekidače, kao ulazne module, koji će definisati stanje na ulazu logičkih funkcija, a sa druge strane potrebno je povezati LED diode, kao izlazne module, koje će služiti kao indikacija stanja na izlazu kontrolera.

Za realizaciju ovog simulatora upotrebljene su sledeće komponente: • mikrokontroler PIC16F877 kao centralna procesorska jedinica; • MAX232 sa propratnim interfejsom za serijsku komunikaciju sa

računarom putem koje se vrši programiranje kontrolera; • klik-klak prekidači koji definišu logičke ulaze kontrolera (visok ili

nizak nivo na ulazu kontrolera ); • LED diode za indikaciju logičkih stanja na izlazu kontrolera; • 74HC241 drajver za poduđivanje LED dioda; • RESET kolo za vraćanje kontrolera na početno stanje (resetovanje); • blok za napajanje sa stabilizatorom napona na 5V.

Na sledećim slikama su prikazane blok šema celog sistema kao i šema štampane ploče odnosno PCB-a koje su izrađene u programskom paketu DXP korišćenjem programa Protel2004.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 9: PLC Izvestaj

8

Slika 5. Blok šema kompletnog sistema

Slika 6. Izgled štampane ploče sistema

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 10: PLC Izvestaj

9

Slika 7. Realizovani PLC simulator

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 11: PLC Izvestaj

10

MIKROC – Softver za programiranje PIC mikrokontrolera

mikroC prestavlja moćan softverski alat, koji je razvila beogradska MikroElektronika, i namenjen je pisanju koda za MICROCHIP-ove PIC mikrokontrolere. Koristeći mikroC, programeru je omogućen jednostavan način da kontroliše proces programiranja i napravi kvalitetan firmware. Osnovne karakteristike programa mikroC su sledeće:

• Pisanje C koda korišćenjem kvalitetnog editora, što se ogleda automatskom kontrolom i upozorenjima vezanim za sintaksu koda, korišćenih parametara, kao i automatskoj korekciji pojedinih grešaka;

• Preglednost strukture programa (koda), promenljivih i funkcija omogućava Code explorer;

• Jasan asemblerski kod i standardna kompatibilnost generisanih HEX datoteka toka programa preko ugrađeg debagera (debugger);

• Programer ima na raspolaganju veliki broj integrisanih biblioteka i rutina, koje značajno ubrzavaju pisanje programa;

• Detaljan izveštaj i grafičko predstavljanje RAM i ROM mape, statistike koda i slično.

Moramo da napomenemo kako mikroC odstupa od ANSI standarda u nekoliko segmenata. Neka odstupanja su načinjena u cilju da se olakša programiranje, dok su druge rezultat hardverskih ograničenja PIC mikrokontrolera. Pomenućemo neke specifičnosti:

• Rekurzivne funkcije (function recursion) su podržane sa izvesnim

ograničenjima, koja su posledica nešto složenijeg pristupa magacinu (stack) i ograničenja vezana za memoriju;

• Pokazivači (pointers) promenljivih i pokazivači konstanti nisu kompatibilni, tj. nije moguća međusobna dodela ili upoređivanje;

• mikroC tretira označavanje const kao “true constans” (kod C++), što omogućava korišćenje const objekta na mestima gde ANSI C očekuje constant izraz .Ukoliko se teži ka prenosivosti programa, treba koristiti tradicionalno pretprocesorsko definisanje konstanti;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 12: PLC Izvestaj

11

• mikroC dozvoljava C++ stil jednolinijskih komentara, koristeći dve kose crte (//). Komentar može da počne bilo gde i traje do sledeće nove linije programskog koda;

• Brojne standardne C biblioteke (ctype, math, stdlib, string ) implementirane su u mikroC, uz individualna odstupanja.

Napominjemo da mikroC podržava gotovo sve PIC mikrokontrolere

serija 12, 16 i 18. Izuzetak su mikrokontroleri koji imaju staro hardversko jezgro kao na primer PIC12C508, PIC12F508, PIC12C509, PIC12F509 itd. Inače, ograničena verzija (do 2KB programa) može da se preuzme sa sajta MikroElektronike (www.mikroe.com). U sličaju ako se želi potpuna verzija (neograničen kapacitet programa), mora da se plati licenca od 250$.

Instalacija Ovde ćemo preko Slika 8-11 ilustrovati proces instaliranja mikroC-a.

Inače, instalacija traje 30 sekundi. Posle instalacije treba pokrenuti mikroC, a to se najjednostavnije ostvaruje klikom na ikonicu:

Početak procesa instalacije se ostvaruje klikom na izvršni fajl

mikroC_..._.exe . Nakon toga sledi:

Slika 8. Sada treba kliknuti na komandno dugme NEXT

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 13: PLC Izvestaj

12

Slika 9. Prihvatanje uslova licenciranja i zatim treba kliknuti na komandno dugme

NEXT

Slika 10. Izbor programatora (PicFlash), gotovih primera i zatim klik na komandno

dugme NEXT

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 14: PLC Izvestaj

13

Slika 11. Izbor foldera za smeštanje programa i klik na komandno dugme NEXT

Na kraju instalacije mikroC-a biće ponuđena instalacija drajvera za programator koju u ovom slučaju treba prekinuti izborom opcije No, jer će se programiranje mikrokontrolera vršiti na način koji će kasnije biti opisan.

Editovanje koda

U narednim redovima biće ilustrovan postupak kreiranja koda u mikroC-u (Slike 12-18).

Slika 12. Izgled editora po startovanju programa mikroC

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 15: PLC Izvestaj

14

Slika 13. Kreiranje novog projekta preko opcije Project → New Project

Slika 14. Podešavanje parametara novog projekta (naziv, tip mikrokontrolera, takt, parametri kontrolera)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 16: PLC Izvestaj

15

Kod ovog koraka je neophodno u okviru prozora New Project odabrati:

• ime projekta; • njegovu putanju; • tip mikrokontrolera (u našem slučaju P16F877); • vrednost frekvencije kvarcnog kristala (u našem slučaju 8MHz); • i čekirati dugme Default. Nakon toga pritisnuti Ok.

Slika 15. U editor treba uneti program (kod) mikrokontrolera

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 17: PLC Izvestaj

16

Slika 16. U editor je unet primer zadate funkcije

Slika 17. Sada treba izvršiti prevođenje (compile) programa preko opcije Project

→ Build

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 18: PLC Izvestaj

17

Slika 18. Izgled prozora posle kompilacije sa izveštajem (Messages)

Kao produkti prevođenja (kompilacije/kompajliranja) generiše se nekoliko fajlova: asemblerski kod (ASM), heksadecimalni kod (HEX), izveštaji itd. Nama je od daljeg značaja HEX fajl jer on predstavlja kod koji treba „spustiti“ u mikrokontroler, odnosno kod kojim se programira mikrokontroler.

Učitavanje HEX fajla u mikrokontroler – Programiranje mikrokontrolera

Jedan od načina na koji se programira mikrokontroler („spuštanje“

HEX fajla) je učitavanje HEX fajla posredstvom mikroBootloader-a, programa koji je sastavni deo paketa mikroC. Na taj način se izbegava potreba dodatnog programatora čime se uređaj značajno pojeftinjuje i pojednostavljuje. Sve što je potrebno je da se ostvari serijska veza mikrokontrolera i PC-a, a to se veoma jednostavno postiže povezivanjem USART terminala mikrokontrolera na COM port PC-a, posredstvom

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 19: PLC Izvestaj

18

neophodnog drajvera za RS-232 komunikaciju (MAX232 sa propratnim hardverom odnosno elektrolitskim kondenzatorima) i kabla (neupredeni „1na1”) za RS-232 komunikaciju. Ostvarivanje ove veze je predhodno detaljnije objašnjeno. Da bi se na ovaj način isprogramirao mikrokontroler ipak je neophodno da se prvo u njega, pomoću adekvatnog programatora, učita kod koji će nadalje omogućiti komunikaciju mikrokontrolera i mikroBootloader-a. Na taj način potreba za programatorom postoji samo pri prvom programiranju mikrokontrolera, te se on ne mora ugradjivati u uređaj što ga je učinilo značajno jeftinijim i jednostavnijim, a svaki naredni put se programiranje vrši preko serijskog porta (USART terminala) korišćenjem programa mikroBootloader. Takođe je moguće kupiti mikrokontroler sa već ugrađenim kodom za programiranje putem serijskog porta (USART terminala) korišćenjem nekog bootloader-a. Postupak programiranja je sledeći:

Najpre je potrebno učitati kod za komunikaciju sa mikroBootloader-om posredstvom nekog programatora u mikrokontroler. U tu svrhu je iskorišćeno razvojno okruženje firme MikroElektronika iz Beograda dato na slici 19.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 20: PLC Izvestaj

19

Slika 19. Razvojno okruženje EasyPIC4

Učitavanje datog koda se vrši na sledeći način: U okviru primera koji se dobijaju uz navedeno razvojno okruženje

nalazi se i neophodan kod koji se nalazi u sistemskom folderu programa mikroC čija putanja je sledeća: ...\Mikroelektronika\mikroC\Examples\EasyPic4\extra_examples\Bootloader\P16

Kada je program otvoren programiranje se vrši jednostavnim pritiskom na dugem Build+Program kao na slici 32.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 21: PLC Izvestaj

20

Slika 20. Učitavanje bootloader koda

Pošto je mikrokontroler isprogramiran kodom za komunikaciju sa

mikroBootloader-om može se izvaditi iz okruženja i ugraditi u razvijeni sistem.

Kada je i to obavljeno, dalje programiranje kontrolera se vrši na sledeći način:

U okviru alata koje poseduje mikroC nalazi se i već pomenuti mikroBootloader prikazana na slici 21.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 22: PLC Izvestaj

21

Slika 21. Pokretanje mikroBootloader-a

Na sledećoj slici je prikazan izgled mikroBootloader-a.

Slika 22. Izgled mikroBootloader-a

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 23: PLC Izvestaj

22

Uspostavljanje veze se vrši na sledeći način: Najpre je potrebno izvršiti priključivanje sistema na napajanje i COM

port PC-a. Kada je program mikroBootloader pokrenut potrebno je podesiti RS-

232 komunikaciju biranjem opcije Setup Port na način prikazan na slici 23.

Slika 23. Podešavanje RS-232 komunikacije

Pošto je sve to obavljeno neophodno je resetovati mikrokontroler

pritiskom na taster predviđen za reset i u roku od dve sekunde inicirati konekciju pritiskom na opciju Connect. Ako je konekcija uspešno obavljena pojaviće se prozor kao na slici 24.

Slika 24. Uspešno obavljena konekcija

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 24: PLC Izvestaj

23

U suprotnom će se pojaviti prozor prikazan na slici 25 što znači da neki od koraka nije ispoštovan. U tom slučaju treba ponoviti algoritam konektovanja počevši od koraka sa slike 22.

Slika 25. Neuspešna konekcija usled lošeg setovanja porta(Setup Port) ili usled isticanja vremenskog intervala od dve sekunde za iniciranje komunikacije nakon

resetovanja mikrokontrolera

Ako je konekcija uspešno izvršena (slika 24) potrebno je učitati već izgenerisani HEX fajl sa zadatom funkcijom, biranjem opcije Open HEX file kao na slikama 26 i 27.

Na samom kraju, programiranje mikrokontrolera se vrši opcijom Start bootloader. Kada se učitavanje HEX fajla završi, pojavljuje se prozor kao na slici 28 pa je potrebno još jednom resetovati mikrokontroler pritiskom reset tastera na sistemu nakon čega je on a samim tim i ceo sistem spreman za izvršavanje zadate funkcije.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 25: PLC Izvestaj

24

Slika 26. Otvaranje adekvatnog HEX fajla

Slika 27. Izgled prozora nakon učitanog HEX fajla nakon čega je potrebno

startovati bootloader opcijom Start bootloader

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 26: PLC Izvestaj

25

Slika 28. Izgled prozora nakon uspešno izvršenog programiranja

mikrokontrolera. Dalje je potrebno pritisnuti dugme Ok i resetovati mikrokontroler

Princip rada bootloadera Ovakav vid programiranja je specifičan za PIC mikrokotrolere. Način

na koji se programiranje zapravo odvija je sledeći: Kod koji je prvo učitan u mikrokontroler (preko programatora) je

smešten na samom početku ROM memorije predviđene za smeštanje programa rada mikrokontrolera. On ima funkciju da nakon svakog resetovanja kontrolera u toku prve 2 sekunde nadgleda USART terminal. Ukoliko je sistem priključen na COM port PC-a i u toku od te 2 sekunde usledi inicijalizacija konekcije kao na slici 36 bootloader program će skočiti na prvu liniju ispod sebe i na taj način omogućiti upisivanje konkretnog programa u prostor predviđen za te svrhe. A ako ne dođe do iniciranja konekcije u roku od 2 sekunde bootloader program takođe skače na prvu liniju ispod sebe i ako već postoji učitan konkretan zadati program, mikrokontroler kreće sa njegovim izvršenjem. U suprotnom se ne dešava ništa sve dok se mikrokontroler ponovo ne resetuje.

Na taj način je programator potreban samo pri prvom programiranju mikrokontrolera pa je njegova ugradnja na sistem nepotrebna iako je sistem neophodno programirati više puta. Jedina mana je što je nemoguće zaštititi kod, jer bi se na taj način onemogućilo ponovno programiranje bez dodatnog programatora pa bi ovaj način programiranja bio apsurdan.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 27: PLC Izvestaj

26

Realizacija softvera - Realizacija zadate kombinacione funkcije

Kao što je već poznato PLC kontroleri se programiraju putem ladder dijagrama. Pošto je ovakav način programiranja klasičnog mikrokontrolera (PIC) praktično nemoguć zbog nemogućnosti kompajlera da to obavi, dalji tok projektovanja se zasnivao na tome da se realizuju sledeće logičke funkcije koje bi podsećale na osnovne logičke funkcije koje se koriste u ladder dijagramima:

• AND 2 - dvoulazno „I“ kolo; • AND 3 – trulazno „I“ kolo; • OR 2 – dvoulazno „ILI“ kolo; • OR 3 – troulazno „ILI“ kolo; • XOR – „ekskluzivno ILI“ kolo; • NOT – Invertor.

Ispod su navedeni delovi koda u kome su opisane date funkcije u mikroC kompajleru koje zapravo predstavljaju osnovna logička kola digitalne elektronike kao i njihovi odgovarajući simboli sa leve strane i ekvivalenti simboli ladder dijagrama sa desne strane:

• Invertor (NOT funkcija)

int INV(char a) { a= ~a; return a; }

Simbol NOT funkcije Simbol normalo zatvorenog prekidača koji u ladder dijagramu odgorara NOT funkciji

• Dvoulazno I kolo (AND2) int AND2(char a, char b) { char c; c= a & b; return c; }

Simbol AND2 funkcije Simbol koji u ladder dijagramu odgovara AND2 funkciji

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 28: PLC Izvestaj

27

• Troulazno I kolo (AND3) int AND3(char a, char b, char c) { char d; d= a & b & c; return d; }

Simbol AND3 funkcije Simbol koji u ladder dijagramu odgovara AND3 funkciji

• Dvoulazno ILI kolo (OR2) int OR2(char a,char b) { char c; c= a | b; return c; }

Simbol OR2 funkcije Simbol koji u ladder dijagramu odgovara OR2 funkciji

• Troulazno ILI kolo (OR3)

int OR3(char a, char b, char c) { char d; d= a | b | c; return d; }

Simbol OR3 funkcije Simbol koji u ladder dijagramu odgovara OR3 funkciji

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 29: PLC Izvestaj

28

• XOR kolo

int XOR(char a,char b) { char c; c= a ^ b; return c; }

Simbol XOR funkcije Simbol koji u ladder dijagramu odgovara XOR funkciji Na osnovu navedenih logičkih funkcija moguće je, njihovim spajanjem, realizovati bilo koju složenu logičku funkciju.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 30: PLC Izvestaj

29

Transformacija ladder dijagrama u mikroC kod Kroz naredna dva primera biće ilustrovano kako se od zadatog ladder dijagrama dolazi do mikroC koda.

Primer 1: Na osnovu zadatog ladder dijagrama sa slike 29 isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Slika 29.

Prvi korak je transformisanje ladder dijagrama u dijagram logičkih funcija (digitalne elektornike). Najpre je potrebno uočiti segmente ladder dijagrama koji se direktno mogu zameniti ekvivalentnom logičkom funkcijom kao što je prethodno objašnjeno. Sledeće slike iliustruju kako se od zadatog ladder diajagrama sa slike 29 prelazi na dijagram osnovnih logičkih funkcija, korak po korak.

Slika 30. Transformacija prve lestvice ladder dijagrama u logičku šemu

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 31: PLC Izvestaj

30

Slika 31. Transformacija druge lestvice ladder dijagrama u logičku šemu

Slika 32. Transformacija treće lestvice ladder dijagrama u logičku šemu

Pošto su prethodno ilustrovane lestvice ladder dijagrama povezene paraleleno, zaključu je se da su sve logičke šeme povezane u jedno troulazno “ILI” kolo, pa se na taj način dobija kompletna logička funkcija kao na slici 33, koja je potpuno ekvivalentna ladder dijagramu sa slike 29. Izlaz A date konbinacione funkcije odgovara akciji A sa slike 29.

Slika 33.

Drugi korak predstavlja transformaciju dobijene logičke šeme u

mikroC kod za programiranje kontrolera. Sada je najpre potrebno obeležiti interne signale kao što je prikazano na slici 34 da bi se u kodu omogućilo spajanje dobijenih logičkih funkcija.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 32: PLC Izvestaj

31

Slika 34.

Formiranje potrebnog koda na osnovu ovako dobijene funkcije se vrši na sledeći način: Prvo je neophodno definisati sve interne promenljive, što je predstaljeno u narednom delu koda: /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a,b,c,d,e,f,b1,d1,f1,i,j,k; /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ Nakon toga je potrebno ulazne signale (In1 do In8, koji su osetljivi na promene stanja ulaznih pinova kontrolera) povezati sa internim signalima koji predstavljaju ulaze u logička kola prvog nivoa što je prikazano u sledećem delu koda: b.f0=In1; c.f0=In2; d.f0=In3; e.f0=In4; f.f0=In5; Sledeći korak je povezivanje pojedinačnih logičkih kola tako da se formira kompletna zadata logička šema što prikazuje sledeći deo koda: b1.f0=INV(b.f0); d1.f0=INV(d.f0); f1.f0=INV(f.f0); i.f0=AND3(b1.f0,c.f0,d1.f0); j.f0=AND3(b1.f0,c.f0,e.f0); k.f0=AND3(b1.f0,c.f0,f1.f0); a.f0=OR3(i.f0,j.f0,k.f0);

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 33: PLC Izvestaj

32

Bitno je da redosled pozivanja funkcija odgovara nivoima logičkih funkcija tj. da de prvo obradi prvi nivo, pa drugi i tako redom do zadnjeg nivoa logičkih kola što se vidi iz gore navedenog koda. Na kraju je potrebno interne signale sa izlaza logičkih kola zadnjeg nivoa povezati sa izlaznim signalima (Out1 do Out8, koji pobuđuju izlazne pinove kontolera) što u ovom slučaju predstavlja sledeći deo koda: Out1=a.f0; Na ovaj način se dobijaju sledeći delovi koda koje treba ugraditi u kompletan softver za programiranje kontolera. /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a,b,c,d,e,f,b1,d1,f1,i,j,k; /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ /*Zadavanje konkretne slozene funkcije*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ b.f0=In1; c.f0=In2; d.f0=In3; e.f0=In4; f.f0=In5; b1.f0=INV(b.f0); d1.f0=INV(d.f0); f1.f0=INV(f.f0); i.f0=AND3(b1.f0,c.f0,d1.f0); j.f0=AND3(b1.f0,c.f0,e.f0); k.f0=AND3(b1.f0,c.f0,f1.f0); a.f0=OR3(i.f0,j.f0,k.f0); Out1=a.f0; /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ Bitno je zapaziti da su definisane promenljive tipa char, što znači da one zauzimaju memoriju veličine 1 bajt (8 bitova), pošto je u ovom kompajleru nemoguće definisati promenljivu tipa bit (kakva bi u ovom slučaju odgovrala jer su svi signali jedno-bitni). Da ne bi došlo do kolizije, neophodno je u označenom delu koda, svakoj promenljivoj dodati eksteziju “.fo” što označava da se primenjene operacije izvršavaju samo nad njenim prvim bitom čime je ostvarena kompatibilnost između realnih signala i

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 34: PLC Izvestaj

33

promenljivih koje su im dodeljene, kao što je prikazano u gore navedenom delu koda. Kompletan kod koji predstavlja funkciju zadatu ladder dijagramom sa slike 41 je nadalje dat. /* Simulacija PLC kontrolera pomocu PIC16F877*/ #define In1 PORTB.F7 #define Out1 PORTA.F0 #define In2 PORTB.F6 #define Out2 PORTA.F1 #define In3 PORTB.F5 #define Out3 PORTA.F2 #define In4 PORTB.F4 #define Out4 PORTA.F3 #define In5 PORTB.F3 #define Out5 PORTA.F5 #define In6 PORTB.F2 #define Out6 PORTE.F0 #define In7 PORTB.F1 #define Out7 PORTE.F1 #define In8 PORTB.F0 #define Out8 PORTE.F2 /*Definicije osnovnih logickih funkcija*/ int INV(char a) { a= ~a; return a; } int AND2(char a, char b) { char c; c= a & b; return c; } int AND3(char a, char b, char c) { char d; d= a & b & c; return d; } int OR2(char a,char b) { char c; c= a | b; return c; } int OR3(char a, char b, char c) { char d; d= a | b | c; return d; }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 35: PLC Izvestaj

34

int XOR(char a,char b) { char c; c= a ^ b; return c; } void main(void) { /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a,b,c,d,e,f,b1,d1,f1,i,j,k; /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ trisa=0; trisb=1; trise=0; porta=0; portb=0; porte=0; adcon1=0b00000111; delay_ms(200); while(1){ /*Zadavanje konkretne slozene funkcije*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ b.f0=In1; c.f0=In2; d.f0=In3; e.f0=In4; f.f0=In5; b1.f0=INV(b.f0); d1.f0=INV(d.f0); f1.f0=INV(f.f0); i.f0=AND3(b1.f0,c.f0,d1.f0); j.f0=AND3(b1.f0,c.f0,e.f0); k.f0=AND3(b1.f0,c.f0,f1.f0); a.f0=OR3(i.f0,j.f0,k.f0); Out1=a.f0; /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ } }

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 36: PLC Izvestaj

35

Kada je potrebno realizovati odgovarajuću zadatu funkciju u gore navedenom kodu je potrebno zameniti samo one delove koda koji su obeleženi kao “delovi koda prilagodljivi korisničkim potrebama”. U predstojećem delu je ilustrovan još jedan primer koji opisuje kompletan postupak projektovanja. Primer 2:

U mikroC-u realizovati kombinacionu funkciju multipleksksera čiji je opis dat na sledećim slikama:

Slika 35. Blok šema i tabela istinitosti multipleksera

Slika 36. Ladder dijagram datog multipleksera

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 37: PLC Izvestaj

36

Prvi korak je transformisanje ladder dijagrama u dijagram logičkih funcija (digitalne elektornike).

Slika 37. Transformacija prve lestvice ladder dijagrama u logičku šemu

Slika 38. Transformacija druge lestvice ladder dijagrama u logičku šemu

Slika 39. Transformacija treće lestvice ladder dijagrama u logičku šemu

Slika 40. Transformacija četvrte lestvice ladder dijagrama u logičku šemu

Pošto su prethodno ilustrovane lestvice ladder dijagrama povezene paraleleno, zaključu je se da je neophodno ostvariti sledeću vezu, zbog mogućnosti izbora osnovnih logičkih kola koja se mogu koristiti što je prikazano na slici 41.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 38: PLC Izvestaj

37

Slika 41. Kompletna logička funkcija dobijaena transformacijom ladder dijagrama

Formiranje potrebnog koda na osnovu ovako dobijene funkcije se vrši na sledeći način: Prvo je neophodno definisati sve interne promenljive, što je predstaljeno u narednom delu koda: /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a1,a2,d,d1,d2,d3,d4,b,c,e,f,g,h,j,k,x; /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ Nakon toga je potrebno ulazne signale (In1 do In8, koji su osetljivi na promene stanja ulaznih pinova kontrolera) povezati sa internim signalima koji predstavljaju ulaze u logička kola prvog nivoa što je prikazano u sledećem delu koda: a1.f0=In1; a2.f0=In2; d1.f0=In3; d2.f0=In4; d3.f0=In5; d4.f0=In6;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 39: PLC Izvestaj

38

Sledeći korak je povezivanje pojedinačnih logičkih kola tako da se formira kompletna zadata logička šema što prikazuje sledeći deo koda: b.f0=INV(a1.f0); c.f0=INV(a2.f0); d.f0=INV(a1.f0); e.f0=INV(a2.f0); f.f0=AND3(b.f0,c.f0,d1.f0); g.f0=AND3(d.f0,a2.f0,d2.f0); h.f0=AND3(a1.f0,e.f0,d3.f0); j.f0=AND3(a1.f0,a2.f0,d4.f0); k.f0=OR3(f.f0,g.f0,h.f0); x.f0=OR2(k.f0,j.f0); Bitno je da redosled pozivanja funkcija odgovara nivoima logičkih funkcija tj. da de prvo obradi prvi nivo, pa drugi i tako redom do zadnjeg nivoa logičkih kola što se vidi iz gore navedenog koda. Na kraju je potrebno interne signale sa izlaza logičkih kola zadnjeg nivoa povezati sa izlaznim signalima (Out1 do Out8, koji pobuđuju izlazne pinove kontolera) što u ovom slučaju predstavlja sledeći deo koda: Out1=x.f0; Na ovaj način se dobijaju sledeći delovi koda koje treba ugraditi u kompletan softver za programiranje kontolera. Kompletan kod koji predstavlja funkciju zadatu ladder dijagramom sa slike 48 je nadalje dat. /* Simulacija PLC kontrolera pomocu PIC16F877*/ #define In1 PORTB.F7 #define Out1 PORTA.F0 #define In2 PORTB.F6 #define Out2 PORTA.F1 #define In3 PORTB.F5 #define Out3 PORTA.F2 #define In4 PORTB.F4 #define Out4 PORTA.F3 #define In5 PORTB.F3 #define Out5 PORTA.F5 #define In6 PORTB.F2 #define Out6 PORTE.F0 #define In7 PORTB.F1 #define Out7 PORTE.F1 #define In8 PORTB.F0 #define Out8 PORTE.F2 /*Definicije osnovnih logickih funkcija*/

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 40: PLC Izvestaj

39

int INV(char a) { a= ~a; return a; } int AND2(char a, char b) { char c; c= a & b; return c; } int AND3(char a, char b, char c) { char d; d= a & b & c; return d; } int OR2(char a,char b) { char c; c= a | b; return c; } int OR3(char a, char b, char c) { char d; d= a | b | c; return d; } int XOR(char a,char b) { char c; c= a ^ b; return c; } void main(void) { /*Deklarisanje neophodnih promenljivih*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ volatile char a1,a2,d,d1,d2,d3,d4,b,c,e,f,g,h,j,k,x; /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ trisa=0; trisb=1; trise=0; porta=0; portb=0; porte=0;

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 41: PLC Izvestaj

40

adcon1=0b00000111; delay_ms(200); while(1){ /*Zadavanje konkretne slozene funkcije*/ /*Ovaj deo koda je prilagodljiv korisnickim potrebama*/ a1.f0=In1; a2.f0=In2; d1.f0=In3; d2.f0=In4; d3.f0=In5; d4.f0=In6; b.f0=INV(a1.f0); c.f0=INV(a2.f0); d.f0=INV(a1.f0); e.f0=INV(a2.f0); f.f0=AND3(b.f0,c.f0,d1.f0); g.f0=AND3(d.f0,a2.f0,d2.f0); h.f0=AND3(a1.f0,e.f0,d3.f0); j.f0=AND3(a1.f0,a2.f0,d4.f0); k.f0=OR3(f.f0,g.f0,h.f0); x.f0=OR2(k.f0,j.f0); Out1=x.f0; /*Do ovog dela kod je prilagodljiv korisnickim potrebama*/ } } Oba razrađena ladder dijagrama su na izlazu imali samo jednu akciju tj. prevedena kombinaciona funkcija je imala samo jedan izlaz. U slučaju da se javi ladder dijagram sa više akcija na izlazu, to treba shvatiti kao dva zasebna ladder dijagrama, osim ako oni međusobno nisu zavisni, pa će se tako na kraju dobiti kombinaciona funkcija odnosno mikroC kod koji ima više izlaza, koji odgovara broju akcija ladder dijagrama, npr: Out1=x.f0; Out2=y.f0; Nadalje će biti navedeni primeri za laboratorijske vežbe.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 42: PLC Izvestaj

41

Primeri za laboratorijske vežbe Zadatka 1

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 2 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati

kontroler da obavlja datu kombinacionu funkciju.

Zadatka 3

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 4 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati

kontroler da obavlja datu kombinacionu funkciju.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 43: PLC Izvestaj

42

Zadatka 5 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati

kontroler da obavlja datu kombinacionu funkciju.

Zadatka 6

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 7

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 8

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 44: PLC Izvestaj

43

Zadatka 9

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 10

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 11

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 45: PLC Izvestaj

44

Zadatka 12 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati

kontroler da obavlja datu kombinacionu funkciju.

Zadatka 13

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 46: PLC Izvestaj

45

Zadatka 14 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati

kontroler da obavlja datu kombinacionu funkciju.

Zadatka 15

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 16

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 47: PLC Izvestaj

46

Zadatka 17 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati

kontroler da obavlja datu kombinacionu funkciju.

Zadatka 18

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 48: PLC Izvestaj

47

Zadatka 19 Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati

kontroler da obavlja datu kombinacionu funkciju.

Zadatka 20

Na osnovu zadatog ladder dijagrama sa sledeće slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 49: PLC Izvestaj

48

Literatura

• PIC16F87X, DATASHEET, Microchip Tecnology Inc, 2001. • Uvod u industrijske PLC kontrolere, Nebojša Matić, Mikroelektronika,

http://mikroe.com • mikroC Help , Mikroelektronika, http://mikroe.com • Programiranje industrijskih kontolera, Goran Đorđević, skripta, Elektronski

fakultet, Niš, 2007. • Embedded sistemi, Mile Stojčev, Elektronski fakultet, Niš, 2007.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 50: PLC Izvestaj

49

Zaključak

PLC simulator je analiziran i detaljno razrađen. Postavljeni su bili jasni softverski i hardverski ciljevi. Uz dalju analizu realizovani su hardver i softver. Nakon učitavanja programa u mikrokontroler izvršeno je testiranje celokupnog PLC simulatora. Testiranje je prošlo uspešno tako da se može zaključiti da je uprkos manjim poteškoćama uspešno realizovan sistem.

Moguća su dalja dorađivanja kao na primer povećanje broja osnovnih kombinacionih funkcija kao i uvođenje sekvencijalnih logičkih funkcija.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 51: PLC Izvestaj

50

Dodatak Opis mikrokontrolera PIC16F877

Većina današnjih mikrokontrolera je bazirano na Harvard arhitekturi, koja jasno definiše četiri osnovne komponente potrebne za embedded sistem. To uključuje CPU jezgro, memoriju za program (ROM, EPROM ili Flash memorija), memoriju za podatke (RAM), jedan ili više tajmera (podesive i watchdog tajmere), kao i I/O linije za komunikaciju sa eksternim periferijama i dopunskim resursima – sve to treba da bude smešteno u jednom integrisanom kolu. Mikrokontroler se u osnovi razlikuje od opštenamenskog mikroprocesorskog čipa po tome što ga je izuzetno lako pretovoriti u radni kompjuter, sa minimumom eksternih čipova za podršku. Ideja je da se mikrokontroler isprogramira, postavi u uređaj za kontrolu, poveže na napajanje i stavi u funkciju.

Tradicionalni mikroprocesor je rasterećen obaveze da komunicira direktno sa periferijom. On, naime, zahteva da sve to odrade drugi čipovi. Mikrokontroler PIC16F877 firme MICROCHIP predstavlja integraciju mikroprocesora (CPU), memorije i periferija, pa zato ne zahteva složeni eksterni hardver da bi se realizovao mikroračunarski sistem. Ovaj mikrokontroler je izrađen u CMOS tehnologiji sa ugrađenom FLASH i EEPROM memorijom za memorisanje programa i podataka. PIC16F877 ima tipičnu RISC arhtekturu. Ova arhitektura, kao što je poznato, karakteriše se manjim skupom instrukcija koje se brže izvšavaju od instrukcija kod CISC arhitekture.

U daljem tekstu detaljnije će biti opisani gradivni delovi mikrokontrolera PIC16F877.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 52: PLC Izvestaj

51

Slika 42. Raspored pinova kod mikrokontrolera PIC16F877 u kućištu DIP40

Osnovne karakteristike mikrokontrolera

• RISC mikroprocesor visokih performansi • 35 instrukcija obima jedne reči • Radna frekvencija do 20 MHz • Trajanje taktnog intervala 200 ns, pri frekvenciji 20 MHz • Opkod obima 14 bita • Harverski magacin sa osam nivoa • Tri načina adresiranja (direktno,indirektno i relativno) • Programska flash memorija kapaciteta 8 k X 14-bitnih reči • Memorije za podatke tipa RAM kapaciteta 368 X 8 bita • Memorije za podatke EEPROM tipa kapaciteta 256 X 8 bita • Prekidi (do 14 izvora prekida) • U/I portovi: A, B, C, D, E • Tri tajmera:

- Timer0 (TMR0): 8-bitni tajmer/brojač_događaja - Timer1 (TMR1): 16-bitni tajmer/brojač_događaja - Timer2 (TMR2): 8-bitni tajmer/brojač_događaja

• 10-bitni 8-kanalni analogno-digitalni (A/D) konvertor

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 53: PLC Izvestaj

52

• Serijska komunikacija: MSSP, USART • Paralelna komunikacija: PSP • 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 nakon

stabilizovanja radne frekvencije oscilatora (OST) • Sleep mode - režim rada sa malim utroškom energije • Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za

nezavisni rad • Izbor tipa oscilatora • Radni napon 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.

Arhitektura mikrokontrolera

Kao što je istaknuto, mikrokontroler PIC16F877 poseduje tipičnu

RISC arhitekturu, koja je prikazana na slici 43. Arhitektura poseduje odvojene magistrale za podatke i programski kod. Obim podataka je 8-bitni, dok je programski kod 14-bitni. Moguće je protočno izvršenje (pipelining). Sve instrukcije su istog obima (osim instrukcija grananja) i izvšavaju se za četiri taktna intervala. Dakle, ukoliko se koristi oscilator od 20 MHz, ciklus instrukcije traje 200 ns. Na slici 6 prikazani su gradivni blokovi mikrokontrolera PIC16F877:

• Flash programska memorija – 8 kiloreči obima 14 bita • RAM (File Registers) – 368 bajtova • Aritmetičko-logička jedinica (ALU) • Akumulator (Working Register) • Hardverski magacin (Stack) organizivan u 8 nivoa • EEPROM memorija podataka obima 256 bajtova • Višekanalni A/D konvertor, USART (univerzalni sinhroni i

asinhroni primo-predajnik), tajmere, portove itd.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 54: PLC Izvestaj

53

Slika 43. Arhitektura mikrokontrolera PIC16F877 Resursi mikrokontrolera koji su iskorišćeni su nadalje objašnjeni: Oscilator

Kod mikrokontrolera PIC16F877 postoje četiri konfiguracije oscilatora: • RC Resistor/Capacitor • XT Crystal / Resonator • LP Low Power Crystal • HS High Speed Crystal / Resonator.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 55: PLC Izvestaj

54

Najjednostavnija varijanta je RC oscilator, a to je ilustrovano na slici 44. Ovakav pristup je ispravan u aplikacijama u kojima se ne zahteva precizna procena vremenskih intervala. Ovde ćemo naglasiti kako je moguće koristiti i interni RC oscilator, koji je integrisan u mikrokontroleru.

Slika 44. Povezivanje eksternog RC oscilatora

Frekvencija oscilovanja zavisi ne samo od vrednosti Rext i Cext, već i

od napona napajanja kao i radne temperature. Vrednost otpornika Rext treba da bude u opsegu od 3 KΩ do 100K KΩ. Izvan ovog opsega rad oscilatora nije stabilan i osetljiv je na spoljašne uticaje. Kondenzator Cext se može čak i izostaviti. Međutim, zbog stabilnosti preporučuje se vrednost oko 20pF. Na pinu OSC2/CLKOUT generiše se taktni impuls čija je perioda četiri puta veća od periode rada oscilatora.

Kod vremenski kritičnih aplikacija treba ugrađivati kvarcni oscilator ili keramički rezonator. Vrednosti kondenzatora C1 i C2 (Slika 45), treba da budu identične.

Slika 45. Povezivanje eksternog kvarca (LP, XT, HS)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 56: PLC Izvestaj

55

Mikrokontroleru PIC16F877 može da se dovede i spoljašnji takt, što je prikazano na slici 46.

Slika 46. Dovođenje spoljašnjeg takta

U Tabeli 1 dat je izbor vrednosti kondenzatora za različite vrednosti frekvencije kristalnog kvarca, dok je u Tabeli 2 predložen izbor vrednosti kondenzatora pri različitim vrednostima frekvencije rezonatora.

Na kraju ćemo istaći kako mikrokontroler PIC16F877 može da radi i na frekvenciji 32 kHz, kada ima izuzetno malu potrošnju.

Tabela 1. Izbor vrednosti kondenzatora za kvarcni kristal

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 57: PLC Izvestaj

56

Tabela 2. Izbor vrednosti kondenzatora za rezonator

Odnos između takta i instrukcijskog ciklusa Takt koji se dovodi na pin OSC1 oscilatora u mikrokontroleru deli se

na četiri vremenski nepreklapajuća taktna signala nazvana Q1, Q2, Q3 i Q4. Skup ovih signala čine jedan instrukcijski ciklus . U zavisnosti od trenutka generisanja u okviru ciklusa instrukcija, taktni signali Q1-Q4 se koriste za sledeće namene:

Q1 - pribavljanje instrukcije iz programske memorije Q2 - dekodiranje naredbe iz prethodnog instrukcijskog ciklusa Q3 - izvršenje naredbe iz prethodna dva instrukcijska ciklusa Q4 - prenos opkoda naredbe pozvane u Q1 u instrukcijski registar. Reset

Uloga Reseta je da sve registre mikrokontrolera dovede u početno

stanje. Ako se mikrokontroler “blokira” , ili smo ga tek uključili, neophodno je da se resetuje. Kako bi se sprečilo slučajno dovođenje logičke

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 58: PLC Izvestaj

57

’0’ na MCLR, potrebno je da se ovaj pin preko otpornika (npr. vrednosti 10KΩ) poveže na pin napajanja Vdd.

Postoji nekoliko tipova reseta kod mikrokontrolera PIC16F877 i to su: • Power-on reset (POR) • MCLR Reset pri normalnom režimu radu • MCLR Reset prilikom SLEEP režima rada • WDT Reset pri normalnom radu • WDT Wake-up (“buđenje” iz SLEEP režima rada) • Brown-out Reset (BOR).

Portovi PIC16F877 poseduje pet portova (PORTA, PORTB, PORTC, PORTD i PORTE) i oni predstavljaju vezu njegove interne strukture sa spoljašnjim svetom. Svaki od njih može da se konfiguriše kao ulazni ili kao izlazni. Pomenuti portovi su različitog obima:

• 8-pinski (PORTB, PORTC, PORTD) • 6-pinski (PORTA) • 3-pinski (PORTE).

Svakom pinu bilo kojeg porta, u zavisnosti od režima rada, mogu da se

dodele fiksne ili promenljive funkcije. Konfiguracija smera prenosa ostvaruje se upisom na odgovarajuću bit-poziciju u pripadajućem TRIS registru (0 - pin je izlazni, 1 – pin je ulazni).

Svakom portu je dodeljen registar podataka (PORTX), preko kojeg se programski pristupa U/I pinovima. Upis u neki od tih registara iniciraće upis u latch tog porta, a njegovo čitanje rezultiraće čitanjem logičkih stanja direktno sa pinova. Sve instrukcije upisivanja su tipa read-modify-write . To znači da se pri upisu u port najpre očitaju stanja pinova, zatim izvrši modifikacija, a potom korigovana vrednost upiše u latch porta. Ne postoji velika razlika u konstrukciji pomenutih pet portova.

Nadalje su opisani portovi koji su iskorišćeni za realizaciju sistema.

PortA

PortA je 6-bitni (RA5-RA0) bidirekcioni port (podaci mogu da se šalju u oba smera). Sadržaj registra TRISA određuje smer (ulazni ili izlazni)

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 59: PLC Izvestaj

58

pinova na portu. Blok-dijagrami za pin RA4 je prikazan na slici 47, a za ostale pinove na slici 48.

Slika 47. Blok-dijagram pina RA4 Sada ćemo kroz nekoliko primera ilustrovati postavljanje smerova na

portu: • TRISA = 0b000000 (PORTA je izlazni) • TRISA = 0b111111 (PORTA je ulazni) • TRISA = 0b101000 (RA5 i RA3 pinovi su ulazni, a RA4, RA2,

RA1 i RA0 su izlazni) • TRISA = 0b111000 (RA5-RA3 su ulazni, a RA2-RA0 su izlazni)

itd.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 60: PLC Izvestaj

59

Slika 48. Blok-dijagram pinova RA5, RA3-RA0 PortA ima mogućnost analogno-digitalne konverzije i prvenstveno se

koristi u te svrhe. A/D konvertor, koji je integrisan u mikrokontroleru, je 10-bitni sa 8 ulaznih kanala, jer se u ove svrhe koriste i svi pinovi PortaE (i pinovi PortaA izuzev RA4).

Pin RA4 je sa otvorenim drejnom i može da se iskoristi za ulazni takt za tajmer TMR0.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 61: PLC Izvestaj

60

Tabela 3. Funkcije PortaA i registri

U Tabeli 3 dati su prikaz funkcija pojedinačnih pinova PortaA i

registri koji se koriste za konfigurisanje porta. Port B

Port B je 8-bitni bidirekcioni port. Svakom pinu porta korespondira

odgovarajući bit u registru TRISB, kojim se definiše smer. Svi pinovi unutar PortB poseduju pull-up otpornike. Ovi otpornici mogu da se uključe jednim kontrolnim bitom. To se postiže postavljanjem RBPU' bita na ‘0’. Pull-up otpornici se automatski isključuju kada se pin konfiguriše kao izlazni. Otpornici su isključeni i kod Power-on reseta.

Četiri pina na PORTB (RB7-RB4) imaju mogućnost generisanja prekida. Samo pinovi koji su definisani kao ulazni mogu da prouzrokuju prekid.

Kombinacija prekida na promenu stanja PortaB i pull-up otpornik mogu se iskoristiti kao jednostavan interfejs za tastaturu.

Na Slikama 49 i 50 prikazana je struktura PORTB.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 62: PLC Izvestaj

61

Slika 49. Blok-dijagram pinova RB3-RB0

Slika 50. Blok-dijagram pinova RB7-RB4

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 63: PLC Izvestaj

62

U Tabeli 4 dati su prikaz funkcija pojedinačnih pinova PortaB i registri koji se koriste za konfigurisanje porta.

Tabela 4. Funkcije PortaB i registri

Port C

Port C je 8-bitni bidirekcioni port. Posebnost ovog porta se ogleda u tome što poseduje ugrađen USART modul, koji služi za serijsku komunikaciju (npr. sa racunarom ili drugim mikrokontro-lerom). Modulu se pristupa preko pinova RC7 i RC6. Pinove treba softverski konfigurisati da budu u funkciji USART modula.

Port E

Port E je bidirekcioni veličine 3 bita. Ima mogućnost A/D konverzije.

Ulazni bafer je tipa Schmitt Trigger. Pinovi mogu da se konfigurišu kao digitalni ili analogni, kao i u slučaju PortaA, o čemu je već bilo reči.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 64: PLC Izvestaj

63

Serijska komunikacija posredstvom MAX232 drajvera RS-232 komunikacija omogućava transfer podataka tipa point-to-point. Pošto naponski nivoi mikrokontrolera i PC-a nisu direktno kompatibilni sa navedenim RS-232 protokolom, neophodno je koristiti dodatni drajver odnosno pomerač nivoa kakav je na primer MAX232 koji je ovde iskorišćen. Veza mikrokontrolera sa PC-jem je u ovom slučaju neophodna jer se preko nje programira mikrokontroler na način koji će kasnije biti opisan. Na slici 51 je prikazana šema veze kontrolera sa MAX232 čipom.

Slika 51. Šema veze mikrokontrolera i MAX232

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 65: PLC Izvestaj

64

U/I moduli

Kao što smo već napomenuli, ulaz kontrolera predstavljaju klik-klak prekidači koji preko otpornika na ulaz kontrolera dovode logičke naponske nivoe (VCC kao logička „jedinica“ ili GND kao logička „nula”). Postoje 8 prekidača tako da je ceo jedan port (odnosno deo porta A i port E) proglašen za ulazni i sa njega se očitavaju vrednosti definisane prekidačima. Izgled prekidača prikazan je na slici 52.

Slika 52.

Na izlazu kontrolera nalaze se LED diode za indikaciju stanja izlaza.

Za izlazni port je proglašen port B na kome su priključene 8 LED dioda. Pošto je mikrokontroler u stanju da da odnosno primi struju jačine 20mA maksimalno, po pinu, neophodno je upotrebiti drajver za adekvatnu podudu LED dioda da ne bi došlo da pregorevanje mikrokontrolera. U tu svrhu je upotrebljen drajver 74HC241 koji ima dovoljnu strujnu moć, tako da mogu svih 8 dioda da se pobude odjednom ako je to neophodno. Na slici 53 je prikazan izgled i funkcionalni dijagram drajvera 74HC241, kao i LED dioda.

Slika 53.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 66: PLC Izvestaj

65

Napajanje Za rad sistema je neophodan stabilan napon napajanja od 5V, pošto se sve komponente sistema napajaju ovakvim naponom. U tu svrhu je iskorišćen mrežni transformator koji spušta mrežni napon sa 230V na 9V. Tako dobijeni napon se usmerava Grecovim mostom i filtrira elektrolitskim kondenzatorima. Tako „ispeglan“ jednosmerni napon se vodi na stabilizator napona LM7805 sa čijeg izlaza se dalje napajaju ostale komponente adekvatnim,stabilnim jednosmernim naponom. Blok šema datog napajanja je prikazana na slici 54.

Slika 54.

PDF created with pdfFactory Pro trial version www.pdffactory.com

Page 67: PLC Izvestaj

66

Biografije autora

Ime: Aleksandar Prezime: Gošić Datum rođenja: 4.10.1985. Nacionalnost: Srbin Bračno stanje: Neoženjen Vozačka dozvola: A,B,C i E kategorije Adresa: selo Gornji Vratari, 37230 Aleksandrovac E-mail: [email protected]

Mobilni telefon: 064/29 85 805 Obrazovanje: Elektrotehnička škola Kruševac Smer: Elektrotehničar automatike, IV stepen

Ime: Aleksandar Prezime: Lakićević Datum rođenja: 20.6.1985. Nacionalnost: Srbin Bračno stanje: Neoženjen Vozačka dozvola: B kategorije Adresa: Ilije Katića 6. 37000 Kruševac E-mail: [email protected]

Mobilni telefon: 064/635 65 25 Obrazovanje: Elektrotehnička škola Kruševac Smer: Elektrotehničar automatike, IV stepen

PDF created with pdfFactory Pro trial version www.pdffactory.com