Aritmetikai és logikai műveletek. Adattömb kezelése.



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

Mikroprocesszor CPU. C Central Központi. P Processing Számító. U Unit Egység

Programozás 3. Dr. Iványi Péter

3. Laborgyakorlat. ProTool bevezető

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

Analogmeter & Headdisabler Verzió 1.2

Egyszerű RISC CPU tervezése

A számítógép alapfelépítése

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

C# gyorstalpaló. Készítette: Major Péter

DSP architektúrák dspic30f család

Matematikai alapok. Dr. Iványi Péter

1. Az utasítás beolvasása a processzorba

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

A BECKHOFF típusú PLC használata.

Mechatronika és mikroszámítógépek 2017/2018 I. félév. Bevezetés a C nyelvbe

A Számítógépek felépítése, mőködési módjai

A MiniRISC processzor

1. Kombinációs hálózatok mérési gyakorlatai

Digitális technika VIMIAA01

100% BIO Natur/Bio kozmetikumok és testápolás

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

INFORMATIKAI ALAPISMERETEK

Programozás III CSOMAGOK. Az összetartozó osztályok és interfészek egy csomagba (package) kerülnek.

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

GLOFA-GM7 PLC. LG Industrial Systems YERUHAM Kft. Programozási segédlet. Simén Gábor. LG GLOFA-GM PLC programozási segédlet 1

Analóg és digitális jelek. Az adattárolás mértékegységei. Bit. Bájt. Nagy mennyiségû adatok mérése

Közlekedés gépjárművek elektronikája, diagnosztikája. Mikroprocesszoros technika. Memóriák, címek, alapáramkörök. A programozás alapjai

Memóriák - tárak. Memória. Kapacitás Ár. Sebesség. Háttértár. (felejtő) (nem felejtő)

A STEP 7 programozás alapjai

Számítógépek felépítése, alapfogalmak

Digitális technika II. (vimia111) 5. gyakorlat: Tervezés adatstruktúra-vezérlés szétválasztással, vezérlőegység generációk

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

A mikroszámítógép felépítése.

0 0 1 Dekódolás. Az órajel hatására a beolvasott utasítás kód tárolódik az IC regiszterben, valamint a PC értéke növekszik.

Hálózati protokoll tervezése

Számítógép Architektúrák


VHDL szimuláció. Tervezés. Labor II. Dr. Hidvégi Timót

PROGRAMOZHATÓ LOGIKAI VEZÉRLİK

AUDIO ENGINEERING SOCIETY

Pál László. Sapientia EMTE, Csíkszereda, 2014/2015

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

1.1 Szakdolgozat témája A Program célja A használt technológiák ismertetése A program megtervezése...

Bevezetés a számítástechnikába

1. mérés - LabView 1

A Számítógépek hardver elemei

Digitális technika II., 2009/2010 tavasz 1. vizsga A csoport

4-1. ábra. A tipikus jelformáló áramkörök (4-17. ábra):

KNX távirat nyugtázása. Épületinformatika. KNX távirat példa. KNX távirat példa

Objektumorientált programozás C# nyelven

Assembly utasítások listája

Információs Technológia

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

Feladat: Hogyan tudunk létrehozni egy olyan vector nevű tömb típust, amely egy háromdimenziós térbeli vektort reprezentál?

C# nyelv alapjai. Krizsán Zoltán 1. Objektumorientált programozás C# alapokon tananyag. Általános Informatikai Tanszék Miskolci Egyetem

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

Folyamatmodell irányítása 1-2

Kvantum-kommunikáció komplexitása I.

A TMS320C50 és TMS320C24x assembly programozására példák

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

Az időzítők és számlálók új, világszintű minőségi szabványa H5CX H7CX

Mechatronikai műszerész Mechatronikai műszerész

2019, Funkcionális programozás. 5. el adás. MÁRTON Gyöngyvér

2. Digitális hálózatok...60

SZOCIÁLIS ÉS MUNKAÜGYI MINISZTÉRIUM

Széchenyi István Szakképző Iskola

MELLÉKLET. Iránymutatás

találhatók. A memória-szervezési modell mondja meg azt, hogy miként

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

Jelfeldolgozó processzorok (DSP) Rekonfigurálható eszközök (FPGA)

1.2 A Weboldal célja a 2016-os Márton Áron emlékévvel kapcsolatos információk, események és egyéb tartalmak megjelenítése.

Tervezett erdőgazdálkodási tevékenységek bejelentése

AF 088II DIO 16/8 AF 088II DIO 16. Digitális ki-, bemeneti modul. Digitális bemeneti modul

