S7-SCL programozási nyelv

Méret: px
Mutatás kezdődik a ... oldaltól:

Download "S7-SCL programozási nyelv"

Átírás

1 S7-SCL programozási nyelv Az SCL (Structured Control Language = Struktúrált Vezérlő Nyelv) a DIN EN szabvány szerint készült, magas szintű PASCAL szintaxisra épülő programozási nyelv. Az SCL előnyei Támogatja a STEP7 rendszer blokkos felépítését. Az SCL nyelv képes a hagyományos PLC nyelvekben megírt blokkok fogadására is, mint az STL (Statement List), FBD (Function Block Diagram), LAD (Ladder Logic). Lehetséges a CPU operációs rendszerében meglévő függvényblokkok használata. Az SCL könnyen kezelhető, gyorsan tanulható. A programozó munkájának hatékony támogatása már a forrás fájl szerkesztésénél is, jól kialakított fejlesztői környezet. A lefordított program futtatható minden S7 300/400-as rendszeren. Az SCL teszt és hibakereső (debugger) funkciójával a lefordított programban felderíthetőek a logikai programhibák. A nem szintaktikai és nem fordítási időben felderíthető hibák megtalálását a hibakereső modul (Debugger) segíti. A hibakeresés kétféle módon lehetséges, az ún. Single-step-, és a Continuous-monitoring támogatással: Single-step monitoring ( Lépésről-lépésre figyelés ): A változók értékei lépésről lépésre, elemi időközönként változnak és megfigyelhetők. Continuous-monitoring ( Folyamatos figyelés ): A program folyamatosan fut és közben a változók értékei is folytonosan változnak követve a program futását. A hibák felderítésében segíthetnek még a programban elhelyezhető Breakpoint-ok ( Töréspontok ), ahol a program felfüggeszti futását egészen addig, míg a folytatásra nem kap utasítást. A Single-step mód is így valósítható meg. A fejlesztői környezet használata Új forrás létrehozása egy, már a Simatic Manager-ben létrehozott projekt-ben történhet a File New menüpont alatt, vagy a Ctrl+N billentyűkombinációval illetve a ikonnal. A korábban mentett forrásfájl megnyitása szintén a projekt-ből történhet a File Open menüpont alatt, vagy a Ctrl+O billentyűkombinációval illetve a ikonnal lehetséges. Egyszerre több forrást is megnyithatunk, ezek elrendezésére vonatkozó lehetőségek a Window menüpontban állnak rendelkezésre. A programforrás szerkesztése után a fordítást a File Compile menüpontban, vagy a CTRL+B billentyűkombinációval, illetve a ikon segítségével lehet elvégezni. A fordítás eredménye az alsó error ablakban olvasható, a fordító itt sorolja fel az esetleges hibákat, amelyek még fordítási időben kideríthetőek, illetve itt hívja fel a figyelmünket azokra a dolgokra, amik még okozhatnak problémákat a program futása során. Mind a warning, mind az error üzenetek sorokra hivatkoznak, duplán kattintva rájuk a program a hiba helyére állítja a kurzort. (A hiba lokalizálása a magasszintű nyelvek feldolgozási sémája miatt sokszor félrevezető lehet, pl. egy-egy pontosvessző elhagyása az interpreter számára akár több hibát is okozhat a valós hibától független helyeken...). A hibára egyet klikkelve, majd az F1 1

2 billentyűt megnyomva a help képernyő jelenik meg, ami szerencsés esetben megjeleníti a hiba leírását és esetleges megoldását is. Fontos, hogy a fordítást a hivatkozási szintek szerinti sorrendben végezzük el, azaz mindig azt a forrást (függvényt, függvényblokkot) fordítsuk előbb, amit egy másikból meghívunk és miután ez hibamentesen lefordult, csak utána fordítsuk a hívó függvényt. Van lehetőség ún. Fordítás Vezérlő Fájl (Compilation Control File) létrehozására is a File New menüpontban. Ekkor az Object type szűrőt SCL compile control file -ra kell állítani. Ebben a fájlban felsorolhatjuk a fordítandó forrásokat a fordítás sorrendjében. Amennyiben ez az ablak aktív és így indítjuk a fordítást, akkor az a definiált sorrendben fog lezajlani, ezáltal nem kell mindig figyelni a sorrendre. A sikeres fordítás után a generált kódot a PLC-be, vagy a szimulátorba (S7-PLCSIM) kell tölteni. Ezt a műveletet végezhetjük a SIMATIC MANAGER-ből, vagy az SCL fejlesztő környezetből is. Az utóbbi művelet a PLC Download menüpont alatt érhető el. Letöltés után, futtatás közben végezhető a hibakeresés a monitor funkcióval, ami a Debug Monitor menüpontban, vagy a Ctrl+F7 billentyűkombinációval, vagy a ikonnal érhető el. A monitor aktivizálódásakor az editor ablak két részre osztódik, a bal oldalon (pl. egérrel) kijelölt változók értékei a jobb oldali monitor ablakban jelennek meg. A Single step üzemmódú monitorozás töréspontok (Breakpoint) segítségével valósítható meg. Változók Típus Név Ábrázolás [bit] Értelmezési tartomány Bit BOOL 1 bit 0,1, vagy FALSE,TRUE Byte BYTE 8 bit Word WORD 16 bit Double word DWORD 32 bit Karakter CHAR 8 bit Kiterjesztett ASCII kar. Integer INT 16 bit Double integer DINT 32 bit Lebegőpontos REAL 32 bit E E 38 +/ E E+38 S5 időegység S5TIME / S5T 16 bit T#0H_0M_0S_10MS.. T#2H_46M_30S_0MS Idő periódus (1 ms-os lépésközzel) TIME / T 32 bit T#24D_20H_31M_23S_647MS... +T#24D_20H_31M_23S_647MS Dátum (1 napos DATE / D 16 bit D# D# lépésközzel) Napi idő (1 ms-os TIME_OF_DA 32 bit TOD#0:0:0.0 TOD#23:59: lépésközzel) Y / TOD Dátum és idő DATE_AND_ TIME / DT Sztring STRING max. 254 karakter Tömb ARRAY Struktúra STRUCT 64 bit DT# :0: DT# :59: Változók, blokk paraméterek deklarálása, konstansok definiálása A PASCAL nyelvhez hasonlóan a változókat a program blokk elején kell deklarálni. Ennek formája függ a változó, ill. blokk paraméter feladatától. A blokk paraméter lehet kimeneti, bemeneti, ki-/bemeneti, a változó lehet dinamikus (temporális) és statikus. A blokk típusától függően használhatóak a blokk paraméterek és a változó típusok is, a következő táblázat ezt a korlátozást foglalja össze. 2

