LinuxCNC - szybkie ustawianie offsetu dla Z...

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

kamar
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 17
Posty: 16223
Rejestracja: 18 wrz 2010, 06:17
Lokalizacja: Kozienice
Kontakt:

#61

Post napisał: kamar » 23 mar 2013, 23:52

jacek-1210 pisze:. Chyba że w gkodzie można na początku zadeklarować stałą typu offset=8.75, a w poszczególnych procedurkach po każdym M6 pisać G92 Z#offset (?)

:
Oczywiście że tak :)
Większy klopot będziesz mial, przy dużych roznicach długości, z automatycznym najazdem na czujnik



Tagi:


jacek-1210
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 23
Posty: 1027
Rejestracja: 25 mar 2011, 20:16
Lokalizacja: Radomsko

#62

Post napisał: jacek-1210 » 26 mar 2013, 23:07

OK, na razie radzę sobie za pomocą G92 i stałej deklarowanej w mojej procedurce. Jest to o tyle trochę upierdliwe, że punktem odniesienia jest poziom czujnika a nie zero materiału. Jak się okazuje że trochę źle utrafiłem w poziom materiału, to zamiast zjechać frezem w dół 0.3mm i z marszu strzelić offset "0", to muszę liczyć i kombinować o ile zmniejszyć czy też zwiększyć offset z czujnika. Ale ogólnie jest dobrze, nie mogę zrozumieć jak do tej pory radziłem sobie bez czujnika :smile:

Mam pytanie, chyba raczej do Kol. Micges: czy jest jakiś planowany termin wydania stabilnej 2.6 ? Na wersji pre, po wpisaniu w ini "REMAP=M6 ...." przy ładowaniu jakiegokolwiek poprawnego gkoda wywala błąd mniej więcej"BUG remap_level < 0: -1". Jak sobie z tym radzić ? Znalazłem co prawda gdzieś na gicie plik -bodaj g861" w którym jest teoretycznie obsługa remap_level, ale nie za bardzo jarzę: ten plik nie jest chyba wywoływany w żadnym pliku systemowym więc mnie chyba nie pomoże ?

[ Dodano: 2013-03-27, 19:58 ]
Tak dla potomności, to co działa mi na dziś - to będzie działać i na linuxcnc 2.6 i na 2.5:

najpierw zjeżdżam frezem i ustawiam zerowy offset na materiale. Następnie robię najazd na czujnik za pomocą przycisku pomiar freza wg opisu Kol. Syntetycznego, jedynie procedura jest zmodyfikowana:

o<tool_probe> sub

G90
G53 G0 Z-1 (podniesienie zetki)
G53 G0 X938 Y588 (wg uznania, zależy gdzie kto ma zamocowany czujnik)
G53 G0 Z-50 (szybki zjazd nad czujnik)
G91 (zmiana współrzędnych na przyrostowe)
G38.3 Z-70 F200 (szybkie dotknięcie czujnika)
G38.4 Z10 F1 (powolny odjazd aż frez "puści" czujnik - taki pomiar jest ponoć dokładniejszy niż najazd)
G90 (powrót do wartości bezwzględnych)

o<tool_probe> endsub
M2


ta procedura powoduje zatrzymanie zetki na pomiarze. W tym momencie odczytuję położenie zetki i mam offset narzędzia, załóżmy że wyszło mi 48.35mm

W gkodzie na początku zadaję stałą z offsetu narzędzia:


#<OFFSET> = 48.35;


jeśli chcę obniżyć o 1mm zero zetki w materiale, to zwiększam offset z 48.35 na 49.35mm itp.

w gkodzie wszędzie tam gdzie mam M6 (z wyjątkiem T0 M6 bo to wyjęcie narzędzia !) wklejam procedurkę:


...
(początek gkodu:)
#<OFFSET> = 48.35;

...

(komenda do zmiany narzędzia:)

T2 M06 G43

(początek procedury pomiaru)

G53 G0 Z-1
G53 G0 X938 Y588
G53 G0 Z-50
G91
G38.3 Z-70 F200
G38.4 Z10 F1
G90
G92 Z#<OFFSET>
G53 G0 Z-1

(koniec procedury pomiaru)
...

i voila! maszyna zmierzy nowe narzędzie, wprowadzi korekcję i pojedzie dalej do roboty...
Jeśli moja rada Ci nie zaszkodziła, to może trochę POMOGŁa ? :wink:


jacek-1210
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 23
Posty: 1027
Rejestracja: 25 mar 2011, 20:16
Lokalizacja: Radomsko

#63

Post napisał: jacek-1210 » 03 kwie 2013, 20:49

Zgłoszenie do kol. Micges (?): wyłapałem tegu bug'a, "BUG remap_level < 0: -1" (po wpisaniu w ini REMAP=M6) wyskakuje w programie podczas ładowania gkoda, gdzie w gkodzie na końcu jest "T0 M6" czyli wyjęcie narzędzia - to chyba błąd w linuxcnc, bo bez remap w ini, program bezproblemowo zgłasza "wyjmij narzędzie" i kończy gkoda (?)
Jeśli moja rada Ci nie zaszkodziła, to może trochę POMOGŁa ? :wink:


jacek-1210
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 23
Posty: 1027
Rejestracja: 25 mar 2011, 20:16
Lokalizacja: Radomsko

#64

Post napisał: jacek-1210 » 09 kwie 2013, 21:25

Kombinowałem z tymi plikami z gita i niestety, nie udało mi się tego odpalić na maszynie. Z tego na ile się zorientowałem, to są wszystko symulacje, nie działa toto na realnej maszynie. Mało tego, we własnych procedurach miałem problemy z korekcją G43.1, niby działała ale po podaniu na koniec G0 Z0 frez nie trzymał poprawnej wysokości.

W końcu zrobiłem po chłopsku, zasada jest taka:

1. Zjeżdżam frezem do zera materiału i w axisie ustawiam offset Z na 0
2. Wciskam button "pomiar referencyjny freza" wg kol. Syntetycznego, uruchamia mi się procedura tool_probe.ngc która wygląda tak:

o<tool_probe> sub
M73
G21
G90
(; tool changed - move to toolensor)
G53 G0 Z0
G53 G0 X #<_ini[toolsensor]x> Y #<_ini[toolsensor]y>
G53 G0 Z #<_ini[toolsensor]z>
G91
G38.3 Z #<_ini[toolsensor]maxprobe> F200
G38.4 Z10 F1
G90
#1000=[#5223+#5063] (save reference tool length from Z 0 offset)
G53 G1 Z #<_ini[after_change_position]z> F1300
G53 G0 X #<_ini[after_change_position]x> Y #<_ini[after_change_position]y>
o<tool_probe> endsub
m2


W tym momencie możemy zacząć frezować. Jeśli okaże się że źle ustawiłem zero materiału, to mogę klawiszem zjechać ciut w dół na prawidłowe zero i w axisie ponownie ustawić na tym offset Z zero. Nie trzeba już robić powtórnego pomiaru referencyjnego.

3. W momencie wywołania w gkodzie Tx M6 cnc wyjeżdża do wymiany narzędzia, po wymianie jest wywołana procedura change_tool.ngc:

o<change_tool> sub
M6
M73
G21
G90
(; tool changed - move to toolensor)
G53 G0 Z0
G53 G0 X #<_ini[toolsensor]x> Y #<_ini[toolsensor]y>
G53 G0 Z #<_ini[toolsensor]z>
G91
G38.3 Z #<_ini[toolsensor]maxprobe> F200
G38.4 Z10 F1
G90
G92 Z[#1000-#5223]
G53 G1 Z #<_ini[after_change_position]z> F1300
G53 G0 X #<_ini[after_change_position]x> Y #<_ini[after_change_position]y>
o<change_tool> endsub
m2


maszyna jedzie na pomiar a potem do roboty.

Trzeba jeszcze poprawić .ini to co najważniejsze (pomijam to co podał kol. Syntetyczny):

[RS274NGC]

SUBROUTINE_PATH = ./nc_subroutines (do tego podkatalogu wrzucamy change_tool.ngc)

REMAP=M6 modalgroup=6 ngc=change_tool

# start of tool length touchoff probe - ustawienia XYZ wg tego co kto ma na maszynie
[TOOLSENSOR]
X = 938
Y = 588
Z = -70
MAXPROBE=-60 # abort change if no toolsensor contact after this probe distance

[AFTER_CHANGE_POSITION]
X = 500
Y = 190
Z = -1

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 500 190 -1



i to właściwie wszystko :smile: . Zdaje się, że po pomiarze referencyjnym, w każdej chwili można w axisie zmieniać offset na Z-ce, nawet po kilkukrotnej wymianie frezów, ale póki co głowy za to nie dam.
Oczywiście każdy korzysta z tego na własną odpowiedzialność - ja za nic głowy nie dam :mrgreen:


Mam jeszcze pytanie: z tego co podawał kol. Syntetyczny, w .ini:

[HALUI]
MDI_COMMAND = o<tool_probe> call


ten tool_probe musi być w katalogu do którego jest wskazanie w

PROGRAM_PREFIX = .........

czy jest możliwe jakieś bezpośrednie wskazanie typu:

MDI_COMMAND = ./nc_subroutines/ o<tool_probe> call ???

jakoś nie mogę tego łyknąć.

Sorry za trochę przydługi post, ale wydaje mi się, że tak łatwiej ogarnąć całość :smile:
Jeśli moja rada Ci nie zaszkodziła, to może trochę POMOGŁa ? :wink:

Awatar użytkownika

syntetyczny
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 17
Posty: 2696
Rejestracja: 08 gru 2009, 22:33
Lokalizacja: Elbląg
Kontakt:

#65

Post napisał: syntetyczny » 09 kwie 2013, 22:47

Po pierwsze, GRATULUJE!

Po drugie, to w prefiksie podajemy tylko ścieżkę dostępową, bez wskazania. Chyba, bo sam nie wiem....
Kto pyta, nie błądzi. Eppur si muove
Kreatura CNC
Modernizacja plotera megaplot


jacek-1210
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 23
Posty: 1027
Rejestracja: 25 mar 2011, 20:16
Lokalizacja: Radomsko

#66

Post napisał: jacek-1210 » 09 kwie 2013, 23:13

No właśnie chodzi mi o to, że prefix prefixem, a procedurę chciałbym sobie wrzucić do innego podkatalogu. Chyba że w prefixie można podać kilka katalogów ?

Mam nadzieję że jest czego gratulować - odpaliłem to dziś wieczorem, testy -wydaje się- przeszło, ale porządnej roboty jeszcze nie robiłem, może jutro :smile:
Jeśli moja rada Ci nie zaszkodziła, to może trochę POMOGŁa ? :wink:

Awatar użytkownika

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

#67

Post napisał: adam Fx » 18 cze 2013, 20:25

a mi z jakiegoś powodu nie działa
G73 (chodź nie bardzo wiem co ma robi ) wywala że nieznany - pominąłem go #
to wywala że G53 G0 X #<_ini[toolsensor]x> Y #<_ini[toolsensor]y> niezdefiniowanie tak jak by nie chciało czytać teko co dopisałem w pliku moja_frezarka.ini
[TOOLSENSOR]
X = 938
Y = 588
Z = -70
i o co tu chodzi?
dodatkowo idąc dalej wykonując np. T1 M6 jest odjazd do punktu wymiany ale gdy dam kontynuuj po wymianie nic się nie dzieje , tak jakby nie wywoływało procedury o<change_tool> sub mimo że plik .ngc jest d dobrym katalogu (ale chyba w ogóle go nie przywołuje bo tak to by się pluło zaś o te M73)
sorki za wszystkie błędy ... (dyslektyk) :?
Zobacz moje filmy http://www.youtube.com/user/pokachontass/videos


jacek-1210
ELITA FORUM (min. 1000)
ELITA FORUM (min. 1000)
Posty w temacie: 23
Posty: 1027
Rejestracja: 25 mar 2011, 20:16
Lokalizacja: Radomsko

#68

Post napisał: jacek-1210 » 19 cze 2013, 20:27

Bo tam jest M73 a nie G73 :wink: Sorry, ale rzadko ostatnio tu zaglądam

[TOOLSENSOR]
X = 938
Y = 588
Z = -70

to jest pozycja czujnika na współrzędnych bezwzględnych maszyny, przy czym Z-70 to czubek najdłuższego freza musi być jeszcze nad czujnikiem (u mnie Z-ety są w minusach)

Linuxcnc masz 2.6 ?

Tak jakby czytało Ci inne ini. Posprawdzaj jeszcze konfigi albo wrzuć na forum

Zacznij może odrobaczanie od odpalenia procedury wywoływanej buttonem Syntetycznego - działa Ci to ?

M73 o ile dobrze kojarzę, powoduje że dane z procedury są zapamiętywane przez program po zamknięciu procedury
Jeśli moja rada Ci nie zaszkodziła, to może trochę POMOGŁa ? :wink:


snajper007
Specjalista poziom 1 (min. 100)
Specjalista poziom 1 (min. 100)
Posty w temacie: 7
Posty: 144
Rejestracja: 03 lis 2011, 16:48
Lokalizacja: grodzisko Górne

#69

Post napisał: snajper007 » 02 wrz 2013, 18:03

Wpisałem dwa pierwsze punkty wg poradnika Syntetycznego. Jednak teraz nie uruchamia się Linuxcnc. Wyskakują takie błędy:

Kod: Zaznacz cały

Print file information: 
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/share/linuxcnc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.5
LINUXCNC - 2.5.2
Machine configuration directory is '/home/slawomir/linuxcnc/configs/moja-frezarka'
Machine configuration file is 'moja-frezarka.ini'
INIFILE=/home/slawomir/linuxcnc/configs/moja-frezarka/moja-frezarka.ini
PARAMETER_FILE=linuxcnc.var
TASK=milltask
HALUI=halui
DISPLAY=axis
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
Starting TASK program: milltask
Starting DISPLAY program: axis
Shutting down and cleaning up LinuxCNC...
Killing task linuxcncsvr, PID=1924
Killing task milltask, PID=2006
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done

Debug file information: 
Can not find -sec MOT -var MOT -num 1 
Can not find -sec IO -var IO -num 1 
Can not find -sec LINUXCNC -var NML_FILE -num 1 
Can not find -sec EMC -var NML_FILE -num 1 
Traceback (most recent call last): 
  File "/usr/bin/axis", line 3078, in <module> 
    vcpparse.create_vcp(f, comp) 
  File "/usr/lib/pymodules/python2.6/vcpparse.py", line 177, in create_vcp
    read_file() 
  File "/usr/lib/pymodules/python2.6/vcpparse.py", line 47, in read_file
    doc = xml.dom.minidom.parse(filename) 
  File "/usr/lib/python2.6/xml/dom/minidom.py", line 1918, in parse
    return expatbuilder.parse(file) 
  File "/usr/lib/python2.6/xml/dom/expatbuilder.py", line 922, in parse
    fp = open(file, 'rb') 
IOError: [Errno 2] No such file or directory: 'panel.xml'
1924
  PID TTY      STAT   TIME COMMAND
2006
  PID TTY      STAT   TIME COMMAND
Stopping realtime threads
Unloading hal components

Kernel message information: 
[  940.638622] I-pipe: Domain RTAI registered.
[  940.638631] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[  940.638634] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[  940.638679] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[  940.638682] PIPELINE layers: 
[  940.638686] fa0b7e20 9ac15d93 RTAI 200
[  940.638689] c085cb20 0 Linux 100
[  940.663782] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[  940.665212] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[  940.665219] RTAI[sched]: hard timer type/freq = APIC/12459621(Hz); default timing: periodic; linear timed lists.
[  940.665224] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 1594664000 hz.
[  940.665228] RTAI[sched]: timer setup = 999 ns, resched latency = 2944 ns.
[  940.665328] RTAI[usi]: enabled.
[  940.722512] RTAI[math]: loaded.
[  940.811507] config string '0x378 out  '
[  942.391576] RTAI[math]: unloaded.
[  942.419635] SCHED releases registered named ALIEN RTGLBH
[  942.449287] RTAI[malloc]: unloaded.
[  942.548941] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[  942.552261] I-pipe: Domain RTAI unregistered.
[  942.552334] RTAI[hal]: unmounted.


Jeszcze zapytam, czy czujnik może być jako NC z GND i przy naciśnięciu rozwierał połączenie?

Awatar użytkownika

syntetyczny
Lider FORUM (min. 2000)
Lider FORUM (min. 2000)
Posty w temacie: 17
Posty: 2696
Rejestracja: 08 gru 2009, 22:33
Lokalizacja: Elbląg
Kontakt:

#70

Post napisał: syntetyczny » 02 wrz 2013, 18:23

Kod: Zaznacz cały

IOError: [Errno 2] No such file or directory: 'panel.xml' 
Nie masz panel.xml, najwyraźniej nie zrobiłeś instrukcji do końca i brakuje panel.xml w folderze z obecną konfiguracją.
Kto pyta, nie błądzi. Eppur si muove
Kreatura CNC
Modernizacja plotera megaplot

ODPOWIEDZ Poprzedni tematNastępny temat

Wróć do „LinuxCNC (dawniej EMC2)”