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 » 02 lis 2016 18:17

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 61 razy

PiDi
Posty: 600
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2014
Lokalizacja: Katowice
Has thanked: 1 time
Been thanked: 1 time

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: PiDi » 02 lis 2016 19:30

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 [-(
ObrazekObrazekObrazek

Adan1995183
Posty: 4
Rejestracja: 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

sygnalizacja świetlna na skrzyżowaniu

Post autor: Adan1995183 » 03 lis 2016 09:11

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: 181
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

sygnalizacja świetlna na skrzyżowaniu

Post autor: aaddaas » 03 lis 2016 10:17

Ś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: 600
Rejestracja: 31 gru 2010 01:36
Wersja środowiska: LabVIEW 2014
Lokalizacja: Katowice
Has thanked: 1 time
Been thanked: 1 time

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: PiDi » 03 lis 2016 11:37

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ź.
ObrazekObrazekObrazek

Adan1995183
Posty: 4
Rejestracja: 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: Adan1995183 » 03 lis 2016 19:31

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 68 razy

Awatar użytkownika
micard
Posty: 117
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 1 time
Been thanked: 1 time
Kontakt:

sygnalizacja świetlna na skrzyżowaniu

Post autor: micard » 09 lis 2016 00:07

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 » 16 lis 2016 18:10

Czy można zrealizować tą sygnalizację za pomocą flat seqance ?

Awatar użytkownika
cyjan1
Posty: 61
Rejestracja: 08 paź 2012 11:55
Wersja środowiska: LabVIEW 2013
Lokalizacja: Tarnobrzeg

sygnalizacja świetlna na skrzyżowaniu

Post autor: cyjan1 » 17 lis 2016 09:09

Można. Ale nie wypada :-)
Pozdrawiam
Zenek

Certified TestStand Architect

Dzierzbowska
Posty: 3
Rejestracja: 07 kwie 2016 23:00
Wersja środowiska: LabVIEW 2013

Re: sygnalizacja świetlna na skrzyżowaniu

Post autor: Dzierzbowska » 31 sty 2017 22:20

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: 181
Rejestracja: 26 cze 2013 20:42
Wersja środowiska: LabVIEW 2015

sygnalizacja świetlna na skrzyżowaniu

Post autor: aaddaas » 01 lut 2017 09:47

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 » 01 lut 2017 21:11

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 48 razy

Dzierzbowska
Posty: 3
Rejestracja: 07 kwie 2016 23:00
Wersja środowiska: LabVIEW 2013

sygnalizacja świetlna na skrzyżowaniu

Post autor: Dzierzbowska » 06 lut 2017 22:14

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