Wstępny projekt sterownika z mikrokrokiem
-
Autor tematu - Specjalista poziom 2 (min. 300)
- Posty w temacie: 14
- Posty: 346
- Rejestracja: 07 cze 2004, 13:11
- Lokalizacja: Bielsko-Biała
- Kontakt:
Jak tylko zdecyduje jakie rozwiązania sastosować (przetworniki DAC czy PWM) zabieram się za schematy i soft (Eagle i BASCOM-AVR). Jeśli chodzi o procesor na początek myślę jednym procesorem sterować jedną oś sygnały step/dir. Jak się uda to można będzie pomyśleć nad bardziej zaawansowanym sterowaniem - RS, enkodety itp.
Tagi:
-
- Znawca tematu (min. 80)
- Posty w temacie: 9
- Posty: 86
- Rejestracja: 16 lip 2004, 18:13
- Lokalizacja: Ostrołęka
Czy ja wie, można jeden uP na jeden silnik ale taniej jest z jednego uP wszystkie silniki.
Zakładam że projekt bedzie się rozwijał więc trzeba tez bedzie pomyśleć o synchronizacji pomiędzy prockami a z jednym prockiem problem synchro sam sie rozwiązuje.
Jeśli dołożymy odczyt pozycji to możemy wtedy też dołączyć dodatkowe procki dbające o przesunięcie (obroty silników).
Sądze, że tak bedzie wygodniej
Zakładam że projekt bedzie się rozwijał więc trzeba tez bedzie pomyśleć o synchronizacji pomiędzy prockami a z jednym prockiem problem synchro sam sie rozwiązuje.
Jeśli dołożymy odczyt pozycji to możemy wtedy też dołączyć dodatkowe procki dbające o przesunięcie (obroty silników).
Sądze, że tak bedzie wygodniej
-
Autor tematu - Specjalista poziom 2 (min. 300)
- Posty w temacie: 14
- Posty: 346
- Rejestracja: 07 cze 2004, 13:11
- Lokalizacja: Bielsko-Biała
- Kontakt:
Trzeba jednak pamiętać że dla obsługi trzech osi w trybie mikrokroku (przydały by się 4)procesor musi być naprawdę szybki, chcę wykonać sterownik w którym kwestia ewentualnych zgubień kroków nie była spowodowana przez układ logiki dlatego pozostaje za opcją z jednym procesorem na oś. Natomias jeśli uda się wukorzystać sygnał PWM do sterowania zamiast przetworników DAC ciężko będzie znaleść tani procesor z 6 szybkimi kanałami PWM tak więc koszt obu rozwiązań może być podobny.
-
- Znawca tematu (min. 80)
- Posty w temacie: 5
- Posty: 92
- Rejestracja: 04 cze 2004, 14:09
- Lokalizacja: ?l?sk
Wydaje mi się że sam projekt w eagle tutaj nie wystarczy , powinniśmy pomyśleć nad wersjami dokumentacji w PDF bo nie wszyscy na codzień stosują taki soft ...ottop pisze:Jak tylko zdecyduje jakie rozwiązania sastosować (przetworniki DAC czy PWM) zabieram się za schematy i soft (Eagle i BASCOM-AVR). Jeśli chodzi o procesor na początek myślę jednym procesorem sterować jedną oś sygnały step/dir. Jak się uda to można będzie pomyśleć nad bardziej zaawansowanym sterowaniem - RS, enkodety itp.
Co do BASCOM'a to wydaje mi się że to moze być niewystarczające bo nie zapanujemy nad kodem optymalnym czasowo , chyba że zrobimy hybrydę ze wstawkami czasowo-krytycznych procedur w assemblerku ...

