Sterowanie silnikiem krokowym - podstawy

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.
tatamisi
Posty: 26
Rejestracja: 07 lip 2008 15:29
Kontakt:

Sterowanie silnikiem krokowym - podstawy

Post autor: tatamisi »

po chwili analizy zrozumialem co napisales i podoba mi sie...genialnie proste.niemniej musze to wprowadzic w zycie i niestety nie potrafiee...

mam 4 pozycje w tabeli (tn chce miec)
1000000
0100000
0010000
0001000

wysylane na port lpt (to potrafie) - port out.vi

w reszcie zatonalem...i probuje wpasc na jakis sposob zeby to zrealizzowac :)

dziekuje za tlumaczenie tak czy inaczej...duzo dalo
Awatar użytkownika
AzazeL
Posty: 46
Rejestracja: 05 cze 2008 19:00
Lokalizacja: Mikołów
Kontakt:

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: AzazeL »

Szkoda tylko że chcesz mieć błędne wartości w tej tablicy :]

Narysowałem krótki program generujący ustawienia bitów dla pracy pełnokrokowej silnika 2-fazowego unipolarnego (w załączniku -> LV7.1).

Bity generowane przez program odpowiadają fazą silnika

7 6 5 4 3 2 1 0
B /B A /A 0 0 0 0

Pamiętaj też o tym, że takie silniki krokowe mają różne konfiguracje faz na złączach. Z tych co ja używałem były 2 rodzaje:

1. GND
2. GND
3. A
4. /A
5. B
6. /B

oraz

1. GND
2. B
3. /B
4. GND
5. A
6. /A

Identyfikacje ustawienia najlepiej dokonać omomierzem. rezystancja pomiędzy A i /A (lub B i /B) będzie ok. 2 razy większą niż między fazą (np. A) a odczepem GND.

To chyba już wszystko co jest ci potrzebne, powodzenia
tatamisi
Posty: 26
Rejestracja: 07 lip 2008 15:29
Kontakt:

Sterowanie silnikiem krokowym - podstawy

Post autor: tatamisi »

zobilem juz sobie plytke z separacja galwaniczna zeby czegos nie spalic...i probowalem przy pomocy jakichs dosowych programikow i wydawalo mi sie ze wydaje mi sie dobrze...ale widac zle sie wydawalo :]...ale jak cos przestawie tabelke

mysle teraz jak to zlozyc w calosc...mniej wiecej rozumiem to co skleciles w vi...ale troche wyluszcze co ma robic moj program:

ma miec 2 tryby..reczny i automat

reczny nie klopot - ma zrobic zrzut ekranu i waveform dane przeslac do txt...dziala slicznie

tryb automatyczny ma skanowac z uzyciem silniczka i co zadana ilosc krokow ma zrobic zadana ilosc pomiarow...zrobilem sobie podwodjnego loopa...i wszystko niby dziala..robi zrzut co zadana ilosc krokow ..ale zrzuca za kazdym razem to samo...loop blokuje dzialanie reszty? wykonywany jest tylko on chyba? poki sie nie skonczy...jest jakis sposob na "wstrzykiwanie danych" do loopa albo inny wynalazek zeby zrobic typowa petle?
tatamisi
Posty: 26
Rejestracja: 07 lip 2008 15:29
Kontakt:

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: tatamisi »

hmm...sprawdzilem z silnikiem...i moje wartosci byly dobre :) w polaczeniu z tym co wywnioskowalem m. in. z tego co dostalem od Ciebie odpalilem silniczek...

...tak jak w poprzednim poscie namarudzilem...pomiar pojedynczy dziala...przy pomiarze wielokrotnym silniczek sie kreci robi sie zrzut ekranu ale waveform sie nie zapisuje..wiem juz czemu (bo to loop while)...ma ktos rozwiazanie? chetnie pojasnie jak napisalem nie po posku cos :)


sz
Awatar użytkownika
AzazeL
Posty: 46
Rejestracja: 05 cze 2008 19:00
Lokalizacja: Mikołów
Kontakt:

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: AzazeL »

Najwyraźniej masz silnik innego typu (prawdopodobnie bipolarny) lub z jakimś układem pośredniczącym. Zasugerowałem się tym co było napisane na początku tego tematu, niezauważyłem że nie jesteś jego autorem.

Nie wiem z czym dokładnie masz problem. Jeżeli chcesz realizować pomiary w trakcie obrotu silnika (np. po każdym kroku) to proponuje program rozłożyć na dwa wątki. Jedna pętla będzie obsługiwała silnik (może być tu np. timed loop lub zwykła pętla while z bloczkiem Wait until next multiple) a druga pomiary. Sugeruje użyć User Event generowany w pętli z silnikiem.
tatamisi
Posty: 26
Rejestracja: 07 lip 2008 15:29
Kontakt:

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: tatamisi »

tak dokladie: chcę realizować X pomiarow co Y krokow silnika
i narazie zrobilem case structure z 3 blokami:
1 ruch silnika w przod lub tyl zaleznie od wymagan uzytkownika
2 pomiar tu chcialbym miec cos co zapisze wartosc array do pliku
3. wait 100ms i beep zeby bylo wiadomo ze zadzialalo :)
pomiar rozumiem ze powinienem wyprowadzic do innej struktury a w case structre zawrzec jakis "trigger" poniewaz zapisywane do pliku jest array a gdy robie zwykla petle zapisuje mi caly czas to samo

