Страница 77 из 123
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 24 янв 2014, 16:56
Nick
О, а как оно работает?
Думал, что если сделать из обычной резцедержки на 4 позиции автосмену, но так и не придумал, как контролировать затяжку...
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 24 янв 2014, 18:54
aftaev
Спереди мотора стоит 2х ступенчатый планетарный редуктор, сзади в ось мотора упирается шарик на пружине который при избыточном моменте толкает штырек который нажимает микровыключатель.
Вот только разобрал этот узел, а он шо то не собирается

Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 24 янв 2014, 18:57
aftaev
Nick писал(а):Думал, что если сделать из обычной резцедержки на 4 позиции автосмену, но так и не придумал, как контролировать затяжку...
в револьверке затяжка идет не на прямую, а через тарельчатые пружины. Стоит в определенном месте микровыключатель, как до него доехал зажим, выключился мотор.
Как вариант затяжку измерять частотником или мерить силу тока мотора. Если шаговиком то настраивать силу тока для мотора.
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 27 янв 2014, 16:15
Nick
aftaev писал(а):в револьверке затяжка идет не на прямую, а через тарельчатые пружины.
А какое усили надо? Какой выходит пакет пружин?
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 29 янв 2014, 17:43
aftaev
Nick писал(а):А какое усили надо? Какой выходит пакет пружин?
эт нужно в паспорте на револьверку смотреть
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 29 янв 2014, 17:45
aftaev
Потихоньку красим станок, погода вносит свои коррективы
Справа то что покрашено и покрыто автолаком, слева очередь на покраску. Двери до и после покраски. Много времени уходит на рихтовку, все погнуто.
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 06 фев 2014, 16:46
aftaev
Панельку с кнопочками/крутилками прикрутил к Ардуинке
Arduino -> ModBus -> LCNC #140
В ЕМС номер инструмента передается как число.
Нужно так: крутанул галетник на 2й инструмент Ain4=2, нажал кнопку сменить инструмент появился сигнал Din2-2, и ЕМС сменил инструмент. Как такое сделать
В архиве рабочий конфиг,ини и ладдер смены инструмента.
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 06 фев 2014, 21:17
Nick
В hal:
Код: Выделить всё
net tool-change-galetnik <= Ain4 # сюда название пина вставь правильное
net tool-change-galetnik => motion.analog-in-02
net tool-change-button <= Din4 # сюда название пина вставь правильное
net tool-change-button => halui.mdi-command-00
В ini в раздел [HALUI] добавляешь:
Код: Выделить всё
[HALUI]
MDI_COMMAND = O<do-manual-change> CALL
Создаешь файл do-manual-change.ngc в каталоге с ini с таким содержимым:
Код: Выделить всё
O<do-manual-change> SUB
M66 E2 (читаем галетник)
T#5399M6 (меняем инстумент)
O<do-manual-change> ENDSUB
как-то так...
Работать должно только в ручном режиме, в других наверное выдаст ошибку...
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 06 фев 2014, 21:57
aftaev
а в Ладдер засунуть к тому что есть никак?
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 06 фев 2014, 22:01
nkp
aftaev писал(а):а в Ладдер засунуть к тому что есть никак?
я в принципе хотел через ту схему CL,что есть...
немного сложней - но пропишем , а там решишь - что оптимальней...
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 06 фев 2014, 22:20
aftaev
Nick писал(а):в других наверное выдаст ошибку...
эт мне к станку Ctrl+Alt+Delete приделывать придется

Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 07 фев 2014, 08:17
nkp
нужен бы мультиплексор (компонент mux2),только работающий не с float а с S32...
без него конечно можно прописать преобразования на входах ,потом обратное на выходах ...
но больно уж громоздко получается
добавив "свой" компонент mux2S32:
Код: Выделить всё
component mux2S32 "Select from one of two input values";
pin in bit sel;
pin out s32 out "Follows the value of in0 if sel is FALSE, or in1 if sel is TRUE";
pin in s32 in1;
pin in s32 in0;
function _;
license "GPL";
;;
FUNCTION(_) {
if(sel) out = in1;
else out = in0;
}
hal получается более "стройным"
(для просмотра содержимого нажмите на ссылку)Код: Выделить всё
# Generated by PNCconf at Fri Dec 20 03:49:07 2013
# Все изменения в этом файле будут перезаписаны
# overwritten when you run PNCconf again
loadrt trivkins
loadrt [EMCMOT]EMCMOT servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hostmot2
loadrt hm2_pci config=" num_encoders=6 num_pwmgens=0 num_3pwmgens=0 num_stepgens=3 sserial_port_0=00000xxx "
setp hm2_5i25.0.watchdog.timeout_ns 10000000
loadrt pid names=pid.s
# для Ладдера
loadrt classicladder_rt numPhysInputs=15 numPhysOutputs=15 numS32in=10 numS32out=10 numFloatIn=10 numFloatOut=10
loadusr classicladder custom.clp
addf classicladder.0.refresh servo-thread
addf hm2_5i25.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i25.0.write servo-thread
addf hm2_5i25.0.pet_watchdog servo-thread
# external output signals
# external input signals
# --- ESTOP-EXT ---
net estop-ext <= hm2_5i25.0.7i76.0.3.input-00-not
# --- HOME-X ---
net home-x <= hm2_5i25.0.7i76.0.3.input-01
# --- HOME-Z ---
net home-z <= hm2_5i25.0.7i76.0.3.input-02
#*******************
# AXIS X
#*******************
# Step Gen signals/setup
setp hm2_5i25.0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
setp hm2_5i25.0.stepgen.00.dirhold [AXIS_0]DIRHOLD
setp hm2_5i25.0.stepgen.00.steplen [AXIS_0]STEPLEN
setp hm2_5i25.0.stepgen.00.stepspace [AXIS_0]STEPSPACE
setp hm2_5i25.0.stepgen.00.position-scale [AXIS_0]STEP_SCALE
setp hm2_5i25.0.stepgen.00.step_type 0
setp hm2_5i25.0.stepgen.00.control-type 0
setp hm2_5i25.0.stepgen.00.maxaccel 250.0
setp hm2_5i25.0.stepgen.00.maxvel 104.2
net x-pos-fb axis.0.motor-pos-fb <= hm2_5i25.0.stepgen.00.position-fb
net x-pos-cmd axis.0.motor-pos-cmd => hm2_5i25.0.stepgen.00.position-cmd
net x-enable axis.0.amp-enable-out => hm2_5i25.0.stepgen.00.enable
# ---setup home / limit switch signals---
net home-x => axis.0.home-sw-in
net x-neg-limit => axis.0.neg-lim-sw-in
net x-pos-limit => axis.0.pos-lim-sw-in
#*******************
# AXIS Z
#*******************
# Step Gen signals/setup
setp hm2_5i25.0.stepgen.01.dirsetup [AXIS_2]DIRSETUP
setp hm2_5i25.0.stepgen.01.dirhold [AXIS_2]DIRHOLD
setp hm2_5i25.0.stepgen.01.steplen [AXIS_2]STEPLEN
setp hm2_5i25.0.stepgen.01.stepspace [AXIS_2]STEPSPACE
setp hm2_5i25.0.stepgen.01.position-scale [AXIS_2]STEP_SCALE
setp hm2_5i25.0.stepgen.01.step_type 0
setp hm2_5i25.0.stepgen.01.control-type 0
setp hm2_5i25.0.stepgen.01.maxaccel 2.5
setp hm2_5i25.0.stepgen.01.maxvel 20.8
net z-pos-fb axis.2.motor-pos-fb <= hm2_5i25.0.stepgen.01.position-fb
net z-pos-cmd axis.2.motor-pos-cmd => hm2_5i25.0.stepgen.01.position-cmd
net z-enable axis.2.amp-enable-out => hm2_5i25.0.stepgen.01.enable
# ---setup home / limit switch signals---
net home-z => axis.2.home-sw-in
net z-neg-limit => axis.2.neg-lim-sw-in
net z-pos-limit => axis.2.pos-lim-sw-in
#*******************
# SPINDLE S
#*******************
# ---PWM Generator signals/setup---
setp hm2_5i25.0.7i77.0.1.analogout5-scalemax [SPINDLE_9]OUTPUT_SCALE
setp hm2_5i25.0.7i77.0.1.analogout5-minlim [SPINDLE_9]OUTPUT_MIN_LIMIT
setp hm2_5i25.0.7i77.0.1.analogout5-maxlim [SPINDLE_9]OUTPUT_MAX_LIMIT
net spindle-vel-cmd => hm2_5i25.0.7i77.0.1.analogout5
net machine-is-enabled => hm2_5i25.0.7i77.0.1.spinena
# ---Encoder feedback signals/setup---
setp hm2_5i25.0.encoder.05.counter-mode 0
setp hm2_5i25.0.encoder.05.filter 1
setp hm2_5i25.0.encoder.05.index-invert 0
setp hm2_5i25.0.encoder.05.index-mask 0
setp hm2_5i25.0.encoder.05.index-mask-invert 0
setp hm2_5i25.0.encoder.05.scale [SPINDLE_9]ENCODER_SCALE
net spindle-revs <= hm2_5i25.0.encoder.05.position
net spindle-vel-fb <= hm2_5i25.0.encoder.05.velocity
net spindle-index-enable <=> hm2_5i25.0.encoder.05.index-enable
# ---setup spindle control signals---
net spindle-vel-cmd-rps <= motion.spindle-speed-out-rps
net spindle-vel-cmd <= motion.spindle-speed-out
net spindle-on <= 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
# ---Setup spindle at speed signals---
sets spindle-at-speed true
#******************************
# connect miscellaneous signals
#******************************
# ---HALUI signals---
net joint-select-a halui.joint.0.select
net x-is-homed halui.joint.0.is-homed
net jog-x-pos halui.jog.0.plus
net jog-x-neg halui.jog.0.minus
net jog-x-analog halui.jog.0.analog
net joint-select-c halui.joint.2.select
net z-is-homed halui.joint.2.is-homed
net jog-z-pos halui.jog.2.plus
net jog-z-neg halui.jog.2.minus
net jog-z-analog halui.jog.2.analog
net jog-selected-pos halui.jog.selected.plus
net jog-selected-neg halui.jog.selected.minus
net spindle-manual-cw halui.spindle.forward
net spindle-manual-ccw halui.spindle.reverse
net spindle-manual-stop halui.spindle.stop
net machine-is-on halui.machine.is-on
net jog-speed halui.jog-speed
net MDI-mode halui.mode.is-mdi
# ---coolant signals---
net coolant-mist <= iocontrol.0.coolant-mist
net coolant-flood <= iocontrol.0.coolant-flood
# ---probe signal---
net probe-in => motion.probe-input
# ---motion control signals---
net in-position <= motion.in-position
net machine-is-enabled <= motion.motion-enabled
# ---digital in / out signals---
# ---estop signals---
net estop-out <= iocontrol.0.user-enable-out
net estop-ext => iocontrol.0.emc-enable-in
# ---manual tool change signals---
#
#loadusr -W hal_manualtoolchange
#net tool-change-request iocontrol.0.tool-change => hal_manualtoolchange.change
#net tool-change-confirmed 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
############# TOOL ############################
# --- TOOL 1-6 ---
net tool_1 <= hm2_5i25.0.7i77.0.0.input-25 <= classicladder.0.in-00
net tool_2 <= hm2_5i25.0.7i77.0.0.input-26 <= classicladder.0.in-01
net tool_3 <= hm2_5i25.0.7i77.0.0.input-27 <= classicladder.0.in-02
net tool_4 <= hm2_5i25.0.7i77.0.0.input-28 <= classicladder.0.in-03
net tool_5 <= hm2_5i25.0.7i77.0.0.input-29 <= classicladder.0.in-04
net tool_6 <= hm2_5i25.0.7i77.0.0.input-30 <= classicladder.0.in-05
# --- TOOL_CLOSE ---
net tool_close <= hm2_5i25.0.7i77.0.0.input-31 <= classicladder.0.in-08
# --- TOOL_SEARCH_OUT ---
setp hm2_5i25.0.7i77.0.0.output-09 true
net tool_search_out hm2_5i25.0.7i77.0.0.output-09 => classicladder.0.out-00 # cw_rot
#setp hm2_5i25.0.7i77.0.0.output-09-invert true
# --- TOOL_CLOSE_OUT ---
setp hm2_5i25.0.7i77.0.0.output-08 true
net tool_search_out1 hm2_5i25.0.7i77.0.0.output-08 => classicladder.0.out-01 # ccw_rot
#setp hm2_5i25.0.7i77.0.0.output-08-invert true
# ---manual tool change signals---
loadusr -W hal_manualtoolchange
#net tool-change-request iocontrol.0.tool-change => classicladder.0.in-09 # start_t
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
loadrt or2
addf or2.0 servo-thread
net or2_0_in0 or2.0.in0 iocontrol.0.tool-change
net or2_0_in1 or2.0.in1 arduino.Din2-02
net or2_0_out or2.0.out classicladder.0.in-09
#++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
net tool-change-confirmed iocontrol.0.tool-changed <= classicladder.0.out-02 # done_t
#net tool-number iocontrol.0.tool-prep-number => classicladder.0.s32in-01 #t_req %IW0
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
loadrt mux2S32
addf mux2S32.0 servo-thread
net mux2S32_0_sel mux2S32.0.sel halui.mode.is-manual
net mux2S32_0_in0 mux2S32.0.in0 iocontrol.0.tool-prep-number
net mux2S32_0_in1 mux2S32.0.in1 arduino.Din4-00
net tool-number mux2S32.0.out => classicladder.0.s32in-01 #t_req %IW0
#+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared
#при слишком долгой смене инструмента = Estop
net cl-estop classicladder.0.out-03 => halui.estop.activate
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 07 фев 2014, 08:34
nkp
задумка такая:
использовать имеющуюся,ставшую в таких случаях классическую схему ладдера(CL)...
номер инструмента передавать в CL в зависимости от режима:
если mode.manual - то берем номер с пина arduino.Din4-00
если не mode.manual - то как обычно с iocontrol.0.tool-prep-number
Код: Выделить всё
loadrt mux2S32
addf mux2S32.0 servo-thread
net mux2S32_0_sel mux2S32.0.sel halui.mode.is-manual
net mux2S32_0_in0 mux2S32.0.in0 iocontrol.0.tool-prep-number
net mux2S32_0_in1 mux2S32.0.in1 arduino.Din4-00
net tool-number mux2S32.0.out => classicladder.0.s32in-01 #t_req %IW0
---------------
еще нам нужно подать сигнал на вход Start CL от кнопки...
пока для пробы заведем его через ИЛИ :
Код: Выделить всё
loadrt or2
addf or2.0 servo-thread
net or2_0_in0 or2.0.in0 iocontrol.0.tool-change
net or2_0_in1 or2.0.in1 arduino.Din2-02
net or2_0_out or2.0.out classicladder.0.in-09
=============
вроде бы так уже должно работать...
потом только нужно будет в CL поставить защиту ,чтоб разрулить ручной режим и остальные(авто,MDI)
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 07 фев 2014, 10:34
Nick
А чем вам не нравится через Gкод и MDI_COMMAND?
Так будет примерно тоже самое, пот этом используется тот же ladder для смены, что и в обычном режиме...
И то, что работает только в ручном режиме, это только плюс..
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 07 фев 2014, 10:40
nkp
Nick писал(а):А чем вам не нравится через Gкод и MDI_COMMAND?
ну мне наоборот так нравиться
а чудим по запросам т.с. трудящихся ©

Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 07 фев 2014, 11:04
aftaev
Nick писал(а):И то, что работает только в ручном режиме, это только плюс..
а какие режимы вообще есть?
В режиме ЧПУ когда выполняется Gcode менять инструмент нельзя!
Если выполнялся Gcode и нажали Паузу или Стоп то желательно чтобы была возможность отогнать, повернуть инструмент для смены.
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 07 фев 2014, 11:11
nkp
aftaev писал(а):В режиме ЧПУ когда выполняется Gcode менять инструмент нельзя!
что ты имеешь в виду??
так как работать? одним резцом что ли?
aftaev писал(а):а какие режимы вообще есть?
из основных :
авто, ручной и MDI
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 07 фев 2014, 11:55
aftaev
nkp писал(а):что ты имеешь в виду??
так как работать? одним резцом что ли?
Когда работает станок по Gcode менять инструмент с панели нельзя, менять должен только Gcode. Чтобы даже случайно не сменить инструмент когда работает станок.
Когда станок стоит или пауза можно менять инструмент с панели вручную.
Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 07 фев 2014, 12:00
Nick
aftaev писал(а):Когда работает станок по Gcode менять инструмент с панели нельзя, менять должен только Gcode. Чтобы даже случайно не сменить инструмент когда работает станок.
В обоих случаях скорее всего так оно и будет. Но надо на всякий случай проверить

Re: Восстановление токарного 16К20Т1 ЧПУ
Добавлено: 07 фев 2014, 12:00
nkp
aftaev писал(а):с панели нельзя
вот это ты и не дописал ,и получилось что нельзя ж-кодом вообще менять
=============
просто если бы ты емс RIP пользовал - то можно было бы попробовать то ,что выше написал (там новый компонент поставить нужно).
а так переписать конвертацию нужно будет...