funkcijski blok dijagrami

Post on 16-Apr-2015

134 Views

Category:

Documents

11 Downloads

Preview:

Click to see full reader

DESCRIPTION

programiranje logičkih kontrolera

TRANSCRIPT

Funkcijski Block Diagram (FBD)

programiranje S7-300/400

SADRŽAJ1. Bit logicke instrukcije2. Instrukcije komparacije3. Instrukcije pretvorbe (konverzije)4. Brojačke (Counter) instrukcije5. Data Block instrukcije6. Instrukcije skoka (Jump)7. Instrukcije cjelobrojne matematike (Integer Math)8. Instrukcije matematike sa pomičnim zarezom (Floating Point Math)9. Instrukcije prijenosa (Move)10. Instrukcije kontrole programa (Program Control)11. Instrukcije pomaka i rotacije (Shit and Rotation)12. Instrukcije provjere statusnog/ih bitova (Status Bit Check)13. Instrukcije generiranja vremenskih intervala (Timer)14. Instrukcije Booleove logike riječi (Logic Word)

1. Bit-logičke instrukcije• 1 Bitlogičke instrukcije

– 1.1 Pregled Bit logickih instrukcija– 1.2 >=1 : OR logicka operacija– 1.3 & : AND logicka operacija– 1.4 AND-before-OR logicka operacija i OR-before-AND logicka operatcija– 1.5 XOR : Exclusive OR logicka operatcija– 1.6 Insert Binary Input– 1.7 Negate Binary Input– 1.8 = : Assign– 1.9 # : Midline Output– 1.10 R : Reset Output– 1.11 S : Set Output– 1.12 RS : Reset_Set Flip Flop– 1.13 SR : Set_Reset Flip Flop– 1.14 N : Negative RLO Edge Detection– 1.15 P : Positive RLO Edge Detection– 1.16 SAVE : Save RLO to BR Memory– 1.17 NEG : Address Negative Edge Detection– 1.18 POS : Address Positive Edge Detection

2. Instrukcije komparacije• 2 Comparison Instrukcije

– 2.1 Overview of Comparison instrukcija– 2.2 CMP ? I : Compare Integer– 2.3 CMP ? D : Compare Double Integer– 2.4 CMP ? R : Compare Real

3. Instrukcije pretvorbe• 3 Conversion Instructions

– 3.1 Overview of Conversion instrukcija– 3.2 BCD_I : BCD to Integer– 3.3 I_BCD : Integer to BCD– 3.4 I_DI : Integer to Double Integer– 3.5 BCD_DI : BCD to Double Integer– 3.6 DI_BCD : Double Integer to BCD– 3.7 DI_R : Double Integer to Real– 3.8 INV_I : Ones Complement Integer– 3.9 INV_DI : Ones Complement Double Integer– 3.10 NEG_I : Twos Complement Integer– 3.11 NEG_DI : Twos Complement Double Integer– 3.12 NEG_R : Negate Real Number– 3.13 ROUND : Round to Double Integer– 3.14 TRUNC : Truncate Double Integer Part– 3.15 CEIL : Ceiling– 3.16 FLOOR : Floor

4. Brojačke instrukcije• 4 Counter Instructions

– 4.1 Overview of Counter instrukcija– 4.2 S_CUD : Assign Parameters and Count Up/Down– 4.3 S_CU : Assign Parameters and Count Up– 4.4 S_CD : Assign Parameters and Count Down– 4.5 SC : Set Counter Value– 4.6 CU : Up Counter– 4.7 CD : Down Counter

5. Data Block instrukcije• 5 Data Block Instructions

– 5.1 OPN : Open Data Block

6. Jump instrukcije• 6 Jump Instructions

– 6.1 Overview of Jump instrukcija– 6.2 JMP : Unconditional Jump in a Block– 6.3 JMP : Conditional Jump in a Block– 6.4 JMPN : Jump-If-Not– 6.5 LABEL : Jump Label

7. Integer Math instrukcije• 7 Integer Math Instructions

