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.

sygnalizacja świetlna na skrzyżowaniu

Postprzez 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) Pobrane 48 razy
Adan1995183
 
Posty: 4
Dołączył(a): 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

Re: sygnalizacja świetlna na skrzyżowaniu

Postprzez 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 [-(
Obrazek
PiDi
 
Posty: 598
Dołączył(a): 31 gru 2010 01:36
Lokalizacja: Katowice
Pochwały: 116
Wersja środowiska: LabVIEW 2014

sygnalizacja świetlna na skrzyżowaniu

Postprzez 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.
Adan1995183
 
Posty: 4
Dołączył(a): 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

sygnalizacja świetlna na skrzyżowaniu

Postprzez 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
Avatar użytkownika
aaddaas
 
Posty: 181
Dołączył(a): 26 cze 2013 19:42
Pochwały: 34
Wersja środowiska: LabVIEW 2015

Re: sygnalizacja świetlna na skrzyżowaniu

Postprzez PiDi » 03 lis 2016 11:37

Adan1995183 napisał(a):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ź.
Obrazek
PiDi
 
Posty: 598
Dołączył(a): 31 gru 2010 01:36
Lokalizacja: Katowice
Pochwały: 116
Wersja środowiska: LabVIEW 2014

Re: sygnalizacja świetlna na skrzyżowaniu

Postprzez 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) Pobrane 57 razy
Adan1995183
 
Posty: 4
Dołączył(a): 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

sygnalizacja świetlna na skrzyżowaniu

Postprzez micard » 09 lis 2016 00:07

Lasciate ogni speranza, voi ch'entrate
Avatar użytkownika
micard
 
Posty: 101
Dołączył(a): 30 wrz 2011 10:28
Pochwały: 13
Wersja środowiska: LabVIEW 2016

Re: sygnalizacja świetlna na skrzyżowaniu

Postprzez Adan1995183 » 16 lis 2016 18:10

Czy można zrealizować tą sygnalizację za pomocą flat seqance ?
Adan1995183
 
Posty: 4
Dołączył(a): 02 lis 2016 18:07
Wersja środowiska: LabVIEW 2014

sygnalizacja świetlna na skrzyżowaniu

Postprzez cyjan1 » 17 lis 2016 09:09

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

Certified TestStand Architect
Avatar użytkownika
cyjan1
 
Posty: 61
Dołączył(a): 08 paź 2012 10:55
Lokalizacja: Tarnobrzeg
Pochwały: 11
Wersja środowiska: LabVIEW 2013

Re: sygnalizacja świetlna na skrzyżowaniu

Postprzez 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 :)
Dzierzbowska
 
Posty: 3
Dołączył(a): 07 kwi 2016 22:00
Wersja środowiska: LabVIEW 2013

sygnalizacja świetlna na skrzyżowaniu

Postprzez 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
Avatar użytkownika
aaddaas
 
Posty: 181
Dołączył(a): 26 cze 2013 19:42
Pochwały: 34
Wersja środowiska: LabVIEW 2015

Re: sygnalizacja świetlna na skrzyżowaniu

Postprzez 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) Pobrane 33 razy
Dzierzbowska
 
Posty: 3
Dołączył(a): 07 kwi 2016 22:00
Wersja środowiska: LabVIEW 2013

sygnalizacja świetlna na skrzyżowaniu

Postprzez 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 ;)
Dzierzbowska
 
Posty: 3
Dołączył(a): 07 kwi 2016 22:00
Wersja środowiska: LabVIEW 2013


Powrót do Tematy ogólne

Kto przegląda forum

Użytkownicy przeglądający ten dział: Brak zidentyfikowanych użytkowników i 4 gości