Jak wyciągnąć dane z Array

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Buczek
Posty: 16
Rejestracja: 25 cze 2011 15:37
Wersja środowiska: LabVIEW 7.1

Jak wyciągnąć dane z Array

Post autor: Buczek »

Witam
wewnątrz struktury CASE, wczytuje dane do TAB1 pochodzące z VISA. Dane do TAB1 trafiają po włączeniu przycisku "Odczyt temperatury", wówczas CASE jest w stanie TRUE. Po wyłączeniu przycisku "Odczyt temperatury" CASE przechodzi w stan FALSE a dane pozostają w TAB1 do chwili ponownego załączenia przycisku. Muszę wykonać kilka obliczeń na danych z TAB1 oraz odczytać wartości MIN i MAX. Nie mogę tego wykonać ponieważ, po wyłączeniu przycisku "Odczyt temp" nowe dane trafiają do Array MAX & MIN, pnieważ CASE jest w stanie FALSE i przepuszcze sygnał pomiarowy.

W jaki sposób odczytać dane z TAB1 lub wydobyć całą TAB1 ze struktury CASE po wyłączeniu przycisku "Odczyt temperatury"
Załączniki
3.png
2.png
1.png
dzojstik22
Posty: 103
Rejestracja: 17 gru 2011 21:33
Wersja środowiska: LabVIEW 2011

Re: Jak wyciągnąć dane z Array

Post autor: dzojstik22 »

Witam,
a próbowałeś wyrzucić macierze z tymi danymi poza pętlę while?
Buczek
Posty: 16
Rejestracja: 25 cze 2011 15:37
Wersja środowiska: LabVIEW 7.1

Re: Jak wyciągnąć dane z Array

Post autor: Buczek »

TAB1 musi znajdować się wewnątrz pętli while ponieważ, po kazdej iteracji pętli dopisywany jest 1 wiersz TAB1 z wynikiem pomiaru temp.
dzojstik22
Posty: 103
Rejestracja: 17 gru 2011 21:33
Wersja środowiska: LabVIEW 2011

Re: Jak wyciągnąć dane z Array

Post autor: dzojstik22 »

Buczek pisze:TAB1 musi znajdować się wewnątrz pętli while ponieważ, po kazdej iteracji pętli dopisywany jest 1 wiersz TAB1 z wynikiem pomiaru temp.
Ale ja nie mówię o tabie tylko o macierzy wyników których nie możesz odczytać.
Załączniki
1.jpg
1.jpg (228.04 KiB) Przejrzano 16596 razy
Buczek
Posty: 16
Rejestracja: 25 cze 2011 15:37
Wersja środowiska: LabVIEW 7.1

Re: Jak wyciągnąć dane z Array

Post autor: Buczek »

Z elementami, które zaznaczyłeś nie mam problemu, problem dotyczy TAB1, a dokładnie danych w niej zapisanych. Każdy pomiar zawiera ok 6o wyników, ktore sa mi potrzebne do dalszych obliczeń a do których nie mogę się dobrać.
Załączniki
4.png
TuChoLa
Posty: 25
Rejestracja: 08 maja 2012 09:48
Wersja środowiska: LabVIEW 2013

Re: Jak wyciągnąć dane z Array

Post autor: TuChoLa »

Nie jestem powien o co dokładniej chodzi, widok na więcej kodu z lewej strony mógłby rozjaśnić sprawę. Według mnie powinieneś mieć te wrtości w Array1, ale jeśli tego nie robisz to zakładam, że gdy case jest na false to tablica jest zerowana/nadpisywana, mogłbyś np. stworzyć nopwy indykator dla Tab w case "true' i pobrać te wartości z nowego indykatora za pomocą 'local variable', albo od TAB1 poprowadzić nową linię do nowego registry shift, i dla false 'zewrzeć' nowe rejestry bez żadnych struktur pomiędzy.

Mam nadzieję, że ten opis ma ręce i nogi :P
ruda
Posty: 23
Rejestracja: 18 sty 2012 15:29
Wersja środowiska: LabVIEW 2011

Jak wyciągnąć dane z Array

Post autor: ruda »

Witam,

Z tego co zrozumiałam to chcesz przeanalizować ostatnie 60 próbek w tab 1?? Proponuje założyć nowy shift rejestr do którego w stanie false będzie wrzucane ostatnie 60 próbek z tab 1 (najlepiej przy użyciu funcji "delete from array") i po zebraniu próbek (przycisk w stanie false) w nowej tablicy będziesz miał ostatni pomiar a podczas pomiaru (stan "true") przeciagnij shift rejestr i w tablicy bedzie znajdował sie stary pomiar.
Czy o to Ci konkretnie chodziło?

pozdrawiam
Obrazek
Extensa - certyfikowani programiści LabVIEW z Krakowa.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Jak wyciągnąć dane z Array

Post autor: Mikrobi »

Talk is cheap. Show me the code. Linus Torvalds.
B-)
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Buczek
Posty: 16
Rejestracja: 25 cze 2011 15:37
Wersja środowiska: LabVIEW 7.1

