sygnalizacja świetlna na skrzyżowaniu

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Adan1995183
Posty: 4
Rejestracja: 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

sygnalizacja świetlna na skrzyżowaniu

Post autor: Adan1995183 »

Witam prosiłbym o pomoc w realizacji sygnalizacji świetlnej w programie labview. Sygnalizacja świetlna musi zawierać dwa sygnalizatory dla aut i dwa dwa sygnalizatory dla pierwszych po jednej i po drugiej stronie. Przy czym przy sygnalizatorach dla pierwszych muszą być przyciski do zmiany światła dla pierwszego. Sygnalizacje należałoby wykonać za pomocą konstrukcji sekwencyjnej Flat seqance.
Załączniki
syg.vi
(7.59 KiB) Pobrany 397 razy
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: PiDi »

Proponuję zacząć tutaj: http://www.ni.com/academic/students/learn-labview/

Tylko nie bardzo rozumiem to wymaganie:
Sygnalizacje należałoby wykonać za pomocą konstrukcji sekwencyjnej Flat seqance.
Za takie coś to karne spaghetti dla autora [-(
ObrazekObrazekObrazekObrazek
Adan1995183
Posty: 4
Rejestracja: 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

sygnalizacja świetlna na skrzyżowaniu

Post autor: Adan1995183 »

Tylko nie bardzo rozumiem jak ma mi to pomóc skoro mam to wykonać w oparciu o flat seqance. A tam zostało to wykonane za pomocą pętli.
Awatar użytkownika
aaddaas
Posty: 202
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

sygnalizacja świetlna na skrzyżowaniu

Post autor: aaddaas »

Światła na ulicy są zapętlone w pewnej sekwencji. Czyli nawet jeśli chcesz użyć flat sequence (co jest faktycznie absurdalnym wymaganiem), musisz wrzucić to w pętle, by sekwencja się powtarzała...
Swoją drogą, to bym się upewnił, czy na pewno musisz użyć flat sequence, ponieważ takie ograniczenie wręcz przeczy idei programowaniu w labVIEW, gdyż jest to klasyczne zadanie dla użycia maszyny stanów...
Obrazek
PiDi
Posty: 641
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2017
Lokalizacja: Katowice

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: PiDi »

Adan1995183 pisze:Tylko nie bardzo rozumiem jak ma mi to pomóc skoro mam to wykonać w oparciu o flat seqance. A tam zostało to wykonane za pomocą pętli.
Ja nie za bardzo rozumiem, czego oczekujesz. Że ktoś Ci zrobi gotowca? W Twoim pierwszym poście nie ma żadnego konkretnego pytania - zadaj je, a otrzymasz odpowiedź.
ObrazekObrazekObrazekObrazek
Adan1995183
Posty: 4
Rejestracja: 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: Adan1995183 »

Jak robić żeby połączyć oba sygnalizatory aby działały jednocześnie. dodać jeszcze sygnalizatory oraz zrobić model dla pierwszych wraz z przyciskiem zmiany światła.
Załączniki
sygnal.vi
(11.35 KiB) Pobrany 396 razy
Awatar użytkownika
micard
Posty: 207
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2017
Kontakt:

sygnalizacja świetlna na skrzyżowaniu

Post autor: micard »

Lasciate ogni speranza, voi ch'entrate
Adan1995183
Posty: 4
Rejestracja: 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: Adan1995183 »

Czy można zrealizować tą sygnalizację za pomocą flat seqance ?
Awatar użytkownika
cyjan1
Posty: 63
Rejestracja: 08 paź 2012 11:55
Wersja środowiska: LabVIEW 2017
Lokalizacja: podkarpacie

sygnalizacja świetlna na skrzyżowaniu

Post autor: cyjan1 »

Można. Ale nie wypada :-)
Pozdrawiam
Zenek
Dzierzbowska
Posty: 3
Rejestracja: 07 kwie 2016 23:00
Wersja środowiska: LabVIEW 2013

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: Dzierzbowska »

Witam wszystkich, odświeżam wątek sygnalizacji świetlnej.
Bardzo Was proszę o pomoc, bo niestety skończyły mi się pomysły :(
Tworzę właśnie aplikację w LabVIEW, robiłam już co prawda jakieś niewielkie programy, ale teraz robię projekt dyplomowy - sygnalizację świetlną na skrzyżowaniu. Rozpisałam sobie fazy, wyznaczyłam czasy międzyzielone, itp., zabrałam się za program.
Ogólna zasada działania? Dane o natężeniu ruchu i o pojawieniu się pojazdu uprzywilejowanego są przekazywane z kamer detekcyjnych do sterownika, tam "zapada decyzja" który program sygnalizacji włączyć - zerowy, pierwszy czy specjalne.
Mój pomysł był taki, by w programie zastosować Flat Sequence Structure - nie wypada widzę, ale uznałam, że to sposób najprostszy, najbardziej intuicyjny, taki na "chłopski rozum". Żeby nie zaśmiecać programu wymyśliłam, by to podprogram realizował zadanie sygnalizatora. Tak tedy utworzyłam subVI "S-1", który ma w głównym programie symulować sygnalizator S-1 i S-3. Osobny subVI "S-5" symuluje sygnalizator dla pieszych i rowerzystów. Jest także subVI "Detekcja" symulujący kamerę detekcyjną.
Wszystko ładnie, pięknie, ale wyniknął taki problem. SubVI z sygnalizatorem sam w sobie działa, na panelu suba światła się elegancko zmieniają. Z początku robiłam to na zmiennych lokalnych, teraz przerabiam na zmienne globalne, by sub działał w głównym. Nie mniej subVI nie działa w programie głównym. Zwraca tylko końcową wartość z ostatniej ramki Flat Sequence z subVI (w tym przypadku tylko światło żółte), a ja jednak chciałabym, by sygnalizator działał poprawnie nie tylko na panelu suba, ale i na panelu głównym programu.
Pytanie jest takie: czy jest możliwość "wyciągania" z każdej ramki Flat Sequence danych wyjściowych z subVI do programu głównego?
Przeszukałam fora, Google, Help i Examples, ale nie znalazłam odpowiedzi. Pewnie nikt po prostu takich błędów jak ja nie robi ;)
Plików z tego wątku nie mogę uruchomić, ponieważ mam wersję LabVIEW 2013.

Bardzo uprzejmie proszę o pomoc wszystkich doświadczonych :)
Awatar użytkownika
aaddaas
Posty: 202
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