3 Statikus változók deklarálása: A rendszer a statikus változóknak a program futásának kezdetekor lefoglalja a memóriaterületet és a futás teljes időtartama alatt foglalja azt. Deklarációja a következő módon történik, egy példával illusztrálva: VAR X:INT; Dinamikus (temporary) változók deklarálása: A dinamikus változó a függvény hívásakor létrejön, függvényhívás végén pedig megszűnik. Deklarációja a következő módon történik, egy példán keresztül illusztrálva: VAR_TEMP X:INT; Összetett változók deklarálása: Létrehozandó_sztring_neve : STRING; Létrehozandó_sztring_neve : STRING[44]; Tömb_neve : ARRAY [1..3,1..4] OF változó_típ; Strukt_név : STRUCT data1 : REAL ; data2 : INT := 5; END_STRUCT ; //Vált. dekl.,értékadással Kimeneti-, bemeneti- és ki/bemeneti blokk paraméterek deklarálása: A blokk paramétereket függvény, függvény-blokk, paraméterátadásánál kell alkalmazni, a függvény ezeken keresztül kommunikál az őt hívó blokkal, a bemeneti paraméterekkel kapja a bemeneti értékeket, a kimeneti paraméterekkel pedig küldi a feladatától függő kimenő értékeket. A deklaráció a következő módon történik, egy példán keresztül illusztrálva: VAR_INPUT a:int; //Bemeneti paraméter VAR_OUTPUT b:int; //Kimeneti paraméter VAR_IN_OUT c:int; //Be-/kimeneti paraméter Konstans definiálása: A konstansokat szintén a program deklarációs részében kell megadni, a változók előtt, vagy után. CONST konstans_neve := érték; END_CONST A változók és konstansok értékadásának szintaktikája: A változók értékeit és a konstansokat a következő módon adhatjuk meg: Típus BOOL BYTE WORD DWORD INT DINT REAL CHAR Konstans szintaktika BOOL#1; bool#0; Bool#false; BOOL#TRUE BYTE#0; B#2#101; Byte#'ä'; b#16#f WORD#32768; word#16#f; W#2#1001_0100; WORD#8# DWORD#16#f000_0000; dword#32768; DW#2#1111_0000_1111_0000; DWord#8# INT#16#3f_ff; int#-32768; Int#2#1111_0000; int#8#77777 DINT#16#3fff_ffff; dint#-1000_0000; DInt#2#1111_0000; dint#8# REAL#1; real#1.5; real#2e4; real#3.1 CHAR#A; CHAR#49 3

4 Blokkok, blokk típusok és felépítéseik az SCL nyelvben Rendszer-blokk (OB = Organization Block): Tartja a kapcsolatot a CPU operációs rendszere és a felhasználó program között. ORGANIZATION_BLOCK OBxxx VAR_TEMP // OB-hez szükséges tömb típusú változó és egyéb din. változók Info: ARRAY[0..19] OF BYTE; Utasitas1; Utasitas2;... END_ORGANIZATION_BLOCK Függvény-blokk (FB = Function Block): Logikai blokk statikus változókkal és memóriával, ahol például kimeneti értékeket lehet átadni. FUNCTION_BLOCK FBxxx VAR_INPUT // Bemeneti változók VAR_OUTPUT // Kimeneti változók VAR_TEMP // Dinamikus változók VAR // Statikus változók Utasitas1; Utasitas2;... END_FUNCTION_BLOCK Függvény (FC = Function): Memória nélküli logikai blokk, visszatérési értékkel. Amennyiben nem kívánunk a függvényhez visszatérési értéket rendelni, akkor a függvény változó típusának VOID-ot kell megadni: FUNCTION FCxxx: VOID. FUNCTION FCxxx: INT VAR_INPUT // Bemeneti változók VAR_OUTPUT // Kimeneti változók VAR_TEMP // Dinamikus változók Utasitas1; Utasitas2;... FCxxx := 100; END_FUNCTION // Értékadás a függvénynek, ha nem VOID Adat-blokk (DB = Data Block): Feladata a logikai blokkok (FB) adatainak tárolása. DATA_BLOCK DB20 STRUCT // Deklarációs rész VALUE:ARRAY [1..100] OF INT; END_STRUCT.. END_DATA_BLOCK Felhasználói adattípus (UDT = User Data Type): Felhasználó által definiált adatstruktúra elhelyezése. Az UDT felépítése példán keresztül: TYPE MEASVALUES STRUCT // UDT definíció statikus szimbólumazonosítókkal 4

5 BIPOL_1 : INT := 5; BIPOL_2 : WORD := W#16#FFAA; BIPOL_3 : BYTE := B#16#F1; BIPOL_4 : WORD := B#(25,25); MEASURE : STRUCT // Struktúrába ágyazott alstruktúra. BIPOLAR_10V : REAL; UNIPOLAR_4_20MA : REAL; END_STRUCT; END_STRUCT; END_TYPE // Az UDT használata pl. egy FB-ből. FUNCTION_BLOCK FB10 VAR MEAS_RANGE : MEASVALUES;... MEAS_RANGE.BIPOL_1 := -4; MEAS_RANGE.MEASURE.UNIPOLAR_4_20MA := 2.7;... END_FUNCTION_BLOCK A blokkok keretszerkezetek (OB, FC, FB, DB, UDT). melyek elérhetőek és beilleszthetőek az SCL editor Insert Block template menüpontjából is. Műveletek Alapműveletek A következő táblázatból kiolvashatóak az alapműveletek elvégzéséhez és az eredmény tárolásához szükséges változó típusok, ahol ANY_INT bejegyzés az INT és DINT változókat jelöli ANY_NUM bejegyzés az INT, DINT, és REAL változókat jelöli Művelet Azonosító 1. változó 2. változó Eredmény Precedencia Hatványozás ** ANY_NUM ANY_NUM REAL 2 Unary plus + ANY_NUM ANY_NUM 3 TIME TIME 3 Unary minus ANY_NUM ANY_NUM 3 TIME TIME 3 Szorzás * ANY_NUM ANY_NUM ANY_NUM 4 TIME ANY_INT TIME 4 Osztás / ANY_NUM ANY_NUM ANY_NUM 4 TIME ANY_INT TIME 4 Egész osztás DIV ANY_INT ANY_INT ANY_INT 4 TIME ANY_INT TIME 4 Modulo osztás MOD ANY_INT ANY_INT ANY_INT 4 Összeadás + ANY_NUM ANY_NUM ANY_NUM 5 TIME TIME TIME 5 TOD TIME TOD 5 DT TIME DT 5 Kivonás ANY_NUM ANY_NUM ANY_NUM 5 TIME TIME TIME 5 TOD TIME TOD 5 DATE DATE TIME 5 TOD TOD TIME 5 DT TIME DT 5 DT DT TIME 5 5

