Potrzebuje zautomatyzować zmieszanie wody w dwóch zbiornikach CWU.
Oba zbiorniki są połączone ze sobą tak by był jednym wielkim magazynem.
Oczywiście posiadają termometry.
Jeden zbiornik posiada pare grzałek i drugi także.
Problem w tym, że te grzałki służą do różnych automatyzacji.
Potrzebuje w krytycznym momencie przemieszać zawartość tych zbiorników tak by obniżyć ich temp.
I tu zrodził się problem. Na 1 procesie włączenia cyrkulacji jest ok. Natomiast nie wiem jak utworzyć flow by na 2 zbiornikach wzajemnie się nie wyłączały. Ponieważ np. gdy CWU 1 ma 80°C i proces włączy mieszanie, po 3 minutach opoznienia proces sprawdzi temp z CWU 1 ale także z CWU 2 i wyłączy cyrkulacje.
Problem pewnie prosty ale opis już nie
Opisz w prosty i wyczerpujący sposób co chcesz uzyskać.
Z tego obrazka nic nie wynika… tylko tyle, że nie kontrolujesz temp CWU1.
Problem jest na poziomie algorytmu a nie implementacji.
Dlaczego nie zrobiłeś tego na zasadzie pomiaru różnicy temperatur w obu zbiornikach?
Dwa zbiorniki CWU 1 CWU 2
Dwie różne automatyzacje sterują grzałkami i działa to ok.
Potrzebuje tylko zmieszać wodę w krytycznym momencie.
Odpada pomiar różnic z tego powodu, że zasobniki powinny mieć różnice.
Chcę tylko by gdy temp osiągnie pewną wartość pompka cyrkulacyjna zmieszała tę wodę.
I problem tak jak pisałem jest taki, że nie znam rozwiązania by
scenariusz:
CWU 2 ma wartość krytyczną → włącza pompkę → delay odczekuje 3 minuty - > ponownie sprawdzamy CWU 2 i następnie gdy mamy żądaną temp wyłącza pompkę. Jeśli nie to proces działa dalej.
Powyższe działa ok.
Natomiast jak spojrzysz na obrazek to:
timestamp odpytuje current state ( cwu 1 i cwu 2) i na podstawie tego wyzawala się call service.
Po 3 minutach odpytywane jest CWU 2, któro będzie mieć krytyczną wartość więc nie wyłączy się pompka. PROBLEMEM jest w tym przykłądzie i konfiguracji CWU 1, któro będzie miało np 19 i wyłączy proces. Następnie zadziała to od początku i będę miał tylko mieszanie 3 minuty…
Być może tak jest ale tego nie widać. Nie byłoby dyskusji gdybyś załączył źródło.
Wypisz wszystkie warunki przy których załącza się pompka i osobno warunki przy których wyłącza. Operuj na konkretach będzie łatwiej znaleźć wspólny język.
Gdy ustawisz timestamp na 3min to wystarczy sprawdzić powyższe warunki - czy spełniony jest pierwszy, drugi czy żaden. Obejdzie się wtedy bez delay