sygnalizacja świetlna na skrzyżowaniu

Post autor: aaddaas »

Domyślam się, że w głównym programie nie masz równoległych pętli.
Jeśli w prgramie masz SubVI, to program czeka aż ten subVI się wykona i dopiero później rusza dalej.
Jeśli jednak byś miała równolegle pętle, w których pierwsza wywołuje program, zaś druga sprawdza stan zmiennych globalnych (tutaj proponuje FGV zamiast globalów - szczegóły niżej), wtedy ten Twój pomysł mógłby zadziałać.
Jednak bez rzucenia okiem na program mogę tylko wróżyć z fusów jakie rozwiązanie będzie w Twoim przypadku najlepsze;)

FGV - Functional Global Variable - jest to subVI, który zasadniczo działa jak zmienna globalna, ale zapobiega występowaniu race conditions. http://www.labviewing.com/fgv-in-labview/
Obrazek
Dzierzbowska
Posty: 3
Rejestracja: 07 kwie 2016 23:00
Wersja środowiska: LabVIEW 2013

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: Dzierzbowska »

Dziękuję za odpowiedź :)
Oczywiście powinnam od razu wrzucić program, ale zapomniałam :)
Wiem, jest chaotyczny i mocno rozrośnięty... :( I mało czytelny :(
Każdą krytykę przyjmę na klatę.
Załączniki
Projekt.zip
(1.34 MiB) Pobrany 388 razy
Dzierzbowska
Posty: 3
Rejestracja: 07 kwie 2016 23:00
Wersja środowiska: LabVIEW 2013

sygnalizacja świetlna na skrzyżowaniu

Post autor: Dzierzbowska »

Witam ponownie :)
Próbuję ogarnąć FGV, co mi opornie idzie. Czy dobrze rozumiem, żeby moje subVI S-1 i S-5 (vide: Projekt.zip) zamienić na FGV? Co wtedy zrobić ze zmiennymi lokalnymi, które są w subVI? I czy te pętle równoległe miałyby zastąpić moją strukturę Case, wybór programu?
Aha, i przez zmienne globalne chyba posypała mi się sekwencją świateł w subVI...
Czy chciałam dobrze, a wyszło jeszcze gorzej ;)
ODPOWIEDZ