6 Ezek használatával lehet csak a műveleteket elvégezni. Amennyiben egyéb változótípussal szeretnénk műveletet végezni, akkor az SCL alapfüggvényei között megtaláljuk a szükséges imlpicit vagy explicit konverziót esetleg több lépésben elvégző függvényeket. Implicit konverziós függvények: ANY_BIT = BOOL > BYTE > WORD > DWORD ANY_NUM = INT > DINT > REAL A osztályú implicit konverziós függvények: BOOL_TO_BYTE, BOOL_TO_DWORD, BOOL_TO_WORD, BYTE_TO_DWORD, BYTE_TO_WORD, CHAR_TO_STRING, DINT_TO_REAL, INT_TO_DINT, INT_TO_REAL, WORD_TO_DWORD B osztályú explicit konverziós függvények: BYTE_TO_BOOL, BYTE_TO_CHAR, CHAR_TO_BYTE, CHAR_TO_INT DATE_TO_DINT DINT_TO_DATE, DINT_TO_DWORD, DINT_TO_INT, DINT_TO_TIME, DINT_TO_TOD, DWORD_TO_BOOL, DWORD_TO_BYTE, DWORD_TO_DINT, DWORD_TO_REAL, DWORD_TO_WORD INT_TO_CHAR, INT_TO_WORD REAL_TO_DINT, REAL_TO_DWORD, REAL_TO_INT STRING_TO_CHAR TIME_TO_DINT TOD_TO_DINT WORD_TO_BOOL, WORD_TO_BYTE, WORD_TO_INT, WORD_TO_BLOCK_DB BLOCK_DB_TO_WORD Például egy BYTE típusú változó (b) szorzása 3-mal a következő módon történik, felhasználva az SCL SFC (Standard Functions) konverter függvényeit: a:= WORD_TO_BYTE(INT_TO_WORD(3*WORD_TO_INT(BYTE_TO_WORD(b)))); Bitműveletek A logikai függvények elvégzése BOOL, BYTE, WORD, és DWORD típusú változókon értelmezett, a következő táblázatban ezek összefoglaló neve az ANY_BIT. Művelet Azonosító 1. változó 2. változó Eredmény Precedencia Negálás NOT ANY_BIT ANY_BIT 3 Logikai ÉS AND ANY_BIT ANY_BIT ANY_BIT 8 Kizáró VAGY XOR ANY_BIT ANY_BIT ANY_BIT 9 Logikai VAGY OR ANY_BIT ANY_BIT ANY_BIT 10 Például két BYTE (b,c) típusú változó esetén az eredmény is kerülhet BYTE típusú változóba (a): a:=b AND c; Elágazások, feltételek, ciklusszervező utasítások A PASCAL nyelvhez hasonlóan itt is megtalálhatóak a szokványos IF, CASE, FOR, WHILE, REPEAT (CONTINUE, EXIT) szerkezetek, amelyek funkcióikban teljesen szintaktikájában pedig nagyon hasonlóak a PASCAL-ban használt hasonló szerkezetekhez. MEGJEGYZÉS: Az SCL is tartalmazza a GOTO feltétel nélküli ugró utasítást, de annak használata mint minden magasszintű nyelvben elkerülhető és elkerülendő, mivel használata áttekinthetetlenné tenné a program működését. 6

7 CASE A vizsgált INTEGER típusú változó adott értékeihez definiálhatunk akciókat, illetve egy ELSE ágban adhatjuk meg a nem definiált értékek előfordulásakor elvégzendő műveleteket. A CASE blokk lezárása az END_CASE kulcsszóval történik. Szintaktikája egy példán keresztül bemutatva a következő: CASE TW OF 1 : DISPLAY:= OVEN_TEMP; //Ha TW változó értéke=1,akkor...; 2 : DISPLAY:= MOTOR_SPEED; //Ha TW változó értéke=2,akkor...; 3 : DISPLAY:= GROSS_TARE; QW4:= 16#0003; //Ha TW változó értéke=3,akkor...;...; 4..10: DISPLAY:= INT_TO_DINT (TW); QW4:= 16#0004; //Ha TW változó értéke=4,5,6,..,10,akkor..;...; 11,13,19: DISPLAY:= 99; QW4:= 16#0005; // Ha TW változó értéke=11,13,vagy 19 akkor...; ELSE: DISPLAY:= 0; TW_ERROR:= 1; //Ha egyik sem teljesül,akkor...;...; END_CASE; //CASE blokk lezárása IF A program feltételhez kötött elágazását valósítja meg. A feltételben egy BOOL típusú kifejezésnek kell állnia, aminek igaz (true) értéke esetén a THEN kulcsszó utáni blokk hajtódik végre, ellenkező esetben a program folytatja futását, amíg olyan feltételt nem talál, ami teljesülne. Ha egy feltétel sem teljesül, akkor az opcionális ELSIF ( különben ha xy igaz ), vagy az ELSE ( egyébként, azaz ha semmi nem teljesül ) ágban lévő programblokk hajtódik végre. Az IF blokk lezárása az END_IF kulcsszóval történik. Szintaktikája egy példán keresztül bemutatva a következő: IF FLAG THEN //Ha a FLAG változó étréke TRUE, akkor... N := 0 ; SUM := 0 ; OK := FALSE ; ELSIF START = TRUE THEN //Különben, ha START változó értéke //TRUE, akkor... N := N + 1 ; SUM := SUM + N ; ELSE //Ha egyik sem teljesül, akkor... OK := FALSE ; END_IF ; //IF blokk lezárása FOR A FOR ciklusszervező utasítás, egy INTEGER típusú változó értékét növeli ciklikusan adott értékkel, amíg a megadott végértéket el nem éri, közben pedig végrehajtja a blokkon belül szereplő utasításokat. A FOR blokk lezárása az END_FOR kulcsszóval történik. FIGYELEM: A FOR ciklus futási ideje egyenlő a ciklusok száma a cikluson belül szereplő utasítások végrehajtásához szükséges idő-vel. Ha ez nagyobbra adódik egy PLC ciklusidőnél, akkor a program nem tud lefutni a PLC-ben, hiba miatt felfüggeszti a futását, még akkor is ha az a szimulátorban láthatóan hiba nélkül lefut. Ez igaz bármelyik ciklusszervező utasításra, tehát ezekkel óvatosan kell bánni. Biztonságosabb megoldás a kritikusnak tűnő ciklusokat pl. az OB1, vagy OB35-ös blokkal megoldani, ami ciklikusan meghívódik, közben végrehajtani az adott feladatot és számolni a lefutott ciklusok számát. Szintaktikája egy példán keresztül bemutatva a következő: // A ciklusváltozó az INDEX 0-tól fut 100-ig,2-es lépésközzel, ciklusonként 7