– 7.1 Overview of Integer Math Instructions– 7.2 Evaluating the Bits of the StatusWord with Integer Math instrukcija– 7.3 ADD_I : Add Integer– 7.4 SUB_I : Subtract Integer– 7.5 MUL_I : Multiply Integer– 7.6 DIV_I : Divide Integer– 7.7 ADD_DI : Add Double Integer– 7.8 SUB_DI : Subtract Double Integer– 7.9 MUL_DI : Multiply Double Integer– 7.10 DIV_DI : Divide Double Integer– 7.11 MOD_DI : Return Fraction Double Integer

8. Floating-Point Math instrukcije• 8 Floating-Point Math Instructions

– 8.1 Overview of Floating-Point Math– 8.2 Evaluating the Bits of the StatusWord with Floating-Point instrukcija– 8.3 Basic instrukcija– 8.3.1 ADD_R : Add Real– 8.3.2 SUB_R : Subtract Real– 8.3.3 MUL_R : Multiply Real– 8.3.4 DIV_R : Divide Real– 8.3.5 ABS : Forming the Absolute Value of a Floating-Point Number– 8.4 Extended instrukcija– 8.4.1 SQR : Forming the Square of a Floating-Point Number– 8.4.2 SQRT : Forming the Square Root of a Floating-Point

Number.......................8-9– 8.4.3 EXP : Forming the Exponential Value of a Floating-Point Number– 8.4.4 LN : Forming the Natural Logarithm of a Floating-Point Number– 8.4.5 Forming Trigonometric Functions of Angles as Floating-Point Numbers

9. Move instrukcije• 9 Move Instructions

– 9.1 MOVE : Assign Value

10. Program Control instrukcije• 10 Program Control Instructions

