Страница 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
Потихоньку красим станок, погода вносит свои коррективы :)

Справа то что покрашено и покрыто автолаком, слева очередь на покраску. Двери до и после покраски. Много времени уходит на рихтовку, все погнуто.
DSCN2498.JPG (2660 просмотров) <a class='original' href='./download/file.php?id=24057&mode=view' target=_blank>Загрузить оригинал (269.78 КБ)</a>

Re: Восстановление токарного 16К20Т1 ЧПУ

Добавлено: 06 фев 2014, 16:46
aftaev
Панельку с кнопочками/крутилками прикрутил к Ардуинке Arduino -> ModBus -> LCNC #140
В ЕМС номер инструмента передается как число.
Signal.png (2588 просмотров) <a class='original' href='./download/file.php?id=24474&mode=view' target=_blank>Загрузить оригинал (84.99 КБ)</a>
Нужно так: крутанул галетник на 2й инструмент Ain4=2, нажал кнопку сменить инструмент появился сигнал Din2-2, и ЕМС сменил инструмент. Как такое сделать :thinking:

В архиве рабочий конфиг,ини и ладдер смены инструмента.
Revolverka.rar
(7.05 КБ) 378 скачиваний

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...
без него конечно можно прописать преобразования на входах ,потом обратное на выходах ...
но больно уж громоздко получается :thinking:
добавив "свой" компонент 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?
ну мне наоборот так нравиться :)
а чудим по запросам т.с. трудящихся © :freak:

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 пользовал - то можно было бы попробовать то ,что выше написал (там новый компонент поставить нужно).
а так переписать конвертацию нужно будет...