Konfiguracja krokowców - zgłupiałem ...

Dyskusje dotyczące działania obsługi programu LinuxCNC

Autor tematu
prm_ex
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 8
Posty: 80
Rejestracja: 28 lip 2015, 15:55
Lokalizacja: Poznań

Konfiguracja krokowców - zgłupiałem ...

#1

Post napisał: prm_ex » 26 lis 2015, 12:56

Witam serdecznie

Ja w nawiązaniu do tematu mojej maszynki.
Zrobiłem część ruchomą urządzenia i przyszedł czas rozpocząć przygodę z Linuxcnc.
Wstępną konfigurację zrobiłem jeszcze jak silniki były na stole (czy wszystko działa) i z tymi ustawieniami (przypadkowymi) zrobiłem pierwsze ostrożne uruchomienie.
film

Ożyła, ale przyszedł czas aby skonfigurować krokowce jak należy bo oczywiście rzeczywiste przejazdy nijak się mają do zadanych :wink:

Owszem metodą prób i błędów można się przybliżyć a potem wyskalować ale chyba nie o to chodzi.
Próbowałem za pomocą manuala, neta i swojej logiki poustawiać ale coś mi nie pasuje.

Oba silniki mam z zębatkami Z20 M1.
Jeden napędza zębatkę Z80 M1 na mandreli
A drugi prosto do listwy zębatej.

Silniki są 200 krokowe, ustawiony mikrokrok na kontrolerze 1/8

I teraz jeśli chodzi o drugi silnik (pod sankami, na listwie zębatej) dałem:

motor steps per rev. : 200
Driver microstepping : 8.0
Pulley: Leadscrew : 1:1
Leadscrew pitch : 20 ( bo tyle zębów z modułem 1)

.... i nie zgadzało się mocno

No więc poszedłem po rozum do głowy i skoro jeden obrót silnika ma 20 zębów, zmierzyłem na listwie ich skok i wyszło 64mm. Ale jak wpisałem jako skok śruby 64 to rzeczywiste przejazdy były ~połowę za krótkie niż zadane. Mogę dobierać metodą prób i błędów i wyskalować ale nie o to przecież chodzi.

Gdzie robię logicznego babola?! Proszę o pomoc

Co jeszcze rzuciło mi się w oczy to rozumiem, że skok śruby to są np mm/obrót,
ale w manual'u przy tym ustawieniu na rysunku pokazano rev/in czyli w naszych jednostkach byłoby obrót/mm. To musiałbym wpisać jakiś kosmiczny ułamek!

Prawdę mówiąc zgłupiałem już przy tak prostej wydawałoby się rzeczy.
Będę dziś wieczorem dalej "męczył kota" ale może w międzyczasie, któryś z uprzejmych forumowiczów zabierze głos i da nowe światło na sprawę.

pozdrawiam



Tagi:


zibi
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1280
Rejestracja: 24 lut 2007, 15:20
Lokalizacja: podkarpackie

#2

Post napisał: zibi » 26 lis 2015, 13:32

Jeden obrót twojego koła to OBW=3,14×20=62.8
A jak wpiszesz skok 10 to ile przejeżdża na zadanym 100mm?
NX CAD, NX CAM, FREZOWANIE 5AX, ELEKTRODRĄŻARKI WGŁĘBNE I DRUTOWE. PEPS, VERICUT. Pomagam w NX przez Team Viewer. Postprocesory NX.


Autor tematu
prm_ex
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 8
Posty: 80
Rejestracja: 28 lip 2015, 15:55
Lokalizacja: Poznań

#3

Post napisał: prm_ex » 26 lis 2015, 13:48

Oczywiście 2Πr jest znane.
Nie mając pod ręką neta i dostępu do strony katalogowej i średnicy nominalnej (chyba podziałowa się zowie), którą podajesz zmierzyłem, jak pisałem, odstęp 20-tu zębów na listwie. Wiadomo nie super dokładnie bo 64 wpisałem potem do emc'a ale różniło się to bardzo. Chyba o połowę więc nie o to zaokrąglenie się rozchodzi.
Rzutem na taśmę idąc już spać wpisałem zatem, na szybko, 32 i po zadaniu x1000 przejechał jakieś ~950. Dziś mogę jeszcze sprawdzić dokładnie ile, ale przecież te 32 to jakby nie patrzeć wartość nie wiadomo skąd.


