tworzenie tablicy o określonej długości

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
sendrill
Posty: 18
Rejestracja: 07 sie 2012 15:13
Wersja środowiska: LabVIEW 2011

tworzenie tablicy o określonej długości

Post autor: sendrill »

Witam wszystkich jako jest to mój pierwszy post na forum.
Mam problem z łączeniem danych w tablice o określonej długości.
tablica.jpg
(subvi generuje tablicę zawierająca 1-4 elementow)
Efekt powinien wyglądac jak w powyższym przykładzie natomiast w swojej aplikacji nie mam możliwosci zamknięcia generatora w petli for. W jaki sposób generować tablicę z 3 kolejnych wyników generatora.
Z góry dziękuję za pomoc.
Ostatnio zmieniony 07 sie 2012 16:01 przez sendrill, łącznie zmieniany 3 razy.
Gpiotr
Posty: 17
Rejestracja: 18 lis 2010 08:50
Wersja środowiska: LabVIEW 2012
Lokalizacja: Katowice

Re: tworzenie tablicy o określonej długości

Post autor: Gpiotr »

Trochę mało szczegółów podałeś więc moje rozwiązanie może chybić, ale co mi tam :)
Stwórz sobie SubVI taki jak snippet z załącznika.
Jak podepniesz do jego wejścia "Array In" wyjście z generatora to na "Array Out" będziesz przy kolejnych zapisach danych otrzymywał tablicę z trzech ostatnich wpisów.
Załączniki
Example.png
Example.png (15.52 KiB) Przejrzano 14173 razy
Certified LabVIEW Architect
sendrill
Posty: 18
Rejestracja: 07 sie 2012 15:13
Wersja środowiska: LabVIEW 2011

tworzenie tablicy o określonej długości

Post autor: sendrill »

Dziekuje za szybką odpowiedz. Niestety zapomniałem dopisać, ze liczba zliczeń z generatora jest tez zmienna stąd nie moge skorzystac z określonej liczby shift register.
Tak więc generator wysyła tablicę z 1-4 elementow n razy gdzie n jest z góry znana, następnie wszystkie wygenerowane elementy powinne zostać połączone w jedną tablicę.
Ostatnio zmieniony 07 sie 2012 17:42 przez sendrill, łącznie zmieniany 1 raz.
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

Re: tworzenie tablicy o określonej długości

Post autor: Zyga »

o to chodzi?
Załączniki
array.rar
(8.54 KiB) Pobrany 361 razy
Gpiotr
Posty: 17
Rejestracja: 18 lis 2010 08:50
Wersja środowiska: LabVIEW 2012
Lokalizacja: Katowice

Re: tworzenie tablicy o określonej długości

Post autor: Gpiotr »

W takim razie sprawa jest jeszcze prostsza.
Za każdym razem gdy dane zostaną zapisane do tego SubVI'a zostaną one połączone z poprzednimi i wystawione na wyjście.
Załączniki
Example.png
Example.png (14.35 KiB) Przejrzano 14145 razy
Certified LabVIEW Architect
sendrill
Posty: 18
Rejestracja: 07 sie 2012 15:13
Wersja środowiska: LabVIEW 2011

Re: tworzenie tablicy o określonej długości

Post autor: sendrill »

Ad. zyga:niestety nie, w pierwszym poscie napisałem, że generator nie może znajdować się w petli for.
ad. gpiotr: Nie wiem czy dobrze sprecyzowałem problem ale w takim przypadku na wyjsciu mam nieskończenie duża tablice, a nie taką która zawiera wyniki np z 3 generacji. Istotne jest zeby tablica wyjsciowa zawierała jedynie dane z n-generacji a następnie była zerowana.
Gpiotr
Posty: 17
Rejestracja: 18 lis 2010 08:50
Wersja środowiska: LabVIEW 2012
Lokalizacja: Katowice

tworzenie tablicy o określonej długości

Post autor: Gpiotr »

Pisałeś, że podajesz do zapisu tablice 1-4 elementów. Najprostszy sposób resetowania tablicy to taki, że w momencie podania na wejście tablicy 0 elementowej zapisujesz ją do shift registra zamiast tej zbudowanej.
Certified LabVIEW Architect
sendrill
Posty: 18
Rejestracja: 07 sie 2012 15:13
Wersja środowiska: LabVIEW 2011

tworzenie tablicy o określonej długości

Post autor: sendrill »

