< Wróć do bazy wiedzy

W jakim formacie przechowywane są wartości zmiennoprzecinkowe w sterownikach Saia PCD?

 W sterownikach PCD liczby zmiennoprzecinkowe mogą być przechowywane w dwóch formatach: IEEE 754 oraz Motorola Fast Floating Point (FFP).

 

Obsługa formatów przez sterowniki SBC

Format Motorola FFP jest formatem, który był w sterownikach firmy Saia Burgess Controls “od zawsze”. Format IEEE 754 został wprowadzony w sterownikach z systemem NT:

  PCS1 PCD1.M1xx
PCD2.M1xx
PCD2.M480
PCD1.Mxxx0
PCD2.Mxxx0
PCD3
Motorola FFP Tak Tak Tak Tak
IEEE 754 Nie Nie Tak Tak

 

Format IEEE 754

Do przechowania liczby wykorzystuje się 32 bity – 1 bit znaku (S), 8 bitów wykładnika (E) i 23 bity mantysy (M):

SEEE EEEE EMMM MMMM MMMM MMMM MMMM MMMM

Interpretacja liczby:

Liczba = (-1)S * 2E-127 * (M/0x800000)

Reprezentując podzielnik mantysy jako liczbę całkowitą:

Liczba = (-1)S * 2E-127 * (M/8388608)

IEEE 754 Double (liczba zmiennoprzecinkowa podwójnej precyzji)

Do przechowania liczby wykorzystuje się 64 bity – 1 bit znaku (S), 11 bitów wykładnika (E) i 52 bitów mantysy (M):

SEEE EEEE EEEE MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM MMMM

 

IEEE 754 w sterownikach SBC

W sterownikach SBC liczby w formacie IEEE są przechowywane w rejestrach (R) i na stronach Fupla reprezentowane są kolorem niebieskim (jak liczby całkowite).

 Liczby podwójnej precyzji są przechowywane w dwóch sąsiednich rejestrach (R).

 Oznaczenie wartości w formacie IEEE 754

 

Format Motorola FFP

Do przechowywania liczby wykorzystuje się 32 bity – 1 bit znaku (S), 7 bitów wykładnika (E) i 24 bity mantysy (M):

MMMM MMMM MMMM MMMM MMMM MMMM SEEE EEEE

Interpretacja liczby:

Liczba = (-1)S * 2E-64 * M/0x1000000

Reprezentując podzielnik mantysy jako liczbę dziesiętną:

Liczba = (-1)S * 2E-64 * M/268435456

Motorola FFP w sterownikach SBC

W sterownikach SBC liczby w formacie Motorola FFP są przechowywane w rejestrach zmiennoprzecinkowych (RF) i na stronach Fupla reprezentowane są kolorem żółtym.

 Oznaczenie wartości w formacie Motorola FFP

 

Przykłady

Liczba Zapis w IEEE 754 Zapis w Motorola FFP
1,5 0011 1111 1100 0000 0000 0000 0000 0000 1100 0000 0000 0000 0000 0000 0100 0001
-1,5 1011 1111 1100 0000 0000 0000 0000 0000 1100 0000 0000 0000 0000 0000 1100 0001
425,83 0100 0011 1101 0100 1110 1010 0011 1101 1101 0100 1110 1010 0011 1101 0100 1001
0,034 0011 1101 0000 1011 0100 0011 1001 0110 1000 1011 0100 0011 1001 0110 0011 1100

 

Konwersja pomiędzy formatami

Konwersja pomiędzy formatami możliwa jest przy wykorzystaniu bloków funkcyjnych Fupla:

Bloczki konwersji formatów zmiennoprzecinkowych

Bloczki konwersji formatów zmiennoprzecinkowych

Do konwersji pomiędzy formatami w Liście Instrukcji (IL) można skorzystać z instrukcji:

Instrukcja Działanie Uwagi
IFP Liczba całk. -> FFP  
FPI FFP -> Liczba całk.  
EIFP Liczba całk.-> IEEE Tylko w systemach NT
EFPI IEEE -> Liczba całk. Tylko w systemach NT
EFPD IEEE Single -> IEEE Double Tylko w systemach NT
DFPE IEEE Double -> IEEE Single Tylko w systemach NT

Szczegółowy opis wykorzystania powyższych bloczków i instrukcji IL wraz z przykładami znajduje się w pomocy do Fupli i w pomocy do Listy Instrukcji w PG5.

 

Nasz serwis wykorzystuje pliki cookies. Korzystając z witryny wyrażasz zgodę na ich zapis lub wykorzystanie. Zgoda na wykorzystanie plików cookies jest jednoznaczna z zapoznaniem się i przyjęciem treści polityki cookies.
Akceptuję