witam,
z gory zaznaczam ze jestem zielony w temacie. chcialbym zapytac o rade, w jaki sposob sterowac maszyna komputerowo za pomoca labview? Pytanie jest z serii podstawowych-podstaw czyli chodzi mi o to jak to wszystko polaczyc? Dziekuje z gory za wszelkie udzielone rady.
sterowanie maszyna
-
- Specjalista poziom 1 (min. 100)
- Posty w temacie: 1
- Posty: 108
- Rejestracja: 28 sty 2006, 08:32
- Lokalizacja: Lublin
witam!
do sterowania maszyną na pewno będziesz potrzebował trochę elektroniki. jeśli mają to być serwonapędy, to będziesz potrzebował kartę z licznikami do enkoderów oraz wyjściami analogowymi lub pwm do sterowania wzmacniaczami silników. jeśli mają to być silniki krokowe, to elektronika chyba się nieco uprości. national instruments ma w swojej ofercie mnóstwo odpowiedniej elektroniki (tyle, że ich ceny są mniej zachęcające
) oraz moduł programowy specjalnie dedykowany sterowaniu ruchem.
na samym labview w zasadzie się nie znam, bo moją "przygodę" z NI zakończyłem jeszcze w czasach labWindows. jednak, jeśli chodzi o to, jak to wszystko połączyć, opiszę Ci jak zrobiłem serwosterowanie (chyba najprostsze na świecie
) w środowisku EMC2 (linuxcnc). czy w labview, czy w emc2 sprawa wygląda bardzo podobnie, tyle, że pod emc2 nie ma środowiska graficznego do budowania bloków i łączenia ich - trzeba to wszystko robić w pliku tekstowym.
żeby nie narażać się na duże koszty (w postaci zakupu karty "motion control") do komunikacji wykorzystuję porty drukarki. do pinów wyjściowych podłączyłem mostek H i dalej silnik. mostek steruję sygnałami PWM, jeden dla obrotów w lewo, drugi w przeciwną stronę - w sumie dwa piny. enkoder podłączony jest do pinów wejściowych portu lpt. dwa piny - po jednym dla kanałów A i B (można jeszcze dodać index). i w zasadzie, jeśli chodzi o elektronikę, to tyle. reszta odbywa się po stronie programowej.
przede wszystkim ładowany jest moduł sterowania ruchem (wszystkie wykorzystywane tu moduły pracują w trybie rzeczywistym). nie będę wnikał w jego funkcje, tutaj ważne jest, że z modułu tego pobieram wartość zadaną dla danej osi, a jako informacja zwrotna do modułu trafia sygnał położenia z licznika enkodera. sygnał wartości zadanej wchodzi dalej do modułu regulatora PID. do tego modułu wchodzi również sygnał z licznika enkodera, o którym pisałem wyżej. co się dzieje w regulatorze PID, to ogólnie wiadomo
. wyjście z PID podłączone jest do modułu generatora sygnału PWM (programowego!), natomiast wyjścia PWM (up i down) podłączone są już bezpośrednio do pinów portu lpt. do pełni szczęścia potrzebny jest jeszcze moduł licznika dla enkodera (tu również programowego), o którym już wspominałem. jego wejścia podłączyłem bezpośrednio do portu lpt, natomiast wyjście - patrz wyżej.
jest to bardzo proste i jeszcze bardziej tanie rozwiązanie, ale działa naprawdę zadziwiająco dobrze (tym bardziej, że zliczanie sygnałów z enkoderów i generowanie pwm jest zrealizowane programowo). na codzień układ pracuje w małej giętarce do drutu.
mam nadzieję, że przybliżyłem Ci nieco ten temat (albo jeszcze bardziej zagmatwałem
). pozdrawiam.
do sterowania maszyną na pewno będziesz potrzebował trochę elektroniki. jeśli mają to być serwonapędy, to będziesz potrzebował kartę z licznikami do enkoderów oraz wyjściami analogowymi lub pwm do sterowania wzmacniaczami silników. jeśli mają to być silniki krokowe, to elektronika chyba się nieco uprości. national instruments ma w swojej ofercie mnóstwo odpowiedniej elektroniki (tyle, że ich ceny są mniej zachęcające

na samym labview w zasadzie się nie znam, bo moją "przygodę" z NI zakończyłem jeszcze w czasach labWindows. jednak, jeśli chodzi o to, jak to wszystko połączyć, opiszę Ci jak zrobiłem serwosterowanie (chyba najprostsze na świecie

żeby nie narażać się na duże koszty (w postaci zakupu karty "motion control") do komunikacji wykorzystuję porty drukarki. do pinów wyjściowych podłączyłem mostek H i dalej silnik. mostek steruję sygnałami PWM, jeden dla obrotów w lewo, drugi w przeciwną stronę - w sumie dwa piny. enkoder podłączony jest do pinów wejściowych portu lpt. dwa piny - po jednym dla kanałów A i B (można jeszcze dodać index). i w zasadzie, jeśli chodzi o elektronikę, to tyle. reszta odbywa się po stronie programowej.
przede wszystkim ładowany jest moduł sterowania ruchem (wszystkie wykorzystywane tu moduły pracują w trybie rzeczywistym). nie będę wnikał w jego funkcje, tutaj ważne jest, że z modułu tego pobieram wartość zadaną dla danej osi, a jako informacja zwrotna do modułu trafia sygnał położenia z licznika enkodera. sygnał wartości zadanej wchodzi dalej do modułu regulatora PID. do tego modułu wchodzi również sygnał z licznika enkodera, o którym pisałem wyżej. co się dzieje w regulatorze PID, to ogólnie wiadomo

jest to bardzo proste i jeszcze bardziej tanie rozwiązanie, ale działa naprawdę zadziwiająco dobrze (tym bardziej, że zliczanie sygnałów z enkoderów i generowanie pwm jest zrealizowane programowo). na codzień układ pracuje w małej giętarce do drutu.
mam nadzieję, że przybliżyłem Ci nieco ten temat (albo jeszcze bardziej zagmatwałem
