Kolejkowanie zdarzeń - winda

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.
swidergkm
Posty: 3
Rejestracja: 04 kwie 2018 20:34
Wersja środowiska: LabVIEW 2016

Kolejkowanie zdarzeń - winda

Post autor: swidergkm »

Cześć.
Na początek zawsze miło się przywitać. Tak więc Witam wszystkich użytkowników tego forum :).
Osobiście kończę projekt związany z LV i szybkim prototypowaniem. W projekcie steruję windą za pomocą karty USB NI.
Winda jest fizycznie zbudowana - model jest zrobiony, łącznie z kontrolkami, przyciskami itd.
Mój problem dotyczy tego, że obecnie próbuję ogarnąć sposób kolejkowania zdarzeń. Mam tu na myśli, wciśnięcie kilku przycisków jeden po drugim i winda zaczyna jezdzić sama od piętra do piętra. Przyciski są obsługiwane poprzez karte NI i wejscie analogowe - rozpoznaje po dzielniku napięcia jakie jest w danej chwili i wie jaki jest przyciśniety przycisk, więc zrobienie tego na event structure odpada bo to nie jest obsługiwane z panelu labview tylko zewnętrznymi przyciskami. Zrobiłem coś na zasadzie kolejki za pomocą tablicy - poprostu daną wartość wpisuję do tablicy, sprawdzam jej "stos" czyli ile ma elementów - maxymalnie 4 elementy. Jeżeli winda dojedzie na piętro, które było tam wpisane to odejmuje jedną wartość z tablicy i przypisuje w to miejsce następna itd. Jednak coś nie do końca mi to gra - dzieje się tak, że wciskam przyciski i w tablicy faktycznie mi się one pojawiają, winda jedzie na pierwsze zadane piętro i przeważnie kasuje pozostałe lub nadpisuje całą tablicę jedną wartością. Czasami zdarzy się tak, że pojedzie na pierwsze zadanie, następnie na drugie i znowu to samo czyli nadpisuje pozostałe zdarzenia jednakową wartością i winda staje. Nie bardzo wiem czym to może byc spowodane. Znaczy domyslam sie, że chodzi z tym nadpisywaniem wartości - jakby winda szybciej nadpisuje, niż fizycznie się to wykona. Nie wiem czy to moze byś spowodowane jakims brakiem delay'a? Probowałem tam umieszczać w rozne miejsca delaye ale nic mi z tego nie wychodzi, moze karta za wolno przetwarza dane niz fizycznie dziala program i on juz nadpisuje wartości a ta czynnosc jeszcze sie nie wykonala?
Zamieszczam wam filmik ukazujacy co dzieje sie z ta tablica i jej stosem w momencie wcisniecie przyciskow. Widac, ze wciskam np 3 a pozniej 1 i winda jedzie na 3, dojezdza, zatrzymuje sie na chwile w tym momencie zaczyna jechac na pietro 1 ale cala tablica sie wyzerowala nie wiadomo skad? Jestem prawie pewny, że brakuje mi tam delaya jakiegoś, żeby to troche wolniej odejmowalo? Jestescie w stanie mi jakos pomoc i mnie nakierowac?
Dodam, ze jestem zielony z LV i dopiero zaczynam przygode ale sie staram :)
Kolega Nawotka, pewnie będzie kojarzył temat bo go trochę podpytywałem na etapie rozbudowy mojego VI.
P.S. Dzieki za pomoc !

W linki filmiki z dzialnia tego kolejkowania.
https://megawrzuta.pl/filesgroup/540e05 ... 020f6.html
Załączniki
winda_kolejki22.vi
(336.26 KiB) Pobrany 348 razy
SNT
Posty: 56
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

Re: Kolejkowanie zdarzeń - winda

Post autor: SNT »

dolacz subVIs
Na pierwszy rzut oka moge powiedziec, ze Twoje "kolejki" wychodza ze skryptu co troche komplikuje sprawe.
swidergkm
Posty: 3
Rejestracja: 04 kwie 2018 20:34
Wersja środowiska: LabVIEW 2016

Re: Kolejkowanie zdarzeń - winda

Post autor: swidergkm »

W zalaczniku.
Dzieki, czekam za jakas informacją.
Załączniki
winda.rar
(1.04 MiB) Pobrany 336 razy
SNT
Posty: 56
Rejestracja: 18 lip 2013 13:23
Wersja środowiska: LabVIEW 2013

Re: Kolejkowanie zdarzeń - winda

Post autor: SNT »

winda2.vi czy winda_opt_nowa.vi?

i jakie przykladowe wartosci wychodza z Daq.png?
Załączniki
Daq.png
Daq.png (1.84 KiB) Przejrzano 6332 razy
swidergkm
Posty: 3
Rejestracja: 04 kwie 2018 20:34
Wersja środowiska: LabVIEW 2016

Re: Kolejkowanie zdarzeń - winda

Post autor: swidergkm »

projekt jest pod Winda2.vi a subVI w ktorym jest kolejkowanie jest zrobiony pod winda_kolejki22.vi

z tego daq wychodza wartosci napiec jakie sa podawane z fotorezystorow poprzez karte miedzy 0 a 5V. Dokladnych wartosci nie jestem teraz w stanie sprawdzic jak to sie zachowuje, ale to jest odczyt z wejsc analogowych, do ktorych mam podlaczone fotorezystory.
ODPOWIEDZ