You are on page 1of 67

UNIVERZITET U NIU ELEKTORNSKI FAKULTET

KATEDRA ZA ELEKTRONIKU Smer: EKIS Predmet: Embedded sistemi

Simulacija PLC kontolera pomou PIC16F877 mikrokontrolera

studenti: Aleksandar Goi 11486 Aleksandar Lakievi 11523 mentor: prof. dr Mile Stojev

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

Sadraj
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 Uitavanje HEX fajla u mikrokontrolerProgramiranje 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 vebe ...................................................................41 Literatura ....................................................................................................48 Zakljuak ....................................................................................................49 Dodatak ......................................................................................................50 Opis mikrokontrolera PIC16F877............................................................50 Serijska komunikacija posredstvom MAX232 drajvera ...........................63 U/I moduli ...............................................................................................64 Napajanje ................................................................................................65 Biografije autora .........................................................................................66

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

UVOD
Smisao ovog zadatka je da se pomou PIC16F877 mikrokontrolera simulira rad programabilnog logikog 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 nain rada PLC kontrolera bie pojanjena u prvom delu teksta. Kasnije je opisan kompletan hardver sistema poevi od mikrokontrolera pa nadalje. Zatim, bie opisani softveri za editivanje koda i za uitavanje koda u mikrokontroler. Na kraju je objanjeno kako se pomou osnovnih logikih funkcija realizuju konkretne sloene funkcije, to je ilistrovano kroz nekoliko prostih primera.

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

PLC
PLC - industrijski raunar iji su hardver i softver posebno prilagoeni radu u industrijskim uslovima, a koji se moe lako programirati i ugraivati u nove i postojee industrijske sisteme. PLC - digitalni elektronski ureaj koji poseduje programabilnu memoriju za smetanje instrukcija kojima se realizuju specifine funkcije, kao to su logiko sekvenciranje, tajming, brojanje i artimetike operacije, a u cilju upravljanja razliitim mainama i procesima putem digitalnih ili analognih ulazno/izlaznih modula. PLC - namenski elektronski ureaj, zasnovan na mikroprocesoru, koji je u mogunosti da obavlja brojne tipove upravljakih funkcija razliitog nivoa sloenosti. PLC - (Programmable) - oznaava mogunost programiranja. Program rada se unapred priprema i puni u permanentu memoriju PLC kontrolera. PLC program se razvija u jeziku lestviastih (ladder) dijagrama, koji je nastao po ugledu na tzv. relejne eme. PLC - (Logic) - jedna od glavnih osobina PLC kontrolera je mogunost obavljanja logikih (bulovih) funkcija. PLC generie diskretne (digitalne) izlazne signale u funkciji (logikoj) diskretnih ulaznih signala - karakteristino za prvobitne tipove PLC kontrolera. Savremeni PLC-ovi, pored logikih mogu da obavljaju: aritmetike operacije, odmeravaju vremenske intervale, prebrojavaju dogaaje, a prihvataju i generiu, pored diskretnih, i analogne signale. PLC (Controller)- Glavna primena u industriji (proizvodnoj) gde se koristi za automatsko upravljanje procesima - prati kljune parametre procesa (posredstvom prikljuenih senzora i davaa, i shodno memorisanom programu, generie pobudu kojom deluje na proces (posredstvom aktuatora) - slika 1.

Slika 1. PLC - upravljaka jedinica procesa.

PLC kontroler se razlikuje od raunarskog sistema opte namene po tome to nema spoljnu memoriju (diskove), kao i niz standardne
3 PDF created with pdfFactory Pro trial version www.pdffactory.com

ulazno/izlazne opreme. Pored toga, njegov operativni sistem je jednostavniji i prua komparativno manje mogunosti od raunara opte namene. Zapravo, PLC je koncipiran i projektovan za jedan relativno uzak i jasno definisan obim poslova vezanih za nadzor i upravljanje pojedinim ureajima, mainama i procesima, to je rezultovalo u njegovoj izuzetnoj efikasnosti i jednostavnosti. U izvesnom smislu, podruje primene PLC kontrolera isto je kao i za specijalizovane mikroraunarske kontrolere ili signal procesore. Kljuna razlika lei u injenici da korienje PLC-a ne zahteva od korisnika gotovo nikakvo predznanje o arhitekturi mikroraunarskih sistema i programiranju. Drugim reima, korisnik PLC kontrolera je u najveoj moguoj meri osloboen reavanja razliitih problema vezanih za isto raunarski aspekt, i moe da se u punoj meri skoncentrie na projektovanje same aplikacije. Na slici 2 su prikazani savremeni komercijalni PLC-ovi.

Slika 2. Izgled PLC kontrolera

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

PLC sistem
Na slici 3 su, u obliku blok dijagrama, prikazane etiri osnovne jedinice svakog PLC sistema kao i naina na koji su medusobno povezane: 1. Centralna procesorksa jedinica (CPU) ili logika 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 generiu 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 smetaju se u metalne ormare tzv. rekove.

Slika 3. PLC sistem

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

Programiranje PLC-a. Ladder dijagrami


Kao to je ve ranije istaknuto, PLC je poetno razvijen sa idejom da zameni relejne sisteme. To znai da se oekivalo da on realizuje odgovarajuu vremensku sekvencu logikih operacija. Pored toga, uspena 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 (lestviastim) 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 ( ). Pomou njih je mogue realizovati sve osnovne logike funkcije o emu e biti rei kasnije. Simbol za akciju je ( ) i ona se izvrava ako je iskaz (uslov) na levoj strani dijagrama istinit.

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

Projektni zadatak
Kao to smo ve napomenuli zadatak ovog projekta je bio da se pomou mikrokontrolera simulira rad PLC-a. Za tu svrhu je iskorien MICROCHIP-ov mikrokontroler PIC16F877. Konkretno, zadatak je bio da se opiu osnovne logike kombinacione funkcije koje bi permanentno bile smetene u softer mikrokontrolera, a da se konkretne sloene funkcije realizuju, u glavnom delu softvera, povezivanjem osnovih logikih funkcija. Sa jedne strane, na ulaz kontrolera potrebno je povezati prekidae, kao ulazne module, koji e definisati stanje na ulazu logikih funkcija, a sa druge strane potrebno je povezati LED diode, kao izlazne module, koje e sluiti kao indikacija stanja na izlazu kontrolera. Za realizaciju ovog simulatora upotrebljene su sledee komponente: mikrokontroler PIC16F877 kao centralna procesorska jedinica; MAX232 sa propratnim interfejsom za serijsku komunikaciju sa raunarom putem koje se vri programiranje kontrolera; klik-klak prekidai koji definiu logike ulaze kontrolera (visok ili nizak nivo na ulazu kontrolera ); LED diode za indikaciju logikih stanja na izlazu kontrolera; 74HC241 drajver za poduivanje LED dioda; RESET kolo za vraanje kontrolera na poetno stanje (resetovanje); blok za napajanje sa stabilizatorom napona na 5V.

Na sledeim slikama su prikazane blok ema celog sistema kao i ema tampane ploe odnosno PCB-a koje su izraene u programskom paketu DXP korienjem programa Protel2004.

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

Slika 5. Blok ema kompletnog sistema

Slika 6. Izgled tampane ploe sistema 8 PDF created with pdfFactory Pro trial version www.pdffactory.com

Slika 7. Realizovani PLC simulator

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

MIKROC Softver za programiranje PIC mikrokontrolera


mikroC prestavlja moan softverski alat, koji je razvila beogradska MikroElektronika, i namenjen je pisanju koda za MICROCHIP-ove PIC mikrokontrolere. Koristei mikroC, programeru je omoguen jednostavan nain da kontrolie proces programiranja i napravi kvalitetan firmware. Osnovne karakteristike programa mikroC su sledee:

Pisanje C koda korienjem kvalitetnog editora, to se ogleda automatskom kontrolom i upozorenjima vezanim za sintaksu koda, korienih parametara, kao i automatskoj korekciji pojedinih greaka; Preglednost strukture programa (koda), promenljivih i funkcija omoguava Code explorer; Jasan asemblerski kod i standardna kompatibilnost generisanih HEX datoteka toka programa preko ugraeg debagera (debugger); Programer ima na raspolaganju veliki broj integrisanih biblioteka i rutina, koje znaajno ubrzavaju pisanje programa; Detaljan izvetaj i grafiko predstavljanje RAM i ROM mape, statistike koda i slino.

Moramo da napomenemo kako mikroC odstupa od ANSI standarda u nekoliko segmenata. Neka odstupanja su nainjena u cilju da se olaka programiranje, dok su druge rezultat hardverskih ogranienja PIC mikrokontrolera. Pomenuemo neke specifinosti: Rekurzivne funkcije (function recursion) su podrane sa izvesnim ogranienjima, koja su posledica neto sloenijeg pristupa magacinu (stack) i ogranienja vezana za memoriju; Pokazivai (pointers) promenljivih i pokazivai konstanti nisu kompatibilni, tj. nije mogua meusobna dodela ili uporeivanje; mikroC tretira oznaavanje const kao true constans (kod C++), to omoguava korienje const objekta na mestima gde ANSI C oekuje constant izraz .Ukoliko se tei ka prenosivosti programa, treba koristiti tradicionalno pretprocesorsko definisanje konstanti;

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

mikroC dozvoljava C++ stil jednolinijskih komentara, koristei dve kose crte (//). Komentar moe da pone bilo gde i traje do sledee nove linije programskog koda; Brojne standardne C biblioteke (ctype, math, stdlib, string ) implementirane su u mikroC, uz individualna odstupanja. Napominjemo da mikroC podrava 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. Inae, ograniena verzija (do 2KB programa) moe da se preuzme sa sajta MikroElektronike (www.mikroe.com). U sliaju ako se eli potpuna verzija (neogranien kapacitet programa), mora da se plati licenca od 250$. Instalacija Ovde emo preko Slika 8-11 ilustrovati proces instaliranja mikroC-a. Inae, instalacija traje 30 sekundi. Posle instalacije treba pokrenuti mikroC, a to se najjednostavnije ostvaruje klikom na ikonicu:

Poetak procesa instalacije se ostvaruje klikom na izvrni fajl mikroC_..._.exe . Nakon toga sledi:

Slika 8. Sada treba kliknuti na komandno dugme NEXT

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

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

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

Slika 11. Izbor foldera za smetanje programa i klik na komandno dugme NEXT

Na kraju instalacije mikroC-a bie ponuena instalacija drajvera za programator koju u ovom sluaju treba prekinuti izborom opcije No, jer e se programiranje mikrokontrolera vriti na nain koji e kasnije biti opisan.

Editovanje koda
U narednim redovima bie ilustrovan postupak kreiranja koda u mikroC-u (Slike 12-18).

Slika 12. Izgled editora po startovanju programa mikroC

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

Slika 13. Kreiranje novog projekta preko opcije Project New Project

Slika 14. Podeavanje parametara novog projekta (naziv, tip mikrokontrolera, takt, parametri kontrolera)

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

Kod ovog koraka je neophodno u okviru prozora New Project odabrati: ime projekta; njegovu putanju; tip mikrokontrolera (u naem sluaju P16F877); vrednost frekvencije kvarcnog kristala (u naem sluaju 8MHz); i ekirati dugme Default. Nakon toga pritisnuti Ok.

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

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

Slika 16. U editor je unet primer zadate funkcije

Slika 17. Sada treba izvriti prevoenje (compile) programa preko opcije Project Build

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

Slika 18. Izgled prozora posle kompilacije sa izvetajem (Messages)

Kao produkti prevoenja (kompilacije/kompajliranja) generie se nekoliko fajlova: asemblerski kod (ASM), heksadecimalni kod (HEX), izvetaji itd. Nama je od daljeg znaaja HEX fajl jer on predstavlja kod koji treba spustiti u mikrokontroler, odnosno kod kojim se programira mikrokontroler.

Uitavanje HEX fajla u mikrokontroler Programiranje mikrokontrolera


Jedan od naina na koji se programira mikrokontroler (sputanje HEX fajla) je uitavanje HEX fajla posredstvom mikroBootloader-a, programa koji je sastavni deo paketa mikroC. Na taj nain se izbegava potreba dodatnog programatora ime se ureaj znaajno pojeftinjuje i pojednostavljuje. Sve to je potrebno je da se ostvari serijska veza mikrokontrolera i PC-a, a to se veoma jednostavno postie povezivanjem USART terminala mikrokontrolera na COM port PC-a, posredstvom
17 PDF created with pdfFactory Pro trial version www.pdffactory.com

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 objanjeno. Da bi se na ovaj nain isprogramirao mikrokontroler ipak je neophodno da se prvo u njega, pomou adekvatnog programatora, uita kod koji e nadalje omoguiti komunikaciju mikrokontrolera i mikroBootloader-a. Na taj nain potreba za programatorom postoji samo pri prvom programiranju mikrokontrolera, te se on ne mora ugradjivati u ureaj to ga je uinilo znaajno jeftinijim i jednostavnijim, a svaki naredni put se programiranje vri preko serijskog porta (USART terminala) korienjem programa mikroBootloader. Takoe je mogue kupiti mikrokontroler sa ve ugraenim kodom za programiranje putem serijskog porta (USART terminala) korienjem nekog bootloader-a. Postupak programiranja je sledei: Najpre je potrebno uitati kod za komunikaciju sa mikroBootloaderom posredstvom nekog programatora u mikrokontroler. U tu svrhu je iskorieno razvojno okruenje firme MikroElektronika iz Beograda dato na slici 19.

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

Slika 19. Razvojno okruenje EasyPIC4

Uitavanje datog koda se vri na sledei nain: U okviru primera koji se dobijaju uz navedeno razvojno okruenje nalazi se i neophodan kod koji se nalazi u sistemskom folderu programa mikroC ija putanja je sledea:
...\Mikroelektronika\mikroC\Examples\EasyPic4\extra_examples\Bootloader\P16

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

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

Slika 20. Uitavanje bootloader koda

Poto je mikrokontroler isprogramiran kodom za komunikaciju sa mikroBootloader-om moe se izvaditi iz okruenja i ugraditi u razvijeni sistem. Kada je i to obavljeno, dalje programiranje kontrolera se vri na sledei nain: U okviru alata koje poseduje mikroC nalazi se i ve pomenuti mikroBootloader prikazana na slici 21.

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

Slika 21. Pokretanje mikroBootloader-a

Na sledeoj slici je prikazan izgled mikroBootloader-a.

Slika 22. Izgled mikroBootloader-a

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

Uspostavljanje veze se vri na sledei nain: Najpre je potrebno izvriti prikljuivanje sistema na napajanje i COM port PC-a. Kada je program mikroBootloader pokrenut potrebno je podesiti RS232 komunikaciju biranjem opcije Setup Port na nain prikazan na slici 23.

Slika 23. Podeavanje RS-232 komunikacije

Poto je sve to obavljeno neophodno je resetovati mikrokontroler pritiskom na taster predvien za reset i u roku od dve sekunde inicirati konekciju pritiskom na opciju Connect. Ako je konekcija uspeno obavljena pojavie se prozor kao na slici 24.

Slika 24. Uspeno obavljena konekcija

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

U suprotnom e se pojaviti prozor prikazan na slici 25 to znai da neki od koraka nije ispotovan. U tom sluaju treba ponoviti algoritam konektovanja poevi od koraka sa slike 22.

Slika 25. Neuspena konekcija usled loeg setovanja porta(Setup Port) ili usled isticanja vremenskog intervala od dve sekunde za iniciranje komunikacije nakon resetovanja mikrokontrolera

Ako je konekcija uspeno izvrena (slika 24) potrebno je uitati ve izgenerisani HEX fajl sa zadatom funkcijom, biranjem opcije Open HEX file kao na slikama 26 i 27. Na samom kraju, programiranje mikrokontrolera se vri opcijom Start bootloader. Kada se uitavanje HEX fajla zavri, 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 izvravanje zadate funkcije.

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

Slika 26. Otvaranje adekvatnog HEX fajla

Slika 27. Izgled prozora nakon uitanog HEX fajla nakon ega je potrebno startovati bootloader opcijom Start bootloader

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

Slika 28. Izgled prozora nakon uspeno izvrenog programiranja mikrokontrolera. Dalje je potrebno pritisnuti dugme Ok i resetovati mikrokontroler

Princip rada bootloadera


Ovakav vid programiranja je specifian za PIC mikrokotrolere. Nain na koji se programiranje zapravo odvija je sledei: Kod koji je prvo uitan u mikrokontroler (preko programatora) je smeten na samom poetku ROM memorije predviene za smetanje programa rada mikrokontrolera. On ima funkciju da nakon svakog resetovanja kontrolera u toku prve 2 sekunde nadgleda USART terminal. Ukoliko je sistem prikljuen na COM port PC-a i u toku od te 2 sekunde usledi inicijalizacija konekcije kao na slici 36 bootloader program e skoiti na prvu liniju ispod sebe i na taj nain omoguiti upisivanje konkretnog programa u prostor predvien za te svrhe. A ako ne doe do iniciranja konekcije u roku od 2 sekunde bootloader program takoe skae na prvu liniju ispod sebe i ako ve postoji uitan konkretan zadati program, mikrokontroler kree sa njegovim izvrenjem. U suprotnom se ne deava nita sve dok se mikrokontroler ponovo ne resetuje. Na taj nain je programator potreban samo pri prvom programiranju mikrokontrolera pa je njegova ugradnja na sistem nepotrebna iako je sistem neophodno programirati vie puta. Jedina mana je to je nemogue zatititi kod, jer bi se na taj nain onemoguilo ponovno programiranje bez dodatnog programatora pa bi ovaj nain programiranja bio apsurdan.

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

Realizacija softvera - Realizacija zadate kombinacione funkcije


Kao to je ve poznato PLC kontroleri se programiraju putem ladder dijagrama. Poto je ovakav nain programiranja klasinog mikrokontrolera (PIC) praktino nemogu zbog nemogunosti kompajlera da to obavi, dalji tok projektovanja se zasnivao na tome da se realizuju sledee logike funkcije koje bi podseale na osnovne logike 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 logika kola digitalne elektronike kao i njihovi odgovarajui 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 prekidaa 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

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

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

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

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 logikih funkcija mogue je, njihovim spajanjem, realizovati bilo koju sloenu logiku funkciju.

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

Transformacija ladder dijagrama u mikroC kod


Kroz naredna dva primera bie 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 logikih funcija (digitalne elektornike). Najpre je potrebno uoiti segmente ladder dijagrama koji se direktno mogu zameniti ekvivalentnom logikom funkcijom kao to je prethodno objanjeno. Sledee slike iliustruju kako se od zadatog ladder diajagrama sa slike 29 prelazi na dijagram osnovnih logikih funkcija, korak po korak.

Slika 30. Transformacija prve lestvice ladder dijagrama u logiku emu

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

Slika 31. Transformacija druge lestvice ladder dijagrama u logiku emu

Slika 32. Transformacija tree lestvice ladder dijagrama u logiku emu

Poto su prethodno ilustrovane lestvice ladder dijagrama povezene paraleleno, zakljuu je se da su sve logike eme povezane u jedno troulazno ILI kolo, pa se na taj nain dobija kompletna logika 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 logike eme u mikroC kod za programiranje kontrolera. Sada je najpre potrebno obeleiti interne signale kao to je prikazano na slici 34 da bi se u kodu omoguilo spajanje dobijenih logikih funkcija.

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

Slika 34.

Formiranje potrebnog koda na osnovu ovako dobijene funkcije se vri na sledei nain: 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 logika kola prvog nivoa to je prikazano u sledeem delu koda:
b.f0=In1; c.f0=In2; d.f0=In3; e.f0=In4; f.f0=In5;

Sledei korak je povezivanje pojedinanih logikih kola tako da se formira kompletna zadata logika ema to prikazuje sledei 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);

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

Bitno je da redosled pozivanja funkcija odgovara nivoima logikih funkcija tj. da de prvo obradi prvi nivo, pa drugi i tako redom do zadnjeg nivoa logikih kola to se vidi iz gore navedenog koda. Na kraju je potrebno interne signale sa izlaza logikih kola zadnjeg nivoa povezati sa izlaznim signalima (Out1 do Out8, koji pobuuju izlazne pinove kontolera) to u ovom sluaju predstavlja sledei deo koda:
Out1=a.f0;

Na ovaj nain se dobijaju sledei 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 znai da one zauzimaju memoriju veliine 1 bajt (8 bitova), poto je u ovom kompajleru nemogue definisati promenljivu tipa bit (kakva bi u ovom sluaju odgovrala jer su svi signali jedno-bitni). Da ne bi dolo do kolizije, neophodno je u oznaenom delu koda, svakoj promenljivoj dodati eksteziju .fo to oznaava da se primenjene operacije izvravaju samo nad njenim prvim bitom ime je ostvarena kompatibilnost izmeu realnih signala i

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

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 #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define In1 PORTB.F7 Out1 PORTA.F0 In2 PORTB.F6 Out2 PORTA.F1 In3 PORTB.F5 Out3 PORTA.F2 In4 PORTB.F4 Out4 PORTA.F3 In5 PORTB.F3 Out5 PORTA.F5 In6 PORTB.F2 Out6 PORTE.F0 In7 PORTB.F1 Out7 PORTE.F1 In8 PORTB.F0 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; }

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

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*/ } }

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

Kada je potrebno realizovati odgovarajuu zadatu funkciju u gore navedenom kodu je potrebno zameniti samo one delove koda koji su obeleeni kao delovi koda prilagodljivi korisnikim potrebama. U predstojeem 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 sledeim slikama:

Slika 35. Blok ema i tabela istinitosti multipleksera

Slika 36. Ladder dijagram datog multipleksera

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

Prvi korak je transformisanje ladder dijagrama u dijagram logikih funcija (digitalne elektornike).

Slika 37. Transformacija prve lestvice ladder dijagrama u logiku emu

Slika 38. Transformacija druge lestvice ladder dijagrama u logiku emu

Slika 39. Transformacija tree lestvice ladder dijagrama u logiku emu

Slika 40. Transformacija etvrte lestvice ladder dijagrama u logiku emu

Poto su prethodno ilustrovane lestvice ladder dijagrama povezene paraleleno, zakljuu je se da je neophodno ostvariti sledeu vezu, zbog mogunosti izbora osnovnih logikih kola koja se mogu koristiti to je prikazano na slici 41.

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

Slika 41. Kompletna logika funkcija dobijaena transformacijom ladder dijagrama

Formiranje potrebnog koda na osnovu ovako dobijene funkcije se vri na sledei nain: 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 logika kola prvog nivoa to je prikazano u sledeem delu koda:
a1.f0=In1; a2.f0=In2; d1.f0=In3; d2.f0=In4; d3.f0=In5; d4.f0=In6;

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

