sygnalizacja świetlna na skrzyżowaniu
-
- Posty: 4
- Rejestracja: 02 lis 2016 18:07
- Wersja środowiska: LabVIEW 2014
sygnalizacja świetlna na skrzyżowaniu
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 448 razy
-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: sygnalizacja świetlna na skrzyżowaniu
Proponuję zacząć tutaj: http://www.ni.com/academic/students/learn-labview/
Tylko nie bardzo rozumiem to wymaganie:
Tylko nie bardzo rozumiem to wymaganie:
Za takie coś to karne spaghetti dla autoraSygnalizacje należałoby wykonać za pomocą konstrukcji sekwencyjnej Flat seqance.

-
- Posty: 4
- Rejestracja: 02 lis 2016 18:07
- Wersja środowiska: LabVIEW 2014
sygnalizacja świetlna na skrzyżowaniu
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.
sygnalizacja świetlna na skrzyżowaniu
Ś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...
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...

-
- Posty: 641
- Rejestracja: 31 gru 2010 01:36
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Katowice
Re: sygnalizacja świetlna na skrzyżowaniu
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ź.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.
-
- Posty: 4
- Rejestracja: 02 lis 2016 18:07
- Wersja środowiska: LabVIEW 2014
Re: sygnalizacja świetlna na skrzyżowaniu
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 457 razy
-
- Posty: 4
- Rejestracja: 02 lis 2016 18:07
- Wersja środowiska: LabVIEW 2014
Re: sygnalizacja świetlna na skrzyżowaniu
Czy można zrealizować tą sygnalizację za pomocą flat seqance ?
-
- Posty: 3
- Rejestracja: 07 kwie 2016 23:00
- Wersja środowiska: LabVIEW 2013
Re: sygnalizacja świetlna na skrzyżowaniu
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
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

sygnalizacja świetlna na skrzyżowaniu
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/
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/

-
- Posty: 3
- Rejestracja: 07 kwie 2016 23:00
- Wersja środowiska: LabVIEW 2013
Re: sygnalizacja świetlna na skrzyżowaniu
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ę.

Oczywiście powinnam od razu wrzucić program, ale zapomniałam

Wiem, jest chaotyczny i mocno rozrośnięty...


Każdą krytykę przyjmę na klatę.
- Załączniki
-
- Projekt.zip
- (1.34 MiB) Pobrany 451 razy
-
- Posty: 3
- Rejestracja: 07 kwie 2016 23:00
- Wersja środowiska: LabVIEW 2013
sygnalizacja świetlna na skrzyżowaniu
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 ;)

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 ;)