8 // az ARR nevű BOOL típusú tömb INDEX-edik elemét TRUE-ra állítja, // majd befejezi a ciklust. FOR INDEX := 0 TO 100 BY 2 DO ARR[INDEX]:=TRUE; END_FOR; WHILE A WHILE utasítás is ismert lehet a magasszintű programozási nyelvekből, mint feltételes ciklusszervező utasítás. A blokk ún. előltesztelő vizsgálatot végez, azaz a blokkon belüli utasítások csak akkor és addig futnak le, amíg előtte a WHILE kulcsszó utáni BOOL értékű feltétel TRUE értékű. Az is előfordulhat, ellentétben majd a másik soron következő feltételes ciklusszervező utasítással (REPEAT), hogy a WHILE utasításblokkja egyszer sem fut le. A WHILE blokk tehát vizsgálja a megadott feltételt és ha az teljesül, akkor az END_WHILE kulcsszóig tartó utasításblokkot addig futtatja ciklikusan, amíg ez a feltétel teljesül, ellenkező esetben az utasításblokk futtatása nélkül kilép a ciklusból és továbbadja a vezérlést. Szintaktikája egy példán keresztül bemutatva a következő: // A ciklus akkor és addig fut egymás után folyamatosan, amíg az // INDEX nevű változó 50-nél kisebb ÉS az IDWORD tömb INDEX-edik // eleme nem azonos a KEY bejegyzéssel. Egy ciklus alatt pedig az // INDEX nevű változó értéke növekszik 2-vel. A blokkot az END_WHILE // kulcsszó zárja. WHILE INDEX <= 50 AND IDWORD[INDEX] <> KEY DO INDEX := INDEX + 2; END_WHILE; REPEAT A REPEAT a másik feltételes ciklusszervező utasítás. A blokk ún. hátultesztelő vizsgálatot végez, azaz a blokkon belüli utasítások csak akkor és addig futnak le, amíg a blokk utáni UNTIL kulcsszó utáni BOOL értékű feltétel TRUE értékű nem lesz. Mivel a vizsgálat az utasításblokk után van, ezért előfordulhat, hogy a feltétel TRUE már az első lefutás előtt is, de a ciklus ettől függetlenül egyszer mindenképpen le fog futni. Az utasításblokk a REPEAT kulcsszóval kezdődik és az UNTIL + feltétel, majd az END_REPEAT kulcsszóval végződik. Szintaktikája egy példán keresztül bemutatva a következő: REPEAT INDEX := INDEX + 2; UNTIL INDEX > 50 END_REPEAT; // Ciklus kezdete // Utasításblokk // Feltétel:amíg az INDEX nagyobb nem lesz // 50-nél // Blokk lezárása CONTINUE A cikluson (FOR, WHILE, REPEAT) belül bárhol kiadva a CONTINUE utasítást a ciklus további része nem fut le, hanem előről indul a következő ciklus. Szintaktikája egy példán keresztül bemutatva a következő: WHILE INDEX <= 100 DO INDEX := INDEX + 1; // Ha ARRAY[INDEX] egyenlő az INDEX-szel, // akkor az ARRAY [INDEX] nem változott, a ciklus induljon előről. IF ARRAY[INDEX] = INDEX THEN CONTINUE; END_IF; ARRAY[INDEX] := 0; // Ha az IF nem teljesül, azaz a CONTINUE nem fut le, akkor végre //hajtódik a nullázás END_WHILE; EXIT A cikluson (FOR, WHILE, REPEAT) belül bárhol kiadva az EXIT utasítást az a ciklusból való azonnali kiugrást eredményezi. FIGYELEM: Az EXIT használata áttekinthetetlenné teszi a program működését, lehetőség szerint ne használjuk. 8

9 Szintaktikája egy példán keresztül bemutatva a következő: FOR INDEX_1 := 1 TO 51 BY 2 DO // Kiugrás a ciklusból,ha IDWORD[INDEX_1]= KEY IF IDWORD[INDEX_1] = KEY THEN INDEX_2 := INDEX_1; EXIT; END_IF; END_FOR; Számlálók használata A számláló feladata a bemenetére érkező impulzusok számlálása az értelmezési tartományon belül. A számlálóknak a STEP7-ben három típusuk van: Felfelé számláló (S_CU) Lefelé számláló (S_CD) Fel/le számláló (S_CUD) A számlálók paraméterei: Paraméter Adat típus Leírás C_NO COUNTER INT Számláló azonosító CD BOOL CD bemenet:lefelé számlálás CU BOOL CU bemenet:felfelé számlálás S BOOL Számláló töltése PV-vel PV WORD Kezdő érték, S-sel betölthető R BOOL Reset bemenet Q BOOL Kimenet:Számláló státusza CV WORD Kimenet:Érték bináris formában Felfelé számláló (S_CU) használata, paraméterezése: A számláló értéke egyel növekszik, ha a CU bemenet 0-ról 1-re vált és a számláló értéke kisebb, mint 999, azaz felfutó élre billen. A számláló feltölthető a PV bemenetében megadott értékkel, ha az S bemenetre felfutó él (0-1 átmenet) érkezik. A számláló resetelhető, ha az R bemenetet 1-be állítjuk, ilyenkor az értéke 0-ra változik. A Q kimeneten 1 van ha a számláló értéke nagyobb nullánál és 0, ha a számláló értéke is 0. Lefelé számláló (S_CD) használata, paraméterezése: A számláló értéke egyel csökken, ha a CD bemenet 0-ról 1-re vált és a számláló értéke nagyobb, mint 0, azaz felfutó élre billen. A számláló feltölthető a PV bemenetében megadott értékkel, ha az S bemenetre felfutó él (0-1 átmenet) érkezik. A számláló resetelhető, ha az R bemenetet 1-be állítjuk, ilyenkor az értéke 0-ra változik. A Q kimeneten 1 van ha a számláló értéke nagyobb nullánál és 0, ha a számláló értéke is 0. 9

