Interfejs KIDE->Prawa lista->Bloki funkcyjne->Funkcje matematyczne->Expr32

Expr32 (Wyrażenia na liczbach 32 bitowych)

Wejścia:

Wyjście:

Algorytm:

Na wejścia In{1,2, … n} wprowadzane są wartosći typu Int16 przedstawione w kodzie U2. Blok wykonuje funkcję wpisaną w okno “Wyrażenie” (%1,%2,%3 … %x). Na wyjścia Out_Lo i Out_Hi wprowadzana jest wartość z wyrażenia o największym numerze. W oknie “Nazwa” można wprowadzić dowolny opis używanego bloku.

Wszystkie operacje wewnątrz bloku są wykonywane na wartościach o typie Float. Wynik operacji typu Int32 jest rozdzielany na dwie wartości typu Int16 przedstawione kodzie U2 (od -32768 do 32767) i przepisywany na wyjścia Out_Lo i Out_Hi. Jeśli zostanie przekroczony zakres liczby 32-bitowej to na wyjściu Out_Ovf zostanie ustawiona wartość 1.

Wewnątrz bloku wszelkie operacje wykonywane są z dużą dokładnością poprzez operowanie na zmiennych typu Float. Kolejność wykonywanych działań jest zgodne z ogólnymi zasadami matematyki.

Przykładowe algorytmy:

1) $1+$2
2) ($1*$2)/($3+8)
3) (($1*2)^2)/(sin($2))
4) (%1*2)/(cos($2))
5) (($1/5)*(%2))/(%3)
5) exp(%1)+log(%2)

Do wejścia bloku można odwołać się poprzez znak $ i numer wejścia.
Np. $1 -wejście pierwsze
Maksymalna ilość wejść to 255

Do wyrażenia można odwołać się przez znak ‘%’ i numer wyrażenia. Np. %1 - pierwsze wyrażenie. Maksymalna liczba wyrażeń to 20.

Przy kazdym kolejnm cyklu obliczeniowym wyrażenia są zerowane. Ich kolejność wykonywania jest zgodna z ich numeracją. W wyniku odwołania się do wartości wyrażenia ‘%x’ w wyrażeniu ‘%x’, w miejsce odwołania zostanie wprowadzona wartość 0 (np. wyrażenie %1 = %1 + 1 –> Out_Lo = 1, Out_Hi = 0, Out_Ovf = 0). Odwołanie się do wyrażenia ‘x’ w wyrażeniu ‘x-1’ (np. wyrażenie ‘1’ = $1 + %2) spowoduje wystąpienie błędu kompilacji programu, uniemożliwiając jego symulacje oraz wgrywanie na urządzenie.

Przykłady otrzymywanych wartości w elementach Hi i Lo:

  1. 1*32767 –> Out_Lo = 32767, Out_Hi = 0, Out_Ovf = 0
  2. 32767+32767 –> Out_Lo = -2, Out_Hi = 0, Out_Ovf = 0
  3. 3*32767 –> Out_Lo = 32765, Out_Hi = 1, Out_Ovf = 0
  4. 234*32767 –> Out_Lo = -234, Out_Hi = 116, Out_Ovf = 0
  5. 327673276732767 –> Out_Lo = 0, Out_Hi = 16384, Out_Ovf = 1

W bloku dostępne są operacje

Oraz funkcje:


powrót