2019, Funkcionális programozás. 2. el adás. MÁRTON Gyöngyvér

Aritmetikai utasítások I.

Billenőkörök. Billenő körök

MEMÓRIA TECHNOLÓGIÁK. Számítógép-architektúrák 4. gyakorlat. Dr. Lencse Gábor. tudományos főmunkatárs BME Híradástechnikai Tanszék

Mikrokontrollerek. Tihanyi Attila május 8

E7-DTSZ konfigurációs leírás

Számítógép Architektúrák (MIKNB113A)

Aritmetikai utasítások

DIGITÁLIS TECHNIKA I KARNAUGH TÁBLA, K-MAP KARNAUGH TÁBLA PROGRAMOK PÉLDA: ÖT-VÁLTOZÓS MINIMALIZÁLÁS PÉLDA: ÖT-VÁLTOZÓS MINIMALIZÁLÁS

Vényírás. 1. ábra. 1. oldal

Analízis. Ha f(x) monoton nő [a;b]-n, és difható egy (a;b)-beli c helyen, akkor f'(c) 0

Digitális tananyag, e-learning, különbségek, definíciók

Bevezetés az informatikába

Utasítások. Excel VII. Visual Basic programozás alapok. A Visual Basic-kel megoldható feladatok típusai Objektumok, változók Alprogramok

Egyszabadságfokú mechanikai rendszer irányítása nyílt hurkú vezérlés

Programozás I. Matematikai lehetőségek Műveletek tömbökkel Egyszerű programozási tételek & gyakorlás V 1.0 OE-NIK,

INFORMATIKAI ALAPISMERETEK

Bevezető előadás Mikrórendszerek összahasonlítása.dsp bevezető

Bevezetés a C programozási nyelvbe. Az Általános Informatikai Tanszék C nyelvi kódolási szabványa

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

11. Analóg/digitális (ADC) és Digital/analóg (DAC) átalakítók

1.1. Általános áttekintés

KIVONAT. Alcsútdoboz Település Önkormányzatának Képviselő-testülete

Programozható logikai vezérlõk

LOGIKAI TERVEZÉS HARDVERLEÍRÓ NYELVEN. Dr. Oniga István

Számítógépek felépítése

Átírás:

6. Laborgyakorlat Aritmetikai és logikai műveletek. Adattömb kezelése. A gyakorlat célja A gyakorlatban továbbfejlesztjük a PLC programozási ismereteinket, megismerkedünk az aritmetikai és logikai műveletekkel LAD és STL programozási nyelvben. A változók strukturált tárolására alkalmasak az adattömbök. Az elemi adattömbkezelési lehetőségeket is átvesszük a gyakorlat során. Elméleti bevezető Az S7-es PLC-k háromtípusú aritmetikai műveletet tudnak kezelni, ezek az elemi adattípusoktól függnek. Ennek megfelelően van: Integer tehát szóhosszúságú adattípusokkal műveletek Double Integer - tehát két szó hosszúságú adattípusokkal műveletek Real valós számokkal végzett műveletek. Az adattípusok: Integer műveletek: ADD_I Add Integer - Összeadás SUB_I Subtract Integer - Kivonás MUL_I Multiply Integer - Szorzás DIV_I Divide Integer - Osztás

Dupla integer műveletek: ADD_DI Add Double Integer SUB_DI Subtract Double Integer MUL_DI Multiply Double Integer DIV_DI Divide Double Integer MOD_DI Return Fraction Double Integer Az osztás törtrésze Az alábbi példán az MW10 memóriazónát összeadja az MW12-vel. Ha az eredmény az INT határain belül marad, akkor elvégzi a szorzást is, éspedig megszorozza az MW14-et kettővel. Ha túlcsordulás van, akkor a STATUS WORD-ban az OV bit-1 re vált. Valós műveletek ADD_R Add Real összeadás SUB_R Subtract Real kivonás MUL_R Multiply Real szorzás DIV_R Divide Real osztás ABS Absolute Value abszolút érték SQR Square négyzetre emelés SQRT négyzetgyökvonás LN Natural Logarithm e alapú logaritmus EXP e alapú exponenciális SIN, ASIN sinus, arcus sinus COS, ACOS cosinus, arcus cosinus TAN, ATAN tangent, arcus tangent

