Znaleziono 9 wyników

autor: drzasiek90
22 maja 2023, 10:38
Forum: LinuxCNC (dawniej EMC2)
Temat: Enkoder w LinuxCNC, toczenie gwintu, parametry
Odpowiedzi: 52
Odsłony: 3146

Re: Enkoder w LinuxCNC, toczenie gwintu, parametry

Załączam prosty kod dla stm32f103 na zmianę rozdzielczości do enkodera MT6701 - można go użyć do zmiany innych parametrów.
Nie wiem czy ktoś będzie potrzebował, ale wrzucam, na wypadek, gdyby mi było jeszcze kiedyś potrzebne.

Kod: Zaznacz cały



/* Includes */
#include <stddef.h>
#include "stm32f10x.h"

#define I2C_SLAVE_ADDR 0x06		//adres urządzenia slave
#define I2C_REG_ADDR 0x31		//rejestr do zapisu
#define I2C_DATA 199			//Dana I2C - w tym przypadku rozdzielczość enkodera

static uint8_t  fac_us = 0;

void delay_init( uint8_t SYSCLK )
{
	SysTick->CTRL &= 0xFFFFFFFB;
	fac_us = SYSCLK / 8;
}

void delay_ms( uint16_t ms )
{
	while( ms-- )
	     delay_us( 999 );
}

void delay_us( uint32_t us )
{
	uint32_t temp;
	SysTick->LOAD = us * fac_us;
	SysTick->VAL = 0x00;
	SysTick->CTRL = 0x01;
	do
	{
		temp = SysTick->CTRL;
	}
	while( temp & 0x01 &&!( temp & ( 1 << 16 )));
	SysTick->CTRL = 0x00;
	SysTick->VAL = 0x00;
}

volatile void delay_ticks(volatile uint32_t t)
{
	while( (volatile)t--);
}

void led_init()
{
	RCC->APB2ENR|= RCC_APB2ENR_IOPCEN;
	GPIOB->CRH &=~ (GPIO_CRH_MODE13 | GPIO_CRH_CNF13);
	GPIOC->CRH |= GPIO_CRH_MODE13_0;//Output mode, max speed 10 MHz
}

void led_OFF()
{
	GPIOC->BSRR = GPIO_BSRR_BS13;
}

void led_ON()
{
	GPIOC->BSRR = GPIO_BSRR_BR13;
}

void led_TGL()
{
	GPIOC->ODR ^= GPIO_ODR_ODR13;
}

void I2C_init(void)
{
    // Włącz taktowanie dla I2C
    RCC->APB1ENR |= RCC_APB1ENR_I2C1EN;
    RCC->APB2ENR |= RCC_APB2ENR_IOPBEN;

    // Konfiguruj piny jako alternatywne funkcje open-drain
	GPIOB->CRL &= ~(GPIO_CRL_MODE6 | GPIO_CRL_CNF6 | GPIO_CRL_MODE7 | GPIO_CRL_CNF7);
	GPIOB->CRL |= GPIO_CRL_CNF6 | GPIO_CRL_CNF7 | GPIO_CRL_MODE6 | GPIO_CRL_MODE7;

	delay_ms(500);

	// Konfiguruj parametry I2C1
	I2C1->CR1 &= ~I2C_CR1_PE; // Wyłącz I2C1 przed konfiguracją
	I2C1->CR1 |= I2C_CR1_SWRST; // Zresetuj I2C1
	delay_ms(1);
	I2C1->CR1 &= ~I2C_CR1_SWRST;

	// Skonfiguruj prędkość I2C1
	I2C1->CR2 &= ~I2C_CR2_FREQ;
	I2C1->CR2 |= 1; // Ustaw czestotliwość APB1 na 36 MHz (odpowiednie dla większości konfiguracji mikrokontrolera)
	// Wyłącz przerwania I2C
	I2C1->CR2 &= ~I2C_CR2_ITEVTEN;

	I2C1->CCR &= ~I2C_CCR_CCR;
	I2C1->CCR |= 180; // Ustaw CCR na wartość zapewniającą prędkość 100 kHz

	I2C1->TRISE = 37; // Ustaw TRISE na wartość zapewniającą odpowiednie opóźnienie dla prędkości 100 kHz

	// Włącz I2C1
	I2C1->CR1 |= I2C_CR1_PE;
}