Sledei korak je povezivanje pojedinanih logikih kola tako da se formira kompletna zadata logika ema to prikazuje sledei 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 logikih funkcija tj. da de prvo obradi prvi nivo, pa drugi i tako redom do zadnjeg nivoa logikih kola to se vidi iz gore navedenog koda. Na kraju je potrebno interne signale sa izlaza logikih kola zadnjeg nivoa povezati sa izlaznim signalima (Out1 do Out8, koji pobuuju izlazne pinove kontolera) to u ovom sluaju predstavlja sledei deo koda:
Out1=x.f0;

Na ovaj nain se dobijaju sledei 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 #define #define #define #define #define #define #define #define #define #define #define #define #define #define #define In1 PORTB.F7 Out1 PORTA.F0 In2 PORTB.F6 Out2 PORTA.F1 In3 PORTB.F5 Out3 PORTA.F2 In4 PORTB.F4 Out4 PORTA.F3 In5 PORTB.F3 Out5 PORTA.F5 In6 PORTB.F2 Out6 PORTE.F0 In7 PORTB.F1 Out7 PORTE.F1 In8 PORTB.F0 Out8 PORTE.F2

/*Definicije osnovnih logickih funkcija*/

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

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;

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

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 razraena ladder dijagrama su na izlazu imali samo jednu akciju tj. prevedena kombinaciona funkcija je imala samo jedan izlaz. U sluaju da se javi ladder dijagram sa vie akcija na izlazu, to treba shvatiti kao dva zasebna ladder dijagrama, osim ako oni meusobno nisu zavisni, pa e se tako na kraju dobiti kombinaciona funkcija odnosno mikroC kod koji ima vie izlaza, koji odgovara broju akcija ladder dijagrama, npr:
Out1=x.f0; Out2=y.f0;

