Maszyna stanów a przenoszenie danych pomiedzy Case-ami...

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Awatar użytkownika
pazuzu
Posty: 30
Rejestracja: 20 lip 2006 00:00
Wersja środowiska: LabVIEW 8.0
Lokalizacja: Jaworzno

Maszyna stanów a przenoszenie danych pomiedzy Case-ami...

Post autor: pazuzu »

Witam

mam pytanie, czy jest mozliwosc przeniesienia danych z jednego Casea do drugiego. Chodzi o to ze te dane sa typo Bolean i przenoszenie ich do innych struktur Case nie dziala. Mianowicie poza cala struktura Case przenosza sie odpowiednio, jednak w momencie gdy maja wejsc do nastepnej to na indykatorze nie dostaje zadnej odpowiedzi, albo dostaje tylko pierwszy stan, ktory nie reaguje na zmiany mimo iz jest w petli. Zmiany dokonuje za pomoca przelacznika, ktory rowniez przenosi aplikacje do odpowiedniego Casa. Wykorzystanie Shift Registera nie pomaga. Jezeli jest ktos kto moze mi pomoc w tej kwesti to bardzo bym prosil. Jezeli trzeba to zamieszcze VI-a.

pozdrawiam
pazuzu
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami...

Post autor: Mikrobi »

Prosimy VI
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
pazuzu
Posty: 30
Rejestracja: 20 lip 2006 00:00
Wersja środowiska: LabVIEW 8.0
Lokalizacja: Jaworzno

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: pazuzu »

Dolaczam VI. Mam nadzieje ze jest jako tako czytelny, staralem sie go poukladac jak to tylko mozliwe. Jezeli zapyta o plik do pobrania to w katalogu jest plik data. Pozdrawiam serdecznie.
Natural Born Philosopher ! :)
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami...

Post autor: Mikrobi »

:(
Proponuję spędzić trochę czasu na uporządkowaniu diagramu.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
pazuzu
Posty: 30
Rejestracja: 20 lip 2006 00:00
Wersja środowiska: LabVIEW 8.0
Lokalizacja: Jaworzno

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: pazuzu »

hmm... a jak moglbym to zrobic ? myslalem ze juz go jakos uporzadkowalem. najwyrazniej sie mylilem. moge uzyskac jakas sugestie na temat tego uporzadkowywania ?
Natural Born Philosopher ! :)
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami...

Post autor: Mikrobi »

1. wyprostować przewody 2. prowadzić informacje na diagramie od lewej do prawej a nie zawijac
3. nie krzyzować niepotrzebnie przewodów 4. zmiescic diagram na jednym ekranie 5. wprowadzać informację do subVIjów z lewej a wyprowadzać
z prawej strony
Diagram to podstawowa dokumentacja programu - powinien być czytelny dla kazdego programisty LabVIEW
Nie odbieraj tego jako zarzuty a jako rady.
Kiedyś bedziesz potrzebował omówić stworzony przez Ciebie diagram. Czlowiek który go zobaczy może go nie rozumieć. Zastanów się jednak czy biorąc po uwagę cały wkład pracy chcesz aby pierwszym wrażeniem jakie odniesie było: "chaos".
Ponadto czytelny diagram pomaga w samodzielnej analizie kodu - to się przyda tak przy szukaniu błedów metodycznych jak i rozwiajniu programu.
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
pazuzu
Posty: 30
Rejestracja: 20 lip 2006 00:00
Wersja środowiska: LabVIEW 8.0
Lokalizacja: Jaworzno

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: pazuzu »

Oczywiscie odbieram to jako rade. Dzieki wielkie za uwagi. Schemat wyglada tak a nie inaczej dlatego ze chcialem go zmiescic na jak najmniejszej powierzchni, przez co jest taki troche pomieszany :) postaram sie jeszcze dzisiaj wrzucic poprawiony schemat do dalszej analizy;] jest jakas mozliwosc zaby zwiekszyc rozmiar ikony SubVi-aja tak aby wyjscia byly po jednej stronie a wejscia po drugiej ?
Natural Born Philosopher ! :)
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami...

Post autor: Mikrobi »

Zwiększani ilości wyprowadzeń (connector) to nie jest dobry pomysł Sugeruję raczej zamykanie do klastra dużej ilości informacji (oczywiście z odpowiednimi etykietami) i wydobycie informacji elementem Unbundle By Name.
Ponadto warto zastanowić się nad zamknięciem do subVI operacji na drzewie. ;) To pozwoli na zmniejszenie miejsca zajmowanego przez diagram.
Tworzysz rozbudowaną aplikację. Zastanów się czy na pewno wszystkie proste operacje powinny być "widoczne wprost". Część z nich zajmuje duzo miejsca, a można je opisać kilkoma słowami i zamknąć w subVI.
Kolejna uwaga - każdy subVI powinien byc opisany (na ikonie PKM>> VI Properties >> Category >> Documentation).
Dzięki temu w pomocy kontekstowej będzie można przeczytać komentarz w krótym zawrzesz informację o tym co robi dany subVI.
Jest dobrze.
Może być Bardzo Dobrze 8)
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
pazuzu
Posty: 30
Rejestracja: 20 lip 2006 00:00
Wersja środowiska: LabVIEW 8.0
Lokalizacja: Jaworzno

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: pazuzu »

