Zapisywanie sekwencji danych i odczytywanie

Jeśli masz coś do powiedzenia w sprawie LabVIEW napisz. Tutaj są tematy, których nie można uściślić do innych działów.
Ellain1998
Posty: 5
Rejestracja: 02 gru 2021 21:29
Wersja środowiska: LabVIEW 2019

Zapisywanie sekwencji danych i odczytywanie

Post autor: Ellain1998 »

Cześć, zajmuje się obecnie pracą inżynierską w obrębie labview (softmotion module) i solidworksa. Za pomocą czujnika siły FT poruszam zamodelowanym ramieniem robota w Solidworks, a cała reszta jest zawarta w labview. Nie znam tego oprogramowania aż tak dobrze i nauczenie się niektórych rozwiązań przychodziło mi nie zawsze tak łatwo jak udałoby mi się to zrealizować w np. C++/C. Aktualnie zmagam się z ostatnim problemem, nie wiem jak zapisywać sekwencję 3 danych jako pozycji przesunięcia osi robota, a następnie po wciśnięciu guzika wywołać te sekwencję i pomiędzy następnymi ruchami tym wstawić krótki delay np 2-3 sek (jeżeli tych sekwencji byłoby więcej niż 1), oczywiście zapisanie tej pozycji te odbywałoby się za pomocą jakiegoś guzika. Czy wiecie może pod jakim hasłem mogę znaleźć jakieś wskazówki co do mojego problemu, jakiś poradnik? Dla zainteresowanych mogę wysłać efekt na filmie, ewentualnie dodać więcej zdjęć.
Dzięki za wszelkie odpowiedzi! :D
Załączniki
Bez tytułu2.png
Bez tytułu.png
spalinowy
Posty: 169
Rejestracja: 03 lut 2012 15:09
Wersja środowiska: LabVIEW 2017
Lokalizacja: Warszawa
Kontakt:

Re: Zapisywanie sekwencji danych i odczytywanie

Post autor: spalinowy »

Nie bardzo rozumiem, co ma się zapisywać i dopisywać... Trochę jaśniej poproszę.
Możesz też zrobić wizualizację za pomocą 3D Picture. Importujesz tylko bryły i potem podajesz współrzędne i gotowe.
Ellain1998
Posty: 5
Rejestracja: 02 gru 2021 21:29
Wersja środowiska: LabVIEW 2019

Re: Zapisywanie sekwencji danych i odczytywanie

Post autor: Ellain1998 »

Wizualizację mam już przygotowaną(mogę wysłać mailem film), chce zapisywać 3 dane, są podpisane Position, a następnie móc je odtworzyć po kolei tzn.

Pos1: Pos2: Pos3:
1. 120 30 30
2. 60 10 30
3. 0 30 0

Czyli to są zapisane sekwencje, sekwencja 1,2,3, a następnie chciałbym w dowolnym momencie je wpisać z powrotem. W skrócie chce zapisać położenia wszystkich 3 osi, a następnie odtwarzać ruch po kolei. Tak jak działa każdy program w automatach.
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Zapisywanie sekwencji danych i odczytywanie

Post autor: Pitol »

Odpowiedziałeś sobie sam: musisz zrobić sobie automat...
Patrząc na Twój kod będzie to trochę trudne, ponieważ wszystko masz w jednym VI.
Zeby zbudować jakikolwiek automat na tym co masz, przydałoby sie posprzątać.

Postaraj się pozamykać funkcjnalności do subVI, poukładaj to trochę logicznie na diagramie i wróć do nas.
Wtedy pomożemy.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Ellain1998
Posty: 5
Rejestracja: 02 gru 2021 21:29
Wersja środowiska: LabVIEW 2019

Re: Zapisywanie sekwencji danych i odczytywanie

Post autor: Ellain1998 »

Ok, dzięki za pomoc, sam sobie już poradzę, a z takim podejściem zapraszam na elektrodę.
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Zapisywanie sekwencji danych i odczytywanie

Post autor: Pitol »

Spójrz na swój diagram i sam sobie odpowiedz czy jest to czytelne dla kogoś, kto to widzi po raz pierwszy?

Na forum mamy POMAGAĆ, a nie ROBIĆ za kogoś.
Pierwszym krokiem, który większość zaproponuje jest właśnie posprzątanie diagramu.
Wtedy będzie nam łatwiej zrozumieć jak to działa i zaproponować rozwiązanie, które będzie najlepsze dla Twojego przykładu.

Ale jeśli chcesz najszybsze rozwiązanie to masz:
Wrzuć sobie zawartość pętli While do jeszcze jednej pętli FOR, która będzie sterowana tablicami POS1, POS2, POS3.
I już.
Czy zadziała? Nie wiem, bo kod jest trudny do analizy.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Ellain1998
Posty: 5
Rejestracja: 02 gru 2021 21:29
Wersja środowiska: LabVIEW 2019

