Simulacija PLC kontolera pomoću PIC16F877 mikrokontrolera Aleksandar Gošić 11486 Aleksandar Lakićević 11523

Download Report

Transcript 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: