6.3. Przykłady formuł definiowalnych DRAWDEFINABLE

Poniżej zaprezentowanych zostanie kilka przykładów formuł definiowalnych wraz z komentarzami. Prezentowana składnia jest składnią dla parametrów typu DRAWDEFINABLE, ale sposób formułowania wzorów jest identyczny dla formuł typu RPN. Dla czytelności formuły zostały podzielone na wiele linii, jednakże w IPK należy je wpisywać w jednej linii.

  1. Składanie dwóch parametrów z bazy SZARP-a w jeden parametr o podwójnej długości:

    (*:*:przepływ aktualny msw) (*:*:przepływ aktualny lsw) :
                            
    Jest to bardzo przydatna możliwość przy konieczności przechowywania w bazie wartości dłuższych niż 16 bitów - dzięki operatorowi : można na wykresie zaprezentować rzeczywistą, 32-bitową wartość mimo, iż w bazie trzymana jest ona jako dwa parametry o mniejszej długości.

  2. Ustalenie wartości binarnej w zależności od wyniku porównania:

    0 1 (Sieć:Sterownik:moc odpływu 1) (*:*:Moc odcięcia TSWL) < ?f
                            
    Przykładowy parametr przyjmuje wartość 0, jeśli dany odpływ pracuje z mocą mniejszą od mocy odcięcia, a 1 w przeciwnym wypadku. Łatwo zauważyć, że możliwy jest następujący zapis równoważny:
    (Sieć:Sterownik:moc odpływu 1) (*:*:Moc odcięcia TSWL) >
                            

  3. Parametr przyjmujący różne wartości w lecie i w zimie:

    200 100 S ?f
                            
    Powyższy parametr przyjmie wartość 200 w sezonie zimowym, a wartość 100 w sezonie letnim.

  4. Zastępowanie wartości NO_DATA wartością 0:

    (*:*:Finansowa strata na Twy TSWL) 0 N 
    (*:*:Finansowa strata energii przesyłu TSWL) 0 N +
                            
    W przedstawionym przykładzie sumowane są dwa parametry, przy czym w przypadku każdego z nich w razie wystąpienia wartości NO_DATA, zastępowana jest ona wartością 0. Jeżeli liczba parametrów branych do sumowania byłaby znacząco większa, warto by było rozważyć skorzystanie z funkcji 4 operatora $.

  5. Warunkowe nadawanie parametrowi wartości NO_DATA:

    (*:*:Odchyłka Twy) (*:*:QS_70) * 4 * 100 / X (*:*:Praca ciepłowni) ?f
                            
    Przykładowy parametr przyjmuje rzeczywistą wartość tylko wtedy, gdy parametr "Praca ciepłowni" ma wartość 1, w przeciwnym wypadku przyjmuje wartość NO_DATA, co jest dobrym sposobem zasygnalizowania wystąpienia przypadku, w którym wyliczenie danego parametru nie miałoby sensu.

  6. Sprawdzanie czy parametr przyjmuje konkretną, z góry ustaloną wartość:

    (Sieć:Przepływy:praca pompy przewałowej nr 1) 0 > 
    (Sieć:Przepływy:praca pompy przewałowej nr 2) 0 > 
    + 0 ~
                            
    Powyższy przykład pokazuje sposób na sprawdzenie czy obie pompy jednocześnie nie pracują (jest to rzeczywisty przykład z konfiguracji jednego z systemów ciepłowniczych i pozwala on na stwierdzenie, czy zawór obejścia pomp przewałowych jest otwarty).

  7. Wartość parametru zależna od stanu konkretnego bitu w innym parametrze:

    240 150 (*:*:zakodowany stan wejść logicznych) 2 2 7 $ ?f
                            
    W podanym przykładzie wywoływana jest funkcja numer 7 operatora $ w celu wydobycia z zakodowanego stanu wejść logicznych stanu drugiego bitu. Jeśli bit ten ma wartość 1, to parametr przyjmuje wartość 240, w przeciwnym wypadku przyjmuje wartość 150. Powyższy przykład również jest rzeczywistym przykładem zaczerpniętym z działającej konfiguracji jednego z systemów ciepłowniczych - takie konstrukcje wykorzystywane są np. w celu interpretacji wartości będących mapami bitowymi przesyłanych przez regulatory.

  8. Zliczanie parametrów nie mających wartości NO_DATA:

    3 (Paca 6:WCW:Przepływ upustowy na węźle Paca 6) 
    (WP-6:WCW:Przepływ upustowy na węźle WP-6) (WP-3:WCW:Przepływ upustowy na węźle WP-3) 
    4 5 $
                            
    W podanym przykładzie zliczanie odbywa się na trzech parametrach dla większej jego czytelności, jednak w rzeczywistych przypadkach w konfiguracjach zazwyczaj zliczanie przebiega na co najmniej kilkunastu wartościach.

  9. Sumowanie dużej ilości parametrów:

    3 (WG-6:WCW:Przepływ recyrkulacji na węźle WG-6) 
    (WG-4:WCW:Przepływ recyrkulacji na węźle WG-4) (WG-9:WCW:Przepływ recyrkulacji na węźle WG-9) 
    4 4 $
                            
    W podanym przykładzie sumowanie odbywa się na trzech parametrach dla większej jego czytelności, jednak w rzeczywistych przypadkach w konfiguracjach zazwyczaj sumowanie przebiega na co najmniej kilkunastu wartościach.

  10. Ograniczanie wartości parametru tylko do wartości nieujemnych:

    (*:*:Przepływ wody przez węzeł WG-9) 
    (*:WCO:Temp. wody powr. za obejściem WG-9) (*:*:Temp. wody powr. przed obejściem WG-9) - 
    (*:*:Temperatura wody z ciepłowni WG-9) (*:WCO:Temp. wody powr. za obejściem WG-9) - 
    / * 1 3 $
                            
    W powyższym przykładzie wyliczana jest wydajność, która z oczywistych względów nie może być ujemna, więc jej wartość została ograniczona tylko do wartości nieujemnych przy użyciu funkcji 3 operatora $.

  11. Wyznaczanie prognozowanej zmiany temperatury w nadchodzącym okresie:

    (Klawiatura::Pogoda) (Klawiatura::Prędkość wiatru) 
    (Klawiatura::Średnia temperatura zewnętrzna przedost doby) 
    (Klawiatura::Średnia temperatura zewnętrzna ostatniej doby) 
    (Klawiatura::Średnia temperatura zewnętrzna dla bieżącej doby) 
    + + 30 / 
    3 0 $ 
    1 1 $ 
    10 * 
    (Klawiatura::Pogoda) (Klawiatura::Prędkość wiatru) 
    (Klawiatura::Średnia temperatura zewnętrzna przedost doby) 
    (Klawiatura::Średnia temperatura zewnętrzna ostatniej doby) 
    (Klawiatura::Średnia temperatura zewnętrzna dla bieżącej doby) 
    + + 30 / 
    3 0 $ 
    1 2 $ 
    10 * - 
    (Klawiatura::Przepływ obliczeniowy) (Klawiatura::Przepływ rzeczywisty) / 1 - * 2 / 
                            
    W powyższym przykładzie prognozowana zmiana temperatury w nadchodzącym okresie wyliczana jest na podstawie współczynnika Fi (funkcja 0 operatora $), obliczonej temperatury zasilania (funkcja 1 operatora $) oraz powrotnej (funkcja 2 operatora $).