Candle

Sterowaniem wrzecionem

Rozmowy dotyczące oprogramowania sterującego maszynami CNC i sterowników CNC obrabiarek numerycznych

Autor tematu
Jarewa
Stały bywalec (min. 70)
Stały bywalec (min. 70)
Posty w temacie: 4
Posty: 72
Rejestracja: 29 mar 2020, 22:37

Candle

#1

Post napisał: Jarewa » 02 kwie 2022, 08:06

Mam sterownik gbrl 1.1f i wrzeciono na sterowniku WS55-220 tam się steruje napięciem od 0-do 10V dlatego jest konwerter PWM to 0-10V. O ile obroty maksymalne 14000 są ok i zgodne a minimalne się rozjeżdżają i to dość mocno. W GBRL jest ustawienie ale to zakres który mi nie odpowiada wrzeciono zaczyna minimalne od 500obr wypełnienie 20%PWM żeby dało się to przesunąć w gbrl spindle min poniżej 0 to by można było skonfigurować prawidłowo obroty zadane od fizycznych ale się nie da.

Mój obecny konwerter ma ustawienie tylko żeby ustawić 1:1 czyli 50%PWM to 5V. Ewentualnie mogę przesunąć całość.

Mam pytanie czy są jakieś konwertery gdzie dodatkowo można przesuwać zakresy min/max?



Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: Candle

#2

Post napisał: TOP67 » 02 kwie 2022, 08:21

Jarewa pisze:
02 kwie 2022, 08:06
Mam pytanie czy są jakieś konwertery gdzie dodatkowo można przesuwać zakresy min/max?
Można za pomocą prostej elektroniki analogowej, ale łatwiej to zrobić cyfrowo
Można przekompilować GRBL tak, żeby dla minimalnych obrotów dawał dowolną wartość PWM (nawet 50%). Tylko trzeba ustalić tą wartość.
Wydaje się, że to powinno rozwiązać problem
#define SPINDLE_PWM_MIN_VALUE 50
$31=500

Mierzyłeś napięcia za konwerterem?
Jeśli wpisałeś $30=14000, $31=0, to jakie napięcia masz dla poleceń
M3 S1400 (powinno być 1V)
M3 S2800 (2V)
...
M3 S12600 (9V)


Autor tematu
Jarewa
Stały bywalec (min. 70)
Stały bywalec (min. 70)
Posty w temacie: 4
Posty: 72
Rejestracja: 29 mar 2020, 22:37

Re: Candle

#3

Post napisał: Jarewa » 02 kwie 2022, 14:39

Konwerter dobrze działa i liniowo na 10%PWM daje 1V, 50%PWM 5V, 90%PWM 9V, tak jak pisałem wyżej o ile przy 100%PWM da się ustawić prawidłowo i daje 14000 obr/min

Na zadane 14tyś mam 14tyś. Na zadane 10tyś mam 10200 obr na zadane 7tyś mam 7500 obr na zadane 4tyś mam 2600. A na zadane 3tyś mam 1tyś. Że dół się całkiem rozjeżdża. A moje wrzeciono dobrze dopiero kręci w okolicach 500obr i to jest 20%PWM.

Ogólnie wgrywałem gotowca GBRL1.1f

Musze poszukać kodów źródłowych i przekompilować GRBL pod siebie..

Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: Candle

#4

Post napisał: TOP67 » 02 kwie 2022, 14:43

Czyli to silnik lub sterownik wrzeciona nie działa liniowo.

Zainstaluj Arduino IDE, pobierz GRBL i wyedytuj plik config.h

Jeśli masz Arduino nano, z CNC Shield v4, to musisz jeszcze zamienić porty STEP i DIR w każdej osi w pliku cpu_map.h


Autor tematu
Jarewa
Stały bywalec (min. 70)
Stały bywalec (min. 70)
Posty w temacie: 4
Posty: 72
Rejestracja: 29 mar 2020, 22:37

Re: Candle

#5

Post napisał: Jarewa » 02 kwie 2022, 19:47

