Dokumentace

Int Decomposition (BD54)

Rozklad Integer

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

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.