Re: Jak wyciągnąć dane z Array

Post autor: Buczek »

This is the code in LV 2010.
Załączniki
VISA2.vi
(40.65 KiB) Pobrany 399 razy
ruda
Posty: 23
Rejestracja: 18 sty 2012 15:29
Wersja środowiska: LabVIEW 2011

Re: Jak wyciągnąć dane z Array

Post autor: ruda »

Proszę załączam fragment kodu. Mam nadzieje że o to chodziło :)
Załączniki
Untitled 1.vi
(9.42 KiB) Pobrany 386 razy
Obrazek
Extensa - certyfikowani programiści LabVIEW z Krakowa.
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Jak wyciągnąć dane z Array

Post autor: Mikrobi »

Patrzyłem na kod w VISA2.vi , jeśli pozwolisz: kilka mniej i bardziej praktycznych uwag.
1. W każdej iteracji pętli otwierany i zamykany jest wątek VISA: te operacje powinny być poza pętlą, do środka informacja może wchodzić przez tunel- nie musi to być Shift Register.
2. Nie będę sobą jeśli nie zwrócę uwagi na pewne splątanie kodu
Czytelny kod pozwoli nie tylko wzbogacić moje osobiste odczucia estetyczne - przypuszczam że również kilku innych osób na forum oraz (teraz nieco poważniej): pomoże w samodzielnej analizie i debagowaniu kodu. Warto poświęcić kilka chwil na uporządkowanie.
3. Intryguje mnie licznik czasu - kiedy ostatnio sprawdzałem proste operacje matematyczne dzielenie tej samej wartości przez siebie dawało 1 , ale stary jestem, codziennie idzie nowe.... jaka była zakładana funkcjonalność?
4. Dużo kolorów : możliwości barwne interfejsu cieszą, na początku nawet bardzo, jednak zestawienie koloru czerwonego i niebieskiego na wykresie nie jest najlepszą kombinacją ;)
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Buczek
Posty: 16
Rejestracja: 25 cze 2011 15:37
Wersja środowiska: LabVIEW 7.1

Re: Jak wyciągnąć dane z Array

Post autor: Buczek »

Ruda niestety nie mogę otworzyć Twojegi VI używam LV 2010, wrzuć fotki lub zapisz projekt w starszej wersji.



Mikrobi dzięki za cenne Uwagi, krytyka konstruktywna jest zawsze mile widziana.
Licznik ma na celu:
1. odmierzać czas co 1 s
2. Każda kolejna wartość licznika jest zwiększana o 1 i wpisywana do tabeli, dzięki czemu w tabeli mam kolumnę o nazwie "CZAS", do której są wpisywane kolejne wartości 1,2,3,4... . Nie bardzo miałem pomysł jak to wykonać i w wyniku mojej radosnej twórczości powstał taki oto TWÓR:).
ruda
Posty: 23
Rejestracja: 18 sty 2012 15:29
Wersja środowiska: LabVIEW 2011

Re: Jak wyciągnąć dane z Array

Post autor: ruda »

Proszę oto fotki :)

Obrazek
Obrazek
Obrazek
Extensa - certyfikowani programiści LabVIEW z Krakowa.
Buczek
Posty: 16
Rejestracja: 25 cze 2011 15:37
Wersja środowiska: LabVIEW 7.1

Re: Jak wyciągnąć dane z Array

Post autor: Buczek »

ruda dzięki za pomoc, Twoj kod działa. Zmieniła się jednak koncepcja. Pomiary mają być zapisywane w TAB1 w następującej sekwencji:
1 Zapis pomiarów do TAB1 po włączenia przycisku "Odczyt temperatury"
2 Wyłączenie przycisku "Odczyt temperatury" wyniki pomiarów zostają w nienaruszonym stanie w TAB1
3 Ponowne włączenie"Odczyt temperatury" ma kasować TAB1 i wpisywać nowe dane pomiarowe do TAB1.

Obecnie odbywa to się w takiej sekwencji:
1 Zapis pomiarów do TAB1 po włączenia przycisku "Odczyt temperatury"
2 Wyłączenie przycisku "Odczyt temperatury" wyniki pomiarów zostają w nienaruszonym stanie w TAB1
3 Ponowne włączenie"Odczyt temperatury" dopisuje nowe dane pomiarowe do wcześniejszego pomiaru. A tak ma nie być. tylko jak to zrobić?
ruda
Posty: 23
Rejestracja: 18 sty 2012 15:29
Wersja środowiska: LabVIEW 2011

Jak wyciągnąć dane z Array

Post autor: ruda »

Hej z Twoją architekturą program to przychodzi mi do głowy tylko takie rozwiązanie.
Obrazek
Obrazek


Jeżeli dalej nie działa tak jak chcesz to proponuje zastosować maszyne stanu w której będziesz mógł zdefiniować poszczególne etapy pomiaru itp, itd.
Obrazek
Extensa - certyfikowani programiści LabVIEW z Krakowa.
ODPOWIEDZ