Konfiguracja XY dla sterownika 4 osie.

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

Autor tematu
titleDe
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 171
Rejestracja: 09 lip 2010, 18:56
Lokalizacja: Bydgoszcz

Konfiguracja XY dla sterownika 4 osie.

#1

Post napisał: titleDe » 30 paź 2015, 20:28

Cześć,
chcę skonfigurować maszynę, tak by pracowała w konfiguracji XY dla 2 silników na oś. Dwa silniki kręcą się identycznie dla osi X i 2 silniki kręcą się identycznie dla osi Y.
Forum przejrzałem, w paru wątkach poruszany jest temat gantrykins, w folderach LinuxCNC znalazłem plik o tej nazwie, jednak nie można nic z nim zrobić, nie wiem jak z niego skorzystać, czy trzeba go dodatkowo pobrać, czy on już jest a należy go w jakiś sposób przypisać do plików konfiguracyjnych maszyny? Czytałem również o zmianach w plikach hal i ini, jednak tutaj również nie doszedłem jak należy to zrobić.
Przedstawiam zatem swoje pliki konfiguracyjne hal i ini i proszę Szanownych kolegów o pomoc w edycji w celu uzyskania pożądanych parametrów.

Plik hal:

# Wygenerowane przez Stepconf o Sun Sep 6 20:26:48 2015
# Jeś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 probe_parport
loadrt hal_parport cfg="0x378 out "
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0,0

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset 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 <= motion.spindle-speed-out
net spindle-cw <= motion.spindle-forward

net xdir => parport.0.pin-01-out
net spindle-cw => parport.0.pin-02-out
net zstep => parport.0.pin-03-out
setp parport.0.pin-03-out-reset 1
net xenable => parport.0.pin-04-out
net xenable => parport.0.pin-05-out
net zdir => parport.0.pin-06-out
net ydir => parport.0.pin-07-out
net adir => parport.0.pin-08-out
net astep => parport.0.pin-09-out
setp parport.0.pin-09-out-reset 1
net ystep => parport.0.pin-14-out
setp parport.0.pin-14-out-reset 1
net xstep => parport.0.pin-16-out
setp parport.0.pin-16-out-reset 1
net xenable => parport.0.pin-17-out




setp stepgen.0.position-scale [AXIS_0]SCALE
setp stepgen.0.steplen 1
setp stepgen.0.stepspace 0
setp stepgen.0.dirhold 35000
setp stepgen.0.dirsetup 35000
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_1]SCALE
setp stepgen.1.steplen 1
setp stepgen.1.stepspace 0
setp stepgen.1.dirhold 35000
setp stepgen.1.dirsetup 35000
setp stepgen.1.maxaccel [AXIS_1]STEPGEN_MAXACCEL
net ypos-cmd axis.1.motor-pos-cmd => stepgen.1.position-cmd
net ypos-fb stepgen.1.position-fb => axis.1.motor-pos-fb
net ystep <= stepgen.1.step
net ydir <= stepgen.1.dir
net yenable axis.1.amp-enable-out => stepgen.1.enable

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

setp stepgen.3.position-scale [AXIS_3]SCALE
setp stepgen.3.steplen 1
setp stepgen.3.stepspace 0
setp stepgen.3.dirhold 35000
setp stepgen.3.dirsetup 35000
setp stepgen.3.maxaccel [AXIS_3]STEPGEN_MAXACCEL
net apos-cmd axis.3.motor-pos-cmd => stepgen.3.position-cmd
net apos-fb stepgen.3.position-fb => axis.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir
net aenable axis.3.amp-enable-out => stepgen.3.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



Plik ini:

# Wygenerowane przez Stepconf o Sun Sep 6 20:26:48 2015
# Jeśli zmodyfikujesz ten plik zmainy zostaną
# nadpisane gdy uruchomisz ponownie Stepconf

[EMC]
MACHINE = Ploter_termiczny
DEBUG = 0

[DISPLAY]
DISPLAY = axis
EDITOR = gedit
POSITION_OFFSET = RELATIVE
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 1.2
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/ja/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm

[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

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

[HAL]
HALFILE = Ploter_termiczny.hal
HALFILE = custom.hal
POSTGUI_HALFILE = custom_postgui.hal

[TRAJ]
AXES = 4
COORDINATES = X Y Z A
MAX_ANGULAR_VELOCITY = 66.67
DEFAULT_ANGULAR_VELOCITY = 6.67
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 0.15
MAX_LINEAR_VELOCITY = 1.50

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

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.5
MAX_ACCELERATION = 1399.0
STEPGEN_MAXACCEL = 1748.75
SCALE = 4000.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 1000.0
HOME_OFFSET = 0.0

[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 375.0
SCALE = 200.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 1000.0
HOME_OFFSET = 0.0

[AXIS_2]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 1.0
MAX_ACCELERATION = 300.0
STEPGEN_MAXACCEL = 375.0
SCALE = 200.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -1000.0
MAX_LIMIT = 1000.0
HOME_OFFSET = 0.0

[AXIS_3]
TYPE = ANGULAR
HOME = 0.0
MAX_VELOCITY = 63.3333333333
MAX_ACCELERATION = 10.0
STEPGEN_MAXACCEL = 12.5
SCALE = 500.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 1000.0
HOME_OFFSET = 0.0



Tagi:

Awatar użytkownika

adam Fx
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 5562
Rejestracja: 04 lip 2004, 16:03
Lokalizacja: Gliwice

#2

Post napisał: adam Fx » 30 paź 2015, 21:36

https://www.cnc.info.pl/topics54/plazma ... htm#513913 zrób jak w tym temacie zmień w ini i hal i kinematyka musi ruszyć potem widom trzeba dopisać sobie dodatkowe osie ale to analogicznie jak te co są już skonfigurowane
sorki za wszystkie błędy ... (dyslektyk) :?
Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos


Autor tematu
titleDe
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 2
Posty: 171
Rejestracja: 09 lip 2010, 18:56
Lokalizacja: Bydgoszcz

#3

Post napisał: titleDe » 01 lis 2015, 06:22

Czytałem już tamten temat, ciężko wyciągnąć z niego jakieś sensowne wnioski.
Kolega hecza podaje w nim, że należy ustawić:

GEOMETRY = ( sprawdź - xyz lub xyza )
[TRAJ]
AXES = 4 ( - jeśli niżej jest XYZA - 5 jeśli XYZB itd. )
COORDINATES = XYZA

w pliku HAL ustawiasz
#loadrt trivkins - kasujesz / wyłączasz
loadrt gantrykins
setp gantrykins.joint-0 0 ( - oś X )
setp gantrykins.joint-1 1
setp gantrykins.joint-2 2
setp gantrykins.joint-3 0 ( - oś X )

Chyba wszystko &#8211; piszę z pamięci ( słabej! ).

Do końca nie wiem, gdzie konkretnie i co wpisać w pliku HAL oraz nie widzę "GEOMETRY = ( sprawdź - xyz lub xyza )"

Dodatkowo nie jest to chyba optymalne ustawienie ponieważ z wątku można odczytać również, że

"Uwaga: osie bramy jeżdżą niezależnie &#8211; nie połamać jej"

Oraz, jak piszesz Adam:

"tak jak napisał hecza, i działa ale zmiana osie /napędy jest upierdliwa łatwo się zapomnieć i można [...] LinuxCNC połamie mi frezarkę ?"

Tutaj wszystko jest identycznie jak w moim pliku, bez GEOMETRY:

GEOMETRY = ( sprawdź - xyz lub xyza )
[TRAJ]
AXES = 4 ( - jeśli niżej jest XYZA - 5 jeśli XYZB itd. )
COORDINATES = XYZA

Tutaj widzę, że zamiast trivkins wpisuję gantrykins, ale nie wiem co dalej z setp gantrykins?

#loadrt trivkins - kasujesz / wyłączasz
loadrt gantrykins
setp gantrykins.joint-0 0 ( - oś X )
setp gantrykins.joint-1 1
setp gantrykins.joint-2 2
setp gantrykins.joint-3 0 ( - oś X )


Marfeel
Sympatyk forum poziom 2 (min. 50)
Sympatyk forum poziom 2 (min. 50)
Posty w temacie: 1
Posty: 57
Rejestracja: 29 sty 2013, 21:04
Lokalizacja: Konin

#4

Post napisał: Marfeel » 01 lis 2015, 10:29

Witam.
Obserwuję temat od początku i zastanawiam się dla czego męczysz się programowo, zamiast rozwiązać to elektronicznie.
Dwa silniki podpięte razem (sterowniki na tych samych pinach)
Dwie dobrej jakości krańcówki które podczas bazowania danej osi zastopują silnik który dojechał szybciej, układ poczeka na sygnał z drugiej krańcówki po którym to dokończy bazowanie osi.
Poza tym jeśli nie masz sprzężania zwrotnego dobrze było by zainstalować przełączniki do ręcznego rozłączenia silnika (sterownika) w razie gdyby jeden z silników zgubił kroki
Mam tak zrobione na mojej maszynce i działa bez problemu
Pozdrawiam
Marfeel

Awatar użytkownika

adam Fx
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 2
Posty: 5562
Rejestracja: 04 lip 2004, 16:03
Lokalizacja: Gliwice

#5

Post napisał: adam Fx » 01 lis 2015, 11:45

titleDe pisze:Chyba wszystko &#8211; piszę z pamięci ( słabej! ).
mnie to tam zadziałało :wink:
To jakiś stary config i może wszystko nie być dopracowane ale te 4 osie chodzą wiec pobierz zał. i porównaj sobie ... polecam program http://winmerge.org/?lang=pl
(plik jest pod plazme z THC wiec nie kopiuj go na pałę!)
Załączniki
Plazma.rar
(8.66 KiB) Pobrany 144 razy
sorki za wszystkie błędy ... (dyslektyk) :?
Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”