10 A fel/le számláló használata, paraméterezése: Ekvivalens az előző kettővel, csak attól függően, hogy éppen fel, vagy lefelé szeretnénk számoltatni vagy a CU, vagy a CD bemenetet kell meghajtanunk. Példa számláló használatára: FUNCTION_BLOCK COUNT VAR_INPUT MYCOUNTER : COUNTER; VAR_OUTPUT RESULT : INT; VAR SET : BOOL; RESET : BOOL; BCD_VALUE : WORD; BIN_VALUE : WORD; INITIALVALUE : WORD; //Számláló azonosítója //Számláló tartalma INTEGER //formátumban //S flag //R flag //Számláló értéke BCD formában //Számláló értéke BCD formában //Betölthető kezdőérték //Felparaméterezés Q0.0 := 1; SET := I0.2; RESET := I0.3; INITIALVALUE := 16#0089; //Indítás lefelé számláló üzemmódban BCD_VALUE := S_CD( C_NO := MYCOUNTER, CD := I0.0, S := SET, PV := INITIALVALUE, R := RESET, CV := BIN_VALUE, Q := Q0.7); //Kimeneti paraméter megadása későbbi feldolgozáshoz RESULT := WORD_TO_INT (BIN_VALUE); QW4 := BCD_VALUE; //BCD kimenet kiküldése a PLC kimenetére END_FUNCTION_BLOCK Időzítők használata Az időzítők feladata adott időtartam mérése, ez a bemeneti indítójeltől és a kimeneti funkciótól függően lehet: Adott hosszúságú impulzus (S_PULSE) Adott hosszúságú, újraindítható impulzus (S_PEXT) Bekapcsolási késleltető (S_ODT) Önálló bekapcsolási késleltető (S_ODTS) Kikapcsolási késleltető (S_OFFDT) Az időzítők paraméterei: Paraméter Adat típus Leírás T_NO TIMER INT Időzítő azonosító S BOOL Indító jel bemenet TV S5TIME Kezdeti érték (BCD formátum) bemenet R BOOL Reset bemenet Q BOOL Időzítő státusz kimenet BI WORD Fennmaradó idő (bináris formátum) kimenet 10

11 Adott hosszúságú impulzus (S_PULSE): Az időzítő kimenete az indító jel után addig marad magas szinten, amíg lejár a beállított idő, vagy amíg az indítójel le nem megy alacsony szintre. Az időzítő indítása az S bemeneten, 0 1 átmenettel, azaz felfutó éllel történik. Ha teljes időzítési ciklust szeretnénk előidézni, akkor az S bemenetnek az időzítő lejártáig magas szinten kell lennie, különben az időzítő leáll. Az időzítő resetelését az R bemeneten keresztül végezhetjük 0 1 átmenettel, azaz felfutó éllel. Ekkor az időzítő nullára állítódik. A Q kimeneten magas szint (1) található, amíg az időzítő működésben van és alacsony szint (0), ha a leállt. Az időzítő aktuális állása a BI kimeneten és az S_PULSE függvény értékével kérdezhető le. Adott hosszúságú, újraindítható impulzus (S_PEXT): Az időzítő kimenete az indítójel után addig marad magas szinten, amíg lejár a beállított idő. Ha lejárat előtt újabb indítójel jön, akkor az időzítő újra indul, az időzített ciklus hosszabb lesz, anélkül, hogy közben a kimenet alacsony szintre esne vissza. Az időzítő indítása az S bemeneten, 0 1 átmenettel, azaz felfutó éllel történik. Az újraindítás egy újbóli 0 1 átmenettel előidézhető, akkor az időzítő újra töltődik és az időzítési ciklus a beállított periódusidővel meghosszabbodik. Az időzítő resetelését az R bemeneten keresztül végezhetjük 0 1 átmenettel, azaz felfutó éllel. Ekkor az időzítő nullára állítódik. A Q kimeneten magas szint (1) található, amíg az időzítő működésben van és alacsony szint (0), ha a leállt. Az időzítő aktuális állása a BI kimeneten és az S_PEXT függvény értékével kérdezhető le. 11

12 Bekapcsolási késleltető (S_ODT): Az időzítő kimenete az indítójel után az időzítési ciklus leteltével változik magas szintre és addig marad magas szinten, amíg az indítójel is magas szinten van. Az időzítő indítása az S bemeneten, 0 1 átmenettel, azaz felfutó éllel történik. Ha az S bemenetre az időzítő működése közben 1 0 váltás, azaz lefutó él érkezik, akkor az időzítő leáll. Az időzítő resetelését az R bemeneten keresztül végezhetjük 0 1 átmenettel, azaz felfutó éllel. Ekkor az időzítő nullára állítódik. A Q kimeneten magas szint (1) található, ha az időzítő hiba nélkül lejárt és az S bemeneten még magas szint van. Alacsony szint (0) adódik, ha a leállt a timer. Az időzítő aktuális állása a BI kimeneten és az S_ODT függvény értékével kérdezhető le. Önálló bekapcsolási késleltető (S_ODTS): Az időzítő kimenete az indítójel után az időzítési ciklus leteltével változik magas szintre és ebben az állapotban marad az indítójel alacsony szintre ugrásától függetlenül. Az időzítő indítása az S bemeneten, 0 1 átmenettel, azaz felfutó éllel történik. Ha az S bemenetre az időzítő működése közben 1 0 váltás, azaz lefutó él érkezik, akkor az időzítő fut tovább ( önállóan ), az időzítő újraindítását egy újabb felfutó éllel lehet előidézni az S bemeneten. Az időzítő resetelését az R bemeneten keresztül végezhetjük 0 1 átmenettel, azaz felfutó éllel. Ekkor az időzítő nullára állítódik. A Q kimeneten magas szint (1) található, ha az időzítő beállított ideje letelt, az S bemenettől függetlenül. Az időzítő aktuális állása a BI kimeneten és az S_ODTS függvény értékével kérdezhető le. 12

13 Kikapcsolási késleltető (S_OFFDT): Az időzítő kimenete az indítójel felfutása után magas szintre vált. Az indítójel lefutása után indul késleltetés, aminek letelte után a kimenet alacsony szintre változik. Az időzítő indítása az S bemeneten, 1 0 átmenettel, azaz lefutó éllel történik. Ha az S bemenetre 0 1 váltás érkezik, azaz lefutó él érkezik, akkor az időzítő kimenete magas szintre vált, az időzítés azonban csak a fent leírt, S bemenetre érkező 1 0 átmenetnél kezdődik. Az időzítés letelte után a kimenet ismét alacsony szintre vált. Újraindítás az S bemenetre érkező 1 0 átmenettel érhető el. Az időzítő resetelését az R bemeneten keresztül végezhetjük 0 1 átmenettel, azaz felfutó éllel. Ekkor az időzítő nullára állítódik. A Q kimeneten magas szint (1) található, ha az időzítő fut, vagy az S bemeneten magas szintű jel van. Az időzítő aktuális állása a BI kimeneten és az S_OFFDT függvény értékével kérdezhető le. Példa időzítő használatára: FUNCTION_BLOCK TIMER VAR_INPUT mytime : TIMER; VAR_OUTPUT result : S5TIME; VAR set : BOOL; reset : BOOL; bcdvalue : S5TIME; binvalue : WORD; initialvalue : S5TIME; //Időzítő azonosítója //Időzítő tartalma S5TIME formátumban //S flag //R flag //Idő alap és fennmaradó idő BCD formátumban //Idő érték bináris formátumban //Kezdeti érték S5TIME formátumban //Felparaméterezés Q0.0 := 1; set := I0.0; reset := I0.1; initialvalue := T#25S; //Időzítő indítása bcdvalue := S_PEXT( T_NO := mytime, S := set, TV := initialvalue, R := reset, BI := binvalue, Q := Q0.7); //Kimeneti paraméter megadása későbbi feldolgozáshoz result := bcdvalue; QW4 := binvalue; // Bináris kimenet kiküldése END_FUNCTION_BLOCK 13

