490 likes | 772 Views
Simulacija PLC kontolera pomoću PIC16F877 mikrokontrolera Aleksandar Gošić 11486 Aleksandar Lakićević 11523. UVOD.
E N D
Simulacija PLC kontolera pomoću PIC16F877 mikrokontrolera Aleksandar Gošić 11486Aleksandar Lakićević 11523
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.
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 sistem Na narednim slajdovima biće, u obliku blok dijagrama, prikazane četiri osnovne jedinice svakog PLC sistema kao i načina na koji su medusobno povezane:
PLC sistem • Centralna procesorksa jedinica (CPU) ili logička jedinica a. Mikroprocesor. b. Memorija – za cuvanje sistemskog softvera i korisnickog programa c. Izvor napajanja - obezbeduje napajanje mikroprocesora, memorije, ulaznog i izlaznog modula.
PLC sistem • Programator/Monitor (PM). • U/I moduli. • Rekovi i šasije. PLC sistem
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.
Programiranje PLC-a. Ladder dijagrami Jedan prostiji primer ladder dijagrama je prikazan na sledećoj slici. Primer ladder dijagrama
Programiranje PLC-a. Ladder dijagrami 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.
Projektni zadatak Kao što smo već napomenuli zadatak ovog projekta je bio da se pomoću mikrokontrolera simulira rad PLC-a, tako što bi sa jedne strane bili prekidači povezani na ulaz kontrolera, a sa druge strane na izlazu kontrolera LED diode za indikaciju stanja. Osnovne kombinacione funkcije su opisane u softveru a njihovim pozivanjem realizuju se kompletne složene funkicije.
Projektni zadatak 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.
Projektni zadatak 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.
Blok šema komletnog sistema Blok šema kompletnog sistema
Štampana ploča Izgled štampane ploče sistema
PLC simulator Realizovani PLC simulator
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.
MIKROC – Softver za programiranje PIC mikrokontrolera Nadalje će biti opisana instalacija mikroC softvera i editovanje koda u njemu.
Učitavanje HEX fajla u mikrokontroler – Programiranje mikrokontrolera Hex fajl koji izgeneriše mikroC na svom izlazu se učitava u mikrokontoler preko mikroBootloadera što je nadalje opisano:
Učitavanje HEX fajla u mikrokontroler Kada je program mikroBootloader pokrenut potrebno je podesiti RS-232 komunikaciju biranjem opcije Setup Port na način prikazan na sledećoj slici:
Učitavanje HEX fajla u mikrokontroler 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 sledećoj slici: Ukoliko se ne pojavi dati prozor potrebno je ponoviti postupak konektovanja iz početka
Učitavanje HEX fajla u mikrokontroler Ako je konekcija uspešno izvršena potrebno je učitati već izgenerisani HEX fajl sa zadatom funkcijom, biranjem opcije Open HEX file kao na sledećim slikama:
Učitavanje HEX fajla u mikrokontroler Na kraju treba startovati učitavanje hex fajla pritiskom na dugme ”Start bootloader”. Posle ušitavanja hex fajla potrebno je resetovati kontroler.
Realizacija softvera - Realizacija zadate kombinacione funkcije Dole navedene proste kombinacione funkcije su opisane u mikroC-u i permanentno učitane u mikrokontoler kako bi mogle da se pozivaju i pomoću njih realizuju zadate složene funkcije: • 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.
Realizacija softvera - Realizacija zadate kombinacione funkcije Ispod su navedeni delovi koda u kome su opisane date funkcije u mikroCkompajleru 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:
Transformacija ladder dijagrama u mikroC kod Primer : Na osnovu zadatog ladder dijagrama sa naredne slike isprogramirati kontroler da obavlja datu kombinacionu funkciju.
Transformacija ladder dijagrama u mikroC kod 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 prethodne slikeprelazi na dijagram osnovnih logičkih funkcija, korak po korak.
Transformacija ladder dijagrama u logičku šemu Transformacija prve lestvice ladder dijagrama u logičku šemu
Transformacija ladder dijagrama u logičku šemu Transformacija druge lestvice ladder dijagrama u logičku šemu
Transformacija ladder dijagrama u logičku šemu Transformacija treće lestvice ladder dijagrama u logičku šemu
Transformacija 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 sledećoj slici, koja je potpuno ekvivalentna ladder dijagramu sa početne slike. Izlaz A date konbinacione funkcije odgovara akciji A sa početne slike.
Transformacija ladder dijagrama u mikroC kod 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 sledećoj slici da bi se u kodu omogućilo spajanje dobijenih logičkih funkcija.
Transformacija ladder dijagrama u mikroC kod 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*/
Transformacija ladder dijagrama u mikroC kod 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;
Transformacija ladder dijagrama u mikroC kod 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);
Transformacija ladder dijagrama u mikroC kod 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.
Deo mikroC 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*/ /*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*/
Transformacija ladder dijagrama u mikroC kod 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 tipabit(kakva bi u ovom slučaju odgovarala 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 promenljivih koje su im dodeljene, kao što je prikazano u gore navedenom delu koda.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”.