Nadalje e biti navedeni primeri za laboratorijske vebe.

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

Primeri za laboratorijske vebe


Zadatka 1 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 2 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 3 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 4 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 5 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 6 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 7 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 8 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 9 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 10 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 11 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 12 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 13 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 14 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 15 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 16 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 17 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 18 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

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

Zadatka 19 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

Zadatka 20 Na osnovu zadatog ladder dijagrama sa sledee slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.

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

Literatura
PIC16F87X, DATASHEET, Microchip Tecnology Inc, 2001. Uvod u industrijske PLC kontrolere, Neboja Mati, Mikroelektronika,
http://mikroe.com mikroC Help , Mikroelektronika, http://mikroe.com Programiranje industrijskih kontolera, Goran orevi, skripta, Elektronski fakultet, Ni, 2007. Embedded sistemi, Mile Stojev, Elektronski fakultet, Ni, 2007.

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

Zakljuak
PLC simulator je analiziran i detaljno razraen. Postavljeni su bili jasni softverski i hardverski ciljevi. Uz dalju analizu realizovani su hardver i softver. Nakon uitavanja programa u mikrokontroler izvreno je testiranje celokupnog PLC simulatora. Testiranje je prolo uspeno tako da se moe zakljuiti da je uprkos manjim potekoama uspeno realizovan sistem. Mogua su dalja doraivanja kao na primer poveanje broja osnovnih kombinacionih funkcija kao i uvoenje sekvencijalnih logikih funkcija.

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