void I2C_SendByte(uint8_t slave_addr, uint8_t reg_addr, uint8_t data)
{
	// Czekaj, aż I2C1 będzie gotowy do transmisji
	while ((I2C1->SR2 & I2C_SR2_BUSY) != 0);

	// Generuj warunek START
	I2C1->CR1 |= I2C_CR1_START;

	// Czekaj na zakończenie warunku START
	while ((I2C1->SR1 & I2C_SR1_SB) == 0);

    // Wysłanie adresu slave (zapis)
    I2C1->DR = (slave_addr << 1) & 0xFE;
    while (!(I2C1->SR1 & I2C_SR1_ADDR)); // Czekaj na potwierdzenie adresu

    // Odczytanie SR2
    (void)I2C1->SR2;

    // Wysłanie adresu rejestru
    I2C1->DR = reg_addr;
    while (!(I2C1->SR1 & I2C_SR1_TXE)); // Czekaj na pusty bufor

    // Wysłanie danych
    I2C1->DR = data;
    while (!(I2C1->SR1 & I2C_SR1_TXE)); // Czekaj na pusty bufor

    // Wysłanie stopu
    I2C1->CR1 |= I2C_CR1_STOP;
}

uint8_t I2C_ReadByte(uint8_t slave_addr, uint8_t reg_addr)
{
    uint8_t receivedData;

    // Czekaj, aż I2C1 będzie gotowy do transmisji
    while ((I2C1->SR2 & I2C_SR2_BUSY) != 0);

    // Generuj warunek START
    I2C1->CR1 |= I2C_CR1_START;

    // Czekaj na zakończenie warunku START
    while ((I2C1->SR1 & I2C_SR1_SB) == 0);

    // Wysłanie adresu slave (zapis)
    I2C1->DR = (slave_addr << 1) & 0xFE;
    while (!(I2C1->SR1 & I2C_SR1_ADDR)); // Czekaj na potwierdzenie adresu

    // Odczytanie SR2
    (void)I2C1->SR2;

    // Wysłanie adresu rejestru
    I2C1->DR = reg_addr;
    while (!(I2C1->SR1 & I2C_SR1_TXE));
    // Czekaj na pusty bufor

    // Generuj warunek RESTART
    I2C1->CR1 |= I2C_CR1_START;

    // Czekaj na zakończenie warunku RESTART
    while ((I2C1->SR1 & I2C_SR1_SB) == 0);

    // Wysłanie adresu slave (odczyt)
    I2C1->DR = (slave_addr << 1) | 0x01; // Ustaw bit kierunku na odczyt
    while (!(I2C1->SR1 & I2C_SR1_ADDR)); // Czekaj na potwierdzenie adresu

    // Odczytanie SR2
    (void)I2C1->SR2;

    // Wyłącz przerwania I2C
    I2C1->CR2 &= ~I2C_CR2_ITEVTEN;

    // Włącz odczyt ACK
    I2C1->CR1 &= ~I2C_CR1_ACK;

    // Generuj warunek STOP
    I2C1->CR1 |= I2C_CR1_STOP;

    // Czekaj na odczyt bajtu danych
    while (!(I2C1->SR1 & I2C_SR1_RXNE));

    // Odczytaj otrzymany bajt danych
    receivedData = I2C1->DR;

    return receivedData;
}

