Strona 1 z 1

Sterowanie silnikami przez LPT - problem z częstotliwością

: 07 lis 2010 16:50
autor: Voltir
Witam.
Tworzę program sterujący 2 silnikami krokowymi w środowisku Labview 8.2.1. Sterowanie odbywa się przez port LPT. Udało mi się stworzyć prosty program sterujący. Problem pojawia się, gdy zwiększam częstotliwość wysyłanych sygnałów. Sygnały mierzone były za pomocą oscyloskopu. Do częstotliwości 1 kHz wszystko działa dobrze, w zakresie 1-2 kHz odczyt utrzymuje się na na stałej wartości 1 kHz, a powyżej 2 kHz otrzymuje na oscyloskopie 36 kHz :)
Niestety nie mam pojęcia, co jest nie tak. Czy może być to wina w miarę słabego komputera ( 1,7 GHz, 1 Gb ram), czy może systemu oszczędzania energii zakłócają wysyłanie (laptop)? OS to Windows XP Pro SP3
Moje doświadczenie z LabView jest niestety małe i zakładam, że to ja popełniłem jakiś błąd, więc jeżeli ktoś mógłby mi pomóc, będę bardzo wdzięczny.

Załączam program do wglądu.

Re: Sterowanie silnikami przez LPT - problem z częstotliwością

: 10 lis 2010 09:18
autor: pazuzu
Witaj

Nie mam możliwości podejrzenia Twojego kodu tak więc będę trochę na ślepo próbował Ci pomóc.

Pierwsza myśl jaka mi się nasuneła to to iż w ciągu sekundy możesz przesłać określoną liczbę bajtów - przy trybie ECP (ang. Extended Capability Port) jest to wartość 2 Mb/s - najwyższa możliwa dla LPT - co daje nam 250 bajtów w trakcie jednego cyklu. Jednakże transfery mogą spaść do wielkości rzędu 150 kb/s SPP (ang. Standard Parallel Port) czyli do 18 bajtów na transfer. Tak więc sprawdź jaki tryb transferu masz wybrany i czy nie ma za wiele danych do wysłania jednorazowo.

Poźniej na wiki wyczytałem iż LPT może jednorazowo przesłać równolegle na wejście 9 bitów lub na wyjście 12 bitów w tym samym czasie (łącznie z wykorzystaniem linii przewidzianych jako kontrolne i sterujące). Sprawdź rónież to.

Jeżeli chodzi o wydajność komputera to jeżeli jeszcze tego nie zrobiłeś sprawdz na innym kompie jak to działa.


Daj znać czy to coś pomogło.

Re: Sterowanie silnikami przez LPT - problem z częstotliwością

: 14 lis 2010 16:40
autor: Voltir
Witam.
Dzięki za odpowiedź.
Port jest ustawiony w trybie ECP. Przy naciśnięciu przycisku na odpowiedni pin LPT wysyłany jest sygnał za pomocą Out Port.vi.
Modyfikuje tylko pierwszy rejestr LPT, gdyż tam znajduje się pin zegara silnika. Nie sądzę, żebym wysyłał za dużo. Raczej dziwie się, że przy wyższym ustawieniu częstotliwość jest znacznie większa niż powinna. Sygnał także wygląda dobrze. Ew. występuje lekkie prze regulowanie. Tylko jak mówiłem częstotliwość się nie zgadza.
Sprawdzenie kodu na innej maszynie będzie dopiero możliwe we wtorek.

Dorzucam program dla LV 8.0 (stworzony przez Save for Previous Version)

Re: Sterowanie silnikami przez LPT - problem z częstotliwością

: 20 lis 2010 06:32
autor: bogi007
witam. a mógłby ktoś napisać w jaki sposób wysyłać sygnały przez out porta. jak w przypadku sterowania jednofozowego: A B A` B` a jak w przypadku dwufazowego: AB BA` A`B` B`A? w drugim przypadku maja byc wysyłana dwa bity jednoczesnie.a jak w przypadku sterowania połkrokowego: czyli
B` B`A` A` A`B BA A AB`??
pozdrawiam.