Készítette: Oláh István mestertanár

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

Részletesebben

5. Laborgyakorlat. Számláló funkciók, időzítő funkciók.

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

Részletesebben

Occam 1. Készítette: Szabó Éva

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

Részletesebben

A BECKHOFF típusú PLC használata.

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

Részletesebben

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

Részletesebben

Mintavételes szabályozás mikrovezérlő segítségével

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

Részletesebben

A C# programozási nyelv alapjai

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

Részletesebben

Programozás alapjai. 5. előadás

Programozás alapjai. 5. előadás 5. előadás Wagner György Általános Informatikai Tanszék Cserélve kiválasztásos rendezés (1) A minimum-maximum keresés elvére épül. Ismétlés: minimum keresés A halmazból egy tetszőleges elemet kinevezünk

Részletesebben

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás

Algoritmusok Tervezése. 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Algoritmusok Tervezése 4. Előadás Visual Basic 1. Dr. Bécsi Tamás Bevezetés A BASIC (Beginner s All-purpose Symbolic Instruction Code) programnyelvet oktatási célokra hozták létre 1964-ben. Az általános

Részletesebben

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

Részletesebben

Java II. I A Java programozási nyelv alapelemei

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

Részletesebben

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

Részletesebben

A programozás alapjai

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,

Részletesebben

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás

Memóriagazdálkodás. Kódgenerálás. Kódoptimalizálás Kódgenerálás Memóriagazdálkodás Kódgenerálás program prológus és epilógus értékadások fordítása kifejezések fordítása vezérlési szerkezetek fordítása Kódoptimalizálás L ATG E > TE' E' > + @StPushAX T @StPopBX

Részletesebben

Szoftvertervezés és -fejlesztés I.

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.

Részletesebben

Szoftvertechnológia alapjai Java előadások

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?

Részletesebben

1. Egyszerű (primitív) típusok. 2. Referencia típusok

1. Egyszerű (primitív) típusok. 2. Referencia típusok II. A Java nyelv eszközei 1. Milyen eszközöket nyújt a Java a programozóknak Korábban már említettük, hogy a Java a C nyelvből alakult ki, ezért a C, C++ nyelvben járatos programozóknak nem fog nehézséget

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

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

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós március 3. Széchenyi István Egyetem, Gy r

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

Részletesebben

Java programozási nyelv

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

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 2. előadás

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

Részletesebben

SZÁMÍTÓGÉPES PROBLÉMAMEGOLDÁS

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

Részletesebben

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

Részletesebben

Pénzügyi algoritmusok

Pénzügyi algoritmusok Pénzügyi algoritmusok A C++ programozás alapjai Az Integrált Fejlesztői Környezet C++ alapok Az Integrált Fejlesztői Környezet Visual Studio 2013 Community Edition Kitekintés: fordítás Preprocesszor Fordító

Részletesebben

Java II. I A Java programozási nyelv alapelemei

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

Részletesebben

Digitális ki-bemenetek kezelése, bitszintű műveletek

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

Részletesebben

Informatika terméktervezőknek

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

Részletesebben

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok

1. Bevezetés szeptember 9. BME Fizika Intézet. Szám. szim. labor ea. Tőke Csaba. Tudnivalók. feladat. Tematika. Moodle Házi feladatok Számítógépes szimulációk 1. Bevezetés BME Fizika Intézet 2015. szeptember 9. Bevezetés A félév menete C-ismétlés, 1. rész Oktatók: Nagyfalusi Balázs: nagyfalusi@phy.bme.hu, F3 211. : tcsaba@eik.bme.hu,

Részletesebben

Készítette: Nagy Tibor István

Készítette: Nagy Tibor István Készítette: Nagy Tibor István A változó Egy memóriában elhelyezkedő rekesz Egy értéket tárol Van azonosítója (vagyis neve) Van típusa (milyen értéket tárolhat) Az értéke értékadással módosítható Az értéke

Részletesebben

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

Részletesebben

AWK programozás, minták, vezérlési szerkezetek

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

Részletesebben

Programozási nyelvek JAVA EA+GY 1. gyakolat

Programozási nyelvek JAVA EA+GY 1. gyakolat Programozási nyelvek JAVA EA+GY 1. gyakolat EÖTVÖS LORÁND TUDOMÁNYEGYTEM INFORMATIKAI KAR PROGRAMOZÁSI NYELVEK ÉS FORDÍTÓPROGRAMOK TANSZÉK 2018/2019. tavaszi félév Tartalom 1 A Java alapjai 2 Java program

Részletesebben

Apple Swift kurzus 3. gyakorlat

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]()

Részletesebben

ABB Teach Pendant programozás segédlet

ABB Teach Pendant programozás segédlet ABB Teach Pendant programozás segédlet Készítette: Gyöngyösi Balázs Kiadja a Robert Bosch Mechatronikai Intézeti Tanszék Miskolc, 2017. Tartalomjegyzék Tartalomjegyzék... 1 1. Teach Pendant és az érintőképernyő

Részletesebben

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

Részletesebben

2. Laborgyakorlat. Step7 programozási környezet bemutatása

2. Laborgyakorlat. Step7 programozási környezet bemutatása 2. Laborgyakorlat Step7 programozási környezet bemutatása A gyakorlat célja A Siemens valamint a Siemens alapokra épített PLC-k (pl. VIPA) programozására fejlesztették a Stpe7 programozási környezetet.

Részletesebben

Webprogramozás szakkö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

Részletesebben

Programozás alapjai gyakorlat. 2. gyakorlat C alapok

Programozás alapjai gyakorlat. 2. gyakorlat C alapok Programozás alapjai gyakorlat 2. gyakorlat C alapok 2016-2017 Bordé Sándor 2 Forráskód, fordító, futtatható állomány Először megírjuk a programunk kódját (forráskód) Egyszerű szövegszerkesztőben vagy fejlesztőkörnyezettel

Részletesebben

Elemi adat típusok. Méret (Bit)

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

Részletesebben

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) 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

Részletesebben

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! 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.

Részletesebben

Operációs rendszerek. 11. gyakorlat. AWK - szintaxis, vezérlési szerkezetek UNIVERSITAS SCIENTIARUM SZEGEDIENSIS UNIVERSITY OF SZEGED

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

Részletesebben

A JavaScript főbb tulajdonságai

