Adv Generate Pulse Train w karcie USB-4711A

Wszelkie sprawy związane z LabVIEW i komunikacją ze sprzętem. Problemy i ciekawe rozwiązania.
machoney
Posty: 31
Rejestracja: 15 mar 2010 08:52
Wersja środowiska: LabVIEW 8.6

Re: Adv Generate Pulse Train w karcie USB-4711A

Post autor: machoney »

Niestety nie rusza GPT :( a przy drugim uruchomieniu wali błąd od CS (Counter Stop). Mam płytkę z atmegą 128 i zaczynam pisać obsługę tego sterowania przez przerwania atmegi. Z karty advantech wydam tylko polecenie "SKOK" i atmega na pinie portu wygeneruje mi te 67, 67, 66 pulsów. Poprostu tracę nadzieję, że można to zrobić w LV. Może są jakieś ograniczenia wynikające z "Only PCI1760 and PCI1780 support the finite pulse train" a my odwalamy syzyfową pracę. Napiszę do advantecha.
4050ml A Rh+, a Ty?
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Adv Generate Pulse Train w karcie USB-4711A

Post autor: Pitol »

ech... szkoda, że się nie udało. Próbowałem coś znaleźć na necie pomocnego ale nic ciekawego nie znalazłem. Może support Advantecha Ci pomoże ;)
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
machoney
Posty: 31
Rejestracja: 15 mar 2010 08:52
Wersja środowiska: LabVIEW 8.6

Re: Adv Generate Pulse Train w karcie USB-4711A

Post autor: machoney »

Za wszystkie porady w sprawie GPT bardzo dziękuję jednak temat jest otwarty bo i tak muszę podać sygnały na sterownik silnika krokowego, czujnik impulsowy do pomiaru obrotów, 3 elektrozawory oraz czytać 2 wejścia AI. Jeżeli będziesz to jeszcze do niedzieli będę walczył na pełny zegar z tą aplikacją bo na poniedziałek musi by gotowa do prezentacji :(
Napewno pomiary z AI będę musiał zapisać żeby zrobić wykres. Jutro wrzucę mojego vi żebyś zobaczył moją "plątaninę". Napewno coś będzie się nadawać do zoptymalizowania ;)
Dziś już padam więc do jutra, pzd
4050ml A Rh+, a Ty?
machoney
Posty: 31
Rejestracja: 15 mar 2010 08:52
Wersja środowiska: LabVIEW 8.6

Re: Adv Generate Pulse Train w karcie USB-4711A

Post autor: machoney »

Witaj,
mam jeszcze jedną prośbę, wytłumacz mi jak realizować przerwania do obsługi zdarzenia.
4050ml A Rh+, a Ty?
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Adv Generate Pulse Train w karcie USB-4711A

Post autor: Pitol »

machoney pisze:Witaj,
mam jeszcze jedną prośbę, wytłumacz mi jak realizować przerwania do obsługi zdarzenia.
yyy... przerwania? :) to chyba struktura Event?

Pierwsze trzy linki z google po wpisaniu "event structure LabVIEW":
http://www.cipce.rpi.edu/programs/remot ... son2.shtml
http://labviewwiki.org/Event_Structure
http://zone.ni.com/devzone/cda/tut/p/id/3331

Zasada jest taka, że struktura Event w pętli czeka na zdarzenie. A zdarzeniem może być wszystko. Jakaś akcja na kontrolce, VI, czy aplikacji. Sam nawet możesz generować własne zdarzenia. Jeśli akcja nastąpi, wykonywany jest przypisany dla niej kod (który sam sobie definiujesz). Jak już tam wcześniej pisałem, pętla, w której jest struktura Event nie kręci się, jeśli nie występują zdarzenia, których obsługa w tej strukturze Event jest zaimplementowana. Trzeba o tym pamiętać, bo często ludzie się dziwią, że im program stoi :))
Najlepiej poćwiczyć, choćby proste zapalanie lampki przyciskiem.
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
machoney
Posty: 31
Rejestracja: 15 mar 2010 08:52
Wersja środowiska: LabVIEW 8.6

Re: Adv Generate Pulse Train w karcie USB-4711A

Post autor: machoney »

Cześć,
właśnie - stoi i pętli i czeka na zdarzenie. Przerwanie w moim zrozumieniu działa tak, że wykonuje się program główny (np czytam AI, wyświetlam itp) a niezależnie od tego, jeśli wejdzie mi na DI impuls (pomiar prętkości wałka) to wtedy wykona się "przerwanie zewnętrzne" zwiększające mi stan zmiennej i powróci do wykonywania głównego programu. Niestety dostałem odp z Advantecha, że moja karta nie ma możliwości ani sterowania wypełnienia ani ilości pulsów. Jedyna możliwość to podać P_OUT na wejście licznika i jednocześnie liczyć ile wyszło pulsów. Jednak to całkowicie zablokuje mi wykonywanie innych czynności typu czytam 2 wejścia AI i porównuje je do wartości zadanej SP. Czynność tą robię co 1000ms. Może da się to zrobić jednak ja jeszcze nie wiem jak :)
4050ml A Rh+, a Ty?
bogdani
Administrator
Posty: 1315
Rejestracja: 30 lip 2003 00:00
Wersja środowiska: LabVIEW 2015
Lokalizacja: Ruda Śląska
Kontakt:

