Агрегатный станок

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

в хал вставил , линукс загрузился , что дальше?
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

nkp писал(а):нет - там прикрепленный архив с файлом "Start" - я про него говорю
уточни - где там?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

#678
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

вот эту строку добавь еще в хал :
setp sum2.0.gain1 -1
в итоге должно быть так:

loadrt sum2
loadrt abs
addf abs.0 servo-thread
addf sum2.0 servo-thread
setp sum2.0.gain1 -1
net a-pos-cmd sum2.0.in0
net a-pos-fb sum2.0.in1
net abs_in sum2.0.out abs.0.in
net abs_out abs.0.out motion.analog-in-00
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

если все грузится - то можно попробовать ж-код
это пп зажима:
O<clamp> sub
M66 E0 L0
O<m66> if [#5399 LE 0.1]
M64 P05
O<m66> else
M66 E0 L0
O<m66> endif
O<clamp> endsub
то есть - команда :
O<clamp> call
должна проверить - разницу в задании положения и реальной позиции
если разница меньше заданой нами(стоит 0.1) - то зажимаем стол,
если нет - еще раз проверяем...
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

это пробная программа для настройки/прогона вращения/позиционирования стола. куда ставлять твой кусок?
Вложения
Копия вращение стола.txt
(194 байт) 965 скачиваний
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

и что будет после зажима стола , позиционирование немного, но измениться , величина изменения и будет разница. главное , что бы после зажима прог не останавливалась.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Агрегатный станок

Сообщение Nick »

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

+ echo -n 'LinuxCNC is still running.  Restart it? [Y/n] '
LinuxCNC is still running.  Restart it? [Y/n] + read input

....

+ echo 'lockfile still not removed'
lockfile still not removed
++ inivar -ini /home/xxx/b
Здается, мне что linuxcnc был уже запущен, но не выключен и почему-то не выключился.
nkp писал(а):но наверно на sum2 надо все делать
что Ник скажет?
Не, вроде не надо, near как раз сравнивает, что одно положение соответствует второму = то, что нам надо.
ИМХО так будет правильнее, чем через analog in и сумму и еще цикл....
nkp писал(а):motion.digital-in-NN, т.е. M66 P0 L1
м66 - это у нас аналоговый пин (motion.analog-in-00)
M66 P0 L1 = дискретный пин
M66 E0 = аналоговый пин
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

если все сделано из #684 - то твой хал должен выглядеть примерно так:
(для просмотра содержимого нажмите на ссылку)

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

# Создан stepconf в Mon Jul  2 19:23:32 2012
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES num_dio=8
loadrt probe_parport
loadrt hal_parport cfg="0x378 out  "
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0,0 ctrl_type=p,p,p,v
loadrt pwmgen output_type=1
loadrt encoder names=encoder.a
#############CL 
loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
loadusr classicladder --modmaster pur2.clp
addf classicladder.0.refresh servo-thread
###############
loadrt pid names=pid.a

addf parport.0.read base-thread
addf encoder.update-counters base-thread
addf stepgen.make-pulses base-thread
addf pwmgen.make-pulses base-thread
addf parport.0.write base-thread
addf parport.0.reset base-thread

addf stepgen.capture-position servo-thread
addf encoder.capture-position servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.a.do-pid-calcs servo-thread

addf stepgen.update-freq servo-thread
addf pwmgen.update servo-thread

net spindle-cmd <= motion.spindle-speed-out => pwmgen.0.value
net spindle-on <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp pwmgen.0.pwm-freq 100.0
setp pwmgen.0.scale 1166.66666667
setp pwmgen.0.offset 0.114285714286
setp pwmgen.0.dither-pwm true
net spindle-cw <= motion.spindle-forward
net spindle-ccw <= motion.spindle-reverse

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


net all-home <= parport.0.pin-12-in-not
net estop-ext <= parport.0.pin-13-in


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
net all-home => axis.0.home-sw-in

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
net all-home => axis.1.home-sw-in

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
net all-home => axis.2.home-sw-in

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
setp   pid.a.Pgain     [AXIS_3]P
setp   pid.a.Igain     [AXIS_3]I
setp   pid.a.Dgain     [AXIS_3]D
setp   pid.a.bias      [AXIS_3]BIAS
setp   pid.a.FF0       [AXIS_3]FF0
setp   pid.a.FF1       [AXIS_3]FF1
setp   pid.a.FF2       [AXIS_3]FF2
setp   pid.a.deadband  [AXIS_3]DEADBAND
setp   pid.a.maxoutput [AXIS_3]MAX_VELOCITY

net a-index-enable  <=>  pid.a.index-enable
net a-enable       => pid.a.enable
net a-output       <= pid.a.output
net a-pos-cmd      => pid.a.command
net a-vel-fb       => pid.a.command-deriv
net a-pos-fb       => pid.a.feedback

net a-pos-cmd  <=  axis.3.motor-pos-cmd
net a-output    => stepgen.3.velocity-cmd
net a-enable     axis.3.amp-enable-out  => stepgen.3.enable

net a-pos-fb encoder.a.position => axis.3.motor-pos-fb
net astep <= stepgen.3.step
net adir <= stepgen.3.dir

net a-index-enable <= axis.3.index-enable => encoder.a.index-enable

net estop-out <= iocontrol.0.user-enable-out
net estop-ext => 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

net enc.a-a => encoder.a.phase-A
net enc.a-a <= parport.0.pin-10-in
net enc.a-b => encoder.a.phase-B
net enc.a-b <= parport.0.pin-11-in
net enc.a-z => encoder.a.phase-Z
net enc.a-z <= parport.0.pin-15-in

setp encoder.a.position-scale 1000

net R1 motion.digital-out-00 => classicladder.0.in-01 
net R2 motion.digital-out-01 => classicladder.0.in-02
net R3 motion.digital-out-02 => classicladder.0.in-03
net R4 motion.digital-out-03 => classicladder.0.in-04
net R5 motion.digital-out-04 => classicladder.0.in-05
net R6 motion.digital-out-05 => classicladder.0.in-06
net R7 motion.digital-out-06 => classicladder.0.in-07
net R8 motion.digital-out-07 => classicladder.0.in-08

loadrt sum2
loadrt abs
addf abs.0 servo-thread
addf sum2.0 servo-thread
setp sum2.0.gain1 -1
net a-pos-cmd sum2.0.in0 
net a-pos-fb sum2.0.in1
net abs_in sum2.0.out abs.0.in 
net abs_out abs.0.out motion.analog-in-00

вот так должен емс грузится без ошибок
если да - то загружай ж-код
в твоей программе вместо команды зажима (если я правильно понимаю - это команда m64p05) вставляем команду O<clamp> call
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

Nick,
а что скажешь про то - что мы тут чудим?? (последний вариант)
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

nkp писал(а):в твоей программе вместо команды зажима (если я правильно понимаю - это команда m64p05) вставляем команду O<clamp> call
наверно не вместо а передней. я правильно понял что надо вставить только одну строку O<clamp> call ? или всю кучу из 685???
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

попробуй :
(для просмотра содержимого нажмите на ссылку)
O<clamp> sub
M66 E0 L0
O<m66> if [#5399 LE 0.1]
M64 P05
O<m66> else
M66 E0 L0
O<m66> endif
O<clamp> endsub



g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
m2
если будет работать - то параметр 0.1 надо будет корректировать
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

линукс загрузился , что и как писать в прог ж код не пойму . пробовал строчку O<clamp> call - не работает. брал всю кучу, первый поворот отработала и остановилась.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

ЗАВ писал(а):брал всю кучу, первый поворот отработала и остановилась.
то есть ты загрузил вот этот весь ж-код:
(для просмотра содержимого нажмите на ссылку)
O<clamp> sub
M66 E0 L0
O<m66> if [#5399 LE 0.1]
M64 P05
O<m66> else
M66 E0 L0
O<m66> endif
O<clamp> endsub



g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
m2
если да - то опиши подробней :
вначале стол разжат
стонок сделал поворот на 45
остановился
зажался
дальше не отрабатывает
так?
ну то есть докрутил и зажал или как то по другому???
=================
а вообще наверно вместо if надо while использовать
O<clamp> sub
M66 E0 L0
O<m66> while [#5399 GT 0.1]
M66 E0 L0
O<m66> endwhile
M64 P05
O<clamp> endsub
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

даже наверно можно паузу сделать минимальную чтоб дать
возможность докрутить 0.1 мм
попробуй вот этот весь код:
zav.ngc
(401 байт) 978 скачиваний
паузу потом можно уменьшить с 1с до неоходимой (думаю необходимое
время будет меньше)
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

ситуация такая- загрузил твою последную прог ж код. только дописал(вернул) включение реле. мне нужен алгоритм-
1- поворот
2- вкл реле(зажим)
3- обработка(здесь это пауза 5сек)
4- выкл реле(разжим).
и все сначала. и так раз500.
фактически реле как включалось не дожидаясь позиционирования так все и осталось, только ухудшилось позиционирование (было до 4 знака, стало до 3)
ЗАВ
Мастер
Сообщения: 665
Зарегистрирован: 22 июн 2012, 07:43
Репутация: 0
Откуда: Орск Оренбургская область
Контактная информация:

Re: Агрегатный станок

Сообщение ЗАВ »

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

Re: Агрегатный станок

Сообщение nkp »

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

Re: Агрегатный станок

Сообщение nkp »

ЗАВ писал(а):ось а надо исправить на минус
не знаю...
у тебя вроде минусов не было
вот твоя прога:
(для просмотра содержимого нажмите на ссылку)

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

g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
g91g0a45
m64p05
g4p10
m65p05
M30
m99
где тут минус???
вот мой код:
(для просмотра содержимого нажмите на ссылку)

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

O<clamp> sub
M66 E0 L0
(debug, unbalance1=#5399)
O<m66> while [#5399 GT 0.1]
M66 E0 L0
O<m66> endwhile
G4 P1
M64 P05
(debug, unbalance2=#5399)
O<clamp> endsub



g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
g91g0a45
O<clamp> call
g4p10
m65p05
m2
добавил вывод сообщений
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Агрегатный станок

Сообщение nkp »

вот только вопрос - не посчитает ли емс этот код бесконечным циклом ????
Ответить

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