Simulacija PLC kontolera pomoću PIC16F877 mikrokontrolera Aleksandar Gošić 11486 Aleksandar Lakićević 11523
Download ReportTranscript Simulacija PLC kontolera pomoću PIC16F877 mikrokontrolera Aleksandar Gošić 11486 Aleksandar Lakićević 11523
Simulacija PLC kontolera pomoću PIC16F877 mikrokontrolera
Aleksandar Gošić 11486 Aleksandar Lakićević 11523
UVOD
Smisao PIC16F877 upis koda ovog zadatka je mikrokontrolera programabilnog logičkog kontrolera (PLC). Za pisanje koda koristili smo kompajler
mikroC
, a za u
mikroBootloader
, mikrokontroler da se simulira pomoću rad produkte
MikroElektronika
iz Beograda.
koristili smo firme
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
1.
Centralna procesorksa jedinica (CPU) logička jedinica
ili a. Mikroprocesor. b. Memorija – za cuvanje sistemskog softvera i korisnickog programa c. Izvor napajanja - obezbeduje napajanje mikroprocesora, memorije, ulaznog i izlaznog modula.
PLC sistem
2.
3.
4.
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
beogradska prestavlja moćan softverski alat, koji je razvila
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.
Instalacija
Editovanje koda
Editovanje koda
Učitavanje HEX fajla u mikrokontroler – Programiranje mikrokontrolera
Hex fajl koji izgeneriše
mikroC
učitava u mikrokontoler preko na svom izlazu se
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
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:
Opis logičkih funkcija
Opis logičkih funkcija
Opis logičkih funkcija
Opis logičkih funkcija
Opis logičkih funkcija
Opis logičkih funkcija
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 slike prelazi 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 logičke šeme u predstavlja
mikroC
transformaciju dobijene 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 tipa
bit
(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”.
Biografije autora: