43
Primena tajmera, brojača Primena tajmera, brojača i pomeračkih registara i pomeračkih registara u PLC-ovima u PLC-ovima Predmet Predmet : : Mikroprocesorski Mikroprocesorski sistemi sistemi Student: Milan Gikić, 9596 Student: Milan Gikić, 9596

Primena tajmera, brojača i pomeračkih registara u PLC-ovima

  • Upload
    peony

  • View
    93

  • Download
    0

Embed Size (px)

DESCRIPTION

Primena tajmera, brojača i pomeračkih registara u PLC-ovima. Predmet : Mikroprocesorski sistemi. Student: Milan Gikić, 9596. Programibilni logički kontroleri. - PowerPoint PPT Presentation

Citation preview

Page 1: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Primena tajmera, brojača i Primena tajmera, brojača i pomeračkih registarapomeračkih registara

u PLC-ovimau PLC-ovima

PredmetPredmet: : Mikroprocesorski sistemiMikroprocesorski sistemi

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 2: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Programibilni logički kontroleriProgramibilni logički kontroleri Definicija: Programibilni logički kontroleri (PLC- Programmable Logic

Controller) su industrijski kontroleri specijalne namene koji se koriste za upravljanje različitih tipova fabričkih mašina i sistema.

Alternativna definicija bi bila: PLC je specijalizovan elektronski uredjaj zasnovan na jednom ili većem broju mikroprocesora koji se koriste za upravljenje industrijskih mašina.

Proizvodi firme Allen BradleyProizvodi firme Allen Bradley Tipična arhitektura

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 3: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Relejna lestvičasta logikaRelejna lestvičasta logika

Sekvencijalni upravljački sistemi nazvani relejna-lestvičasta logika (relay ladder logic) su dugo godina, sve do pojave prvih PLC-ova, bili jedini upravljački sistemi koji su se koristili u industriji.

Da bi shvatili kako PLC obavlja svoj zadatak, neophodno je dobro razumeti rad releja i relejno-lestvičaste logike. Na slici je prikazano pet tipova releja i identifikovani su svi delovi ove elektromehaničke komponente.

Elektromehanički relejiElektromehanički releji

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 4: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Elektromehaničko releElektromehaničko rele

Elektromehaničko rele čine sledeće tri komponente:

1. Elektromagnet- to je magnet koji se kreira (formira) prolaskom struje kroz žice namotane oko gvozdenog jezgra.

2. Armatura- to je obešena metalna ploča koja se nalazi iznad kalema. Ploča se privlači ka elektromagnetu kada se kalem aktivira (pobudi). Kada kalem nije aktiviran, opruga udaljava armaturu od kalema.

3. Kontakti- kreiraju jedan električni put izmedju normalno-zatvorenih kontakata (NC – Normally Closed contacts), a drugi električni put preko normalno-otvorenih kontakata (NO- Normally Open conatcts) kada je kalem aktiviran (armatura naniže).

Standardni simboli za jedno-polne releje sa dva Standardni simboli za jedno-polne releje sa dva kontaktakontakta

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 5: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

PLC sistemPLC sistem

Blok dijagram PLC sistema je prikazan na slici desno. Srce PLC-a je PLC-procesor. Procesor je okružen ulaznim modulima na levoj strani slike, izlaznim modulima na desnoj, i napajanjem sa gornje strane.

Programiranje PLC-a se može obaviti na sledeća tri načina:

a) manuelno pomoću ručnog programera;b) direktno preko povezane PC mašine; ic) pomoću računara preko mrežne konekcije.

Blok dijagram PLC sistemaBlok dijagram PLC sistema

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 6: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

PLC komunicira sa ulazno-izlaznim uredjajima preko ulazno-izlaznih (U/I) modula. S obzirom da je broj U/I uredjaja koji se povezuju na PLC sistem dosta veliki, specifičan, i raznorodan u odnosu na njihov princip rada, to znači da će biti veliki broj i U/I modula koji se povezuju na procesor.

U/I interfejs koji se koristi kod PLC-a može da ima jedan od sledeća dva oblika:a) fiksnib) modularni

PLC sistemPLC sistem

Blok dijagram PLC sistemaBlok dijagram PLC sistema

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 7: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

PLC tipoviPLC tipovi

U zavisnosti od operativnih karakteristika PLC-ovi se mogu grupisati u sledeće kategorije:

a. rack ili adresno-zasnovani sistemi;

b. tag- zasnovani sistemi; i

c. soft-PLC-ovi ili PC-zasnovani sistemi.

Kod rack/slot adresno-baziranih sistema slot lokacije ulazno-izlaznih modula u rack-u definišu PLC adrese ulazno-izlaznih signala koji su povezani na taj modul. Fizički, ulazno-izlazni moduli, standardno, se smeštaju u rack-u desno u odnosu na procesor.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 8: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Tag-zasnovani PLC-ovi se koriste kod svih adresno zasnovanih modela PLC-ova. Tipično su to PLC-ovi iz familije Control-Logix kompanije Allen Bradley, ili neki slični PLC-ovi kompanija Telemecanique i Siemens. Tag ime koje se koristi kod ovih sistema je isto kao i promenljiva deklarisana kod viših programskih jezika kakav je C. Kod ovog tipa adresnih sistema, ulazima i izlazima field uredjaja, u trenutku projektovanja sistema upravljanja, dodeljuju se imena promenljivih (variable names). Kompanija Allen Bradley koristi termin tag umesto variable. Kasnije ime promenljive (variable) ili tag se dodeljuje ulazno-izlaznom modulu i specifičnom terminal broju. Tag je jedina referenca koja se koristi kada se razvija program koristeći se (pomoću) PLC-ovog ladder logičkog programa. Kada se tag-ovi ili variable-e definišu, deklariše se i tip podataka koji se prestavlja od strane tag-a.

PC-bazirani upravljački sistemi, alternativno nazvani soft PLC-ovi, predstavljaju emulaciju PLC-a koja se izvodi softverom PC-mašine. Ova implementacija koristi industrijsku PC-mašinu, U/I karticu za spregu sa field uredjajem, i aplikacioni softver koji čini da se PC-mašina ponaša kao PLC.

PLC tipoviPLC tipovi

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 9: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Jedan drugi tip implementacije koristi standardni PLC sa industrijskim PC-modulom smešten u jednom od PLC rack-slotova. Kod ove verzije PC ima pristup backplane-u a time i svim U/I modulima u PLC rack-u. Soft PLC rešenje koriste jednu od pomenute dve implementacije.

U principu soft PLC-ovi predstavljaju dobar projektanski izbor kod onih rešenja gde se zahteva velika memorija za čuvanje podataka, intezivnije matematičke manipulacije u toku upravljanja procesom, kao i grafički prikaz procesa.

PLC tipoviPLC tipovi

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 10: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Prednosti PLC-ovaPrednosti PLC-ova PLC ladder logika ima veći broj prednosti u odnosu na konvencionalnu relejnu

logiku, a koje se ogledaju u sledećem:

jednostavnije i preglednije ožičavanje

jednostavnije i preglednije ožičavanje

veća pouzdanost – mehanički releji i elektro-mehanički uređaji su daleko nepouzdanije komponente u odnosu na softver

efikasnije je održavanje i brže se nalaze kvarovi

off-line programiranje – ranije PLC-ovi su se programirali preko specijalnih programskih kontrolera koji su bili isporučivani od strane proizvođača. Današnji sistemi koriste mikroračunare, obično PC mašine, kao mašine za programiranje. Nova programska softverska sredstva omogućuju da se program za PLC razvije na samoj PC mašini, zatim testira pomoću emulatorskog softvera i pronađu greške u programiranju pre nego što se instalira softver u PLC-u. Nove verzije softvera omogućavaju da se PLC download-uje preko serijske konekcije, ili preko Internet-a. Kod najvećeg broja aplikacija, programiranje za datu aplikaciju se obavlja koristeći hardverske i softverske resurse PC mašine dok se sam proces programiranja izvršava na taj način što se program upisuje u memoriju PLC-a. Ovaj proces se naziva off-line programiranje, a omogućava da se PLC programira bez da se on vadi iz rack-a, tj. odstranjuje od procesa upravljanja.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 11: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Prednosti PLC-ovaPrednosti PLC-ova

on-line programiranje – ovaj način programiranja omogućava programeru da edituje ladder logičke prečage (rungs) dok PLC izvršava program. Promene se izvode u specijalnom on-line režimu rada, a kada su promene u potpunosti obavljene nova ladder logika postaje aktivni deo tekućeg ladder programa.

širi krug aplikacija – PLC softver podržava širi opseg analognih i diskretnih aplikacija na koje nailazimo kod upravljanja u industrijskim postrojenjima.

niske cene i male dimenzije – cena i gabarit PLC-a su značajno smanjeni zadnjih 10 godina. Recimo, cena jednog mikro-PLC-a je reda $300.

mogućnosti upravljanja PLC-a – zahvaljujući ugradnji savremenih VLSI IC-ova a i sve efikasnijeg softvera mogućnosti novijih verzija PLC-ova su zaista impresivne. Pored ostalog omogućeno je kreiranje mrežno-distribuirano upravljanje i povezivanje na Internet.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 12: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

TAJMERITAJMERIU mnogim kontrolnim zadacima postoji potreba za kontrolisanjem vremena. Na primer, motor ili pumpa mogu biti kontrolisani tako da rade u određenom vremenskom intervalu, ili možda da se uključe posle određenog vremenskog intervala. PLC-ovi zbog toga imaju tajmere kao ugrađene komponente. Tajmeri broje delove sekunde ili sekunde koristeći unutrašnji takt CPU-a. Ovo poglavlje pokazuje kako takvi tajmeri kogu biti programirani da izvršavaju kontrolne zadatke.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Tipovi tajmera

Postoji nekoliko različitih oblika tajmera:1. on-delay tajmeri (TON) - tajmeri koji nastupaju posle određenog vremenskog kašnjenja 2. off-delay (TOF) – tajmeri koji su uključeni u fiksnom vremenskom periodu pre isključivanja 3. pulse tajmere (TP) – tajmer koji se uključuje ili isključuje u fiksnom vremenskom periodu

Tajmeri: (a) On-delay, (b) Off-delay, (c) PulseTajmeri: (a) On-delay, (b) Off-delay, (c) Pulse

Page 13: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Programibilni tajmeriProgramibilni tajmeri Sledeće slike prikazuju ladder dijagrame raznih proizvođača:

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

(a) Mitsubishi, (b) Siemens (c) Telemecanique, (d) Toshiba

(e) Allen-Bradley

Page 14: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Primer programiranja tajmeraPrimer programiranja tajmera

Kao ilustracija programiranja koje uključuje tajmere razmatramo semafor koji daje sekvencu crveno, crveno i žuto, zeleno, žuto, a zatim se ponavlja. Jednostavan sistem može samo imati sekvencu koja se vremenski okida, gde se sva moguća stanja javljaju u sekvenci u fiksnom vremenskom intervalu. Slika prikazuje sekvencijalni funkcijski dijagram i mogući ladder program za datu sekvencu.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Sekvenca semaforaSekvenca semafora

Page 15: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

BROJAČIBROJAČI Brojači su dati kao ugrađeni elementi u PLC-ovima i omogućavaju brojanje pojavljivanja ulaznih signala.Ovo je potrebno gde moramo brojati objekte kao npr. kada oni prolaze duž prenosne trake, ili broji obrtaje osovine, ili broj ljudi koji prolaze kroz vrata. Ovo poglavlje opisuje kako takvi brojači mogu biti programirani.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Tipovi brojačaTipovi brojača

Postoje dva tipa brojača, mada PLC-ovi ne moraju imati oba tipa:1. Brojači naniže (CD) broje naniže od zadate vrednosti do nule, tj. događaji se oduzimaju

od podešene vrednosti. Kada brojač dostigne nulu njegovi kontakti menjaju stanje. Većina PLC-ova nude brojanje naniže.

2. Brojači naviše (CU) broje od nule do zadate vrednosti, tj. događaji se sabiraju sve dok broj ne dostigne zadatu vrednost. Kada brojač dostigne podešenu vrednost njegovi kontakti menjaju stanje.

Različiti proizvođači PLC-ova se ophode prema brojačima na različite načine. Neki broje naniže (CTD) ili naviše (CTU), i resetuju odnosno tretiraju brojač kao da je namotaj relea odnosno izlaz prečage. Na ovaj način brojači se mogu razmatrati kao da se sastoje od dva osnovna elementa: jedan namotaj relea za brojanje ulaznih impulsa i jedan za resetovanje brojača, odgovarajući kontakti brojača koji se koriste u drugim prečagama.

Page 16: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

ProgramiranjeProgramiranje brojačabrojačaNa sledećoj slici su prikazani programi i lista naredbi kod kod različitih proizvođača.

(a) Mitsubishi, (b) Siemens, (c) Toshiba, (d) Allen-Bradley programi

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 17: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Primer brojanja naviše i nanižePrimer brojanja naviše i naniže

Moguće je programirati brojače koji imaju mogućnost da broje naviše i da broje naniže. Razmotrimo zadatak brojenja proizvoda kako dolaze na pokretnu traku i kako je napuštaju, ili možda automobile kako ulaze na parkiralište i kako ga napuštaju. Izlaz se okida ako broj objekata/automobila koji ulaze je neki broj veći od broja koji napuštaju, tj. broj na parkiralištu je dostigao vrednost zasićenja. Izlaz može biti osvetljeni znak ’Nema praznih mesta’. Pretpostavimo da koristimo brojač naviše za objekte koji ulaze i brojač naniže za objekte koji izlaze.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

(a) Korišćenje borjača naviše i naniže, (a) Korišćenje borjača naviše i naniže, (b) Allen-Bradley program(b) Allen-Bradley program

Page 18: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Slika (a) prikazuje osnovni oblik ladder programa za takvu jednu primenu. Kada objekat uđe, on daje impuls na ulazu In 1. Ovaj povećava sadržaj brojača za jedan. Stoga svaki objekat koji uđe povećava akumuliran sadržaj za jedan. Kada jedan objekat odlazi on daje ulaz na In 2. Ovaj oduzima broj za jedan. Stoga se svaki objekat koji napušta oduzima od akumuliranog sadržaja za jedan. Kada akumulirana vrednost premaši zadatu vrednost, izlaz Out 1 se uključuje. Slika (b) prikazuje implementaciju ovog programa sa Allen-Bradley programom.

Primer brojanja naviše i nanižePrimer brojanja naviše i naniže

(a) Korišćenje borjača naviše i naniže, (a) Korišćenje borjača naviše i naniže, (b) Allen-Bradley program(b) Allen-Bradley program

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 19: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

POMERAČKI REGISTRIPOMERAČKI REGISTRI

Pojam registar se koristi za elektronski uređaj u kome se podaci mogu čuvati. Unutrašnji rele je takav uređaj. Pomerački registar je nekoliko unutrašnjih relea grupisanih zajedno koji omogućuje pomeranje memorisanih bitova sa jednog relea na drugi. Ovo poglavlje govori o pomeraačkim registrima i kako oni mogu biti korišćeni gde se zahteva redosled operacija ili da obeleži posebne delove u sistemu proizvodnje.

Registar je nekoliko unutrašnjih relea zajedno grupisanih, obično 8, 16 ili 32. Svaki unutrašnji rele je ili otvoren ili zatvoren, i ova stanja bivaju označena kao 0 i 1. Pojam bit se koristi za svaki takav binarni digit. Registri mogu da se koriste za smeštanje podataka iz ulaznih izvora drugačijih od jednostavnih on-off uređaja kao što su prekidači.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 20: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Kod pomeračkih registara moguće je pomerati smeštene bitove. Pomerački registri zahtevaju tri ulaza, jedan da učita podatke na prvo mesto u registru, jedan kao naredba za pomeranje podataka za jedno mesto i jedan za resetovanje ili čišćenje registra od podataka.

Zajedničko grupisanje unutrašnjih relea koji formiraju pomerački registar se radi automatski so strane PLC-a kada je funkcija pomeračkog registra izabrana. Kod Mitsubishi PLC-a, ovo se radi koristeći programski kod SFT (shift) na osnovu broja unutrašnjih relea koji treba da bude prvi u registarskom nizu. Ovo onda prouzrokuje blok relea, koji počinje od tog početnog broja, a koji je rezervisan za pomerački registar.

POMERAČKI REGISTRIPOMERAČKI REGISTRI

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 21: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Primer primene pomeračkog registraPrimer primene pomeračkog registraJedna od primena pomeračkih registara je za održavanje razmaka između predmeta. Na

primer, semzor se može koristiti da detektuje neispravne predmete koji se kreću duž pokretne trake i za održavanje razmaka između predmeta tako da kada dostigne odgovarajuću tačku mehanizam za izbacivanje se aktivira da ga ukloni sa pokretne trake. Slika ispod ilustruje ovo uređenje i tip ladder programa koji se može koristiti.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Održavanje razmaka između neispravnih Održavanje razmaka između neispravnih predmetapredmeta

Page 22: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Primer primene pomeračkog registraPrimer primene pomeračkog registra

Svaki put kada se otkrije neispravan predmet, impulsni signal se javlja na ulaz X400. On unosi 1 u pomerački registar na unutrašnjem releu M140. Kada se predmeti pomeraju, dali neispravni ili ne, postoji impuls na ulazu X401. On pomera 1 duž registra. Kada 1 dospe na unutrašnji rele M144, on aktivira izlaz Y430 i mehanizam za izbacivanje uklanja neispravan predmet sa transportne trake. Kada je predmet uklonjen javlja se ulaz na X403. On se koristi da resetuje mehanizam tako da se ne izbacuju nadalje predmeti sve dok se signal za izbacivanje ne javi na M144. On to čini dajući izlaz na unutrašnji rele M100 koji baferuje ulaz X403 i isključuje izlaz za izbacivanje Y430. Ovo su samo osnovni elementi sistema. Praktični sistem obuhvata druge unutrašnje relee kako bi se osiguralo da je mehanizam za izbacivanje isključen kada se ispravni predmeti kreću duž pokretne trake i takođe da onemoguće ulaz na X400 kada se javlja pomeranje.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 23: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Izgled mikrokontrolera AT89S8253

MikrokontrolerMikrokontroler AT89S8253 AT89S8253

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 24: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Kompatibilan je sa Microsoft-51 procesorom

12KB fleš memorija 2KB EEPROM memorija 64-bajtna korisnička matrica Napon napajanja od 2.7V do 5.5 V Frekvencija od 0 do 24 MHz Memorijsko zaključavanje u 3 nivoa 256 x 8-bitni unutrašnji RAM 32 I/O linije za programiranje Tri 16-bitna Tajmera/Brojača 9 generatora prekida Poboljšani UART serijski port sa

centriranjem detekcije greške i automatskim prepoznavanjem adrese

Poboljšani SPI serijski interfejs

Male snage napajanja Uspostavljanje prekida u niskom

režimu rada Programabilni tajmeri Dvostruki pokazivač podataka Isključivanje pomoću znaka (Power-

off Flag) Fleksibilni ISP programator (Page

mode: 64 byte/page za kodnu memoriju, 32 byte/page za memoriju podataka)

4-nivo poboljšani kontrolor prekida Programabilna x2 clock opcije Unutrašnji Power-on Reset 42-pin PDIP model kućišta za

redukovanje EMS emisije Zelena (Pb/Holide-free) opcija

kućišta

MikrokontrolerMikrokontroler AT89S8253 AT89S8253

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Karakteristike mikrokontrolera AT89S8253Karakteristike mikrokontrolera AT89S8253

Page 25: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Mikrokontroler AT89S8253Mikrokontroler AT89S8253

Na slici je prikazan blok dijagram mikrokontrolera AT89S8253. Ovde se vide komponente kao što su aritmetičko-logička jedinica (ALU) sa parom registara (TMP1, TMP2) za privremeno upisivanje podataka, akumulator (ACC) sa pomoćnim registrom B, statusni registar (PSW), registar naredbi sa dekoderom, programski brojač (PC) i registar za inkrementiranje (povećanje za 1) programskog brojaća (PC-incrementer).

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Blok dijagram mikrokontrolera AT89S8253Blok dijagram mikrokontrolera AT89S8253

Page 26: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Hardverska realizacijaHardverska realizacija

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Blok šema elemenata smeštenih na PCB pločiBlok šema elemenata smeštenih na PCB ploči

Na sledećim slikama date su blok šeme elemenata smeštenih na PCB pločiNa sledećim slikama date su blok šeme elemenata smeštenih na PCB ploči i raster ploči kao i izgled realizovanog hardvera.

Page 27: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Hardverska realizacijaHardverska realizacija

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Blok šema elemenata smeštenih na raster pločiBlok šema elemenata smeštenih na raster ploči

Page 28: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Izgled realizovanog hardveraIzgled realizovanog hardvera

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 29: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Definisanje projektnog zadatka Definisanje projektnog zadatka

Na hardveru, konkretno na raster ploči, postoje osam push button-a (označenih sa P1, P2, P3, P4, P5, P6, P7 i P8 respektivno), kao i osam zelenih LED dioda (označenih sa D1, D2, D3, D4, D5, D6, D7 i D8 respektivno). Za projektni zadatak upotrebljeno je pet push button-a i svih osam LED dioda.

Projektni zadatak je definisan u sledećih pet koraka:

kada se pritisne push button P1, dioda D1 se pali i svetli 2 s i onda se gasi;

kada se pritisne push button P2, posle 5 s dioda D2 se pali i svetli 2 s nakon čega se gasi;

kada se pritisne push button P3 i drži se pritisnutim, dioda D3 svetli, a kada se pusti dioda se gasi;

kada se pet puta pritisne push button P4, dioda D4 se pali, a kada se ponovo pet puta pritisne push button P4, dioda D4 se gasi;

kada se pritisne push button P5, onda se naizmenično pale diode D5, D6, D7, D8, pa zatim opet D5, D6, D7, D8, i ovaj ciklus se ponavlja dokle god se ponovo ne pritisne push button P5 i neko kratko vreme zadrži pritisnutim.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 30: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Softverska realizacijaSoftverska realizacijaNapisani program startuje sa glavnim programom (main), napisanim u C51 jeziku, u kome je

proces inicijalizacije i ispitivanja pina P3.0. Za P3.0=1 aktivira se softver koji realizuje projektni zadatak paljenja i gašenja dioda što je u programu pokriveno fajlovim main.c, main_LED.src i delay.src. Delovi programa kojima je je pokrivena laboratorijska vežba su main.c, svetlo_zgrada.c i prekid_3min.c.

//*Deo programa, u Keil-u označen kao fajl main.c u kome se vrši ispitivanje pina P3.0*//

#include <Definicija.h> #include <REG8253.H> extern code

Init_Timer2(); extern code Wait(); extern code

Floor_Light(); sbit Taster = P3^0; bit Status_modul; void main (void) { Init_Timer2(); Diode = 0x00; while (1) {

if (Taster==0) { Status_modul =1; Floor_Light();

while ( (Tasteri == 0xff)); //while ( !(Tasteri & 0x00) );

} else { Status_modul = 0; Wait(); } } }

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 31: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

//*Deo programa, u Keil-u označen kao fajl //*Deo programa, u Keil-u označen kao fajl main_LED.srcmain_LED.src koji se odnosi na paljenje i gašenje dioda*// koji se odnosi na paljenje i gašenje dioda*//

$NOMOD51 #include <REG8253.H> #include <Definicija.h> ; /***********************************************/ //NOVA VREDNOST JE 3F23hex odnosno 16163 dec

odnosno 49 373 * 1,0127 us = 50000,0371 us == 50 ms

#define MSB_reload_value 0x4B /* msb reload value za generisanje vremenskog prekida na 50 ms */

#define LSB_reload_value 0xFD /* lsb reload value za generisanje vremenskog prekida na 50 ms */

//#define MSB_reload_value 0x3F /* msb reload value za generisanje vremenskog

prekida na 50 ms */

//#define LSB_reload_value 0x23 /* lsb reload value za generisanje vremenskog

prekida na 50 ms */

#define Led_dioda_1_vreme 40 /*vreme od 40*50ms = 2s za diodu D1*/

#define Led_dioda_2_vreme 100 /*vreme od 100*50ms = 5s za diodu D2 nakon detektovanja da je taster pritisnut*/

#define Led_dioda_2_vreme_svetli 40 /*vreme od 40*50ms = 2s za diodu D2*/

EXTRN CODE (DELAY,Prekid_3_min) EXTRN BIT (Status_modul) PUBLIC Init_Timer2, Wait Flegovi segment bit Magacin segment idata rseg Magacin stack: DS 10

rseg Flegovi LED1: dbit 1 LED2: dbit 1

LED3: dbit 1 LED4: dbit 1 LED5: dbit 1 LED6: dbit 1 LED7: dbit 1 LED8: dbit 1 cseg at 002bh jmp Timer2_Interrupt /*Procedura za ispitivanje statusa Tastera

definisana kroz petlju sto pruza mogucnost generisanja procedure za bilo koji Taster i odgovarajucu diodu*/

Wait: jnb Taster_5,$ Wait1: mov a,Tasteri cjne

a,#0xFF,Taster_pritisnut jmp Wait1 Pritisnut: jnb Taster_5,Wait Ret /*Ispitivanje koji je Taster pritisnut i

preduzimanje odogovarajuceg algoritma za dati taster*/

Taster_pritisnut: Ispitaj_1: jb Taster_1,Ispitaj_2 jnb Taster_1,$ setb Led_1 setb TR2 setb LED1 mov R3,#Led_dioda_1_vreme jmp Idle Ispitaj_2: jb Taster_2,Ispitaj_3 jnb Taster_2,$ setb TR2 setb LED2 mov R3,#Led_dioda_2_vreme jmp Idle Ispitaj_3: jb Taster_3,Ispitaj_4 setb Led_3 jnb Taster_3,$ clr Led_3

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 32: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Ispitaj_4: jb Taster_4,Ispitaj_5 jb LED4,Gasenje inc R0 jnb Taster_4,$ cjne R0,#5,Wait setb LED4 mov r0,#0 setb Led_4 jmp Wait Gasenje: inc R0 jnb Taster_4,$ cjne R0,#5,Wait clr LED4 mov r0,#0 clr Led_4 Ispitaj_5: mov r0,#0 jb Taster_5,Ispitaj_6 jnb Taster_5,$ inc r4 cjne r4,#2,Next mov r4,#0 jb Taster_5, Wait //jmp

Wait Next: call Setajuca Ispitaj_6: jmp Wait Setajuca: setb Led_5 mov r6,#0x07 mov r7,#0xD0 call DELAY clr Led_5 call Pritisnut setb Led_6 mov r6,#0x07 mov r7,#0xD0 call DELAY clr Led_6 call Pritisnut setb Led_7 mov r6,#0x07 mov r7,#0xD0 call DELAY clr Led_7

call Pritisnut setb Led_8 mov r6,#0x07 mov r7,#0xD0 call DELAY clr Led_8 call Pritisnut jmp Setajuca

/************************************************/ Init_Timer2: mov TH2,#MSB_reload_value

; /* Init msb_value */

mov TL2,#LSB_reload_value ; /* Init lsb_value

*/ mov

RCAP2H,#MSB_reload_value ;/* reload msb_value */

mov RCAP2L,#LSB_reload_value ;/* reload lsb_value */

setb EA ;/* interupt enable

*/ setb ET2

; /* enable timer2 interrupt */

ret /************************************************/

Timer2_Interrupt: clr TF2 //ubaciti kod za stepenisno

//svetlo tako sto ce da se // koristi flag koji ce da //se postavi na 1 kada se //koristi C kod

jnb Status_modul,Next_code call Prekid_3_min jmp Kraj Next_code: jnb LED1,Ispitaj_LED2 djnz R3,Kraj clr LED1 clr Led_1 clr Led_2 clr TR2 jmp Kraj

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 33: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Ispitaj_LED2: jnb LED2,Kraj djnz R3,Kraj clr LED2 mov R3,#Led_dioda_2_vreme_svetli setb Led_2 setb LED1 jmp Kraj Kraj: reti

/*************************************************************************/ Idle: mov PCON,#0x01 jb LED1, Idle jmp Wait

/*************************************************************************/ end

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 34: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

//*Deo programa, u Keil-u označen kao fajl //*Deo programa, u Keil-u označen kao fajl delay.srcdelay.src koji se odnosi na paljenje i gašenje dioda*// koji se odnosi na paljenje i gašenje dioda*//

NAME EXAMPLE

?PR?_DELAY_LOOP_Wait?EXAMPLE SEGMENT CODE PUBLIC DELAY

RSEG ?PR?_DELAY_LOOP_Wait?EXAMPLE

DELAY: CLR A MOV R5,A MOV R4,A ?C0001: SETB C MOV A,R5 SUBB A,R7 MOV A,R4 SUBB A,R6 JNC ?C0007 CLR A MOV R3,A MOV R2,A ?C0004: INC R3 CJNE R3,#00H,?C0008 INC R2 ?C0008: MOV A,R3 XRL A,#079H ORL A,R2 JNZ ?C0004 ?C0003: INC R5 CJNE R5,#00H,?C0009 INC R4 ?C0009: SJMP ?C0001 ?C0007: RET

END

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 35: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

//*Deo programa, u Keil-u označen kao fajl //*Deo programa, u Keil-u označen kao fajl svetlo_zgrada.csvetlo_zgrada.c koji se odnosi na stepenišno osvetljenje*// koji se odnosi na stepenišno osvetljenje*//

#include <REG8253.H> #include <Definicija.h> //extern code Loop_Delay(void); void Section1(void); void Section2(void); void Section3(void); void Section4(void); void Section5(void); void Section6(void); void Section7(void); void Section8(void); unsigned char Temp; int data Broj; bit Status_flag; bit Status_flag_1; void Floor_Light (void) { //TR2 = 0; if (Tasteri != 0xff) { Temp = ~Tasteri; switch(Temp) { case 1: Section1(); break; case 2: Section2(); break; case 4: Section3(); break; case 8: Section4(); break; case 16: Section5(); break;

