Linijka swietlna
Linijka swietlna
Witam,
Jak zwykle raczkujacy maja wiele "glupich pytan" tak wiec poprosze o wyrozumialosc "wyjadaczy"...
Mam to szczescie, ze moge sie "pobawic"LabView 2012" bez spianania i jakichs wiekszych zobowiazan.
Postawilem sobie na razie poprzeczke na zadaniu wykonania prostej, kilku LEDowej linijki, ktora bede pozniej rozwijal w bardziej skomplikowany schemat.
Jak na obecna chwile ma to dzialac:
Zadaje wartosci kontrolka Nr_1 (dowolne "calkowite")
1) w zakresie x<=0 - kontrolka B_0 ma mrugac na czerwono, pozostale maja pozostac "martwe"
2) zmina x=1 - kontrolka B_0 ma zmienic kolor na "constant" zielony, kontrolka B_1 ma mrugac na zielono, pozostale maja pozostac "martwe"
3) zmiana x=2 - kontrolka B_0, B_1 - "constant" zielone, B_2 mruga na zielono, reszta "martwa"
4) zmiana x=3 - kontrolka B_0, B_1, B_2 - "constant" zielone, B_3 - mruga na zielono, reszta "martwa"
5) zmiana x=4 - kontrolka B_0, B_1, B_2, B_3 - "constant" zielone, B_4 - mruga na zielono, B_5 "martwa"
6) zmiana x=5 - kontrolka B_0, B_1, B_2, B_3, B_4 - "constant" zielone, B_5 - mruga na zielono,
7) zmiana x=6 - wszystkie kontrolki swieca zielono
8) opcja x=7 - dodatkowa kontrolka czerwona z napisem "zwariowales?"
Takie sobie niby banalne (niestety nie dla mnie ) zadanie a kilka prob jakie zrobilem daja mi dziwne zachowanie (na schemacie zalaczylem 2 rozwiazania jakie probowalem - kontrolki B_0 - B_3 w ukladzie petli i drugie - reszta z "systemowym rozwiazaniem "blinking".
Czy ktos moglby laika (mnie) troche naprowadzic gdzie robie blad w moim schemacie ze jakos nie chce mi dzialac i ewentualnie naprostowac na co mam zwrocic uwage?
Jak zwykle raczkujacy maja wiele "glupich pytan" tak wiec poprosze o wyrozumialosc "wyjadaczy"...
Mam to szczescie, ze moge sie "pobawic"LabView 2012" bez spianania i jakichs wiekszych zobowiazan.
Postawilem sobie na razie poprzeczke na zadaniu wykonania prostej, kilku LEDowej linijki, ktora bede pozniej rozwijal w bardziej skomplikowany schemat.
Jak na obecna chwile ma to dzialac:
Zadaje wartosci kontrolka Nr_1 (dowolne "calkowite")
1) w zakresie x<=0 - kontrolka B_0 ma mrugac na czerwono, pozostale maja pozostac "martwe"
2) zmina x=1 - kontrolka B_0 ma zmienic kolor na "constant" zielony, kontrolka B_1 ma mrugac na zielono, pozostale maja pozostac "martwe"
3) zmiana x=2 - kontrolka B_0, B_1 - "constant" zielone, B_2 mruga na zielono, reszta "martwa"
4) zmiana x=3 - kontrolka B_0, B_1, B_2 - "constant" zielone, B_3 - mruga na zielono, reszta "martwa"
5) zmiana x=4 - kontrolka B_0, B_1, B_2, B_3 - "constant" zielone, B_4 - mruga na zielono, B_5 "martwa"
6) zmiana x=5 - kontrolka B_0, B_1, B_2, B_3, B_4 - "constant" zielone, B_5 - mruga na zielono,
7) zmiana x=6 - wszystkie kontrolki swieca zielono
8) opcja x=7 - dodatkowa kontrolka czerwona z napisem "zwariowales?"
Takie sobie niby banalne (niestety nie dla mnie ) zadanie a kilka prob jakie zrobilem daja mi dziwne zachowanie (na schemacie zalaczylem 2 rozwiazania jakie probowalem - kontrolki B_0 - B_3 w ukladzie petli i drugie - reszta z "systemowym rozwiazaniem "blinking".
Czy ktos moglby laika (mnie) troche naprowadzic gdzie robie blad w moim schemacie ze jakos nie chce mi dzialac i ewentualnie naprostowac na co mam zwrocic uwage?
- Załączniki
-
- mrugajaca_linia.vi
- Schemat_linijki
- (10.03 KiB) Pobrany 316 razy
Linijka swietlna
Jako, ze wciaz dzialam znalazlem kilka swoich bledow, ale wciaz nie uzyskalem efektu koncowego ;(
Zalaczam nowa wersje moich wypocin.
Niestety juz widze ze w tej wersji kolejnosc wykonania petli nie do konca jest prawidlowa
Zalaczam nowa wersje moich wypocin.
Niestety juz widze ze w tej wersji kolejnosc wykonania petli nie do konca jest prawidlowa
- Załączniki
-
- mrugajaca_linia_ver_2.vi
- (26.19 KiB) Pobrany 313 razy
Linijka swietlna
Czy jesteś pewien, że do tego potrzeba 6 pętli?! Musi dać się w jednej. I te diody bym zebrał w jakiś Cluster.
Chyba, że chcesz potem rozwinąć jakieś inne funkcjonalności w każdej z nich, wtedy konieczny jest jakiś sposób zatrzymywania całego programu (notifier, jakaś zmienna).
Chyba, że chcesz potem rozwinąć jakieś inne funkcjonalności w każdej z nich, wtedy konieczny jest jakiś sposób zatrzymywania całego programu (notifier, jakaś zmienna).
-
- Posty: 20
- Rejestracja: 03 sty 2015 11:06
- Wersja środowiska: LabVIEW 2013
Re: Linijka swietlna
Wydaje mi się, że dobrałeś nieco złą architekturę do rozwiązania. Lepszym rozwiązaniem byłoby wykorzystanie maszyny stanów dla całości (jedna pętla obsługuje wszystkie diody) lub osobnej pętli dla każdej diody (tak jak obecnie) z tym, że w każdej z tych pętli znajduje się maszyna stanów.
Linijka swietlna
wcześniej myślałem, ze da się bez pętli (pierwsza próba tak wyglądała jak część kodu w pierwszym programie) ale w zamyśle docelowo każda dioda ma pełnić "niezależne" funkcje i dlatego umieściłem je w niezależnych pętlach (które będę jeszcze rozwijał o dodatkowe funkcje).
Niestety nie mam doświadczenia w tworzeniu maszyny stanów więc nie za bardzo wiem o czym mowa ;(
Co do umieszczania wszystkich diod w jednym clustrze to tak jak pisałem muszę je mieć "dostępne niezależnie" a z tego co wiem to cluster narzuca podobne zachowanie dla wszystkich diod... (chyba, że jako laik jestem w błędzie - wtedy chętnie bym usłyszał jakąś konstruktywną podpowiedź)
Na razie walczę dalej... (sam jestem ciekaw co mi wyjdzie )
Niestety nie mam doświadczenia w tworzeniu maszyny stanów więc nie za bardzo wiem o czym mowa ;(
Co do umieszczania wszystkich diod w jednym clustrze to tak jak pisałem muszę je mieć "dostępne niezależnie" a z tego co wiem to cluster narzuca podobne zachowanie dla wszystkich diod... (chyba, że jako laik jestem w błędzie - wtedy chętnie bym usłyszał jakąś konstruktywną podpowiedź)
Na razie walczę dalej... (sam jestem ciekaw co mi wyjdzie )
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: Linijka swietlna
To może garść linków na początek na zachętę:
NI Getting Started
LabVIEW Introduction Course - Three Hours
LabVIEW Introduction Course - Six Hours
Self-Paced Video Training for Students
I parę porad z rękawa:
1) Nie szalej z tymi pętlami. Jedna pętla naprawdę Ci wystarczy. Poskładaj te sześć pętli w jedną. Przy okazji pozbędziesz się local variables.
2) Nigdy, przenigdy nie używaj Abort Execution (czerwonej kropy na pasku), żeby zatrzymywać VIja. Dodaj jakiś przycisk Stop zamiast stałej False w warunku pętli. To przy okazji spowoduje, że sam szybko porzucisz użycie tylu pętli (aż nie nauczysz się sposobów komunikacji między nimi).
3) Analogicznie - nigdy, przenigdy nie używaj Run Continously.
NI Getting Started
LabVIEW Introduction Course - Three Hours
LabVIEW Introduction Course - Six Hours
Self-Paced Video Training for Students
I parę porad z rękawa:
1) Nie szalej z tymi pętlami. Jedna pętla naprawdę Ci wystarczy. Poskładaj te sześć pętli w jedną. Przy okazji pozbędziesz się local variables.
2) Nigdy, przenigdy nie używaj Abort Execution (czerwonej kropy na pasku), żeby zatrzymywać VIja. Dodaj jakiś przycisk Stop zamiast stałej False w warunku pętli. To przy okazji spowoduje, że sam szybko porzucisz użycie tylu pętli (aż nie nauczysz się sposobów komunikacji między nimi).
3) Analogicznie - nigdy, przenigdy nie używaj Run Continously.
-
- Posty: 20
- Rejestracja: 03 sty 2015 11:06
- Wersja środowiska: LabVIEW 2013
Re: Linijka swietlna
Na szybko zrobiłem coś takiego. Myślę, że mniej więcej obrazuje ideę wykorzystania maszyny stanów w tym przypadku.
- Załączniki
-
- main.vi
- (11.64 KiB) Pobrany 309 razy
Linijka swietlna
@robertmmarek Ja uważam, że znacznie lepiej wziąć te diody w Cluster. Nie trzeba się wtedy do nich odwoływać przez referencję, a już na pewno nie trzeba wpisywać wartości przez Property Node (co jest uważane za złą praktykę programistyczną i stosuje się w ostateczności).
Odnosząc się do wątpliwości autora wątku: Cluster, w przeciwieństwie do tablicy, nie narzuca takie samego zachowania kontrolek/indykatorów, za to pozwala znacznie uporządkować schemat i ułatwić operacje na tych diodach.
Odnosząc się do wątpliwości autora wątku: Cluster, w przeciwieństwie do tablicy, nie narzuca takie samego zachowania kontrolek/indykatorów, za to pozwala znacznie uporządkować schemat i ułatwić operacje na tych diodach.
-
- Posty: 20
- Rejestracja: 03 sty 2015 11:06
- Wersja środowiska: LabVIEW 2013
Linijka swietlna
Property node raczej muszą być wykorzystywane z powodu wymogu zmiany koloru kontrolki. Oczywiście do zmiany wartości kontrolki property node już takie konieczne nie jest
Linijka swietlna
Uff, trochę się tu nazbierało informacji.
Wielkie Dzięki za podpowiedzi i za linki. Muszę teraz to przetrawić - a jest tego sporo
Jeszcze raz dziękuję i poproszę o trochę czasu na poprawki zanim będę mógł się pochwalić postępami
;)
Wielkie Dzięki za podpowiedzi i za linki. Muszę teraz to przetrawić - a jest tego sporo
Jeszcze raz dziękuję i poproszę o trochę czasu na poprawki zanim będę mógł się pochwalić postępami
;)