Re: Adv Generate Pulse Train w karcie USB-4711A

Post autor: bogdani »

machoney pisze:Niestety nie rusza GPT :( (...) Poprostu tracę nadzieję, że można to zrobić w LV. (...)
Takie wypowiedzi mogą wprowadzać w błąd. Po prostu używać niewłaściwego sprzętu do zadania. To nie wina oprogramowania tzn. środowiska LabVIEW a raczej sprzętu i jego sterowników.

Nie wiem czy korzystasz z AO, ale może wygenerujesz sobie prostokąt z 67 impulsami i podasz go na wyjście analogowe. To też jest jakieś rozwiązanie.
Ktoś ci pomógł na forum? Podziękuj dając pochwałę.

Obrazek Obrazek Obrazek
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Re: Adv Generate Pulse Train w karcie USB-4711A

Post autor: Pitol »

W takim razie tego na zdarzeniach robić nie musisz. Możesz zwykłą maszynę stanów zastosować:
CONV5.PNG
Zrobiłem to tak, że program się kręci odczytując wejście DI i odliczając czas. Jeśli DI jest true to przejdzie do inkrementacji licznika. Jeśli 1s upłynęła to przejdzie do Read AI chyba, że jednocześnie wystąpiło true na DI, to wtedy przejdzie do inkrementacji... w końcu przerwanie ma wyższy priorytet :P
Załączniki
CONV5_8.6.vi
LabVIEW 8.6
(8.13 KiB) Pobrany 355 razy
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
machoney
Posty: 31
Rejestracja: 15 mar 2010 08:52
Wersja środowiska: LabVIEW 8.6

Re: Adv Generate Pulse Train w karcie USB-4711A

Post autor: machoney »

bogdani pisze: (...)Takie wypowiedzi mogą wprowadzać w błąd. Po prostu używać niewłaściwego sprzętu do zadania. To nie wina oprogramowania tzn. środowiska LabVIEW (...)
Witam,
jeżeli czytasz jeden post to tak, jeśli znasz cały wątek to wiesz o co chodzi. Do LV nie mam pretensji o to, że GPT nie działa w nim bo chodzi właśnie o subvi Adv GPT dostarczony z kartą advantecha a właściwie do samego hardware'u w którym wejśca zadające ilośc pulsów i wypełnienie nie jest realizowane.
Przykre, że potrawisz włączać się do tematu o słówka a nie masz nic do powiedzenia przybliżającego rozwiąznie problemu.
Napewno dużo czytania mnie czeka jednak czasem nawet nie wiem czego szukać dopóki nie zapytam.
Będę testował obsługę przerwania, thx

P.S. Jeszcze raz dzięki Pitol że jesteś ze mną ;) pzd
4050ml A Rh+, a Ty?
Awatar użytkownika
Pitol
Moderator
Posty: 987
Rejestracja: 19 lip 2007 00:00
Wersja środowiska: LabVIEW 2019
Lokalizacja: Kraków

Adv Generate Pulse Train w karcie USB-4711A

Post autor: Pitol »

jak tam idzie? dajesz radę z tym dziadostwem? ;)
ObrazekObrazekObrazek
Chcesz taki podpis? Zajrzyj tutaj
machoney
Posty: 31
Rejestracja: 15 mar 2010 08:52
Wersja środowiska: LabVIEW 8.6

Re: Adv Generate Pulse Train w karcie USB-4711A

Post autor: machoney »

Cze,
zapiąłem się pod silnik i niestety na dodatek jeszcze problemy hardware'owe doszły. Okazało się że sterownik nie działa prawidłowo (buczenie, piszczenie silnika i mac 800Hz taktowanie, potem staje). Na pożyczonym sterowniku chodziło aż miło. Teraz mam tak, że z Advantecha daje podstawowe sygnały Enable, Dir i "wykonaj przeskok" natomiast Atmega po otrzymaniu "wykonaj przeskok" wykonuje odpowiednią ilość pulsów. Zrobił się straszny mix :) ale jak wymienię sterownik krokowca i w LV dodam komunikację z Atmegą żeby zmieniać częstotliwość pulsów to będzie wszystko chodziło wg planu (choć do profesjonalnego rozwiązania daleko :( ). Z Advantecha szkoda mi zrezygnować bo mam wejścia 12bit AI łatwe do obsługi ale jak się z innymi problemami uporam to może i z tym przejdę na Atmegę (wbudowane ma 10bit a to zamało więc muszę zewn dorobić). Jak skończę z silnikiem to zacznę robić RS do komunikacji z atmegą tak więc zaglądaj tu czasem :)
pzd
4050ml A Rh+, a Ty?
ODPOWIEDZ