====== Rozklad Integer ====== {{:cs:mervis-ide:35-help:bd54.png}} ===== Název bloku ===== BD54_INT_DECOMPOSITION ===== Volání v ST ===== PROGRAM BD54 VAR ARRAY1: ARRAY [0..3] OF DINT; ARRAY2: ARRAY [0..3] OF REAL; DINT1: DINT := 23139; FB: LIB.CORE.V1_0.BD54_INT_DECOMPOSITION := (LOW := [1, 5, 1, 13] ,HIGH := [4, 8, 8, 16]); END_VAR FB(IN:= DINT1, OUT=>ARRAY1, DY=>ARRAY2); END_PROGRAM ===== Knihovna ===== LIB\CORE ===== Verze ===== V1.0 ===== Popis ===== Blok rozloží vstupní data na hodnoty z určeného rozsahu bitů. ===== Vstupy ===== |Vstup|Typ |Význam |Výchozí hodnota| |IN |DINT |Vstupní data |0 | |LOW |ARRAY[0..3] OF LIB.CORE.V1_0.[[cs:mervis-ide:35-help:035-software_basic:060-libraries:015-proto|BIT32]]|první bit z rozsahu, pole o velikost [0..3] s hodnotami 1 až 32 |[1] | |HIGH |ARRAY[0..3] OF LIB.CORE.V1_0.[[cs:mervis-ide:35-help:035-software_basic:060-libraries:015-proto|BIT32]]|poslední bit z rozsahu, pole o velikost [0..3] s hodnotami 1 až 32|[1] | ===== Výstupy ===== |Výstup|Typ |Význam | |OUT |ARRAY_DINT|Výstupní hodnota, pole o velikost [0..3]| |DY |ARRAY_REAL|Výstupní hodnota, pole o velikost [0..3]| |bs |bool |Znaménko vstupní hodnoty | ===== Funkce ===== Blok rozloží vstupní data v rozsahu podle zadání daného parametry //low// a //high//. Low a high jsou vektory, kde každá položka určuje, kde začíná a končí pozice příslušného výsledku. Je možné rozkládat až do 4 výstupů, bitové rozsahy se mohou navzájem překrývat. Příklad: Pro zobrazení hodnoty prvních 4 bitů se vyplní //low// [1,0,0,0] a //high// [4,0,0,0] - tedy u prvního výstupu je první (dolní) bit 1, poslední (horní) bit 4. Výsledná hodnota bude na prvním výstupu, resp. v prvním prvku výstupního pole. Obdobně by místo nul ve vektorech výše mohly být vyplněny počáteční a koncové bity u dalších tří výstupů. //bs// určuje znaménko vstupních dat. Požadovaný zobrazený rozsah může být od 2 bitů až po 32 bitů. ===== Příklad použití ===== {{:cs:mervis-ide:35-help:bd54_example.png}} Rozklad vstupní hodnoty podle zadaných požadavků low = [1,5,1,13] a high = [4,8,8,16]. Vstup, 23139, je binárně 0101 1010 0110 0011. První výstup bere bity 1...4, tedy "0011", což představuje dekadicky číslo 3. Druhý výstup bere bity 5 až 8, tedy "0110", dekadicky 6. Třetí výstup bere bity 1 až 8, tedy "0110 0011", dekadicky 99. Čtvrtý výstup bere poslední čtveřici bitů 13...16, tedy "0101", dekadicky 5. Informace, které byly na bitech mimo určený rozsah, se neberou v úvahu.