case 32: Section6(); break; case 64: Section7(); break; case 128: Section8(); break; } } } void Section1(void) { if (Status_flag ==1) { while ((P2_0 == 0)); P1 |= 0x07; Broj = 1; //LEDStatus =

0x07; Status_flag_1 =1; Status_flag =0; // Loop_Delay(); // Tasteri = 0xff; } else { while ((P2_0 == 0)); P1 =0x07; Status_flag =1; TR2 = 1; //Tasteri = 0xff; } }

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 36: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

void Section2(void) { if (Status_flag ==1) { while ((P2_1 == 0)); P1 |= 0x0f; Broj = 2; //LEDStatus = 0x0f; Status_flag_1 =1;

Status_flag =0; //Loop_Delay(); //Tasteri = 0xff; } else { while ((P2_1 == 0)); P1 =0x0f; Status_flag =1; TR2 = 1; //Tasteri = 0xff; } } void Section3(void) { if (Status_flag ==1) { while ((P2_2 == 0)); P1 |= 0x1f; Broj = 3; //LEDStatus =

0x1f; Status_flag_1 =1; Status_flag =0; //Loop_Delay(); //Tasteri = 0xff; } else { while ((P2_2 == 0)); P1 =0x1f; Status_flag =1; TR2 = 1; //Tasteri = 0xff; } }

void Section4(void) { if (Status_flag ==1) { while ((P2_3 == 0)); P1 |= 0x3e; Broj = 4; //LEDStatus = 0x3e; Status_flag_1 =1; Status_flag =0; //Loop_Delay(); //Tasteri = 0xff; } else { while ((P2_3 == 0)); P1 =0x3e; Status_flag =1; TR2 = 1; //Tasteri = 0xff; } } void Section5(void) { if (Status_flag ==1) { while ((P2_4 == 0)); P1 |= 0x7c; Broj = 5; //LEDStatus =

0x7c; Status_flag_1 =1; Status_flag =0; //Loop_Delay(); //Tasteri = 0xff; } else { while ((P2_4 == 0)); P1 =0x7c; Status_flag =1; TR2 = 1; //Tasteri = 0xff; } }

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 37: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

void Section6(void) { if (Status_flag ==1) { while ((P2_5 == 0)); P1 |= 0xf8; Broj = 6; //LEDStatus =

0xf8; Status_flag_1 =1; Status_flag =0; //Loop_Delay(); //Tasteri = 0xff; } else { while ((P2_5 == 0)); P1 =0xf8; Status_flag =1; TR2 = 1; //Tasteri = 0xff; } } void Section7(void) { if (Status_flag ==1) { while ((P2_6 == 0)); P1 |= 0xf0; Broj = 7; //LEDnew =

0xf0; Status_flag_1 =1; Status_flag =0; //Loop_Delay(); //Tasteri = 0xff; } else { while ((P2_6 == 0)); P1 =0xf0; Status_flag =1; TR2 = 1; //Tasteri = 0xff; } }

void Section8(void) { if (Status_flag ==1) { while ((P2_7 == 0)); P1 |= 0xe0; Broj = 8; //LEDnew =

0xe0; Status_flag_1 =1; Status_flag =0; //Loop_Delay(); //Tasteri = 0xff; } else { while ((P2_7 == 0)); P1 =0xe0; Status_flag =1; TR2 = 1; //Tasteri = 0xff; } }

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 38: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

//*Deo programa, u Keil-u označen kao fajl prekid_3min.c koji se odnosi na stepenišno osvetljenje*//

#include <Definicija.h> #include <REG8253.H> extern data Diode_old; extern data Broj; extern bit Status_flag; extern bit Status_flag_1; int Counter_1; int Counter_2; void Prekid_3_min (void) { // static unsigned char

tab[8]={0x07,0x0f,0x1f,0x3e,0x7c,0xf8,0xf0,0xe0}; // unsigned char *point; // point = tab; if (Status_flag_1 ==1) { if (++Counter_1 == 3600) { switch(Broj) { case 1: P1 = 0x07; //Section1(); Counter_1 = 0; break; case 2: P1 = 0x0f; //Section2(); Counter_1 = 0; break; case 3: P1 = 0x1f; //Section3(); Counter_1 = 0; break; case 4: P1 = 0x3e; //Section4(); Counter_1 = 0; break;

case 5: P1 = 0x7c; //Section5(); Counter_1 = 0; break; case 6: P1 = 0xf8; //Section6(); Counter_1 = 0; break; case 7: P1 = 0xf0; //Section7(); Counter_1 = 0; break; case 8: P1 = 0xe0; //Section8(); Counter_1 = 0; break; } //P1 = *(point + Broj - 1); */ } else if (++Counter_2 == 3600) { P1 = 0; Counter_2 = 0; Counter_1 = 0; TR2 = 0; } } else if (++Counter_1 == 3600) { P1 = 0; Counter_1 = 0; TR2 = 0; } }

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 39: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Laboratorijska vežbaLaboratorijska vežba

Konkretno za ovu vežbu zgrada ima osam spratova, a uslovi za realizaciju su sledeći:

Kada se na nekom do spratova, recimo X-tom spratu, pritisne prekidač, svetlo se pali na X-tom, na X+1, na X+2, na X-1, i na X-2 sptatu. Svetlo mora biti upaljeno 3 minuta.

Ako se u međuvremenu pritisne prekidač na nekom drugom spratu, onda se svetlo pali na tom spratu i na dva sprata iznad i na dva sprata ispod tog sprata. Ukoliko na nekom do spratova već gori svetlo a obuhvaćen je pritiskanjem drugog prekidača onda se njegovo trajanje svetla resetuje na novih 3 minuta.

Na spratovima na kojima gori svetlo, a obuhvaćeni su samo prvim pritiskom prekidača a nisu obuhvaćeni drugim pritiskom prekidača, svetlo gori dok ne istekne prvih 3 minuta (oni se ne resetuju).

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Zadatak laboratorijske vežbe ogleda se u realizaciji stepenišnog osvetljenja zgrade.

Page 40: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

Laboratorijska vežbaLaboratorijska vežba

Nakon inicijalizacije programa i ispitivanja pina P3.0 ulazi se u odgovarajući projektni zadatak (paljenje i gašenje LED dioda ili stepenišno osvetljenje, a način na koji se to radi je opisan napred u tekstu ovog rada). Za slučaj projektnog zadatka ’’Stepenišno osvetljenje’’ program ispituje status tastera koji su hardverski vezani na port 2. Za slučaj da ni jedan taster nije pritisnut program je u statusu ’’čekanja’’. Nakon detektovanja da je neki od tastera pritisnut, u skladu sa definisanim projektnim zadatkom, pali se dioda odgovarajućeg tastera i po dve diode gore i dole. Program krene sa merenjem vremena od 3 minuta, kako je i definisano trajanje upaljenih dioda iz projektnog zadatka. Merenje vremena se realizuje pomoću tajmerskog prekida od 50 ms i brojača od 3600 tajmerskih prekida. Ako se u nekom trenutku pritisne neki drugi tasteer pali se dioda za taj taster i po dve diode gore i dole. Merenje vremena se vrši na prethodno objašnjen način s’tim što se merenje vremena za diode koje su već gorele pritiskanjem prvog prekidača, a obuhvaćene su i pritiskanjem drugog prekidača resetuje na novih 3 minuta.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Realizacija laboratorijske vežbe izvršava se na sledeći način:

Page 41: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

ZaključakZaključak

– Prvo poglavlje ovog projekta odnosi se na Programibilne logičke kontrolere ili PLC-ove. Obrađena su pitanja šta je to programabilni logički kontroler, zatim, relejna lestvičasta logika, PLC sistemi, PLC tipovi, programiranje ladder logike PLC-a, kao i same prednosti PLC ladder logike u odnosu na konvencionalnu relejnu logiku.

– Drugo poglavlje obuhvata razmatranje Tajmera, Brojača i Pomeračkih registara. Ovde je detaljno objašnjen pojedinačno svki od njih, kao i manipulisanje podacima sa kratkim primerima.

– Treće poglavlje se bavi mikrokontrolerom AT89S8253. Opisane su njegove karakteristike, konfiguracija i pinovi, dat je blok dijagram, i objašnjen je Tajmer 2 ovog mikrokontrolera. Uz priloženi CD dat je i datashit AT89S8253.pdf u kome je on detaljnije opisan.

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 42: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

– Červrto poglavlje obuhvata hardversku realizaciju ovog projekta. Prikazane su ploče sa rasporedom korišćenih elemenata, i data je tabela sa korišćenim komponentama.

– Peto poglavlje se odnosi na softversku realizaciju. Objašnjeno je korišćenje programa Keil uVision 3, u kome je napisan program, definisan je projektni zadatak, dat je softverski kod i objašnjeno je upisivanje koda u mikrokontroler, odnosno njegovo flešovanje.

– Šesto poglavlje obuhvata laboratorijsku vežbu. Izvršeno je definisanje i detaljno objašnjenje laboratorijske vežbe.

– Na priloženom CD-u dati su Datasheet-ovi za AT89S8253, 74HC373 i TS7805.

ZaključakZaključak

Student: Milan Gikić, 9596Student: Milan Gikić, 9596

Page 43: Primena tajmera, brojača i pomeračkih registara u PLC-ovima

BiografijaBiografija

Ime Milan

Prezime Gikić

Datum rođenja 30.11.1979.

Adresa stanovanja Vojvode Stepe 1, Lebane

E-mail adresa [email protected]

ObrazovanjeGimnazija ’Stojan Ljubić’

Smer Telekomunikacije

Poznavanje softveraWindows okruženje, MS Office, Adobe Photoshop, CorelDRAW, OrCAD

InteresovanjaSport, računari

Student: Milan Gikić, 9596Student: Milan Gikić, 9596