Elektronski fakultet Niš Katedra za elektroniku. SIMULACIJA PLC KONTROLERA PREKO MIKROKONTROLERA PIC16F877A. MILAN MLADENOVI Ć 11734 ALEKSANDRA PETROVIĆ 10600 IVAN STOJANOVIĆ 10666. Standardi za prenos podataka. TIA/EIA-232-F TIA/EIA-423-B TIA/EIA-422-B TIA/EIA-485 SCSI FireWire
01 / 57SIMULACIJA PLC KONTROLERA PREKO MIKROKONTROLERA PIC16F877A
1 / 17
Télécharger la présentation
SIMULACIJA PLC KONTROLERA PREKO MIKROKONTROLERA PIC16F877A
Une image / un lien ci-dessous est fourni (tel quel) pour télécharger la présentation
Politique de téléchargement : le contenu du site vous est fourni TEL QUEL pour votre information et votre usage personnel ; il ne peut être vendu, concédé sous licence ni partagé sur d’autres sites sans l’accord de son auteur.Le contenu vous est fourni TEL QUEL, pour votre information et votre usage personnel uniquement.Téléchargez la présentation en cliquant sur ce lien.Lors du téléchargement, si vous ne parvenez pas à télécharger une présentation, l’éditeur a peut-être supprimé le fichier de son serveur.Pendant le téléchargement, si vous ne parvenez pas à obtenir une présentation, le fichier a peut-être été supprimé par l’éditeur.
Standardi za prenos podataka • TIA/EIA-232-F • TIA/EIA-423-B • TIA/EIA-422-B • TIA/EIA-485 • SCSI • FireWire • USB
Standard TIA/EIA-232-F • Definisan je u ANSI specifikaciji, • Maksimalni protok podataka je 20kbs, mada sada postoji veliki broj softverskih rešenja koja postižu 116 kbps i više, • Logičkoj nuli odgovara stanje "SPACE", koji se nalazi u opsegu napona +3V do +25V, • Logičkoj jedinici odgovara stanje "MARK", koji je u opsegu -3V do -25V, • Naponski nivo između -3 do + 3 V nije definisan, • Napon na kolu ne sme da pređe 25V u odnosu na masu, • Struja kola ne sme pređe vrednost 500 mA.
PIC16F877A – karakteristike/1 • RISC CPU visokih performansi • 35 instrukcija obima jedne reči • Radna frekvencija do 20 MHz • Sve instrukcije su jednocikluske, sem instrukcija grananja koje su dvocikluske • Trajanje taktnog intervala 200 ns (pri frekvenciji 20 MHz) • Opkôd je obima 14 bita • Hardverski magacin (stack) ima osam nivoa • Postoje tri načina adresiranja (direktno, indirektno i relativno) • Programska flash memorija je kapaciteta 8 k X 14-bitnih reči • Memorije za podatke (RAM) je kapaciteta 368 X 8 bita • Memorije za podatke (EEPROM) je kapaciteta 256 X 8 bita • Prekidi (maksimalno 14 izvora prekida) • šest ulazno-izlaznih portova (A, B, C, D i E)
PIC16F877A – karakteristike/2 • Timer0 (TMR0): osmobitni tajmer/brojač_događaja • Timer1 (TMR1): šesnaestobitni tajmer/brojač_događaja • Timer2 (TMR2): osmobitni tajmer/brojač_događaja • Serijska komunikacija: MSSP, USART • Paralelna 8-bitna komunikacija: PSP • ICSP (In Circuit Serial Programing) preko samo dva izvoda • Analogni komparatorski modul sa programabilnim referentnim naponima • 8-kanalni 10-bitni ADC (Analog-to-Digital Converter, analogno/ digitalni konvertor) • Power-on Reset - reset pri uključenju napajanja (POR) • Power-up timer - unošenje kašnjenja nakon uključenja napajanja (PWRT) • Oscillator Start-up Timer - unošenje kašnjenja neposredno po stabilizovanju radne frekvencije oscilatora (OST)
PIC16F877A – karakteristike/3 • Sleep mode - režim rada sa veoma malim utroškom energije • Watchdog tajmer sa sopstvenim integrisanim RC oscilatorom za nezavisni rad • Izbor tipa oscilatora (RC, XT, HS, LP) • 100000 ciklusa Write/Erase programske memorije • 1000000 ciklusa Write/Erase memorije za podatke EEPROM • Trajanje podataka u EEPROM duže od 40 godina • Radni napon može da bude u opsegu od 2V do 5.5V • Mala potrošnja energije: • <0.6 mA pri naponu od 3V i radnoj frekvenciji od 4 MHz • 20µA pri naponu od 3V i radnom taktu od 32kHz • <1µA u standby režimu rada
Kombinovanje lečeva i flip-flopova • Postoje dva načina na koje se kombinujulečevi kod flip-flopova. • Kod prvog načina lečevi sekombinuju tako da se: • Važećim ulaznim podacima koji su prisutnina ulazima flip-flopa smatraju samo oni koji su prisutniu trenutku kada je važeći i upravljački signal; • Stanje flip-flopa menja samo kada stanje upravljačkogimpulsa nije aktivno. Ovaj tip flip-flopa se nazivamaster-slave. Kod drugog načina važi sledeći princip. Flip-flop se okida samo u toku promene taktnog impulsa sa '0' na '1' (ili sa '1' na '0'), a u ostatku perioda promene nisu dozvoljene uključujući i period taktnog signala. Ovaj flip-flop se naziva ivično-okidani flip-flop.
PLC kontroleri - definicija • PLC - namenski elektronski uređaj, zasnovan na mikroprocesoru, koji je u mogućnosti da obavlja brojne tipove upravljačkih funkcija različitog nivoa složenosti • PLC - industrijski računarčiji su hardver i softver posebno prilagođeni radu uindustrijskim uslovima, a koji se može lako programirati i ugrađivati u nove i postojeće industrijske sisteme.
PLC kontroleri - opis • PLC - (Programmable) - označava mogućnost programiranja. Program rada se unapred priprema i puni u permanentumemoriju PLC kontrolera. PLC program se razvija u jezikulestvičastih (ladder) dijagrama, koji je nastao pougledu natzv. relejne šeme. • PLC - (Logic) - jedna od glavnih osobina PLC kontrolera je mogućnost obavljanja logičkih (Bulovih) funkcija. PLC generiše diskretne (digitalne) izlazne signale u funkciji (logičkoj) diskretnih ulaznih signala - karakteristično za prvobitne tipove PLC kontrolera. Savremeni PLC-ovi, pored logičkih mogu da obavljaju: aritmetičke operacije, odmeravaju vremenske intervale, prebrojavaju događaje, a prihvataju i generišu, pored diskretnih, i analogne signale. • PLC (Controller) - Glavna primena u industriji (proizvodnoj) gde se koristi za automatsko upravljanje procesima - prati ključne parametre procesa (posredstvom priključenih senzora i davača, i shodno memorisanomprogramu, generiše pobudu kojom deluje na proces posredstvom aktuatora
Simulacija PLC kontrolera • PLC kontroler je simuliran preko PIC16F877A mikrokontrolera, • Mikrokontroler ima takt od 4MHz i napaja se preko linearnog regulatora napona LM7805, • U cilju kasnijeg proširenja uređaja, postoji mogućnost povezivanja mikrokontrolera sa računarom (preko integrisanog kola MAX232), a komunikacija je bez handshaking-a.
PLC kontroler – funkcije pinova mikrokontrolera • Organizacija pinova mikrokontrolera je sledeća: • PC7 i PC6 su pinovi za eventualnu komunikaciju sa PC računarom, • PC5-PC2 predstavljaju ulaze 2 dvoulazna logička kola, • PB7-PB5 su ulazi flip-flopova (D i JK ili T i JK), • PB4-PB1 su ulazi multipleksera, • PB0 je izlaz multipleksera, • PD7 je ulaz demultipleksera, • PD6-PD5, PC1-PC0 su izlazi demultipleksera, • PD4-PD3 su izlazi flip-flopova, • PD2-PD1 su izlazi logičkih kola, respektivno, • PD0 signalizira promenu takta, • PA5-PA3 su kontrolišući pinovi i definišu 8 različitih kombinacija, • PA1-PA0 su selektorski ulazi za multiplekser i demultiplekser.
Kôd u mikroC-u • int k = 0; // Definisanje varijabli • char AX, BX, CX, DX, EX, FX, JK, TX, Q1, Q2, Q3 = 0; • char clk, clkk = 1; • void main() { • TRISA = 0b111111; // Definisanje i inicijalizacija • PORTA = 0b000000; // pinova PORTOVA A, B, C i D • TRISB = 0b11111110; • PORTB = 0b00000000; • TRISC = 0b10111100; • PORTC = 0b00000000; • TRISD = 0b10000000; • PORTD = 0b00000000; • CMCON = 7; • ADCON1 = 0x06; // Definisanje pinova A porta // kao digitalnih
Kôd u mikroC-u • do { // Formiranje Beskonacne Petlje • if (k == 0) { // Prilikom starta, tj. prilikom prvog • // obilaska petlje - kasnjenje je dve • Delay_ms(2000); // sekunde • } • k++; • delay_ms(400); // Takt za flip-flopove je 0,4 sekunde • clkk = clk; • // Opis funkcije I kola • AX = (PORTC.F5 && PORTC.F4); • // Opis funkcije ILI kola • BX = (PORTC.F5 || PORTC.F4); • // Opis funkcije I kola • CX = (PORTC.F3 && PORTC.F2); • // Opis funkcije ILI kola • DX = (PORTC.F3 || PORTC.F2);
Kôd u mikroC-u • // Opis funkcije EXILI kola • EX = ((PORTC.F5 && !(PORTC.F4)) || (!(PORTC.F5) && PORTC.F4)); • // Opis funkcije EXNILI kola • FX = ((PORTC.F5 && PORTC.F4) || (!(PORTC.F5) && !(PORTC.F4))); • if (clk==1) { // Ako je ivica takta rastuca... • PORTD.F0 = 1; • // Opis funkcija JK i T flip-flopa • Q1 = JK; • JK = ((PORTB.F6 && (!Q1)) || ((!(PORTB.F5) && Q1))); • Q2 = TX; • TX = ((!(PORTB.F7) && Q2) || (PORTB.F7 && (!Q2))); • } • else if (clk==0) { // Ako je ivica takta opadajuca ... • PORTD.F0 = 0; • } • // Implementacija logike sa Slike 7-7 (1) • if ((PORTA.F5==0) && (PORTA.F4==0) && (PORTA.F3==0)) { • PORTC.F1 = !AX; • PORTC.F0 = !CX;
Kôd u mikroC-u • // Implementacija logike sa Slike 7-8 (2) • else if ((PORTA.F5==0) && (PORTA.F4==0) && (PORTA.F3==1)) { • PORTD.F1 = !BX; • PORTD.F2 = !DX; • // Funkcija MUX 2/1 • if (PORTA.F0==0) { • PORTB.F0 = PORTB.F4; • PORTD.F6 = PORTB.F4; • } • if (PORTA.F0==1) { • PORTB.F0 = PORTB.F3; • PORTD.F5 = PORTB.F3; • } • PORTD.F3 = JK; // JK flip-flop • PORTD.F4 = TX; // T flip-flop • } • else if ((PORTA.F5==0) && (PORTA.F4==1) && (PORTA.F3==0)) { • PORTD.F1 = EX; • PORTD.F2 = FX;
Kôd u mikroC-u • // Funkcija MUX 2/1 • if (PORTA.F0==0) { • PORTB.F0 = PORTB.F4; • PORTD.F6 = PORTB.F4; • } • if (PORTA.F0==1) { • PORTB.F0 = PORTB.F3; • PORTD.F5 = PORTB.F3; • } • PORTD.F3 = JK; // JK flip-flop • PORTD.F4 = TX; // T flip-flop • } • else if ((PORTA.F5==0) && (PORTA.F4==1) && (PORTA.F3==1)) { • PORTD.F1 = AX; • PORTD.F2 = !CX; • // Funkcija MUX 2/1 • if (PORTA.F0==0) { • PORTB.F0 = PORTB.F4; • PORTD.F6 = PORTB.F4; • }
Kôd u mikroC-u • if (PORTA.F0==1) { • PORTB.F0 = PORTB.F3; • PORTD.F5 = PORTB.F3; • } • PORTD.F3 = JK; // JK flip-flop • PORTD.F4 = PORTB.F7; // D flip-flop • } • clk = !clkk; // Formiranje takta • } while (1); // Kraj Petlje • }//~
Programiranje mikrokontrolera Za programiranjemikrokontrolera PIC16F877A korišćeni su • Bootstrap loader (ALLPIC) i • Softverski alat (IC-Prog).
ALLPIC bootstrap loader • Jednostavan i veoma jeftin (do 10 evra), • Pripada grupi tzv. JDM loadera, • Programiranje se ostvaruje preko serijskog porta, • Zahteva eksterno napajanje 15-20V.