Dodatak
Opis mikrokontrolera PIC16F877
Veina dananjih mikrokontrolera je bazirano na Harvard arhitekturi, koja jasno definie etiri osnovne komponente potrebne za embedded sistem. To ukljuuje CPU jezgro, memoriju za program (ROM, EPROM ili Flash memorija), memoriju za podatke (RAM), jedan ili vie tajmera (podesive i watchdog tajmere), kao i I/O linije za komunikaciju sa eksternim periferijama i dopunskim resursima sve to treba da bude smeteno u jednom integrisanom kolu. Mikrokontroler se u osnovi razlikuje od optenamenskog mikroprocesorskog ipa po tome to ga je izuzetno lako pretovoriti u radni kompjuter, sa minimumom eksternih ipova za podrku. Ideja je da se mikrokontroler isprogramira, postavi u ureaj za kontrolu, povee na napajanje i stavi u funkciju. Tradicionalni mikroprocesor je rastereen 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 sloeni eksterni hardver da bi se realizovao mikroraunarski sistem. Ovaj mikrokontroler je izraen u CMOS tehnologiji sa ugraenom FLASH i EEPROM memorijom za memorisanje programa i podataka. PIC16F877 ima tipinu RISC arhtekturu. Ova arhitektura, kao to je poznato, karakterie se manjim skupom instrukcija koje se bre izvavaju od instrukcija kod CISC arhitekture. U daljem tekstu detaljnije e biti opisani gradivni delovi mikrokontrolera PIC16F877.

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

Slika 42. Raspored pinova kod mikrokontrolera PIC16F877 u kuitu DIP40

Osnovne karakteristike mikrokontrolera RISC mikroprocesor visokih performansi 35 instrukcija obima jedne rei Radna frekvencija do 20 MHz Trajanje taktnog intervala 200 ns, pri frekvenciji 20 MHz Opkod obima 14 bita Harverski magacin sa osam nivoa Tri naina adresiranja (direktno,indirektno i relativno) Programska flash memorija kapaciteta 8 k X 14-bitnih rei 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_dogaaja - Timer1 (TMR1): 16-bitni tajmer/broja_dogaaja - Timer2 (TMR2): 8-bitni tajmer/broja_dogaaja 10-bitni 8-kanalni analogno-digitalni (A/D) konvertor
51 PDF created with pdfFactory Pro trial version www.pdffactory.com