zibi
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 2
Posty: 1280
Rejestracja: 24 lut 2007, 15:20
Lokalizacja: podkarpackie

#4

Post napisał: zibi » 26 lis 2015, 13:52

Może podział kroku źle ustawiony?
NX CAD, NX CAM, FREZOWANIE 5AX, ELEKTRODRĄŻARKI WGŁĘBNE I DRUTOWE. PEPS, VERICUT. Pomagam w NX przez Team Viewer. Postprocesory NX.


Autor tematu
prm_ex
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 8
Posty: 80
Rejestracja: 28 lip 2015, 15:55
Lokalizacja: Poznań

#5

Post napisał: prm_ex » 26 lis 2015, 14:07

To chyba nie powinno mieć znaczenia pod warunkiem, że oba podziały są tak samo ustawione na sterowniku i w programie.

1/8 na sterowniku (OFF|ON na niebieskim chinolu)
8.0 w emc'u

Więc chyba dobrze ale sprawdzę jeszcze 3 razy jak wrócę z harówki. :wink:
Ale faktycznie to wynik coś około połowy czy razy dwa mógłby sugerować błędny podział kroków.

[ Dodano: 2015-11-26, 22:25 ]
Sprawa się wyjaśniła :lol:
Ustawienia mikro przełącznika są zaprogramowane po chińsku. Czyli jak leci, byle było.
Krok 1/8 przypisany mam do pozycji OFF|OFF. Mimo że jest jeszcze 1/16, 1/2 i 1/1
Znalazłem wiele rożnych manuali to dych płyt ale takiego ustawienia nie spotkałem :twisted:
W każdym bądź razie skok ustawiłem na 62,8 i chyba się nawet bez scale obejdzie.

Napotkałem na inną dolegliwość. Póki jeżdżę na G0 to wszystko jest miodzio.
Jeśli pojadę na G1 z F>8000 też. Ale gdy dam F<8000 to silniki strasznie rzęzi, jakby drżał.
Na odgłos podejrzewałem w pierwszym momencie, że zębatka/i za płytko osadzona/e ale wymiary się zgadzają, a zęby są dobrze zazębione.
Czy jeśli nie gubię kroków to nadal warto przyjrzeć się STEPTIME, STEP SPACE, DIRHOLD i DIRSETUP?
No nic w między czasie podniosę któreś i będę testował, póki co krok do przodu.
pozdrawiam


Autor tematu
prm_ex
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 8
Posty: 80
Rejestracja: 28 lip 2015, 15:55
Lokalizacja: Poznań

#6

Post napisał: prm_ex » 27 lis 2015, 21:07

witam ponownie :cry:
Ustawienia na sterowniku opanowane ale ciągle mam problemy z wolniejszymi przejazdami niż G0 dla pojedynczych osi lub obu na raz z proporcją 1:4 (bo na jednej osi mam taką przekładnie).
Przetestowałem wszystkie podziały kroków, zmieniałem długości STEP i DIR na krótsze, dłuższe w przeróżnych konfiguracjach i wciąż efekt ten sam czyli dokładne przejazdy ale takie jakby szarpane. Zresztą aby wiernie przekazać o co mi chodzi nagrałem test:
Film - test różnych prędkości
Zabrakło mi pomysłów jakie jeszcze ustawienia mogę testować.
Może szanowni Koledzy coś podpowiedzą?
pozdrawiam


Autor tematu
prm_ex
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 8
Posty: 80
Rejestracja: 28 lip 2015, 15:55
Lokalizacja: Poznań

#7

Post napisał: prm_ex » 30 lis 2015, 23:16

Dalszy ciąg ... monologu :cry:
Zacząłem pisać sobie suba więc czas przyszedł na ngcgui.
No i zonk - nie pojawiają się zakładki. Wpisane do ini TKPKG=ngcgui 1.0 wywala przy uruchomieniu błąd braku paczki "ngcgui 1.0".
A bez tej linijki odpala się ale ngcgui brak.


mój ini:

Kod: Zaznacz cały

