1.2.6. Funkcje przeliczające    

 

 

          

Funkcje przeliczające są używane przez moduł Asmen przy przekształcaniu wartości zmiennych procesowych z postaci surowej na postać rzeczywistą. Każda zmienna posiada indywidualnie deklarowaną funkcję przeliczającą. Niektóre z udostępnionych funkcji przeliczających pozwalają na symulowanie zmian wartości zmiennych według zadanego algorytmu.

 

System Asix zawiera następujące funkcje przeliczające (nazwy funkcji należy pisać wielkimi literami):

 

 

 

 

 

Poniżej opisane zostały wszystkie funkcje przeliczające systemu Asix. Dla każdej funkcji przeliczającej podano:

 

 

 

 

 

Funkcja ANALOG dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według równania:

 

PCVal = MinPCVal + (PLCVal - MinPLCVal) * k

 

oraz konwersji wartości zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = MinPLCVal + (PCVal - MinPCVal) * k

 

Współczynnik k jest wyliczany następująco:

 

k = (MaxPCVal - MinPCVal)/(MaxPLCVal - MinPLCVal)

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - INTEGER

 

Parametry:

MinPLCVal              - INTEGER         (wartość domyślna - 0)

MaxPLCVal             - INTEGER         (wartość domyślna - 2048)

MinPCVal               - INTEGER         (wartość domyślna - 0)

MaxPCVal              - INTEGER         (wartość domyślna - 2048)

 

 

 

Funkcja ANALOG_FP dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według równania:

 

  PCVal = MinPCVal + (PLCVal - MinPLCVal) * k

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = MinPLCVal + (PCVal - MinPCVal) * k

 

Współczynnik k jest wyliczany następująco:

 

  k = (MaxPCVal - MinPCVal)/(MaxPLCVal - MinPLCVal)

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - FLOAT

 

Parametry:

MinPLCVal              - INTEGER         (wartość domyślna  0)

MaxPLCVal             - INTEGER         (wartość domyślna  2048)

MinPCVal               - FLOAT             (wartość domyślna  0.0)

MaxPCVal              - FLOAT             (wartość domyślna  2048.0)

 

 

1. Funkcja ANALOG_FP działa jak funkcja NIC_FP w przypadku użycia ich dla zmiennych z kanału NONE.
2.
Funkcja nie wykonuje operacji zapisu, jeśli została użyta dla zmiennej procesowej z kanału NONE, dla którego NIE zadeklarowano zapisu z czasem i statusem.

 

 

 

Funkcja ANALOG12STATUS dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według równania:

 

  PCVal = MinPCVal + (PLCVal - MinPLCVal) * k

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = MinPLCVal + (PCVal - MinPCVal) * k

 

Współczynnik k jest wyliczany następująco:

 

k = (MaxPCVal - MinPCVal)/(MaxPLCVal - MinPLCVal)

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - FLOAT

 

Parametry:

MinPLCVal              - INTEGER         (wartość domyślna  0)

MaxPLCVal             - INTEGER         (wartość domyślna  2048)

MinPCVal               - FLOAT             (wartość domyślna  0.0)

MaxPCVal              - FLOAT             (wartość domyślna  2048.0)

 

 W parametrach funkcji nie trzeba uwzględniać faktu, że odczytana wartość analogu jest przesunięta o 3 bity w lewo.

 

 

 Funkcja znajduje zastosowanie do wszystkich urządzeń obsługujących 12-bitowe wartości pomiarów, w których na trzech najmłodszych bitach umieszczane są bity statusu pomiaru
(dane w formacie SIEMENS z diagnostyką wewnątrz słowa statusowego), np. do modułów SIMATIC S5 , BECHOFF, WAGO.

 

 Funkcja działa jak funkcja ANALOG_FP, ale dodatkowo ustawiany jest status stosownie do stanu bitów statusowych czytanych z modułu AI:
a/
bit1 = 0, bit0 = 1 - przekroczenie zakresu górnego;zwracany jest status OPC_LIMIT_HIGH (lub AVD_BAD, jeśli Asmen nie jest w trybie OPC);
b/
bit1 = 1, bit0 = 1 - przekroczenie zakresu dolnego; zwracany jest status
OPC_LIMIT_LOW (lub AVD_BAD, jeśli Asmen nie jest w trybie OPC);
c/
dla pozostałych kombinacji bitów statusowych zwracany jest status
OPC_QUALITY_GOOD (lub AVD_GOOD, jeśli Asmen nie jest w trybie OPC).

 

 

 

 

Funkcja ANALOGWORD_FP dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według następujących zasad.

Funkcja ANALOG_FP dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według równania:

 

  PCVal = MinPCVal + (PLCVal - MinPLCVal) * k + offset

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = MinPLCVal + (PCVal – MinPCVal - offset) * k

 

Współczynnik k jest wyliczany następująco:

 

k = (MaxPCVal - MinPCVal)/(MaxPLCVal - MinPLCVal)

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - FLOAT

 

Parametry:

MinPLCVal              - INTEGER         (wartość domyślna  0)

MaxPLCVal             - INTEGER         (wartość domyślna  2048)

MinPCVal               - FLOAT             (wartość domyślna  0.0)

MaxPCVal              - FLOAT             (wartość domyślna  2048.0)

offset                    - FLOAT             (wartość domyślna  0.0)

 

 Funkcja ANALOGWORD_FP działa jak funkcja NIC_FP w przypadku użycia ich dla zmiennych z kanału NONE.

 

 

 Funkcja nie wykonuje operacji zapisu, jeśli została użyta dla zmiennej procesowej z kanału NONE, dla którego NIE zadeklarowano zapisu z czasem i statusem (włączony parametr 'Zapis czasu i statusu’).

 

 

 

 

BIT0_Z_N konstruuje liczbę 16-bitową bez znaku (WORD), w której wartości poszczególnych bitów są równe wartości najmłodszych bitów (bitu 0) aktualnych wartości zmiennych, wymienionych w liście. Z wartości zmiennej będącej na pierwszym miejscu w liście buduje się bit 0, drugim miejscu listy  - bit 1 itd. Liczba parametrów funkcji jest ograniczona do 16.

 

typ zmiennej PLC           - BYTE, WORD, DWORD

typ zmiennej PC            - WORD

 

parametry:

k,  to minimalna liczba zmiennych poprawnie odczytanych ze sterownika, przy której uznaje się poprawność wartościowania funkcji; wartość 0 oznacza, że wszystkie zmienne muszą być odczytane poprawnie. Gdy liczba poprawnie odczytanych zmiennych jest mniejsza od zadeklarowanej, to funkcja zwraca wartość przypadkową ze statusem błędu.

Val_1 .. Val_n        nazwy zmiennych Asmena oddzielone spacją , n<=16

 

 W przypadku zadeklarowania jako jednej ze zmiennych Val_i zmiennej typu  FLOAT przed wykonaniem funkcji wartość zmiennej jest konwertowana na WORD (funkcja ma sens dla zmiennych binarnych,  których wartości drajwer zwraca jako FLOAT).

 

 

 

BITN_Z_N stanowi rozszerzenie funkcjonalności funkcji Bit0_Z_N poprzez:

          1. możliwość wyboru dowolnego bitu wartości zmiennej

          2. możliwość forsowania wartości bitu poprzez użycie parametru 0 lub 1 zamiast nazwy zmiennej

          3. możliwość zanegowania wartości bitu zmiennej poprzez użycie suffixa NOT

 

Przykład:

 

ZM_MASKA, ,      XX, TEST,     1, 1, BITN_Z_N, 4, ZM_01:3 ZM_02:8:NOT ZM_03:4 0 1 ZM_04:1:NOT 1

 

Poszczególne bity zmiennej ZM_MASKA mają następujące wartości:

 

bit 0 - bit 3 zmiennej ZM_01

bit 1 - zanegowana wartość bitu 8 zmiennej ZM_02

bit 2 - bit 4 zmiennej ZM_03

bit 3 - 0

bit 4 - 1

bit 5 - zanegowana wartość bitu 1 zmiennej ZM_04

bit 6 - 1

 

 

Funkcja CAMAC6_1 dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według następujących zasad:

 

            dla PLCVall >= 2048

 

PLCVal = (PLCVal - 2048)/2048

 

            dla PLCVall < 2048

 

 PLCVal = (2048 - PLCVal)/2048

 

PCVal = PLCVal * (MaxPCVal - MinPCVal) + MinPCVal

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - FLOAT

 

Parametry:

MinPLCVal              - INTEGER         (wartość domyślna  0)

MaxPLCVal             - INTEGER         (wartość domyślna  4096)

MinPCVal               - FLOAT             (wartość domyślna  -75.0)

MaxPCVal              - FLOAT             (wartość domyślna  300.0)

 

 

 

 

Funkcja CAMAC6_2 liczy średnią z próbek wartości zmiennej procesowej odczytywanych ze sterownika według następujących zasad:

 

dla PLCVall >= 2048

 

 PLCVal = (PLCVal - 2048)/2048

 

dla PLCVall < 2048

 

 PLCVal = (2048 - PLCVal)/2048

 

PCVal = PLCVal * (MaxPCVal - MinPCVal) + MinPCVal

 

Średnia liczona jest za okres Okres (podawany w minutach), a wynik uznawany jest za poprawny, jeśli stopa procentowa poprawnie odczytanych próbek wynosi Stopa.

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - FLOAT

 

Parametry:

MinPLCVal              - INTEGER         (wartość domyślna  0)

MaxPLCVal             - INTEGER         (wartość domyślna  4096)

MinPCVal               - FLOAT             (wartość domyślna  -75.0)

MaxPCVal              - FLOAT             (wartość domyślna  300.0)

Okres                    - INTEGER         (wartość domyślna  5)

Stopa                    - INTEGER         (wartość domyślna  80)

 
 

Funkcja CZAS dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika (traktowanej jako licznik czasu w formacie STEP5) na liczbę obrazującą czas w jednostkach określonych przez parametr funkcji CZAS.

 

Przy zapisie wartości zmiennej procesowej do sterownika dokonywana jest konwersja liczby obrazującej czas w jednostkach użytkownika na licznik czasu w formacie STEP5.

Typy formatu czasu użytkownika podane są poniżej:

typ 0    - czas w 0.01 sek

typ 1    - czas w 0.1 sek

typ 2    - czas w sekundach

typ 3    - czas w minutach

typ 4    - czas w godzinach

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - WORD

 

Parametry:

format czasu          - WORD            (wartość domyślna 2)

 

 

 

 

Funkcja CZAS_SEK zamienia przy odczycie wartość zmiennej procesowej typu WORD (traktowanej jako liczba sekund) na łańcuch znaków ASCII o formacie:

 

mm:ss

 

gdzie:

mm           - minuty

ss              - sekundy

           

Funkcja CZAS_SEK zamienia przy zapisie łańcuch znaków ASCII o formacie:

 

mm:ss

 

gdzie:

mm           - minuty

ss              - sekundy

na liczbę sekund w formacie WORD.

 

 Zmienna procesowa wykorzystująca przedmiotowe funkcje nie może należeć do kanału NONE. Funkcja nie może być stosowana do zmiennych tablicowych.

 

 

 

 

 

Funkcja CZAS_MSEK zamienia przy odczycie wartość zmiennej procesowej typu DWORD (traktowanej jako liczba milisekund) na łańcuch znaków ASCII o formacie:

 

hh:mm:ss

 

gdzie:

hh             - godziny

mm           - minuty

ss              - sekundy

           

Funkcja CZAS_MSEK zamienia przy zapisie łańcuch znaków ASCII o formacie:

 

hh:mm:ss

 

gdzie:

hh             - godziny

mm           - minuty

ss              - sekundy

na liczbę milisekund w formacie DWORD.

 

 Zmienna procesowa wykorzystująca przedmiotowe funkcje nie może należeć do kanału NONE. Funkcja nie może być stosowana do zmiennych tablicowych.

 

 

 

 

 

Funkcja CYRK1 dokonuje przekształcenia wartości zmiennej procesowej odczytanej ze sterownika na jedną z liczb 16-bitowych bez znaku znajdujących się w tablicy przypisanej danej zmiennej procesowej. Zawartość oraz rozmiar tablicy określany jest na podstawie deklaracji zmiennej procesowej. Przekształcenie polega na odnalezieniu pozycji pierwszego niezerowego bitu w 16 bitowej liczbie odczytanej ze sterownika i użycia tej pozycji jako indeksu przy odczycie z tablicy. Poszukiwanie niezerowego bitu rozpoczyna się od bitu podanego w deklaracji zmiennej i kontynuuje w  stronę malejących rangą bitów. Liczba testowanych bitów podana jest w deklaracji zmiennej. W przypadku, gdy odczytane słowo jest równe 0, to jako wartość zwracany jest ostatni parametr, podany przy deklaracji zmiennej procesowej.

 

W przypadku pisania do sterownika funkcja CYRK1 przeszukuje tablicę przypisaną zmiennej procesowej w celu odnalezienia w niej wzorca identycznego z wartością  przekazaną do funkcji. W przypadku odnalezienia wzorca do sterownika przekazywana jest liczba 16-bitowa składająca się z 1 na pozycji odpowiadającej indeksowi odnalezionego wzorca i zer na pozostałych pozycjach. Wyjątek stanowi wzorzec odnaleziony na najstarszej pozycji tablicy - w takim przypadku do sterownika przekazywane jest 0. W przypadku, gdy wzorzec nie zostanie odnaleziony, funkcja zwraca błąd.

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - WORD

 

Parametry:

numer bitu, od którego rozpoczyna się poszukiwania - WORD

liczba przeszukiwanych bitów - WORD

kolejne elementy tablicy wzorców

        maks.  16 + 1 (ostatni dla 0) elementów - WORD

 

 

 

 

Funkcja DATACZAS zamienia liczbę sekund przekazaną w postaci liczby typu DWORD na łańcuch ASCII o postaci:

 

DD-MM-YYYYbHH:NN:SS

 

gdzie:

DD            - dwie cyfry dnia

MM            - dwie cyfry miesiąca

YYYY          - cztery cyfry roku

HH             - dwie cyfry godziny

NN             - dwie cyfry minut

SS             - dwie cyfry sekund

b               - spacja

Może być wykorzystywana wyłącznie w przypadku drajwera NONE.

Funkcja nie ma parametrów.

 

 

 

 

Funkcja DATACZAS_MEC zamienia czas licznika MEC podany jako liczbę sekund przekazaną w postaci łańcucha 17 bajtów na łańcuch ASCII o postaci:

 

YYYY-MM-DD HH:MM

 

Czas MEC`a przekazywany jest na indeksie 0

Funkcja nie ma parametrów.

 

 

 

Funkcja DATACZAS_MUZ konwertuje znacznik czasu MultiMuza (double) na łańcuch ASCII w formacie:

 

yyyy-mm-dd hh:nn:ss.zzz

 

 

 

Funkcja pozwala na zamianę zmiennych typu DWORD na zmienną typu FLOAT.

 

 

 

GRADIENT zwraca wartość zmiennej wyliczoną wg. wzoru:

 

y = {(t2 - t1) / T}*m

 

gdzie:

t2 - wartość bieżąca wyliczona jako średnia ważona

t1 - wartość z chwili t0-T wyliczona jako średnia ważona

T - okres, za który liczony jest gradient (w sekundach)

średnia ważona  t = t-1*(1-k) + tb*(k)

k - waga w zakresie (0 – 1)

t-1 - wartość t wyliczona w poprzednim cyklu

tb - wartość w danej chwili

m - mnożnik

 

typ zmiennej PC            - FLOAT

 

Parametry:

T                           - WORD

k                           - FLOAT

m                          - FLOAT

 

Wartością źródłową dla funkcji GRADIENT może być zmienna surowa w sterowniku, jak i zmienna systemu Asix zadeklarowana w module Asmen.

 

PRZYKŁAD

 

Przykładowa deklaracja zmiennej adresowanej w sterowniku i przeliczanej funkcją gradient

 

ZMIENNA1,gradient zmiennej w sterowniku,ED100.0,KANAL,1,1,GRADIENT,15,0.1,60

      

Znaczenie parametrów:

       Adres zmiennej      - DB 100, DW0

       Okres T                 - 15 sekund

       Współczynnik k      - 0.1

       Przeliczenie m        - 60 sekund

 

ZMIENNA1 - jest wyliczoną szybkością zmian zmiennej o adresie ED100.0 w jednostkach sterownika na minutę.

 

 Zmienna w sterowniku musi być podawana w jednostkach rzeczywistych.

 

 

 

PRZYKŁAD

 

Przykładowa deklaracja zmiennej systemu Asix przeliczanej funkcją gradient:

 

ZMIENNA2,gradient zmiennej ,,NONE,1,1,GRADIENT,15,0.1,60,ZMIENNA3

      

Znaczenie parametrów:

Okres T                                  - 15 sekund

Współczynnik k                       - 0.1

Przeliczenie m                        - 60 sekund

Zmienna źródłowa                   - ZMIENNA3

 

ZMIENNA2 - jest wyliczoną szybkością zmian zmiennej ZMIENNA3 w jednostkach ZMIENNEJ3 na minutę.

 

 

 

 

 

Funkcja ILORAZ dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według równania:

 

PCVal = PLCVal / k

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = PCVal  * k

 

gdzie k  (DZIELNIK)  jest parametrem funkcji.

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - FLOAT

 

Parametry:

dzielnik                  - FLOAT             (wartość domyślna 10.0)

 

 

 

 

Funkcja ILORAZ_DW dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według równania:

 

PCVal = PLCVal / k

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = PCVal  * k

 

gdzie k  (DZIELNIK)  jest parametrem funkcji.

 

typ zmiennej PLC           - DWORD

typ zmiennej PC            - FLOAT

 

Parametry:

dzielnik                  - FLOAT             (wartość domyślna 10.0)

 

 

 

 

 

Funkcja LICZ dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika (traktowanej jako stan licznika w formacie BCD z 3-ma dekadami) na 16-bitową liczbę bez znaku.

Przy zapisie wartości zmiennej procesowej do sterownika dokonywana jest konwersja 16-bitowej liczby bez znaku na liczbę w formacie BCD z 3-ma dekadami.

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - WORD

 

nie posiada parametrów

 

 

 

 

 

Funkcja MASKA przy odczycie wykonuje operację iloczynu logicznego wartości zmiennej odczytanej ze sterownika i parametru funkcji MASKA, podanego w deklaracji zmiennej.

Przy zapisie do sterownika wartość zmiennej nie jest modyfikowana.

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - WORD

 

Parametr:

liczba w formacie heksadecymalnym (wartość domyślna FFFF).

 

 

 

 

MAXIMUM_Z_N zwraca największą wartość ze zmiennych, wymienionych w liście jako parametry i przeznaczona jest do użycia ze zmienną zadeklarowaną w kanale typu NONE. Zmienne wymienione w liście parametrów mogą być różnego typu, wartość funkcji jest konwertowana na typ FLOAT. Nie ogranicza się liczby zmiennych ani ich kolejności w deklaracji zmiennej, do której przypisano funkcję MAXIMUM_Z_N. W przypadku, gdy deklaracja nie mieści się w jednej linii z powodu długiej listy nazw zmiennych, to należy ją rozdzielić na kilka linii, które (poza ostatnią) mają na końcu znak kontynuacji "\".

 

typ zmiennej PLC           - dowolny

typ zmiennej PC            - FLOAT

 

Parametry:

k         to minimalna liczba zmiennych poprawnie odczytanych ze sterownika, przy której uznaje się poprawność wartościowania funkcji, wartość 0 oznacza, że wszystkie zmienne muszą być odczytane poprawnie. Gdy liczba poprawnie odczytanych zmiennych jest mniejsza od zadeklarowanej, to funkcja zwraca wartość przypadkową ze statusem błędu.

Val_1,..Val_n          dowolnego typu, nazwy zmiennych Asmena.

 

Wartość funkcji jest obliczana następująco:

 

PCVal=max(Val_1,Val_2,..,Val_n)

 

 

 

 

MINIMUM_Z_N zwraca najmniejszą wartość ze zmiennych, wymienionych w liście jako parametry i przeznaczona jest do użycia ze zmienną zadeklarowaną w kanale typu NONE. Zmienne wymienione w liście parametrów mogą być różnego typu, wartość funkcji jest konwertowana na typ FLOAT. Nie ogranicza się liczby zmiennych ani ich kolejności w deklaracji zmiennej, do której przypisano funkcję MINIMUM_Z_N. W przypadku, gdy deklaracja nie mieści się w jednej linii z powodu długiej listy nazw zmiennych, to należy ją rozdzielić na kilka linii, które (poza ostatnią) mają na końcu znak kontynuacji "\".

 

typ zmiennej PLC           - dowolny

typ zmiennej PC            - FLOAT

 

Parametry:

k         to minimalna liczba zmiennych poprawnie odczytanych ze sterownika, przy której uznaje się poprawność wartościowania funkcji, wartość 0 oznacza, że wszystkie zmienne muszą być odczytane poprawnie. Gdy liczba poprawnie odczytanych zmiennych jest mniejsza od zadeklarowanej, to funkcja zwraca wartość przypadkową ze statusem błędu.

Val_1,..Val_n          dowolnego typu, nazwy zmiennych Asmena.

 

Wartość funkcji jest obliczana następująco:

 

PCVal=min(Val_1,Val_2,..,Val_n)

 

 

 

 

Funkcja MNOZNIK_DOUBLE dokonuje konwersji wartości zmiennej procesowej typu DOUBLE według równania:

 

PCVal= A * PLCVal + B

 

 

typ zmiennej PLC           - DOUBLE

typ zmiennej PC            - DOUBLE

 

Parametry:

A                          - FLOAT    (wartość domyślna 1.0)

B                          - FLOAT    (wartość domyślna 0.0)

 

 

 

 

 

Funkcja MNOZNIK_FP dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według równania:

 

PCVal= A * PLCVal + B

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = ( PCVal - B ) / A

 

typ zmiennej PLC           - FLOAT

typ zmiennej PC            - FLOAT

 

Parametry:

A                          - FLOAT             (wartość domyślna  1.0)

B                          - FLOAT             (wartość domyślna  0.0)

#ABS                    - użytkownik dostaje wartość absolutną

 

 Funkcja nie wykonuje operacji zapisu, jeśli została użyta dla zmiennej procesowej z kanału NONE, dla którego NIE zadeklarowano zapisu z czasem i statusem.

 

 

 

 

 

 

Funkcja MNOZNIK_KG dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika według równania:

 

PCVal(IEEE 754) = A * PLCVal(KG) + B

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal(KG) = ( PCVal(IEEE 754) - B ) / A

 

Przy odczycie zmiennej ze sterownika funkcja przeliczająca MNOZNIK_KG dokonuje konwersji z formatu zmiennoprzecinkowego KG na format zmiennoprzecinkowy zgodny z IEEE 754. Przy zapisie dokonywana jest konwersja z formatu zmiennoprzecinkowego zgodnego z IEEE 754 na format zmiennoprzecinkowy KG.

 

typ zmiennej PLC           - FLOAT (KG)

typ zmiennej PC            - FLOAT

 

Parametry:

A                          - FLOAT             (wartość domyślna  1.0)

B                          - FLOAT             (wartość domyślna  0.0)

 

 Funkcja nie wykonuje operacji zapisu, jeśli została użyta dla zmiennej procesowej z kanału NONE, dla którego NIE zadeklarowano zapisu z czasem i statusem.

 

 

 

 

 

 

Funkcja MNOZNIK_DW dokonuje konwersji wartości zmiennej procesowej typu dword (liczba 32-bitowa bez znaku) odczytanej ze sterownika według równania:

 

PCVal = A * PLCVal + B

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = ( PCVal - B ) / A

 

typ zmiennej PLC           - DWORD

typ zmiennej PC            - FLOAT

 

Parametry:

A                          - FLOAT             (wartość domyślna  1.0)

B                          - FLOAT             (wartość domyślna  0.0)

 

 

 

Funkcja MNOZNIK dokonuje konwersji wartości zmiennej procesowej typu word (liczba 16-bitowa bez znaku) odczytanej ze sterownika według równania:

 

PCVal = A * PLCVal + B

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = ( PCVal - B ) / A

 

typ zmiennej PLC          - WORD

typ zmiennej PC           - FLOAT

 

Parametry:

A                          - FLOAT             (wartość domyślna  1.0)

B                          - FLOAT             (wartość domyślna  0.0)

 

 

 

Funkcja MNOZNIK_INT dokonuje konwersji wartości zmiennej procesowej (liczba 16-bitowa ze znakiem) odczytanej ze sterownika według równania:

 

PCVal = A * PLCVal + B

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = ( PCVal - B ) / A

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - FLOAT

 

Parametry:

A                          - FLOAT             (wartość domyślna  1.0)

B                          - FLOAT             (wartość domyślna  0.0)

 

 

 

 

 

Funkcja MNOZNIK_INT64 dokonuje konwersji wartości zmiennej procesowej typu INT64 według równania:

 

PCVal = A * PLCVal + B

 

 

typ zmiennej PLC           -  INT64

typ zmiennej PC            -  INT64

 

Parametry:

A                          -FLOAT             (wartość domyślna 1.0)

B                          -FLOAT             (wartość domyślna 0.0)

 

 

 

 

Funkcja MNOZNIK_LONG dokonuje konwersji wartości zmiennej procesowej (liczba 32-bitowa ze znakiem) odczytanej ze sterownika według równania:

 

PCVal = A * PLCVal + B

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = ( PCVal - B ) / A

 

typ zmiennej PLC          - LONG

typ zmiennej PC           - FLOAT

 

Parametry:

A                          - FLOAT             (wartość domyślna  1.0)

B                          - FLOAT             (wartość domyślna  0.0)

 

 

 

 

Funkcja MNOZNIK_UINT64 dokonuje konwersji wartości zmiennej procesowej typu INT64 bez znaku według równania:

 

PCVal = A * PLCVal + B

 

 

typ zmiennej PLC          - UINT64

typ zmiennej PC           - UINT64

 

Parametry:

A                          -  FLOAT    (wartość domyślna 1.0)

B                          -  FLOAT    (wartość domyślna 0.0)

 

 

 

 

Funkcja NEGBIT_BYTE przekazuje użytkownikowi 8-bitową wartość odczytanej zmiennej procesowej po zanegowaniu bitów zgodnie z maską.

 

typ zmiennej PLC           - BYTE

typ zmiennej PC            - BYTE

 

Parametr:

8-bitowa maska negowanych bitów w postaci heksdecymalnej

 

 

 

Funkcja NEGBIT przekazuje użytkownikowi 16-bitową wartość odczytanej zmiennej po zanegowaniu bitów zgodnie z maską.

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - WORD

 

Parametr:

16-bitowa maska negowanych bitów w postaci heksdecymalnej

 

 

 

Funkcja NEGBIT_DW przekazuje użytkownikowi 32-bitową wartość odczytanej zmiennej po zanegowaniu bitów zgodnie z maską.

 

typ zmiennej PLC           - DWORD

typ zmiennej PC            - DWORD

 

Parametr:

32-bitowa maska negowanych bitów w postaci heksdecymalnej

 

 

 

Funkcja NIC przekazuje użytkownikowi 16-bitową wartość zmiennej procesowej w postaci odczytanej przez drajwer, nie dokonując żadnych dodatkowych przekształceń.

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - WORD

 

Parametry:

MIN                       - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                      - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej.

 

Funkcja NIC_BYTE przekazuje użytkownikowi wartość zmiennej procesowej w postaci liczby 8-bitowej w postaci odczytanej przez drajwer, nie dokonując żadnych dodatkowych przekształceń.

 

typ zmiennej PLC           - BYTE

typ zmiennej PC            - BYTE

 

Parametry:

MIN                       - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                      - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej.

 

 

 

Funkcja NIC_DD przekazuje użytkownikowi wartość zmiennej procesowej, reprezentowaną w sterowniku przez podwójne słowo, dokonując w nim zamiany miejscami starszego i młodszego słowa.

 

typ zmiennej PLC           - DWORD

typ zmiennej PC            - DWORD

 

Parametry:

MIN                              - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                             - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej.

 

Funkcja NIC_DOUBLE przekazuje użytkownikowi wartość zmiennej procesowej tylu double w postaci odczytanej przez drajwer, nie dokonując żadnych dodatkowych przekształceń.

 

typ zmiennej PLC           - DOUBLE

typ zmiennej PC            - DOUBLE

 

Parametry:

MIN                              - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                             - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej.

 przetwarzanej.

 

 

Funkcja NIC_DW przekazuje użytkownikowi 32-bitową wartość zmiennej procesowej w postaci odczytanej przez drajwer, nie dokonując żadnych dodatkowych przekształceń.

 

typ zmiennej PLC           - DWORD

typ zmiennej PC            - DWORD

 

Parametry:

MIN                              - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                             - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej.

 

 

 

 

Funkcja NIC_FP przekazuje użytkownikowi wartość zmiennej procesowej typu float w postaci przekazanej przez drajwer, nie dokonując żadnych dodatkowych przekształceń.

 

 typ zmiennej PLC          - FLOAT

 typ zmiennej PC           - FLOAT

 

Parametry:

MIN                              - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                             - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

 

 

 

 

Funkcja NIC_INT przekazuje użytkownikowi wartość zmiennej procesowej w formie liczby 16-bitowej ze znakiem w postaci odczytanej przez drajwer, nie dokonując żadnych dodatkowych przekształceń.

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - INTEGER

 

Parametry:

MIN                              - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                             - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej.

 

 

 

 

Funkcja NIC_INT64 przekazuje użytkownikowi wartość zmiennej procesowej w formie liczby 64-bitowej ze znakiem w postaci odczytanej przez drajwer, nie dokonując żadnych dodatkowych przekształceń.

 

typ zmiennej PLC           - INTEGER 64

typ zmiennej PC            - INTEGER 64

 

Parametry:

MIN                              - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                             - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej.

 

 

 

 

 

Funkcja NIC_LONG przekazuje użytkownikowi wartość zmiennej procesowej w formie liczby 32-bitowej ze znakiem w postaci odczytanej przez drajwer, nie dokonując żadnych dodatkowych przekształceń.

 

typ zmiennej PLC           - LONG

typ zmiennej PC            - LONG

 

Parametry:

MIN                              - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                             - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej.

 

 

 

 

Funkcja NIC_KG przekazuje użytkownikowi wartość zmiennej procesowej odczytanej ze sterownika w formacie zmiennoprzecinkowym KG (specyficzny format sterowników firmy SIEMENS) i zamienionej na format zmiennoprzecinkowy zgodny z IEEE 754. Przy zapisie dokonywana jest konwersja z formatu IEEE 754 na format KG.

 

typ zmiennej PLC           - FLOAT (KG)

typ zmiennej PC            - FLOAT

 

Parametry:

MIN                              - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej;

MAX                             - liczba typu jak zmienna PC, nie wpływa na przeliczenie wartości, służy do określenia zakresu zmian zmiennej przetwarzanej.

 

 

 

 

Funkcja NIC_TEXT przekazuje użytkownikowi wartość zmiennej procesowej w postaci łańcucha znaków ASCII zakończonego zerem.

 

typ zmiennej PLC           - BYTE

typ zmiennej PC            - BYTE

 

nie posiada parametrów

 

 

 

 

Funkcja NIC_UINT64 przekazuje użytkownikowi wartość zmiennej procesowej w formie liczby 64-bitowej bez znaku w postaci odczytanej przez drajwer, nie dokonując żadnych dodatkowych przekształceń.

 

typ zmiennej PLC           - UINT64

typ zmiennej PC            - UINT64

 

 

 

 

Funkcja ON/OFF została opracowana dla celów testów prowadzonych bez udziału sterownika (przy użyciu kanału typu NONE). Pozwala ona generować przebiegi dwustanowe o zadanych wartościach.

 

typ zmiennej PLC             - WORD

typ zmiennej PC               - WORD

 

Parametry:

wartość ON                      - WORD   (wartość domyślna 1)

wartość OFF                     - WORD   (wartość domyślna 0)

wartość początkowa         - WORD   (wartość domyślna 0)

 

 

 

 

Funkcja PILA została opracowana dla celów testów prowadzonych bez udziału sterownika i przy użyciu kanału typu NONE. Pozwala ona generować przebiegi piłokształtne o zadanych wartościach granicznych oraz zadanym kroku zmiany wartości. Zmienna procesowa przyjmuje wartości typu INTEGER.

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - INTEGER

 

Parametry:

początkowy kierunek narastania (1 - w górę, 0 - w dół) - INTEGER (wartość domyślna 1)

krok                               - INTEGER           (wartość domyślna 1)

maksimum                      - INTEGER           (wartość domyślna 100)

minimum                         - INTEGER           (wartość domyślna -100)

wartość początkowa         - INTEGER           (wartość domyślna 0)

 

 

Funkcja PILA_DOUBLE została opracowana dla celów testów prowadzonych bez udziału sterownika i przy użyciu kanału typu NONE. Pozwala ona generować przebiegi piłokształtne o zadanych wartościach granicznych oraz zadanym kroku zmiany wartości. Zmienna procesowa przyjmuje wartości typu DOUBLE.

 

typ zmiennej PLC           - DOUBLE

typ zmiennej PC            - DOUBLE

 

Parametry:

początkowy kierunek narastania (1 - w górę, 0 - w dół) - DOUBLE (wartość domyślna 1)

krok                                 - DOUBLE (wartość domyślna 1.0)

maksimum                        - DOUBLE (wartość domyślna 100.0)

minimum                           - DOUBLE (wartość domyślna -100.0)

wartość początkowa           - DOUBLE (wartość domyślna 0.0)

 

 

 

Funkcja PILA_FP została opracowana dla celów testów prowadzonych bez udziału sterownika i przy użyciu kanału typu NONE. Pozwala ona generować przebiegi piłokształtne o zadanych wartościach granicznych oraz zadanym kroku zmiany wartości. Zmienna procesowa przyjmuje wartości typu FLOAT.

 

typ zmiennej PLC           - FLOAT

typ zmiennej PC            - FLOAT

 

Parametry:

początkowy kierunek narastania (1 - w górę, 0 - w dół) - INTEGER (wartość domyślna 1)

krok                                 - FLOAT (wartość domyślna 1.0)

maksimum                        - FLOAT (wartość domyślna 100.0)

minimum                           - FLOAT (wartość domyślna -100.0)

wartość początkowa           - FLOAT (wartość domyślna 0.0)

 

 

Funkcja PILA_INT64 została opracowana dla celów testów prowadzonych bez udziału sterownika i przy użyciu kanału typu NONE. Pozwala ona generować przebiegi piłokształtne o zadanych wartościach granicznych oraz zadanym kroku zmiany wartości. Zmienna procesowa przyjmuje wartości typu INTEGER 64.

 

typ zmiennej PLC           - INTEGER 64

typ zmiennej PC            - INTEGER 64

 

Parametry:

początkowy kierunek narastania (1 - w górę, 0 - w dół) - INTEGER 64 (wartość domyślna 1)

krok                               - INTEGER 64           (wartość domyślna 1)

maksimum                      - INTEGER 64           (wartość domyślna 100)

minimum                         - INTEGER 64           (wartość domyślna -100)

wartość początkowa         - INTEGER 64           (wartość domyślna 0)

 

 

 

 

Funkcja PROCENT dokonuje konwersji wartości zmiennej procesowej typu INTEGER odczytanej ze sterownika do postaci typu FLOAT według równania:

 

PCVal = (PLCVal / k) * 100.0

 

oraz konwersji wartości zmiennej procesowej pisanej do sterownika z postaci FLOAT na wartość typu INTEGER według równania:

 

PLCVal = (PCVal / 100.0) * k

 

gdzie k jest parametrem funkcji.

 

typ zmiennej PLC           - INTEGER

typ zmiennej PC            - FLOAT

 

Parametry:

wartość odniesienia          - FLOAT   (wartość domyślna 2048.0)

 

 

 

 

Funkcja PROCENT_FP operuje na zmiennej procesowej typu FLOAT. Funkcja dokonuje konwersji zmiennoprzecinkowej wartości zmiennej procesowej odczytanej ze sterownika według równania:

 

PCVal = (PLCVal / k) * 100.0

 

oraz konwersji wartości zmiennoprzecinkowej pisanej do sterownika według równania:

 

PLCVal = (PCVal / 100.0) * k

 

gdzie k jest parametrem funkcji.

 

typ zmiennej PLC           - FLOAT

typ zmiennej PC            - FLOAT

 

Parametry:

wartość odniesienia          - FLOAT            (wartość domyślna 2048.0)

 

 

 

 

Funkcja PRZESUN_L przy odczycie przesuwa w lewo wartość odczytaną ze sterownika o liczbę bitów określoną przez pierwszy parametr funkcji, a następnie wykonuje operację iloczynu logicznego przesuniętej wartości i drugiego parametru funkcji.

Przy zapisie do sterownika wartość zmiennej nie jest modyfikowana.

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - WORD

 

Parametr:

przesunięcie (liczba z zakresu 0 - 16) (wartość domyślna 0)

liczba w formacie heksadecymalnym   (wartość domyślna FFFF)

 

 

 

 

Funkcja PRZESUN_P przy odczycie przesuwa w prawo wartość odczytaną ze sterownika o liczbę bitów określoną przez pierwszy parametr funkcji, a następnie wykonuje operację iloczynu logicznego przesuniętej wartości i drugiego parametru funkcji.

Przy zapisie do sterownika wartość zmiennej nie jest modyfikowana.

 

typ zmiennej PLC          - WORD

typ zmiennej PC           - WORD

 

Parametr:

przesunięcie (liczba z zakresu 0 - 16) (wartość domyślna 0)

liczba w formacie heksadecymalnym   (wartość domyślna FFFF)

 

 

 

 

Funkcja SREDNIA liczy średnią z próbek wartości zmiennej procesowej odczytywanych ze sterownika według następujących zasad:

 

  PCVal = MinPCVal + (PLCVal - MinPLCVal) * k

 

oraz konwersji zmiennej procesowej przesyłanej do sterownika według równania:

 

PLCVal = MinPLCVal + (PCVal - MinPCVal) * k

 

Współczynnik k jest wyliczany następująco:

 

  k = (MaxPCVal - MinPCVal)/(MaxPLCVal - MinPLCVal)

 

Średnia liczona jest za okres Okres (podawany w minutach), a wynik uznawany jest za poprawny, jeśli stopa procentowa poprawnie odczytanych próbek wynosi Stopa.

 

Parametrem funkcji może być WYŁĄCZNIE liczba (wyrażona w minutach), która spełnia jeden z poniższych warunków:

dzieli godzinę na równe odcinki czasu,

dzieli dobę na równe odcinki czasu będące wielokrotnością godziny.

 

Wywołania Aspada muszą być zsynchronizowane z zegarem systemowym, a nie z chwilą uruchomienia asixa.

 

typ zmiennej PLC           - dowolny

typ zmiennej PC            - FLOAT

 

Parametry:

MinPLCVal              - nie dotyczy

MaxPLCVal             - nie dotyczy

MinPCVal               - FLOAT            (wartość domyślna  0.0)

MaxPCVal              - FLOAT            (wartość domyślna  2048.0)

okres                    - INTEGER        (wartość domyślna  5)

stopa                     - INTEGER        (wartość domyślna  80)

 

 

 

 

SREDNIA_Z_N zwraca aktualną wartość średniej arytmetycznej zmiennych, wymienionych w liście jako parametry i przeznaczona jest do użycia ze zmienną zadeklarowaną w kanale typu NONE. Zmienne wymienione w liście parametrów mogą być różnego typu, wartość funkcji jest konwertowana na typ FLOAT. Nie ogranicza się liczby zmiennych ani ich kolejności w deklaracji zmiennej, do której przypisano funkcję SREDNIA_Z_N. W przypadku, gdy deklaracja nie mieści się w jednej linii z powodu długiej listy nazw zmiennych, to należy ją rozdzielić na kilka linii, które (poza ostatnią) mają na końcu znak kontynuacji "\".

 

typ zmiennej PLC           - dowolny

typ zmiennej PC            - FLOAT

 

Parametry:

k         - to minimalna liczba zmiennych poprawnie odczytanych ze sterownika, przy której uznaje się poprawność wartościowania funkcji, wartość 0 oznacza, że wszystkie zmienne muszą być odczytane poprawnie. Gdy liczba poprawnie odczytanych zmiennych jest mniejsza od zadeklarowanej, to funkcja zwraca wartość przypadkową ze statusem błędu.

Val_1,..Val_n          dowolnego typu, nazwy zmiennych Asmena.

 

Wartość funkcji jest obliczana następująco:

 

PCVal=(Val_1+Val_2+..+Val_n)/n

 

 

 

 

Jeśli parametrem funkcji jest liczba typu INTEGER, to funkcja STALA przypisuje zmiennej procesowej wartość liczby.

Jeśli parametrem funkcji jest nazwa zmiennej procesowej, to funkcja STALA przypisuje zmiennej procesowej aktualną wartość zmiennej-parametru. Typem rzeczywistym zmiennej-parametru musi być INTEGER.

Funkcja służy tylko od odczytu.

 

typ zmiennej PC            - INTEGER

 

Parametry:

IntegerVal             - INTEGER        (wartość domyślna  0)

lub

nazwa                   - STRING

 

 

 

 

Jeśli parametrem funkcji jest liczba typu FLOAT, to funkcja STALA_FP przypisuje zmiennej procesowej wartość liczby.

Jeśli parametrem funkcji jest nazwa zmiennej procesowej, to funkcja STALA_FP przypisuje zmiennej procesowej aktualną wartość zmiennej-parametru. Typem rzeczywistym zmiennej-parametru musi być FLOAT.

Funkcja służy tylko od odczytu.

 

typ zmiennej PC            - FLOAT

 

Parametry:

FloatVal                 - FLOAT            (wartość domyślna  0)

lub

nazwa                   - STRING

 

 

 

 

STATUS zwraca aktualny status zmiennej będącej parametrem funkcji.

Zmienna, która używa funkcji STATUS, musi być zdefiniowana w kanale NONE lub NETSRV.

Funkcja zezwala wyłącznie na operacje odczytu.

 

PRZYKŁAD

 

VAL, zmienna ze sterownika, KANAL_PLC,1,1,NIC

STAT, zmienna pokazująca status zmiennej VAL1,KANAL_NONE,1,1,STATUS,VAL

 

 

 

 

 

SUMA_Z_N zwraca aktualną wartość sumy zmiennych, wymienionych w liście jako parametry i przeznaczona jest do użycia ze zmienną zadeklarowaną w kanale typu NONE. Zmienne wymienione w liście parametrów mogą być różnego typu, wartość funkcji jest konwertowana na typ FLOAT. Nie ogranicza się liczby zmiennych ani ich kolejności w deklaracji zmiennej, do której przypisano funkcję SUMA_Z_N. W przypadku, gdy deklaracja nie mieści się w jednej linii z powodu długiej listy nazw zmiennych, to należy ją rozdzielić na kilka linii, które (poza ostatnią) mają na końcu znak kontynuacji "\".

 

typ zmiennej PLC           - dowolny

typ zmiennej PC            - FLOAT

 

Parametry:

k           -   to minimalna liczba zmiennych poprawnie odczytanych ze sterownika, przy której uznaje się poprawność wartościowania funkcji, wartość 0 oznacza, że wszystkie zmienne muszą być odczytane poprawnie. Gdy liczba poprawnie odczytanych zmiennych jest mniejsza od zadeklarowanej, to funkcja zwraca wartość przypadkową ze statusem błędu.

Val_1,..Val_n          dowolnego typu, nazwy zmiennych Asmena.

 

Wartość funkcji jest obliczana następująco:

 

PCVal=Val_1+Val_2+..+Val_n

 

 

 

 

Funkcja SUWAK zeruje najstarszy bit przy odczycie wartości zmiennej procesowej ze sterownika, natomiast ustawia 1 na najstarszym bicie przy zapisie wartości zmiennej do sterownika. 

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - WORD

 

nie posiada parametrów

 

 Funkcja nie wykonuje operacji zapisu, jeśli została użyta dla zmiennej procesowej z kanału NONE, dla którego NIE zadeklarowano zapisu z czasem i statusem.

 

 

 

 

 

 

Funkcja SUWAK1 działa podobnie do funkcji ANALOG z następującymi różnicami:

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - WORD

 

Parametry (jak dla funkcji ANALOG):

MinPLCVal              - INTEGER        (wartość domyślna - 0)

MaxPLCVal             - INTEGER        (wartość domyślna - 2048)

MinPCVal               - INTEGER        (wartość domyślna - 0)

MaxPCVal              - INTEGER        (wartość domyślna - 2048)

 

 Funkcja nie wykonuje operacji zapisu, jeśli została użyta dla zmiennej procesowej z kanału NONE, dla którego NIE zadeklarowano zapisu z czasem i statusem.

 

 

 

 

 

Funkcja SUWAK1_FP działa podobnie do funkcji ANALOG_FP z następującymi różnicami:

 

typ zmiennej PLC           - WORD

typ zmiennej PC            - FLOAT

 

Parametry (jak dla funkcji ANALOG_FP):

MinPLCVal              - INTEGER        (wartość domyślna  0)

MaxPLCVal             - INTEGER        (wartość domyślna  2048)

MinPCVal               - FLOAT            (wartość domyślna  0.0)

MaxPCVal              - FLOAT            (wartość domyślna  2048.0)

 

 

 

 

 

Funkcja TAB2DOUBLE - zwraca double zbudowany na bazie wartości zmiennej tablicowej.

 

Parametry funkcji (oddzielone przecinkami):

a/ nazwa zmiennej tablicowej (rozmiar zmiennej tablicowej musi wynosić 8 bajtów)

b/ identyfikator typu konwersji (na razie tylko typ 1 – SENTRON)

c/ dzielnik  (domyślnie 1)

 

UWAGA:

- zmienna korzystająca z funkcji TAB2DOUBLE musi być w kanale NONE lub NETWORK,

- funkcja może być wykorzystana wyłącznie do odczytu.

 

 

Przykład

 

Przykłady użycia funkcji TAB2DOUBLE:

 

#  tablica 4-ech rejestrów HR jest rzutowana na DOUBLE

#

XXTAB, ,HR802, SENTRON, 4, 1, NIC

XXDBL, ,xxxx,  NONE,   1, 1, TAB2DOUBLE, XXTAB, 1, 1000

#  tablica 2-ch podwójnych rejestrów HRLM jest rzutowana na DOUBLE

#

XXTAB1, ,HRLM834, SENTRON, 2, 1, NIC_DW

XXDBL1, ,xxxx,  NONE,   1, 1, TAB2DOUBLE, XXTAB1, 1, 1000

 

 

 

 

 

TABELA przekształca wartość zmiennej źródłowej wg funkcji nieliniowej opisanej w tabeli przekazanej w pliku tekstowym, którego każda linia składa się z wartości zmiennej oraz przyporządkowanej jej wartości rzeczywistej. Linie rozpoczynające się od znaku # lub ; są ignorowane (mogą zawierać komentarz). Wartości pośrednie podlegają linearyzacji, w przypadku, gdy wartość źródłowa jest poza zakresem zadeklarowanym w pliku definicji funkcja zwraca błąd pomiaru. Zmienna, której przypisano funkcję TABELA musi być w kanale typu NONE.

 

Możliwe jest zadeklarowanie w sekcji Asmena ścieżki do kartoteki, w której będą przechowywane wszystkie tabele, używane przez funkcje przeliczające danej aplikacji - służy do tego celu pozycja:

 

SCIEZKA_TABEL=<ścieżka>

 

Funkcja zwraca wartość:

 

PCVal=f(PCVal_1)

gdzie:

PCVAL_1                 - to nazwa wcześniej zadeklarowanej zmiennej Asmena;

f(x)                         - funkcja zdefiniowana tabelarycznie w pliku tekstowym.

 

typ zmiennej PC            - FLOAT

 

Parametry:

PCVAL_1                - FLOAT|LONG|DWORD|WORD|INT16

plik_definicji           - tekst

 

PRZYKŁAD

 

Przykład deklaracji zmiennej:

 

AAA, Opis - zmienna AAA zależna od BBB, , NONE, 1, 1, TABELA,BBB,tablica1.txt

 

Przykład zawartości  pliku tablica1.txt definiującego tabelę:

                                    10 15.7

                                    20 21

                                    30 26.4

                                    40 32

                                    50 37.1

Jako separatora należy  użyć spacji lub tabulatora. Dla liczb ułamkowych jako separator dziesiętny musi być użyta kropka.

 

 

 

Znacznik czasu jest tworzony z wartości zmiennej, której nazwa jest pierwszym parametrem funkcji. Zakłada się, że:

 

- wartość surowa zmiennej jest typu DWORD,

- wartość zmiennej będącej pierwszym parametrem funkcji jest typu DWORD i zawiera liczbę sekund od 1.1.1970 lub 1.1.1980,

- typ znacznika czasu określa drugi parametr funkcji (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

LiczbaParametrow = 2

 

Parametr1 = Nazwa zmiennej, której wartość (musi być typu DWORD) zostanie skonwertowana na znacznik czasu zmiennej

Parametr2 = Typ czasu przekazanego w Parametr1 (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

 

Znacznik czasu jest tworzony z wartości zmiennej, której nazwa jest pierwszym parametrem funkcji. Zakłada się, że:

 

- wartość surowa zmiennej jest typu FLOAT,

- wartość zmiennej będącej pierwszym parametrem funkcji jest typu DWORD i zawiera liczbę sekund od 1.1.1970 lub 1.1.1980,

- typ znacznika czasu określa drugi parametr funkcji (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

LiczbaParametrow = 2

 

Parametr1 = Nazwa zmiennej, której wartość (musi być typu DWORD) zostanie skonwertowana na znacznik czasu zmiennej

Parametr2 = Typ czasu przekazanego w Parametr1 (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

 

 

Znacznik czasu jest tworzony z wartości zmiennej, której nazwa jest pierwszym parametrem funkcji. Zakłada się, że:

 

- wartość surowa zmiennej jest typu LONG,

- wartość zmiennej będącej pierwszym parametrem funkcji jest typu DWORD i zawiera liczbę sekund od 1.1.1970 lub 1.1.1980,

- typ znacznika czasu określa drugi parametr funkcji (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

LiczbaParametrow = 2

 

Parametr1 = Nazwa zmiennej, której wartość (musi być typu DWORD) zostanie skonwertowana na znacznik czasu zmiennej

Parametr2 = Typ czasu przekazanego w Parametr1 (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

 

Status zmiennej jest równy wartości zmiennej, której nazwa jest pierwszym parametrem funkcji. Znacznik czasu jest tworzony z wartości zmiennej, której nazwa jest drugim parametrem funkcji.

 

Zakłada się, że surowa zmienna jest typu DWORD.

 

LiczbaParametrow = 3

Parametr1 = Nazwa zmiennej, której wartość będzie zwrócona jako status OPC. Zmienna musi być typu BYTE

Parametr2 = Nazwa zmiennej, której wartość zawiera liczbę sekund od 1.1.1970 lub 1.1.1980 (w UTC). Zmienna musi byc typu DWORD

Parametr3 = Typ czasu przekazanego w Parametr2 (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

 

 

 

Status zmiennej jest równy wartości zmiennej, której nazwa jest pierwszym parametrem funkcji. Znacznik czasu jest tworzony z wartości zmiennej, której nazwa jest drugim parametrem funkcji.

 

Zakłada się, że surowa zmienna jest typu FLOAT.

 

LiczbaParametrow = 3

Parametr1 = Nazwa zmiennej, której wartość będzie zwrócona jako status OPC (zmienna musi być typu BYTE)

Parametr2 = Nazwa zmiennej, której wartość (musi byc typu DWORD) zawiera liczbę sekund od 1.1.1970 lub 1.1.1980 (w UTC)

Parametr3 = Typ czasu przekazanego w Parametr2 (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

 

 

Status zmiennej jest równy wartości zmiennej, której nazwa jest pierwszym parametrem funkcji. Znacznik czasu jest tworzony z wartości zmiennej, której nazwa jest drugim parametrem funkcji.

 

Zakłada się, że wartość surowa zmiennej jest typu LONG.

 

LiczbaParametrow = 3

Parametr1 = Nazwa zmiennej, której wartość będzie zwrócona jako status OPC. Zmienna musi być typu BYTE

Parametr2 = Nazwa zmiennej, której wartość zawiera liczbę sekund od 1.1.1970 lub 1.1.1980 (w UTC). Zmienna musi byc typu DWORD

Parametr3 = Typ czasu przekazanego w Parametr2 (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

 

 

 

WSREDNIA_Z_N zwraca aktualną wartość średniej ważonej zmiennych, wymienionych w liście jako parametry wraz z ich wagami. Parametry używa się parami: waga_zmiennej/wartość_zmiennej. Dodatkowym parametrem poprzedzającym listę wag i zmiennych, jest liczba określająca minimalną ilość par waga/zmienna, które muszą być prawidłowo odczytane, aby wynik funkcji miał status poprawny. Zmienne wymienione w liście parametrów mogą być różnego typu. Wartość funkcji jest konwertowana na typ FLOAT. Nie ogranicza się liczby zmiennych ani ich kolejności w deklaracji zmiennej, do której przypisano funkcję WSREDNIA_Z_N. Kolejne zmienne oddzielane są spacjami. W przypadku, gdy deklaracja nie mieści się w jednej linii z powodu długiej listy nazw zmiennych, to należy ją rozdzielić na kilka linii, które (poza ostatnią) mają na końcu znak kontynuacji "\".

 

typ zmiennej PLC           - dowolny

typ zmiennej PC            - FLOAT

 

Parametry:

k           -  to minimalna liczba par waga/zmienna poprawnie odczytanych ze sterownika, przy której uznaje się poprawność wartościowania funkcji, wartość 0 oznacza, że wszystkie zmienne muszą być odczytane poprawnie. Gdy liczba poprawnie odczytanych zmiennych jest mniejsza od zadeklarowanej, to funkcja zwraca wartość przypadkową ze statusem błędu.

waga_1,wart_1,..wart_n,waga_n        dowolnego typu, nazwy zmiennych Asmena.

 

Wartość funkcji jest obliczana następująco:

 

PCVal=(waga_1*wart_1+waga_2*wart_2+..+waga_n*wart_n)/(waga_1+waga_2+..+waga_n)

 

Przykład

 

Przykład deklaracji zmiennej Asmena:

 

SREDNIA_WAZONA, I0.2, KANAL1, 1, 1, WSREDNIA_Z_N, 0, WAGA_1 WART_1 WAGA_2 WART_2 WAGA_3 WART_3

 

 

 

 

Funkcja ZAKRES dokonuje konwersji wartości zmiennej procesowej odczytanej ze sterownika wg równania:

 

PCVal = MinPLCVal + (PLCVal - MinPCVal) * k

 

oraz konwersji wartości zmiennej procesowej przesyłanej do sterownika  wg równania:

 

PLCVal = MinPCVal + (PCVal - MinPLCVal) / k

 

gdzie:

k =  (MaxPLCVal - MinPLCVal)/(MaxPCVal - MinPCVal)      

PLCVal                           - zmienna w PLC

PCVal                             - zmienna w PC

 

typ zmiennej PLC            - FLOAT

typ zmiennej PC              - FLOAT

 

Parametry wg kolejności:

wartości min zakresu PC                    - FLOAT

wartości max zakresu PC                   - FLOAT

wartości min zakresu PLC                  - FLOAT

wartości max zakresu PLC                 - FLOAT

 

Przy użyciu kanału NONE, typ zmiennej jest ustawiany na FLOAT.

 

 

 

Wartość i status są kopią wartości i statusu zmiennej, której nazwa jest pierwszym parametrem funkcji, znacznik czasu jest tworzony z wartości zmiennej, której nazwa jest drugim parametrem funkcji. Zakłada się, że wartość drugiej zmiennej jest typu DWORD i zawiera liczbę sekund od 1.1.1970 lub 1.1.1980, typ znacznika czasu określa trzeci parametr funkcji (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

LiczbaParametrow = 3

 

Parametr1 = Nazwa zmiennej, której status i wartość będą zwrócone jako status i wartość

Parametr2 = Nazwa zmiennej (musi byc typu DWORD), której wartość zostanie skonwertowana na znacznik czasu zmiennej

Parametr3 = Typ czasu przekazanego w Parametr2 (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

 

 

 

Wartość i status są kopią wartości i statusu zmiennej, której nazwa jest pierwszym parametrem funkcji, znacznik czasu jest tworzony z wartości zmiennej, której nazwa jest drugim parametrem funkcji. Zakłada się, że:

        - wartość zmiennej określonej przez pierwszy parametr jest typu DWORD

        - wartość drugiej zmiennej jest typu DWORD i zawiera liczbę sekund od 1.1.1970 lub 1.1.1980,

        - typ znacznika czasu określa trzeci parametr funkcji (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

LiczbaParametrow = 3

 

Parametr1 = Nazwa zmiennej, której status i wartość będą zwrócone jako status i wartość (zmienna musi być typu DWORD)

Parametr2 = Nazwa zmiennej, której wartość (musi być typu DWORD) zostanie skonwertowana na znacznik czasu zmiennej

Parametr3 = Typ czasu przekazanego w Parametr2 (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

 

 

 

 

Wartość zmiennej jest kopią statusu zmiennej, będącej parametrem funkcji.

 

LiczbaParametrow = 1

 

Parametr1 = Nazwa zmiennej, której status będzie zwrócony jako wartość funkcji

 

 

 

 

Wartość jest kopią wartości zmiennej będącej pierwszym parametrem, status jest kopią statusu zmiennej będącej drugim parametrem, znacznik czasu jest tworzony z wartości zmiennej, której nazwa jest trzecim parametrem funkcji. Zakłada się, że wartość trzeciej zmiennej jest typu DWORD i zawiera liczbę sekund od 1.1.1970 lub 1.1.1980, typ znacznika czasu określa czwarty parametr funkcji (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)

 

LiczbaParametrow = 4

 

Parametr1 = Nazwa zmiennej, której wartość będzie zwrócona jako wartość zmiennej

Parametr2 = Nazwa zmiennej, której status będzie zwrócony jako status zmiennej

Parametr3 = Nazwa zmiennej (musi byc typu DWORD), której wartość zostanie skonwertowana na znacznik czasu zmiennej

Parametr4 = Typ czasu przekazanego w Parametr3 (0 - sekundy od 1.1.1970, 1 - sekundy od 1.1.1980)