Az S40 PLC-programozási nyelv (IEC kompatibilis) elemkészletének ismertetése

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

Download "Az S40 PLC-programozási nyelv (IEC1131-3 kompatibilis) elemkészletének ismertetése"

Átírás

1 Az S40 PLC-programozási nyelv (IEC kompatibilis) elemkészletének ismertetése programstruktúra adattípusok, változók deklarálása utasításkészlet függvények funkcióblokkok

2

3 Tartalomjegyzék 1. A kézikönyvről A Sucosoft programstruktúrája Adattípusok, változók deklarálása... 6 Elemi adattípusok felsorolása... 6 Adattípusok felosztása... 7 Származtatott adattípusok... 8 Változó fajták Változó típusok POU-k programutasítási része Utasításkészlet Függvények Funkcióblokkok Függvények Adattípusokat konvertáló függvények Numerikus függvények Aritmetikai függvények Állapotbit vizsgáló függvények Bit mozgatások Logikai függvények Összehasonlítási függvények Operációs rendszer-függvények Megszakítást tiltó / engedélyező függvények Karakterlánccal kapcsolatos függvények Kiválasztási függvények Funkcióblokkok _16BitBinaryToBCD 16-bit bináris kódolású szám -> decimálissá alakítása _16Bit_Compare _16BitCounter 16-bites előre- /hátraszámláló ADRtoSTR vett adatbájtok STRING típusú változóvá alakítása BCDTo16BitBinary Decimális kódolású szám -> 16-bit binárissá alakítása BlockCompare adatblokkok összehasonlítása, adott adat keresése a blokkban (címváltozók alkalmazásával) BlockTransfer adatblokk másolása, inicializálása (címváltozók alkalmazásával) CompareArray adatblokkok összehasonlítása, adott adat keresése a blokkban COMtoSTR vett adatbájtok STRING típusú változóvá alakítása CounterAlarm számláló megszakításkezelés DATconcat dátum és idő (DATE_AND_TIME) típusú változó összeállítása egyedi típusú adatokból DateConcat dátum (DATE) típusú változó összeállítása egyedi típusú adatokból DateSplit dátum (DATE) típusú változó szétválasztása egyedi típusú adatokra

4 DATsplit dátum és idő (DATE_AND_TIME) típusú változó szétválasztása egyedi típusú adatokra DE4netK DF4 frekvenciaváltók kommunikációs modulja Deserialize tömbből tetszőleges formátumú adatok kiválasztása EdgeAlarm változásfigyelés megszakításkezelés FifoBx 8-bites csőtár regiszter FifoWx 16-bites csőtár regiszter GetRealTimeClock Valós idejű óra kiolvasása LifoBx 8-bites veremtár regiszter LifoWx 16-bites veremtár regiszter MI4netK MI4 kijelzők kommunikációs modulja MS_TimeFalling Elejtésre késleltetett időzítő (milliszekundumos megadással) MS_TimeRising Meghúzásra késleltetett időzítő (milliszekundum megadással) ReadMC adatok olvasása a flash-memóriából ReloadData adatok olvasása a flash-memóriából (címváltozók RealTimeClock alkalmazásával) valós idejű óra összehasonlítása egyedi bemeneti adatokkal RTC valós idejű óra állítása S_TimeFalling Elejtésre késleltetett időzítő (szekundumos megadással) S_TimeRising Meghúzásra késleltetett időzítő (szekundum megadással) SaveData adatok írása a flash-memóriába (címváltozók alkalmazásával) SCO transzparens soros vonali kommunikáció Serialize tetszőleges adatstruktúra bájtos tömbbe való másolása SetRealTimeClock Valós idejű óra állítás SR_x bites léptető regiszter SRB_x bájtos lépető regiszter SRW_x szavas lépető regiszter STRtoADR STRING típusú változó adott címterületre másolása STRtoCOM STRING típusú változó adott címterületre másolása TimeConcat idő (TIME) típusú változó összeállítása egyedi típusú adatokból TimeGenerator ütemadó impulzusgenerátor TimePulse impulzusképző TimerAlarm időzítéses megszakításkezelés TimeSplit TODconcat TODsplit idő (TIME) típusú változó szétválasztása egyedi típusú adatokra napi idő (TOD) típusú változó összeállítása egyedi típusú adatokból idő (TIME_OF_DAY) típusú változó szétválasztása egyedi típusú adatokra TransferArray adatblokk másolása, inicializálása WriteMC adatok írása a flash-memóriába Sucosoft határértékek

5 A Sucosoft programstrukturája 1. A kézikönyvről Ezen dokumentáció az AWB számú dokumentáció szerkesztett fordítása, mely az alapvető ismereteket és az általunk legfontosabb utasítások, függvények, funkcióblokkok fordítását tartalmazza a kompakt PLC-kre (PS4-200, PS4-300) vonatkozóan. Az egyes programnyelvi kifejezések az összes PLC típusra (PS4, PS416) azonosak. A különbségek csak az egyes PLC-k memórianagyságában, a támogatott adattípusokban illetve a különböző perifériákból adódhatnak. Ezen esetekben külön hivatkozunk az adott típusokra. A PS4-200 jelölés a PS4-141/-151-MM1 valamint a PS4-201/-271-MM1, a PS4-300 jelölés a PS4-341-MM1 kompakt PLC-kre, a PS416 jelölés pedig az összes moduláris CPU típusra (CPU-200, CPU-300, CPU-400) vonatkozik. Megjegyzések nélküli leírás részek minden PLC típusra érvényes. 2. A Sucosoft programstruktúrája A Sucosoft által használt programnyelvek megfelelnek az IEC szabványnak. A különböző felhasználói programok strukturált kialakításához három porgramorganizációs egység (továbbiakban POU) áll rendelkezésre. PROGRAM (főprogram) FUNCTION (függvények, továbbiakban FU) FUNCTIONBLOCK (funkcióblokkok, továbbiakban FB) A gyakran fellépő feladatok megkönnyítésére a Sucosoft a standard függvények és funkcióblokkok sorozatát kinálja fel. A Sucosoft mind az IEC által, mind a Moeller Electric által definiált gyártó-definiált függvényeket és a funkcióblokkokat tartalmaz. (A fordítás csak a Moeller Electric által definiált gyártós pecifikus programelemeket ismerteti.) Az eredeti kézikönyvben az egyes függvények, funkcióblokkok eredetük szerint IEC vagy KM jelöléssel találhatók meg. A strukturált program feldolgozását a hívó POU (függvény, funkcióblokk) megszakítja, és a meghívott POU-ban történik tovább a programfeldolgozás. A hívás lehet közvetlen vagy (az előző programrész eredményétől függő) feltételhez kötött. Minden POU egy deklarációs részből és egy utasításrészből áll. Az összes adatelemet, mely az utasításrészben felhasználásra kerül, deklarálni kötelező. A program kommentárokat is tartalmazhat. A kommentárokat (*.. *) jelek közé kell elhelyezni. A kommnetárok egymásba ágyazhatók, ezáltal egyes programrészek egyszerűen kizárhatók 8kikommentározhatók) a programfutásból. Egy-egy POU tartalma adott kulcsszavakkal határolódik el egymástól, melyet a POU-editor (a programszerkesztő automatikusan generál. PROGRAM. END_PROGRAM; FUNCTION END_FUNCTION; FUNCTION_BLOCK END_ FUNCTION_BLOCK; 5

6 Adattípusok 3. Adattípusok, változók deklarálása Az IEC elemi és származtatott adattípusokat deklarál. A kulcsszavak kis és nagybetűvel egyaránt írhatók. Elemi adattípusok felsorolása Az elemi adattípusokat az adott kulcsszavak egyértelműen meghatározzák. A kezdeti értékek a := hozzárendelési operátorral adhatók meg. Amennyiben nincs (kezdeti (inicializálási) érték a változóhoz hozzárendelve, akkor a változók a default értékeket veszik fel. SINT INT DINT 1) USINT UDINT 1) Kulcsszó adattípus bitfoglalás default érték kétértékű bináris szám, értéke: 1(igaz) vagy 0,(hamis) short integer; rövid egész szám értéke: integer; egész szám értéke: double integer; dupla egész szám értéke: unsigned short integer; előjel nélküli rövid egész szám, értéke: unsigned integer; előjel nélküli egész szám, értéke unsigned double integer; előjel nélküli dupla egész szám, értéke: REAL 1) real; valós szám, értéke: +/-3,4 E+/ TIME időtartam; megadása nap, óra, perc, sec., msec. értéktart.: -129d+1ms +128d-1ms; PS4-200 esetén: -65d+1ms..-64d-1ms matematikai műv. esetén:0..64d-1ms T#0s DATE dátum formátum; YYYY-MM-TT D# TIME_OF_DAY időpont formátum: HH:MM:SS TOD#00:00:00 DATE_AND_TIME dátum és idő DT :00:00 STRING változó hosszúságú karakterlánc 2) (szóköz) BYTE bitsorozat 8bit szélességben 8 0 WORD bitsorozat 16bit szélességben 16 0 DWORD* bitsorozat 32bit szélességben ) csak a PS4-300 és Ps416 esetén 6

7 Adattípusok 2) A karakterlánc hosszának default értéke 32jel. Amennyiben más értékre van szükség, akkor azt a deklarálás során kell kerek zárójelek között megadni. pl. Text : STRING(12) := ABC ; maximális STRING hossz PS4-200 esetén: 253jel, PS4-300 és PS416 esetén: 1024jel R_EDGE és F_EDGE adattípusok (csak PS4-200 és PS4-300 esetén) A R_EDGE (felfutó él) és a F_EDGE (lefutó él) adattípusok az elemi típusok között szerepelnek. A jelváltozást kiértékelő adattípusok csak változó bemenetként (_INPUT) használhatók felhasználó által definiált funkcióblokkok bemenetein. Ha a bemeneteken egy felfutó vagy lefutó élváltozás történt, akkor a R_EDGE vagy a F_EDGE-nek deklarált bemenetek az ezt követő híváskor logikai 1 értéket vesznek fel. Adattípusok felosztása ANY ANY_ ANY_NUM ANY_BIT ANY_DATE ANY_STRING TIME szárm. adattíp. FUNCTION_ BLOCK ADDRESS# ANY_REAL ANY_INT REAL REAL* SINT DATE DATE INT BYTE BYTE TIME_OF_DAY TIME_OF_DATE (TOD) (TOD) TIME DINT* WORD DATE_AND_TIME (DAT) (DAT) USINT DWORD* UDINT* felsorolás ANY_ARRAY STRUCT ARRAY[..] # az új fejlesztések esetén nem ajánlott! * csak aps4-300 illetve PS416 estén 7

8 Adattípusok Az ADDRESS adattípus és az ANY kategóriajelölések csak mint általános adattípus jelölések a standard funkciók és funkcióblokkok bemeneti és kimeneti paramétereinél használatosak. Származtatott adattípusok A származtatott adattípusokat az elemi adat adattípusokból lehet új, a felhasználó által adott kulcsszóval előállítani. A deklarálás a TYPE END_TYPE kulcsszavakkal történik. A származtatott adattípusok definiálásával a kulcsszavak közé egyedi adattípusú változókat tud bevezetni. példa: TYPE Analogertek : INT ; END_TYPE Ertek1 : Analogertek ; A származtatott adattípusok csak abban a POU-ban érvényesek, ahol a hozzátartozó típusdefiniálás megtörtént. Projekt globális származtatott adattípusokat a usertype.typ fájlban tetszőleges szövegszerkesztővel lehet a TYPE END_TYPE kulcsszavakkal definiálni. (Lásd részletesen az AWB kézikönyvet.) Lehetséges származtatott adattípusok: változók korlátozott értéktartománnyal: alkalmazásával lehetségessé válik az elemi adattípusok értéktartományát az újabb adattípus bevezetésével bekorlátozni. TYPE analogertek_1 : INT ( ) ; feszultseg : INT (0..150) ; temperatur : INT( ) ; END_TYPE Az alsó felső határértékeket két ponttal szóköz nélkül kell megadni. A pozitív értékek elé nem kell előjelet tenni! Meresi_Ertek1 : analogertek_1 ; Meresi_Ertek2 : feszultseg ; Kazan_Temp : temperatur ; 8

9 Adattípusok felsorolás adattípusok: A felsorolás adattípus definiálásával egy listát adunk meg, amilyen értékeket a változó a későbbiek folyamán felvehet. A típus definiálásakor a név megadását követően kerek zárójelben, egymástól vesszővel elválasztva adjuk meg a változó értékeket. A befejező zárójelet követően lehet a kezdeti értéket megadni. Amennyiben nincs kezdeti értékadás, akkor az első programfeldolgozáskor a változólista első eleme kerül felhasználásra. példa: típus-inicializálás Az adattípus Kozl_Lampa három értéket (piros, sarga, zold) vehet fel. A változó sarga kezdeti értékkel indul. Ha hiányozna az inicializálás, akkor a változó a pirost, mint az első értéket venné fel. TYPE Kozl_Lampa : (piros, sarga, zold) :=sarga ; END_TYPE K_Lampa1 : Kozl_lampa ; K_Lampa2 : Kozl_lampa ; K_Lampa3 : Kozl_lampa ; Auto_Allj : ; A program utasításrészében az egyes definiált értékek közvetlenül is felhasználhatók. LD EQ St K_Lampa1 piros Auto_Allj tömb típusú adatok: Több azonos típusú adatot egy változóba is össze lehet foglalni. Ezt az adattípust tömbnek nevezzük. Egy tömb tartalmazhat mind elemi mind származtatott adattípust. A definiálás az ARRAY kulcsszóval és az adatelemek számának megadásával történik. A tömbváltozók közvetlen címekkel is összekapcsolható az AT kulcsszó felhasználásával. példa: Tömbváltozó deklarálása A tomb1 ötelemű INT típusú, a tomb2 egy háromdimenziós 24 elemű változót jelent. A 17-es kezdeti értékű tömbelemet a program 5-re átírja. PROGRAM tomb TYPE tomb_5_int : ARRAY [1..5] of INT :=[1,13,5,34,2] ; tomb_24_int : ARRAY [1..2,1..3,1..4] of INT :=[[[3,7,2,9],[2,8,6,1],[5,7,2,17], [[2,3,0,5],[6,1,2,4],[3,0,1,4]]]; 9

10 Adattípusok END_TYPE tomb1 : tomb_5_int ; tomb2 :tomb_24_int ;.. LD 5 ST. tomb2[1,3,4] END_PROGRAM Struktúra adattípus definiálása: (csak a PS4-300 és a PS416 estén) Különböző típusú adatelemek egy adattípusba való összerendelésére szolgál az adatstruktúra. Az adatstruktúra tartalmazhat elemi vagy származtatott adattípusokat is. A deklaráláshoz a STRUCT kulcsszót kell megadni, majd ezt követi az egyes elemek felsorolása típus megadásukkal együtt. Egy struktúraelem megszólítása a struktúra változó névmegadással majd ponttal elválasztva a struktúraelem nevével történik. példa: kezdeti értékadás a deklarálás során PROGRAM struktur TYPE Berendezes_Adatok : STRUCT meres1: := 1 ; meres2: INT := -15 ; meres3: := 100; meres4: REAL := 10.2; END_STRUCT END_TYPE allomas1 : Berendezes_Adatok ; allomas2 : Berendezes_Adatok ; LD. allomas1. meres3 10

11 Adattípusok END_PROGRAM példa: kezdeti értékadás a deklarálás után PROGRAM struktur TYPE Berendezes_Adatok : STRUCT meres1: ; meres2: INT ; meres3: ; meres4: REAL ; END_STRUCT := (meres1 :=1, END_TYPE meres2 := -15, meres3 := 100, meres4 : =10.2) ; allomas1 : Berendezes_Adatok ; allomas2 : Berendezes_Adatok ; A Berendezes_Adatok típus bevezetésével és az allomas1 és az allomas2 változókhoz való hozzárendeléssel az allomas1 és allomas2 változók mindegyike tartalmaz egy-egy, INT, és REAL adattípust. Amennyiben a származtatott adattípusok típusdeklarációjában nem történik kezdeti értékadás, akkor az egyedi adatelemek kezdeti értékként a default értéküket veszik fel. 11

12 Változók Változó fajták A PLC-ben alkalmazott adatelemeket változóknak nevezzük. A változók csoportosítása: változók, melyek a közbenső belső adattárolásra szolgálnak közvetlen címzésű változók, melyek a bemenetekhez, kimenetekhez, vagy meghatározott memóriaterülethez illetve a PLC kommunikációs memóriaterületéhez kapcsolódnak. A változókat jellel, névvel lehet azonosítani. A nevek betűvel vagy aláhúzásjellel (_) kezdődhetnek, és egyébként kis- és nagybetűk, számok, aláhúzások sorozatából áll. Közvetlenül ábrázolható változók A fizikai PLC címek (be-/kimenetek, memóriaterületek) közvetlenül is megszólíthatók. A direkt ábrázolású változókat is kötelező deklarálni, azonban a direkt címekhez szimbolikus nevek hozzárendelése is megengedett. Direkt címzés esetén az operandusokat %-jellel és a fizikai címükkel lehet megszólítani. A deklarációs részben a fizikai címet (szóközzel elválasztva) AT kulcsszóval kell megadni. példa: Program poe4 Szóközöket, ékezetes betűket a név nem tartalmazhat. A kulcsszavakat szintén nem lehet változónévként használni. A változónevek maximális hossza 64 karakter. A kis és nagybetűs jeleknek nincs megkülönböztető jelentősége. AT AT %I : ; Bemenet1 AT %I : ; Eredmeny : ; LD AND ST Bemenet1 %I Eredmeny Ajánlatos a szimbolikus nevek használata a direkt címzésű változók esetén is, mert használatuk esetén a címváltoztatást egyszerűbb átvezetni. Ebben az esetben elegendő ugyanis a deklarációs részben a szimbolikus név és a direkt változó hozzárendelését javítani, az utasításrész változatlan maradhat. (Ellenkező esetben minden egyes direkt változó helyén el kell végezni a módosítást.) Közvetlenül címzésű változókat csak a főprogramban (PROGRAM nevű POU) lehet deklarálni. Igény esetén egy tömbhöz is lehet közvetlenül címeket hozzárendelni, de csak az azonos típusú címzéseket (, BYTE, SINT, USINT, WORD, INT stb.) lehet összefogni egy tömbbe. A PS4-200 és PS4-300 estén a bitváltozókat csak a 8 egészszámú többszöröseként 12

13 lehet összefogni. Változók A PROGRAM POU-ban deklarált globális direkt címzésű változókat a funkcióblokkokban, mint külső (EXTERNAL) deklarált változókként lehet felhasználni. Egy másik, gyorsabb lehetőség a funkcióblokkok esetén a változók paraméter átadása a _IN_OUT típusokon keresztül. Ez a lehetőség azonban csak az írható változókra (PLC kimenetekre, memóriahelyekre, kommunikációs adatokra) vonatkozik. A Sucosoft a következő fizikai címeket ismeri: I: digitális bemenet Q: digitális kimenet M: memóriaterület IA: analóg bemenet QA: analóg kimenet IC: számláló bemenet IS: status információs bemenet (diagnosztika) SD: intelligens Suconet K résztvevőnek küldendő adat RD: intelligens Suconet K résztvevőtől fogadott adat A következő fizikai címek a közvetlen periféria hozzáféréshez használhatók: IP: digitális bemenet (PS4-200/-300) QP: digitális kimenet (PS4-200/-300) IPA: analóg bemenet (PS4-300) QPA: analóg kimenet (PS4-300) IPC: számláló bemenet (PS4-300) A rendelkezésre álló konfigurált hardver határozza meg, hogy milyen címek állnak rendelkezésre. Az egyes adatok nagyságát a következő szimbólumokkal jelöljük: szimbólum jelentése nagyság példa - bit 1 bit %I B bájt 8 bit %IB W szó 16bit %IW D duppla szó 32bit %ID A direkt című változók memóriabeli szervezése a következő kimeneti változón (Q) látható: QD QD QW QW QW QW QB QB QB QB QB QB QB QB Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q Q

14 Változók Változó típusok A programozási egység deklarációs részében minden felhasználásra kerülő változót definiálni kell. A különböző változótípusokat a megfelelő kulcsszavakkal lehet jellemezni. A következőkben összefoglalva látható a különböző változótípusok és jellemzésük. Kulcsszó _GLOBAL _EXTERNAL _INPUT _OUTPUT _IN_OUT TYPE Felhasználás lokális változók; érvényességi körük csak az adott POU-ra, ahol definiálásra kerültek, vonatkozik. A globálisként deklarált változó érvényességi területe a teljes programra vonatkozik, azaz egy a PROGRAM POUban globálisan deklarált változó bármelyik programbeli funkcióblokkban (FB-ben) is előhívható. Az FB-ben, ahol egy globálisan deklarált változó felhasználásra kerül, a változót azonos névvel, mint _EXTERNAL típusként kell deklarálni. Ha egy FB-ben egy globálisan deklarált változó kerül felhasználásra, akkor az azonos névvel és _EXTERNAL típusként kell deklarálni. Egy változó bemeneti változóként kerülhet definiálásra egy POU-ban (FU (= függvény), FB), ha ebben a programozási egységben a változót csak olvassák, vagy csak paraméterátadásra használják, vagyis a változó értékét nem szabad megváltoztatni. Egy FB kimeneti változójaként definiált változót az FB a hívás folyamán képes írni, azaz azt megváltoztatni. Az IN_OUT típusú változót az FB képes meghívni, és ugyanazon a néven módosított értéket adni. Mivel a az FB.n belül értékadás történhet, írásvédett változót (pl. CONSTANT) a _IN_OUT-ként nem lehet használni. A TYPE kulcsszó a származtatott adattípusok jelölésére szolgál. Minden egyes adatblokkot az, vagy END_TYPE kulcsszavakkal kell lezárni. A _IN_OUT változó mutató (pointer), amely az adott típusú deklarált változóra mutat. A változó csak FB-ben alkalmazható, és az FB hívása előtt már érvényes értékkel kell rendelkeznie. A nem inicializált _IN_OUT változók a fordítás során szintaktikai hibát okoznak. A mutatót az FB hívása előtt akkor is inicializálni kell, ha az FB-ben a hívás során közvetlenül nem kerül felhasználásra. A mutatókat az FB hívásakor kerek zárójelben kell megadni. Példa: Mutató egy 201szavas tömbváltozóra A demo nevű FB-ben alkalmazott w_array _IN_OUT típusú változó nem 201 szót tartalmazó tömb, hanem egy mutató, mely erre a tömbre mutat. A demo FB-ben a word_array globális tömbre történik a hivatkozás. 14

15 Változók A mutatók alkalmazása a következő előnyöket nyújtja: A demo hívásakor nem kell a tömböt átmásolni (időnyereség), és a _IN_OUT változóra való hivatkozás mind az írást, mind az olvasást biztosítja. A funkcióblokk így neutrális maradhat, mivel az EXTERNAL deklaráció is elmarad, mely egyébként adott globális változókhoz kapcsolódna. PROGRAM user _GLOBAL word_array : array[0..200] of word ; my_function_block : demo ; cal my_function_block(w_array :=word_array) END_PROGRAM FUCTION_BLOCK demo _IN_OUT w_array : array[0..200] of word ; seged1 : word ; seged2 : word ; ld w_array[100] st seged1 ld seged2 st w_array[200] END_FUNCTION_BLOCK A lokális és globális változók további tulajdonságokkal is kiegészíthető. Kulcsszó RETAIN CONSTANT AT Felhasználás A RETAIN kulcsszóval az adott változót remanensnek definiálhatjuk, azaz meleg start esetén a változó megtartja utolsó kikapcsolás előtti értékét. A RETAIN kulcsszó a vagy a _GLOBAL után szóközzel írandó. Amennyiben egy adatelem konstansként, azaz értéke állandóként definiálandó, akkor a CONSTANT attribútum használható. A CONSTANT kulcsszó a vagy a _GLOBAL után szóközzel írandó. Ha egy változóhoz fizikai címet kíván hozzárendelni, akkor ehhez az AT kulcsszó használható. PS4-200 esetén a memóriaváltozókat nem lehet a RETAIN kulcsszóval remanensé tenni. Ebben az esetben egy összefüggő memóriaterületet kell kijelölni, melyet a kód élőállítás -> Opciók -> PS-opciók -> Compiler menüpont alatt lehet kijelölni. 15

16 Változók PS4-300 esetén a memóriaváltozókat mind a RETAIN kulcsszóval, mind a remanens memóriaterület kijelölésével (kód élőállítás -> Opciók -> PSopciók -> Compiler ) remanensé lehet tenni. A PS4-200 esetén egy funkcióblokk egyes változóit remanenssé beállítani nem lehet. Ebben az esetben az egész funkcióblokkot kell remanensként deklarálni. Változótípusok felhasználása FU FB PRG _INPUT _OUTPUT _IN_OUT _GLOBAL _EXTERNAL TYPE * * * Funkcióblokkok helyfoglalása többszörös felhasználás lehetséges * lokálisan egy POU-n belül, vagy globálisan a usertype.typ fájl megfelelő szerkesztésével! A funkcióblokkot abban a POU-ban (PROGRAM vagy egy másik FB), ahol meghívásra kerül, külön deklarálni szükséges. A definiálás ebben az esetben szintén egy egyedi névadással és a típus (funkcióblokk prototípusának) megadásával történik. Pl. szamlalo : CTU ; azaz a funkcióblokk egy egyedi, szamlalo névvel ellátva, és CTU típusként kerül meghívásra. A bemeneti változókat a meghívás előtt kell paraméterezni, a kimeneteket vagy előtte, vagy a meghívás után lehet további változókhoz hozzárendelni. A függvényektől eltérően csak azokat a bemeneti változókat kell paraméterezni, amelyek lényegesek a funkcióblokk hívása esetén. Kivételek a _IN_OUT típusú változók, melyeket minden híváskor paraméterezni kell, különben szintaktikai hiba lép fel a fordítás során. 16

17 Utasításkészlet 4. POU-k programutasítási része Utasításkészlet Operátor Operandus Jelentés LD ANY az operandus bemásolása a z akkumulátorba LDN ANY_BIT a negált operandus bemásolása a z akkumulátorba ST ANY az akkumulátor tárolása az operandusba STN ANY_BIT az akku negált értékének tárolása az operandusba S az operandus = 1, ha az akku értéke 1 R az operandus = 0, ha az akku értéke 1 AND(N) 1) ANY_BIT logikai ÉS kapcsolat (eredmény negálva) &(N) 1) ANY_BIT logikai ÉS kapcsolat (eredmény negálva) OR(N) 1) ANY_BIT logikai VAGY kapcsolat (eredmény negálva) XOR(N) 1) ANY_BIT logikai kizáró VAGY kapcsolat (eredmény negálva) ADD 1) ANY_INT összeadás SUB 1) ANY_INT kivonás MUL 1) ANY_INT szorzás DIV 1) ANY_INT osztás GT 1) ANY_INT összehasonlítás: nagyobb; akku = 1, ha igaz GE 1) ANY_INT összehasonlítás: nagyobb/egyenlő; akku = 1, ha igaz EQ 1) ANY_INT összehasonlítás: egyenlő; akku = 1, ha igaz NE 1) ANY_INT összehasonlítás: nem egyenlő; akku = 1, ha igaz LE 1) ANY_INT összehasonlítás: kisebb/egyenlő; akku = 1, ha igaz LT 1) ANY_INT összehasonlítás: kisebb; akku = 1, ha igaz JMP címke feltétel nélküli ugrás; ugrás helye a címke JMPC(N) címke feltételes ugrás; feltétel (nem) igaz, ha az akku = 1 CAL FB-név feltétel nélküli hívás; adott nevű FB hívása CALC(N) FB-név feltételes hívás; feltétel (nem) igaz, ha az akku = 1 RET - feltétel nélküli visszaugrás az adott nevű FB-ből RETC(N) - feltételes visszaugrás; feltétel (nem) igaz, ha az akku = 1 1) Az utasítás zárójelekkel együtt is használható. Az utasítás a zárójelben megadott kifejezés eredményére vonatkozik. A zárójelek több szinten egymásba is ágyazhatók. 17

18 Utasításkészlet Programírási szabályok Egy utasítás szekvencia mindig LD(N) utasítással kezdődik. A szekvenciát az operandus írási utasítások (ST(N), S,R), valamint a feltételes ugrások, hívások és visszatérési utasítások zárják le. Kivételt képeznek a feltétel nélküli ugrások és hívások, valamint ta visszatérési utasítások. Ugrási címkéket az utasítási sor elejére kell írni és kettősponttal kell lezárni. Ugrási célként csak a szekvencia kezdetét lehet megadni. Fontos követelmény: Az utasításokat csak azonos típusú adatokkal lehet végrehajtani. A Sucosoftban természetesen konstansokkal is lehet dolgozni. Lehet adatelemeket CONSTANT attribútummal ellátva és a kívánt kezdeti értékkel inicializálva deklarálni. Másik lehetőség a programvégrehajtás során direkt értékadás alkalmazása névvel ellátott adatelem felhasználása nélkül. A konstansok különböző adattípusaihoz előírt helyesírási konvenció tartozik. A konstanson belül szóközök alkalmazása helyett térelválasztónak az aláhúzás jel megengedett. (A szóközök csak a SRTING változókban használhatók!) Konstansok áttekintése Konstansok Példa Jelentés INT vagy 45_ REAL 1) E-3 egész szám; -13 egész szám; egész szám; 125 valós szám: 13,12 valós szám: 123,45 valós szám: 0,123 valós szám:0,00123 bináris szám 2#0111_111 vagy decimálisan hexadecimális szám 16#123 vagy decimálisan STRING ABC karakterlánc ABC TIME DATE TIME_OF_DAY T#12.3ms vagy TIME#12.3ms DATE# vagy D# TOD#12:05:14.56 vagy TIME_of_DAY#12:05:14.56 DATE_AND_TIME DT# :05:14.56 v. DATE_AND_TIME# :05: ) csak a PS4-300 és Ps416 esetén 12,3ms időtartam dátum: időpont: 12óra 5perc, 14,56másodp. dárum és idő együtt: óra 5perc, 14,56másodperc A PROGRAM a Sucosoft legfelső strukturális szintje. Ebben a POU-ban célszerű az alapvető vezérlési utasításokon túl a többi strukturált POU-t (függvények, funkcióblokkok) meghívni. A függvények hívása a függvény nevének beírásával, a funkcióblokkok hívása a Cal utasítással történik. 18

19 Utasításkészlet Függvények Rendszeresen ismétlődő feladatokhoz célszerű függvényeket alkalmazni. A függvény több beállítható induló paramétert tartalmazhat, a végrehajtás eredménye pedig egyetlen kimeneti adatban helyezkedik el, mely lehet egyetlen, de akár többelemű, tömb típusú is. A függvények érvényességi területe globális, azaz minden POU részére rendelkezésre áll, és nem kell külön a hívó POU-ban deklarálni. A függvény hívása a függvény nevének megadásával és a bemeneti adatok teljes paraméterátadásával történik. A függvény első paraméterét bemenetként az akkumulátoron keresztül, a további paramétereket egymástól vesszővel elválasztva (a függvénynevet szóközzel követően) a függvény argumentumaként kell megadni. A függvény az eredményt a függvény nevének megadásával az akkumulátoron keresztül adja vissza a meghívó POU-nak. A függvények nem képesek az eredmények tárolására. A függvény a lokális paramétereket minden függvényhíváskor az adattípusuknak megfelelően (lásd az elemi adattípusokat felsoroló táblázatot az előző fejezetben) inicializálja. Ha a hívás az eredmény állítása nélkül fejeződik be, akkor a függvény automatikusan visszaállítja a lokális változók típusnak megfelelő kezdeti értékét. Példa: összeadási függvény FUNCTION szumma : INT _INPUT A : INT ; (* deklarációs rész *) B : INT ; C : INT ; LD A (* utasításrész *) ADD B ADD C ST szumma PROGRAM pr_sum tenyezo1 : INT := 1 ; tenyezo2 : INT := 2 ; tenyezo3 : INT := 3 ; eredmeny : INT ; LD tenyezo1 Szumma tenyezo2, tenyezo3 ST eredmeny END_PROGRAM Egy függvényen belül további függvények is hívhatók Viszont egy függvénybe nem lehet funkcióblokkot beágyazni, továbbá nem lehet funkcióblokk nevet bemeneti paraméterként felhasználni. 19

20 Utasításkészlet A Sucosoft a gyakori feladatok számára nagyszámú gyártó specifikus függvényt ajánl fel. Online változtatás vagy állapotkijelzés, mint a PROGRAM vagy a FB esetén, a függvényeken belül nem lehetséges. A felhasználói függvények algoritmusának tesztelésére ezért célszerű FB-t kialakítani, majd később a leellenőrzött funkcióblokkot függvénnyé átalakítani. A PS4-200 esetén a felhasználó által megírható függvényeket a Sucosoft egyelőre nem támogatja. Funkcióblokkok A gyakran előforduló feladatokhoz a függvényeken kívül funkcióblokkokat is lehet használni. A funkcióblokkok ellentétben a függvényekkel több kimeneti paraméterrel is rendelkezhetnek. A funkcióblokk a változóit megőrzi a következő hívásig, melyek így tovább feldolgozásra közvetlenül felhasználhatók. Egy funkcióblokk további FB-ket hívhat. A következő táblázat mutatja a funkcióblokk be- /kimeneti változóinak megengedett használatát: Használat funkcióblokkon belül funkcióblokkon kivűl bemenet olvasása LD IN1 AND IN2 ST Q1 LD ST FBx.IN1 %QW bemenet írása nem megengedett! LD Start ST FBx.IN1 CAL FBx kimenet olvasása LD OUT1 AND IN2 ST OUT1 kimenet írása LD 100 ST OUT1 CAL LD ST FBx(IN1 := Be, ) FBx.OUT1 %QW nem megengedett! Ha a bemeneti operandust, mint él figyelést kell alkalmazni, akkor a változót ennek megfelelően (pl. start : _R_EDGE ;) kell deklarálni! A él figyelésű változók használata csak a PS4-200 és a PS4-300 családban lehetséges. Az IEC szabvány két azonos eredménnyel járó eljárást engedélyez a funkcióblokkok paraméterátadására. A következő példában (a feladat többszörös középértékképzés) két hívással mutatjuk be a két eljárást. 20

21 A középértékképzést végző funkcióblokk prototípusa a következő: FUNCTION_BLOCK kozepertek _INPUT Reset : ; Bem1 : USINT ; Bem2 : USINT ; _OUTPUT atlag : USINT ; LD Bem1 ADD Bem2 DIV 2 St atlag END_FUNCTION_BLOCK Utasításkészlet Az FB-t hívó program felépítése: A kozepertek FB a programban különböző nevekkel kétszer kerül meghívásra (instancálásra). PROGRAM poe3 Instanz1_nev : kozepertek ; Instanz2_nev : kozepertek ; ertek1 AT %IB : USINT ; ertek2 AT %IB : USINT ; eredmeny1 AT %QB : USINT ; eredmeny2 AT %QB : USINT ; torles AT %I : ; (* FU hívás - 1. eljárás *) Cal Instanz1_nev (Reset := torles, Bem1 := ertek1, Bem2 := ertek2) LD Instanz1_nev.atlag St eredmeny1 (* FU hívás - 2. eljárás *) LD torles St torles LD ertek1 ST Instanz2_nev.bem1 LD ertek2 ST Instanz2_nev.bem2 Cal Instanz2_nev LD Instanz2_nev.atlag St eredmeny2 END_PROGRAM A csak egyszer kialakított FB szükség szerint többször is (más-más nevekkel) meghívható. 21

22 Utasításkészlet A neveket a fölérendelt hívó POU-ban kell deklarálni. A deklarálás során az egyedi neveket (itt: Instanz1_nev, Instanz2_nev) és a funkcióblokk prototípusát (itt: kozepertek) is meg kell adni. A Sucosoft a szükséges memóriaterületet az instancált FB-hez hozzárendeli, azaz a funkcióblokk minden egyes alkalmazásánál a belső adatok is letárolásra kerülnek. A funkcióblokk hívásakor (Cal Instanz1_nev) a történik meg a tulajdonképpeni paraméterezés, azaz ekkor rendelődnek hozzá a funkcióblokk bemeneti paramétereihez az adott specifikus változók. Az egyes operandusokat kerek zárójelben egymástól vesszővel elválasztva kell megadni. A funkcióblokk kimeneti paramétereit direkt hozzárendeléssel lehet átadni más változóknak: LD Instanz1_nev.atlag ST eredmeny1 A második eljárás esetén a funkcióblokk hívása előtt az egyes instanz-specifikus változókat, az akkumulátor segítségével, átadjuk a funkcióblokk bemeneti paramétereinek. Maga a funkcióblokk hívás nem tartalmaz semmilyen paraméter átadást. A funkcióblokk eredmények hasonló módon letárolódnak, és az LD utasítással megszólíthatók. Továbbá úgynevezett Moeller-specifikus funkcióblokk hívás is realizálható. Ekkor a be- /kimeneti paraméterátadás egymástól elválasztva a -jellel egyszerre történik. Példa: Cal Instanz3_nev (Reset := torles, Bem1 := ertek1, Bem2 := ertek2 eredmeny := atlag) Természetesen a három eljárás egymással keverve is használható, azaz lehet egyes értékeket akkumulátoron át paraméterezni, és a többi szükségeset pedig a CAL hívással együtt! 22

