Az IEC szabvány programozási nyelvei
|
|
- Jakab Papp
- 9 évvel ezelőtt
- Látták:
Átírás
1 Az IEC szabvány programozási nyelvei Folyamatszabályozás KOVÁCS Gábor
2 Áttekintés CONFIGURATION RESOURCE VAR VAR RESOURCE TASK TASK PROGRAM VAR PROG VAR TASK FUNCTION BLOCK VAR FB FUN PROG FUNCTION VAR FUN FUN FB FB ACCESS PATH
3 Programszervezési egységek POU típus és név Deklarációs rész: Interfész változók Lokális változók Globális változók POU törzs: programkód Ladder Diagram (LD) Instruction List (IL) Function Block Diagram (FBD) Structured Text (ST) Sequential Function Chart (SFC) PROGRAM prog_name PROGRAM ConveyorControl FUNCTION_BLOCK fb_name FUNCTION_BLOCK Pusher FUNCTION fun_name : DataType FUNCTION IsReady : BOOL
4 Létradiagram Eredete: huzalozott relés logika kapcsolók kontaktusok relék tekercsek A mai napig az egyik legnépszerűbb nyelv Minden fejlesztői környezetben megtalálható
5 Pozitív sín (positive rail) Bemeneti bit (input bit) Kimeneti bit (output bit) Föld sín (neutral rail) %I0.0 %I0.2 %I0.3 %Q0.0 %I0.1 Létrasor (rung) %Q0.0 %M1 %M2 Memóriabit (memory bit) %I0.2 %Q0.2
6 Kontaktusok és tekercsek Szimbólum Megnevezés Működés Analógia X X Y Y Alaphelyzetben nyitott kontaktus [kontaktus] (NO contact, contact) Alaphelyzetben zárt kontaktus [negált kontaktus] (NC contact) Alaphelyzetben nyitott tekercs [tekercs] (NO coil, coil) Alaphelyzetben zárt tekercs [negált tekercs] (NC coil) vezet ha X=1 vezet ha X=0 Y-t 1-be állítja ha táplált Y-t 0-ba állítja ha táplált Alaphelyzetben nyitott nyomógomb Alaphelyzetben zárt nyomógomb Alaphelyzetben nyitott relé Alaphelyzetben zárt relé
7 Logikai műveletek Művelet Szimbólum Algebrai jelölés Létradiagramos megvalósítás A Y Negálás Y = A A Y ÉS Y = A B Y = A&B A B Y A Y VAGY Y = A + B B
8 Logikai műveletek Művelet Szimbólum Algebrai jelölés Létradiagramos implementációs A B Y Antivalencia (XOR) Y = A B A B A B Y Ekvivalencia (NXOR, EOR) Y = A B Y = A B A B
9 Logikai műveletek Művelet Szimbólum Algebrai jelölés Létradiagramos megvalósítás A Y NOR Y = A + B Y = A B B A B Y A B Y NAND Y = A B Y = A + B A Y B
10 Létrasor = Logikai függvény A B Y IF (A=1) AND (B=1) THEN Y=1 IF (A=1) AND (B=1) THEN Y=1 ELSE Y=0
11 A létradiagram kiértékelése A PLC ciklikus működésű A programvégrehajtás fázisában a teljes kód feldolgozásra kerül Minden egyes ciklusban a teljes létradiagram kiértékelésre kerül BELSŐ FELDOLGOZÁS KIMENETEK ÍRÁSA BEMENETEK OLVASÁSA PROGRAMVÉGREHAJTÁS
12 A létradiagram kiértékelése Néhány nanoplc-típus: létrasosorok párhuzamos kiértékelése (ritka) Általános: soros végrehajtás Soronként Oszloponként (nagyon ritka)
13 A létradiagram kiértékelése 1 1 %I %I0.2 %I0.3 4 %Q0.0 %I %I0.0 %M2 %M2 3 %I0.3 %Q0.2
14 Reteszelés Szabványos jelölés RSLogix jelölés Symbol Name Symbol Name S Set tekercs L Output Latch (OTL) R Reset tekercs U Output Unlatch (OTU)
15 A reteszelés értelmezése A Y S B Y R IF (A=1) THEN Y=1 IF (B=1) THEN Y=0 IF (B=1) THEN Y=0 ELSE IF (A=1) THEN Y=1
16 Élérzékeny kontaktusok Szimbólum P Megnevezés Felfutó él-érzékeny kontaktus (rising edge contact, one shot rising) N Lefutó él-érzékeny kontaktus (falling edge contact, One Shot Falling) Megjegyzés: egyes fejlesztőkörnyezetekben az éldekektálás csak az R_TRIG és F_TRIG funkcióblokkok használatával lehetséges.
17 Élérzékeny kontaktusok %I0.0 P %I0.0 N %Q0.0 %Q0.1 %I0.0 %Q0.0 %Q0.1 Ciklusidő t
18 Függvény- és funkcióblokk-hívások Hívás grafikusan, a létrasorban megjelenő blokk formájában Csak formális hívás A létrasorokon csak logikai értékek lehetnek: ENI/ENO használata hiányzó logikai be/kimeneti paraméterek esetén %I0.3 IN TON Q %Q0.1 ENI GT Q %M0.1 %MW12 IN1 T#3s PT ET 4 IN2
19 Utasításlista (Instruction list, IL) Szöveges programozási nyelv Alacsony szintű, gépi kódhoz közeli Alapszintű műveletek A programvezérlési lehetőségek korlátozottak A program futása teljes egészében kézben tartható Bármely más IEC kompatiblis nyelven írt program leírható IL-lel A teljes szöveges kód végrehajtódik ciklusonként!
20 Utasítások felépítése OperátorMódosító Operandus LDN %I0.1 S MyBool NOT Operátor (operator) Az operátor mnemonikja Módosító (modifier) N : operandus negálása C : feltételes végrehajtás ( : egymásba ágyazás A módosítók használata az operátortól függ Operandus (operand) Egy operandus vagy egy sem Literális vagy változó (bemenet, kimenet, memória, közvetlen) Változó adattípusú
21 Az akkumulátor CR Current Result Általános regiszter A műveletek első operandusa mindig az akkumulátor (kivétel: érték betöltése) A művelet eredménye az akkumulátorba kerül Az akkumulátor adattípusa a művelettől és az operandusok adattípusától függ
22 Az akkumulátor LD %I0.1 %I0.1 1 LD CR 1 AND %I0.2 %I0.2 0 CR CR & 0 1 ST %Q0.1 CR 0 %Q0.1 ST 0
23 Az akkumulátor Az akkumulátor adattípusa a művelettől és az operandustól függően változik LD %MW1 %MW1 123 CR LD 123 GT %MW2 CR 123 %MW2 234 Adattípus: WORD CR > 0 Adattípus: BOOL
24 Bitműveletek Utasítás Leírás Létra-szimbólum Példa LD LDN ST STN Bit betöltése az akkumulátorba Bit negálása és betöltése az akkumulátorba Akkumulátor-érték tárolása egy biten Akkumulátor-érték negáltjának tárolása egy biten LD %I0.1 LDN %M11 ST %M21 STN %Q0.2
25 Retentív hozzárendelések Utasítás Leírás Létra-szimbólum Példa S Bit 1-be állítása ha az akkumulátor-érték 1 S S %Q0.1 R Bit 0-ba állítása ha az akkumulátor-érték 1 R R %M12
26 Bit-logikai műveletek Utasítás Leírás Példa AND / ANDN OR / ORN XOR / XORN AND / NAND művelet az akkumulátorértéken és az operanduson, az eredmény az akkumulátorba kerül OR / NOR művelet az akkumulátor-értéken és az operanduson, az eredmény az akkumulátorba kerül XOR / XORN (ekvivalencia) művelet az akkumulátor-értéken és az operanduson, az eredmény az akkumulátorba kerül AND %I0.1 ORN %M11 XOR %M21 NOT Az akkumulátor-érték negálása NOT
27 Bit-logikai műveletek %I0.1 %I0.2 %Q0.0 LD %I0.1 AND %I0.2 ST %Q0.0 %I0.1 %M4 %Q0.2 LD %I0.1 OR %IM4 STN %Q0.2
28 Aritmetikai műveletek Utasítás Leírás Példa ADD SUB Operandus hozzáadása az akkumulátorértékhez Operandus kivonása az akkumulátorértékből ADD %MW2 SUB %MW11 MUL Akkumulátor-érték szorzása MUL 3 DIV MOD Akkumulátor-érték elosztása az operandussal Maradékképzés (modulo) az akkumulátorértéken az operandussal DIV 2 MOD 7
29 Összehasonlító operátorok Az akkumulátor és az operandus értékét hasonlítják össze: CR?? OP Az eredmény egy logikai érték, ami az akkumulátorba kerül Mnemonik EQ NE GT GE LT LE Eredmény Operátor és akkumulátorérték egyenlő (=) Az operátor és az akkumulátor-érték nem egyezik meg (<>) Az akkumulátor-érték nagyobb mint az operandus Az akkumulátor-érték nagyobb vagy egyenlő mint az operandus Az akkumulátor-érték kisebb mint az operandus Az akkumulátor-érték kisebb vagy egyenlő mint az operandus
30 Összehasonlítás - Példa LD %MW1 %MW1 123 CR LD 123 GT %MW2 CR 123 %MW2 234 Adattípus: WORD CR > 0 Adattípus: BOOL
31 Ugró és hívó utasítások Minden utasítás (sor) címkézhető A program tetszőleges címkére ugorhat Előre ugrás Hátra ugrás veszélyes! Az ugrás során az akkumulátorérték nem változik LD %I0.1 AND %I0.2 JMP MyLbl S %Q0.1 Átugrott XOR %M2 utasítások ST %Q11 MyLbl: OR %M11 ST %M11 JMP MyLbl Utasítás JMP CAL RET Leírás Címkére ugrás FB-példány hívása Visszatérés a hívó POU-ba
32 Módosítók Egyes utasítások működése módosítópostfixekkel befolyásolható Feltételes végrehajtás C Operandus negálása N Egymásba ágyazás ( A módosítók kombinálhatók
33 Operandus negálása Az operandust a művelet elvégzése előtt negáljuk Használható a következő utasításokkal Betöltés és tárolás: LDN, STN Bit-logikai műveletek: ANDN, ORN, XORN LD 1 ANDN %I0.2 %I0.2 CR 0 %I0.2 1 CR & 1 1
34 Feltételes végrehajtás Az utasítás csak akkor hajtódik végre, ha az akkumulátor értéke TRUE Feltételes ugrások, FB-hívások és visszatérés A következő utasításokkal használható: JMP: JMPC, JMPCN CAL: CALC, CALCN RET: RETC, RETCN
35 Feltételes végrehajtás - példa Elvárt működés: IF (%I0.0 AND NOT %I0.1) THEN %MW1:=%MW1+1 ELSE %MW1:=%MW2; LD %I0.0 ANDN %I0.1 JMPC L_THEN LD %MW2 ST %MW1 JMP L_END (* vagy RET *) L_THEN: LD %MW1 ADD 1 ST %MW1 L_END: (* további műveletek *)
36 Feltételes végrehajtás - példa Elvárt működés: IF (%I0.0 AND NOT %I0.1) THEN %MW1:=%MW1+1 ELSE %MW1:=%MW2; LD %I0.0 ANDN %I0.1 JMPCN L_ELSE LD %MW1 ADD 1 ST %MW1 JMP L_END L_ELSE: LD %MW2 ST %MW1 L_END: (* további műveletek *)
37 Művelet-precedencia Y = A&(B + C) LD A AND B OR C ST Y Y = A&B + C LD B OR C AND A ST Y
38 Művelet-precedencia Y = A + B &(C + D) LD A OR B AND C OR D ST Y LD A OR B AND( LD C OR D ) ST Y Y = (A + B)&C + D LD A OR B ST X LD C OR D AND X ST Y
39 Egymásba ágyazás %I0.1 1 LD %I0.2 0 CR 1 CR 0 ( ( Stack 1, AND %Q0.0 = %I0.1&(%I0.2 + (%I0.3 %M11)) %M11 CR 1 1 LD %I0.1 AND( %I0.2 OR( ) ) ST %Q0.0 %M11 XOR %I0.3 CR 1 %I0.3 0 CR CR XOR 1 1 CR CR OR 1 1 CR CR & 1 1 ST %Q0.0 1 ) ) 0, OR 1, AND 1, AND
40 Függvényhívások IL-operátorként is használható függvények: hívás közvetlen értékekkel (pl. AND, ADD stb.) Más függvények (standard és felhasználói): formális paraméterek vagy közvetlen értékek A függvény visszatérési értéke az akkumulátorba kerül
41 Függvényhívás közvetlen értékekkel Az első paraméter mindig az akkumulátor A többi paraméter a függvényhívásban A visszatérési érték az akkumulátorba kerül LD 12 ADD 3 LD 0 LIMIT 17, 10
42 Függvényhívás formális paraméterekkel Formális paraméterek megadása Soronként, zárójelben Bemenő paraméterek: paraméter := érték Kimenő paraméterek: paraméter => cél-változó A paraméterek sorrendje tetszőleges, el is hagyhatók A visszatérési érték az akkumulátorba kerül LIMIT( EN:=TRUE, MN:=0, IN:=MyInt, MX:=10, ENO=>MyBool )
43 FB-hívások Funkcióblokk-példányok a CAL (CALC, CALCN) utasítással hívhatók Hívás formális paraméterekkel Hívás paraméter-hozzárendeléssel Implicit hívás A CAL és RET utasítások az akkumulátor nem definiált értékre állítják A hívott FB nem használhatja az akkumulátort érték betöltése előtt A hívó POU nem használhatja az akkumulátort érték betöltése előtt
44 FB-hívás formális paraméterekkel VAR TimerIn, TimerOut: TimePassed: Timer1: END_VAR CAL Timer1( IN:=TimerIn, PT:=T#5s, Q=>TimerOut, ET=>TimePassed ) BOOL; TIME; TON; TON IN PT Q ET
45 FB-hívás paraméter-hozzárendeléssel VAR TimerIn, TimerOut: TimePassed: Timer1: END_VAR LD T#5s ST Timer1.PT LD TimerIn ST Timer1.IN CAL Timer1 LD Timer1.Q ST TimerOut LD Timer1.ET ST TimePassed BOOL; TIME; TON; TON IN PT Q ET
46 Implicit FB-hívás VAR TimerIn, TimerOut: TimePassed: Timer1: END_VAR LD T#5s PT Timer1 LD TimerIn IN Timer1 LD Timer1.Q ST TimerOut LD Timer1.ET ST TimePassed BOOL; TIME; TON; TON IN PT Q ET
47 Példa: éldetektálás Az IEC szabvány szerint az éldetektálás az R_TRIG and F_TRIG funkcióblokkokkal lehetséges %I0.0 %I0.0 %M0 %M0 VAR RisingEdge: FallingEdge: AT %I0.0: AT %M0: END_VAR LD %I0.0 ST RisingEdge.CLK CAL RisingEdge LD RisingEdge.Q S %M0 CAL FallingEdge( CLK:=%I0.0, Q=>%M0; ) R_TRIG; F_TRIG; BOOL; BOOL;
48 Példa: Tologató Pusher START DONE LIMITF MOTOR A tologató hátsó véghelyzetéből a START bemenet felfutó élére indul Addig mozog előre, amíg az első végálláskapcsoló nem jelez Ekkor irányt vált és a hátsó végálláskapcsoló jelzéséig mozog hátra Amikor visszatért a kiindulási helyzetbe, a DONE kimenetet egyetlen ciklus idejére igazra állítja LIMITB DIR
49 Tologató Deklarációs rész FUNCTION_BLOCK Pusher VAR_INPUT Start: BOOL; LimitF: BOOL; LimitB: BOOL; END_VAR VAR_OUTPUT RETAIN Motor: BOOL:=FALSE; Dir: BOOL:=FALSE; Done: BOOL:=FALSE; END_VAR VAR R_Back: R_TRIG; R_Start: R_TRIG; END_VAR
50 Tologató Programkód CAL R_Back(CLK:=LimitB, Q=>Done) LD Start ST R_Start.CLK CAL R_Start LD R_Start.Q AND LimitB JMPC MoveFwd LD LimitF JMPC MoveBwd LD R_Back.Q R Motor RET MoveFwd: LD 1 S Motor S Dir RET MoveBwd: LD 1 R Dir RET
51 Funkcióblokk-diagram (Function Block Diagram, FBD) Magas szintű grafikus nyelv Nem logikai műveletek végzésére Függvények és FB-k közötti adatfolyam leírása Eredet: adatfolyam-diagram Blokkok: függvények és FB-példányok Összeköttetések: változók MyFB IN1 Q IN2 >=1 MyFB IN1 Q IN2 MyFB IN1 Q IN2
52 FBD-hálózat (network) FBD-programkódok szervezőeleme A hálózatok felülről lefelé hajtódnak végre A hálózatokhoz címkét kapcsolhatunk A címkékre ugorhatunk A hálózatokat összekötőkkel (connector) kapcsolhatjuk össze
53 FBD-hálózatok elemei Függvény- és FB-hívások (blokkok) Vezetékek Futásvezérlési elemek Összekötők
54 Függvényhívás FUNCTION MyFun : INT VAR_INPUT In1 : BOOL; In2 : BOOL; END_VAR VAR_OUTPUT Out1 : BOOL; END_VAR VAR_IN_OUT InOut : INT; END_VAR Függvény neve IN1 IN2 InOut MyFun Visszatérési érték (informális) OUT1 InOut Bemeneti paraméter(ek) (formális) Kimeneti paraméter(ek) (formális) Be- és kimeneti paraméterek (formális)
55 Függvényhívás Overloaded és kiterjeszthető függvények formális paraméterek nélkül hívhatók ADD (+), MUL (*) AND (&), OR (>=1),XOR (=2k+1) ADD
56 FB-hívás Minden paraméter formális FB Instance IN1 Out1 IN2 Out2 InOut InOut
57 Blokkok be- és kimenetei Változók Timer1 Literálisok VarBool IN Q Vezetékek T#500ms PT ET Összekötők Nem bekötött Bemenet: adattípus alapértelmezett értéke Kimenet: nem történik hozzárendelés %Q0.2
58 Különleges be- és kimenetek Negált bemenet/kimenet : Élérzékeny bemenetek: Felfutó él: > Lefutó él: < IN1 IN2 MyFB Q
59 Vezetékek Blokkokat összekötő vízszintes vagy függőleges vezetékek Tetszőleges adattípusúak lehetnek Csak azonos típusú blokk be- és kimenetek köthetők össze Egy blokk-kimenet tetszőleges számú blokkbemenethez köthető Egy blokk-bemenethez csak egyetlen jel köthető
60 Összekötések A huzalozott VAGY kapcsolat FBD-ben nem megengedett! MyFB MyFB IN1 Q IN1 Q IN2 IN2 MyFB IN1 IN2 Q MyFB IN1 Q IN2 MyFB IN1 Q IN2 >=1 MyFB IN1 Q IN2
61 Hálózat kiértékelése Egy elem csak akkor értékelhető ki, ha minden bemenetén érvényes érték áll rendelkezésre Egy elem kiértékelése mindaddig nem fejeződhet be, amíg mindegyik kimenete nem kerül kiértékelése Egy hálózat kiértékelése mindaddig nem fejeződhet be, amíg mindegyik eleme nem kerül kiértékelése
62 Hálózat kiértékelése - példa ADD 1 6 MUL 90 DIV ADD
63 Visszacsatolás Visszacsatolási hurok különböző blokkok között Az utolsó ciklusban kapott kimeneti értéket csatolja vissza Első futáskor az adattípus kezdeti értékét kapja ADD 1 3 MUL 2 6 2
64 Futásvezérlés Ugrás Csak feltételes A megadott címkére ugrik, ha a bemenete igazra értékelődik ki Visszatérés Csak feltételes Visszatér a hívó POU-ba, ha a bemenete igazra értékelődik ki LABEL RETURN
65 Összekötők Hálózaton belüli adattovábbításra szolgál Új sor karakter vagy hosszú nyíl Hasznos, ha a diagram szélessége korlátozott conn1> >conn1
66 Példa - futószalag Indításkor a futószalagnak működnie kell Ha a futószalag közelítésérzékelője jelez, akkor további 3 másodpercig járassuk a futószalagot, majd állítsuk le és indítsuk el a tologatót Ha a tologató végzett, indítsuk újra a futószalagot
67 Futószalag Deklarációs rész Program PusherConveyor VAR_INPUT S1: BOOL AT %I0.0; LF: BOOL AT %I0.1; LB: BOOL AT %I0.2; END_VAR VAR_OUTPUT C1: BOOL :=1 AT %Q0.0; P1Mot: BOOL AT %Q0.1; P1Dir: BOOL AT %Q0.2; END_VAR VAR T_F: TP; F_PS: F_TRIG; F_T: F_TRIG; Pusher1: Pusher; FF: SR; END_VAR
68 Futószalag - Programkód F_PS T_F F_T Pusher1 S1 CLK Q IN Q CLK Q Start Motor P1Mot T#3s PT ET LF LB LimitF LimitB Dir Done P1Dir FF S Q C1 R
69 Strukturált szöveg (Structured Text, ST) Magas szintű szöveges nyelv Világos felépítés Hatékony programszervezési módok A gépi kódra fordítás nem tartható kézben közvetlenül A magas absztrakciós szint szuboptimális implementációhoz vezethet A teljes szöveges kód végrehajtódik ciklusonként
70 Kifejezések (expression) A műveletek a kifejezések eredményét dolgozzák fel Egy kifejezés elemei Operandusok akár más kifejezések Operátorok
71 Operandusok Literálisok 17, my string, T#3s Változók (elemiek vagy származtatottak) Var1, VarArray[12] Függvények visszatérési értékei Add(2,3), sin(1.76) Más kifejezések (=Add(10,20))
72 Operátor Leírás Példa Eredmény Prioritás ( ) Zárójel: végrehajtási sorrendre hat (3+2)*(4+1) 25 <fcn name> Függvényhívás CONCAT( PL, C ) PLC - Ellentett (aritmetikai) ( 1 10) NOT Komplemens (logikai negálás) NOT TRUE FALSE ** Hatványozás 2**7 128 * Szorzás 2*7 14 / Osztás 30/6 5 MOD Maradékképzés (modulo) 32 MOD Összeadás Kivonás <, <=, >, >= Összehasonlítás 32<6 FALSE = Egyenlőség T#24h = T#1d TRUE <> Egyenlőtlenség 2<>5 TRUE &, AND Logikai ÉS TRUE AND FALSE FALSE XOR Logkiai kizáró vagy (XOR) TRUE XOR FALSE TRUE OR Logikai VAGY TRUE OR FALSE TRUE
73 Függvényhívások Kifejezésekben: a kifejezés a függvény visszatérési értékét használja fel Formális hívás Zárójelek között, paraméter-azonosítókkal A paraméterek sorrendje tetszőleges Elhagyott paraméter esetén a függvény annak kezdeti értékét használja LIMIT(MN:=0,MX:=10, IN:=7, Q=>VarOut) Informális hívás Közvetlen értékek meghatározott sorrendben LIMIT(0,7,10)
74 Műveletek (statement) Kulcsszó Művelettípus := Értékadás <FB name>(parameters) FB hívás RETURN Visszatérés a hívó POU-ba IF Kiválasztás CASE Kiválasztás FOR Iteráció WHILE Iteráció REPEAT Iteráció EXIT Iteráció befejezése
75 := operátor Értékadás Értékadás Egyelemű változónak Tömb elemének Adattípusok VAR d: INT; e: ARRAY [0..9] OF INT; END_VAR d:=4; e[3]:=d**2; A bal és jobb oldal adattípusa kompatibilis A típuskonverziós függvények kifejezésként használhatók d:=real_to_int(sin(2))
76 Bináris értékadás Nem a létradiagramban megszokott logikai függvény (kifejezés), hanem művelet Ha az értékadás nem hajtódik végre (pl. IF), akkor a változó megőrzi addigi értékét, nem íródik felül IF A THEN B:=1; END_IF; A B
77 FB hívás Az FB-hívás művelet, kifejezésben nem megengedett Formális hívás Paraméter-azonosítókkal A paraméterek sorrendje tetszőleges Kihagyott paraméterek helyettesítése Előző híváskori értékükkel Első hívás esetén kezdeti értékükkel Informális hívás Közvetlen értékek megfelelő sorrendben
78 FB hívás - példa PROGRAM MyProg VAR MyTimer: TON; A: BOOL; MyInt : INT; END_VAR (* *) MyTimer(PT:=T#1s, IN:=(MyInt=7), Q=>A); MyTimer((MyInt=7),T#1s); A:=MyTimer.Q; (* *) END_PROGRAM;
79 Kiválasztás Kiválasztás logikai (Boolean) értékű kifejezés alapján Minden ágban tetszőleges számú műveletből álló blokk állhat ELSIF és ELSE ágak elhagyhatók END_IF; használata kötelező IF <BOOL expression> THEN <statement block> ELSIF <BOOL expression> THEN <statement block> ELSIF <BOOL expression> THEN <statement block> ELSE <statement block> END_IF;
80 Kiválasztás - példa IF (Pusher_Move=1) THEN MotorOut:=1; DirOut:=1; ELSIF (Pusher_Move=2) THEN MotorOut:=1; DirOut:=0; ELSE MotorOut:=0; DirOut:=0; END_IF;
81 Eset-kiválasztás Kiválasztás egész-értékű kifejezés alapján Az esetekhez több érték is megadható Alapértelmezett eset: ELSE (elhagyható) END_CASE; nem hagyható el CASE <INT expression> OF <value1>: <statement block> <value2>,<value3>: <statement block> ELSE <statement block> END_CASE;
82 Eset-kiválasztás - példa CASE Pusher_Move OF 1: MotorOut:=1; DirOut:=1; 2: MotorOut:=1; DirOut:=0; ELSE MotorOut:=0; DirOut:=0; END_CASE;
83 Iteráció Az iteráció egyetlen PLC-cikluson belül hajtódik végre Ha óvatlanul használjuk, akkor rontja a determinizmust és watchdog-hibát is okozhat Ne használjuk eseményre való várakozásra! Használhatjuk Tömb vagy adatmező elemeinek vizsgálata Egy művelet megadott számú ismétlésére
84 While hurok A feltételes kifejezést a műveletek végrehajtása előtt vizsgálja Akkor hajtja végre a műveleteket, ha a feltételes kifejezés értéke TRUE WHILE <BOOL expression> DO <statement block> END_WHILE;
85 While hurok - példa VAR MyArray: OF INT; i: INT; MaxVal: INT:=0; END_VAR (* *) i:=1; WHILE (i<=10) DO IF (MyArray[i]>MaxVal) THEN MaxVal:=MyArray[i]; END_IF; i:=i+1; END_WHILE; (* *)
86 Repeat Until hurok A feltételes kifejezést a műveletek végrehajtása után vizsgálja (a műveleti blokk legalább egyszer végrehajtódik) Az iterációt a feltételes kifejezés TRUE értéke esetén fejezi be REPEAT <statement block> UNTIL <BOOL expression> END_REPEAT;
87 Repeat hurok - példa VAR MyArray: OF INT; i: INT; MaxVal: INT:=0; END_VAR (* *) i:=0; REPEAT i:=i+1; IF (MyArray[i]>MaxVal) THEN MaxVal:=MyArray[i]; END_IF; UNTIL (i=10) END_REPEAT; (* *)
88 For hurok Control változó Kezdeti kifejezés Végső kifejezés Inkremens kifejezés FOR vc:=expi TO expe BY expinc DO <statement block> END_FOR; A négy változó/kifejezés azonos adattípusú kell, hogy legyen (SINT, INT, DINT) A Control változónak, valamint a kezdeti és végkifejezésben szereplő változóknak nem adható érték a hurkon belül Az inkremens kifejezésben szereplő változónak a hurkon belül is adható érték (bár nem ajánlott)
89 For hurok - példa VAR MyArray: OF INT; i: INT; MaxVal: INT:=0; END_VAR (* *) FOR i:=10 TO 1 BY -1 DO IF (MyArray[i]>MaxVal) THEN MaxVal:=MyArray[i]; END_IF; END_FOR; (* *)
90 Kilépés hurkokból A hurkokból az EXIT művelettel lehet kilépni Csak a legbelső szinten hat j:=0; WHILE (j<10) DO i:=0; WHILE (i<10) DO IF (i=j) THEN EXIT; ELSE i:=i+1; END_IF; END_WHILE; j:=j+1; END_WHILE i j
91 Visszatérés a hívó POU-ba RETURN kulcsszó Kiválasztás művelet tetszőleges ágában használható feltételes visszatérésre Függvények esetén a visszatérési értéket előbb be kell állítani (függvénynévvel egyező nevű változó) Ha hiányzik, az utolsó sor végrehajtása után történik meg a visszatérés
92 Példa: Tologató Pusher START DONE LIMITF MOTOR A tologató hátsó véghelyzetéből a START bemenet felfutó élére indul Addig mozog előre, amíg az első végálláskapcsoló nem jelez Ekkor irányt vált és a hátsó végálláskapcsoló jelzéséig mozog hátra Amikor visszatért a kiindulási helyzetbe, a DONE kimenetet egyetlen ciklus idejére igazra állítja LIMITB DIR
93 A tologató állapotgépe Start FORWARD IDLE LimitF LimitB BACK
94 Pusher - deklarációs rész FUNCTION_BLOCK FBPusher VAR RETAIN StateEnum: (Idle, Fwd, Bwd); R_Start: R_EDGE; END_VAR VAR_OUTPUT Motor: BOOL :=0; Dir: BOOL; Done: BOOL; END_VAR VAR_INPUT Start : BOOL; LimitF: BOOL; LimitB : BOOL; END_VAR
95 R_Start(CLK:=Start); Pusher - programkód CASE StateEnum OF Idle: IF (R_Start.Q) THEN StateEnum:=Fwd; END_IF; Done:=FALSE; Fwd: IF (LimitF) THEN StateEnum:=Bwd; END_IF; Bwd: IF (LimitB) THEN StateEnum:=Idle; Done := TRUE; END_IF; END_CASE; Motor:=NOT(StateEnum=Idle); Dir:=(StateEnum=Fwd); END_FUNCTION_BLOCK;
96 Sorrendi folyamatábra (Sequential Function Chart, SFC) Az SFC a programfolyamot írja le Tárolnia kell az aktuális állapotot: függvény nem valósítható meg SFC-ben A kimeneti változók érvényessége sokszor nehezen értelmezhető: egyes fejlesztői környezetek FB megvalósítását sem engedik SFC-ben
97 Sorrendi folyamatábra (Sequential Function Chart, SFC) Cél: komplex programok kisebb részekre bontása és az azok közötti programfolyam leírása Eredet Folyamatábra Petri-hálók Grafcet
98 SFC elemek SFC: páros gráf Csomópontok: STA ActionA Lépések (step) állapotok Átmenetek (transition) : logikai értékre kiértékelődő kifejezések STB T1 ActionB Élek Lépésekhez rendelt akciók (action) T2
99 Zseton-játék Az aktív lépést egy zseton (token) jelzi A zseton akkor kerül át egy másik lépéshez, amikor egy oda vezető átmenet feltétele igazra értékelődik ki STA STB T1=TRUE ActionA ActionB Az aktív lépéshez tartozó művelet alapértelmezésben ciklikusan végrehajtódik T2
100 Lépés Átmenet szekvenciák Egyszerű szekvencia Divergens utak (elágazás) Szekvencia-hurok Szekvencia átugrása Párhuzamos végrehajtás
101 Egyszerű szekvencia STA STB T1 Amikor T1 igazra értékelődik ki STA deaktiválódik STB aktiválódik
102 Divergens utak STA Egy lépés után több átmenet is következik ST1 T1 ST2 T2 Az első igazra kiértékelődő Ti átmenet deaktiválja STA-t és aktiválja STi-t Az ágak közül csak egy lesz aktív
103 Divergens utak átmeneteinek Szabvány szerint Kiértékelés balról jobbra Kiértékelés explicit prioritással Kiértékelés felhasználói irányítással Általános gyakorlati megvalósítás: kiértékelés balról jobbra kiértékelése ST1 T1=TRUE STA? ST2 T2=TRUE
104 Kiértékelés balról jobbra ST1 T1 STA * ST2 T2 Amíg STA aktív, addig az átmeneteket folyamatosan kiértékeljük balról jobbra haladva Az első igazra kiértékelődő Ti átmenet deaktiválja STA-t és aktiválja STi-t
105 Kiértékelés felhasználó által megadott prioritással STA * 2 1 T1 ST1 ST2 T2 Az átmeneteket a megadott sorrendben értékeljük ki Az alacsonyabb érték jelzi a magasabb prioritást
106 Kiértékelés felhasználói irányítással ST1 T1 STA ST2 T2 Az átmenetek kiértékelésének sorrendje nem meghatározott A felhasználónak kell biztosítania, hogy a feltételek kölcsönösen kizáróak legyenek
107 Divergens utak - megjegyzés A legtöbb fejlesztői környezet csak a standard (balról jobbra haladó) kiértékelést támogatja T1=TRUE STA T2=TRUE Ebben az esetben a jelölésből kimarad a * ST1 ST2
108 Divergens utak találkozása ST1 T1 ST2 T2 STA-t akkor aktiváljuk, ha STi aktív és Ti igazra értékelődik ki STA Ugyanekkor STi-t deaktiváljuk
109 ST1 ST2 ST3 T1 T2 TB1 Divergens utak: szekvencia-hurok TB2 Előd-lépéshez visszakanyarodó divergens út Tetszőleges prioritás-modell használható ST4 Divergens elágazás
110 Divergens utak szekvencia átugrása STA T1 ST1 T3 Az STA lépést átugorjuk, ha T3 igazra értékelődik ki (miközben T1 hamis) T2 ST2
111 Párhuzamos végrehajtás STA T Ha STA aktív és T igazra értékelődik ki, akkor STA-t deaktiváljuk és az összes STi-t aktiváljuk ST1 ST2 A token osztódik
112 Párhuzamos szekvenciák találkozása ST1 STA T ST2 STA-t akkor aktiváljuk, ha T igazra értékelődik ki ÉS Az összes ST1 STn lépés aktív Ekkor az osztódott tokenek egyesülnek
113 Nem biztonságos hálózatok S2 S1 T1 S3 S4 T3 T2 S5 T4 T5 Ha egy hálózatban az állapotok aktiválása nem kontrollált módon történik (lehetséges több token jelenléte párhuzamos szekvenciákon kívül), akkor a hálózat nem biztonságos (unsafe) A nem biztonságos hálózatok fordításkor hibát okoznak
114 Nem biztonságos hálózatok S2 S1 T1 S3 S4 T3 T2 S5 T4 T5 Ha egy hálózatban az állapotok aktiválása nem kontrollált módon történik (lehetséges több token jelenléte párhuzamos szekvenciákon kívül), akkor a hálózat nem biztonságos (unsafe) A nem biztonságos hálózatok fordításkor hibát okoznak
115 S1 Nem elérhető hálózatok S2 T1 S3 A holtpontot tartalmazó hálózatok nem elérhetők (unreachable) S4 T2 S5 T4 A nem elérhető hálózatok hibát okoznak fordítás során T3 S6 T5
116 Lépések Téglalap és azonosító: StepName Lépés flag: StepName.X Logikai változó, értéke igaz, ha az adott lépés aktív Lépésidő: StepName.T Időtartam-változó, értéke a lépés aktiválása óta eltelt idő Értéke a lépés deaktiválásakor befagyasztódik, aktiválásakor t#0s ról indul újra A lépés-flag és a lépésidő csak olvashatók S3
117 Kezdeti lépés Jelölés: kettős körvonal Tetszőleges azonosító A hozzá tartozó lépés-flag kezdeti értéke TRUE Minden hálózat egy és csakis egy kezdeti lépést tartalmaz S0
118 Lépések szöveges megadása Lépés STEP StepName (* step body *) END_STEP Kezdeti lépés INITIAL_STEP StepName (* step body *) END_STEP A szöveges megadás lehetősége a szabványban szerepel, de a fejlesztői környezetek általában nem támogatják
119 Átmenetek Vízszintes vonal a lépéseket összekötő függőleges élen Minden átmenethez egy és csakis egy feltétel tartozik Logikai értékű kifejezés Az átmenet akkor tüzel, ha igazra értékelődik ki Feltétel nélküli átmenetek konstans TRUE feltétellel valósíthatók meg S3 S4 T2
120 Átmenetek szöveges megadása TRANSITION TranName FROM Step1 TO Step2 (*body *) END_TRANSITION A szabványban szerepel, de a fejlesztői környezetek általában nem támogatják
121 Átmenet-feltételek megadása Közvetlen megadás ST nyelven STA %IX2.4 & MyBool & (MyInt>7) STB
122 Átmenet-feltételek megadása Közvetlen megadás LD vagy FBD nyelven %IX0.2 %IX0.5 STA %IX0.2 %IX0.5 & STA STB STB Az összekötők használata megengedett %IX0.2 %IX0.5 CONN CONN
123 Átmenet-feltételek megadása Közvetett módon az átmenet nevével STA TranName STB TRANSITION TranName FROM STA TO STB: (* LD, IL, FB, ST *) END_TRANSITION
124 Átmenet-feltétel törzse ST: hozzárendelés egy kifejezéshez (bal oldalon hiányzik a változó) :=Var1 & Var2; IL: A feltétel értéke az akkumulátor értéke az utolsó művelet után LD FBD LD Var1 AND Var2 Var1 Var2 Var1 Var2 & TranName TranName Átmenet nevével megegyező kimenet
125 Akciók (actions) Minden lépéshez nulla vagy több akció rendelhető Logikai akció: logikai változó, amit az akció állít be Nem logikai akció: IL utasítások ST műveletek LD hálózatok FBD hálózatok Egy másik SFC
126 Nem-logikai akciók deklarálása LD, FBD, SFC: grafikus deklaráció (implementációfüggő, általában a POU-kkal megegyező módon) ST, IL: ACTION kulcsszó ACTION MyAction: %Q0.1:=%IX0.0 & Step8.X; END_ACTION
127 Lépések és akciók hozzárendelése Grafikusan: a lépéshez kapcsolt akcióblokk(okk)al STA Akcióminősítés Akció név Indikátor változó STB Akcióminősítés Akcióminősítés Akció név Akció név Indikátor változó Indikátor változó
128 Közvetlen akciódefiníció Logikai akció: ha létezik az akcióéval megegyező nevű VAR vagy VAR_OUT típusú változó, akkor az lesz a logikai akció Műveletek vagy hálózatok: az akció törzse az akcióblokkon belül is megadható (ekkor az akciónév más akcióblokkokban nem használható) STA Akció minősítés Akció név Indikátor változó %Q0.1:=STA.X & %I0.2; Timer1(IN:=%I0.3,Q=>MyBool);
129 Lépések és akciók hozzárendelése Szövegesen: a STEP blokkokban STEP StepName ActionName(Qual,QualParameter,IndVar); END_STEP A fejlesztői környezettől függő módon Általában akcióblokk Az akció törzse külön ablakban szerkeszthető
130 Az akcióblokk szerkezete Akcióminősítés Akciónév Indikátor változó Megadja, hogyan hajtódik végre az adott akció a lépés aktiválása után (action qualifier) Opcionális logikai változó, amit az akció állít be, hogy sikeres befejezést, hibát stb. jelezzen (a gyakorlatban nem használt) Azonosítja az akciót (logikai VAR vagy VAR_OUT változó, Action azonosító)
131 Akcióvezérlés A felhasználó elől rejtett blokk Az akcióminősítéstől függően állítja a flageket: Akció-flag (Q) nem logikai akciók esetén ActionName.Q néven érhető el Aktivitás-flag (A) csak nem logikai akciók esetén Logikai akció: a változót az akció-flag értékére állítjuk Nem logikai akció: ciklikusan fut, amíg az aktivitás-flag TRUE értékű
132 Aktivitás-flag Az akció-flaggel együtt állítódik be, annak lefutó éle után még egy ciklus idejéig aktív Az akció adott végrehajtási ciklusa az utolsó, ha Action.Q = FALSE)&(Action.A = TRUE) Q Egy ciklus A t
133 Aktivitás-flag A fejlesztői környezetek többségében nem érhető el közvetlenül Hasonló konstrukciók Exit akció egyszer, a lépés deaktiválásakor fut le Az akcióból elérhető Last Scan bit az utolsó végrehajtáskor aktív
134 Akcióminősítések Minősítés None / N R S L D P SD DS SL P1 P0 Értelmezés Nem tárolt (Non-stored, null qualifier) Reset (Overriding Reset, tárolt akcióra) Tárolt (Set, Stored) Időben korlátozott (Time Limited) Időben késleltetett (Time Delayed) Impulzus (Pulse) Tárolt és késleltetett (Stored and Delayed) Késleltetett és tárolt (Delayed and Stored) Tárolt és korlátozott (Stored and Limited) Felfutó él érzékeny (Pulse (rising edge)) Lefutó él érzékeny (Pulse (falling edge))
135 Nem tárolt akció A Q akció-flag a lépés-flag másolata ST1 N A1 T1 ST2 ST1.X A1.Q t
136 Tárolt akció ST1 S A1 A Reset művelet magasabb prioritású ST7 R A1 ST1.X ST7.X A1.Q t
137 Időben korlátozott akció A Q akció-flag a lépés aktiválásával állítódik be Annak deaktiválásáig, de legfeljebb a megadott ideig aktív ST1 L T#1s A1 ST1.X A1.Q 1 sec 1 sec t
138 Időben késleltetett akció A Q akció-flag a lépés aktiválása után megadott idővel állítódik be, ha a lépés akkor még aktív A lépés deaktiválásakor törlődik ST1 D T#1s A1 ST1.X 1 sec 1 sec A1.Q t
139 Impulzus-akció Az akció-flag a lépés aktiválása után egyetlen ciklus idejéig aktív Egyes fejlesztői környezetekben külön Entry Action definiálható ST1 P A1 ST1.X A1.Q Egy ciklus A1.A t
140 Tárolt és késleltetett akció A Q akció-flag a lépés aktiválása után megadott idővel állítódik be, akkor is, ha a lépés már nem aktív Csak Reset-akció törli ST1 SD T#1s A1 ST7 R A1 ST1.X ST7.X A1.Q 1 sec t
141 Késleltetett és tárolt akció A Q akció-flag a lépés aktiválása után megadott idővel állítódik be, amennyiben a lépés még aktív Csak Reset-akció törli, az állapot deaktiválása nem ST1 DS T#1s A1 ST7 R A1 ST1.X ST7.X A1.Q 1 sec 1 sec t
142 Tárolt és korlátozott akció A Q akció-flag a lépés aktiválásakor állítódik be A megadott idő után törlődik a lépés aktivitásától függetlenül ST1 SL T#1s A1 ST1.X 1 sec 1 sec A1.Q t
143 P1 és P0 impulzus-akciók A szabványban definiáltak, de a fejlesztői környezetek általában nem implementálják (helyettük más megoldások) A P1 és P0 akcióminősítések logikai akciókra nem értelmezettek (hatástalanok) Csaj az aktivitás flaget állítják, az akció flaget nem ST1.X A2.Q ST1 P1 A2 P0 A3 A2.A A3.Q A3.A t
144 Időzített minősítések Egy akció csak egy időzített minősítéshez kapcsolható L D SD DS SL S6 L T#10m D T#10m Action1 Action1
145 N R S L P RS S R1 Q TON IN PT Q & R_TRIG CLK Q & Akcióvezérlő logika Q A T bemenet az időzített akciók időzítését adja meg SD RS S R1 Q TON IN PT Q >=1 DS TON IN PT Q RS S R1 Q SL T P1 P0 RS S R1 Q TON IN PT Q & R_TRIG CLK Q F_TRIG CLK Q F_TRIG CLK Q >=1 A
146 Példa Egy keverővel is ellátott autokláv a következő üzemmódokban működik: Mosás: a tartályt megtöltjük vízzel, majd 10 percen át fűtjük. Ezután bekapcsoljuk a keverőt, és addig működtetjük, amíg a víz hőmérséklete 30 fok alá nem süllyed, majd kiszivattyúzzuk a vizet. Termelés: a tartályba a megadott mennyiségű hatóanyagot (7 egység) és oldószert (30 egység) szivattyúzzuk, majd az elegyet 10 percig fűtjük. Ezután bekapcsoljuk a keverőt, és addig működtetjük, amíg az oldat hőmérséklete 30 fok alá nem süllyed, majd kiszivattyúzzuk azt.
147 ProdBtn Térfogatkiszorítás elvén működő átfolyásmérők SPulse Oldószer Mosóvíz Hőmérsékletérzékelő Temp APulse SPump WPump High Szintérzékelők APump Hatóanyag Mixer Keverő Low Kitárolás W P WashBtn ProdBtn Üzemmódválasztó nyomógombok Heater Fűtőszál OutPump
148 Bemenetek Változó Típus Értelmezés APulse BOOL Hatóanyag-átfolyásmérő: felfutó éle egy egység betárolását jelzi SPulse BOOL Oldószer-átfolyásmérő: felfutó éle egy egység betárolását jelzi High BOOL Szintérzékelő teli szint (0: szint alatta, 1: szint felette) Low BOOL Szintérzékelő üres szint (0: szint alatta, 1: szint felette) WashBtn BOOL Mosás üzemmódválasztó nyomógomb ProdBtn BOOL Termelés üzemmódválasztó nyomógomb Temp USINT Folyadék hőmérséklete [ ] Kimenetek Változó Típus Értelmezés WPump BOOL Mosóvíz szivattyú (0: ki, 1: be) SPump BOOL Oldószer szivattyú (0: ki, 1: be) APump BOOL Hatóanyag szivattyú (0: ki, 1: be) OutPump BOOL Kitároló szivattyú ürítés (0: ki, 1: be) Mixer BOOL Keverő (0: ki, 1: be) Heater BOOL Fűtés (0: ki, 1: be)
149 Betárolt mennyiség számlálása APulse és SPulse felfutó éleit számoljuk A betárolt mennyiséget az AIn és SIn változókba töltjük A számlálókat kitároláskor nullázzuk ACTION CountAPulse: CntA(CU:=APulse, R:=NOT LOW, CV=>AIn); END_ACTION ACTION CountSPulse: CntS(CU:=SPulse, R:=NOT LOW, CV=>SIn); END_ACTION
150 PROGRAM MAIN VAR_INPUT APulse AT %IX0.0: BOOL; Spulse AT %IX0.1: BOOL; Low AT %IX0.2: BOOL; High AT %IX0.3: BOOL; END_VAR VAR_OUTPUT END_VAR VAR END_VAR WashBtn AT %IX0.4: BOOL; ProdBtn AT %IX0.5: BOOL; Temp AT %IB0.0: USINT; APump AT %QX0.0: BOOL; SPump AT %QX0.1: BOOL; WPump AT %QX0.2: BOOL; OutPump AT %QX0.3: BOOL; Heater AT %QX0.4: BOOL; Mixer AT %QX0.5: BOOL; Ain, Sin: INT; CntS, CntR: CTU; ACTION CountAPulse: CntA( ); END_ACTION CU:=APulse, R:=NOT LOW, CV=>Ain ACTION CountSPulse: CntS( ); END_ACTION CU:=SPulse, R:=NOT LOW, CV=>Sin
151 S0 WashBtn ProdBtn S1 N WPump S2 N SPump S4 N CountSPulse High SIn=30 N APump N CountAPulse AIn=7 S3 S5 1 (Temp<30)&(S6.T>=T#10 min) S6 L T#10m D T#10m Heater Mixer S7 N OutPump Low=0
152 Példa- Akciók Akció Wpump Spump Apump CountSPulse CountAPulse Heater Mixer OutPump Magyarázat A mosóvíz szivattyút működtető bit (logikai akció) Az oldószer szivattyút működtető bit (logikai akció) A hatóanyag-szivattyút működtető bit (logikai akció) Betárolt oldószer-mennyiség (SIn) mérése átfolyásmérő impulzusait számláló akció (nem logikai) Betárolt hatóanyag-mennyiség (AIn) mérése átfolyásmérő impulzusait számláló akció (nem logikai) A fűtést működtető bit (logikai akció) A keverőt működtető bit (logikai akció) A kitároló szivattyút működtető bit (logikai akció)
Irányítástechnika 1. 10. Elıadás. PLC-k programozása
rányítástechnika 1 10. Elıadás PLC-k programozása rodalom - Helmich József: rányítástechnika, 2005 - Zalotay Péter: PLC tanfolyam - Jancskárné Anweiler ldikó: PLC programozás az EC 1131-3 szabvány szerint,
A BECKHOFF típusú PLC használata.
A BECKHOFF típusú PLC használata. Miskolci Egyetem 2007. 2 1. A PLC rendszer általános áttekintése. A BECKHOFF cég által kifejlesztett TwinCAT fantázianevű PLC család egy WINDOWS operációs rendszerre alapozott
Ütem Lámpafázisok A számláló értéke ütemmerker 1 P 0 M1 2 P 1 M2 3 P S 2 M3 4 Z 3 M4 5 Z 4 M5 6 Z 5 M6 7 Z 6 M7 8 S 7 M8
Ütemvezérelt lefutóvezérlések Közlekedési lámpa vezérlése Egy közlekedési lámpa 3 időegységig piros, ahol a 3. időegységben a piros mellett a sárga lámpa is világít. Ezután 4 időegység zöld fázis következik.
Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék. Önálló laboratórium
Budapesti Műszaki és Gazdaságtudományi Egyetem Villamosmérnöki és Informatikai Kar Irányítástechnika és Informatika Tanszék Önálló laboratórium (BMEVIIIA355) Téma: Eaton-Moeller PLC-k alkalmazástechnikája
1. eset: a háromból két motor 5 s-nál hosszabb ideig leáll. (Időkésleltetett jelzés). 2. eset: mindhárom motor leáll. (Azonnali jelzés).
Digitális vezérlések Saját készítésű függvényblokk: Motorblokkok felügyelete A feladat: 2 db, A,B,C motorból álló motorblokk felügyelete. Minden motorhoz tartozik egy fordulatszámjelző, amely folyamatos
Irányítástechnika 1. 9. Elıadás. PLC-k programozása
Irányítástechnika 1 9. Elıadás PLC-k programozása Irodalom - Helmich József: Irányítástechnika I, 2005 - Zalotay Péter: PLC tanfolyam - Jancskárné Anweiler Ildikó: PLC programozás az IEC 1131-3 szabvány
Készítette: Oláh István mestertanár
BME Automatizálási és Alkalmazott Informatikai Tanszék Villamos laboratórium 1. PLC-k programoza sa Mérési útmutató Készítette: Oláh István mestertanár (olah.istvan@aut.bme.hu) 2014. szeptember Bevezetés
Elemi adat típusok. Méret (Bit)
Elemi adat típusok GLOFA PLC az alábbi adatok használatát teszi lehetővé. N o Jelölés Adat típus Méret (Bit) Tartomány 1 SINT 2 INT 3 DINT Rövid egész szám Short integer Egész szám Integer Dupla egész
PLC programozási nyelvek
PLC programozási nyelvek Készítette: Csinger Nikolett, Lukács Péter, Sallai Gábor és Voura Dávid 1. Bevezetés A PLC-k fejlődése során több gyártó is próbálta megalkotni azt a programozási szabványt, amely
BASH script programozás II. Vezérlési szerkezetek
06 BASH script programozás II. Vezérlési szerkezetek Emlékeztető Jelölésbeli különbség van parancs végrehajtása és a parancs kimenetére való hivatkozás között PARANCS $(PARANCS) Jelölésbeli különbség van
Követővezérlés időzítőkkel
Követővezérlés időzítőkkel Szállítószalagok együttes vezérlése A kikapcsolás-késleltetéses időzítő tipikus alkalmazására láthatunk példát a következő feladat megoldásában, ahol a szilárd anyag feltorlódását
1. Alapok. #!/bin/bash
1. oldal 1.1. A programfájlok szerkezete 1. Alapok A bash programok tulajnképpen egyszerű szöveges fájlok, amelyeket bármely szövegszerkesztő programmal megírhatunk. Alapvetően ugyanazokat a at használhatjuk
Az IEC 61131-3 szabvány szoftvermodellje
Az IEC 61131-3 szabvány szoftvermodellje Folyamatszabályozás Kovács Gábor gkovacs@iit.bme.hu A SMORES-elv A jó program Scalable? MOdular Reusable Extensible Simple Áttekintés CONFIGURATION RESOURCE VAR
file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>
I. Alapok Interaktív shell-ben vagy shell-scriptben megadott karaktersorozat feldolgozásakor az első lépés a szavakra tördelés. A szavakra tördelés a következő metakarakterek mentén zajlik: & ; ( ) < >
Programozás II. 2. Dr. Iványi Péter
Programozás II. 2. Dr. Iványi Péter 1 C++ Bjarne Stroustrup, Bell Laboratórium Első implementáció, 1983 Kezdetben csak precompiler volt C++ konstrukciót C-re fordította A kiterjesztés alapján ismerte fel:.cpp.cc.c
5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI
5. KOMBINÁCIÓS HÁLÓZATOK LEÍRÁSÁNAK SZABÁLYAI 1 Kombinációs hálózatok leírását végezhetjük mind adatfolyam-, mind viselkedési szinten. Az adatfolyam szintű leírásokhoz az assign kulcsszót használjuk, a
Szkriptnyelvek. 1. UNIX shell
Szkriptnyelvek 1. UNIX shell Szkriptek futtatása Parancsértelmez ő shell script neve paraméterek shell script neve paraméterek Ebben az esetben a szkript tartalmazza a parancsértelmezőt: #!/bin/bash Szkriptek
Algoritmizálás és adatmodellezés tanítása 1. előadás
Algoritmizálás és adatmodellezés tanítása 1. előadás Algoritmus-leíró eszközök Folyamatábra Irányított gráf, amely csomópontokból és őket összekötő élekből áll, egyetlen induló és befejező éle van, az
Java II. I A Java programozási nyelv alapelemei
Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2008. 02. 19. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve az annak
AWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa
A függvény kód szekvenciáját kapcsos zárójelek közt definiáljuk, a { } -ek közti részt a Bash héj kód blokknak (code block) nevezi.
Függvények 1.Függvények...1 1.1.A függvény deníció szintaxisa... 1..Függvények érték visszatérítése...3 1.3.Környezettel kapcsolatos kérdések...4 1.4.Lokális változók használata...4 1.5.Rekurzív hívások...5.kód
1. Jelölje meg az összes igaz állítást a következők közül!
1. Jelölje meg az összes igaz állítást a következők közül! a) A while ciklusban a feltétel teljesülése esetén végrehajtódik a ciklusmag. b) A do while ciklusban a ciklusmag után egy kilépési feltétel van.
Hardver leíró nyelvek (HDL)
Hardver leíró nyelvek (HDL) Benesóczky Zoltán 2004 A jegyzetet a szerzıi jog védi. Azt a BME hallgatói használhatják, nyomtathatják tanulás céljából. Minden egyéb felhasználáshoz a szerzı belegyezése szükséges.
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. március 3. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja Miért
Mintavételes szabályozás mikrovezérlő segítségével
Automatizálási Tanszék Mintavételes szabályozás mikrovezérlő segítségével Budai Tamás budai.tamas@sze.hu http://maxwell.sze.hu/~budait Tartalom Mikrovezérlőkről röviden Programozási alapismeretek ismétlés
Laborsegédlet 3. Labor
1/6. oldal Logisztikai rendszerek irányítás és automatizálás technikája I. CX-Programmer: 3. Labor A CX Programmer az OMRON PLC-k programozó szoftvere. Új program megnyitásának lépései: FILE NEW Device
S z á m í t ó g é p e s a l a p i s m e r e t e k
S z á m í t ó g é p e s a l a p i s m e r e t e k 7. előadás Ami eddig volt Számítógépek architektúrája Alapvető alkotóelemek Hardver elemek Szoftver Gépi kódtól az operációs rendszerig Unix alapok Ami
Szoftvertervezés és -fejlesztés I.
Szoftvertervezés és -fejlesztés I. Operátorok Vezérlési szerkezetek Gyakorlás 1 Hallgatói Tájékoztató A jelen bemutatóban található adatok, tudnivalók és információk a számonkérendő anyag vázlatát képezik.
2. tartály tele S3 A tartály tele, ha: S3=1 I 0.2. 3. tartály tele S5 A tartály tele, ha: S5=1 I 0.4
Követővezérlés tárolással Tárolótartályrendszer: feltöltés vezérlése Három tárolótartály tele állapotát az S1, S3, S5 jeladók, az üres jelet az S2, S4, S6 jeladók szolgáltatják az előbbi sorrendben. A
Java programozási nyelv
Java programozási nyelv 2. rész Vezérlő szerkezetek Nyugat-Magyarországi Egyetem Faipari Mérnöki Kar Informatikai Intézet Soós Sándor 2005. szeptember A Java programozási nyelv Soós Sándor 1/23 Tartalomjegyzék
Mielıtt használná termékünket 702008035. Az eltérı környezeti körülmény elektromos áramütést, tüzet, hibás mőködést vagy. okozhat.
. Adatlap G rogrammable ogic Controller GOFA-GM Sorozat GM-DR20/0/0/0A Mielıtt használná termékünket 02000 Olvassa el ezt az adatlapot figyelmesen különösen ügyelve a kezelésre, beépítésre, beszerelésre
Programozási nyelvek (ADA)
Programozási nyelvek (ADA) Kozsik Tamás előadása alapján Készítette: Nagy Krisztián 1. előadás Hasznos weboldal http://kto.web.elte.hu Program felépítése Programegységek (program unit) eljárások (procedure)
A C# programozási nyelv alapjai
A C# programozási nyelv alapjai Tisztán objektum-orientált Kis- és nagybetűket megkülönbözteti Ötvözi a C++, Delphi, Java programozási nyelvek pozitívumait.net futtatókörnyezet Visual Studio fejlesztőkörnyezet
AWK programozás, minták, vezérlési szerkezetek
10 AWK programozás, minták, vezérlési szerkezetek AWK futtatási módok AWK parancs, közvetlen programkódmegadás: awk 'PROGRAMKÓD' FILE példa: ls -l awk '{print $1, $5}' a programkód helyére minden indentálás
Java II. I A Java programozási nyelv alapelemei
Java2 / 1 Java II. I A Java programozási nyelv alapelemei Miskolci Egyetem Általános Informatikai Tanszék Utolsó módosítás: 2009. 02. 09. Java II.: Alapelemek JAVA2 / 1 A Java formalizmusa A C, illetve
Komputeralgebra Rendszerek
Komputeralgebra Rendszerek Programozás Czirbusz Sándor ELTE IK, Komputeralgebra Tanszék 2014. február 23. TARTALOMJEGYZÉK 1 of 28 TARTALOMJEGYZÉK I 1 TARTALOMJEGYZÉK 2 Értékadás MAPLE -ben SAGE -ben 3
Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!
A PL/SQL alapelemei Karakterkészlet Az angol ABC kis- és nagybetűi: a-z, A-Z Számjegyek: 0-9 Egyéb karakterek: ( ) + - * / < > =! ~ ^ ; :. ' @ %, " # $ & _ { }? [ ] Szóköz, tabulátor, kocsivissza A kis-
Újrakonfigurálható eszközök
Újrakonfigurálható eszközök 5. A Verilog sűrűjében: véges állapotgépek Hobbielektronika csoport 2017/2018 1 Debreceni Megtestesülés Plébánia Felhasznált irodalom és segédanyagok Icarus Verilog Simulator:
A programozás alapjai
A programozás alapjai Változók A számítógép az adatokat változókban tárolja A változókat alfanumerikus karakterlánc jelöli. A változóhoz tartozó adat tipikusan a számítógép memóriájában tárolódik, szekvenciálisan,
Informatika terméktervezőknek
Informatika terméktervezőknek C# alapok Névterület (namespace) using Osztály (class) és Obejtumok Metódus (function, procedure, method) main() static void string[] arg Szintaxis // /* */ \n \t Névadások
Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r
Programozás (GKxB_INTM021) Széchenyi István Egyetem, Gy r 2018. február 18. Minimum és maximumkeresés u s i n g n a m e s p a c e s t d ; i n t main ( ) { c o u t
AWK programozás Bevezetés
09 AWK programozás Bevezetés AWK adatvezérelt szkriptnyelv text processing, adat kiterjesztés, tagolt adatok automatizált soronkénti feldolgozása a forrásállományt soronként beolvassa és feldolgozhatóvá
Occam 1. Készítette: Szabó Éva
Occam 1. Készítette: Szabó Éva Párhuzamos programozás Egyes folyamatok (processzek) párhuzamosan futnak. Több processzor -> tényleges párhuzamosság Egy processzor -> Időosztásos szimuláció Folyamatok közötti
Szoftvertechnológia alapjai Java előadások
Szoftvertechnológia alapjai Java előadások Förhécz András, doktorandusz e-mail: fandrew@mit.bme.hu tárgy honlap: http://home.mit.bme.hu/~fandrew/szofttech_hu.html A mai előadás tartalma: Miért pont Java?
DIGITÁLIS TECHNIKA 7. Előadó: Dr. Oniga István
IGITÁLIS TECHNIKA 7 Előadó: r. Oniga István Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók S tárolók JK tárolók T és típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók
Apple Swift kurzus 3. gyakorlat
Készítette: Jánki Zoltán Richárd Dátum: 2016.09.20. Apple Swift kurzus 3. gyakorlat Kollekciók: Tömb: - let array = [] - üres konstans tömb - var array = [] - üres változó tömb - var array = [String]()
Digitális ki-bemenetek kezelése, bitszintű műveletek
4. Laborgyakorlat Digitális ki-bemenetek kezelése, bitszintű műveletek A gyakorlat célja A gyakorlat során a digitális ki-bemenetek kezelését vizsgáljuk, ezek programozását létralogika és STL programozási
Folyamatmodell irányítása 1-2
Tartalomjegyzék Folyamatmodell irányítása 1-2 Mérési útmutató Folyamatirányítás laboratórium Összeállította: Kovács Gábor gkovacs@iit.bme.hu Budapesti Műszaki és Gazdaságtudományi Egyetem Irányítástechnika
Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 2. előadás Szintaktikai alapok Alapvető típusok, ismétlés C# típus.net típus Méret (byte) Leírás byte System.Byte 1Előjel nélküli 8 bites egész szám (0..255) char
Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED
UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED AWK - szintaxis, vezérlési szerkezetek Operációs rendszerek 11. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Csuvik
SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS
SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS 2.ELŐADÁS A VB programozási nyelv Az Excel programozása 2 A VB programozási nyelv Adattípusok Adatok kezelése Vezérlőszerkezetek Adattípusok és műveletek Egész adattípusok
Programozható logikai vezérlő
PROGRAMABLE LOGIC CONTROLLER Programozható logikai vezérlő Vezérlés fejlődése Elektromechanikus (relés) vezérlések Huzalozott logikájú elektronikus vezérlések Számítógépes, programozható vezérlők A programozható
Vezérlési szerkezetek
Vezérlési szerkezetek Szelekciós ok: if, else, switch If Segítségével valamely ok végrehajtását valamely feltétel teljesülése esetén végezzük el. Az if segítségével valamely tevékenység () végrehajtását
... S n. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak.
Párhuzamos programok Legyen S parbegin S 1... S n parend; program. A párhuzamos programszerkezet két vagy több folyamatot tartalmaz, melyek egymással közös változó segítségével kommunikálnak. Folyamat
Készítette: Nagy Tibor István
Készítette: Nagy Tibor István Operátorok Műveletek Egy (vagy több) műveleti jellel írhatók le A műveletet operandusaikkal végzik Operátorok fajtái operandusok száma szerint: egyoperandusú operátorok (pl.:
Dr. Oniga István DIGITÁLIS TECHNIKA 8
Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók
Programozható Logikai Vezérlő
4. előadás Tartalom: A feladata A felépítése, típusai, részegységei Programnyelvek Programozás (FST) FESTO -k bemutatása (FEC20-DC, ) FEC programozása FST bemutatása Automatizálástechnika I. előadás Farkas
Programozás I. 3. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar
Programozás I. 3. gyakorlat Szegedi Tudományegyetem Természettudományi és Informatikai Kar Antal Gábor 1 Primitív típusok Típus neve Érték Alap érték Foglalt tár Intervallum byte Előjeles egész 0 8 bit
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós augusztus 29. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2019. augusztus 29. Feladat: írjuk ki az els 10 természetes szám négyzetét! #i n c l u d e i n t main ( v o i d ) { p r
Webprogramozás szakkör
Webprogramozás szakkör Előadás 5 (2012.04.09) Programozás alapok Eddig amit láttunk: Programozás lépései o Feladat leírása (specifikáció) o Algoritmizálás, tervezés (folyamatábra, pszeudokód) o Programozás
Programozás alapjai. (GKxB_INTM023) Dr. Hatwágner F. Miklós október 11. Széchenyi István Egyetem, Gy r
Programozás alapjai (GKxB_INTM023) Széchenyi István Egyetem, Gy r 2018. október 11. Függvények Mi az a függvény (function)? Programkód egy konkrét, azonosítható, paraméterezhet, újrahasznosítható blokkja
Függvények. Programozás I. Hatwágner F. Miklós november 16. Széchenyi István Egyetem, Gy r
Programozás I. Széchenyi István Egyetem, Gy r 2014. november 16. Áttekintés kel kapcsolatos fogalmak deklaráció Több, kompatibilis változat is elképzelhet. Meg kell el znie a fv. hívását. Mindenképp rögzíti
Kifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezések Lexika Szintaktika Szemantika Lexika azonosítók (változó-, metódus-, típus- és csomagnevek) literálok operátorok, pl. + zárójelek: (), [], {},
A C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
SZOCIÁLIS ÉS MUNKAÜGYI MINISZTÉRIUM
SZOCIÁLIS ÉS MUNKAÜGYI MINISZTÉRIUM MK/HU Érvényességi idő: 2009. 10. 05. 10:20. a vizsgakezdés szerint. Minősítő neve, beosztása: Nagy László s.k. NSZFI főigazgató Készítő szerv: Nemzeti Szakképzési és
Kifejezések. Kozsik Tamás. December 11, 2016
Kifejezések Kozsik Tamás December 11, 2016 Kifejezés versus utasítás C/C++: kifejezés plusz pontosvessző: utasítás kiértékeli a kifejezést jellemzően: mellékhatása is van például: értékadás Ada: n = 5;
5. Laborgyakorlat. Számláló funkciók, időzítő funkciók.
5. Laborgyakorlat Számláló funkciók, időzítő funkciók. A gyakorlat célja A számlálók és időzítők használata gyakori a folyamatirányításban. Gondoljunk egy futószalag indításának a késleltetésére, megállításánál
Kiterjesztések sek szemantikája
Kiterjesztések sek szemantikája Példa D Integer = {..., -1,0,1,... }; D Boolean = { true, false } D T1... T n T = D T 1... D Tn D T Az összes függvf ggvény halmaza, amelyek a D T1,..., D Tn halmazokból
Verilog HDL ismertető 2. hét : 1. hét dia
BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Verilog HDL ismertető 2. hét : 1. hét + 15 25 dia Fehér Béla, Raikovich
Bevezetés Tartalomjegyzék
Bevezetés Tartalomjegyzék Bevezetés... 7 A példatár felépítése... 8 1. Bevezetés a vezérléstervezésbe... 9 1.1. Az algoritmus megadása... 10 1.2. Irányítástechnikai programozási nyelvek... 12 1.3. Vezérlő
A fordítóprogramok szerkezete. Kódoptimalizálás. A kódoptimalizálás célja. A szintézis menete valójában. Kódoptimalizálási lépések osztályozása
A fordítóprogramok szerkezete Forrásprogram Forrás-kezelő (source handler) Kódoptimalizálás Fordítóprogramok előadás (A,C,T szakirány) Lexikális elemző (scanner) Szintaktikus elemző (parser) Szemantikus
PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv
PHP A PHP rövidítés jelentése hivatalosan: PHP Hypertext Preprocessor. Ez egy kiszolgáló-oldali parancsnyelv, amit jellemzően HTML oldalakon használnak. A különbség a két nyelv között az, hogy a kiszolgáló
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása. Majzik István BME Méréstechnika és Információs Rendszerek Tanszék
Az UPPAAL egyes modellezési lehetőségeinek összefoglalása Majzik István BME Méréstechnika és Információs Rendszerek Tanszék Résztvevők együttműködése (1) Automaták interakciói üzenetküldéssel Szinkron
BASH SCRIPT SHELL JEGYZETEK
BASH SCRIPT SHELL JEGYZETEK 1 TARTALOM Paraméterek... 4 Változók... 4 Környezeti változók... 4 Szűrők... 4 grep... 4 sed... 5 cut... 5 head, tail... 5 Reguláris kifejezések... 6 *... 6 +... 6?... 6 {m,n}...
Programozás I. 1. előadás: Algoritmusok alapjai. Sergyán Szabolcs
Programozás I. 1. előadás: Algoritmusok alapjai Sergyán Szabolcs sergyan.szabolcs@nik.uni-obuda.hu Óbudai Egyetem Neumann János Informatikai Kar Alkalmazott Informatikai Intézet 2015. szeptember 7. Sergyán
Programozási nyelvek Python
Programozási nyelvek Python A nyelv története és jellemzői 2 A nyelv története Tervező Guido van Rossum (1956, Hollandia) Befolyásoló nyelvek ABC (pl. blokkok jelölése behúzással); Modula-3; C; C++; Unix
Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe
Mechatronika és mikroszámítógépek 2017/2018 I. félév Bevezetés a C nyelvbe A C programozási nyelv A C egy általános célú programozási nyelv, melyet Dennis Ritchie fejlesztett ki Ken Thompson segítségével
Mérési jegyzőkönyv. az ötödik méréshez
Mérési jegyzőkönyv az ötödik méréshez A mérés időpontja: 2007-10-30 A mérést végezték: Nyíri Gábor kdu012 mérőcsoport A mérést vezető oktató neve: Szántó Péter A jegyzőkönyvet tartalmazó fájl neve: ikdu0125.doc
Lekérdezések az SQL SELECT utasítással
Lekérdezések az SQL SELECT utasítással Az SQL SELECT utasítás lehetőségei Vetítés Kiválasztás 1. tábla 1. tábla Összekapcsolás 1. tábla 2. tábla Elemi SELECT utasítások SELECT * {[DISTINCT] column expression
Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás
Járműfedélzeti rendszerek II. 2. előadás Dr. Bécsi Tamás 4.11. A C előfeldolgozó rendszer A fordítás első lépése a C esetében a különböző nyelvi kiterjesztések feldolgozása: másik állomány tartalmának
Laborgyakorlat 3 A modul ellenőrzése szimulációval. Dr. Oniga István
Laborgyakorlat 3 A modul ellenőrzése szimulációval Dr. Oniga István Szimuláció és verifikáció Szimulációs lehetőségek Start Ellenőrzés után Viselkedési Funkcionális Fordítás után Leképezés után Időzítési
A C programozási nyelv I. Bevezetés
A C programozási nyelv I. Bevezetés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv I. (bevezetés) CBEV1 / 1 A C nyelv története Dennis M. Ritchie AT&T Lab., 1972 rendszerprogramozás,
2019/02/11 10:01 1/10 Logika
2019/02/11 10:01 1/10 Logika < Számítástechnika Logika Szerző: Sallai András Copyright Sallai András, 2011, 2012, 2015 Licenc: GNU Free Documentation License 1.3 Web: http://szit.hu Boole-algebra A Boole-algebrát
DIGITÁLIS TECHNIKA 8 Dr Oniga. I stván István
Dr. Oniga István DIGITÁLIS TECHNIA 8 Szekvenciális (sorrendi) hálózatok Szekvenciális hálózatok fogalma Tárolók RS tárolók tárolók T és D típusú tárolók Számlálók Szinkron számlálók Aszinkron számlálók
Bevezetés az informatikába
Bevezetés az informatikába 3. előadás Dr. Istenes Zoltán Eötvös Loránd Tudományegyetem Informatikai Kar Programozáselmélet és Szoftvertechnológiai Tanszék Matematikus BSc - I. félév / 2008 / Budapest Dr.
Fordítás Kódoptimalizálás
Fordítás Kódoptimalizálás Kód visszafejtés. Izsó Tamás 2016. október 20. Izsó Tamás Fordítás Kódoptimalizálás / 1 Aktív változók Angol irodalomban a Live Variables kifejezést használják, míg az azt felhasználó
Dr. Schuster György február / 32
Algoritmusok és magvalósítások Dr. Schuster György OE-KVK-MAI schuster.gyorgy@kvk.uni-obuda.hu 2015. február 10. 2015. február 10. 1 / 32 Algoritmus Alapfogalmak Algoritmus Definíció Algoritmuson olyan
Pénzügyi algoritmusok
Pénzügyi algoritmusok A C++ programozás alapjai Tömbök (3. rész) Konstansok Kivételkezelés Tömbök 3. Többdimenziós tömbök Többdimenziós tömbök int a; Többdimenziós tömbök int a[5]; Többdimenziós tömbök
Adattípusok, vezérlési szerkezetek. Informatika Szabó Adrienn szeptember 14.
Informatika 1 2011 Második előadás, vezérlési szerkezetek Szabó Adrienn 2011. szeptember 14. Tartalom Algoritmusok, vezérlési szerkezetek If - else: elágazás While ciklus For ciklus Egyszerű típusok Összetett
Egyszerű RISC CPU tervezése
IC és MEMS tervezés laboratórium BMEVIEEM314 Budapesti Műszaki és Gazdaságtudományi Egyetem Egyszerű RISC CPU tervezése Nagy Gergely Elektronikus Eszközök Tanszéke (BME) 2013. február 14. Nagy Gergely
Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek
Programozás alapjai gyakorlat 4. gyakorlat Konstansok, tömbök, stringek Házi ellenőrzés (f0069) Valósítsd meg a linuxos seq parancs egy egyszerűbb változatát, ami beolvas két egész számot, majd a kettő
Python tanfolyam Python bevezető I. rész
Python tanfolyam Python bevezető I. rész Mai tematika Amiről szó lesz (most): Interpretált vs. fordított nyelvek, GC Szintakszis Alaptípusok Control flow: szekvencia, szelekció, iteráció... Függvények
Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás
Programozás BMEKOKAA146 Dr. Bécsi Tamás 3. előadás Vezérlési szerkezetek Elágazás Gyakran előfordul, hogy meg kell vizsgálnunk egy állítást, és attól függően, hogy igaz vagy hamis, a programnak más-más
Algoritmizálás + kódolás C++ nyelven és Pascalban
Algoritmizálás + kódolás nyelven és ban Motiváció A Programozási alapismeretek tárgyban az algoritmizáláshoz struktogramot, a kódoláshoz nyelvet használunk, a Közismereti informatikában (a közoktatásban
SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1
INFORMATIKAI RENDSZEREK ALAPJAI (INFORMATIKA I.) 1 NEUMANN ARCHITEKTÚRÁJÚ GÉPEK MŰKÖDÉSE SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1 Ebben a feladatban a következőket fogjuk áttekinteni: Neumann rendszerű számítógép
PROGRAMOZHATÓ LOGIKAI VEZÉRLİK
Misák Sándor PROGRAMOZHATÓ LOGIKAI VEZÉRLİK 1. elıadás DE TTK v.0.2 (2012.09.26.) 1. Bolton W. Programmable logic controllers. New Delhi: Newnes (Elsevier), 2008. 2. Hackworth J.R., Hackworth F.D, Jr.
Folyamatmodell irányítása 3
Mérési útmutató Folyamatirányítás laboratórium Összeállította: Kovács Gábor gkovacs@iit.bme.hu Budapesti Műszaki és Gazdaságtudományi Egyetem Irányítástechnika és Informatika Tanszék 2016 Tartalomjegyzék
5. Hét Sorrendi hálózatok
5. Hét Sorrendi hálózatok Digitális technika 2015/2016 Bevezető példák Példa 1: Italautomata Legyen az általunk vizsgált rendszer egy italautomata, amelyről az alábbi dolgokat tudjuk: 150 Ft egy üdítő
A 27/2012 (VIII. 27.) NGM rendelet (12/2013 (III.28) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján.
A 27/2012 (VIII. 27.) NGM rendelet (12/2013 (III.28) NGM rendelet által módosított) szakmai és vizsgakövetelménye alapján. 51 523 01 PLC programozó Tájékoztató A vizsgázó az első lapra írja fel a nevét!
Ismerkedés a PLC-vel
Ismerkedés a PLC-vel Juhász Róbert (kizárólag oktatási célra) 1 1 A tananyag szabadon felhasználható a közoktatásban a szerző megjelölésével. Programozható Logikai Vezérlők 1. PLC történelem A Programozható