G76 проблема с index-enable

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
ex71
Мастер
Сообщения: 714
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

G76 проблема с index-enable

Сообщение ex71 »

Выделю в отдельную тему, так как проблема видимо не железная, а больше софтовая.
Энкодер менял, порт на карте энкодера менял. Z метки осциллографом смотрел (и Z+, и Z-, и даже +/-A и даже +/-В) - все есть.

Собираю токарный станок на базе плат PinCET. Поставил энкодер на шпиндель (точнее подключил, с завода он там был).
Прописал в конфиге, почитал что к чему как. Накидал простейшую прогу из одной строки для нарезки резьбы.
НО! Всегда получаю шаг 10мм, не зависимо ни от чего.
Никакие параметры на шаг не влияют. Пробовал и в коде (G76 P) менять, и всевозможные подачи, и даже экнодер шпинделя в конфиге (scale) никакого изменения не дает. Любая скорость шпинделя всегда соответствует шагу, то есть при увеличении оборотов всегда попадает правильно, но с шагом в 10мм ( Ну заход резьбы всегда в разном месте. То есть в резьбу из прошлого цикла не попадает, но внутри одной программы попадает правильно.
Пару раз случалось, что при первом проходе станок делал правильный шаг, но после отхода и возврата в начальную точку - снова шаг 10мм.

Сегодня ковырялся еще раз, мне предложили провести тест с ручным вращением шпинделя. Прописал в конфиге at-speed и spindle-on через GUI кнопки. Дохожу пошагово до начала резьбы, жму обе кнопки, шпиндель тормозится, дальше я в халскопе смотрю на motion.spindle-index-enable и etcomb.1.feedback.encoder_en2 - оба активны (вообще они связаны в один сигнал). Начинаю крутить шпиндель, индексы гаснут и резец поехал с нужным шагом согласно повороту шпинделя.
Как только дошел до конца резьбы, происходит отход на ускоренной, перемещение в начало резьбы. Индексы не загораются, а резец поехал на ускоренной делать резьбу, потом опять отход, возврат, еще цикл и тп.. При этом шпиндель уже не вращаю. Если запустить программу еще раз, то УЖЕ и первый проход будет на ускоренной.

Если в MDI делать G33 (G31 у меня не понимает), такая же ерунда. Но если вдруг index включится, то последующие повторные запуски команды G33 через MDI работают корректно. А вот если запустить mdi G76 - первый проход, и все опять на ускоренной пока что-то где-то не восстановится - может через пять минут, может до выключения компа.

Собственно вопрос:
почему не выставляется index-enable?
Я что-то пропустил? Jitter может влиять на это?

Конфиг касательно шпинделя:

Код: Выделить всё

net spindle-revs           =>  motion.spindle-revs
net spindle-at-speed       =>  motion.spindle-at-speed
net spindle-vel-fb         =>  motion.spindle-speed-in
net spindle-index-enable  <=>  motion.spindle-index-enable

#------- SPINDLE FEEDBACK -----------------
setp etcomb.1.feedback.enc_scale2 4000 (энкодер на 1000им, ABZ)
net spindle-revs <= etcomb.1.feedback.encoder2
net spindle-vel-fb <= etcomb.1.feedback.enc_vel2
net spindle-index-enable <= etcomb.1.feedback.index_en2
Leo_1943
Мастер
Сообщения: 875
Зарегистрирован: 03 май 2014, 07:24
Репутация: 250
Настоящее имя: Леонид
Откуда: Харьков

Re: G76 проблема с index-enable

Сообщение Leo_1943 »

А spindle-vel-fb какая величина в этот момент?
ex71
Мастер
Сообщения: 714
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: G76 проблема с index-enable

Сообщение ex71 »

Если не ошибаюсь, по памяти, то revs это обороты, просто счетчик который никогда не сбрасывается даже после перезапуска программы - что я непонимаю, как так то? И где они хранятся что их нет в файле переменных.
а vel-fb скорость вращения об/сек. То есть =10, если M3S600.
Но утром проверю, если не так - отпишусь. Соответствие оборотов я проверял, шпиндель руками крутил и по халскопу сверял что оборот шпинделя равен обороту в хале.
С эти ВРОДЕ проблем нет, но я готов рассмотреть любые предложения, и все перепроверить еще 10 раз.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: G76 проблема с index-enable

Сообщение Serg »

ex71 писал(а):Если не ошибаюсь, по памяти, то revs это обороты, просто счетчик который никогда не сбрасывается даже после перезапуска программы - что я непонимаю, как так то? И где они хранятся что их нет в файле переменных.
К spindle-revs должен быть подключён выход энкодера (счётчик импульсов). Абсолютное значение не важно, важно изменение этого значения. При перезагрузке значение сохраняется видимо потому, что значение хранится в плате PinCET (плату не знаю, в Mesa именно так). Так-же значение должно обнуляться при активации spindle-index-enable и появлении импульса на индексном выходе энкодера.
Надеюсь понятно какие сигналы надо проверить...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
ex71
Мастер
Сообщения: 714
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: G76 проблема с index-enable

Сообщение ex71 »

vel-fb это обороты/сек
revs - количество оборотов с тех пор как был сброшен index-enable. В плюс считает при вращение НА резец (то есть прямое для токарника), в минус в обратном.
То есть при включении у меня revs был = 0, я еще раз проверил соответствие оборота шпинделя этому значению. 1:1
Запустил резьбу с ручным вращением, при старте g76 index-enable = 0, revs = 0, vel-fb=0, sindle-at-speed =0.
Вращаю шпиндель - не едет. Ставлю spindle-at-speed = 1, сразу загорелся index-enable, при вращении шпинделя считает revs и vel-fb некое маленькое значение типа 0.25.
Дошел до какого-то положения шпинделя (нуль на энкодере видимо). Погас index-enable, revs=0, суппорт поехал по резьбе согласно вращению шпинделя.
Дошел до конца резьбы, уехал в на второй цикл, при этом index-enable=0 со всеми соответствующими остальными параметрами. На ускоренной поехал вдоль резьбы, потом сразу на след заход и так пока не сделал все проходы. Остановить его можно ЕСЛИ поставить spiindle-at-speed = 0. Если опять at-speed = 1, то продолжает едет на ускоренной. Index больше не загорается.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: G76 проблема с index-enable

Сообщение Serg »

ex71 писал(а):revs - количество оборотов с тех пор как был сброшен index-enable. В плюс считает при вращение НА резец (то есть прямое для токарника), в минус в обратном.
Вроде не принципиально, во всяком случае у меня так-же работает. Но можно просто отключить канал B энкодера - будет считать в одну сторону.
ex71 писал(а):Запустил резьбу с ручным вращением, при старте g76 index-enable = 0, revs = 0, vel-fb=0, sindle-at-speed =0.
...
Тут всё правильно.
ex71 писал(а):Остановить его можно ЕСЛИ поставить spiindle-at-speed = 0. Если опять at-speed = 1, то продолжает едет на ускоренной. Index больше не загорается.
Может цикл прерывается?.. Я так издеваться не пробовал. Наверно надо в https://forum.linuxcnc.org/ писать или в исходниках копаться...
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
ex71
Мастер
Сообщения: 714
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: G76 проблема с index-enable

Сообщение ex71 »

Исходники это конечно хорошо, но я не знаю где там искать конкретные точки, а резьба нужна сейчас :(
На оф. форуме надо описать детально, с этим тоже не очень легко... Ладно, попробую пока железо и софт поменять
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 проблема с index-enable

Сообщение nkp »

ex71 писал(а):Я что-то пропустил?
может что в конфиге не то...
глянуть бы...
ex71
Мастер
Сообщения: 714
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: G76 проблема с index-enable

Сообщение ex71 »

nkp писал(а):
ex71 писал(а):Я что-то пропустил?
может что в конфиге не то...
глянуть бы...
HAL (для просмотра содержимого нажмите на ссылку)

Код: Выделить всё

loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES num_dio=12


# My driver 

loadrt etcomb board_ip=192.168.1.3
loadrt pid names=pid.x,pid.z

# logic functions
loadrt and2		count=2
loadrt not		count=2
loadrt or2		count=1
loadrt xor2		count=1
loadrt scale	count=1
loadrt autolube

# ################################################
# THREADS
# ################################################

addf etcomb.1.update		servo-thread

addf motion-command-handler	servo-thread
addf motion-controller		servo-thread
addf pid.x.do-pid-calcs		servo-thread
addf pid.z.do-pid-calcs		servo-thread
addf and2.0					servo-thread
addf and2.1 				servo-thread
addf not.0 					servo-thread
addf not.1					servo-thread
addf or2.0 					servo-thread
addf xor2.0					servo-thread
addf scale.0				servo-thread
addf autolube.0				servo-thread

# ######################################################
#   -------E-STOP--------
# ######################################################

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

#*******************
# PID X
#*******************
setp   pid.x.Pgain     [AXIS_0]P
setp   pid.x.Igain     [AXIS_0]I
setp   pid.x.Dgain     [AXIS_0]D
setp   pid.x.bias      [AXIS_0]BIAS
setp   pid.x.FF0       [AXIS_0]FF0
setp   pid.x.FF1       [AXIS_0]FF1
setp   pid.x.FF2       [AXIS_0]FF2
setp   pid.x.deadband  [AXIS_0]DEADBAND
setp   pid.x.maxoutput [AXIS_0]MAX_OUTPUT

net x-enable       => pid.x.enable
net x-output       => pid.x.output
net x-pos-cmd      => pid.x.command
net x-pos-fb       => pid.x.feedback

#*******************
# PID Z
#*******************
setp   pid.z.Pgain     [AXIS_2]P
setp   pid.z.Igain     [AXIS_2]I
setp   pid.z.Dgain     [AXIS_2]D
setp   pid.z.bias      [AXIS_2]BIAS
setp   pid.z.FF0       [AXIS_2]FF0
setp   pid.z.FF1       [AXIS_2]FF1
setp   pid.z.FF2       [AXIS_2]FF2
setp   pid.z.deadband  [AXIS_2]DEADBAND
setp   pid.z.maxoutput [AXIS_2]MAX_OUTPUT

net z-enable       => pid.z.enable
net z-output       => pid.z.output
net z-pos-cmd      => pid.z.command
net z-pos-fb       => pid.z.feedback



#*******************
#   CONTROL AXIS
#*******************
# axis.0.amp-enable-out - выход модуля AXIS первой оси
# etcomb.1.enable_drive - вход контроллера
# enable drives
net x-enable axis.0.amp-enable-out

net x-enable etcomb.1.enable_drive
net x-pos-cmd  <= axis.0.motor-pos-cmd
net x-output => etcomb.1.PWM.dcontrol0
setp etcomb.1.PWM.out_scale0 -1

net z-enable axis.2.amp-enable-out
net z-enable  => axis.2.amp-enable-out
net z-pos-cmd  <= axis.2.motor-pos-cmd
net z-output => etcomb.1.PWM.dcontrol1
setp etcomb.1.PWM.out_scale1 1

#*******************
#   FEED BACK
#*******************
net x-pos-fb  => axis.0.motor-pos-fb
net x-pos-fb  <= etcomb.1.feedback.encoder0
setp etcomb.1.feedback.enc_scale0 1000

net z-pos-fb  => axis.2.motor-pos-fb
net z-pos-fb  <= etcomb.1.feedback.encoder1
setp etcomb.1.feedback.enc_scale1 500


# --- HOME ---
net home-x etcomb.1.pins.pin-05-in-n => axis.0.home-sw-in
net home-z etcomb.1.pins.pin-04-in-n => axis.2.home-sw-in

# limit switches
# отрицательный
net limit-x-neg etcomb.1.pins.pin-03-in-n => axis.0.neg-lim-sw-in
net limit-z-neg etcomb.1.pins.pin-02-in-n => axis.2.neg-lim-sw-in
# положительный
net limit-x-pos etcomb.1.pins.pin-01-in-n => axis.0.pos-lim-sw-in
net limit-z-pos etcomb.1.pins.pin-00-in-n => axis.2.pos-lim-sw-in

# ################
# Spindle Axis
# ################
# ---setup spindle control signals--- 
#net spindle-vel-cmd-rps    <=  motion.spindle-speed-out-rps
net spindle-vel-cmd        <=  motion.spindle-speed-out
net spindle-enable         <=  motion.spindle-on
#net spindle-cw             <=  motion.spindle-forward
#net spindle-ccw            <=  motion.spindle-reverse
#net spindle-brake          <=  motion.spindle-brake
net spindle-revs           =>  motion.spindle-revs
net spindle-at-speed       =>  motion.spindle-at-speed
net spindle-vel-fb         =>  motion.spindle-speed-in
net spindle-index-enable  <=>  motion.spindle-index-enable

#------- SPINDLE ENABLE --------------
net spindle-enable => and2.0.in0
net spind_is_off => not.0.in
net inv_sp_off not.0.out => and2.0.in1
net spindle_true and2.0.out => etcomb.1.pins.pin-05-out

#------- SPINDLE CONTROL ----------------
setp etcomb.1.PWM.out_scale2 [SPINDLE]OUTPUT_SCALE
# подгоняю управление под реальные обороты
setp scale.0.gain 0.0027
net spindle-vel-cmd motion.spindle-speed-out scale.0.in
net spindle-vel-out scale.0.out etcomb.1.PWM.dcontrol2

#------- SPINDLE FEEDBACK -----------------
setp etcomb.1.feedback.enc_scale2 4000
net spindle-revs <= etcomb.1.feedback.encoder2
net spindle-vel-fb <= etcomb.1.feedback.enc_vel2
net spindle-index-enable <= etcomb.1.feedback.index_en2

# смазка
net machine-is-enabled halui.machine.is-on
net machine-is-enabled autolube.0.mrun
setp autolube.0.xpath 2000
setp autolube.0.zpath 2000
setp autolube.0.lubetime 10
net lubevel_x <= axis.0.joint-vel-cmd => autolube.0.xvel
net lubevel_z <= axis.2.joint-vel-cmd => autolube.0.zvel
net lube-sig <= autolube.0.out => etcomb.1.pins.pin-06-out

# СОЖ
net coolant iocontrol.0.coolant-flood etcomb.1.pins.pin-07-out
INI (для просмотра содержимого нажмите на ссылку)

Код: Выделить всё

[EMC]
MACHINE = ETHcombP

DEBUG = 0

[DISPLAY]
DISPLAY = axis
POSITION_OFFSET = RELATIVE
ARCDIVISION = 64
POSITION_FEEDBACK = ACTUAL
MAX_FEED_OVERRIDE = 2.000000
MAX_SPINDLE_OVERRIDE = 2.000000
MIN_SPINDLE_OVERRIDE = 0.500000
INTRO_GRAPHIC = linuxcnc.gif
INTRO_TIME = 3
PROGRAM_PREFIX = /home/dron/linuxcnc
INCREMENTS = 15mm 5mm 1mm .5mm .1mm .05mm .01mm .005mm
DEFAULT_LINEAR_VELOCITY = 2.0
MAX_LINEAR_VELOCITY = 70
#MAX_LINEAR_VELOCITY = 1.0 = 60mm/min
MIN_LINEAR_VELOCITY = 0.010000
DEFAULT_ANGULAR_VELOCITY = 0.250000
MAX_ANGULAR_VELOCITY = 1.000000
MIN_ANGULAR_VELOCITY = 0.010000
EDITOR = gedit
GEOMETRY = xyz
LATHE = TRUE
PYVCP = Panel.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

[PYTHON]
TOPLEVEL=./toplevel.py
PATH_APPEND=./
PATH_APPEND=/usr/share/linuxcnc/ncfiles/remap_lib/python_stdglue

[TASK]
TASK = milltask
CYCLE_TIME = 0.040

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

[HOSTMOT2]
# **** This is for info only ****


[HAL]
HALFILE = TA.hal
HALFILE = toolchange.hal
POSTGUI_HALFILE = postgui_call_list.hal
SHUTDOWN = shutdown.hal
HALUI = halui

[HALUI]

[TRAJ]
AXES = 3
COORDINATES = X Z
MAX_VELOCITY = 70.00
MAX_LINEAR_VELOCITY = 70.00
DEFAULT_VELOCITY = 1

MAX_ANGULAR_VELOCITY = 360.00
DEFAULT_ANGULAR_VELOCITY = 36.00
LINEAR_UNITS = mm
ANGULAR_UNITS = degree
CYCLE_TIME = 0.040


POSITION_FILE = position.txt
# игнорируем парковку при запуске станка
NO_FORCE_HOMING = 1

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

#********************
# Axis X
#********************
[AXIS_0]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.0001
MIN_FERROR = 5
MAX_VELOCITY = 4000.0
MAX_ACCELERATION = 30.0
P = 8
I = 0
D = 0
FF0 = 5e-05
FF1 = 0.2
FF2 = 0.002
BIAS = 0.01
DEADBAND = 0.0004
MAX_OUTPUT = 10
OUTPUT_SCALE = 1.0
MIN_LIMIT = -300.0
MAX_LIMIT = 50.0
HOME_OFFSET = 0.0


HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = -0.5
HOME_FINAL_VEL = -1.0000
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1
HOME_IGNORE_LIMITS = yes

#********************
# Axis Z
#********************
[AXIS_2]
TYPE = LINEAR
HOME = 0.0
FERROR = 0.0001
MIN_FERROR = 5
MAX_VELOCITY = 4000.0
MAX_ACCELERATION = 60.0
P = 6.8
I = 0
D = 0
FF0 = 1e-05
FF1 = 0.085
FF2 = 0.002
BIAS = 0.004
DEADBAND = 0.0004
MAX_OUTPUT = 10
OUTPUT_SCALE = 1.0
MIN_LIMIT = -300.0
MAX_LIMIT = 5.
HOME_OFFSET = 0.0


HOME_SEARCH_VEL = 10.00000
HOME_LATCH_VEL = -0.5
HOME_FINAL_VEL = -1.0000
HOME_USE_INDEX = NO
HOME_SEQUENCE = 1
HOME_IGNORE_LIMITS = yes

#********************
# Axis S
#********************
[AXIS_1]



#********************
# Spindle 
#********************
[SPINDLE]
ENCODER_SCALE = 4000
OUTPUT_SCALE = 1



# револьверная головка
[RS274NGC]
PARAMETER_FILE = revhead.var
SUBROUTINE_PATH = ./
REMAP=M6 modalgroup=6 argspec=T ngc=m6 prolog=change_prolog epilog=change_epilog 
# g7 - diametr, g18 - XZ, G21 - mm, G90 - absolute coordinates
# g8 - radial,
RS274NGC_STARTUP_CODE = G7 G18 G21 G90
Подскажите, что все это значит и может ли влиять?
Cycle time это же максимальный джиттер?
Вообще конфиги я брал из примеров в теме контроллера. Но в эти значения особо не вникал еще.

Код: Выделить всё

[TASK]
TASK = milltask
CYCLE_TIME = 0.040

[EMCMOT]
EMCMOT = motmod
COMM_TIMEOUT = 1.0
COMM_WAIT = 0.010
BASE_PERIOD = 100000
SERVO_PERIOD = 1000000
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 проблема с index-enable

Сообщение nkp »

CYCLE_TIME = 0.100 - The period, in seconds, at which EMCIO will run. Making it 0.0 or a negative number will tell EMCIO not to sleep at all. There is usually no need to change this number.
менять значение без особых надобностей не рекомендуют
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 проблема с index-enable

Сообщение nkp »

FERROR = 0.0001
MIN_FERROR = 5
это смысла не имеет
(но это все так - глядя по ходу,не имеет отношения к проблеме
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 проблема с index-enable

Сообщение nkp »

MAX_VELOCITY = 4000.0
реально?
=============
FF0 = 5e-05
просто 0(ноль) поставить
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 проблема с index-enable

Сообщение nkp »

BIAS скорей всего в ноль
это постоянной смещение на ан. выходе...
в токарнике как бы незачем
Аватара пользователя
Dmaster
Мастер
Сообщения: 1271
Зарегистрирован: 15 июл 2011, 13:36
Репутация: 476
Контактная информация:

Re: G76 проблема с index-enable

Сообщение Dmaster »

Попробуйте переписать резьбу вручную через g33. Будет понятнее где косяк. У меня было подобное, когда z и z/ энкодера перепутал. Получалось, что нульметка какбы всегда активна.
" Linux CNC - наше всё"
mmv
Мастер
Сообщения: 610
Зарегистрирован: 24 май 2016, 21:58
Репутация: 33
Контактная информация:

Re: G76 проблема с index-enable

Сообщение mmv »

Да, к стати как себя ведёт движение G33 правильно или нет?
Комплект плат PinCET для модернизации станков на Linuxcnc.
http://www.cnc-club.ru/forum/viewtopic. ... 16#p268407
ex71
Мастер
Сообщения: 714
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: G76 проблема с index-enable

Сообщение ex71 »

nkp писал(а):FERROR = 0.0001
MIN_FERROR = 5
это смысла не имеет
ну не знаю, по-моему в INI половина параметров вообще никакого отношения к программе не имеет. Они похоже кем-то когда-то были в примере указаны для подгрузки в HAL, а реально они не используются. Потом их в MESA конфиг подгрузил один чел, потом он дал второму свой конфиг, тот дал еще сотне тысяч людей и в итоге мы имеем пример конфига с кучей мусора и двойными, а то и тройными параметрами, иногда даже с разными значениями )
Не добрался я еще до INI файла. Так побыстрому натыкал значений по описаниям на форуме.
nkp писал(а):MAX_VELOCITY = 4000.0
реально?
=============
FF0 = 5e-05
просто 0(ноль) поставить
IMAG0405.jpg (2213 просмотров) <a class='original' href='./download/file.php?id=171913&mode=view' target=_blank>Загрузить оригинал (145.21 КБ)</a>
нет, реально 4200мм/мин по Z. Но места для разгона нету ) Вообще там в мм/сек должно стоять, 70 то бишь. Надо поправить.
PID всего 6 раз настраивал. Поэтому:
FF0 = 5e-05, что означает число, то есть не ноль. Поэтому там именно это значение ) Если прописать ноль, то станок не будет точить детали "сотка в сотку".
nkp писал(а):BIAS скорей всего в ноль
это постоянной смещение на ан. выходе...
в токарнике как бы незачем
Без BIAS он едет не правильно, точнее не попадает в нужные координаты. постоянно недоход. Мои моторы из СССР управляются драйверами AMC, и просто значения Р для этой связки не достаточно.
Эти значения обсужались тут, там же указаны скрины с примерами что как и почему.
nkp писал(а):ME = 0.100 - The period, in seconds, at which EMCIO will run. Making it 0.0 or a negative number will tell EMCIO not to sleep at all. There is usually no need to change this number.
менять значение без особых надобностей не рекомендуют
А получается что у меня не правильное значение стоит. Оке буду курить ман по INI файлу.
Dmaster писал(а):Получалось, что нульметка какбы всегда активна.
я конечно попробую, спасибо за совет. Но мне что-то кажется....
Хотя.. Допустим у меня index загорается и ожидает когда драйвер его погасит. А когда драйвер погасит? Когда на 1 проводе канала Z будет лог. единица. А когда она там будет? Когда метка пройдет через диод и энкодер выдаст Z=1, а -Z=0. Как только метка прошла, то Z=0, -Z=1.
Если мы их меняем местами, то у нас на выходе драйвера лог. единица, хотя метка еще не достигнута. А LCNC выставляет флаг index, и в теории драйвер его сразу гасит. И продолжает гасить пока не попадем в метку...
В теории все сходится, НО.. Почему первый проход ИНОГДА идет как положено?
Ну это будет epicfail, если это так...
Последний раз редактировалось ex71 15 ноя 2019, 00:06, всего редактировалось 6 раз.
ex71
Мастер
Сообщения: 714
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: G76 проблема с index-enable