# Generated by stepconf 1.1 at Mon Nov 30 17:16:19 2015
# JeĹ&#8250;li zmodyfikujesz ten plik zmainy zostanÄ…
# nadpisane gdy uruchomisz ponownie Stepconf

[EMC]
MACHINE = nawijarka_XZ
DEBUG = 0

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
ARCDIVISION = 64
GRIDS = 10mm 20mm 50mm 100mm 1in 2in 5in 10in
MAX_FEED_OVERRIDE = 1.2
MIN_SPINDLE_OVERRIDE = 0.5
MAX_SPINDLE_OVERRIDE = 1.2
DEFAULT_LINEAR_VELOCITY = 40.00
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 400.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/przemo/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
PYVCP = custompanel.xml
LATHE = 1
NGCGUI_FONT       = Helvetica -12 normal
#Plik ze wstepnymi ustawieniami maszyny
NGCGUI_PREAMBLE = lathe_std.ngc
#Pliki tworzÄ…ce zakĹ&#8218;adki. MuszÄ… byÄ&#8225; fizycznie w ktĂłrymĹ&#8250; z katalogĂłw wskazanych Ĺ&#8250;cieĹĽkami wyĹĽej
NGCGUI_SUBFILE = od.ngc
NGCGUI_SUBFILE = id.ngc
NGCGUI_SUBFILE = g76base.ngc
NGCGUI_SUBFILE = g76diam.ngc
NGCGUI_SUBFILE = taper-od.ngc
NGCGUI_SUBFILE = ""
NGCGUI_OPTIONS = noiframe

[FILTER]
PROGRAM_EXTENSION = .png,.gif,.jpg Greyscale Depth Image
PROGRAM_EXTENSION = .py Python Script
png = image-to-gcode
gif = image-to-gcode
jpg = image-to-gcode
py = python

[TASK]
TASK = milltask
CYCLE_TIME = 0.010

[RS274NGC]
PARAMETER_FILE = linuxcnc.var
SUBROUTINE_PATH   = /home/przemo/linuxcnc/nc_files/ngcgui_lib/lathe:/home/przemo/linuxcnc/nc_files/ngcgui_lib/utilitysubs:/usr/bin
USER_M_PATH       = /home/przemo/linuxcnc/nc_files/ngcgui_lib/mfiles

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 41000
SERVO_PERIOD = 1000000

[HAL]
HALUI = halui
HALFILE = nawijarka_XZ.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal

[HALUI]
# dodaj polecenia halui MDI (maks 64) 

[TRAJ]
AXES = 3
COORDINATES = X Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 40.00
MAX_VELOCITY = 400.00

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 400.0
MAX_ACCELERATION = 5000.0
STEPGEN_MAXACCEL = 6250.0
SCALE = 25.4647909238
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 1250.0
HOME_OFFSET = 0.0

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 108.612804878
MAX_ACCELERATION = 5000.0
STEPGEN_MAXACCEL = 6250.0
SCALE = 106.666666667
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 999999.0
HOME_OFFSET = 0.0
mój hal:

Kod: Zaznacz cały

# Generated by stepconf 1.1 at Mon Nov 30 17:16:19 2015
# JeĹ&#8250;li zmodyfikujesz ten plik zmainy zostanÄ…
# nadpisane gdy uruchomisz ponownie Stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt hal_parport cfg="0 out"
loadrt stepgen step_type=0,0

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread

addf stepgen.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf stepgen.update-freq servo-thread
net spindle-cmd-rpm     <= motion.spindle-speed-out
net spindle-cmd-rpm-abs <= motion.spindle-speed-out-abs
net spindle-cmd-rps     <= motion.spindle-speed-out-rps
net spindle-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
net spindle-at-speed    => motion.spindle-at-speed

net xstep           => parport.0.pin-01-out
net xenable         => parport.0.pin-02-out
net zdir            => parport.0.pin-04-out
net zstep           => parport.0.pin-05-out
net xenable         => parport.0.pin-06-out
net xdir            => parport.0.pin-07-out
net xenable         => parport.0.pin-14-out

setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 1
setp stepgen.0.dirhold 46000
setp stepgen.0.dirsetup 46000
setp stepgen.0.maxaccel [AXIS_0]STEPGEN_MAXACCEL
net xpos-cmd axis.0.motor-pos-cmd => stepgen.0.position-cmd
net xpos-fb stepgen.0.position-fb => axis.0.motor-pos-fb
net xstep <= stepgen.0.step
net xdir <= stepgen.0.dir
net xenable axis.0.amp-enable-out => stepgen.0.enable

setp stepgen.1.position-scale [AXIS_2]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 1
setp stepgen.1.dirhold 46000
setp stepgen.1.dirsetup 46000
setp stepgen.1.maxaccel [AXIS_2]STEPGEN_MAXACCEL
net zpos-cmd axis.2.motor-pos-cmd => stepgen.1.position-cmd
net zpos-fb stepgen.1.position-fb => axis.2.motor-pos-fb
net zstep <= stepgen.1.step
net zdir <= stepgen.1.dir
net zenable axis.2.amp-enable-out => stepgen.1.enable

net estop-out <= iocontrol.0.user-enable-out
net estop-out => iocontrol.0.emc-enable-in

loadusr -W hal_manualtoolchange
net tool-change iocontrol.0.tool-change => hal_manualtoolchange.change
net tool-changed iocontrol.0.tool-changed <= hal_manualtoolchange.changed
net tool-number iocontrol.0.tool-prep-number => hal_manualtoolchange.number
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
Z tego co widziałem to wszyscy macie ścieżkę do home/user/linuxcnc/nc_files/~
Mój problem polega chyba na tym że tam gdzie tylda nie mam nic oprócz katalogu examples, który jest powiązaniem (chyba skrótem) do /usr/share/linuxcnc/ncfiles, w którym to faktycznie znajdują się katalogi gcmc_lib , ... , ngcgui_lib, itd
Próbowałem już też podać te ścieżki przez share ale nic nie daje.

Nadmienię jedynie że miałem obraz ubuntu 10.04 z wersją niższą i robiłem upgrade do 2.7
Może tutaj gdzieś się zapodziała ta "paczka ngcgui 1.0" cokolwiek to oznacza.

Proszę o drogowskaz gdzie szukać.


micges
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 292
Rejestracja: 08 sty 2010, 02:04
Lokalizacja: Toruń

#8

Post napisał: micges » 01 gru 2015, 07:58

Ustaw poprawnie skale i podziałki wg Twoich wzorów.
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 1
setp stepgen.0.dirhold 46000
setp stepgen.0.dirsetup 46000
Te wartości są w ns. Ustaw je wszystkie na 5000 i przetestuj. Gdy nie działa zwiększaj co 1000. Przy chińskich badziewiach gdzieś w okolicy 7000~10000 powinno zadziałać.


Autor tematu
prm_ex
Znawca tematu (min. 80)
Znawca tematu (min. 80)
Posty w temacie: 8
Posty: 80
Rejestracja: 28 lip 2015, 15:55
Lokalizacja: Poznań

#9

Post napisał: prm_ex » 01 gru 2015, 09:17

Faktycznie nie analizowałem hal'a, a w stepconfigu ustawiałem tak jak mówisz a i tak swoje inne "pierdy" zapisał w halu :twisted:
Czyli rozumiem wpisać te, które doświadczalnie znalazłem grzebiąc na początku w stepconfigu? ( Chyba 10k stepy i 20k diry)
Ale skoro tak to gdzie w halu są dane, które są skutkiem wpisanego jitter'a?
Mój dla przypomnienia jest 26000 i faktycznie pojawiało się u dołu jakieś przeliczenie na 46000.
Ale czemu zatem 46k przypisał do dirów a step'y dał jedynki ?!
Ło no teraz to zgłupiałem znowu. Czyli co olać stepconfiga i jitter'a i metodą prób i błędów ustawić w hal'u dla każdej osi to co wymieniłeś i spokój?
pozdrawiam


micges
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 4
Posty: 292
Rejestracja: 08 sty 2010, 02:04
Lokalizacja: Toruń

#10

Post napisał: micges » 01 gru 2015, 09:41

olej stepconfiga. metodą prób i błędów w halu tak jak napisałem (z teoretycznie poprawną skalą).

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”