Maszyna stanow sie wysypuje
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Maszyna stanow sie wysypuje
Witam
Mam maszyne stanow, wszystko dziala sprawnie ale po pewnym czasie sie wysypuje.
Jak najprosciej sprawdzic gdzie??
Probowalem pomijac poszczegolne stany ale to tylko nieznacznie wydluzylo czas dzialania. Maxymalny zarejestrowany czas to 2 godzinki.
Moge wstawic snagita, ale mam kilka subviai i odczytuje dane z serwera poprzez datasocketa...
Mam maszyne stanow, wszystko dziala sprawnie ale po pewnym czasie sie wysypuje.
Jak najprosciej sprawdzic gdzie??
Probowalem pomijac poszczegolne stany ale to tylko nieznacznie wydluzylo czas dzialania. Maxymalny zarejestrowany czas to 2 godzinki.
Moge wstawic snagita, ale mam kilka subviai i odczytuje dane z serwera poprzez datasocketa...
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Maszyna stanow sie wysypuje
Oczywiscie mialem na mysli snippeta a nie snagita...
W poszukiwaniu przyczyny pomieszalem troche w kolejnosci i probowalem poprzerabiac troche kod. Sorry za bajzel i brak opisow....
W poszukiwaniu przyczyny pomieszalem troche w kolejnosci i probowalem poprzerabiac troche kod. Sorry za bajzel i brak opisow....
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Maszyna stanow sie wysypuje
Krotki opis programu.
Program ma za zadanie kontrolowac pomiar mocy np. paneli wodnych, wymmiennikow ciepla itd. Bardzo prosty program, oblicza dT na wejsciu i wyjsciu, kontroluje przeplyw wody poprzez dwa zawory regulujace. Do tego jeszcze kilka innych temperatur...
Calosc pomiarow pobiera z DS (DataServera, akurat taki system istnieje). Calosc ma przedstawic na Chartcie w postaci osobnych wykresow reprezentujacych poszczegolne wartosci. Plus ewentualnie ma porownywac z danymi np. producenta... % wartosci...
No niby banal.
W stanie buttons, planuje wstawic obsluge eventa dla wiekszosci guzikow...
Program ma za zadanie kontrolowac pomiar mocy np. paneli wodnych, wymmiennikow ciepla itd. Bardzo prosty program, oblicza dT na wejsciu i wyjsciu, kontroluje przeplyw wody poprzez dwa zawory regulujace. Do tego jeszcze kilka innych temperatur...
Calosc pomiarow pobiera z DS (DataServera, akurat taki system istnieje). Calosc ma przedstawic na Chartcie w postaci osobnych wykresow reprezentujacych poszczegolne wartosci. Plus ewentualnie ma porownywac z danymi np. producenta... % wartosci...
No niby banal.
W stanie buttons, planuje wstawic obsluge eventa dla wiekszosci guzikow...
Maszyna stanow sie wysypuje
Krótki komentarz programu:
Bałagan. Posprzątaj.
Ctrl+U albo przycisk z ikoną miotły.
Bałagan. Posprzątaj.
Ctrl+U albo przycisk z ikoną miotły.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Maszyna stanow sie wysypuje
Tak jak pisalem, jest balagan... osobiscie uwazam ze Ctrl+U czesto bardziej miesza niz sprzata...
Dokladnie wysypuje mi sie po 1:20,
Glowny loop wykonuje sie 28672 razy.
Dokladnie wysypuje mi sie po 1:20,
Glowny loop wykonuje sie 28672 razy.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Maszyna stanow sie wysypuje
Po wrzuceniu DS_close do wnetrza petli przyspieszylo dzialanie ale nie rozwiazalo problemu...
30min
56105 interakcji...
jutro, napozniej w pn. puszcze jeszcze raz w celu potwierdzenia...
30min
56105 interakcji...
jutro, napozniej w pn. puszcze jeszcze raz w celu potwierdzenia...
- Pitol
- Moderator
- Posty: 982
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Re: Maszyna stanow sie wysypuje
1. Co to znaczy, że się wysypuje? Jakieś szczegóły podaj.
2. Diagram jest, jak pisał Mikrobi, niefajny. Nie możesz tego trochę posprzątać? Nie mówię już o Ctrl-U, ale o własnej inicjatywie.
3. Co do sprawdzenia gdzie się wysypuje to najprościej jest zapiąć rejestr przesuwny ze stringiem i po każdej funkcji dodawać do tego stringa informację co się wydarzyło + nr iteracji.
4. Jeszcze raz napiszesz trzy posty pod rząd a usunę cały wątek. Jest narzędzie, nazywa się EDYTUJ.
2. Diagram jest, jak pisał Mikrobi, niefajny. Nie możesz tego trochę posprzątać? Nie mówię już o Ctrl-U, ale o własnej inicjatywie.
3. Co do sprawdzenia gdzie się wysypuje to najprościej jest zapiąć rejestr przesuwny ze stringiem i po każdej funkcji dodawać do tego stringa informację co się wydarzyło + nr iteracji.
4. Jeszcze raz napiszesz trzy posty pod rząd a usunę cały wątek. Jest narzędzie, nazywa się EDYTUJ.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Maszyna stanow sie wysypuje
1. Mozliwe ze zle sie wyrazilem. Nie odpowiada. Jedyna opcja jest wymuszone zamkniecie LV. W momencie zatrzymania wskazniki zuzycia procka i ramu sa ponizej 50%. Wszystko inne smiga oprocz LV.
2. Poprawilem diagram. Wszystko co podejrzewalem wrzucilem do Case Structure z F jako constant lub jego stan pominelem w maszynie
3. Sprawdze z tym rejestrem i sttringiem.
4. Mialem szczescie, napisalem tylko dwa
Moze robie jakis podstawowy blad? Moze wystarczy wstawic jakies opoznienie, co spowoduje wolniejsze zapelnienie sie bufora, albo dodatkowa petle ktora czysci ten bufor (niewiem czy wogole jest taka opcja)
Szybkosc pomiarow niejest tutaj najwazniejsza. reakcja termometrow jest dosc wolna no i ich odczyt nieczestrzy jak 10 sec.
PS. sry za wprowadzone zamieszanie... wszystkie komenty sie licza, nawet te glupie. A najwazniejsze sa te z konstruktywna krytyka.
2. Poprawilem diagram. Wszystko co podejrzewalem wrzucilem do Case Structure z F jako constant lub jego stan pominelem w maszynie
3. Sprawdze z tym rejestrem i sttringiem.
4. Mialem szczescie, napisalem tylko dwa
Moze robie jakis podstawowy blad? Moze wystarczy wstawic jakies opoznienie, co spowoduje wolniejsze zapelnienie sie bufora, albo dodatkowa petle ktora czysci ten bufor (niewiem czy wogole jest taka opcja)
Szybkosc pomiarow niejest tutaj najwazniejsza. reakcja termometrow jest dosc wolna no i ich odczyt nieczestrzy jak 10 sec.
PS. sry za wprowadzone zamieszanie... wszystkie komenty sie licza, nawet te glupie. A najwazniejsze sa te z konstruktywna krytyka.
- Pitol
- Moderator
- Posty: 982
- Rejestracja: 19 lip 2007 00:00
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Kraków
Maszyna stanow sie wysypuje
Ciężko powiedzieć, co może nie działać. Spróbuj tak jak mówiłem tej opcji ze stringiem. Ale skoro się LV wysypuje, to radziłbym, jeśli w ogóle to wchodzi w grę, po każdej instrukcji/funkcji/subVI wrzucać status do pliku, żeby się informacja nie zgubiła. Zapis zabierze trochę czasu ale nie widzę, żeby Twój kod "latał" z jakąś kosmiczną prędkością więc powinno się dać to tam wrzucić.
Sprawdzałeś może czy pamięć w trakcie działania programu rośnie/maleje/stoi w miejscu?
Z tego co zauważyłem w programie w jednym z przypadków w strukturze case masz otwieranie->odczyt->zapis->zamknięcie DataSocket'u. Może lepiej by było otworzyć DS przed pętlą, a zamykać po pętli? Wykona się to tylko raz a referencja będzie krążyć w pętli. Może to otwieranie/zamykanie ma jakiś wpływ na stabilność programu... Ciężko powiedzieć.
Poćwicz i daj znać czy coś się udało osiągnąć.
Sprawdzałeś może czy pamięć w trakcie działania programu rośnie/maleje/stoi w miejscu?
Z tego co zauważyłem w programie w jednym z przypadków w strukturze case masz otwieranie->odczyt->zapis->zamknięcie DataSocket'u. Może lepiej by było otworzyć DS przed pętlą, a zamykać po pętli? Wykona się to tylko raz a referencja będzie krążyć w pętli. Może to otwieranie/zamykanie ma jakiś wpływ na stabilność programu... Ciężko powiedzieć.
Poćwicz i daj znać czy coś się udało osiągnąć.
Re: Maszyna stanow sie wysypuje
Pozostaje zgodzic sie z Pitolem - faktycznie niewiele tu widac i raczej mozna sie bawic we wrozenie typu szamanskiego niz debugging ;) Niemniej jednak, moja uwage przykuly referencje. Oprocz tego, otwierasz/zamykasz plik za kazdym razem w kazdej iteracji, to jeszcze nie we wszystkich case'ach prowadzisz dobra referencje do zamkniecia. Nie zdziwilbym sie gdyby ilosc naotwieranych referencji w pamieci w koncu zapchala LV na tyle ze sie posypie. Proponuje przeprowadzic drut do close file w kazdym case i sprawdzic czy to pomoze.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Maszyna stanow sie wysypuje
Dzieki za podpowiedzi. Wlasnie robie maly test. Wrzucilem wszsytko do jednego clustra ktory jest inicjowany przed loopem z maszyna.
W kazdym stanie za pomoca bundle/unbundle by name bede wyciagal/zapisywal potrzebne mi dane i/lub nowe setpunkty.
Jak juz bede mial jakikolwiek rezultat to zaprezentuje go na forum...
PS. Ma ktos podobny kod, na ktorym moglbym sie posilkowac??
W kazdym stanie za pomoca bundle/unbundle by name bede wyciagal/zapisywal potrzebne mi dane i/lub nowe setpunkty.
Jak juz bede mial jakikolwiek rezultat to zaprezentuje go na forum...
PS. Ma ktos podobny kod, na ktorym moglbym sie posilkowac??
Ostatnio zmieniony 01 paź 2012 11:46 przez Jamal79, łącznie zmieniany 1 raz.
-
- Posty: 289
- Rejestracja: 01 maja 2012 14:14
- Wersja środowiska: LabVIEW 2012
- Lokalizacja: Farum
Maszyna stanow sie wysypuje
MOj problem znikl wraz z zainstalowaniem LV12. Skorzystalem z jednego z gotowych szablonow . Jestem w trakcie dodawania nowych funkcji. Niestety czasowo sie nie wyrabiam. Mam nawal innej pracy. Jak juz zrobie to wstawie snagita.