23 Függvények 5. Függvények A Sucosoft S40 a függvények nagy választékát nyújtja a programozás részfeladatainak megkönnyítésére. Az IEC által definiált függvényeken kívül a Moeller Electric a PLC-khez további gyártó specifikus függvényeket is készített, melyek kihasználják a PLC egyedi adottságait. Ezek használata tovább könnyítheti az egyes felhasználói alkalmazások elkészítését. Az alábbiakban csoportosítva felsoroljuk a fontosabb függvényeket: Függvények Jelentésük Adattípusokat konvertáló függvények *_TO_** TRUNC típuskonverziók elemi adattípusok között REAL szám egészét adja ANY_INT adattípusban Numerikus függvények ABS NEG abszolút értékképzés 2-es komplemens képzés Aritmetikai függvények ADD MUL SUB DIV MOD összeadás szorzás kivonás egész számú osztás maradékértéket adó osztás Állapotbit vizsgáló függvények IsCarry aritmetikai műveletet követően átvitel bit =? IsZero aritmetikai műveletet követően eredmény nulla bit =? IsOverflow aritmetikai műveletet követően túlcsordulás =? ISPositive aritmetikai műveletet követően eredmény pozitív =? IsBitTrue akkumulátor adott bit =? GetCarryRegister Átvitelregisztert az akkumulátorba felhozni Bit mozgatások SHL SHR ShiftLeftCarry ShiftRightCarry ROL ROR bitmintát adott értékkel balra tolni bitmintát adott értékkel jobbra tolni bitmintát - carry biten - át adott értékkel balra tolni bitmintát - carry biten - át adott értékkel jobbra tolni bitmintát adott értékkel balra forgatni bitmintát adott értékkel jobbra forgatni 23

24 Függvények Logikai függvények AND, & logikai ÉS kapcsolat OR logikai VAGY kapcsolat XOR logikai KIZÁRÓ VAGY kapcsolat NOT bitminta bitenkénti negálása Összehasonlítási függvények GT NAGYOBB, MINT összehasonlítás GE NAGYOBB, EGYENLŐ összehasonlítás EQ EGYENLŐ összehasonlítás LE KISEBB, EGYENLŐ összehasonlítás NT KISEBB, MINT összehasonlítás NE NEM EGYENLŐ összehasonlítás Operációs rendszer-függvények PLC_Message rendszerdiagnosztikai status-bájt/szó kiolvasása PLC_ReadCLock valósidejű óra egyedi elemeinek kiolvasása Megszakításkérést tiltó / engedélyező függvények Disable_Interrupt megszakításkérés tiltás Enable_Interrupt megszakításkérés engedélyezés Karakterlánccal kapcsolatos függvények LEN adott karakterlánc hosszát megállapítani CONCAT karakterláncokat egybefűzni DELETE karakterláncból adott karaktereket törölni FIND karakterláncban adott karaktersorozatot megtalálni INSERT karakterláncba választható hosszúságú karaktereket befűzni LEFT karakterláncból balról választható hosszúságú karakterek kiválasztása MID karakterlánc belsejéből választható hosszúságú karakterek kiválasztása REPLACE karakterláncban választható helyen adott karaktersorozat behelyettesítése RIGHT karakterlánc jobbról választható hosszúságú karakterek kiválasztása Kiválasztási függvények LIMIT értékkorlátozás MAX maximumérték keresés MIN minimumérték keresés MUX multiplexer SEL feltételes operandus kiválasztás 24

25 Függvények Adattípusokat konvertáló függvények *_TO_** típuskonverziók elemi adattípusok között Az IEC programnyelv előírásai alapján a szoftver csak azonos adattípusú operandusok közötti műveleteket enged meg. Például ha egy (FB, FU) bemeneti változójának BYTE adattípusúnak kell lenni, akkor az átadandó változót, mely történetesen USINT adattípussal rendelkezik, átadás előtt az USINT_TO_BYTE konverziós függvénnyel át kell alakítani. A konverzió mindig az akkumulátorban levő adatra vonatkozik, a függvény eredménye is az akkumulátorban képződik. A numerikus adatok konverziója során ügyeljen arra, hogy a cél adattípus a megengedett értéket ne lépje túl. Ha a bemeneti operandus túl nagy, akkor a kimeneti operandus a rendelkezésre álló bithosszúságra redukálódik, mely hibás értéket eredményezhet! A Sucosoft az alábbi konverziós függvényeket biztosítja az elemi adattípusok között bemenet kimenet SINT INT DINT 1) USINT UDINT 1) SINT X X X X X X X X X X X INT X X X X X X X X X X X DINT 1) X X X X X X X X X X X USINT X X X X X X X X X X X X X X X X X X X X X X X UDINT 1) X X X X X X X X X X X REAL 1) X X X X X X X X X X X X X X X BYTE X X X X X X X X X WORD X X X X X X X X X DWORD 1) X X X X X X X X X DATE_AND_TIME X X TIME X X BCD X X X X X X STRING 1) ADDRESS 2) 1) csak a PS4-300 és PS416 esetén 2) csak a PS4-200 és PS4-300 esetén X X REAL 1) BYTE WORD DWORD 1) TOD DATE STRING 1) BCD 25

26 Függvények Megjegyzések: 1. Az előjeles numerikus értékek bitsorozattá való átalakítása során a függvény figyelembe veszi az előjelet. High Low pl. 0010_ _ _0101 SINT átalakítása WORD típussá, illetve pl. 1010_ _ _0101 SINT átalakítása WORD típussá 2. A BYTE típusú adat legfelsőbb bitje nincs kiértékelve, ha az /INT átalakításra kerül. A BYTE értéke a Low-bájtba kerül, míg a felső(high)-bájt o-val töltődik fel. High Low pl. 0010_ _ _0101 BYTE átalakítása típussá, illetve pl. 1010_ _ _0101 BYTE átalakítása típussá 3. REAL_TO_ANY_INT átalakítás során a tizedesvessző utáni szám az egészszámú kerekítés szabályai szerint történik. Ha a tizedesvessző utáni szám = 0,5, akkor a kerekítés a közelebb levő páros számra történik. Egyszerűbb megoldás a TRUNC függvény, mely a REAL adattípust ANY_INT típussá alakítja, miközben csak az egészrészt veszi figyelembe. (A TRUNC csak a PS4-300 és a PS416-ra van értelmezve.) pl.: Ha a cél adattípus értéktartományát az átalakított eredmény túllépi, akkor a rendelkezésre álló bithossz redukálódik. pl. REAL_TO_SINT esetén A TIME_TO_ és a TIME_TO_USINT függvények esetén a 65535, illetve 255- nél nagyobb eredmények érvénytelenek. Az eredmény helyessége az IsOverflow függvénnyel kérdezhető le. 5. A STRING_TO_ függvény csak a string változó baloldali két karakterét dolgozza fel. A high-bájtban az első, a low-bájtban a második karakter értéke jelenik Egy karakter esetén a jel értéke a low-bájtban helyezkedik el. 26

27 Függvények Numerikus függvények ABS A függvény a bemenetre adott ANY_NUM abszolút értékét adja vissza. Az adattípus az átalakítás során nem változik. Vigyázat: A legkisebb SINT (-128) és a INT (-32768) értékeket a függvény nem változtatja meg, mivel a 128 és 128, illetve a és bináris értéke azonos. Ha ilyen értékek lépnek fel az ABS függvényben, akkor hiba generálás nem történik. NEG A függvény ANY_NUM adattípusokra vonatkozik. Az adattípus az átalakítás során nem változik. Előjeles számok esetén a függvény kimenet = (-1)*bemenet, azonban előjel nélküli számok esetén a függvény eredménye egy másik szám! Aritmetikai függvények Numerikus értékek adattípusokkal való műveletek szabályai: Numerikus értékek (ANY_NUM) közötti műveletek esetén a be- illetve kimeneti ADD SUB MUL DIV ADD SUB operandusoknak azonos típusúak kell lenni. ADD, SUB, esetén, ha az eredmény túllépi az adattípusra megengedett tartományt, akkor a túlcsordulás állapot bit bebillen, mely az IsOverFlow függvénnyel kérdezhető le. MUL esetén, ha az eredmény túllépi az adattípusra megengedett tartományt, akkor a túlcsordult érték az átvitel regiszterbe (melynek mérete mindig megegyezik a bemeneti operandusok méretével) kerül. Értéke a GetCarryRegister függvénnyel kérdezhető le. DIV művelet esetén az egész osztás maradéka az átvitel regiszterbe (melynek mérete mindig megegyezik a bemeneti operandusok méretével) kerül. Értéke a GetCarryRegister függvénnyel kérdezhető le. Időtartam illetve dátum és óra adattípusokkal való műveletek szabályai: ADD esetén a második operandus csak TIME típusú lehet, amit az elsőként megadott TIME, TIME_OF_DATE, DATE_AND_TIME 1) típushoz lehet hozzáadni. A kimenet adattípus megegyezik az első operandus adattípusúval. SUB esetén az alábbi táblázat szerinti változatok lehetségesek: bemenet1 bemenet2 = Különbség (kimenet) TIME TIME TIME DATE 1) DATE TIME TIME_OF_DAY TIME TIME_OF_DAY TIME_OF_DAY TIME_OF_DAY TIME DATE_AND_TIME 1) TIME DATE_AND_TIME DATE_AND_TIME 1) DATE_AND_TIME TIME 1) csak a PS4-300 és a PS416 esetén Csak a PS4-200-ra vonatkozóan: A TIME adattípus csak pozitív tartományban ad helyes eredményt! MUL DIV A MUL és DIV esetén az első operandus lehet TIME adattípus, míg a második csak ANY_NUM adattípust vehet fel. 27

