Zwracam się z prośbą do kolegów
Mam za zadanie zrobić aplikację do sterowanie prędkością obrotową silnika (prądu stałego), sprzężonego na wale z tachoprądnicą synchroniczną mierzącą prędkość (pomiar napięcia). Mam to robić przez kart pomiarową NI 6036. Tak na marginesie to karta ma sterować końcówkę mocy - nie bezpośrednio silnikiem, ale to już mniej istotne.
Metoda sterowania jest typu PWM (mam mieć możliwość zmiany długości impulsu - od 20 do 100 [ms] i współczynnika wypełnienia od 0 do 1).
Wymyśliłem jak to zrobić wykorzystując czas pobierany z systemu - niestety skutek był taki, że impulsy zaczęły "pływać". Wynika to z faktu, że Windows jest systemem "czasu nierzeczywistego" :? . Silnik zamiast sie zatrzymać przy współczynniku 0.5 - dostaje drgań
Prowadzący stwierdził, że problem można wyeliminować stosując, jako wzorzec czasu generator umieszczony na płycie karty NI. Aby się do niego dobrać należy użyć bloku DAQmx Create Virtual Channel, skonfigurowanego jako CO Pulse Time. Można to podobno zrobić przez dodanie kolejnego wątku, który miał by działać jak licznik - w momencie jak odliczy określony przedział czasu zezwala programowi na wystawienie kolejnej wartości na wyjściu generacyjnym (wartość +10 albo -10).
Z góry dziękuje za wszelkie rady i pomoc
Pozdrawiam.
Michaś.