Re: Zapisywanie sekwencji danych i odczytywanie

Post autor: Ellain1998 »

W żaden sposób nie chodzi mi o to a by ktoś za mnie coś zrobił, po prostu nie wiem gdzie zacząć, mój kod można odłożyć na bok bo jest i tak już zbudowany z 11 SubViów, chodzi mi tylko o sposób zapisu 3 zmiennych i odczyt ich, nie ma to dla mnie znaczenia czy zostałbym nakierowany w stosunku do mojego kodu czy od zera, a szczerze wolałbym mój odstawić na bok żeby nie zwracać uwagi na niepotrzebne rzeczy.

Aktualnie próbuję ruszyć to z użyciem tablic, zapisywać zmienne na 6 różnych tablicach, które będą przypisane do 6 opcji switcha, jest to niezbyt elegancki sposób, ale byleby działało... Niestety LabView nie chce współpracować i o ile rozumiem można insertować dane wraz z zwiększaniem indexu, ale nie można nadpisywać istniejących, tak jak to działa w każdym tekstowym języku programowania. Czy jest inny sposób, dedykowany do takich rozwiązań? Przesyłam zdj, które na 100% wyczerpuje moje pytanie.
Załączniki
vi.PNG
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Zapisywanie sekwencji danych i odczytywanie

Post autor: Pitol »

Ok.

No to pokażę Ci gdzie zacząć ;)

Najlepiej by było przepisać Twój kod, żeby od początku już zakładał możliwość sterowania pozycją, ale jeśli nie chcesz to i na to są rozwiązania.
Jeśli dobrze rozumiem Twój kod, to ta główna pętla While steruje pozycją za pomocą kontrolek "position 1,2,3", itd.
Najprościej będzie przygotować oddzielną pętlę, która będzie sterowała tymi kontrolkami zdalnie, za pomocą zmiennych lokalnych.
Spójrz na przykład, który załączyłem.
Mam nadzieję, że naprowadzi Cie na rozwiązanie Twojego problemu.
ControlExample.PNG
Załączniki
ControlExample_2019.vi
Zapisane w wersji LV2019
(17 KiB) Pobrany 120 razy
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
Ellain1998
Posty: 5
Rejestracja: 02 gru 2021 21:29
Wersja środowiska: LabVIEW 2019

Re: Zapisywanie sekwencji danych i odczytywanie

Post autor: Ellain1998 »

Ostatecznie poradziłem sobie ze wszystkimi dręczącymi mnie problemami, z tego co wiem odczyt poszczególnych wierszy z tablicy dwuwymiarowej nie jest przeprowadzony "poprawnie". Mimo wszystko to działa, jak już wspominałem było mi to potrzebne do pracy dyplomowej, a problemy które się pojawiły w typowych tekstowych językach programowania rozwiązuje się dziecinnie prosto. Raczej to moje ostatatnie spotkanie z labview, ciekawe doświadczenie. Jeżeli jest ktoś zainteresowany efektem, to po skończenie mogę przesłać na mail film, lub udostępnić w hostingu. Zostało mi tylko wyznaczenie zadania odwrotnego kinematyki lub wyznaczenia geometrii robota przy zastosowaniu trygnonometrii "na piechotę".

Przesyłam screenshoty:

1. Zapisywanie danych po kliknięciu guzika. Dane zapisują się tylko jeden raz i tylko i wyłącznie po następnej iteracji pętli while od zwolnienia przycisku (przejście z true na false).
2. Pobieranie zmiennych z wygenerowanej tablicy uprzednio zapisanej w formie pliku csv z punktu 1. Wybór wiersza to zmiana indexu, można to robić w trakcie trwania programu bez problemu. W moim przypadku ważne było wyłuskiwanie pojedynczych wartości żeby je później wykorzystać do przypisania pozycji.

Na koniec dziękuje za pomoc i chęci mimo nieporozumień już na samym początku, nakierowało mnie to na rozwiązanie problemu. Niestety dostępne w internecie poradniki do labview są na poziomie "przeczytałem helpa i nie zrobię nic poza tym co tam znalazłem", a szukanie przeplatane z eksperymentowaniem kosztuje dużo czasu i nerwów. Szkoda bo wychodzi na to, że jeśli się chce to można.
Załączniki
howe.PNG
complete.PNG
Awatar użytkownika
Pitol
Moderator
Posty: 982
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Zapisywanie sekwencji danych i odczytywanie

Post autor: Pitol »

Dobrze, że się udało osiągnąć cel.
Jeśli chodzi o poradniki to faktycznie, nie jest lekko znaleźć coś konkretnego.
Dlatego lepiej jest, już na samym początku drogi wpaść na forum (tu, czy na forums.ni.com) i popytać.

Bo jak się samemu zacznie, to potem można się zapędzić w kozi róg i wszelkie zmiany będą bolesne...
Powodzenia w projekcie!
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
ODPOWIEDZ