Podaje do zapisu tablice 1-4 elemntową n razy np:
tablice 4 4 3 1 elementow i na wyjściu otrzymuje tablice 12 elementową ktora jest następnie zerowana i czynność się powtarza. Mogę poprosić o przykład jak zapisać tabelę do shift register z jednoczesnym zerowaniem?
tab.jpg
tab.jpg (14.21 KiB) Przejrzano 14137 razy
w takim przypadku na wyjściu bede miał zawsze tablicę z ostatniej generacji.
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

tworzenie tablicy o określonej długości

Post autor: Zyga »

Inaczej tego nie umiem zrozumieć:
Wywołujesz funkcję "data gen" n-krotnie i wynik każdego wywołania chcesz zapisać do jednej tablicy 1D. Nie możesz tego zrobić w żadnej w pętli więc n razy uruchamiasz program?
sendrill
Posty: 18
Rejestracja: 07 sie 2012 15:13
Wersja środowiska: LabVIEW 2011

Re: tworzenie tablicy o określonej długości

Post autor: sendrill »

Funkcja gen jest generowana ciągle. Zapisuje wynik generacji n razy. np3. Następnie tablica jest zerowana i jest do niej zapisany wynik generacji m razy np 4. itd
Przyklad:

generacja 4 razy: 4 elementy, 3, 4, 1 ->zapis-> tablica z 8 elementow.
generacja 3 razy: 2, 2, 1 -> zapis -> tablica 5 elementow
Ostatnio zmieniony 07 sie 2012 21:55 przez sendrill, łącznie zmieniany 2 razy.
Zyga
Posty: 86
Rejestracja: 26 sty 2012 23:36
Wersja środowiska: LabVIEW 2011

tworzenie tablicy o określonej długości

Post autor: Zyga »

Też zaczynam przygodę z LV, może dlatego nie rozumiem. Funkcja przecież zwróci wartość w momencie zakończenia działania. Możesz wrzucić tego VI?
Awatar użytkownika
skrzatswat
Posty: 21
Rejestracja: 13 lut 2012 16:26
Wersja środowiska: LabVIEW 2011

tworzenie tablicy o określonej długości

Post autor: skrzatswat »

Jeśli dobrze zrozumiałem to możliwe że chodzi o takie coś, co prawda bez pętli for i shift registra za to na feedback node, która w tym przypadku będzie pamiętać N ostatnich wpisów w tablicy, a następnie będzie się ona kasować, liczbę tą można w dowolnym momencie zmieniać. jak obudujesz to pętlą while tak jak w pierwszym poście to powinno być OK. Pozdrawiam
Ntyzapis.png
Obrazek
sendrill
Posty: 18
Rejestracja: 07 sie 2012 15:13
Wersja środowiska: LabVIEW 2011

Re: tworzenie tablicy o określonej długości

Post autor: sendrill »

Wszystko działa do czasu znamy wielkosc tablicy wyjściowej. U Ciebie jest generator pojedynczych cyfr, natomiast u mnie generuje sie tablica o długości 1-4 znaków. Jesli w warunku nie określę dokładnie wielkości tablicy wyjściowej to otrzymam nieskończenie dużą tablicę. To po części rozwiązuje problem po wiem zawsze ile będzie elementów ale wolał bym żeby sprawdzało ile razy wygenerowało mi dane.
Awatar użytkownika
skrzatswat
Posty: 21
Rejestracja: 13 lut 2012 16:26
Wersja środowiska: LabVIEW 2011

tworzenie tablicy o określonej długości

Post autor: skrzatswat »

Nie ma przecież problemu, aby zamienić generowanie pojedyńczych cyfr na twojego Subvi czyli na tablice 1-D, a tablice 1-D przy wejściu TRUE selectora na tablice 2-D. To miała być tylko idea, abyś sam mógł ją zaadoptować do swojego problemu. Poza tym bardzo niejasno przedstawiłeś to co chcesz osiągnąć, bo wcześniej nie pisałeś nic o "sprawdzaniu ile razy się wygenerowało", musiałbyś przedstawić główną strukturę aplikacji a nie tylko bloczek, który "coś" generuje, bo nie wiadomo skąd ma być brana informacja ile ostatnich pomiarów(tablic 1-D) ma być zachowanych.
Obrazek
sendrill
Posty: 18
Rejestracja: 07 sie 2012 15:13
Wersja środowiska: LabVIEW 2011

Re: tworzenie tablicy o określonej długości

Post autor: sendrill »

Mysle ze dalej juz sobie poradze, dzieki za wskazówki. To co przestawiłem to w sumie tylko uproszczony model części programu. Jak bedę miał jakieś pytania to po prostu wrzucę program do podgladu : )
ODPOWIEDZ