Ogólnie mam taki sterownik przystosowany do 1.1 czy gotowy hex do pobrania rożni się ustawieniami z plików źródłowych?


Obrazek

Awatar użytkownika

TOP67
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 3
Posty: 2224
Rejestracja: 17 wrz 2018, 10:47
Lokalizacja: Wrocław
Kontakt:

Re: Candle

#6

Post napisał: TOP67 » 02 kwie 2022, 19:51

Nie różni się. To wciąż jest Atmega 328p. Ustawienia będą zatem domyślne jak dla Uno.

Przy okazji polecam odblokowanie
#define ENABLE_SAFETY_DOOR_INPUT_PIN
i zdefiniowanie czasu rozruchu wrzeciona
#define SAFETY_DOOR_SPINDLE_DELAY 1.0 // Float (seconds)

Zmienia to sposób działania wejścia Hold.

Normalnie hold wstrzymuje tylko posuw. Po zmianie zatrzyma się też wrzeciono. Pozwala to chwilowo wstrzymać pracę, np. w celu usunięcia wiórów (zwłaszcza przy wierceniu). Drugie wciśnięcie powoduje wznowienie pracy. Nie jest wtedy potrzebny przycisk Resume.


Autor tematu
Jarewa
Stały bywalec (min. 70)
Stały bywalec (min. 70)
Posty w temacie: 4
Posty: 72
Rejestracja: 29 mar 2020, 22:37

Re: Candle

#7

Post napisał: Jarewa » 03 kwie 2022, 21:41

Nie było tak źle wyszło mi to co chciałem, bo GBRL ma obsługę nieliniowego wrzeciona :) trzeba było sobie tylko porobić punkty pwm/obr i wpisać w skrypt fit_nonlinear_spindle.py który mi wyliczył dane które trzeba było wpisać a config.h
CONFIG:
  N_pieces: 4
  PWM_min: 50.0
  PWM_max: 225.0
  PWM_point1: 60.0
  PWM_point2: 100.0
  PWM_point3: 150.0
  N_data: 14
  PWM_set:  [ 50.  65.  80.  95. 110. 125. 140. 155. 170. 185. 200. 215. 220. 225.]
  RPM_measured:  [  480.  1830.  3210.  4740.  6180.  7390.  8435.  8450.  9700. 11080.
 12090. 13300. 13700. 13750.]

SOLUTION:

[Update these #define values and uncomment]
[ENABLE_PIECEWISE_LINEAR_SPINDLE in config.h.]
#define N_PIECES 4
#define RPM_MAX 13899.8
#define RPM_MIN 480.0
#define RPM_POINT12 1157.9
#define RPM_POINT23 5556.7
#define RPM_POINT34 8537.6
#define RPM_LINE_A1 1.475231e-02
#define RPM_LINE_B1 -4.291889e+01
#define RPM_LINE_A2 9.093288e-03
#define RPM_LINE_B2 -4.947125e+01
#define RPM_LINE_A3 1.677374e-02
#define RPM_LINE_B3 -6.793226e+00
#define RPM_LINE_A4 1.398673e-02
#define RPM_LINE_B4 -3.058750e+01

[To operate over full model range, manually write these]
['$' settings or alter values in defaults.h. Grbl will]
[operate between min($30,RPM_MAX) and max($31,RPM_MIN)]
$30=13899.8 (rpm max)
$31=480.0 (rpm min)

[Update the following #define values in cpu_map.h]
#define SPINDLE_PWM_MIN_VALUE 50
#define SPINDLE_PWM_MAX_VALUE 225


Teraz mi balanga :mrgreen: co wpisze w candle takie mam obroty +- czasem 100obr ale to pewnie że rozdzielczość PWM się zawęziła jak by nie patrzeć mam tylko 175 możliwości co daje rozdzielczość 80obr. Dzięki za podpowiedzi bo gdybym nie ruszył z konfiguracją pewnie bym nie wiedział o tym.

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „Ogólne Dyskusje na Temat Systemów Sterowania CNC”