– 10.1 Overview of Program Control instrukcija– 10.2 CALL : Calling an FC/SFC without Parameters– 10.3 CALL_FB (Call FB as Box)– 10.4 CALL_FC (Call FC as Box)– 10.5 CALL_SFB (Call System FB as Box)– 10.6 CALL_SFC (Call System FC as Box– 10.7 Calling Multiple Instances– 10.8 Calling a Block from a Library– 10.9 Master Control Relay instrukcija– 10.10 Important Notes on Using MCR Functions– 10.11 MCR</MCR> : Master Control Relay On/Off– 10.12 MCRA/MCRD : Master Control Relay Activate/Deactivate– 10.13 RET : Return

1. Bit logicke instrukcije

Opis• Bit logic instrukcije rade s dva digita, 1 i 0. Ta dva digita tvore bazu sustava brojeva zvanu binarni sustav. Dva

digita 1 i 0 se zovu binarni digiti ili bitovi.• U sprezi s AND, OR, XOR i izlazima, 1 predstavlja logicki DA i 0 logicki NE.• Bit logicke instrukcije interpretiraju stanje signala od 1 i 0 kombiiraju ih prema Boolean logici. Te kombinacije tvore

rezultat od 1 i 0 koji se zove “result of logic operation” (RLO).• Postoje bit logicke instrukcije za sljedece funkcije:

– AND, OR i Exclusive OR: te instrukcije provjeravaju signal i tvore rezultat koji je kopiran u RLO bit ili kombiniran s njime.

– AND-before-OR logicka operacija i OR-before-AND logicka operacija– Assign and Midline Output. te instrukcijeo assign the RLO ga privremeno spreme

• Sljedece instrukcije react to an RLO of 1:– S : Set izlaz– R : Reset izlaz– SR : Set_Reset Flip Flop– RS : Reset_Set Flip Flop

• Sljedece instrukcije reagiraju na prijelaz pozitivnog ili negativnog brida za izvodjenje sljedecih funkcija:– N : Negative RLO Edge Detection– P : Positive RLO Edge Detection– NEG : Address Negative Edge Detection– POS : Address Positive Edge Detection

• Ostatak instrukcija utjece na RLO directno na sljedece nacine:– Insert Binary Input– Negate Binary Input– SAVE : Save RLO to BR Memory

2. Instrukcije komparacije

Opis• IN1 i IN2 se usporedjuju prema tipu odabrane usporedbe:

• == IN1 je jednak IN2• <> IN1 nije jednak IN2• > IN1 je veci od IN2• < IN1 je manji od IN2• >= IN1 je veci ili jednak IN2• <= IN1 je manji ili jednak IN2

• Ako je usporedba true, RLO funkcije je "1". U suprotnom je 0.• Ne mozete negirati sam rezultat usporedbe, ali mozete postici isti

efekt kao negacija koristenjem opposite compare funkcije.• Moguce su sljedece usporedne instrukcije:

• CMP ? I : usporedjuje Integer• CMP ? D : usporedjuje Double Integer• CMP ? R : usporedjuje Real

3. Instrukcije pretvorbe

Opis• Mozete koristiti sljedece instrukcije za pretvaranje binarno kodiranih decimalnih

brojeva i integer brojeva u druge tipove brojeva:• BCD_I : BCD u integer• I_BCD : integer u BCD• BCD_DI : BCD u dvostruki integer• I_DI : integer u dvostruki integer• DI_BCD : dvostruki integer u BCD• DI_R : dvostruki integer u realne

• Mozete koristiti sljedece instrukcije za pravljenje komplementa od integera ili invertiranje predznaka floating-point broja:

• INV_I : prvi komplement integera• INV_DI : prvi komplement double integera• NEG_I : drugi komplement integera• NEG_DI : drugi komplement double integera• NEG_R : negira realan broj

• Mozete koristiti sljedece instrukcije za pretvaranje 32-bit IEEE floating-point broja u akumulator od 1 do 32-bitnog integera (double integera). Zasebna instrukcija odnosi se na posebnu metdu zaokruzivanja:

• ROUND : Round to Double Integer• TRUNC : Truncate Double Integer Part• CEIL : Ceiling• FLOOR : Floor

4. Counter instrukcija

Opis• Memorijski prostor rezerviran za brojače

– Za brojace postoji rezervirano mjesto u memoriji CPU-a.– To memorijsko mjesto rezervira jednu 16-bitnu rijec za svaku adresu brojaca.– Kada programirate u FBD-u, podrzana su 256 brojaca.– Instrukcije brojaca su jedine funkcije koje imaju pristup mjestu memorije brojaca.

• Veličine i vrijednosti brojača– Bitovi 0 do 9 od counter rijeci sadrze vrijednost brojaca u binarnom kodu.– Vrijednost brojaca se premjesta u counter rijec kada je brojac set.– Opseg vrijednosti brojaca je od 0 do 999.– Mozete mijenjati vrijednost brojaca u njegovom opsregu koristenjem sljedecih

instrukcija za brojac:• S_CUD : dodijeli parametar i broji gore/dolje• S_CU : dodijeli parametar i broji gore• S_CD : dodijeli parametar i broji dolje• SC : Set vrijednost brojaca• CU : brojac gore• CD : brojac dolje

5. Data Block instrukcija

6. Jump instrukcija

Opis

• Mozete koristiti ovu instrukciju u svim logickim blokovima, npr. u organizacijskim blokovima (OBs), funkcijskim blokovima (FBs) i funkcijama (FCs).

• Moguce su sljedece Jump instructions:• JMP ne uvjetovani skok u blok• JMP uvjetovani skok u blok• JMPN skok ako nije

• Jump Label as Address• Adresa Jump instrukcije je label. Jump label

oznacava mjesto na koje zelite da program izvrsi jump. Upisujete label iznad JMP box. Label se sastoji od maksimalno cetiri znaka. Prvi znak mora biti slovo; ostali znakovi mogu biti slova ili brojevi (npr. SEG3).

• Jump Label as Destination

• Label odredista mora biti na pocetku mreze (network). Upisujete label odredista na pocetku mreze odabirom LABEL iz FBD box liste. Pojavljuje se prazni box. U box, upisujete ime labela.

7. Integer Math instrukcije

Opis• Koristenjem integer math, mozete izvesti

sljedece operacije s dva integer broja (16 i 32 bita):

• ADD_I : zbraja integer• SUB_I : oduzima integer• MUL_I : mnozi integer• DIV_I : dijeli integer• ADD_DI : zbraja Double Integer• SUB_DI : oduzima Double Integer• MUL_DI : mnozi Double Integer• DIV_DI : dijeli Double Integer• MOD_DI : vraca ostatak Double Integer

8. Floating-Point Math instrukcije

Opis• IEEE 32-bit floating-point brojevi pripadaju tipu podataka REAL.• Mozete koristiti floating-point math instrukcije za izvodjenje sljedecih

matematickih instrukcija koristenjem dva 32-bitna IEEE floating-point broja:• ADD_R : zbraja Real• SUB_R : oduzima Real• MUL_R : mnozi Real• DIV_R : dijeli Real

• Mozete izvesti sljedece operacije s jednim 32-bitnim IEEE floating-point brojem:

• apsolutna vrijednost (ABS) od floating-point broja• kvadrat (SQR) ili korijen (SQRT) od floating-point broja• prirodni logaritam (LN) od floating-point broja• eksponencijalna vrijednost od floating-point broja (EXP) na bazu e (= 2.71828...)• sljedece trigonometrijske funkcije od kuta, predstavljenog kao 32-bit

• floating-point broj:• sinus (SIN) i arc sinus (ASIN)• cosinus (COS) i arc cosinus (ACOS)• tangens (TAN) i arc tangens (ATAN)

Basic Instrukcije

Extended Instrukcije

9. Move Instrukcije

10. Program Controlinstrukcije

11. Shift and Rotate instrukcije

Opis• Možete koristiti Shift naredbe za premještanje sadržaja sa ulaza IN bita lijevo ili

desno. Pomicanje n bita u lijevo povecava sadržaj ulaza IN za 2 puta n (2n);pomicanje n bita u desno dijeli sadržaj ulaza IN sa 2 ptan (2n). Npr., ako pomaknetebinarni ekvivalent decimalnog broja 3 u lijevo za 3 bita, dobili ste binarni ekvivalentdecimalnog broja 24. Ako pomaknete binarni ekvivalent decimalnog broja 16 u desno

• za 2 bita, dobije se binarni broj koji je ekvivalent decimalnog broja 4. Broj koji unosite ulazni parametar N koji predstavlja broj bita za koliko želite pomaknuti binarni broj. Mjesta bitova koji se pomicu shift naredbom su popunjena nulama ili sa signalima stanja pokazivackog bita 0 stoji za pozitivan a 1 za negativan). Signal stanja koji je pomaknut zadnji je je unešen u CC1 bit statusne rijeci, pogledaj takoder CPU registre. CC= i OV bitovi statusne rijeci su za reset u 0. može se koristiti skok (jump) naredbe za utvrdivanje CC! Bita.

• Slijedece shift naredbe su dostupne:• SHR_I : pomak lijevo cijelobrojno• SHR_DI : dvostruki pomak u desno cijelobrojno• SHL_W : pomakni rijec lijevo• SHR_W : pomakni rijec desno• SHL_DW : dvostruki pomak rijeci u lijevo• SHR_DW : dvostruki pomak rijeci u desno

12. Naredbe za provjeru statusa bita

Opis• Naredbe za provjeru statusa bita su bit logicke naredbe koje rade sa

bitovima statusne rijeci.• Svaka od ovih naredbi djeluje na jedan od slijedecih uvjeta koji

prikazuju jedan• ili više bitova statusne rijeci:

• Binarni rezultat bit (BR) je setiran ( ima signal stanja 1).• Rezultat matematicke funkcije je povezan s 0 u jednom od ovih slucajeva:• == 0, <> 0, > 0, < 0, >= 0, <= 0.• Rezultat matematicke funkcije besmislen (UO)• Matematicka funkcija je stvorila prijenos (OV) ili spremljeni prijenos (OS).

• Kada je naredba za provjeru statusa bita povezana u seriju, kombinira rezultat sa svojim signalom stanja provjere sa prethodnim rezultaom logicke operacije prema tablici istine AND sklopa. Kada je naredba za provjeru statusa bita povezana u paralelu, kombinira rezultat sa prethodnim RLO prematablici istinitosti sa OR sklop.

Statusna riječ• Statusna rijec je registar u memoriji vašeg CPU

koja sadrži bitove koje možete pozvati na adresi bita statusne rijeci:

• Možete procijeniti bitove u statusnoj rijeci•Integriranjem matematicke funkcije,•Sa funkcijama decimalnog zareza.

13. Timer instrukcije

Opis• Slijedece naredbe za timer su moguce:

• S_PULSE : dodijeljivanje parametara timeru koji okida na prednjibrid i startanje

