Maszyna stanów a przenoszenie danych pomiedzy Case-ami...
- 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...
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
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
- 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.
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 !
Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami...
Proponuję spędzić trochę czasu na uporządkowaniu diagramu.
- 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.
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 !
Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami...
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.
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.
- 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.
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 !
Re: Maszyna stanów a przenoszenie danych pomiedzy Case-ami...
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)
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)
- 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.
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.
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 !
- 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.
A jak to to ma reagować? Bo drut z booleanem nie jest do niczego podpięty w tej chwili.Chcialbym aby w tym miejscu reagowal na to czy na zakladce Pulpit jest wybrane True
albo False.
- 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.
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 !
- 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.
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(:
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(:
- 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.
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 !
- 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.
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(:
Proponowałbym rozwiązanie z załącznika, przy wykorzystaniu trochę niedocenianego Tab Controla ;)
Pozdrawiam(:
- 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.
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
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 !