Strona 1 z 2

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

: 20 lip 2006 14:01
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

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

: 20 lip 2006 14:35
autor: Mikrobi
Prosimy VI

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

: 20 lip 2006 17:29
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.

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

: 21 lip 2006 12:02
autor: Mikrobi
:(
Proponuję spędzić trochę czasu na uporządkowaniu diagramu.

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

: 21 lip 2006 14:04
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 ?

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

: 21 lip 2006 14:31
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.

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

: 24 lip 2006 05:16
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 ?

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

: 24 lip 2006 14:07
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)

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

: 26 lip 2006 08:48
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.

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

: 26 lip 2006 10:02
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.

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

: 26 lip 2006 11:31
autor: pazuzu
W sensie ze gdy podepne tam jakiegos leda zeby zmienial swoj stan w momencie jak bede zmienial nastaw przelacznika na zakladce PANEL.

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

: 26 lip 2006 12:42
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(:

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

: 26 lip 2006 13:36
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 :)

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

: 26 lip 2006 14:06
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(:

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

: 27 lip 2006 06:17
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 :)