28 Függvények Cím (ADDRESS) adattípusokkal való műveletek szabályai: A címekkel kapcsolatos mind a négy alapművelet megengedett, de csak a PS4-200 és a PS4-300 esetén lehetséges! Az alábbi táblázat szerinti változatok lehetségesek: bemenet1 bemenet2 kimenet ADDRESS ANY_INT ADDRESS ADDRESS ADDRESS ADDRESS MOD A függvény ANY_NUM adattípusokra vonatkozik. Az adattípus az átalakítás során nem változik. A függvény az egészszámú osztás maradékát helyezi el a kimeneten (akkumulátorban) Csak aps4-300 és a PS416 esetén értelmezett függvény! Állapotbit vizsgáló függvények A vizsgáló függvények kiválóan alkalmasak feltételes ugrások, hívások feltételeinek meghatározásához. IsOverflow, IsPositive, IsZero: Az állapotbit vizsgáló függvények közvetlenül az aritmetikai műveletek után használva adja a megfelelő eredményt adattípusban. IsOverflow: aritmetikai művelet során történt-e túlcsordulás? (igen = 1; nem = 0) IsPositive: aritmetikai művelet eredménye 0, vagy pozitívszám? (igen = 1; nem = 0) IsZero: aritmetikai művelet eredménye 0? (igen = 1; nem = 0) PROGRAM overflow Edge : R_TRIG; (* felfutó vizsgálatát végző FB *) Signal : AT %I : ; Pulse : ; Number1 : SINT := 127; LD Number1 ADD 12 IsOverflow CALC Edge (CLK := Signal) LD Edge.Q ST Pulse END_PROGRAM IsCarry: A függvénnyel, a bitmozgatási függvényeket követően, az átviteli bit értékelhető ki. Bemenete ANY_INT, kimenete. PROGRAM carrybit Edge : R_TRIG; Signal : AT %I : ; Pulse : ; Byte1 : BYTE := 2# ; 28

29 LD Byte1 SHL 3 BYTE_TO_USINT IsCarry (* Carry regiszter = 1 *) CALC Edge (CLK := Signal) LD Edge.Q ST Pulse END_PROGRAM Függvények IsBitTrue: az akkumulátorba elhelyezett bitminta (ANY_BIT) tetszőleges bitjének vizsgálatára alkalmas. PROGRAM bittest BitPattern : BYTE := 2# Position : := 4; BitValue : ; LD BitPattern IsBitTrue Position ST BitValue (* bit értéke: 1 *).. END_PROGRAM GetCarryRegister A függvény a ANY_INT adatokon végzett MUL esetén előforduló túlcsordulás, valamint a DIV esetén a maradék megjelenítésére szolgál. USINT, SINT, UDINT, DINT adattípusok esetén a túlcsordulásról nem generálódik jelzés. A compiler ennek megfelelő hibajelzést ad. PROGRAM remainder Number: INT := 127; Result_integ : INT; ResultRemainder : INT; LD Number DIV 4 ST Result_integ (* osztás eredménye : 31, egész *) GetCarryRegister ST ResultRemainder (* maradék : 3 *).. END_PROGRAM 29

30 Függvények Bit mozgatások SHL a Az akkumulátorban levő ANY_BIT típusú bitmintát a függvény SHR operandusaként megadott értékkel (ANY_INT) balra/balra tolja. A toláskor felszabaduló helyek 0-val töltődnek fel. Az eredmény az akkumulátorban a bemeneti bitmintával azonos adattípusban áll rendelkezésre. PROGRAM rot_bal BitPattern : BYTE := 2# ; Places : INT := 3; NewBitPattern: BYTE; LD BitPattern ROL Places ST NewBitPattern (* új bitminta: 2# *) END_PROGRAM ShiftLeftCarry, ShiftRightCarray: A függvények egy hellyel balra illetve jobbra tolja bemenetként megadott bitmintát. Például BYTE adattípus esetén: ShiftLeftCarry: új átviteli bit bitminta régi átviteli bit C 7 0 C ShiftRightCarry: C 7 0 C PROGRAM shi_jobb BitPattern : BYTE := 2# ; NewBitPattern : BYTE; LD BitPattern ShiftRightCarry ST NewBitPattern (* új bitminta: x ahol "x" *) (* a 7. bitpozicíóban az átvitelbit régi értéke *).. END_PROGRAM ROL ROR A függvények az akkumulátor tartalmát (ANY_BIT) a függvény paramétereként megadott értékkel (ANY_INT) balra vagy jobbra forgatja, azaz a kitolt biteket a másik oldalon visszatölti. Az új bitminta az akkumulátorban áll rendelkezésre. PROGRAM rot_le BitPattern : BYTE := 2# ; Places : INT := 3; NewBitPattern: BYTE; 30

31 Függvények LD BitPattern ROL Places ST NewBitPattern (* az új bitminta: 2# *) END_PROGRAM Logikai függvények A függvények a szokásos logikai függvények (része a Sucosoft utasításkészletnek), melyek csak azonos adattípusokon (ANY_BIT) végezhető el. Az eredmény a bemenetekkel azonos típusú, és az akkumulátorban képződik. Összehasonlítási függvények A függvények a szokásos logikai függvények (része a Sucosoft utasításkészletnek), melyek csak azonos adattípusokon (ANY_INT) végezhető el. Az eredmény típusú, és az akkumulátorban képződik. Operációs rendszer-függvények PLC_Message: A függvénnyel a bemenetre adott felsorolás típusú változó egyik elemének értéke határozható meg. A bemenet MESSAGE_TYPE (Moeller által definiált, csak olvasható rendszerdiagnosztikai) változó, a kimenet típusú. A MESSAGE_TYPE változó az egyes PLC típusok esetén a következő elemeket tartalmazza (minden típusra a standard beállítás az ISA): PS4-200 esetén: TYPE MESSAGE_TYPE (ISA, (* start utáni első programciklus *) IRE, (* RESET nyomógomb működtetve *) IFO, (* RUN üzemmódban a FORCE aktív *) REC, (* újraindítás esetén a maradék-ciklus fut *) ICS, (* a vezérlés hidegen indítva *) NKD_1, (* az SBI1-en (SBI -= Suconet K busz) friss adatok vannak *) NKD_2, (* az SBI2-en (SBI -= Suconet K busz) friss adatok vannak *) NKD_3 (* az SBI3-en (SBI -= Suconet K busz) friss adatok vannak *) ) := ISA ; END_TYPE PS4-300 esetén: TYPE MESSAGE_TYPE (ISA, (* =0: start utáni első programciklus *) IRE, (* =1: RESET nyomógomb működtetve *) IFO, (* =2: RUN üzemmódban a FORCE aktív *) REC, (* =3: újraindítás esetén a maradék-ciklus fut *) ICS, (* =4: a vezérlés hidegen indítva *) NKD_1, (* =5: az SBI1-en (SBI -= Suconet K busz) friss adatok vannak *) NKD_2, (* =6: az SBI2-en (SBI -= Suconet K busz) friss adatok vannak *) NKD_3, (* =7: az SBI3-en (SBI -= Suconet K busz) friss adatok vannak *) ICT, (* =8: ECT az első programciklusban *) IAH, (* =9: EAH az első programciklusban *) IRT, (* =10: ERT az első programciklusban *) ) := ISA ; END_TYPE 31

32 Függvények PS416 esetén: TYPE MESSAGE_TYPE (ICS (* =0: start utáni első programciklus hideg indítással*) ISA, (* =1: start utáni első programciklus *) RTW, (* =2: run time warning -figyelmeztetés *) REC, (* =3: újraindítás esetén a maradék-ciklus fut ) DAKE, (* =4: AK-Error, az egység nem szólítható meg, esetleg nincs bent ) KOM, (* =5: a kommunikációs partner nem válaszol *) ) := ISA ; END_TYPE Példa: Rendszerdiagnosztikai távirat kiértékelése LD ISA PLC_Message JMPCN No_new_start PLC_ReadClock: A függvénnyel a bemenetre adott felsorolás típusú változó egyik elemének értéke határozható meg. A bemenet PLC_Clock (Moeller által definiált, csak olvasható) változó, a kimenet USINT típusú. A PLC_Clock standard beállítása a CK_YEAR): PLC_CLOCK: CK_YEAR, (* évek száma *) CK_MONTH, (* hónap *) CK_DAY, (* nap *) CK_WEEKDAY, (*hétnap sorszám; 0 = vasárnap *) CK_HOURS, (* órák *) CK_MINUTES, (* percek *) CK_SECONDS (* másodpercek *) ) := CK_YEAR; END_TYPE PROGRAM RD_Clock Hours : USINT ; LD CK_HOURS PLC_ReadClock ST Hours END_PROGRAM Megszakítást tiltó / engedélyező függvények A függvények bemeneti paramétere a Moeller által specifikált, ALARM_CHANNEL felsorolás típusú változó, mely a PLC típusától függ: PS4-200 esetén: TYPE ALARM_CHANNEL (CounterAlarm_Channel, TimerAlarm_Channel, EdgeAlarm_Channel) := CounterAlarm_Channel ; END_TYPE 32