Példa STL aritmetikai műveletek Egész tipusú műveletek: +I Add ACCU 1 and ACCU 2 as Integer (16-Bit) -I Subtract ACCU 1 from ACCU 2 as Integer (16-Bit) *I Multiply ACCU 1 and ACCU 2 as Integer (16-Bit) /I Divide ACCU 2 by ACCU 1 as Integer (16-Bit) + Add Integer Constant (16, 32 Bit) +D Add ACCU 1 and ACCU 2 as Double Integer (32-Bit) -D Subtract ACCU 1 from ACCU 2 as Double Integer (32-Bit) *D Multiply ACCU 1 and ACCU 2 as Double Integer (32-Bit) /D Divide ACCU 2 by ACCU 1 as Double Integer (32-Bit) MOD Division Remainder Double Integer (32-Bit) Ugyanazok a műveletek, mint LAD esetben, a műveleteke mindig az ACCU1 és ACCU2 között végzi a CPU. Ezért előbb az operandusokat betöltjük az ACCU-ba, majd elvégezzük a műveleteket. Példa

A fenti példában feltöltjük az ACCU1-et MW10-el, utána az ACCU1-et áttoljuk az ACCU2-be és az ACCU1-be betesszük az MW14-et, összeadjuk mint egész számok és az eredményt betöltjük az MW14-be. Megvizsgáljuk a túlcsordulást, ha volt akkor elugrik a program az END címkéhez, ha nem volt túlcsordulás akkor a kapott eredményt megszorozzuk 2-vel. A JC (Jump Conditional) akkor ugrik, ha a RLO 1-ben van. Hasonlóan a valós számoknál: +R Add ACCU 1 and ACCU -R Subtract ACCU 1 from ACCU 2 *R Multiply ACCU 1 and ACCU 2 /R Divide ACCU 2 by ACCU 1 ABS Absolute Value SQR Generate the Square SQRT Generate the Square Root EXP Generate the Exponential Value LN Generate the Natural Logarithm SIN Generate the Sine of Angles COS Generate the Cosine of Angles TAN Generate the Tangent of Angles ASIN Generate the Arc Sine ACOS Generate the Arc Cosine ATAN Generate the Arc Tangent Logikai műveletek A logikai műveletek két memóriazóna bitjei között végezhetők, az S7-es PLC-k szó és duplaszó hosszúságú adatok között tud logikai műveleteke elvégezni. WAND_W (Word) AND Word - És WOR_W (Word) OR Word - Vagy WXOR_W (Word) Exclusive OR Word Kizáró vagy WAND_DW (Word) AND Double Word És két szó WOR_DW (Word) OR Double Word Vagy két szó WXOR_DW (Word) Exclusive OR Double Word - Kizáró vagy két szó

A fenti példa beolvassa a a 124-es címtől kezdődő digitális bemeneteke és lemaszkolja az alsó négyet, tehát a többi nem érdekes ebben az esetben. Tehát az MW10-be csak az első négy bemenet kerül. Adattömb kezelés Az adattömbök strukturált memóriazónák, amit a felhasználó az adatok tárolására használ. Az adattömbök a RAM-ban bemásolódnak, ha a program futtatásánál relevánsak. Ha nem releváns akkor át kell másolni a tárolt adatokat amikor szükséges. Két típusú adattömb létezik, a megosztott (Shared DB) és az Instance DB, vagyis egy függvény saját memóriazónája. Mi most a megosztott adattömböt vizsgáljuk.

Amint látjuk az adattömbbe különböző adatokat tárolunk. A fenti példán van három WORD tipusú változó és egy tömb, aminek az elemei STRUCT típusúak, tehát egy struktúra. Ez egy receptet tartalmaz, amiben a program neve és a recept két összetevője van. Ebből a receptből 10-et tároltunk a DB1 adattömbbe. Az adatok megcímezése: DB1.DBX1.0 bit típusú címzés DB1.DBB1 byte típusú DB1.DBW1 word típusú DB1.DBD double word típusú Például a fenti DB1-ből kiolvasom az áramot, és átírom a DB2-be: L DB1.DBW2 T DB2.DBW10 Az adattömbök adataihoz hozzáférünk úgy is, hogy megnyithatjuk az adattömböt és utána csak a benne levő címre hivatkozunk: Feladat Töltsetek fel egy adattömbbe 10 mért értéket, ami egy 16-bites AD konverzió eredmény egyenként (az analóg bementre PIWxxx cimmel hivatkozunk, pl. PIW256). Skálázzátok át az értékeket 0-1000 tartományba, és az eredményt tegyétek át egy másik adattömbbe. Ha az első három digitális bemeneten a decimális 7-nek megfelelő bináris érték van, akkor generáljátok a mért értékek szinuszát és mentsétek el az eredményt.