Witam.
Przedstawię krótko mój problem. Przy użyciu mikrokontrolera przesyłam dane do labview po RS232. Jest do bufor 5 bajtowy, który zawiera dane o temperaturze wilgotności i cisnieniu. Następnie ta dane chce przedstawiać na trzech osobnych wykresach. NA osi x znajdowala by się oś czasu z przedziału od 0 do 24 h a na osi Y np. aktualną temperatura w danej godzinę. Stworzylem wykres XY tylko zamiast rysowac punkty co sekundę to na wykresie mam jeden punkt i zmienia sie w zaleznosci od temperaury ( w gole lub w dół). Oraz jest problem z wsywietlaniem godziny
Dzięki wielkie. Teraz rejestruje Tylko napotkałem kolejny problem. Przy odczycie danych pojawiają się jakieś błędy .. Gdy opóźnienie pętli było równe zero błędów było zdecydowanie więcej gdy ustawiłem opóźnienie 1000ms zmniejszy ale też występują. Czy jest jakiś sposób na to?
Chodzi o zmienna 'Stan bufora' ? Myślałem ze to w jakiś sposób wyeliminuje te skoki. Połączenie bezpośrednio też powoduje takie dziwne wartość... Jest jakaś możliwość wyeliminowania tego zjawiska?
Hej proponuje zaznaczony od przenieść do case (i całość włożyć do tej struktury sekwencyjnej), zrezygnować ze zmiennej lokalnej a skonwertowaną temperaturę (którą później wrzucasz do shift rejestru) przeciągnąć w stanie false z tego rejestru. Może to pomoże
Extensa - certyfikowani programiści LabVIEW z Krakowa.
Chodziło mi o to żeby wyświetlać dane na wykresie tylko i wyłącznie gdy otrzymamy dane z mikrokontrolera czyli w casie true dodajemy wynik do tablicy (bez zmiennych lokalnych) a w casie false wyświetlamy (przeciągamy z shift rejestru) stworzoną tablicę.
Poprawiony kod wrzucam w postaci VI
Jeżeli dalej będą błędy to wydaje mi się że może to być wina mikrokontrolera bo nic innego nie przychodzi mi do głowy
Jak bym jeszcze sprawdził czy to czasem nie będzie wina 'termination char', nie wiem jaka jest specyfikacja urządzenia, z którym się komunikujesz, ale z doświadczenia wiem, że znaki końca nie zawsze są takie jak domyślnie są ustawione w Visa. Chociaż po ponownym spojrzeniu na program, wydaje mi się to mniej prawdopodobne.
Tak jak ruda mówi, najlepiej żeby to wszystko się znalazło w jednym case. RS232 jest dosyć delikatny i podatny na zakłócenia więc można spróbować też przeanalizować trasę przewodu, ewentualnie stan wtyczek.
Możesz wykreślić XY Graph z temperaturą, ciśnieniem i wilgotnością - zobaczysz wtedy, czy wszystkie odczytane dane są złe czy tylko termometr robi Ci takie 'strzały'
No to możesz założyć, że wszystkie błędy to zakłócenia i przefiltrować dane - np. mierzyć różnicę między kilkoma ostatnimi próbkami i jeśli różnica pomiędzy nową próbką a poprzednią jest dużo większa od średniej tych różnic, wyliczyć przybliżoną wartość temperatury.