Witam,
Jestem początkujący w LabVIEW i stąd też moje pytanie.
W jaki sposób wygenerować przebieg, który sterowaby napięciem wg zadanych punktów charakterystycznych? Oś X okresla punkty (w ms), w których miałaby nastepować zmiana napęcia, zaś Y okreslałaby wartość tego napięcia. Przykładowe punkty to [0, 0; 500, 0; 1000, 10; 2000, 10; 2500, 0; 3000, 0].
Jeśli chodzi o samo narysowanie to powiedzmy, że mi to wyszło ale chciałbym aby przebieg rysował się wolniej, a co za tym idzie i napięcie zmieniałoby się wolniej.
Z góry dziękuję
Problem z otrzymaniem przebiegu
- smiga
- Administrator
- Posty: 824
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Problem z otrzymaniem przebiegu
Sposobów jest pewnie wiele ... np. taki:
Jeżeli krok nie będzie stały (u Ciebie 500) to już nie będzie tak łatwo ;) ... może będzie łatwiej ... ale na pewno inaczej
Jeżeli krok nie będzie stały (u Ciebie 500) to już nie będzie tak łatwo ;) ... może będzie łatwiej ... ale na pewno inaczej

-
- Posty: 188
- Rejestracja: 03 lut 2012 15:09
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Warszawa
- Kontakt:
Re: Problem z otrzymaniem przebiegu
Wielkie dzieki za podpowiedź ale własnie krok bedzie zmienny. Pojedynczy okres tego przebiegu ma sterowac napięciem i więcej ma ich nie być (okresów). Czy da się wczytać dane z tabeli i poprostu spowolnic tylko predkość przebiegu/sygnału?
- smiga
- Administrator
- Posty: 824
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Problem z otrzymaniem przebiegu
Po drobnych modyfikacjach:
- Załączniki
-
- gen.vi
- v 2011
- (14.65 KiB) Pobrany 371 razy
-
- Posty: 188
- Rejestracja: 03 lut 2012 15:09
- Wersja środowiska: LabVIEW 2017
- Lokalizacja: Warszawa
- Kontakt:
Re: Problem z otrzymaniem przebiegu
Przepraszam za zabieranie czasu ale widzę, ze niedoprecyzowalem o co mi chodzi.
Przemieg powinien wygladac jak na ilustracji:

Na osi Y jak napisałem wcześniej określa się tylko napięcie maksymalne, a na osi X okresla się poszczególne punkty (x1-x5). Gdy X będzie miał wartość ostatniej liczby to zakończy się działanie pętli. Sam przebieg musi "rysować się" w rzeczywistych sekundach, a punkty w których ma następować zmiana wprowadzone są ręcznie.
Narysowanie go za pomocą 2 tabelek, gdzie jedna to wartości X a druga Y wystarcza z tym, że rysuje się to w mgnieniu oka. potrzebuję tylko spowolnić to do tego stopnia aby można było obserwować aktualną wartość.
Przemieg powinien wygladac jak na ilustracji:

Na osi Y jak napisałem wcześniej określa się tylko napięcie maksymalne, a na osi X okresla się poszczególne punkty (x1-x5). Gdy X będzie miał wartość ostatniej liczby to zakończy się działanie pętli. Sam przebieg musi "rysować się" w rzeczywistych sekundach, a punkty w których ma następować zmiana wprowadzone są ręcznie.
Narysowanie go za pomocą 2 tabelek, gdzie jedna to wartości X a druga Y wystarcza z tym, że rysuje się to w mgnieniu oka. potrzebuję tylko spowolnić to do tego stopnia aby można było obserwować aktualną wartość.
- smiga
- Administrator
- Posty: 824
- Rejestracja: 04 paź 2009 12:41
- Wersja środowiska: LabVIEW 2019
- Lokalizacja: Słupsk
Re: Problem z otrzymaniem przebiegu
Druga wersja dokładnie tak działa - jeżeli chcesz zakończyć działanie pętli po odczytaniu ostatniej wartości z tablicy, to podepnij stop pętli do porównania przed dolnym case'm (dodając po drodze negację).
Dane x1-x5 wprowadzasz w drugim wierszu, a y1-y5 w pierwszym wierszu tabeli wejściowej ...jakie chcesz (wywal ostatnią kolumnę i będą podobne do tych co narysowałeś).
Z absolutną "rzeczywistością możesz mieć problem (windows nie jest systemem czasu rzeczywistego), ale dobierając odpowiednio wartość przy zegarku na dole (najlepiej zamień Wait na Wait Until Next ms Multiple - będzie dokładniej) osiągniesz to co chcesz. Czas podajesz tam w ms więc jak wpiszesz 1000 to pętla wykona się co 1s.
Dane x1-x5 wprowadzasz w drugim wierszu, a y1-y5 w pierwszym wierszu tabeli wejściowej ...jakie chcesz (wywal ostatnią kolumnę i będą podobne do tych co narysowałeś).
Z absolutną "rzeczywistością możesz mieć problem (windows nie jest systemem czasu rzeczywistego), ale dobierając odpowiednio wartość przy zegarku na dole (najlepiej zamień Wait na Wait Until Next ms Multiple - będzie dokładniej) osiągniesz to co chcesz. Czas podajesz tam w ms więc jak wpiszesz 1000 to pętla wykona się co 1s.