33 PS4-300 esetén: TYPE ALARM_CHANNEL (CounterAlarm_Channel, (* 0 *) TimerAlarm_Channel, (* 1 *) EdgeAlarm_Channel_1, (* 2 *) EdgeAlarm_Channel_2 (* 3 *) ) := CounterAlarm_Channel ; END_TYPE PS416 esetén: TYPE ALARM_CHANNEL (CounterAlarm_Channel1, (* 0 *) TimerAlarm_Channel, (* 1 *) EdgeAlarm_Channel_1, (* 2 *) EdgeAlarm_Channel_2, (* 3 *) EdgeAlarm_Channel_3, (* 4 *) EdgeAlarm_Channel_4, (* 5 *) EdgeAlarm_Channel_5, (* 6 *) EdgeAlarm_Channel_6, (* 7 *) EdgeAlarm_Channel_7, (* 8 *) EdgeAlarm_Channel_8) (* 9 *) ):= CounterAlarm_Channel ; END_TYPE Függvények Disable_Interrupt: A függvény használatával egy lehetséges megszakításkérés letiltásra kerül. Így a főprogrambeli írást, olvasást a megszakítást okozó forrás nem tudja félbeszakítani, azaz az adatok szinkronizálhatók. (Lehetséges megszakításkérő források a CounterAlarm, EdgeAlarm, és a TimerAlarm (PS4-200, PS4-300 esetén), illetve a CAlarm, FAlarm, TAlarm (PS416 esetén).) A függvényt önálló szekvenciaként kell alkalmazni. Lásd a következő alkalmazást. PROGRAM D_Alarm _GLOBAL Intermediate_storage: INT ; Edgealarm : EdgeAlarm ; I_Routine : AlarmFB ; LD ICS (*start figyelés, mert a megszakításkérést PLC_Message (*FB-t csak egyszer kell hívni *) CALC Edgealarm (EnableDisable := 1, Number := 0, RisingEdge := 0, SetPointValue := 1, Subroutine := I_Routine) LD EdgeAlarm_Channel Disable_Interrupt (* EdgeAlarm megszakításk. tiltás *) LD 500 ST Intermediate_storage LD EdgeAlarm_Channel Enable_Interrupt (* megszakításkérés engedélyezés *) END_PROGRAM 33

34 Függvények FUNCTION_BLOCK AlarmFB _EXTERNAL Intermediate_storage: INT ; LD ST Intermediate_storage END_FUNCTION_BLOCK Enable_Interrupt: A függvény használatával egy korábban letiltott megszakításkérést lehet engedélyezni. (Lehetséges megszakításkérő források a CounterAlarm, EdgeAlarm, és a TimerAlarm (PS4-200, PS4-300 esetén), illetve a CAlarm, FAlarm, TAlarm (PS416 esetén). A függvényt önálló szekvenciaként kell alkalmazni. Példaként lásd az előző alkalmazást. Karakterlánccal kapcsolatos függvények Az alábbi STRING változókat kezelő függvények csak a PS4-300 és a PS416 vezérlésekre érvényesek. LEN Egy karakterlánc hosszát adja meg INT adattípusban. PROGRAM how_long Text: STRING := 'Term'; TextLength : INT; LD Text LEN ST TextLength (* szöveg hossza: 7 *) END_PROGRAM CONCAT Több karakterláncot fűz egy újabb karakterláncba. PROGRAM n_texts Text1 : String := 'ab'; Text2 : STRING := 'cd'; Text3 : STRING := 'ef'; Texts_1_2_3 : STRING; LD Text1 CONCAT Text2, Text3 ST Texts_1_2_3 (* Texts_1_2_3: 'abcdef' *) END_PROGRAM Másik alkalmazási lehetőség, dátum és idő egy változóba való összefűzése. PROGRAM deadline Date : DATE := D# ; Time : TIME_OF_DAY := T0D#6:35:00.00; Date_and_Time : DATE_AND_TIME; 34

Ü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

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

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

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

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

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

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

PLC programozás az IEC 1131-3 szabvány szerint. Jancskárné Anweiler Ildikó főiskolai docens PTE PMMFK Műszaki Informatika Tanszék

PLC programozás az IEC 1131-3 szabvány szerint. Jancskárné Anweiler Ildikó főiskolai docens PTE PMMFK Műszaki Informatika Tanszék PLC programozás az IEC 1131-3 szabvány szerint Jancskárné Anweiler Ildikó főiskolai docens PTE PMMFK Műszaki Informatika Tanszék Jancskárné Anweiler Ildikó: PLC programozás az IEC1131-3 szabvány szerint

Részletesebben

PLC programozás az IEC 1131-3 szabvány szerint. Jancskárné Anweiler Ildikó főiskolai adjunktus PTE PMMFK Műszaki Informatika Tanszék

PLC programozás az IEC 1131-3 szabvány szerint. Jancskárné Anweiler Ildikó főiskolai adjunktus PTE PMMFK Műszaki Informatika Tanszék PLC programozás az IEC 1131-3 szabvány szerint Jancskárné Anweiler Ildikó főiskolai adjunktus PTE PMMFK Műszaki Informatika Tanszék 2 Tartalomjegyzék Az IEC-1131-3 szabvány...6 A programszervezési egységek

Részletesebben

A C programozási nyelv I. Bevezetés

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,

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

A C programozási nyelv I. Bevezetés

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,

Részletesebben

Aritmetikai utasítások I.

Aritmetikai utasítások I. Aritmetikai utasítások I. Az értékadó és aritmetikai utasítások során a címzési módok különböző típusaira látunk példákat. A 8086/8088-as mikroprocesszor memóriája és regiszterei a little endian tárolást

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

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

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD)

Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Laborgyakorlat Logikai áramkörök számítógéppel segített tervezése (CAD) Bevezetés A laborgyakorlatok alapvető célja a tárgy későbbi laborgyakorlataihoz szükséges ismeretek átadása, az azokban szereplő

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

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

Digitális rendszerek. Utasításarchitektúra szintje

Digitális rendszerek. Utasításarchitektúra szintje Digitális rendszerek Utasításarchitektúra szintje Utasításarchitektúra Jellemzők Mikroarchitektúra és az operációs rendszer közötti réteg Eredetileg ez jelent meg először Sokszor az assembly nyelvvel keverik

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

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

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

file./script.sh > Bourne-Again shell script text executable << tartalmat néz >>

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: & ; ( ) < >

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

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

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

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

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

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix

5-6. ea Created by mrjrm & Pogácsa, frissítette: Félix 2. Adattípusonként különböző regisztertér Célja: az adatfeldolgozás gyorsítása - különös tekintettel a lebegőpontos adatábrázolásra. Szorzás esetén karakterisztika összeadódik, mantissza összeszorzódik.

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

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

Verilog HDL ismertető 2. hét : 1. hét dia

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

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

az Excel for Windows programban

az Excel for Windows programban az Excel for Windows táblázatkezelőblázatkezel programban Mit nevezünk nk képletnek? A táblt blázatkezelő programok nagy előnye, hogy meggyorsítj tják és könnyebbé teszik a felhasználó számára a számítási

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

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

Programozás alapjai. 10. előadás 10. előadás Wagner György Általános Informatikai Tanszék Pointerek, dinamikus memóriakezelés A PC-s Pascal (is) az IBM PC memóriáját 4 fő részre osztja: kódszegmens adatszegmens stackszegmens heap Alapja:

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 1 Fehér Béla Raikovich Tamás,

Részletesebben

Programozás alapjai gyakorlat. 4. gyakorlat Konstansok, tömbök, stringek

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ő

Részletesebben

Digitális technika (VIMIAA02) Laboratórium 1

Digitális technika (VIMIAA02) Laboratórium 1 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika (VIMIAA02) Laboratórium 1 Fehér Béla Raikovich Tamás,

Részletesebben

I0 I0.0 I1 I0.1 I2 I0.2. Kimenetek Q0 Q0.0 Q1 Q0.1 Q2 Q0.2 Q3 Q0.3. A be- és kimenetek közötti függvénykapcsolat

I0 I0.0 I1 I0.1 I2 I0.2. Kimenetek Q0 Q0.0 Q1 Q0.1 Q2 Q0.2 Q3 Q0.3. A be- és kimenetek közötti függvénykapcsolat Tömbök használata a tároló nélküli követővezérlésekben Ha a változók száma nem túl nagy, a tároló nélküli követővezérlés bemenő és kimenő változói közötti kapcsolat függvénytáblázattal leírható. A logikai

Részletesebben

_INVHU000_WriteReadParameter.cxf Frekvenciaváltók

_INVHU000_WriteReadParameter.cxf Frekvenciaváltók INV-HU-000 A FB feladata A dokumentáció tartalma Szimbólum A CP1H vagy a CP1L PLC és frekvenciaváltó(k) automatikus kommunikációja: _INVHU000_WriteReadParameter A frekvenciaváltó üzemi paramétereinek írása,

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

Részletesebben

4. Fejezet : Az egész számok (integer) ábrázolása

4. Fejezet : Az egész számok (integer) ábrázolása 4. Fejezet : Az egész számok (integer) ábrázolása The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson

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

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

The modular mitmót system. DPY kijelző kártya C API

The modular mitmót system. DPY kijelző kártya C API The modular mitmót system DPY kijelző kártya C API Dokumentációkód: -D 01.0.0.0 Budapesti Műszaki és Gazdaságtudományi Egyetem Méréstechnika és Információs Rendszerek Tanszék Beágyazott Információs Rendszerek

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

Forráskód formázási szabályok

Forráskód formázási szabályok Forráskód formázási szabályok Írta: Halmai Csongor, Webcenter Bt. A php és html kódrészletek Ugyanazon fájlon belül nem szerepelhet php kód és html tartalom. E kettő különválasztására smarty-t vagy más

Részletesebben

A C programozási nyelv III. Pointerek és tömbök.

A C programozási nyelv III. Pointerek és tömbök. A C programozási nyelv III. Pointerek és tömbök. Miskolci Egyetem Általános Informatikai Tanszék A C programozási nyelv III. (Pointerek, tömbök) CBEV3 / 1 Mutató (pointer) fogalma A mutató olyan változó,

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

Hardver leíró nyelvek (HDL)

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.

Részletesebben

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva:

Bevezetés az informatikába gyakorló feladatok Utoljára módosítva: Tartalom 1. Számrendszerek közti átváltás... 2 1.1. Megoldások... 4 2. Műveletek (+, -, bitműveletek)... 7 2.1. Megoldások... 8 3. Számítógépes adatábrázolás... 12 3.1. Megoldások... 14 A gyakorlósor lektorálatlan,

Részletesebben

Informatika érettségi vizsga

Informatika érettségi vizsga Informatika 11/L/BJ Informatika érettségi vizsga ÍRÁSBELI GYAKORLATI VIZSGA (180 PERC - 120 PONT) SZÓBELI SZÓBELI VIZSGA (30 PERC FELKÉSZÜLÉS 10 PERC FELELET - 30 PONT) Szövegszerkesztés (40 pont) Prezentáció-készítés

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

Az IEC 61131-3 szabvány szoftvermodellje

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

Részletesebben

LEGO robotok. XII. rész

LEGO robotok. XII. rész LEGO robotok XII. rész III.1.22. Változók és konstansok A változó fogalma a matematikában egy értelmezési tartománnyal rendelkező, ebből bármilyen értéket felvehető objektum, melynek értéke logikailag

Részletesebben

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba

1. előadás. Lineáris algebra numerikus módszerei. Hibaszámítás Számábrázolás Kerekítés, levágás Klasszikus hibaanalízis Abszolút hiba Relatív hiba Hibaforrások Hiba A feladatok megoldása során különféle hibaforrásokkal találkozunk: Modellhiba, amikor a valóságnak egy közelítését használjuk a feladat matematikai alakjának felírásához. (Pl. egy fizikai

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

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

A SystemC programok adattípusai

A SystemC programok adattípusai A SystemC programok adattípusai A negyedik fejezetben bemutatott félösszeadó áramköri példában semmilyen SystemC típus sem szerepelt. Viszont összetettebb áramköri feladatok esetén elengedhetetlen a különböző

Részletesebben

Irányítástechnika 1. 8. Elıadás. PLC rendszerek konfigurálása

Irányítástechnika 1. 8. Elıadás. PLC rendszerek konfigurálása Irányítástechnika 1 8. Elıadás PLC rendszerek konfigurálása Irodalom - Helmich József: Irányítástechnika I, 2005 - Zalotay Péter: PLC tanfolyam - Klöckner-Möller Hungária: Hardverleírás és tervezési segédlet,

Részletesebben

Assembly utasítások listája

Assembly utasítások listája Assembly utasítások listája Bevezetés: Ebben a segédanyagban a fontosabb assembly utasításokat szedtem össze. Az utasítások csoportosítva vannak. A fontos kategóriába azok az utasítások tartoznak, amiknek

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

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

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás

Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás Járműfedélzeti rendszerek II. 1. előadás Dr. Bécsi Tamás A tárgy órái Előadás hetente (St101) csüt. 8:15 Bécsi Tamás C elmélet Ajánlott irodalom Dennis Ritchie: A C programozási nyelv Gyakorlat hetente

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

Máté: Számítógép architektúrák

Máté: Számítógép architektúrák Fixpontos számok Pl.: előjeles kétjegyű decimális számok : Ábrázolási tartomány: [-99, +99]. Pontosság (két szomszédos szám különbsége): 1. Maximális hiba: (az ábrázolási tartományba eső) tetszőleges valós

Részletesebben

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

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

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc

GPU Lab. 4. fejezet. Fordítók felépítése. Grafikus Processzorok Tudományos Célú Programozása. Berényi Dániel Nagy-Egri Máté Ferenc 4. fejezet Fordítók felépítése Grafikus Processzorok Tudományos Célú Programozása Fordítók Kézzel assembly kódot írni nem érdemes, mert: Egyszerűen nem skálázik nagy problémákhoz arányosan sok kódot kell

Részletesebben

APB mini PLC és SH-300 univerzális kijelző Általános használati útmutató

APB mini PLC és SH-300 univerzális kijelző Általános használati útmutató APB mini PLC és SH-300 univerzális kijelző Általános használati útmutató Fizikai összeköttetési lehetőségek: RS232 APB-232 RS485 A APB-EXPMC B SH-300 program beállítások: Kiválasztjuk a megfelelő PLC-t.

Részletesebben

SZÁMÍTÓGÉPEK BELSŐ FELÉPÍTÉSE - 1

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

Részletesebben

Lekérdezések az SQL SELECT utasítással

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

Részletesebben

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003

The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 . Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An InformationTechnology Approach. kiadás, Irv Englander John Wiley and Sons Wilson Wong, Bentley College Linda Senne,

Részletesebben

Informatika 1 2. el adás: Absztrakt számítógépek

Informatika 1 2. el adás: Absztrakt számítógépek Informatika 1 2. el adás: Budapesti M szaki és Gazdaságtudományi Egyetem 2015-09-08 1 2 3 A egy M = Q, Γ, b, Σ, δ, q 0, F hetes, ahol Q az 'állapotok' nem üres halmaza, Γ a 'szalag ábécé' véges, nem üres

Részletesebben

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT

Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

Részletesebben

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

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

Részletesebben

Digitális technika VIMIAA01 9. hét

Digitális technika VIMIAA01 9. hét BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 9. hét Fehér Béla BME MIT Eddig Tetszőleges

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

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

Programozási nyelvek 6. előadás

Programozási nyelvek 6. előadás Programozási nyelvek 6. előadás Szempontok Programozási nyelvek osztályozása Felhasználói kör (amatőr, professzionális) Emberközelség (gépi nyelvektől a természetes nyelvekig) Számítási modell (hogyan

Részletesebben

Bevezetés a programozásba. 8. Előadás: Függvények 2.

Bevezetés a programozásba. 8. Előadás: Függvények 2. Bevezetés a programozásba 8. Előadás: Függvények 2. ISMÉTLÉS Helló #include using namespace std; int main() cout

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

2. Fejezet : Számrendszerek

2. Fejezet : Számrendszerek 2. Fejezet : Számrendszerek The Architecture of Computer Hardware and Systems Software: An Information Technology Approach 3. kiadás, Irv Englander John Wiley and Sons 2003 Wilson Wong, Bentley College

Részletesebben

Az operációs rendszer szerkezete, szolgáltatásai

Az operációs rendszer szerkezete, szolgáltatásai Az operációs rendszer szerkezete, szolgáltatásai Felhasználói programok Rendszerhívások Válaszok Kernel Eszközkezelők Megszakításvezérlés Perifériák Az operációs rendszer szerkezete, szolgáltatásai Felhasználói

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

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

Adatok ábrázolása, adattípusok

Adatok ábrázolása, adattípusok Adatok ábrázolása, adattípusok Összefoglalás Adatok ábrázolása, adattípusok Számítógépes rendszerek működés: információfeldolgozás IPO: input-process-output modell információ tárolása adatok formájában

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

8. Mezőutasítások. Schulcz Róbert schulcz@hit.bme.hu. 8. Mezőutasítások. v2013.10.24.

8. Mezőutasítások. Schulcz Róbert schulcz@hit.bme.hu. 8. Mezőutasítások. v2013.10.24. Schulcz Róbert schulcz@hit.bme.hu A tananyagot kizárólag a BME hallgatói használhatják fel tanulási céllal. Minden egyéb felhasználáshoz a szerző engedélye szükséges! 1 Mezőutasítások (1) A Word lehetőségeit

Részletesebben

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása

A programozás alapjai előadás. A C nyelv típusai. Egész típusok. C típusok. Előjeles egészek kettes komplemens kódú ábrázolása A programozás alapjai 1 A C nyelv típusai 4. előadás Híradástechnikai Tanszék C típusok -void - skalár: - aritmetikai: - egész: - eger - karakter - felsorolás - lebegőpontos - mutató - függvény - union

Részletesebben

Készítette: Nagy Tibor István

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

Részletesebben

Programozott soros szinkron adatátvitel

Programozott soros szinkron adatátvitel Programozott soros szinkron adatátvitel 1. Feladat Név:... Irjon programot, mely a P1.0 kimenet egy lefutó élének időpontjában a P1.1 kimeneten egy adatbitet ad ki. A bájt legalacsonyabb helyiértéke 1.

Részletesebben

Komputeralgebra rendszerek

Komputeralgebra rendszerek Komputeralgebra rendszerek III. Változók Czirbusz Sándor czirbusz@gmail.com Komputeralgebra Tanszék ELTE Informatika Kar 2009-2010 ősz Index I 1 Szimbolikus konstansok kezelés A konstansok Nevek levédése

Részletesebben

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása

Tömbök kezelése. Példa: Vonalkód ellenőrzőjegyének kiszámítása Tömbök kezelése Példa: Vonalkód ellenőrzőjegyének kiszámítása A számokkal jellemzett adatok, pl. személyi szám, adószám, taj-szám, vonalkód, bankszámlaszám esetében az elírásból származó hibát ún. ellenőrző

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

Részletesebben

Követővezérlés időzítőkkel

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

Részletesebben

Digitális technika VIMIAA01

Digitális technika VIMIAA01 BUDAPESTI MŰSZAKI ÉS GAZDASÁGTUDOMÁNYI EGYETEM VILLAMOSMÉRNÖKI ÉS INFORMATIKAI KAR MÉRÉSTECHNIKA ÉS INFORMÁCIÓS RENDSZEREK TANSZÉK Digitális technika VIMIAA01 Fehér Béla BME MIT Digitális Rendszerek Számítógépek

Részletesebben

Komputeralgebra rendszerek

Komputeralgebra rendszerek Komputeralgebra rendszerek III. Változók Czirbusz Sándor czirbusz@gmail.com Komputeralgebra Tanszék ELTE Informatika Kar 2009-2010 ősz Index I 1 Szimbolikus konstansok kezelés A konstansok Nevek levédése

Részletesebben

8. gyakorlat Pointerek, dinamikus memóriakezelés

8. gyakorlat Pointerek, dinamikus memóriakezelés 8. gyakorlat Pointerek, dinamikus memóriakezelés Házi ellenőrzés Egy számtani sorozat első két tagja A1 és A2. Számítsa ki a sorozat N- dik tagját! (f0051) Egy mértani sorozat első két tagja A1 és A2.

Részletesebben