description

Lančana logika (na primer zalivanje)

Ažurirano 3/12/2024, 7:03:17 PM

Uvod

U ovom članku ćemo se baviti time, kako možemo da naapravimo lančanu logiku u Chameleon sistemu. Ovu vrstu logike možemo da koristimo za panjenje svetala jedno posle drugog, za pokretanje zalivanja krug po krug po redosledu, ili za bilo kakav sistem, gde određena radnja zavisi od nekog prethodnog stanja.

 

Kod kreiranja logike ćemo koristiti automatizaciju po vremenkoj osnovi, trigger based automatizaciju, virtual switch-eve za čuvanje stanja i naravno fizičke prekidače na samim uređajima (releje).

 

Slike koje prikazuju proces su predstavljene na osnovu postojećeg sistema, gde postoje 2 različite sekvence zalivanja/kapanja i obe počinju samo jednom u toku dana, ali u različito vreme.

Prilikom kreiranja sistema na raspolaganju imamo i meteorološku stanicu iz koje možemo da saznamo koliko je kiše palo u datom danu, pošto ako ima dovoljne količine padavina, nije nam potrebno dodatno zalivanje tog dana. Umesto meteorološke stanice, možemo da koristimo čak i senzor kiše od plute (npr. Hunter Rain-klik) ili senzor sa suvim kontaktom. Za napredne programere, čak i besplatna open source vremenska usluga, online, sa REST API integracijom može biti prikladna, koja prebacuje virtuelni prekidač u aktivno stanje u slučaju očekivane kiše.

Kreiranje logike:

Prvo nam je potreban trigger, koji će odlučiti kojim danima, u koje vreme da se pokreće prvi krug. Na donjoj slici se vidi da će dva kruga zalivanja da se pokreće svaki dan, ako se svi uslovi stvore. Prvi će svaki dan u 23 a drugi u 4 sata:

1

 

Vremenska automatizacija će uključivati po 1 virtual switch, koji ćemo mi koristiti kao uslov kasnije. S obzirom da koristimo samo za pokretanje ovo “skladište logike”/virtual switch, zato treba da stavimo po jedan Turn-off timer, koji će i da isključi ovaj signal za pokretanje. To nam je potrebno, zato što se sekvenca pokretanja ne bi mogla da se pokrene sledeći dan, a i mogao bi da napravi problem, da bi se kod prvog kruga ispunilo svaki uslov (naravno, ako ne pada kiša). Treba znači da podesimo virtual switch, sa turn-off tajmerom, koji možemo da unesemo u gore pomenutu logiku kao reakcioni aktuator (na donjoj prvoj slici se vidi postavljanje u logiku, logičkom 1-com uključimo VSW, a na drugoj slici podesimo Turn-off tajmer za njega:

2

 

3

 

Pored virtual switch-a kojim pokrećemo treba da napravimo bar “(broj krugova-1)” pomoćni rele/virtual switch, s obzirom da kod poslednjeg kruga isključujemo samo pomoćni relej pretposlednjeg kruga i uključujemo megnetni ventil poslednjeg kruga.

 

4

 

Na gornjoj slici nedostaje virtual switch zone 6 i 12, pošto nam oni nisu potrebni, s obzirom da su oni poslednji krugavi datih sekvenca.

 

 Ako je potrebno, možemo uneti i opciju zabrane/onemogućivanja, koji bi mogli na primer na zimu da isključimo. Ako želimo da budemo sigurni, da neki restart kontrolera ne stavi zabranu u off stanje (zaboravi), onda možemo da napravimo  Timetable automatiku, kojim ćemo moći svaki dan da proverimo zabranu (za svaki slučaj), koju Timetable logiku naravno možemo isključiti.

 

Ako nam je potrebna takva automatika, (na primer zimi) onda vredi da se aktivira/deaktivira direktno Timetable automatika, ako treba da onemogućimo ili omogućimo, tako nećemo morati da pritiskamo direktno Virtual Switch.

 

Za detekciju kiše možemo koristiti NONC signal, koji je u slučaju aktivnog stanja isto biti signal onemogućavanja, ili u slučaju meteorološke stanice možemo koristiti uslov koji prati dnevnu količinu kiše, npr. ako je dnevna kiša manja od "x" mm, onda logika može da funkcioniše. Ali inače, postoji još jedna opcija za ovo, ako, recimo, isključimo automatski tajmer sa signalom za pokretanje dok ne želimo da zalivamo.

 

Dakle, hajde da započnemo prvi krug, koristeći Trigger based automatizaciju. Pošto Timetable automatizacija ionako odlučuje, možemo dodati “Any time” vremenskim uslovima Triggera, ali ako želimo da budemo sigurni, možemo da suzimo uslov „bilo kada“ na interval u koji spada i trigger vreme Timetable-a:

Auto-off ovde ne koristimo, pošto bi pokvarila lančanu logiku, umeto toga ćemo kanije pričati o tome, kako možemo da podesimo vremensku dužinu određenih krugova!

 

5

 

Trigger uslovi za prvu automatizaciju (zapamtite da postoji “i” logika među uslovima Trigger based automatizacije, tako da svi uslovi moraju biti ispunjeni u isto vreme!):

 

6

13

 

Aktuatori koji reaguju na automatiku kod prvog pravila:

 

7

 

Na poslednjoj slici relej koji pokreće zonu 1 fizički uključuje elektromagnetni ventil na koji treba da stavimo Turn-off tajmer, što će nam biti od velike koristi, jer na ovaj način možemo odrediti koliko dugo će trajati zalivanje za dati krug. Nemojte stavljati Turn-off tajmer na virtuelni relej/pomoćni relej (kao i na sam tajmer za automatsko isključivanje), jer će to biti potrebno za lančanu logiku.

Kasnije ćemo ispitati kada je istekao Turn-off tajmer fizičkog releja, ali i kada je VSW koji pripada zoni u logičkom ON stanju. Zbog toga je takođe važno da virtuelni pomoćni relej ne bude automatski isključen, već da krug koje je sledeće u redu isključuje pomoćni relej prethodnog kruga.

Ovako izgleda vremensko podešavanje zona, koji krug koliko da zaliva u sekundima:

8

 

Trigger automatika sledećeg, u ovom slučaju drugog kruga izgleda ovako:

9

 

Triggeri na početku drugog kruga ovako izgledaju:

U ovom primeru, pre početka svakog kruga, proveravam zabranu da vidim da li je krajnji korisnik uključio do tada, ali na primer, sada ne pratimo kišu na početku svakog kruga, već samo kod prvog. Ne pratimo kišu na početku svakog kruga, jer ako koristimo logiku NO, na primer Hunter Rain-klik, a kiša padne baš tokom zalivanja, logika se zaglavljuje i ponovo će krenuti tek kada se senzor osuši.

 

14

10

15

 

Kod aktuatora, automatika drugog kruga treba da isključi pomoćni relej prvog kruga, da logika drugog kruga ne bi uvek bilo “istina (True)”, kao i da bi ona mogla i sledeći put da odradi automatizaciju. Pomoćni relej svog kruga treba da uključi, koji će sledeći krug moći da proverava kao uslov:

 

11

 

Ovo ponavljamo dok ne dođemo do poslednjeg kruga (ovde resetujemo samo pomoćni relej prethodnog kruga i aktiviramo kontaktor poslednjeg, koji će se isključiti posle x vremena sa Turn-off tajmerom, i logika je gotova):

 

12

Sledeća tabela vam može pomoći u tome kako se aktuatori datih krugova automatike menjaju:

ON znači, da dajemo logičku 1-icu datom releju (može da bude i virtuelni rele).
"x minuta" znači relej koji ima turn-off timer (može da bude i virtuelni).
OFF znači, da je data automatika isključila određeni relej (može da bude i virtuelni).

tabela

Lančana logika je gotova.