On/Off na zegarze problem

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
pritu
Posty: 3
Rejestracja: 18 gru 2014 01:58
Wersja środowiska: LabVIEW 2012

On/Off na zegarze problem

Post autor: pritu »

Witam
Mam problem z stworzeniem kodu, który umożliwiałby mi załączanie i wyłączanie w określonym czasie. A dokładniej zegar 24h/ lecz w szybszej wersji 60 s . 10 s off 50s on. Czy ktoś mógłby mi podpowiedzieć z czego powinienem skorzystać ? Próbuję na timed loop lecz nie wychodzi mi zbyt oraz elapsed time otoczonej pętlą while. To drugie przy testach bardziej chyba odpowiada tym wymaganiom lecz skonfigurowanie graniczy z cudem

Pozdrawiam
SNT
Posty: 56
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

On/Off na zegarze problem

Post autor: SNT »

While loop, moim zdaniem najlepiej mieć timer restartujący się co 60 s i jeden warunek: jeżeli większe lub równe 50 to true.
may
Posty: 96
Rejestracja: 20 lut 2012 12:30
Wersja środowiska: LabVIEW 2014
Lokalizacja: Katowice / Ruda Śląska

Re: On/Off na zegarze problem

Post autor: may »

A może po prostu potrzebujesz wziąć aktualny czas systemowy i sprawdzić czy sekunda jest mniejsza czy większa niż 10? Możesz to zrobić albo dzieląc czas modulo 60 (patrz załącznik), albo wyciągając z niego wartość sekund aktualnej godziny.
Załączniki
10OFF50ON.png
10OFF50ON.png (3.58 KiB) Przejrzano 11321 razy
Obrazek
TMa
Posty: 203
Rejestracja: 07 sty 2010 12:56
Wersja środowiska: LabVIEW 2017

Re: On/Off na zegarze problem

Post autor: TMa »

A nie prościej zwykła while loop jak w załączniku. Nie obciążamy procka. Minimalna ilość kodu. A prosty benchmarking pokazuje dokładność na poziomie 1 ms.
Załączniki
solution.png
solution.png (12.02 KiB) Przejrzano 11319 razy
benchmark.png
benchmark.png (21.68 KiB) Przejrzano 11319 razy
may
Posty: 96
Rejestracja: 20 lut 2012 12:30
Wersja środowiska: LabVIEW 2014
Lokalizacja: Katowice / Ruda Śląska

On/Off na zegarze problem

Post autor: may »

TMa, nie do końca zrozumiałem czy twoja odpowiedź odnosi się do pytania pritu czy do mojej propozycji "rozwiązania"? W jaki sposób twoja kręcąca się co sekundę pętla ma spowodować, że coś będzie przez 10 sekund wyłączone a przez 50 włączone?

pritu, mógłbyś może jakoś dokładniej sprecyzować czego tak naprawdę potrzebujesz? Timed loop jest tak naprawdę do czegoś innego więc twoje informacje o trudnościach z konfiguracją nie wnoszą niczego konstruktywnego w pytanie. Napisz dokładnie jak to włączanie / wyłączanie ma wyglądać.
Obrazek
TMa
Posty: 203
Rejestracja: 07 sty 2010 12:56
Wersja środowiska: LabVIEW 2017

On/Off na zegarze problem

Post autor: TMa »

TMa, nie do końca zrozumiałem czy twoja odpowiedź odnosi się do pytania pritu czy do mojej propozycji "rozwiązania"? W jaki sposób twoja kręcąca się co sekundę pętla ma spowodować, że coś będzie przez 10 sekund wyłączone a przez 50 włączone?
Do mojej propozycji wystarczy podpiąć do terminala "i" część kodu z twojego rozwiązania (tę obliczającą resztę i komparator).

W rozwiązaniu may start mamy nieustalony. Pierwszy stan nie ma zdefiniowanej długości, ponieważ dąży do pełnej minuty. Potem kod działa na całkowitych minutach systemowych a nie minutach wzg startu aplikacji. Nie wspomnę że proces przy wejściu do takiej petli wykonuje ją conajmniej kilkadziesiąt razy na sekundę - przez co staje się niedokładny (zależny od momentu wykonania).
Ostatnio zmieniony 18 gru 2014 12:57 przez TMa, łącznie zmieniany 1 raz.
pritu
Posty: 3
Rejestracja: 18 gru 2014 01:58
Wersja środowiska: LabVIEW 2012

On/Off na zegarze problem

Post autor: pritu »

Panowie robię projekt inteligentnego domu. Zakładamy że rolety na noc się zamykają i otwierają. Lecz by osoba która widzi ten projekt nie czekała pol dnia aż rolety się zamkną, trzeba ten proces przyśpieszyć. Podobnie muszę zrobić np z czajnikiem który po otwarciu rolet załączy się na 5 s i wyłaczy, a następne jego załączenie będzie dopiero przy ponownym otwarciu rolet. A dodając jeszcze w nocy która będzie trwać 10 sekund ma się załączyć światło w jednym pokoju, lecz to już będzie kosmetyka bo podepnę się pod rolety
Awatar użytkownika
semper fidelis
Posty: 74
Rejestracja: 28 paź 2014 20:45
Wersja środowiska: LabVIEW 2013

Re: On/Off na zegarze problem

Post autor: semper fidelis »

Moja propozycja w zalaczniku.

Prosta realizacja state machine ktora trwa okreslona ilosc czasu. Pozniej mozesz przejsc do dowolnego Case i tam wrzucic petle ktora bedzie znow wykonywac sie przez okreslony czas i kolejne przejscie.

W przykladzie w kolko 50s pozniej 10s.
Załączniki
state machine - time elapsed.vi
(11.46 KiB) Pobrany 368 razy
Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i to robi...
pritu
Posty: 3
Rejestracja: 18 gru 2014 01:58
Wersja środowiska: LabVIEW 2012

Re: On/Off na zegarze problem

Post autor: pritu »

semper fidelis pisze:Moja propozycja w zalaczniku.

Prosta realizacja state machine ktora trwa okreslona ilosc czasu. Pozniej mozesz przejsc do dowolnego Case i tam wrzucic petle ktora bedzie znow wykonywac sie przez okreslony czas i kolejne przejscie.

W przykladzie w kolko 50s pozniej 10s.


A bęziesz tak dobry i podasz mi screena bądź w wersji 12, iż takową posiadam tylko i nie mogę otworzyć
Awatar użytkownika
semper fidelis
Posty: 74
Rejestracja: 28 paź 2014 20:45
Wersja środowiska: LabVIEW 2013

Re: On/Off na zegarze problem

Post autor: semper fidelis »

Daje w wersji 12.
Załączniki
state machine - time elapsed.vi
(7.72 KiB) Pobrany 380 razy
Gdy wszyscy wiedzą, że coś jest niemożliwe, przychodzi ktoś, kto o tym nie wie, i to robi...
ODPOWIEDZ