Сообщение ex71 »

mmv писал(а):Да, к стати как себя ведёт движение G33 правильно или нет?
G33 ведет себя так же как и G74.
Если index загорится и драйвер его погасит - то G33 едет как положено. При чем можно запустить G33 дополнительно в обратную сторону или например еще раз вперед (по другим координатам), то команда сработает и поедет. И так можно гонять пока не запущу G74 - там пройдет первый проход и потом на ускоренной. После уже все варианты G33 или G74 едут на ускоренной.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: G76 проблема с index-enable

Сообщение Serg »

ex71 писал(а):нет, реально 4200мм/мин по Z.
А "MAX_VELOCITY = 4000.0" - это 240 м/мин.
ex71 писал(а):А LCNC выставляет флаг index, и в теории драйвер его сразу гасит. И продолжает гасить пока не попадем в метку...
Должно срабатывать не по уровню, а по фронту.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
ex71
Мастер
Сообщения: 714
Зарегистрирован: 18 май 2019, 13:23
Репутация: 96
Настоящее имя: Андрей
Контактная информация:

Re: G76 проблема с index-enable

Сообщение ex71 »

UAVpilot писал(а):Должно срабатывать не по уровню, а по фронту.
Да Максим сказал, что срабатывает по переднему фронту, так что вариант отпадает.
Завтра притащу комп из дома, подкину винт в него. Так же попробую конфиги на флешку с лайвсд подкинуть, ну и версию постарее развернуть (если предидущие пункты не помогут).
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: G76 проблема с index-enable

Сообщение nkp »

ex71 писал(а):ну не знаю, по-моему в INI половина параметров вообще никакого отношения к программе не имеет.
эти параметры как раз "имеют"))
просто сейчас стоит ferror равный 5мм
Ответить

Вернуться в «LinuxCNC»