• S_PEXT : dodijeljivanje parametara timeru koji okida na prednji brid s produženim vremenom djelovanja i startanje

• S_ODT : dodijeljivanje parametara On-Delay timeru i startanje• S_ODTS : dodijeljivanje parametara usporavajucem On-Delay

timeru i startanje• SOFFDT : dodijeljivanje parametara Off-Delay timeru i startanje• SP : pokretanje timera koji okida na prednji brid• SE ; pokretanje timera koji okida na prednji brid s produženim

djelovanjem• SD : pokretanje On-Delay timera• SS : pokretanje usporavajuceg On-Delay timeru• SF : pokretanje Off-Delay timera

Rezervirano memorijsko područje

• Vremena imaju rezervirana podrucja u memoriji CPU-a.

• Ovo memorijsko podrucje rezervira jednu 16-bitnu rijec za adresu svakog timera.

• Kada programirate u FBD, podržano je 256 timera.

• Slijedece funkcije pristupa memorijskom podrucju timera:

• Naredbe timera• Osvježavanje rijeci timera clockom. U RUN modu, ova CPU

funkcija smanjuje dano vrijeme za vrijednost jedne jedinice intervala koji je odreden vremenskom bazom sve dok ne dode do vrijednosti nula.

Vremenska vrijednost• Bitovi od 0 do 9 vremenske rijeci sadrži vremensku vrijednost u

binarnom kodu.• Vremenska vrijednost odredena je brojem jedinica. Kada je timer

obnvljen, vrijednost vremena je smanjena za jednu jedinicu u intervalima odredenim vremenskom bazom.

• Vremenska vrijednost je smanjuje sve dok se ne izjednaci s nulom.• Možete ponovno napuniti vremensku vrijednost korištenjem

slijedecih formata:• S5T#aH_bM_cS_dMS

– gdje je H=sati, M=minute, S=sekunde, MS=milisekunde; a, b, c, d su definirani od strane korisnika

– vremenska baza se bira automatski, i vrijednost je zaokružena na slijedeci manji broj s tom vremenskom bazom.

– Maksimalna vremenska vrijednost koju možete unijeti je 9,990 sekundi, ili 2H_46M_30S.

• S5TIME#4S=4 sekunde• S5t#2h_15m= 2 sata i 15 minuta• S5t#1h_12m_18s= 1 sat, 12 minuta i 18 sekundi

Vremenska baza• Bitovi 12 i 13 vremenske rijeci sadrže vremensku bazu

u binarnom kodu. Vremenska baza definira interval za koji se vremenska vrijednost smanjuje jednom jedinicom.

• Najmanja vremenska baza je 10 ms; najveca 10 s.

• Zato što su vremenske konstante snimljene samo za jedan interval, vrijednosti koje nisu tocni višekratnici vremenskog intervala koji je odsjecen.

• Vrijednosti s prevelikom rezolucijom zahtijevaju raspon zaokružen dolje zajedno s zahtjevanim rasponom ali ne na željenu rezoluciju.

• Tablica prikazuje moguce rezolucije i odgovarajuce raspone.

Bit konfigurirana celija timera• Kad je timer pokrenut, sadržaj celije se koristi za vremensku

vrijednost.• Bitovi 0 do 11 celije timera sadrže vremensku konstantu u binarnom

kodu decimalnog formata (BCD format; svaka grupa od cetiri bita sadrži binarni kod za jednu decimalnu vrijednost).

• Bitovi 12 i 13 sadrže vremensku bazu u binarnom kodu.• Slika prikazuje sadržaj vremenske celije popunjenu sa vremneskom

konstantom 127 sa vremenskom bazom 1 sekunda.

Citanje vremena i vremenske baze

• Svaki timer box ima dva izlaza, BI i BCD, za koje možete odrediti lokaciju rijeci.

• BI izlaz predstavlja vremensku vrijednost u binarnom formatu, vremenska baza nije prikazana.

• BCD izlaz predstavlja vremensku bazu i vrijednost vremena u binarnom decimalnom kodu (BCD) formatu.

Odabir ispravnog timera

• Slijedeći prikaz je napravljen sa svrhom da vam pomogne u pravilnom odabiru timera za vas problem.

14. Logic Word instrukcije

Opis

KRAJ

top related