A JavaScript főbb tulajdonságai JavaScript alapok A JavaScript főbb tulajdonságai Script nyelv azaz futás közben értelmezett, interpretált nyelv Legfőbb alkalmazási területe: a HTML dokumentumok dinamikussá, interaktívvá tétele Gyengén

Részletesebben

BASH SCRIPT SHELL JEGYZETEK

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}...

Részletesebben

Szkriptnyelvek. 1. UNIX shell

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

Részletesebben

Programozási nyelvek (ADA)

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)

Részletesebben

PHP. Telepítése: Indítás/újraindítás/leállítás: Beállítások: A PHP nyelv

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ó

Részletesebben

Irányítástechnika 1. 10. Elıadás. PLC-k programozása

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,

Részletesebben

OOP #14 (referencia-elv)

OOP #14 (referencia-elv) OOP #14 (referencia-elv) v1.0 2003.03.19. 21:22:00 Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj. e-mail: aroan@ektf.hu web: http://aries.ektf.hu/~aroan OOP OOP_14-1 - E jegyzet

Részletesebben

Programozási nyelvek a közoktatásban alapfogalmak II. előadás

Programozási nyelvek a közoktatásban alapfogalmak II. előadás Programozási nyelvek a közoktatásban alapfogalmak II. előadás Szintaxis, szemantika BNF szintaxisgráf absztrakt értelmező axiomatikus (elő- és utófeltétel) Pap Gáborné. Szlávi Péter, Zsakó László: Programozási

Részletesebben

Algoritmizálás + kódolás C++ nyelven és Pascalban

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

Részletesebben

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

Részletesebben

