Wstępny projekt sterownika z mikrokrokiem

Rozmowy na temat układów elektronicznych sterowania obrabiarek CNC
Awatar użytkownika

Autor tematu
ottop
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 14
Posty: 346
Rejestracja: 07 cze 2004, 13:11
Lokalizacja: Bielsko-Biała
Kontakt:

#11

Post napisał: ottop » 18 lip 2004, 21:26

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:


anjak
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 9
Posty: 86
Rejestracja: 16 lip 2004, 18:13
Lokalizacja: Ostrołęka

#12

Post napisał: anjak » 18 lip 2004, 21:51

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

Awatar użytkownika

Autor tematu
ottop
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 14
Posty: 346
Rejestracja: 07 cze 2004, 13:11
Lokalizacja: Bielsko-Biała
Kontakt:

#13

Post napisał: ottop » 18 lip 2004, 22:13

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.


anjak
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 9
Posty: 86
Rejestracja: 16 lip 2004, 18:13
Lokalizacja: Ostrołęka

#14

Post napisał: anjak » 18 lip 2004, 23:28

To może pomoże ATmega64 8xPWM , 16MHz , wiekszość instrukcji w jednym takcie etc.


damik
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 5
Posty: 92
Rejestracja: 04 cze 2004, 14:09
Lokalizacja: ?l?sk

#15

Post napisał: damik » 19 lip 2004, 00:36

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.
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 ...

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 ... :wink:

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


anjak
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 9
Posty: 86
Rejestracja: 16 lip 2004, 18:13
Lokalizacja: Ostrołęka

#16

Post napisał: anjak » 19 lip 2004, 07:31

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 !


rchobby
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 2
Posty: 441
Rejestracja: 31 maja 2004, 07:01
Lokalizacja: Białystok
Kontakt:

#17

Post napisał: rchobby » 19 lip 2004, 08:07

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.

Awatar użytkownika

Autor tematu
ottop
Specjalista poziom 2 (min. 300)
Specjalista poziom 2 (min. 300)
Posty w temacie: 14
Posty: 346
Rejestracja: 07 cze 2004, 13:11
Lokalizacja: Bielsko-Biała
Kontakt:

#18

Post napisał: ottop » 19 lip 2004, 16:30

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.


damik
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 5
Posty: 92
Rejestracja: 04 cze 2004, 14:09
Lokalizacja: ?l?sk

#19

Post napisał: damik » 19 lip 2004, 21:58

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 !
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 ...
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


pit202
Specjalista poziom 3 (min. 600)
Specjalista poziom 3 (min. 600)
Posty w temacie: 3
Posty: 863
Rejestracja: 02 lip 2004, 23:38
Lokalizacja: --

#20

Post napisał: pit202 » 19 lip 2004, 22:42

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 ?? :D :D :D :D
PiteR

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Elektronika CNC”