int main(void)
{
	delay_init(72);
	led_init();
	led_ON();
	delay_ms(200);
	led_OFF();
	I2C_init();

	delay_ms(50);
	// Wysłanie danych
	I2C_SendByte(I2C_SLAVE_ADDR, I2C_REG_ADDR, I2C_DATA);//Programowanie rejestru
	I2C_SendByte(I2C_SLAVE_ADDR, 0x09, 0xb3);//Klucz programowania
	I2C_SendByte(I2C_SLAVE_ADDR, 0x0A, 0x05);//Komenda programowania
	delay_ms(700);//Odczekanie conajmniej 600 ms na zakończenie operacji
	uint8_t read = I2C_ReadByte(I2C_SLAVE_ADDR, I2C_REG_ADDR);//odczyt zapisanego rejestru

	if(read != I2C_DATA)//porównanie
	{
		while(1)//jeśli nieprawidłowe, to LED mróga
		{
			led_TGL();
			delay_ms(200);
		}
	}

	led_ON();//Led świeci, prawidłowy odczyt

	while (1);
}

Połączenie należy wykonać według schematu z dokumentacji:
Obrazek

Konfiguracja pod płytkę bluepill.
SCL to noga PB6 mikrokontrolera, SDA to noga PB7.
Po poprawnym ustawieniu rejestru, dioda na wyjściu PC13 zaświeci, gdy odczytana wartość nie zgodzi się z zapisaną, dioda będzie mrugać.

Szkoda się bawić w enkodery na transoptorach bo jakość sygnału kwadraturowego z wykonanego enkodera będzie zawsze powodować ograniczenie maksymalnej prędkości.
Ten enkoder kosztuje grosze i naprawdę uważam, że wart jest uwagi.
autor: drzasiek90
13 maja 2023, 20:54
Forum: LinuxCNC (dawniej EMC2)
Temat: Enkoder w LinuxCNC, toczenie gwintu, parametry
Odpowiedzi: 52
Odsłony: 3146

Re: Enkoder w LinuxCNC, toczenie gwintu, parametry

tuxcnc pisze:
13 maja 2023, 15:26
Ale niech Ci będzie, na przyszłość będę pisał "kresek na obrót", żebyś się nie przypieprzał do jednej literki w zdaniu, które jest absolutnie jednoznaczne...
Zupełnie nie rozumiem twojego podejścia.
Zdementowałem bzdurę, którą napisałeś i tyle. Wydaje mi się, że kulturalnie.
U ciebie nie było literówki, u mnie nie było przypieprzania.
A jednoznaczne jest tylko w tedy, gdy jest zgodne z prawdą, a nie tak jak ty błędnie sobie zakodowałeś w głowie.
Przecież sam, jak twierdzisz, "stoisz na straży" konkretnych wypowiedzi i dementowania bzdur na forum publicznym, ponieważ ktoś wejdzie, przeczyta, że 100 cpr oznacza 100 kresek na tarczy i zostanie wprowadzony w błąd.
tuxcnc pisze:
13 maja 2023, 15:26
Jeśli będziesz liczył co sekundę, to niczego nie polepszysz...
Ale jeśli będziesz miał zauważyć znak drogowy, ale będziesz sprawdzał co minutę, to jest duża szansa, że go przegapisz.
Jeśli gwintowanie rozpoczyna się od indexu, to policzmy przykładową sytuację:
Obroty 800rpm.
Jeśli sygnał index pojawił się 1 ns po wywołaniu wątku, to gdy wątek wywoływany jest co 1 ms to w zaokrągleniu za 1 ms dopiero zostanie to zdekodowane i rozpocznie się cykl.
Dla 800 rpm daje to 0,0133 obrotu, a więc 4,8 stopnia.
Jeśli będzie się zdarzać sytuacja, że index raz się pojawi tuż przed wywołaniem wątku a innym razem tuż po wywołaniu wątku, będziemy mieli około 4,8 stopnia różnicy w przejazdach, a więc gwint się rozjedzie.
tuxcnc pisze:
13 maja 2023, 15:26
Tak sobie na spokojnie to przemyślałem i doszedłem do wniosku, że tam też piszą głupoty.
Raczej prawda jest taka, że błędem jest użycie pojęcia cpr do enkodera, bo "c" jest faktycznie od "counts", ale przecież enkoder niczego nie liczy, on tylko wystawia stany na wyjściach...
A pisanie o "elektronicznym mnożeniu przez cztery", to już kompletny debilizm.
Ach ta duma. Walcz z nią :)
Wszystko jest logiczne, CPR - counts per revolution, PPR - pulses per revolution.

Dodane 2 godziny 37 minuty 37 sekundy:
Tak jeszcze w ramach ciekawostki.
Kupiłem jakiś czas temu u chińczyka enkoder 38S6G5-B-G24N 50ppr (chińczyk podaje 50 P/R).
Chciałem 25 PPR, tak aby mieć te wcześniej tutaj wspomniane 100cpr które rzekomo miało być max dla linuxcnc - chciałem testować max, no ale 50 PPR to było najmniej co znalazłem.
No ale to było zanim jeszcze się dowiedziałem, że index jest niezbędny, więc kupiłem z wyjściami AB, bez indeksu.
Zrobiłem więc sobie w międzyczasie enkoder 100cpr na transoptorach (w sumie znalazłem fajne bardzo małe więc podam model, gdyby ktoś był zainteresowany - ITR20403) noi działa.
Chciałem sobie zrobić enkoder na enkoderze magnetycznym AMS (mam kilka sztuk, kiedyś wysyłali sample, nie wiem czy nadal wysyłają) + uc do konfigurowania ale mi się nie chciało, więc zostało na transoptorach szczelinowych.
Enkoder na transoptorach szczelinowych nie jest idealny, z tego względu, że okienko transoptora ma pewną szerokość, stąd ciężko uzyskać przebiegi o wypełnieniu 50% i idealne przesunięcie fazowe 90 pomiędzy AB. Jeśli przebiegi nie są "książkowe", to maksymalna prędkość obrotowa jaką da się zmierzyć przy danej częstotliwości próbkowania również spada.
Dlatego zdecydowanie lepszym rozwiązaniem jest użycie układu scalonego (np. enkoder magnetyczny z odpowiednim wyjściem lub inny układ, który te sygnały wygeneruje).
Dziś z ciekawości rozkręciłem enkoder od chińczyka, odnalazłem całkiem ciekawą płytkę w środku.
PCB ma wyprowadzony również sygnał Z, ale chińczyk nie dolutował kabelka.
Na PCB siedzi układ MagnTek MT6701 - enkoder magnetyczny, który ma między innymi wyjścia ABZ a rozdzielczość jest programowana w zakresie 1 - 1024 Pulses per Revolution (PPR).
Całkiem fajny scalak.
autor: drzasiek90
13 maja 2023, 09:34
Forum: LinuxCNC (dawniej EMC2)
Temat: Enkoder w LinuxCNC, toczenie gwintu, parametry
Odpowiedzi: 52
Odsłony: 3146

Re: Enkoder w LinuxCNC, toczenie gwintu, parametry

tuxcnc pisze:
13 maja 2023, 05:19
Ani nie ma powodu żeby to robić, ani w niczym to nie pomoże, natomiast prawie na pewno będą z tego problemy.
Standardowo stosuje się SERVO_PERIOD 1 ms, czyli tysiąc razy na sekundę. Nie znam maszyny dla której byłoby to zbyt wolno.
Ja ustawiłem SERVO_PERIOD na 200us i nie ma kłopotów. Dlaczego miałyby być?
Jeśli można liczyć 5 razy szybciej, oznacza to, że 5 razy częściej kontroler ma obliczoną pozycję i prędkość wrzeciona.
O ile prędkość się tak nie zmienia, to pozycja owszem.
drzasiek90 pisze:
12 maja 2023, 22:47
No więc weźmy na warsztat wspomniany enkoder 100 cpr (czyli 25 ppr - impulsów na obrót).
Przetwarzanie błędnych danych daje błędne wyniki.
tuxcnc pisze:
13 maja 2023, 05:19
100 cpr oznacza 100 kresek na tarczy, tak oznaczają enkodery wszyscy producenci, czyli przy odczycie kwadraturowym 400 próbek na obrót.
Pozwól, że cię zacytuję, w odpowiedzi na twoje pytanie.
tuxcnc pisze:
13 maja 2023, 05:19
Bzdura.
CPR to liczba stanów na obrót (stanów kwadraturowych), PPR to liczba kresek na tarczy.
https://www.rls.si/eng/faq/index/show/c ... dgQAvD_BwE
tuxcnc pisze:
13 maja 2023, 05:19
Policz jeszcze raz, to zrozumiesz dlaczego 100 cpr to maksimum.
Nie trzeba jeszcze raz liczyć. Wystarczy, że już wiemy, że błędnie napisałeś i twoje stwierdzenie
drzasiek90 pisze:
12 maja 2023, 22:47
100 cpr to absolutne maksimum dla portu LPT.
poprawimy na:
100 ppr to absolutne maksimum dla portu LPT
lub
400 cpr to absolutne maksimum dla portu LPT.

I wtedy się zgadza.
autor: drzasiek90
12 maja 2023, 22:47
Forum: LinuxCNC (dawniej EMC2)
Temat: Enkoder w LinuxCNC, toczenie gwintu, parametry
Odpowiedzi: 52
Odsłony: 3146

Re: Enkoder w LinuxCNC, toczenie gwintu, parametry

tuxcnc pisze:
13 kwie 2023, 14:28
drzasiek90 pisze:
13 kwie 2023, 11:23
Jaka rozdzielczość? 100 imp/obrót? Więcej, mniej?
100 cpr to absolutne maksimum dla portu LPT.
Ja mam u siebie 40 cpr i nigdy nie narzekałem.
Jaki masz BASE_PERIOD i SERVO_PERIOD?
Ciekawostka (pewnie wiesz, ale może nie wszyscy wiedzą), obliczanie wartości z enkodera (między innymi) odbywa się w wątku wywoływanym z okresem SERVO_PERIOD, czyli nie w najszybszym wątku w maszynie. SERVO_PERIOD zaokrąglany jest do całkowitej wielokrotności BASE_PERIOD, a więc jest co najmniej 2 razy wolniejszy od wątku próbkującego wejście na LPT.
Warto o tym wiedzieć, jeśli konfigurację utworzyło się z kreatora Stepconf Wizard, bo on tworzy (a przynajmniej u mnie) wartość SERVO_PERIOD dużo wyższą (10 razy większą) od BASE_PERIOD.
Dlatego korzystając z enkodera na LPT, od razu warto zmienić wartość SERVO_PERIOD na 2 krotność BASE_PERIOD, jeśli komputer to uciągnie.

Tak zacząłem rozkminiać te maksymalne rozdzielczości z enkodera na LPT.
Nikt nie napisał, jaka jest maksymalna użytkowa prędkość obrotowa do toczenia gwintów.
No ale, jeśli weźmiemy enkoder w trybie kwadraturowym, to aby system prawidłowo rozpoznał każdy stan, czas pomiędzy kolejnymi próbkami powinien być krótszy, niż 1/4 okresu impulsu - bo tyle wynosi przesunięcie między sygnałami A i B.
No więc weźmy na warsztat wspomniany enkoder 100 cpr (czyli 25 ppr - impulsów na obrót).
Dla okresu bazowego 100us (narazie pominiemy jitter), to nam daje, że okres jednego impulsu musi być większy niż 400us, a więc czas obrotu enkodera dłuższy niż 400us x 25 = 10000us = 0.01s
Daje nam to prędkość obrotową do 100 obrotów/s czyli 6000 obrotów na minutę.
W praktyce mniej, bo dochodzi do tego jitter, noi musi być jakiś zapas.
No ale nawet jak wyjdzie 5000 rpm to chyba jednak nadal spora wartość i spory zapas, można by się pokusić o 200cpr i 2500rpm?
No chyba, że te 5000rpm jest wartością potrzebną, niezbędną (do czego???)
Wiem, że prędkość wyższa jest używana, ale chyba nie w cyklach synchronicznych?
No chyba, że się chce uzyskać stałą prędkość skrawania, przejazd wykańczający, wysokie obroty.
No ale to tego potrzebna informacja o tym zakresie użytecznych obrotów, gdzie enkoder jest wykorzystywany.
A może walnąłem się w obliczeniach, jest piątek, późna godzina...
autor: drzasiek90
15 kwie 2023, 20:21
Forum: LinuxCNC (dawniej EMC2)
Temat: Enkoder w LinuxCNC, toczenie gwintu, parametry
Odpowiedzi: 52
Odsłony: 3146

Re: Enkoder w LinuxCNC, toczenie gwintu, parametry

tuxcnc pisze:
15 kwie 2023, 11:34
Każdy kod modalny z innej grupy (np. G1) rozsynchronizuje wrzeciono.
To nie powinno przeszkadzać w gwintowaniu bez sygnału indexu.
Jak się rozpocznie gwintowanie to raczej wykonuje się dany gwint aż do zakończenia gwintowania.
Pewnie są specyficzne przypadki, gdy trzeba wrócić spowrotem w gwint po wykonaniu innych operacji ale to raczej nie jest sytuacja standardowa i częsta.
tristar0 pisze:
15 kwie 2023, 11:47
skoro w manualach linuxacnc jest indeks to już ktoś to już lata temu zastosował z jakiegoś powodu
Ja nie chcę dyskutować z tym czy index jest potrzebny czy nie.
Skoro jest obsługiwany to zapewne jest potrzebny w pewnych sytuacjach.
Mnie bardziej interesowało kiedy nie jest potrzebny.
autor: drzasiek90
14 kwie 2023, 20:52
Forum: LinuxCNC (dawniej EMC2)
Temat: Enkoder w LinuxCNC, toczenie gwintu, parametry
Odpowiedzi: 52
Odsłony: 3146

Re: Enkoder w LinuxCNC, toczenie gwintu, parametry

tristar0 pisze:
14 kwie 2023, 20:15
istotne jest żeby następne przejście noża było w tym samym miejsce i za to odpowiada index
No właśnie na logikę nie za to.
Przecież skoro masz sygnały A i B to masz wszystko do względnego pomiaru pozycji.
Jeśli nie potrzebujesz pomiaru bezwzględnego, czyli jak podał przykład atom aby kontynuować gwintowanie po zaniku prądu lub kolejnego dnia, albo nie potrzebujesz zaczynać gwintu w konkretnej pozycji, to index na czort potrzebny.
A i B wystarczają do pomiaru pozycji, o ile nie zgubisz któregoś sygnału.

tristar, pewnie masz konfigurację jak tutaj: https://linuxcnc.org/docs/html/examples/spindle.html
autor: drzasiek90
14 kwie 2023, 19:56
Forum: LinuxCNC (dawniej EMC2)
Temat: Enkoder w LinuxCNC, toczenie gwintu, parametry
Odpowiedzi: 52
Odsłony: 3146

Re: Enkoder w LinuxCNC, toczenie gwintu, parametry

tristar0 pisze:
14 kwie 2023, 14:11
drzasiek90 pisze:Czy sygnał indeksu jest wymagany
tylko do gwintowania nożem
No ale właśnie do czego? Sygnał index generowany jest raz na obrót i służy do wyznaczenia tzw. zera, czyli odniesienia.
Do czego w standardowym gwintowaniu to jest potrzebne? Przecież jeśli jest sygnał A i B to mamy zarówno kierunek jak i krok. Jeśli linuxcnc "wie" ile ile enkoder ma cpr to przecież dokładnie wiadomo w jakiej pozycji znajduje się wał wrzeciona - pozycji względnej.
Index pomoże wyznaczyć pozycję bezwzględną. Do czego moze być potrzebna? No ja sobie mogę sobie tylko wyobrazić bo jak mówiłem się tym nie zajmuję. Może w przypadku, gdy chcemy aby gwint rozpoczął się w konkretnym położeniu?
Natomiast przy wykonaniu gwintu gdzie nieistotne jest w której pozycji rozpocznie się gwint, do czego index?
autor: drzasiek90
14 kwie 2023, 13:51
Forum: LinuxCNC (dawniej EMC2)
Temat: Enkoder w LinuxCNC, toczenie gwintu, parametry
Odpowiedzi: 52
Odsłony: 3146

Re: Enkoder w LinuxCNC, toczenie gwintu, parametry

Ok, czyli rozumiem, że 100 cpr to maksymalna wartość możliwa do obsłużenia na LPT.
Daje to podział 3.6 stopnia. Wrzeciono ma też zazwyczaj sporą inercję, więc można założyć (o ile się nie przesadzi), że że prędkość i pozycję na się łatwo i dość dokładnie ekstrapolować z niewielkiej rozdzielczości, podejrzewam, że linuxCNC to robić. (?)
Czy sygnał indeksu jest wymagany?

Do czego używacie konfiguracji z enkoderem?
- gwintowanie nożem (wtedy pewnie wystarczy podłączenie sygnału A lub B i indeksu, kierunek obrotów nie jest istotny. Mam rację?
- gwintowanie gwintownikiem (tu konieczne jest obliczenie kierunku obrotów, a więc podłączenie AB i Z)
-Toczenie ze stałą prędkością skrawania - czy tu enkoder potrzebny? W sumie odległość noża od osi obrotu jest znana.
-Coś jeszcze?
autor: drzasiek90
13 kwie 2023, 11:23
Forum: LinuxCNC (dawniej EMC2)
Temat: Enkoder w LinuxCNC, toczenie gwintu, parametry
Odpowiedzi: 52
Odsłony: 3146

Enkoder w LinuxCNC, toczenie gwintu, parametry

Ten temat jest w rodzaju pozyskania danych, proszę nie rozpętywać gównoburzy na temat sensu i potrzeby.
Mimo, że posiadam maszyny CNC i na nich pracuję, to ze skrawaniem metalu nie mam wiele wspólnego. Obrabiam materiały z operacjami i wymaganiami, gdzie nie potrzeba pomiaru pozycji/prędkości wrzeciona, dlatego nie miałem z tym styczności. Zamiast przetrzepywać internet w poszukiwaniu, pomyślałem, że zapytam i chętne osoby podzielą się informacją.
Nie będę budował tokarki CNC, natomiast dane te potrzebuje do obliczeń i pomiarów z punktu widzenia sterowania, ale nie o tym.
Pytania dotyczą maszyn sterowanych z linuxCNC poprzez port LPT.

1. Jaki enkoder stosujecie na wrzeciono?
Rozumiem, że inkrementalny z wyjściem sygnał plus kierunek. Może ktoś podać jakiś przykładowy model? A może jest jakiś ulubiony najczęściej stosowany np. w tokarkach?
Jaka rozdzielczość? 100 imp/obrót? Więcej, mniej?
2. W jakich sytuacjach/maszynach korzystacie z enkodera?
Nacinanie gwintów nożem/gwintownikiem.
I co jeszcze?
2. Jaki przedział obrotów wrzeciona jest istotny i użyteczny w tych obróbkach? Głównie chodzi o maksymalne obroty używane przy tego rodzaju obróbkach?

Wróć do „Enkoder w LinuxCNC, toczenie gwintu, parametry”