Serijska komunikacija: MSSP, USART Paralelna komunikacija: PSP Power-on Reset - reset pri ukljuenju napajanja (POR) Power-up timer - unoenje kanjenja nakon ukljuenja napajanja (PWRT) Oscillator Start-up Timer - unoenje kanjenja nakon stabilizovanja radne frekvencije oscilatora (OST) Sleep mode - reim rada sa malim utrokom energije Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za nezavisni rad Izbor tipa oscilatora Radni napon od 2V do 5.5V Mala potronja energije: <0.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz 20A pri naponu od 3V i radnom taktu od 32kHz <1A u standby reimu rada.

Arhitektura mikrokontrolera Kao to je istaknuto, mikrokontroler PIC16F877 poseduje tipinu 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. Mogue je protono izvrenje (pipelining). Sve instrukcije su istog obima (osim instrukcija grananja) i izvavaju 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 kilorei obima 14 bita RAM (File Registers) 368 bajtova Aritmetiko-logika jedinica (ALU) Akumulator (Working Register) Hardverski magacin (Stack) organizivan u 8 nivoa EEPROM memorija podataka obima 256 bajtova Viekanalni A/D konvertor, USART (univerzalni sinhroni i asinhroni primo-predajnik), tajmere, portove itd.

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

Slika 43. Arhitektura mikrokontrolera PIC16F877

Resursi mikrokontrolera koji su iskorieni su nadalje objanjeni: Oscilator Kod mikrokontrolera PIC16F877 postoje etiri konfiguracije oscilatora: RC XT LP HS Resistor/Capacitor Crystal / Resonator Low Power Crystal High Speed Crystal / Resonator.

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

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 mogue 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 spoljane uticaje. Kondenzator Cext se moe ak i izostaviti. Meutim, zbog stabilnosti preporuuje se vrednost oko 20pF. Na pinu OSC2/CLKOUT generie se taktni impuls ija je perioda etiri puta vea od periode rada oscilatora. Kod vremenski kritinih aplikacija treba ugraivati kvarcni oscilator ili keramiki rezonator. Vrednosti kondenzatora C1 i C2 (Slika 45), treba da budu identine.

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

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

Mikrokontroleru PIC16F877 moe da se dovede i spoljanji takt, to je prikazano na slici 46.

Slika 46. Dovoenje spoljanjeg takta

U Tabeli 1 dat je izbor vrednosti kondenzatora za razliite vrednosti frekvencije kristalnog kvarca, dok je u Tabeli 2 predloen izbor vrednosti kondenzatora pri razliitim vrednostima frekvencije rezonatora. Na kraju emo istai kako mikrokontroler PIC16F877 moe da radi i na frekvenciji 32 kHz, kada ima izuzetno malu potronju.

Tabela 1. Izbor vrednosti kondenzatora za kvarcni kristal

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

Tabela 2. Izbor vrednosti kondenzatora za rezonator

Odnos izmeu takta i instrukcijskog ciklusa Takt koji se dovodi na pin OSC1 oscilatora u mikrokontroleru deli se na etiri vremenski nepreklapajua 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 sledee namene: Q1 - pribavljanje instrukcije iz programske memorije Q2 - dekodiranje naredbe iz prethodnog instrukcijskog ciklusa Q3 - izvrenje 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 poetno stanje. Ako se mikrokontroler blokira , ili smo ga tek ukljuili, neophodno je da se resetuje. Kako bi se spreilo sluajno dovoenje logike

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

0 na MCLR, potrebno je da se ovaj pin preko otpornika (npr. vrednosti 10K) povee na pin napajanja Vdd. Postoji nekoliko tipova reseta kod mikrokontrolera PIC16F877 i to su: Power-on reset (POR) MCLR Reset pri normalnom reimu radu MCLR Reset prilikom SLEEP reima rada WDT Reset pri normalnom radu WDT Wake-up (buenje iz SLEEP reima rada) Brown-out Reset (BOR).

