Oczekiwanie na reakcję użytkownika po każdej iteracji pętli

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
Moni
Posty: 3
Rejestracja: 04 cze 2018 13:10
Wersja środowiska: LabVIEW 2013

Oczekiwanie na reakcję użytkownika po każdej iteracji pętli

Post autor: Moni » 04 cze 2018 16:17

Witam,
Chcę stworzyć aplikację do akwizycji danych pomiarowych za pomocą katy NI 6366. Ustawiam wartość referencyjną na generatorze po czym uruchamiam program i pozyskuję zadaną liczbę (np 100) próbek. Docelowo chciałabym aby po każdym pomiarze wszystkich 100 próbek program robił pauzę, czekał na ustawienie kolejnej wartości na generatorze i po wciśnięciu przycisku pobierał kolejne próbki.
Fragment do akwizycji danych znajduję się w załączniku (DAQmx) natomiast problemem jest zapauzowanie programu po każdej iteracji i wznowienie po wciśnięciu przycisku. Aktualnie jedno uruchomienie programu to próbki o jednej wartości z generatora. Liczba iteracji (wartości z generatora) ma być zadana przez użytkownika, zebrane dane mają być zapisane do excela.
Proszę o wskazówki, jestem początkującą osobą w LV.
Załączniki
akwizycja.png
akwizycja.png (107.55 KiB) Przejrzano 294 razy

Awatar użytkownika
Pitol
Moderator
Posty: 920
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków
Has thanked: 2 times
Been thanked: 7 times

Re: Oczekiwanie na reakcję użytkownika po każdej iteracji pętli

Post autor: Pitol » 05 cze 2018 08:44

Witaj,

Skoro jesteś osobą początkującą w LabVIEW to musisz się podszkolić :D
Nie będziemy zatem dawać Ci gotowego rozwiązania, tylko wskażemy gdzie należy go szukać.

Rozwiązaniem Twojego problemu będzie skorzystanie ze struktury Event.
Przykładów i tutoriali jest mnóstwo w internecie.
Choćby kilka pierwszych przykładów wyszukania "Events in LabVIEW tutorial":
https://www.youtube.com/watch?v=8eO64fo3Pho
https://twiki.ph.rhul.ac.uk/twiki/pub/P ... Events.pdf

I tak dalej...

Pobaw się tą strukturą na sucho (parę kontrolek, diodek, bez użycia DAQmx) i postaraj się zrozumieć jak to działa.
Następnie zastanów się jak to może pomóc rozwiązać Twój problem.

W razie pytań pisz... będziemy pomagać.
ObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj

Moni
Posty: 3
Rejestracja: 04 cze 2018 13:10
Wersja środowiska: LabVIEW 2013

Re: Oczekiwanie na reakcję użytkownika po każdej iteracji pętli

Post autor: Moni » 05 cze 2018 23:12

Dzięki za szybką odpowiedź.
Wykorzystanie struktury Event jest faktycznie dobrym rozwiązaniem. Skorzystałam jednak z pętli while i struktury CASE co wydawało mi się łatwiejsze w realizacji. Program działa, jednak napotkałam kolejny problem - chcę wyprowadzić z pętli wartości średnie z każdej serii próbek i wprowadzone przez użytkownika wartości referencyjne (program w załączniku). Te dane będę analizować i wprowadzać do raportu. Obecnie wszystko zapisuje się do excela (write to measurement file). Podejrzewam że można to zrealizować w prosty sposób za pomocą tablic ale na tym się kończą moje pomysły. Jakieś wskazówki?
Pozdrawiam
Załączniki
case_while.png

Awatar użytkownika
micard
Posty: 155
Rejestracja: 30 wrz 2011 11:28
Wersja środowiska: LabVIEW 2016
Has thanked: 6 times
Been thanked: 3 times
Kontakt:

Re: Oczekiwanie na reakcję użytkownika po każdej iteracji pętli

Post autor: micard » 06 cze 2018 08:05

Co rozumiesz przez "wyprowadzić z pętli"?
Już w tej chwili twój plik zawiera informacje o wartości referencyjnej i średniej - rozumiem, że nie o taki raport Ci chodzi?

Napisz coś więcej o tym co I jak chcesz analizować, poniewaz bardzo prawdopodobne, że łatwiej I ładniej taka analize zrobić w samym excelu za pomoc makra.

Moni
Posty: 3
Rejestracja: 04 cze 2018 13:10
Wersja środowiska: LabVIEW 2013

Re: Oczekiwanie na reakcję użytkownika po każdej iteracji pętli

Post autor: Moni » 06 cze 2018 13:26

Za pomocą modułu Write to measurement file zapisuje dane, ich wartość średnią, wartość ref. W dalszej części programu będę tworzyć raport za pomocą Raport Generation Toolkit (przykład w załączniku 1). W jednym pliku dwa arkusze: 1: wprowadzone przez użytkownika warunki, 2: tabela zawierające wartości srednie, referencyjne, różnica między nimi i wykresy z tych wartości. Może słowa "wyprowadzić z pętli" nie są precyzyjne.
Inaczej, chodzi mi o to żeby miec w innym pliku tabelę jak na załączniku 2 (już bez danych) abym mogła ją wrzucić do raportu.
Może dobrym rozwiązaniem byłby też stworzenie raportu i arkuszy przed pętlą, a w pętli jedynie dodanie tabeli i dalej zamknąć raport za pętlą? - nic już nie wiem :D
Ps. co znaczy za pomocą makra?
Załączniki
tabela.PNG
tabela.PNG (11.28 KiB) Przejrzano 192 razy
z_raportem.png

ODPOWIEDZ