Co do RS232 to trzeba by się zastanowić z jakim oprogramowaniem taki sterownik miałby pracować , bo wydaje mi się że protokoły komunikacji szeregowej sterowników nie są zunifikowane i jeszcze dochodzi problem ich poznania ... bo nie wszystkie mogą być jawne (opisane) ...
Pozdrawiam
Damik
Damik
-
- Znawca tematu (min. 80)
- Posty w temacie: 9
- Posty: 86
- Rejestracja: 16 lip 2004, 18:13
- Lokalizacja: Ostrołęka
Dokumentacje można w pdf, świetny do tego jest openoffice (free)- stabilny (chociaż sin(90) to w nim 0,89)
Do programowania avr polecam AVRSTUDIO jest symulator a to już prawie sukces,
do wgrania jednak bascom, programator avr za 1zł ,jest dostępny w helpach a jeśli nie to proszę klikać.
Eagle nadal tylko z powodu - free.
No i cóż jednak asm ( nie jest trudny ), jeśli ma być szybko i wydajnie i bez niespodzianek.
Co do RS teoretycznie wystarczą 3 kabelki do PC ale jeszcze jest 4 inne, które warto wykorzystać
Zakładając transmisje 8n1 (10 bit na znak) to przy 115200 / 10 mamy 11 520 bajtów na sekunde (teoretycznie).
RS jest ładnie opisany, prosty w obsłudze. Szybciej przez LPT tu można 100kB mieć na spoko a najmniej siły do włożenia kabelka wymaga USB ale soft do tego jest potrzebny a na tym forum jest cisza.
Program do obsługi, można z corela lub innego ze standardem hpgl, gcode
lub własny - a co !
Do programowania avr polecam AVRSTUDIO jest symulator a to już prawie sukces,
do wgrania jednak bascom, programator avr za 1zł ,jest dostępny w helpach a jeśli nie to proszę klikać.
Eagle nadal tylko z powodu - free.
No i cóż jednak asm ( nie jest trudny ), jeśli ma być szybko i wydajnie i bez niespodzianek.
Co do RS teoretycznie wystarczą 3 kabelki do PC ale jeszcze jest 4 inne, które warto wykorzystać
Zakładając transmisje 8n1 (10 bit na znak) to przy 115200 / 10 mamy 11 520 bajtów na sekunde (teoretycznie).
RS jest ładnie opisany, prosty w obsłudze. Szybciej przez LPT tu można 100kB mieć na spoko a najmniej siły do włożenia kabelka wymaga USB ale soft do tego jest potrzebny a na tym forum jest cisza.
Program do obsługi, można z corela lub innego ze standardem hpgl, gcode
lub własny - a co !
-
- Specjalista poziom 2 (min. 300)
- Posty w temacie: 2
- Posty: 441
- Rejestracja: 31 maja 2004, 07:01
- Lokalizacja: Białystok
- Kontakt:
TLC5620 cen nie znalazłem. Inne szeregowe przetworniki DAC, ceny netto TME:
LTC1446 za 1x 52.90 a za 10x 39.90
LTC1257 1 wyjście 12 bit 1x 38.90 10x 27.90
DAC7611 1 wyjście 12bit 1x 19.90 10x 16.90
Co do procesora to jestem za rozwiązaniem 1 procesor 1 silnik. Po pierwsze, taki układ jest łatwiejszy do projektowania i później do uruchamiania, mniej skomplikowany soft i prostrza modernizacja . Po drugie, używam tylu sterowników ile potrzebuję, rozwiązanie bardziej uniwersalne. Po trzecie, jak wystąpi uszkodzenie łatwiej i taniej wymienić pojedyńczy sterownik niż wielosilnikowy. Proponuję popatrzyć na rozwiązania profi np. Gecko - są to sterowniki do 1 silnika zintegrowane z radiatorem.
LTC1446 za 1x 52.90 a za 10x 39.90
LTC1257 1 wyjście 12 bit 1x 38.90 10x 27.90
DAC7611 1 wyjście 12bit 1x 19.90 10x 16.90
Co do procesora to jestem za rozwiązaniem 1 procesor 1 silnik. Po pierwsze, taki układ jest łatwiejszy do projektowania i później do uruchamiania, mniej skomplikowany soft i prostrza modernizacja . Po drugie, używam tylu sterowników ile potrzebuję, rozwiązanie bardziej uniwersalne. Po trzecie, jak wystąpi uszkodzenie łatwiej i taniej wymienić pojedyńczy sterownik niż wielosilnikowy. Proponuję popatrzyć na rozwiązania profi np. Gecko - są to sterowniki do 1 silnika zintegrowane z radiatorem.
-
Autor tematu - Specjalista poziom 2 (min. 300)
- Posty w temacie: 14
- Posty: 346
- Rejestracja: 07 cze 2004, 13:11
- Lokalizacja: Bielsko-Biała
- Kontakt:
Dzięki za ceny przetworników. Widząc je dochodzę do wniosku, że chyba na razie zostawimy przetworniki w spokoju (trochę nie pasują do założeń cenowych). Oczywiście dokumentację końcową na pewno opublikuje się w pdf i Eagle. Ale nie dzielmy na razie skóry na niedźwiedziu.
Jeśli chodzi o BASCOMa to w rozwiązaniu 1 procesor na jedną oś wystarczy w zupełności, po prostu cały soft musi do DACa czy rejestrów sterujących PWM wpisywać dane z wcześniej przygotowanej tabeli wartości napięć sterujących komparatorami w L6505 + sterowanie faz. Jeśli sygnał step podłączymy do pinu z obsługą przerwania zewnętrznego wystarczy, że procedura obsługi tego przerwania będzie wpisywała w zależności od stanu linii dir następną lub poprzednią wartość z tablicy. Zmniejszenie lub zwiększenie jednego wskaźnika oraz wpisanie kilku danych z tablicy do rejestrów trwa naprawdę niewiele cykli.
Jeśli chodzi o BASCOMa to w rozwiązaniu 1 procesor na jedną oś wystarczy w zupełności, po prostu cały soft musi do DACa czy rejestrów sterujących PWM wpisywać dane z wcześniej przygotowanej tabeli wartości napięć sterujących komparatorami w L6505 + sterowanie faz. Jeśli sygnał step podłączymy do pinu z obsługą przerwania zewnętrznego wystarczy, że procedura obsługi tego przerwania będzie wpisywała w zależności od stanu linii dir następną lub poprzednią wartość z tablicy. Zmniejszenie lub zwiększenie jednego wskaźnika oraz wpisanie kilku danych z tablicy do rejestrów trwa naprawdę niewiele cykli.
-
- Znawca tematu (min. 80)
- Posty w temacie: 5
- Posty: 92
- Rejestracja: 04 cze 2004, 14:09
- Lokalizacja: ?l?sk
Chyba nie zrozumieliśmy się co do RS232, to co opisujesz to definiuje niejako już sam standard i nie podlega to dyskusji , jednak chodzi mi o to jaki format danych ma być przesyłany po takim interface ... bo z tego co wiem to większa część programów CNC z obsługą RS budowana jest pod dedykowane sterowniki ... i tam są przesyłane konkretne rozkazy i dane do kontroli sterownika i cały cymes w tym aby wiedzieć jakie i co do czego ... a to nie jest już w większości przypadków opisane ...anjak pisze:Co do RS teoretycznie wystarczą 3 kabelki do PC ale jeszcze jest 4 inne, które warto wykorzystać
Zakładając transmisje 8n1 (10 bit na znak) to przy 115200 / 10 mamy 11 520 bajtów na sekunde (teoretycznie).
RS jest ładnie opisany, prosty w obsłudze. Szybciej przez LPT tu można 100kB mieć na spoko a najmniej siły do włożenia kabelka wymaga USB ale soft do tego jest potrzebny a na tym forum jest cisza.
Program do obsługi, można z corela lub innego ze standardem hpgl, gcode
lub własny - a co !
A co do USB to są dostępne scale do obsługi tego standardu , nawet widziałem gdzieś zrobione coś takiego na tzw "piechotę" na jakimś AVR (konwerter USB -> RS232) , jednak problem pozostaje w napisaniu odpowiedniego sterownika (windows) pod USB ... a to już nie jest taka prosta sprawa ... chyba że pozostaniemy przy standardowym emulującym port szeregowy ...
Jeśli chodzi o własny program CNCOpenSource to jest już powołany osobny dział w tym celu - ZAPRASZAMY tam wszystkich programistów !!!
Pozdrawiam
Damik
Damik
-
- Specjalista poziom 3 (min. 600)
- Posty w temacie: 3
- Posty: 863
- Rejestracja: 02 lip 2004, 23:38
- Lokalizacja: --
ja jednak jestem za zbudowaniem sterownika : 1 uC ktory by przyjmował polecenia
przez RS232 i rozdzielał ruchy na 3 inne procesory ktore by sterowały kazdy swoim
silnikiem, kazdy z silników dostawałby opis ruchu trapezowego i jego zadaniem
byloby precyzyjne poruszanie sie po tej trajektorii , fajnie by bylo gdyby byla
kotrola zwrotna ruchu, np. poprzez enkoder lub
liniał, sterowniki musialyby czesto sprawdzac pozycje i ew. komunikowac się miedzy
sobą czy kazdy jest w swojej pozycji i ew. na chwile sie zatrzymywać gdy jeden
z silników nie wyrabia sie lub napotkał na za duzy opór ( to juz bardzo przesadzony
przyklad ) , sterownik głowny dodatkowo wlaczalby pompke chłodziwa i zajmował
sie obrotami wrzeciona ( tez closedloop
)
co do opisu jezyka komunikacji mozna zrobic na 2 sposoby :
1/ pelna lub czesciowa interpretacja GMCODE , przynajmniej te podstawowe
G0, G1, M3, M5, M7, M9 - ale sterownik głowny mialby niezle do roboty, wyliczac
rozpedzanie , hamowanie i całą dynamike ruchu
2/ wlasne komendy ktore by juz byly wstepnie obrobione z G-kodów przez PC`ta
co by bardzo odciążyło nasz mały uC gdyby dostawał juz jak poszczególne silniki
mają się rozpędzać
interpolacja liniowa do zrobienia na silnikach krokowych nawet w 3D jest prosta do
zrobienia , czy ktos podejmie sie napisania interpolacji kołowej ??

przez RS232 i rozdzielał ruchy na 3 inne procesory ktore by sterowały kazdy swoim
silnikiem, kazdy z silników dostawałby opis ruchu trapezowego i jego zadaniem
byloby precyzyjne poruszanie sie po tej trajektorii , fajnie by bylo gdyby byla
kotrola zwrotna ruchu, np. poprzez enkoder lub
liniał, sterowniki musialyby czesto sprawdzac pozycje i ew. komunikowac się miedzy
sobą czy kazdy jest w swojej pozycji i ew. na chwile sie zatrzymywać gdy jeden
z silników nie wyrabia sie lub napotkał na za duzy opór ( to juz bardzo przesadzony
przyklad ) , sterownik głowny dodatkowo wlaczalby pompke chłodziwa i zajmował
sie obrotami wrzeciona ( tez closedloop

co do opisu jezyka komunikacji mozna zrobic na 2 sposoby :
1/ pelna lub czesciowa interpretacja GMCODE , przynajmniej te podstawowe
G0, G1, M3, M5, M7, M9 - ale sterownik głowny mialby niezle do roboty, wyliczac
rozpedzanie , hamowanie i całą dynamike ruchu
2/ wlasne komendy ktore by juz byly wstepnie obrobione z G-kodów przez PC`ta
co by bardzo odciążyło nasz mały uC gdyby dostawał juz jak poszczególne silniki
mają się rozpędzać
interpolacja liniowa do zrobienia na silnikach krokowych nawet w 3D jest prosta do
zrobienia , czy ktos podejmie sie napisania interpolacji kołowej ??




PiteR