ComposeReal4 (10024)





1) Przeznaczenie bloku

ComposeReal4 służy do złożenia 32-bitowej liczby rzeczywistej (Real4 / 32-bit float) z dwóch wartości 16-bitowych (dwóch „słów” po 16 bitów).
Blok wykonuje „sklejenie bitów” bez przeliczania wartości:

low wnosi młodsze 16 bitów (bity 0…15),
high wnosi starsze 16 bitów (bity 16…31),

a następnie utworzona liczba Real4 jest konwertowana do typu Real w Simultusie, czyli do 8-bajtowej liczby rzeczywistej o podwójnej precyzji (double).

2) Interfejs bloku (wejścia/wyjście)

Wejścia

low
dolne słowo (LSW – młodsze 16 bitów) składanego Real4

high
górne słowo (MSW – starsze 16 bitów) składanego Real4

Wyjście

out

wynik: R (Real) – liczba rzeczywista typu Real w Simultusie (double, 8 bajtów) utworzona na podstawie złożonej wartości Real4.

Na symbolu wyjścia widać literę R, co w Simultusie oznacza typ rzeczywisty Real (double, 8-bajtowy).


3) Zasada działania (bit po bicie)

Blok najpierw składa 32 bity wzorca Real4 wprost z dwóch słów 16-bitowych:

W zapisie operacyjnym (na poziomie bitów – typowy sposób składania):

Następnie blok wykonuje konwersję:

Kluczowe: ComposeReal4 nie “liczy” wartości w sensie matematycznym podczas składania bitów, tylko interpretuje złożony wzorzec bitowy jako liczbę typu Real4, a potem konwertuje ją do Real (double).

 

4) Co wynika z faktu, że to Real4

Liczba Real4 jest kodowana w 4 bajtach. W praktyce oznacza to, że:

Dla użytkownika bloku najważniejsze są dwie konsekwencje praktyczne:

Dodatkowo: mimo że na wyjściu jest Real (double), to źródłowa informacja pochodzi z Real4, więc dokładność wejściowa jest ograniczona do pojedynczej precyzji.


5) Kolejność słów (najważniejsza uwaga praktyczna)

Blok zakłada jednoznacznie:

low = młodsze słowo (LSW)
high = starsze słowo (MSW)

W systemach zewnętrznych (np. rejestry komunikacyjne 16-bit) kolejność bywa różna. Jeśli po złożeniu wartość jest błędna:


6) Procedura użycia krok po kroku

Ustal, które 16 bitów w Twoim źródle odpowiada młodszemu słowu, a które starszemu.

Podłącz:

młodsze słowo → low
starsze słowo → high

Odczytaj wynik na out jako Real (32-bit).

Jeżeli wynik nie ma sensu:

zweryfikuj kolejność słów (zamiana low/high),
zweryfikuj, czy źródło na pewno przesyła Real4 w dwóch słowach 16-bit.

7) Przykład na konkretnych liczbach 

Przykład pokazuję na poziomie bitów/hex, bo to jest jedyny pewny sposób w dokumentacji takiego bloku.

Załóżmy, że źródło danych dostarcza dwie wartości 16-bit:

high = 0x3F80
low = 0x0000

Składanie:

bits32 = 0x3F80 << 16 OR 0x0000
bits32 = 0x3F800000

Następnie:

Ten przykład pokazuje dokładnie mechanikę działania bloku: z dwóch słów powstaje 4-bajtowy wzorzec Real4, a wynik na wyjściu jest jego wartością w typie Real (double).



8) Jak można wykorzystać blok ComposeReal4

Blok ComposeReal4 wykorzystasz, gdy:

Typowe zastosowania: