No prace trwają już od roku. Długo to trwa, bo nie jest to dla mnie zajęcie podstawowe.
W tej chwili już mam wersję która pracuje stabilnie (elektronika + oprogramowanie). Własnie skończyłem pracę nad zmianami które pozwalają na tryb "manualny" z przyspieszaniem/opóźnianiem. Okazało się to dużo bardziej skomplikowane od trybu automatycznego, bo trzeba być w każdym momencie przygotowanym do zatrzymania takiego ruchu ( z zachowaniem założonej dynamiki). Dzień-dwa i pan Piotr dostanie kolejną wersję do integracji z Step2Cnc i testów na maszynie.
Nawet mając przygotowane wektory przy dużej częstotliwoci pracy samo przełączenie z wektora na wektor zajmuje na tyle dużo czasu, że już może to być widoczne w generowanych impulsach.
Znaleziono 6 wyników
Wróć do „Autonomiczny sterownik frezarki CNC”
- 23 paź 2008, 13:57
- Forum: Elektronika CNC
- Temat: Autonomiczny sterownik frezarki CNC
- Odpowiedzi: 22
- Odsłony: 6182
- 23 paź 2008, 09:05
- Forum: Elektronika CNC
- Temat: Autonomiczny sterownik frezarki CNC
- Odpowiedzi: 22
- Odsłony: 6182
No nie do końca. Dla przesunięć liniowych wystarczy przeliczyć parametry raz na wektor ( przynajmniej u mnie). Robiąc kółko przy metodach "bezposrednich" trzeba by w zasadzie liczyć wszytko za każdym cyklem ( trygonometria przy każym kroku). Algorytm Bresenhamma daje możliwosc sworzenia kółka przy małej ilosci przeliczeń ( nie ma trygonometrii), ale nie nadaje się do sytuacji w której kolejne kroki chcemy mieć synchronicznie ( aby mieć stałą prędkosc styczną).prokopcio pisze:więc problem kontroli prędkości na zakrętach NIE ISTNIEJE
Ja chcę w przyszłosci pójsc w krzywe Beziera - ale to dopiero po zakończeniu innych bardziej krytycznych prac nad sterownikiem
- 12 paź 2008, 19:26
- Forum: Elektronika CNC
- Temat: Autonomiczny sterownik frezarki CNC
- Odpowiedzi: 22
- Odsłony: 6182
I jeszcze jedna uwaga co do AT91SAM9263 - 240MHz max. Według moich szacunków ( sam mam 5 procesorów każdy 60Mhz) to moc na granicy potrzeb. Jeżeli dodać przyspieszanie/zwalnianie to przy np. 500kHz 4 osi już nie zostaje wiele. Jeden procesor z ledwością jest w stanie synchronicznie obsługiwać takie taktowanie ( w zasadzie nawet większa częstotliwość pracy nie pomaga). A dla krokowców przy dużej częstotliwości nie można sobie pozwolić na zbyt duży rozrzut szerokości impulsów ( bo zacznie się gubienie kroków) - dopiero serwa lepiej sobie z tym radzą.
U mnie zegar sprzętowy w głównym procku generuje impulsy które wyzwalają przerwanie w procesorze osi. Procesor osi zawiera tylko i wyłącznie obsługę przeliczeń kolejnych kroków ( które dostaje po sprzętowym FIFO z procesora głównego). Przy maksymalnej częstotliwości pracy każda oś zabiera 100% czasu pracy 60MHz ARM'a - mimo zoptymalizowanych danych ( procesor wykonuje tylko dodawania 32 bitowe).
U mnie zegar sprzętowy w głównym procku generuje impulsy które wyzwalają przerwanie w procesorze osi. Procesor osi zawiera tylko i wyłącznie obsługę przeliczeń kolejnych kroków ( które dostaje po sprzętowym FIFO z procesora głównego). Przy maksymalnej częstotliwości pracy każda oś zabiera 100% czasu pracy 60MHz ARM'a - mimo zoptymalizowanych danych ( procesor wykonuje tylko dodawania 32 bitowe).
- 12 paź 2008, 08:50
- Forum: Elektronika CNC
- Temat: Autonomiczny sterownik frezarki CNC
- Odpowiedzi: 22
- Odsłony: 6182
- 10 paź 2008, 23:54
- Forum: Elektronika CNC
- Temat: Autonomiczny sterownik frezarki CNC
- Odpowiedzi: 22
- Odsłony: 6182
No ja kiedyś zastąpię też planuję zastąpić małe procki sterujące osiami - będzie to albo FPGA albo ADSP21262. Choć na razie wydaje się że układ ma dokładnie tyle mocy ile jest potrzebne ( spełnia założenia projektowe). Po prostu został zrobiony tak, że przeliczenia są wstępnie zrobione na PC-cie a sam sterownik je po prostu odgrywa.
Co do AT91SAM9263 - fajny procesor, ale tak naprawdę to już zbliżamy się do sytuacji w której najtańsza płyta PC-ta (z pendrivem zamiast dysku) będzie konkurencją dla robionych samodzielnie konstrukcji ( można postawić EMC - skonfigurować pod własne potrzeby).
Ale to kwestia gustu
Co do AT91SAM9263 - fajny procesor, ale tak naprawdę to już zbliżamy się do sytuacji w której najtańsza płyta PC-ta (z pendrivem zamiast dysku) będzie konkurencją dla robionych samodzielnie konstrukcji ( można postawić EMC - skonfigurować pod własne potrzeby).
Ale to kwestia gustu

- 10 paź 2008, 19:59
- Forum: Elektronika CNC
- Temat: Autonomiczny sterownik frezarki CNC
- Odpowiedzi: 22
- Odsłony: 6182
ARM rulez !!
Pozdrawiam kolegę - mam nieco inny sterownik na LPC2378 + 4x LPC2103.
Widzę że kolega zrobił kawał porządnej roboty - wygląda interesująco.
Jako że mam już działający prototyp swojego sterownika ( na razie wymaga PC, choć wspierać będzie również zewnętrzny panel sterujący) chciałem podpytać o parę spraw / wymienić doświadczenia:
- 100kHz/500kHz to chyba szczytowo dla pojedynczych wektorów ? Mój prototyp(na jednym procku) przy 60MHz nie był w stanie dla serii wektorów pokonać bariery 100kHz ( powyżej tej bariery widać było przełączenie wektorów na oscyloskopie w postaci opóźnienia sygnału STEP ). Było to widoczne mimo że do USB był również zewnętrzny specjalizowany procesor.
- program wykonywany jest bezpośrednio z SD ? Czy kopiowany do pamięci wewnętrznej ? Miałem podobny dylemat który skończył się wstawieniem kości NAND bezpośrednio na sterowniku aby nie mieć problemu z szybkim transferem danych z karty i obsługą FATu ( i np. ewentualnej fragmentacji pliku).
- łatwo zwiększyć moc obliczeniową dodając zewnętrzny układ USB ( np FT245 lub FT2232) i podkręcić częstotliwość pracy procka na max'a. Odpada wtedy konieczność zakupu numeru VID oraz zabawy z driverami USB na Windows.
Parę uwag:
- Można by od razu dodać optoizolację wejść/wyjść - jest to konieczność przy pracy np. z plazmą
- Fajnie jest mieć taki kolorowy panel sterujący, ale podnosi to znacznie koszt. Duzą część użytkowników zadowoliła by się LCD 4x20 i zwykłymi przyciskami. Ja wybrałem opcję z niezależnym panelem po CANie ( wtedy można robić rózne opcje - tańsze i droższe)
- Powinien jeszcze być PWM jako wyjście ( przydatny do sterowania laserem)
Tak naprawdę najwięcej pracy jest nie z wizualizacją, ale algorytmami przetwarzania G kodów na wektory obsługujące przyspieszanie/zwalnianie, szybkie zatrzymywanie. Niebanalna jest też optymalizacja ścieżki aby nie musieć zwalniać przy każdym wektorze, ale utrzymywać prędkość liniową jak najbardziej zbliżoną do zadanej.
Niby zabawa na poziomie równań kwadratowych, ale wymaga wyobraźni.
Pozdrawiam kolegę - mam nieco inny sterownik na LPC2378 + 4x LPC2103.
Widzę że kolega zrobił kawał porządnej roboty - wygląda interesująco.
Jako że mam już działający prototyp swojego sterownika ( na razie wymaga PC, choć wspierać będzie również zewnętrzny panel sterujący) chciałem podpytać o parę spraw / wymienić doświadczenia:
- 100kHz/500kHz to chyba szczytowo dla pojedynczych wektorów ? Mój prototyp(na jednym procku) przy 60MHz nie był w stanie dla serii wektorów pokonać bariery 100kHz ( powyżej tej bariery widać było przełączenie wektorów na oscyloskopie w postaci opóźnienia sygnału STEP ). Było to widoczne mimo że do USB był również zewnętrzny specjalizowany procesor.
- program wykonywany jest bezpośrednio z SD ? Czy kopiowany do pamięci wewnętrznej ? Miałem podobny dylemat który skończył się wstawieniem kości NAND bezpośrednio na sterowniku aby nie mieć problemu z szybkim transferem danych z karty i obsługą FATu ( i np. ewentualnej fragmentacji pliku).
- łatwo zwiększyć moc obliczeniową dodając zewnętrzny układ USB ( np FT245 lub FT2232) i podkręcić częstotliwość pracy procka na max'a. Odpada wtedy konieczność zakupu numeru VID oraz zabawy z driverami USB na Windows.
Parę uwag:
- Można by od razu dodać optoizolację wejść/wyjść - jest to konieczność przy pracy np. z plazmą
- Fajnie jest mieć taki kolorowy panel sterujący, ale podnosi to znacznie koszt. Duzą część użytkowników zadowoliła by się LCD 4x20 i zwykłymi przyciskami. Ja wybrałem opcję z niezależnym panelem po CANie ( wtedy można robić rózne opcje - tańsze i droższe)
- Powinien jeszcze być PWM jako wyjście ( przydatny do sterowania laserem)
Tak naprawdę najwięcej pracy jest nie z wizualizacją, ale algorytmami przetwarzania G kodów na wektory obsługujące przyspieszanie/zwalnianie, szybkie zatrzymywanie. Niebanalna jest też optymalizacja ścieżki aby nie musieć zwalniać przy każdym wektorze, ale utrzymywać prędkość liniową jak najbardziej zbliżoną do zadanej.
Niby zabawa na poziomie równań kwadratowych, ale wymaga wyobraźni.