Strona 1 z 1

Jak wyciągnąć dane z Array

: 28 paź 2012 21:26
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"

Re: Jak wyciągnąć dane z Array

: 28 paź 2012 21:49
autor: dzojstik22
Witam,
a próbowałeś wyrzucić macierze z tymi danymi poza pętlę while?

Re: Jak wyciągnąć dane z Array

: 28 paź 2012 21:54
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.

Re: Jak wyciągnąć dane z Array

: 28 paź 2012 22:23
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ć.

Re: Jak wyciągnąć dane z Array

: 28 paź 2012 22:35
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ć.

Re: Jak wyciągnąć dane z Array

: 29 paź 2012 07:41
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

Jak wyciągnąć dane z Array

: 29 paź 2012 13:38
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

Jak wyciągnąć dane z Array

: 29 paź 2012 15:56
autor: Mikrobi
Talk is cheap. Show me the code. Linus Torvalds.
B-)

Re: Jak wyciągnąć dane z Array

: 29 paź 2012 19:38
autor: Buczek
This is the code in LV 2010.

Re: Jak wyciągnąć dane z Array

: 29 paź 2012 19:52
autor: ruda
Proszę załączam fragment kodu. Mam nadzieje że o to chodziło :)

Jak wyciągnąć dane z Array

: 29 paź 2012 23:14
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ą ;)

Re: Jak wyciągnąć dane z Array

: 30 paź 2012 17:55
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:).

Re: Jak wyciągnąć dane z Array

: 30 paź 2012 18:35
autor: ruda
Proszę oto fotki :)

Obrazek
Obrazek

Re: Jak wyciągnąć dane z Array

: 30 paź 2012 22:20
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ć?

Jak wyciągnąć dane z Array

: 31 paź 2012 21:53
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.