Portovi PIC16F877 poseduje pet portova (PORTA, PORTB, PORTC, PORTD i PORTE) i oni predstavljaju vezu njegove interne strukture sa spoljanjim svetom. Svaki od njih moe da se konfigurie kao ulazni ili kao izlazni. Pomenuti portovi su razliitog obima: 8-pinski (PORTB, PORTC, PORTD) 6-pinski (PORTA) 3-pinski (PORTE). Svakom pinu bilo kojeg porta, u zavisnosti od reima rada, mogu da se dodele fiksne ili promenljive funkcije. Konfiguracija smera prenosa ostvaruje se upisom na odgovarajuu bit-poziciju u pripadajuem 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 inicirae upis u latch tog porta, a njegovo itanje rezultirae itanjem logikih stanja direktno sa pinova. Sve instrukcije upisivanja su tipa read-modify-write . To znai da se pri upisu u port najpre oitaju stanja pinova, zatim izvri modifikacija, a potom korigovana vrednost upie u latch porta. Ne postoji velika razlika u konstrukciji pomenutih pet portova. Nadalje su opisani portovi koji su iskorieni za realizaciju sistema. PortA PortA je 6-bitni (RA5-RA0) bidirekcioni port (podaci mogu da se alju u oba smera). Sadraj registra TRISA odreuje smer (ulazni ili izlazni)

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

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.

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

Slika 48. Blok-dijagram pinova RA5, RA3-RA0

PortA ima mogunost 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 moe da se iskoristi za ulazni takt za tajmer TMR0.

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

Tabela 3. Funkcije PortaA i registri

U Tabeli 3 dati su prikaz funkcija pojedinanih pinova PortaA i registri koji se koriste za konfigurisanje porta. Port B Port B je 8-bitni bidirekcioni port. Svakom pinu porta korespondira odgovarajui bit u registru TRISB, kojim se definie smer. Svi pinovi unutar PortB poseduju pull-up otpornike. Ovi otpornici mogu da se ukljue jednim kontrolnim bitom. To se postie postavljanjem RBPU' bita na 0. Pull-up otpornici se automatski iskljuuju kada se pin konfigurie kao izlazni. Otpornici su iskljueni i kod Power-on reseta. etiri pina na PORTB (RB7-RB4) imaju mogunost 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.

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

Slika 49. Blok-dijagram pinova RB3-RB0

Slika 50. Blok-dijagram pinova RB7-RB4

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

U Tabeli 4 dati su prikaz funkcija pojedinanih 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 ugraen USART modul, koji slui 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 veliine 3 bita. Ima mogunost A/D konverzije. Ulazni bafer je tipa Schmitt Trigger. Pinovi mogu da se konfiguriu kao digitalni ili analogni, kao i u sluaju PortaA, o emu je ve bilo rei.

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

Serijska komunikacija posredstvom MAX232 drajvera


RS-232 komunikacija omoguava transfer podataka tipa point-topoint. Poto 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 iskorien. Veza mikrokontrolera sa PC-jem je u ovom sluaju neophodna jer se preko nje programira mikrokontroler na nain koji e kasnije biti opisan. Na slici 51 je prikazana ema veze kontrolera sa MAX232 ipom.

Slika 51. ema veze mikrokontrolera i MAX232

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

U/I moduli
Kao to smo ve napomenuli, ulaz kontrolera predstavljaju klik-klak prekidai koji preko otpornika na ulaz kontrolera dovode logike naponske nivoe (VCC kao logika jedinica ili GND kao logika nula). Postoje 8 prekidaa tako da je ceo jedan port (odnosno deo porta A i port E) proglaen za ulazni i sa njega se oitavaju vrednosti definisane prekidaima. Izgled prekidaa prikazan je na slici 52.

Slika 52.

Na izlazu kontrolera nalaze se LED diode za indikaciju stanja izlaza. Za izlazni port je proglaen port B na kome su prikljuene 8 LED dioda. Poto je mikrokontroler u stanju da da odnosno primi struju jaine 20mA maksimalno, po pinu, neophodno je upotrebiti drajver za adekvatnu podudu LED dioda da ne bi dolo 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.

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

Napajanje
Za rad sistema je neophodan stabilan napon napajanja od 5V, poto se sve komponente sistema napajaju ovakvim naponom. U tu svrhu je iskorien mreni transformator koji sputa mreni 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.

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

Biografije autora
Ime: Aleksandar Prezime: Goi Datum roenja: 4.10.1985. Nacionalnost: Srbin Brano stanje: Neoenjen Vozaka dozvola: A,B,C i E kategorije Adresa: selo Gornji Vratari, 37230 Aleksandrovac E-mail: gosa46@yahoo.com Mobilni telefon: 064/29 85 805 Obrazovanje: Elektrotehnika kola Kruevac Smer: Elektrotehniar automatike, IV stepen

Ime: Aleksandar Prezime: Lakievi Datum roenja: 20.6.1985. Nacionalnost: Srbin Brano stanje: Neoenjen Vozaka dozvola: B kategorije Adresa: Ilije Katia 6. 37000 Kruevac E-mail: lakisa85@yahoo.com Mobilni telefon: 064/635 65 25 Obrazovanje: Elektrotehnika kola Kruevac Smer: Elektrotehniar automatike, IV stepen

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

You might also like