Witam.
Teraz program pod wzgledem wygladu jest zoptymalizowany chyba najlepiej jak potrafie. Podejrzewam ze jest oczywiscie mozliwosc jeszcze wiekszego zoptymalizowania kodu, jednak w tym momencie mam wrazenie ze wiekszosc wymagan zostala spelniona :) Tak wiec jezeli ktos jest w stanie mi powiedziec co nalezy zrobic aby dane typu Boolean byly przenoszone pomiedzy poszczegolnymi Case-ami bede wdzieczny. Pozdrawiam serdecznie.
Natural Born Philosopher ! :)
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: jogurt_owocowy »

Chcialbym aby w tym miejscu reagowal na to czy na zakladce Pulpit jest wybrane True
albo False.
A jak to to ma reagować? Bo drut z booleanem nie jest do niczego podpięty w tej chwili.
Awatar użytkownika
pazuzu
Posty: 30
Rejestracja: 20 lip 2006 00:00
Wersja środowiska: LabVIEW 8.0
Lokalizacja: Jaworzno

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: pazuzu »

W sensie ze gdy podepne tam jakiegos leda zeby zmienial swoj stan w momencie jak bede zmienial nastaw przelacznika na zakladce PANEL.
Natural Born Philosopher ! :)
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: jogurt_owocowy »

Twój program najwyraźniej nie działa tak jakbyś chciał, ale działa poprawnie.
Zmodyfikuj program dołączając diodki do druta boolean w każdej ramce Case'a, dołóż sobie opóźnienie 0,5s w głównej pętli i obserwuj co się dzieje...
Sekwencja stanów jest następująca: Wczytywanie -> Drzewo -> Panel -> Wybór ręczny/automatyczny -> Panel -> Wybór ręczny/automatyczny -> Panel -> itd. To czy ze stanu Panel wejdzie w tryb automatyczny czy ręczny zależy od booleana, który jednocześnie przekazywany jest do następnego obiegu pętli. Jeśli jest FALSE to przechodzi w Wybór ręczny - diodka w tym stanie dostanie wartość FALSE. TRUE nie może dostać nigdy, bo wtedy ze stanu Panel maszyna szłaby do Wyszukiwania. Poza tym, gdy program jest w stanie Wybór ręczny dioda w ramce Wyszukiwanie nie jest aktualizowana, bo ta ramka się nie wykonuje.
Gdy boolean ma wartość TRUE sytuacja jest odwrotna.
To, że diody wydają się nie reagować, wynika z tego, że tak naprawdę tylko jedna jest aktualizowana w danym obiegu pętli. W Twoim przypadku, akurat aktualizują się tylko dwie(Wybór ręczny i Wyszukiwanie) i zawsze dostają tą samą wartość co poprzednio.
Pytanie więc, czy maszyna stanów się tutaj nadaje. Napisz jaki efekt chcesz uzyskać to się coś wymyśli.
Pozdrawiam(:
Awatar użytkownika
pazuzu
Posty: 30
Rejestracja: 20 lip 2006 00:00
Wersja środowiska: LabVIEW 8.0
Lokalizacja: Jaworzno

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: pazuzu »

Chciałbym uzyskać coś takiego, że gdy wykonuje się zakładka z wyboru ręcznego albo z automatycznego to żeby elementy zawarte w danej zakładce nie były wyświetlanie. Skorzystał bym tutaj z Propery Node -> Visible. Tak sobie wymysliłem że w taki sposób chciałbym to uzyskać. Oczywiscie jeżeli jest inna droga do uzyskania takiego efektu to byłbym wdzieczny za jej wskazanie :) Dzieki za przejrzenie mojego schematu :)
Natural Born Philosopher ! :)
Awatar użytkownika
jogurt_owocowy
Posty: 1317
Rejestracja: 30 lis 2004 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Kraków

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: jogurt_owocowy »

No można też przez Property Node, ale po co ciągnąć wtedy ten dodatkowy drut skoro wiadomo co w nim będzie?
Proponowałbym rozwiązanie z załącznika, przy wykorzystaniu trochę niedocenianego Tab Controla ;)

Pozdrawiam(:
Awatar użytkownika
pazuzu
Posty: 30
Rejestracja: 20 lip 2006 00:00
Wersja środowiska: LabVIEW 8.0
Lokalizacja: Jaworzno

Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami.

Post autor: pazuzu »

Czesc.
Dzieki za pomoc. Fajna sprawa ten Tab Control ale jest problem w sensie ze u mnie nie ma opcji Tabs w Visible Items. Swoja droga nie bardzo wiem jak to zastosowac... Czy byla by szansa abys mi to jakos jasniej wytlumaczyl ?

pozdrawiam
pazuzu

Ad. Chyba zalapalem o co chodzi :) dzieki za podsuniecie pomyslu :)
Natural Born Philosopher ! :)
ODPOWIEDZ