Wiemy już mniej więcej jak wyglądają parametry od strony programu przeglądającego i widzieliśmy kilka przykładów formuł. Ale tak naprawdę nie możemy zrobić ciągle niczego wartego uwagi; możemy robić parametry których wartości zależą od czasu, parametry które przyjmują wartości zależne od tego dla jakich średnich je liczymy, ale ciągle jest to za mało.
Potrzebna nam jest możliwość odwołania się w naszych formułach do innych parametrów programu SZARP. Przez inne parametry rozumiemy tutaj zarówno parametry zgromadzone w bazie danych SZARPa a także inne parametry definiowalne.
Szybki przykład, zróbmy parametr:
v = p("xxxx:Sieć:Sterownik temperatura zewnętrzna, t, pt)
Notatka: Tekstu p(...) nie wpisujemy, aby uzyskać żądany efekt, w oknie edycji parametru klikamy w przycisk <W> i pokazanej listy wybieramy wykres temperatury zewnętrznej, a dostaniemy to o co chodzi.
Wprowadzamy nowy parametr i widzimy, że ten nasz parametr jest wierną kopią parametru 'temperatura zewnętrzna'.
Co tu się dzieje?
W naszym parametrze odwołaliśmy się do wartości innego parametru. To właśnie robi konstrukcja p("xxxx:Sieć:Sterownik temperatura zewnętrzna, t, pt), a konkretnie funkcja p. Funkcja p pobiera wartości parametru, przyjmuje ona 3 parametry:
pierwszy to 'globalna nazwa parametru', znowu nie bardzo musimy sie przejmować co to dokładnie jest ponieważ tę nazwę dostaniemy od draw3 po wybraniu wykresu z listy
drugim parametrem jest czas
a trzecim rodzaj średniej
W drugim i trzecim argumencie chodzi dokładnie o to samo, co omawialiśmy w dwóch poprzednich punktach. Żeby pobrać wartość parametru trzeba określić o jaki czas oraz o jaką średnią nam chodzi, w ten sam sposób jak określa to draw3 gdy pyta nasz parameter o wartość.
W naszym wywołaniu p("xxxx:Sieć:Sterownik temperatura zewnętrzna, t, pt), jako czas podaliśmy wartość zmiennej t, a jako średnią wartość zmiennej pt. Czyli powiedzieliśmy, że chcemy uzyskać wartość temperatury zewnętrznej dla takiej chwili w czasie i takiej średniej, o jaką zapytał nasz parametr program przeglądający. Jeżeli program przeglądający zapyta - chcę średnią 10-minutową dla Twojego parametru dla godziny 08:40 - to nasz parametr zwróci 10-minutową średnią temperatury zewnętrznej dla 08:40.
Moglibyśmy też np. napisać p("xxxx:Sieć:Sterownik temperatura zewnętrzna, t, PT_MONTH) wtedy, niezależnie od tego o jaki rodzaj średnich zapyta nas program przeglądający, my będziemy zwracać średnią wartość miesięczną.
Uzbrojeni w tę wiedzę możemy już robić ciekawsze parametry, np. banalny parametr liczący średnią prędkość rusztu:
v = (p("xxxx:Kocioł 3:Sterownik:Prędkość lewego rusztu", t, pt) + p("xxxx:Kocioł 3:Sterownik:Prędkość prawego rusztu", t, pt)) / 2
Parametr określający zalecane otwarcie strefy:
local v1 = p("xxx:Kocioł 1:Sterownik:Długość strefy spalania", t, pt) if v1 < 3 then v = 0 else if v1 > 4 then v = 100 else v = (v1 * 100) % 300 end end
Poprzedni | Spis treści | Następny |
Średnie, zmienna 'pt'. | Początek rozdziału | Podróże w czasie. |