Strona 1 z 2

LinuxCNC i czujnik długości narzędzia

: 30 lip 2016, 14:10
autor: tomala89
Witam, po konfiguracji czujnika wg tego http://www.pjd-automatyka.pl/wp-content ... zedzia.pdf oraz modyfikacji pliku ini wg jacek-1210 (z tematu https://www.cnc.info.pl/topics54/linuxc ... 081,60.htm) gdy nacisnę przycisk "Probe Z" wyskakuje mi błąd
Obrazek

Nie mam pojęcia czym on jest spowodowany i nie potrafię sobie z nim poradzić. bardzo proszę o pomoc :).

Zmiany w INI
[EMC]
MACHINE = SmartCNC_by_TomCUT
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 = 2.50
MIN_LINEAR_VELOCITY = 0
MAX_LINEAR_VELOCITY = 25.00
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 5
PROGRAM_PREFIX = /home/tomala/linuxcnc/nc_files
INCREMENTS = 5mm 1mm .5mm .1mm .05mm .01mm .005mm
PYVCP = custompanel.xml

[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

[toolsensor]
X = 350
Y = 150
Z = 55
MAXPROBE=60

[after_change_position]
X = 50
Y = 19
Z = 1

[EMCIO]
EMCIO = io
CYCLE_TIME = 0.100
TOOL_TABLE = tool.tbl
TOOL_CHANGE_POSITION = 50 19 1

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

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

[TRAJ]
AXES = 3
COORDINATES = X Y Z
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.010
DEFAULT_VELOCITY = 2.50
MAX_VELOCITY = 25.00

[AXIS_0]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 440.0
HOME_OFFSET = 0.0

[AXIS_1]
TYPE = LINEAR
HOME = 0.0
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 750.0
STEPGEN_MAXACCEL = 937.5
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = -0.001
MAX_LIMIT = 260.0
HOME_OFFSET = 0.0

[AXIS_2]
TYPE = LINEAR
HOME = 75.0
MAX_VELOCITY = 23.75
MAX_ACCELERATION = 500.0
STEPGEN_MAXACCEL = 625.0
SCALE = 800.0
FERROR = 1
MIN_FERROR = .25
MIN_LIMIT = 0.0
MAX_LIMIT = 75.001
HOME_OFFSET = 75.0

[RS274NGC]
PARAMETER_FILE = linuxcnc.var

SUBROUTINE_PATH = ./nc_subroutines
REMAP=M6 modalgroup=6 ngc=change_tool

[HALUI]
MDI_COMMAND = o<tool_probe> call


tool_probe.ngc
o<tool_probe> sub
G73
G21
G90
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


change_tool.ngc
o<change_tool> sub
M6
G73
G21
G90
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

: 30 lip 2016, 23:45
autor: ezbig
Co tam masz w pliku uchwyt-michal.tap? Druga sprawa to remapujesz M6 jako change_tool.ngc, a w tej procedurze występuje M6, czy tu nie powstaje w związku z tym niekończąca się pętla? M6 wywołuje change_tool.ngc, a tam w pierwszej linii znowu jest M6 więc wywołujemy change_tool.ngc itd.

: 31 lip 2016, 00:33
autor: tomala89
Ten błąd wyskakuje nawet na zwykłym pliku startowym z linuxacnc, tylko że zaczyna się od EOF.

: 31 lip 2016, 00:44
autor: ezbig
Dla mnie jest istotne co jest na początku tego pliku, a to że wyskakuje przy pliku startowym nie wiele mi mówi, bo jego też nie mogę w tej chwili zobaczyć. Pokaż początek pliku uchwyt-michal.tap

: 31 lip 2016, 00:48
autor: tomala89
T1M6
G0Z13.000
G0X0.000Y0.000S15000M3
G0X63.695Y28.270Z13.000
G1X63.695Y28.270Z13.000F3000.0
X53.695Z11.667
X63.695Z10.333
X53.695Z9.000
X63.695Z7.667
X53.695Z6.333
X63.695Z5.000
G1X39.288Z5.000F4560.0
X39.075Y28.285
X38.856Y28.333
.../wyciete
X114.596Y26.338
X114.779Y26.487
X114.982Y26.604
X115.197Y26.687
X115.415Y26.735
X115.629Y26.750
X130.943
G0Z13.000
G0X0.000Y0.000
G0Z13.000
G0X0Y0
M30

: 31 lip 2016, 00:53
autor: ezbig
Wiec jest tak jak podejrzewałem. W pierwszej linii masz T1M6, czyli wywołanie procedury change_tool.ncg, a w niej na samym początku jest również M6, czyli musiałaby wywołać samą siebie powodując zawieszenie systemu i stąd ten błąd. Usuń M6 z procedury change_tool.ncg i sprawdź czy pomogło.

: 31 lip 2016, 01:20
autor: tomala89
Niestety nic to nie dało dalej wyskakuje błąd.

EOF in ...

Pokombinuję, poczekam a jak nie bd musiał instalować macha (do niego mam macro), chociaż wolałbym na linuxie pracować, bardziej przypadł mi do gustu.

: 31 lip 2016, 01:27
autor: ezbig
Wyłącz to makro do M6 (wykomentuj linię REMAP=M6 modalgroup=6 ngc=change_tool), będzie wiadomo czy to stwarza problem. Ja bym do mach-a nie wracał, jeszcze nie spotkałem problemu, którego nie da się rozwiązać w linuxCNC. Czasami jakaś literówka w kodzie się trafi lub coś podobnego i ciężko taki błąd znaleźć.

: 31 lip 2016, 09:01
autor: tomala89
ezbig pisze:Wyłącz to makro do M6 (wykomentuj linię REMAP=M6 modalgroup=6 ngc=change_tool), będzie wiadomo czy to stwarza problem. Ja bym do mach-a nie wracał, jeszcze nie spotkałem problemu, którego nie da się rozwiązać w linuxCNC. Czasami jakaś literówka w kodzie się trafi lub coś podobnego i ciężko taki błąd znaleźć.
Zrobiłem tak jak napisałeś i nic nie pomogło. Zrobiłem tak żeby guzik odpalił prosty gkod, ale dalej nic. Problem cały czas jest w pierwszej linijce pliku tool_probe jak i w change_probe w obu tych plikach po włączeniu się danego programu linux "poszukuje" o-world i nie może znaleźć o<nazwa> sub właściwie cały ten skrypt jest po prostu skopiowany.

: 31 lip 2016, 10:56
autor: ezbig
Zapytam dla formalności. Jesteś pewien, że ścieżka podprogramów (/nc_subroutines) jest zgodna z tym co wyświetla program w oknie z błędem? (w linux-ie ważne są też małe i duże litery)