5. Gyakorlat. struct diak {

5. Gyakorlat. struct diak { Rövid elméleti összefoglaló 5. Gyakorlat Felhasználó által definiált adattípusok: A typedef egy speciális tárolási osztály, mellyel érvényes típusokhoz szinonim nevet rendelhetünk. typedef létező_típus

Részletesebben

1. Alapok. #!/bin/bash

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

Részletesebben

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport

HORVÁTH ZSÓFIA 1. Beadandó feladat (HOZSAAI.ELTE) ápr 7. 8-as csoport 10-es Keressünk egy egész számokat tartalmazó négyzetes mátrixban olyan oszlopot, ahol a főátló alatti elemek mind nullák! Megolda si terv: Specifika cio : A = (mat: Z n m,ind: N, l: L) Ef =(mat = mat`)

Részletesebben

C programozási nyelv

C programozási nyelv C programozási nyelv Előfeldolgozó utasítások Dr Schuster György 2011 május 3 Dr Schuster György () C programozási nyelv Előfeldolgozó utasítások 2011 május 3 1 / 15 A fordítás menete Dr Schuster György

Részletesebben

Vezérlési szerkezetek

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

Részletesebben

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás

Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606. Dr. Bécsi Tamás 2. előadás Számítástechnika I. BMEKOKAA152 BMEKOKAA119 Infokommunikáció I. BMEKOKAA606 Dr. Bécsi Tamás 2. előadás Console I/O bővebben Lásd mintaprogram 2015.09.21. Számítástechnika I. 2. Előadás 2 Számábrázolásról

Részletesebben

C programozási nyelv Pointerek, tömbök, pointer aritmetika

C programozási nyelv Pointerek, tömbök, pointer aritmetika C programozási nyelv Pointerek, tömbök, pointer aritmetika Dr. Schuster György 2011. június 16. C programozási nyelv Pointerek, tömbök, pointer aritmetika 2011. június 16. 1 / 15 Pointerek (mutatók) Pointerek

Részletesebben

Programozás II. 2. Dr. Iványi Péter

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

Részletesebben

Bevezetés a programozásba I.

Bevezetés a programozásba I. Bevezetés a programozásba I. 6. gyakorlat C++ alapok, szövegkezelés Surányi Márton PPKE-ITK 2010.10.12. Forrásfájlok: *.cpp fájlok Fordítás: a folyamat, amikor a forrásfájlból futtatható állományt állítunk

Részletesebben

BASH script programozás II. Vezérlési szerkezetek

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

Részletesebben

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin

A PROGRAMOZÁS ALAPJAI 3. Készítette: Vénné Meskó Katalin 1 A PROGRAMOZÁS ALAPJAI 3 Készítette: Vénné Meskó Katalin Információk 2 Elérhetőség meskokatalin@tfkkefohu Fogadóóra: szerda 10:45-11:30 Számonkérés Időpontok Dec 19 9:00, Jan 05 9:00, Jan 18 9:00 egy

Részletesebben

Karakterkészlet. A kis- és nagybetűk nem különböznek, a sztringliterálok belsejét leszámítva!

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-

Részletesebben

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1

Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Algoritmizálás és adatmodellezés tanítása beadandó feladat: Algtan1 tanári beadandó /99 1 Készítette: Gipsz Jakab Neptun-azonosító: ABC123 E-mail: gipszjakab@seholse.hu Kurzuskód: IT-13AAT1EG 1 A fenti

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés: a 2. alkalom

Részletesebben

A C programozási nyelv II. Utasítások. A függvény.

A C programozási nyelv II. Utasítások. A függvény. A C programozási nyelv II. Utasítások. A függvény. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv II (Utasítások, fuggvények) CBEV2 / 1 Kifejezés utasítás Kifejezés utasítás, blokk

Részletesebben

3. Osztályok II. Programozás II

3. Osztályok II. Programozás II 3. Osztályok II. Programozás II Bevezető feladat Írj egy Nevsor osztályt, amely legfeljebb adott mennyiségű nevet képes eltárolni. A maximálisan tárolható nevek számát a konstruktorban adjuk meg. Az osztályt

Részletesebben

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

Részletesebben

Labor gyakorlat Mikrovezérlők

Labor gyakorlat Mikrovezérlők Labor gyakorlat Mikrovezérlők ATMEL AVR ARDUINO 1. ELŐADÁS BUDAI TAMÁS 2015. 09. 06. Tartalom Labor 2 mikrovezérlők modul 2 alkalom 1 mikrovezérlők felépítése, elmélet 2 programozás, mintaprogramok Értékelés:

Részletesebben

Kifejezések. Kozsik Tamás. December 11, 2016

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;

Részletesebben

Programozás BMEKOKAA146. Dr. Bécsi Tamás 3. előadás

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

Részletesebben

A szerzõrõl... xi Bevezetés... xiii

A szerzõrõl... xi Bevezetés... xiii TARTALOMJEGYZÉK A szerzõrõl...................................................... xi Bevezetés...................................................... xiii I. rész A Visual Basic 2005 környezet 1. óra Irány

Részletesebben

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.

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

Részletesebben

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1

Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Programozási alapismeretek beadandó feladat: ProgAlap beadandó feladatok téma 99. feladat 1 Készítette: Gipsz Jakab Neptun-azonosító: A1B2C3 E-mail: gipszjakab@vilaghalo.hu Kurzuskód: IP-08PAED Gyakorlatvezető

Részletesebben

Operációs Rendszerek II. labor. 2. alkalom

Operációs Rendszerek II. labor. 2. alkalom Operációs Rendszerek II. labor 2. alkalom Mai témák (e)grep Shell programozás (részletesebben, példákon keresztül) grep Alapvető működés: mintákat keres a bemeneti csatorna (STDIN vagy fájl) soraiban,

Részletesebben

Operációs rendszerek gyak.

Operációs rendszerek gyak. Operációs rendszerek gyak. AWK programozás Hirling Dominik Szegedi Tudományegyetem AWK AWK: a pattern scanning and processing language mintaelemző-és feldolgozó nyelv bármilyen szövegből minták alapján

Részletesebben

6. fejezet: Ciklusok

6. fejezet: Ciklusok 6. fejezet: Ciklusok Mint a nyelvekben általában, itt is léteznek ciklusok. Az alapvető három ciklus-típus: elöltesztelő, hátultesztelő és számláló. Lássuk ezeket sorban! Elöltesztelő = while. A while

Részletesebben

Bevezetés a C++ programozási nyelvbe

Bevezetés a C++ programozási nyelvbe Bevezetés a C++ programozási nyelvbe Miskolci Egyetem Általános Informatikai Tanszék CPP0 / 1 Története A C++ programozási nyelv a C programozási nyelv objektum orientált kiterjesztése. Az ANSI-C nyelvet

Részletesebben

Laborsegédlet 3. Labor

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

Részletesebben

Programozás. (GKxB_INTM021) Dr. Hatwágner F. Miklós február 18. Széchenyi István Egyetem, Gy r

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

Részletesebben

Ü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

Ü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.

Részletesebben

Programozás alapjai. 2. előadás

Programozás alapjai. 2. előadás 2. előadás Általános Informatikai Tanszék A számítógépes feladatmegoldás eszközei Adatok (Amiken utasításokat hajtunk végre) Utasítások (Amiket végrehajtunk) Program struktúra Adatok Konstans (a programon

Részletesebben

GYAKORLATIAS JAVA MINTA

GYAKORLATIAS JAVA MINTA Java SE programozási alapok - alapelemek viszont a Javadoc-ban nem fog megjelenni. */ 4.2. Egyszerű és összetett típusok A programozás során az adatainkat (legyen az csak átmeneti is) ún. változókban tárolunk.

Részletesebben

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double

Programozás alapjai C nyelv 4. gyakorlat. Mit tudunk már? Feltételes operátor (?:) Típus fogalma char, int, float, double Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Programozás alapjai I. (C nyelv, gyakorlat) BME-IIT Sz.I. 2005.10.10.. -1- Mit tudunk már? Típus fogalma char, int, float,

Részletesebben

Programozás C és C++ -ban

Programozás C és C++ -ban Programozás C és C++ -ban 2. További különbségek a C és C++ között 2.1 Igaz és hamis A C++ programozási nyelv a C-hez hasonlóan definiál néhány alap adattípust: char int float double Ugyanakkor egy új

Részletesebben

Komputeralgebra Rendszerek

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

Részletesebben

Dr. Schuster György október 14.

Dr. Schuster György október 14. Real-time operációs rendszerek RTOS 2011. október 14. A fordítás vázlata prog.c Előfeldolgozó Átmenti állomány Fordító prog.obj más.obj-tek könyvtárak indító kód Linker futtatható kód Ismétlés Előfeldolgozó

Részletesebben

Kifejezések. Kozsik Tamás. December 11, 2016

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: (), [], {},

Részletesebben

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók

Alapok. tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók Haskell 1. Alapok tisztán funkcionális nyelv, minden függvény (a konstansok is) nincsenek hagyományos változók, az első értékadás után nem módosíthatók elég jól elkerülhetők így a mellékhatások könnyebben

Részletesebben

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód:

Szerző. Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: Név: vp.05@hotmail.com Kurzuskód: Szerző Név: Varga Péter ETR azonosító: VAPQAAI.ELTE Email cím: vp.05@hotmail.com Kurzuskód: IP-08PAEG/27 Gyakorlatvezető neve: Kőhegyi János Feladatsorszám: 20 1 Tartalom Szerző... 1 Felhasználói dokumentáció...

Részletesebben

Pénzügyi algoritmusok

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

Részletesebben

PASzSz. Dr. Kotsis Domokos

PASzSz. Dr. Kotsis Domokos PASzSz Készítette: Dr. Kotsis Domokos Első témakör: Lazarus terminál alkalmazás készítése. Lazarus terminál alkalmazás készítése. Egyszerű algoritmusok leírása, megvalósítása. Free Pascal A Turbo Pascal

Részletesebben

Programozási nyelvek Python

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

Részletesebben

Imperatív programozás

Imperatív programozás Imperatív programozás 2. Előadás Python alapok Elérhetőség Tejfel Máté Déli épület, 2.616 matej@elte.hu http://matej.web.elte.hu Python Script nyelv Értelmezett (interpretált) Dinamikus típusrendszer Gyors

Részletesebben

Programozas 1. Strukturak, mutatok

Programozas 1. Strukturak, mutatok Programozas 1 Strukturak, mutatok Strukturak Tömb: több egyforma típusú változó együttese Struktúra: több különböző típusú de logikailag egybetartozó változó együttese, amelyet az egyszerű kezelhetőség

Részletesebben

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3)

Mit tudunk már? Programozás alapjai C nyelv 4. gyakorlat. Legnagyobb elem keresése. Feltételes operátor (?:) Legnagyobb elem keresése (3) Programozás alapjai C nyelv 4. gyakorlat Szeberényi Imre BME IIT Mit tudunk már? Típus fogalma char, int, float, double változók deklarációja operátorok (aritmetikai, relációs, logikai,

Részletesebben

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés

A C programozási nyelv V. Struktúra Dinamikus memóriakezelés A C programozási nyelv V. Struktúra Dinamikus memóriakezelés Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv V. (Struktúra, memóriakezelés) CBEV5 / 1 A struktúra deklarációja 1.

Részletesebben

Dr. Oniga István DIGITÁLIS TECHNIKA 8

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

Részletesebben

BATCH Programozás. Tartalomjegyzék

BATCH Programozás. Tartalomjegyzék BATCH Programozás Tartalomjegyzék 1. Bevezetés 2. Általános információk a batch file-okról 3. A legegyszerűbb batch file-ok 4. Paraméterezhető batch file-ok 5. Gyakran használatos batch parancsok 6. Elágazások

Részletesebben