Strona 1 z 1

Generowanie cyfrowego sygnału sterującego linijką CCD

: 11 sty 2011 23:57
autor: Procek
Witam wszystkich.

Jest to mój pierwszy post na tym forum, więc z góry przepraszam jeżeli umieściłem go w złym dziale.
Od pewnego czasu próbuje napisać program do sterowania linijką CCD za pomocą LabVIEW. Mam już mały szkielet takiego programu, ależe dopiero zacząłem się uczyć języka to pojawiły się pierwsze problemy, ale do rzeczy.

Program wygląda tak:
http://www.picshot.pl/public/view/full/19213
Komunikacja programu z urządzeniem będzie odbywała się za pomocą karty NI PCI-6251. Niestety nie mam zbyt dużego dostępu do niej, więc próbuje narazie symulacji za pomocą "Measurement & Automation Explorer". Symuluję kartę w "Devices and Interfaces" i taski w "Data Neighborhood". Jednakże po uruchomieniu programu wyskakuje mi błąd:
http://www.picshot.pl/public/view/full/19219

Z powyższego błędu rozumiem, że były to problemy z taskiem. Pomyślałem, więc, że może jest on w ogóle nie potrzebny i usunąłem go z programu. W tym wypadku także program odmówił posłuszeństwo. Błąd pojawił się dopiero po bloczku DAQmx Write, a nie jak poprzednio na początku, i wyglądał następująco:
http://www.picshot.pl/public/view/full/19220

Rozumiem z tego, że potrzebuje zewnętrznego zegara, ale czy jest możliwość jego symulacji, czy wogóle można jakoś inaczej rozwiązać ten błąd???

Proszę o korzystanie z opcji Dodaj załącznik przy edycji postów. Korzystanie z zewnętrznych serwerów powoduje, że z czasem obrazy mogą stać się niedostępne (usunięte z tych serwerów) co utrudni innym poszukiwania rozwiązań. Pitol

Generowanie cyfrowego sygnału sterującego linijką CCD

: 12 sty 2011 09:32
autor: Nowszy
Witaj

Pierwszy z błędów o których wspominasz wskazuje na to, że próbujesz dodać do tasku DigIn linie cyfrowe skonfigurowane jako wyjścia cyfrowe. Taski mogą być tylko 1. typu - więc jeśli typ tasku to wejście cyfrowe, wszystkie linie muszą być wejściem. Jak wyjście - wszystkie wyjściem. Twój VI wygląda na pierwszy rzut oka ok, ale nie wiem jak stworzyłeś task w MAXie. Pokaż zrzut ekranu jak skonfigurowałeś task i drugi - co wpisujesz w kontrolkę Lines na panelu czołowym

Re: Generowanie cyfrowego sygnału sterującego linijką CCD

: 12 sty 2011 20:43
autor: Procek
Dzięki za szybką odpowiedź.
Próbuje właśnie różnych kombinacji z taskami w MAXie i LabVIEW. Oto zrzut z konfiguracji tasku w MAXie przy której mi wyskakuje te błąd:
http://www.picshot.pl/public/view/full/19282
Task ten był ustawiony jako Acquire Signals -> Digital Input -> Port Input i wybieram Dev1 -> port0
Przy tej konfiguracji mam takie ustawienia na panelu w LabVIEW:
http://www.picshot.pl/public/view/full/19283
Teraz spróbowałem też takiego ustawieniu w MAXie (Generate Signals -> Digital Output -> Port Output i dalej wybrałem Dev1 -> port0). Tu jest zrzut z MAXa z tym taskiem:
http://www.picshot.pl/public/view/full/19284
Po takiej konfiguracji w moim programie wyskakuje po uruchomieniu taki błąd zaraz po pierwszym bloczku:
http://www.picshot.pl/public/view/full/19285
Pewnie czegoś jeszcze nie robię podczas tworzenia tasków, chociaż instrukcja VIDEO na stronie National Instruments jest raczej wyczerpująca.

Generowanie cyfrowego sygnału sterującego linijką CCD

: 12 sty 2011 22:26
autor: Nowszy
Aaa, no to już chyba wszystko rozumiem. Tak żeby ci wszystko wytłumaczyć po kolei:
- tworzenie tasków z MAXa jest możliwe, ale nie jest konieczne. Można tworzyć taski z samego VIa (służy do tego DAQmx Create Task, z którego zresztą korzystasz)
- w twoim przypadku otwierasz istniejący task, który zawiera już jakiś kanał i próbujesz dodać do niego kolejne kanały (dokładnie te same - port 0).

I właśnie stąd pojawiają ci się błędy. Nie mam teraz DAQmx żeby ci dać przykłady, ale spróbuj kilku rzeczy:
- zupełnie skasuj kontrolkę DAQmx task name podpiętą na wejście pierwszego VIa LUB
- skasuj wejście Lines tego samego VIa i najlepiej usuń też w ogóle DAQmx Sample Clock (bo parametry czasowe już i tak ustaliłeś w tasku)

Zobacz też do Help>>Example Finder i tam Hardware Input and Output>> DAQmx>> Generating Signals>> Digital output (piszę z pamięci, więc może być niedokładnie :p )

Daj znać jak poszło.

Re: Generowanie cyfrowego sygnału sterującego linijką CCD

: 14 sty 2011 02:36
autor: Procek
Cóż zrobiłem tak jak napisałeś. :) Program nie wyrzuca żadnych błędów. :ymapplause: Na razie jednak jest to dopiero początek. Została mi jeszcze tylko pomyśleć nad odbieraniem danych, ich wizualizacji i synchronizacją tego wszystkiego. Dziękuję Ci za pomoc. Bieżący program wstawiam w załączniku. Póki co śmiga. Na początku przyszłego tygodnia mam zamiar podpiąć to wszystko do karty i spróbować na żywej linijce CCD. Mam nadzieję, że będzie działało. Finalną wersję programu też chciałbym zamieścić na forum, choćby dla celów edukacyjnych.

Generowanie cyfrowego sygnału sterującego linijką CCD

: 14 sty 2011 15:34
autor: Nowszy
Jedna uwaga - nie potrzebujesz DAQmx Start Task, jeśli masz podpięte True na wejście Autostart, poza tym Task masz skonfigurowany jako '1 channel for all lines', więc przy zapisie możesz korzystać z 1 channel zamiast N channels.