ale chyba nie potrafie skozystac z user event jeszcze...przeczytalem w innym watku ze mozna to zrobic lokalna zmienna...to zadziala?

pozdrawiam
tatamisi
Posty: 26
Rejestracja: 07 lip 2008 15:29
Kontakt:

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: tatamisi »

[img]http://www.as.pila.pl/lverror.JPG[/img]

zalczylem cos co opisuje moj problem...tzn z tego miejsca wyniknal

w poprrzednim poscie opisalem go szezej
Awatar użytkownika
AzazeL
Posty: 46
Rejestracja: 05 cze 2008 19:00
Lokalizacja: Mikołów
Kontakt:

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: AzazeL »

Ja bym jednak użył user event. Przejrzyj załącznik, powinno się wszystko wyjaśnić.
tatamisi
Posty: 26
Rejestracja: 07 lip 2008 15:29
Kontakt:

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: tatamisi »

hmmm...przyklad faktycznie rozjasniajacy...ale przenioslem to do siebie i nie dziala :) moze dlatego ze mam caly prawie program w ramce while...i teraz tak sobie mysle ze to glupie :)
albo dlatego ze moj create evnent wypadl w loopie - wlasnie kombinuje co mu jest ze nie dziala..rozwiazanie pewnie jak zwykle w lv jest banalne :)


zdecydowanie wiem ze to co zrobilem bylo zle :) juz przezucam sie na user event
Awatar użytkownika
fajfi
Posty: 185
Rejestracja: 28 sty 2004 00:00
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: fajfi »

Cześć,
tym razem mam pytanie dotyczące sterowania silnikiem krokowym bipolarnym. Czy ktoś ma doświadczenie z tym rodzajem silników?
Jak powinna wyglądać sekwencja sygnałów na pinach LPT?
Aha i czy LPT nadaje się do sterowania takim silnikiem?
Pozdrawiam
Fajfi
Awatar użytkownika
Mikrobi
Posty: 1210
Rejestracja: 08 paź 2003 00:00
Wersja środowiska: LabVIEW 2017

Sterowanie silnikiem krokowym - podstawy

Post autor: Mikrobi »

LPT w zasadzie sie nadaje bo jest portem równoległym, ale koniecznie trzeba zrobić optoizolację na liniach które będą wykorzystywane.
Proponuję przeglądnąć Elektronike Praktyczną, w numerze 8/2001 w miniprojektach, jest coś co nadaje się po małych przeróbkach.

Pytanie - czy na pewno LPT? może prosta aplikacja na atmelowskim 89C2051 ? Pozwala to zrealizować sterowanie przez port szeregowy. Jeśli bedziesz potrzebował komunikacji przez USB zastosujesz konwerter FTDI albo weżmiesz gotowy.
:?:
pozdrawiam
Mikrobi

LabVIEW Champion, CLD, CPI
Awatar użytkownika
uniseb
Posty: 5
Rejestracja: 13 gru 2010 15:14
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: uniseb »

Stworzyłem w LabVIEW 2010 prosty kontroler silnika krokowego unipolarnego na porcie LPT. Jest to jeden z moich pierwszych projektów w środowisku LabVIEW więc proszę o wyrozumiałość i uwagi na temat błędnych rozwiązań. Jeżeli ktoś zmodyfikuje jakoś ten projekt to proszę by dorzucił plik do tematu.
Załączniki
KONTROLER SILNIKA KROKOWEGO NA LPT v1.llb
kontroler unipolarnego silnika krokowego na porcie LPT
(212.93 KiB) Pobrany 362 razy
CLAD
AGF
Posty: 109
Rejestracja: 26 lut 2010 13:41
Wersja środowiska: LabVIEW 2010
Lokalizacja: Bydgoszcz

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: AGF »

Sadze że kontrolowanie silnika przez por LPT nie jest najlepszym rozwiązanie (ale na pewno działa :D). Ja zazwyczaj używam zewnętrznych kontrolerów (parę nawet sam wystrugałem), jeżeli aplikacja toleruje USB to ostatnio wpadł mi w oko: http://www.phidgets.com/products.php?ca ... ct_id=1063
Awatar użytkownika
uniseb
Posty: 5
Rejestracja: 13 gru 2010 15:14
Wersja środowiska: LabVIEW 2010
Lokalizacja: Wrocław

Re: Sterowanie silnikiem krokowym - podstawy

Post autor: uniseb »

IMHO LPT dość dobrze sprawdza się w tej roli jeżeli chodzi o jakieś proste aplikacje, no i jest dobre dla początkujących.

Proszę napiszcie słowo komentarza do mojego programu?
Czy przyjęte w nim rozwiązania są trafne, gdzie popełniłem błędy i jak można zrobić to lepiej?
Ja sam już widzę kilka niedociągłości jak np. opóźniona reakcja pętli pausy przy stopowaniu wykonywanego obrotu. Wiecie jak to poprawić?
Jeśli ktoś z was napisał podobna aplikację i może się nią podzielić to również proszę by wrzucił ją do wątku.
CLAD
ODPOWIEDZ