Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Tematy związane z tworzeniem dużych aplikacji. Zaganiednia dotyczące architektury oraz zasad tworzenia optymalnych rozwiązań.
lala166
Posty: 19
Rejestracja: 15 kwie 2011 12:28
Wersja środowiska: LabVIEW 2010

Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Post autor: lala166 »

Witajcie!
W jednym vi stworzyłem klaster do którego wpisuje ustawienia. Chciałbym skorzystać z tego klastra wywołując ten vi w innym tak jak na załączonych screenach.

Obrazek

Uploaded with ImageShack.us

Obrazek

Uploaded with ImageShack.us

Jak to połączyć?
Ostatnio zmieniony 23 lis 2011 14:13 przez lala166, łącznie zmieniany 1 raz.
Awatar użytkownika
Pitol
Moderator
Posty: 984
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Aplikacja złożona z kilku vi'ów - korzystanie z klastrów

Post autor: Pitol »

Nie bardzo rozumiem problem. Jeśli budowanie tego klastra jest w subVI to wystarczy umieścić ten klaster jako indykator na panelu i ustawić go jako wyjście z subVI. Następnie dodać subVI na diagram tego innego VI i podłączyć wyjście do czego tam chcesz...
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
lala166
Posty: 19
Rejestracja: 15 kwie 2011 12:28
Wersja środowiska: LabVIEW 2010

Aplikacja złożona z kilku vi'ów - korzystanie z klastrów

Post autor: lala166 »

Tak, problemem jest że nie wiem jak ustawić go jako wyjście. Jestem początkujący w LabView, proszę o wytłumaczenie.
Awatar użytkownika
Pitol
Moderator
Posty: 984
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Aplikacja złożona z kilku vi'ów - korzystanie z klastrów

Post autor: Pitol »

Aha, ok. Zatem opis jak podłączać terminale we/wy jest dostępny tutaj: Creating Connector Terminals for SubVIs in LabVIEW
Jeśli będziesz miał problemy wciąż daj znać. Pomożemy.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
lala166
Posty: 19
Rejestracja: 15 kwie 2011 12:28
Wersja środowiska: LabVIEW 2010

Aplikacja złożona z kilku vi'ów - korzystanie z klastrów

Post autor: lala166 »

Zadziałało ;)

Kontynuując podstawowe problemy:

Obrazek

Uploaded with ImageShack.us


Chciałbym, żeby po odznaczeniu ptaszka przy np "Temp1" automatycznie znikała możliwość wpisywania wartości. To co zrobiłem działa tylko w ten sposób: 1. Uruchamiam vi 2. Odznaczam ptaszka - nic się nie dzieje 3. Zatrzymuję program 4. Uruchamiam i już jest wyłączone.
Czyli ostatecznie: jak to robić w "czasie rzeczywistym"
Awatar użytkownika
Pitol
Moderator
Posty: 984
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Aplikacja złożona z kilku vi'ów - korzystanie z klastrów

Post autor: Pitol »

Widzę, że wszystko masz w zdarzeniu "OK Value Change". Aby uzyskać żądane działanie, musisz obsłużyć przypadek "Temp1 Value Change" i w nim wstawić funkcjonalność, która w zależności od stanu przycisku Temp1 będzie włączać/wyłączać możliwość edycji kontrolki "Temperatura1".

I drobna porada: staraj się dodawać obrazy za pomocą narzędzia tego forum (dodaj załącznik przy tworzeniu postów). Osobiście nie jestem fanem ImageShack i podobnych z dwóch powodów:
1. Trzeba kliknąć co najmniej dwa razy żeby zobaczyć co tam masz
2. W pracy nie mam dostępu do tych serwerów więc nie mam jak pomóc
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
lala166
Posty: 19
Rejestracja: 15 kwie 2011 12:28
Wersja środowiska: LabVIEW 2010

Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Post autor: lala166 »

Jak zorganizować tablicę w której znajdują się:
* argument x jest datą
* wartości y0..y7
W zależności od parametru i:0..7 wpisywana jest wartość (z bufora COM) do odpowiedniego y wraz z godziną wpisania.
Awatar użytkownika
Pitol
Moderator
Posty: 984
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Post autor: Pitol »

Nie bardzo rozumiem co chcesz osiągnąć. Możesz bardziej szczegółowo to opisać?
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
lala166
Posty: 19
Rejestracja: 15 kwie 2011 12:28
Wersja środowiska: LabVIEW 2010

Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Post autor: lala166 »

Mam parametr "i" którym wybieram co chce mierzyć. Jest on przesyłany do uC a ten odpowiada daną. I teraz chce żeby to się wpisywało w odpowiedni rząd tablicy. Tak abym mógł wyświetlić to później na wykresie - kilka przebiegów.
Awatar użytkownika
Pitol
Moderator
Posty: 984
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Post autor: Pitol »

No to mając ten parametr i możesz za pomocą bloczka Replace Array Subset podmieniać odpowiednią pozycję w tablicy. Najlepiej zainicjuj sobie wcześniej tablicę odpowiednią ilością elementów a następnie podczas pracy programu będziesz podmieniał konkretne indeksy tablicy wartościami odczytanymi z uC.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
lala166
Posty: 19
Rejestracja: 15 kwie 2011 12:28
Wersja środowiska: LabVIEW 2010

Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Post autor: lala166 »

A jak chce żeby tablica ta tablica wcześniej zainicjowana się rozszerzała ?
Awatar użytkownika
Pitol
Moderator
Posty: 984
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Post autor: Pitol »

To teraz pytanie: czy Ty na początku wiesz jaki będzie rozmiar tablicy, czy w trakcie programu ta tablica będzie zmieniać swój rozmiar?
Jeśli ma się zmieniać to musisz zaimplementować funkcjonalność, która będzie sprawdzać rozmiar tablicy oraz wartość parametru "i". Jeśli indeks będzie większy od rozmiaru tablicy to nowy element będzie dodany na koniec tablicy.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
lala166
Posty: 19
Rejestracja: 15 kwie 2011 12:28
Wersja środowiska: LabVIEW 2010

Re: Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Post autor: lala166 »

Tablica już się rozszerza.
uC odbiera zapytanie i odsyła po kolei żądaną daną w raz z poprzedzającym ją indeksem. Indeks ten mówi mi w którą kolumnę do tablicy mam wpisać wartość. Przedstawiłem to na zdjęciu.
Chcę teraz zrobić wykres na podstawie tej tablicy. Mam przekonwertować całą tablicę na dane liczbowe? Jest jakiś inteligenty sposób który popierze mi dane z tablicy i je narysuje na wykresie czy trzeba to robić komórka po komórce?
Załączniki
zapis.JPG
Awatar użytkownika
Pitol
Moderator
Posty: 984
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Aplikacja złożona z kilku vi'ów - klastry, rs232, podstawy

Post autor: Pitol »

Aby wyświetlić te dane musisz je mieć w postaci liczbowej. Skorzystaj z bloczka Decimal String to Number albo Fract/Exp. String to Number z palety Strings -> Conversion a następnie podłącz tablicę wyjściową do wykresu (np. Waveform Graph)
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
ODPOWIEDZ