Прутковый автомат Швейцарского типа с нуля
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Т.е. простого прижима к шлифованному борту при установке рельсы недостаточно? Надо что-то еще с ней делать?
- wldev
- Мастер
- Сообщения: 1650
- Зарегистрирован: 24 янв 2012, 16:04
- Репутация: 510
- Настоящее имя: Сергей Бочаров
- Откуда: Новосибирск
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Совет один, делайте с расчётом на худшее (т.е. если у вас угол не 90, люфт и.т.д.), а именно предусматривайте регулировки для компенсации возможных недочётов.sysrover писал(а): Просто если есть желание помочь стучите в личку свяжу напрямую с Леонидычем и будете с ним говорить, так как поломаный телефон еще хуже чем вообще без советов.
- wldev
- Мастер
- Сообщения: 1650
- Зарегистрирован: 24 янв 2012, 16:04
- Репутация: 510
- Настоящее имя: Сергей Бочаров
- Откуда: Новосибирск
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
К примеру: Станина высокоточного станка отливается, после чего отлёживается ок. 5 лет и уже после этого обрабатывается.Nick писал(а):Т.е. простого прижима к шлифованному борту при установке рельсы недостаточно? Надо что-то еще с ней делать?
Re: Прутковый автомат Швейцарского типа с нуля
Если все три поверхности делаются чистовой фрезеровкой за один установ детали, то наверное ничего. Для этого станок должен иметь большой рабочий ход и точность выше , чем точность будушего станка. При шлифовке просто прошлифовать плоскость намного проще, дешевле и быстрее, чем шлифовка трех сторон. Там еще добавляются фрезерованные канавки для выхода края камня.Nick писал(а):Т.е. простого прижима к шлифованному борту при установке рельсы недостаточно? Надо что-то еще с ней делать?
-
sysrover
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Такс вопрос номер раз, можно ли называть оси по своему, например у меня
X Y Z1 Z2 ?
Как прописать в хале 3 шпинделя, два из которых будут работать иногда одновременно но в противофазе, тоесть один по часовой крутится второй против.
Также на сколько я понимаю это можно будет переключать М командами.
Ты говорил про mux распиши подробнее.
X Y Z1 Z2 ?
Как прописать в хале 3 шпинделя, два из которых будут работать иногда одновременно но в противофазе, тоесть один по часовой крутится второй против.
Также на сколько я понимаю это можно будет переключать М командами.
Ты говорил про mux распиши подробнее.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Z1 и Z2 нельзя - они будут восприниматься как Z 1 и Z 2. Надо XYZABC... по моему
.
1. инвертируем один из шпинделей, для этого, или настраиваем серву, или настриаваем PID или просто ставим pwmgen.0.scale = -1. Еще раз, как ты собрался управлять сервами по +-10В или step/dir? (также можно просто инвертировать задание одного из двигателей)
2. mux это такая штука, которая на выход выдает один из входов in0 или in1 в зависимости от значения входа sel.
Как ей пользоваться, подаем на первый вход motion.spindle-speed-out, на второй 0. На вход sel пишем motion.digital-out-01. Этим motion.digital-out-01 можно управлять при помощи Gкодов M62-65.
Давай начнем с описания словами все возможных режимов для шпинделей, потом составим для них конфиг. Т.е. нужно что-то типа:
режим 1:
1шп - вращается с заданной ск.
2шп - стоит
3шп - стоит
режим 2:
1шп - вращается с заданной ск.
2шп - разгоняется до ск...
3шп - стоит
два варианта: управляем или разными командами, сложно и не очень нужно, и второй:sysrover писал(а):иногда одновременно но в противофазе
1. инвертируем один из шпинделей, для этого, или настраиваем серву, или настриаваем PID или просто ставим pwmgen.0.scale = -1. Еще раз, как ты собрался управлять сервами по +-10В или step/dir? (также можно просто инвертировать задание одного из двигателей)
2. mux это такая штука, которая на выход выдает один из входов in0 или in1 в зависимости от значения входа sel.
Как ей пользоваться, подаем на первый вход motion.spindle-speed-out, на второй 0. На вход sel пишем motion.digital-out-01. Этим motion.digital-out-01 можно управлять при помощи Gкодов M62-65.
Давай начнем с описания словами все возможных режимов для шпинделей, потом составим для них конфиг. Т.е. нужно что-то типа:
режим 1:
1шп - вращается с заданной ск.
2шп - стоит
3шп - стоит
режим 2:
1шп - вращается с заданной ск.
2шп - разгоняется до ск...
3шп - стоит
-
sysrover
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
1. Понятно будем буквы пользовать
2. Использую только степ дир и энкодеры, уже пробывал 10000 импульсов на оборот разгонял до 3000 оборотов все красиво работает.
Итак операция такая.
1. Шпиндель 1 скорость 3000, шпиндель 2 стоит
2. Шпиндель 1 скорость снижаем до 200 к примеру и запускаем синхронно шпиндель 2
3. Оба шпинделя крутятся в противофазе со скоростью 200
Соответственно один шпиндель относительно другого стоят
Подьезжаем хватаем деталь вторым шпиндлелем
4. Разгоняемся до 3000
5. Производим отрезку детали
6. Отключаем основной шпиндель и продолжаем работу со шпинделем 2
Случай второй
Работаем с шпинделем номер 1, токарка.
Останавливаем шпиндель, переводим его в режим позиционирования
Включаем шпиндель 3 на 3000 оборотов и начинаем фрезировать в 4 кординаты.
Потом подьезжаем перехватываем деталь шпинделем 2 и продолжаем фрезеровать в противоположномторце используя шпиндель 2 в режиме позиции.
Вроде все
2. Использую только степ дир и энкодеры, уже пробывал 10000 импульсов на оборот разгонял до 3000 оборотов все красиво работает.
Итак операция такая.
1. Шпиндель 1 скорость 3000, шпиндель 2 стоит
2. Шпиндель 1 скорость снижаем до 200 к примеру и запускаем синхронно шпиндель 2
3. Оба шпинделя крутятся в противофазе со скоростью 200
Соответственно один шпиндель относительно другого стоят
Подьезжаем хватаем деталь вторым шпиндлелем
4. Разгоняемся до 3000
5. Производим отрезку детали
6. Отключаем основной шпиндель и продолжаем работу со шпинделем 2
Случай второй
Работаем с шпинделем номер 1, токарка.
Останавливаем шпиндель, переводим его в режим позиционирования
Включаем шпиндель 3 на 3000 оборотов и начинаем фрезировать в 4 кординаты.
Потом подьезжаем перехватываем деталь шпинделем 2 и продолжаем фрезеровать в противоположномторце используя шпиндель 2 в режиме позиции.
Вроде все
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Значит так сначала определимся с управлением шпинделями. Нам нужно 4 stepgen 1 в режиме положения и 3 в режиме скорости.
У тебя же все идет через месу?
предположим что stepgen.0-2 в режиме скорости 3 - положение.
По шпинделям у нас 4 режима, каджому из них нужно описать motion.spindle-speed-out и motion.spindle-at-speed.
для первых трех stepgen делаем, потом надо будет правильно настроить scale, чтобы обратная связь была в нужных единицах:
net vel0-fb <= stepgen.0.velocity-fb
net vel1-fb <= stepgen.1.velocity-fb
net vel2-fb <= stepgen.2.velocity-fb
потом делаем каждому сигнал at-speed
loadrt near count=3
net spindle-speed-cmd <= motion.spindle-speed-out-rps
addf near.0 servo-thread
setp near.0.scale 0.001
setp near.0.difference 0.1 # эти значения задают схожесть скоростей
net spindle-speed-cmd =>near.0.in1
net vel0-fb => near.0.in0
net spindle0-at-speed <= near.0.out
# тоже самое для остальных шпинделей.
по переключениям сейчас придумаю
.
У тебя же все идет через месу?
предположим что stepgen.0-2 в режиме скорости 3 - положение.
По шпинделям у нас 4 режима, каджому из них нужно описать motion.spindle-speed-out и motion.spindle-at-speed.
для первых трех stepgen делаем, потом надо будет правильно настроить scale, чтобы обратная связь была в нужных единицах:
net vel0-fb <= stepgen.0.velocity-fb
net vel1-fb <= stepgen.1.velocity-fb
net vel2-fb <= stepgen.2.velocity-fb
потом делаем каждому сигнал at-speed
loadrt near count=3
net spindle-speed-cmd <= motion.spindle-speed-out-rps
addf near.0 servo-thread
setp near.0.scale 0.001
setp near.0.difference 0.1 # эти значения задают схожесть скоростей
net spindle-speed-cmd =>near.0.in1
net vel0-fb => near.0.in0
net spindle0-at-speed <= near.0.out
# тоже самое для остальных шпинделей.
по переключениям сейчас придумаю
-
sysrover
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Вот я сгенерировал HAL для своей системы.
Код: Выделить всё
# Generated by PNCconf at Wed Feb 22 02:34:55 2012
# Все изменения в этом файле будут перезаписаны
# 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="firmware=hm2/5i23/SVST8_12_2X7I47.BIT num_encoders=8 num_pwmgens=0 num_3pwmgens=0 num_stepgens=8 "
setp hm2_5i23.0.watchdog.timeout_ns 10000000
loadrt pid names=pid.x,pid.y,pid.z,pid.a,pid.s
addf hm2_5i23.0.read servo-thread
addf motion-command-handler servo-thread
addf motion-controller servo-thread
addf pid.x.do-pid-calcs servo-thread
addf pid.y.do-pid-calcs servo-thread
addf pid.z.do-pid-calcs servo-thread
addf pid.a.do-pid-calcs servo-thread
addf pid.s.do-pid-calcs servo-thread
addf hm2_5i23.0.write servo-thread
addf hm2_5i23.0.pet_watchdog servo-thread
# external output signals
# external input signals
#*******************
# AXIS 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-index-enable <=> pid.x.index-enable
net x-enable => pid.x.enable
net x-output => pid.x.output
net x-pos-cmd => pid.x.command
net x-vel-fb => pid.x.command-deriv
net x-pos-fb => pid.x.feedback
# Step Gen signals/setup
setp hm2_5i23.0.stepgen.00.dirsetup [AXIS_0]DIRSETUP
setp hm2_5i23.0.stepgen.00.dirhold [AXIS_0]DIRHOLD
setp hm2_5i23.0.stepgen.00.steplen [AXIS_0]STEPLEN
setp hm2_5i23.0.stepgen.00.stepspace [AXIS_0]STEPSPACE
setp hm2_5i23.0.stepgen.00.position-scale [AXIS_0]STEP_SCALE
setp hm2_5i23.0.stepgen.00.step_type 0
setp hm2_5i23.0.stepgen.00.control-type 1
setp hm2_5i23.0.stepgen.00.maxaccel 250.0
setp hm2_5i23.0.stepgen.00.maxvel 250.0
# ---closedloop stepper signals---
net x-pos-cmd axis.0.motor-pos-cmd
net x-output => hm2_5i23.0.stepgen.00.velocity-cmd
net x-enable axis.0.amp-enable-out => hm2_5i23.0.stepgen.00.enable
# ---Encoder feedback signals/setup---
setp hm2_5i23.0.encoder.00.counter-mode 0
setp hm2_5i23.0.encoder.00.filter 1
setp hm2_5i23.0.encoder.00.index-invert 0
setp hm2_5i23.0.encoder.00.index-mask 0
setp hm2_5i23.0.encoder.00.index-mask-invert 0
setp hm2_5i23.0.encoder.00.scale [AXIS_0]ENCODER_SCALE
net x-pos-fb <= hm2_5i23.0.encoder.00.position
net x-vel-fb <= hm2_5i23.0.encoder.00.velocity
net x-pos-fb => axis.0.motor-pos-fb
net x-index-enable axis.0.index-enable <=> hm2_5i23.0.encoder.00.index-enable
net x-pos-rawcounts <= hm2_5i23.0.encoder.00.rawcounts
# ---setup home / limit switch signals---
net x-home-sw => 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 Y
#*******************
setp pid.y.Pgain [AXIS_1]P
setp pid.y.Igain [AXIS_1]I
setp pid.y.Dgain [AXIS_1]D
setp pid.y.bias [AXIS_1]BIAS
setp pid.y.FF0 [AXIS_1]FF0
setp pid.y.FF1 [AXIS_1]FF1
setp pid.y.FF2 [AXIS_1]FF2
setp pid.y.deadband [AXIS_1]DEADBAND
setp pid.y.maxoutput [AXIS_1]MAX_OUTPUT
net y-index-enable <=> pid.y.index-enable
net y-enable => pid.y.enable
net y-output => pid.y.output
net y-pos-cmd => pid.y.command
net y-vel-fb => pid.y.command-deriv
net y-pos-fb => pid.y.feedback
# Step Gen signals/setup
setp hm2_5i23.0.stepgen.01.dirsetup [AXIS_1]DIRSETUP
setp hm2_5i23.0.stepgen.01.dirhold [AXIS_1]DIRHOLD
setp hm2_5i23.0.stepgen.01.steplen [AXIS_1]STEPLEN
setp hm2_5i23.0.stepgen.01.stepspace [AXIS_1]STEPSPACE
setp hm2_5i23.0.stepgen.01.position-scale [AXIS_1]STEP_SCALE
setp hm2_5i23.0.stepgen.01.step_type 0
setp hm2_5i23.0.stepgen.01.control-type 1
setp hm2_5i23.0.stepgen.01.maxaccel 250.0
setp hm2_5i23.0.stepgen.01.maxvel 250.0
# ---closedloop stepper signals---
net y-pos-cmd axis.1.motor-pos-cmd
net y-output => hm2_5i23.0.stepgen.01.velocity-cmd
net y-enable axis.1.amp-enable-out => hm2_5i23.0.stepgen.01.enable
# ---Encoder feedback signals/setup---
setp hm2_5i23.0.encoder.02.counter-mode 0
setp hm2_5i23.0.encoder.02.filter 1
setp hm2_5i23.0.encoder.02.index-invert 0
setp hm2_5i23.0.encoder.02.index-mask 0
setp hm2_5i23.0.encoder.02.index-mask-invert 0
setp hm2_5i23.0.encoder.02.scale [AXIS_1]ENCODER_SCALE
net y-pos-fb <= hm2_5i23.0.encoder.02.position
net y-vel-fb <= hm2_5i23.0.encoder.02.velocity
net y-pos-fb => axis.1.motor-pos-fb
net y-index-enable axis.1.index-enable <=> hm2_5i23.0.encoder.02.index-enable
net y-pos-rawcounts <= hm2_5i23.0.encoder.02.rawcounts
# ---setup home / limit switch signals---
net y-home-sw => axis.1.home-sw-in
net y-neg-limit => axis.1.neg-lim-sw-in
net y-pos-limit => axis.1.pos-lim-sw-in
#*******************
# AXIS 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-index-enable <=> pid.z.index-enable
net z-enable => pid.z.enable
net z-output => pid.z.output
net z-pos-cmd => pid.z.command
net z-vel-fb => pid.z.command-deriv
net z-pos-fb => pid.z.feedback
# Step Gen signals/setup
setp hm2_5i23.0.stepgen.05.dirsetup [AXIS_2]DIRSETUP
setp hm2_5i23.0.stepgen.05.dirhold [AXIS_2]DIRHOLD
setp hm2_5i23.0.stepgen.05.steplen [AXIS_2]STEPLEN
setp hm2_5i23.0.stepgen.05.stepspace [AXIS_2]STEPSPACE
setp hm2_5i23.0.stepgen.05.position-scale [AXIS_2]STEP_SCALE
setp hm2_5i23.0.stepgen.05.step_type 0
setp hm2_5i23.0.stepgen.05.control-type 1
setp hm2_5i23.0.stepgen.05.maxaccel 250.0
setp hm2_5i23.0.stepgen.05.maxvel 250.0
# ---closedloop stepper signals---
net z-pos-cmd axis.2.motor-pos-cmd
net z-output => hm2_5i23.0.stepgen.05.velocity-cmd
net z-enable axis.2.amp-enable-out => hm2_5i23.0.stepgen.05.enable
# ---Encoder feedback signals/setup---
setp hm2_5i23.0.encoder.06.counter-mode 0
setp hm2_5i23.0.encoder.06.filter 1
setp hm2_5i23.0.encoder.06.index-invert 0
setp hm2_5i23.0.encoder.06.index-mask 0
setp hm2_5i23.0.encoder.06.index-mask-invert 0
setp hm2_5i23.0.encoder.06.scale [AXIS_2]ENCODER_SCALE
net z-pos-fb <= hm2_5i23.0.encoder.06.position
net z-vel-fb <= hm2_5i23.0.encoder.06.velocity
net z-pos-fb => axis.2.motor-pos-fb
net z-index-enable axis.2.index-enable <=> hm2_5i23.0.encoder.06.index-enable
net z-pos-rawcounts <= hm2_5i23.0.encoder.06.rawcounts
# ---setup home / limit switch signals---
net z-home-sw => 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
#*******************
# AXIS A
#*******************
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_OUTPUT
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
# Step Gen signals/setup
setp hm2_5i23.0.stepgen.03.dirsetup [AXIS_3]DIRSETUP
setp hm2_5i23.0.stepgen.03.dirhold [AXIS_3]DIRHOLD
setp hm2_5i23.0.stepgen.03.steplen [AXIS_3]STEPLEN
setp hm2_5i23.0.stepgen.03.stepspace [AXIS_3]STEPSPACE
setp hm2_5i23.0.stepgen.03.position-scale [AXIS_3]STEP_SCALE
setp hm2_5i23.0.stepgen.03.step_type 0
setp hm2_5i23.0.stepgen.03.control-type 1
setp hm2_5i23.0.stepgen.03.maxaccel 250.0
setp hm2_5i23.0.stepgen.03.maxvel 18750.0
# ---closedloop stepper signals---
net a-pos-cmd axis.3.motor-pos-cmd
net a-output => hm2_5i23.0.stepgen.03.velocity-cmd
net a-enable axis.3.amp-enable-out => hm2_5i23.0.stepgen.03.enable
# ---Encoder feedback signals/setup---
setp hm2_5i23.0.encoder.03.counter-mode 0
setp hm2_5i23.0.encoder.03.filter 1
setp hm2_5i23.0.encoder.03.index-invert 0
setp hm2_5i23.0.encoder.03.index-mask 0
setp hm2_5i23.0.encoder.03.index-mask-invert 0
setp hm2_5i23.0.encoder.03.scale [AXIS_3]ENCODER_SCALE
net a-pos-fb <= hm2_5i23.0.encoder.03.position
net a-vel-fb <= hm2_5i23.0.encoder.03.velocity
net a-pos-fb => axis.3.motor-pos-fb
net a-index-enable axis.3.index-enable <=> hm2_5i23.0.encoder.03.index-enable
net a-pos-rawcounts <= hm2_5i23.0.encoder.03.rawcounts
# ---setup home / limit switch signals---
net a-home-sw => axis.3.home-sw-in
net a-neg-limit => axis.3.neg-lim-sw-in
net a-pos-limit => axis.3.pos-lim-sw-in
#*******************
# SPINDLE S
#*******************
# Step Gen signals/setup
setp hm2_5i23.0.stepgen.04.dirsetup [SPINDLE_9]DIRSETUP
setp hm2_5i23.0.stepgen.04.dirhold [SPINDLE_9]DIRHOLD
setp hm2_5i23.0.stepgen.04.steplen [SPINDLE_9]STEPLEN
setp hm2_5i23.0.stepgen.04.stepspace [SPINDLE_9]STEPSPACE
setp hm2_5i23.0.stepgen.04.position-scale [SPINDLE_9]STEP_SCALE
setp hm2_5i23.0.stepgen.04.step_type 0
setp hm2_5i23.0.stepgen.04.control-type 1
setp hm2_5i23.0.stepgen.04.maxaccel [SPINDLE_9]MAX_ACCELERATION
setp hm2_5i23.0.stepgen.04.maxvel [SPINDLE_9]MAX_VELOCITY
net spindle-enable => hm2_5i23.0.stepgen.04.enable
net spindle-vel-cmd-rps => hm2_5i23.0.stepgen.04.velocity-cmd
# ---Encoder feedback signals/setup---
setp hm2_5i23.0.encoder.04.counter-mode 0
setp hm2_5i23.0.encoder.04.filter 1
setp hm2_5i23.0.encoder.04.index-invert 0
setp hm2_5i23.0.encoder.04.index-mask 0
setp hm2_5i23.0.encoder.04.index-mask-invert 0
setp hm2_5i23.0.encoder.04.scale [SPINDLE_9]ENCODER_SCALE
net spindle-revs <= hm2_5i23.0.encoder.04.position
net spindle-vel-fb <= hm2_5i23.0.encoder.04.velocity
net spindle-index-enable <=> hm2_5i23.0.encoder.04.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-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
# ---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-b halui.joint.1.select
net y-is-homed halui.joint.1.is-homed
net jog-y-pos halui.jog.1.plus
net jog-y-neg halui.jog.1.minus
net jog-y-analog halui.jog.1.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 joint-select-d halui.joint.3.select
net a-is-homed halui.joint.3.is-homed
net jog-a-pos halui.jog.3.plus
net jog-a-neg halui.jog.3.minus
net jog-a-analog halui.jog.3.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-out => 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
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Теперь можно переписать все это в терминах режимов:
net mode0-at-speed <= spindle0-at-speed # не уверен, что так сработает, если не сработает, то туда надо будет записать near.0.out
# второй режим это когда два двигателя at-speed
addf and.0 servo-thread
net spindle0-at-speed => and.0.in0
net spindle1-at-speed => and.0.in1
net mode1-at-speed <= and.0.out
# третий и четвертый режимы аналогично первому.
....
loadrt mux4
addf mux4.0 servothread
net mode0-at-speed => mux4.0.in0
net mode1-at-speed => mux4.0.in1
net mode2-at-speed => mux4.0.in2
net mode3-at-speed => mux4.0.in3
#переключение:
net modeselect0 <= motion.motion.digital-out-00
net modeselect1 <= motion.motion.digital-out-01
net modeselect0 => mux4.0.sel0
net modeselect1 => mux4.0.sel1
# теперь скорость. на все шпиндели нужно завести скорость = motion.spindle-speed-out-rps или 0 в зависимости от режима
# шпиндель 0
addf mux4.spindle-speed-0 servothread
net motion.spindle-speed-out-rps => mux4.spindle-speed-0.in0 # в режиме 0 - крутится
net motion.spindle-speed-out-rps => mux4.spindle-speed-0.in1 # в режиме 1 - крутится
#net mux4.spindle-speed-0.in2 # в режиме 2 - нет
#net mux4.spindle-speed-0.in3 # в режиме 3 - нет
# так же для остальных шпинделей. да, все mux4 можно обозвать, чтобы потом меньше путаться.
И останется только переключить один stepgen на другой.
# это будет пин 4-го режима
net modeselect0 => and.mode4.in0
net modeselect1 => and.mode4.in1
net mode4 <= and.mode4.out
net mux2.select-cotrol-type-step.in0 <= stepgen.0.step
net mux2.select-cotrol-type-step.in1 <= stepgen.3.step
net mode4 => mux2.select-cotrol-type-step.sel
net mux2.select-cotrol-type-dir.in0 <= stepgen.0.dir
net mux2.select-cotrol-type-dir.in1 <= stepgen.3.dir
net mode4 => mux2.select-cotrol-type-step.sel
//////////// хотя с этим наверное не получится т.к. stepgen-ы находятся на месе, а mux в LinuxCNC, сейчас придумаю подругому.///
Вопросы ?
net mode0-at-speed <= spindle0-at-speed # не уверен, что так сработает, если не сработает, то туда надо будет записать near.0.out
# второй режим это когда два двигателя at-speed
addf and.0 servo-thread
net spindle0-at-speed => and.0.in0
net spindle1-at-speed => and.0.in1
net mode1-at-speed <= and.0.out
# третий и четвертый режимы аналогично первому.
....
loadrt mux4
addf mux4.0 servothread
net mode0-at-speed => mux4.0.in0
net mode1-at-speed => mux4.0.in1
net mode2-at-speed => mux4.0.in2
net mode3-at-speed => mux4.0.in3
#переключение:
net modeselect0 <= motion.motion.digital-out-00
net modeselect1 <= motion.motion.digital-out-01
net modeselect0 => mux4.0.sel0
net modeselect1 => mux4.0.sel1
# теперь скорость. на все шпиндели нужно завести скорость = motion.spindle-speed-out-rps или 0 в зависимости от режима
# шпиндель 0
addf mux4.spindle-speed-0 servothread
net motion.spindle-speed-out-rps => mux4.spindle-speed-0.in0 # в режиме 0 - крутится
net motion.spindle-speed-out-rps => mux4.spindle-speed-0.in1 # в режиме 1 - крутится
#net mux4.spindle-speed-0.in2 # в режиме 2 - нет
#net mux4.spindle-speed-0.in3 # в режиме 3 - нет
# так же для остальных шпинделей. да, все mux4 можно обозвать, чтобы потом меньше путаться.
И останется только переключить один stepgen на другой.
# это будет пин 4-го режима
net modeselect0 => and.mode4.in0
net modeselect1 => and.mode4.in1
net mode4 <= and.mode4.out
net mux2.select-cotrol-type-step.in0 <= stepgen.0.step
net mux2.select-cotrol-type-step.in1 <= stepgen.3.step
net mode4 => mux2.select-cotrol-type-step.sel
net mux2.select-cotrol-type-dir.in0 <= stepgen.0.dir
net mux2.select-cotrol-type-dir.in1 <= stepgen.3.dir
net mode4 => mux2.select-cotrol-type-step.sel
//////////// хотя с этим наверное не получится т.к. stepgen-ы находятся на месе, а mux в LinuxCNC, сейчас придумаю подругому.///
Вопросы ?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Придется много переделывать.sysrover писал(а):Вот я сгенерировал HAL для своей системы.
1. я думаю PID тебе не понадобится? Т.к. пид должен быть в серве.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
предлагаю начать вот с чего:
избавимся от всего лишнего и напишем управление каждой ось, хотя бы в ручную.
Какие у тебя оси будут шпинделями?
Точнее даже не так, какие оси не будут шпинделями
?
избавимся от всего лишнего и напишем управление каждой ось, хотя бы в ручную.
Какие у тебя оси будут шпинделями?
Точнее даже не так, какие оси не будут шпинделями
-
sysrover
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Для начала, есть оси X, Y, Z1=Z, Z2=A, шпиндель 1 =B, шпиндель 2= С, шпиндель 3 =D
Оси как оси, а шпинделя должны уметь работать по позиуии и как шпиндель, ну и как выше описано.
Все завязано на есе 5и32 и 2 шт 7и47 и 1 шт 7и42
Оси как оси, а шпинделя должны уметь работать по позиуии и как шпиндель, ну и как выше описано.
Все завязано на есе 5и32 и 2 шт 7и47 и 1 шт 7и42
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Начнем....
Значит так, чтобы не портить изначальный файл запихаем сначала все в отдельные файлы.
Создадим тестовую панель для переключения режимов:
1. нужен файл panel.pyvcp с таким содержанием:
2. В ini файл пишем в dysplay
pyvcp=panel.pyvcp
2. в custom_postgui.hal пишем это (это мы подключаем пины к нашей панели):
пин mode-select1 и mode-select0 задают 4 режима которые соответствуют следующему:
1. работает только шпиндель 1
2. работает шпиндель 1 и шпиндель 2
3. работает только шпиндель 2
4. работает только шпиндель 3 и шп.1 в режиме положения.
5. В файл custom.hal пишем:
(это пока только начало, попробуй разобраться с этим, завтра продолжим
)
Значит так, чтобы не портить изначальный файл запихаем сначала все в отдельные файлы.
Создадим тестовую панель для переключения режимов:
1. нужен файл panel.pyvcp с таким содержанием:
Код: Выделить всё
<pyvcp>
<labelframe text="Mode select">
<font>("Helvetica",16)</font>
<checkbutton>
<halpin>"mode-select0"</halpin>
<text>"Mode selector 0"</text>
</checkbutton>
<checkbutton>
<halpin>"mode-select1"</halpin>
<text>"Mode selector 1"</text>
</checkbutton>
</labelframe>
<labelframe text="Current mode">
<font>("Helvetica",16)</font>
<s32>
<halpin>"corrent-mode"</halpin>
<font>("Helvetica",24)</font>
<format>"6d"</format>
<width>6</width>
</s32>
</labelframe>
</pyvcp> pyvcp=panel.pyvcp
2. в custom_postgui.hal пишем это (это мы подключаем пины к нашей панели):
пин mode-select1 и mode-select0 задают 4 режима которые соответствуют следующему:
1. работает только шпиндель 1
2. работает шпиндель 1 и шпиндель 2
3. работает только шпиндель 2
4. работает только шпиндель 3 и шп.1 в режиме положения.
Код: Выделить всё
net mode-select0 <= pyvcp.mode-select0
net mode-select1 <= pyvcp.mode-select1
setp mux4.current-mode.in0 0
setp mux4.current-mode.in1 1
setp mux4.current-mode.in2 2
setp mux4.current-mode.in3 3
net current-mode <= mux4.current-mode.out
net mode-select0 => mux4.current-mode.sel0
net mode-select1 => mux4.current-mode.sel1
(это пока только начало, попробуй разобраться с этим, завтра продолжим
Код: Выделить всё
loadrt mux4 names=current-mode,spindle-0-mode,spindle-1-mode,spindle-2-mode
addf current-mode servo-thread
addf spindle-0-mode servo-thread
addf spindle-1-mode servo-thread
addf spindle-2-mode servo-thread
loadrt mux2 names=mode-4
addf mux2.mode-4 servo-thread # этот mux используем для переключения режимов шпинделя 0
loadrt and2 names=mode-4
addf and2.mode-4 servo-thread # этот and определит 3-й режим.
net mode-select0 => and2.mode-4.in0
net mode-select1 => and2.mode-4.in1
net mode-4 <= and2.mode-4.out
# подключаем пины переключения ко всем шпинделям
net mode-select0 => mux4.spindle-0-mode.sel0 mux4.spindle-1-mode.sel0 mux4.spindle-2-mode.sel0
net mode-select1 => mux4.spindle-0-mode.sel1 mux4.spindle-1-mode.sel1 mux4.spindle-2-mode.sel1
# скорость шпинделя
net spindle-cmd <= motion.spindle-speed-out-rps
# шпиндель 0
net spindle-cmd => mux4.spindle-0-mode.in0 # режим 0 шпиндель движется
net spindle-cmd => mux4.spindle-0-mode.in1 # режим 1 шпиндель движется
setp mux4.spindle-0-mode.in2 0 # режим 2 шпиндель стоит
setp mux4.spindle-0-mode.in3 0 # режим 3 шпиндель стоит .... исправим потом на position
net spindle-0-cmd <= mux4.spindle--mode.out # назначаем команду шпинделю
# шпиндель 1
setp mux4.spindle-1-mode.in0 0 # режим 0 шпиндель стоит
net spindle-cmd => mux4.spindle-1-mode.in1 # режим 1 шпиндель движется
net spindle-cmd => mux4.spindle-1-mode.in2 # режим 2 шпиндель движется
setp mux4.spindle-1-mode.in3 0 # режим 3 шпиндель стоит
net spindle-1-cmd <= mux4.spindle-1-mode.out # назначаем команду шпинделю
# шпиндель 2
setp mux4.spindle-2-mode.in0 0 # режим 0 шпиндель стоит
setp mux4.spindle-2-mode.in1 0 # режим 1 шпиндель стоит
setp mux4.spindle-2-mode.in2 0 # режим 2 шпиндель стоит
net spindle-cmd => mux4.spindle-2-mode.in3 # режим 3 шпиндель движется
net spindle-2-cmd <= mux4.spindle-2-mode.out # назначаем команду шпинделю
net mode-4 => hm2_5i23.0.stepgen.04.control-type # включаем шпиндель 0 в режим положения # возможно нужно поменять пин.
#!!!! Режим переключать только когда резцы в безопасной зоне !!!!
net a-pos-cmd <= axis.3.motor-pos-cmd # назначаем задание шпинделю на положение
net a-pos-cmd => hm2_5i23.0.stepgen.03.position-cmd
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Чтобы все хорошо смотрелось в gedit настрой ширину tab равной 4 пробела!
-
sysrover
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Мда без поллитры не разобраться, вот в голосовом режиме бы с тобой по каждому файлу пройтись, тогда может что то понял бы.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Начиная с какого места становится не понятно?
Панельку сделал?
Может вечерком буду свободен...
Панельку сделал?
Может вечерком буду свободен...
-
sysrover
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Код: Выделить всё
Print file information:
RUN_IN_PLACE=no
LINUXCNC_DIR=
LINUXCNC_BIN_DIR=/usr/bin
LINUXCNC_TCL_DIR=/usr/lib/tcltk/linuxcnc
LINUXCNC_SCRIPT_DIR=
LINUXCNC_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/linuxcnc
LINUXCNC_CONFIG_DIR=
LINUXCNC_LANG_DIR=/usr/share/linuxcnc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
LINUXCNC_EMCSH=/usr/bin/wish8.5
LINUXCNC - 2.5.0-pre2-878-g6d3287d
Machine configuration directory is '/home/rover/linuxcnc/configs/my_LinuxCNC_machine'
Machine configuration file is 'my_LinuxCNC_machine.ini'
INIFILE=/home/rover/linuxcnc/configs/my_LinuxCNC_machine/my_LinuxCNC_machine.ini
PARAMETER_FILE=linuxcnc.var
TASK=milltask
HALUI=halui
DISPLAY=axis
Starting LinuxCNC...
Starting LinuxCNC server program: linuxcncsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting LinuxCNC IO program: io
Starting HAL User Interface program: halui
Shutting down and cleaning up LinuxCNC...
Running HAL shutdown script
Killing task linuxcncsvr, PID=2901
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done
Debug file information:
Can not find -sec MOT -var MOT -num 1
Can not find -sec IO -var IO -num 1
Can not find -sec LINUXCNC -var NML_FILE -num 1
Can not find -sec EMC -var NML_FILE -num 1
HAL: ERROR: function 'mux2.mode-4' not found
custom.hal:10: addf failed
2901
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components
Kernel message information:
[12470.225472] I-pipe: Domain RTAI registered.
[12470.225487] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[12470.225492] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[12470.225574] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[12470.225578] PIPELINE layers:
[12470.225584] fbfbae20 9ac15d93 RTAI 200
[12470.225589] c085cb20 0 Linux 100
[12470.272853] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[12470.273168] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[12470.273180] RTAI[sched]: hard timer type/freq = APIC/12499938(Hz); default timing: periodic; linear timed lists.
[12470.273187] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 1800046000 hz.
[12470.273193] RTAI[sched]: timer setup = 999 ns, resched latency = 2943 ns.
[12470.273328] RTAI[usi]: enabled.
[12470.426917] RTAI[math]: loaded.
[12470.561451] hm2: loading Mesa HostMot2 driver version 0.15
[12470.568352] hm2_pci: loading Mesa AnyIO HostMot2 driver version 0.7
[12470.568415] hm2_pci 0000:03:00.0: PCI INT A -> GSI 20 (level, low) -> IRQ 20
[12470.568422] hm2_pci: discovered 5i23 at 0000:03:00.0
[12470.568538] hm2_5i23.0: firmware: requesting hm2/5i23/SVST8_12_2X7I47.BIT
[12470.751983] hm2/hm2_5i23.0: 72 I/O Pins used:
[12470.751994] hm2/hm2_5i23.0: IO Pin 000 (P2-01): StepGen #2, pin Step (Output)
[12470.752002] hm2/hm2_5i23.0: IO Pin 001 (P2-03): StepGen #2, pin Direction (Output)
[12470.752009] hm2/hm2_5i23.0: IO Pin 002 (P2-05): StepGen #3, pin Step (Output)
[12470.752016] hm2/hm2_5i23.0: IO Pin 003 (P2-07): StepGen #3, pin Direction (Output)
[12470.752023] hm2/hm2_5i23.0: IO Pin 004 (P2-09): Encoder #0, pin A (Input)
[12470.752030] hm2/hm2_5i23.0: IO Pin 005 (P2-11): Encoder #2, pin A (Input)
[12470.752037] hm2/hm2_5i23.0: IO Pin 006 (P2-13): Encoder #0, pin B (Input)
[12470.752044] hm2/hm2_5i23.0: IO Pin 007 (P2-15): Encoder #2, pin B (Input)
[12470.752051] hm2/hm2_5i23.0: IO Pin 008 (P2-17): Encoder #0, pin Index (Input)
[12470.752058] hm2/hm2_5i23.0: IO Pin 009 (P2-19): Encoder #2, pin Index (Input)
[12470.752065] hm2/hm2_5i23.0: IO Pin 010 (P2-21): Encoder #1, pin A (Input)
[12470.752071] hm2/hm2_5i23.0: IO Pin 011 (P2-23): Encoder #3, pin A (Input)
[12470.752078] hm2/hm2_5i23.0: IO Pin 012 (P2-25): Encoder #1, pin B (Input)
[12470.752085] hm2/hm2_5i23.0: IO Pin 013 (P2-27): Encoder #3, pin B (Input)
[12470.752092] hm2/hm2_5i23.0: IO Pin 014 (P2-29): Encoder #1, pin Index (Input)
[12470.752099] hm2/hm2_5i23.0: IO Pin 015 (P2-31): Encoder #3, pin Index (Input)
[12470.752106] hm2/hm2_5i23.0: IO Pin 016 (P2-33): IOPort
[12470.752111] hm2/hm2_5i23.0: IO Pin 017 (P2-35): IOPort
[12470.752117] hm2/hm2_5i23.0: IO Pin 018 (P2-37): IOPort
[12470.752123] hm2/hm2_5i23.0: IO Pin 019 (P2-39): IOPort
[12470.752129] hm2/hm2_5i23.0: IO Pin 020 (P2-41): StepGen #0, pin Step (Output)
[12470.752137] hm2/hm2_5i23.0: IO Pin 021 (P2-43): StepGen #0, pin Direction (Output)
[12470.752144] hm2/hm2_5i23.0: IO Pin 022 (P2-45): StepGen #1, pin Step (Output)
[12470.752151] hm2/hm2_5i23.0: IO Pin 023 (P2-47): StepGen #1, pin Direction (Output)
[12470.752157] hm2/hm2_5i23.0: IO Pin 024 (P3-01): IOPort
[12470.752163] hm2/hm2_5i23.0: IO Pin 025 (P3-03): IOPort
[12470.752169] hm2/hm2_5i23.0: IO Pin 026 (P3-05): IOPort
[12470.752174] hm2/hm2_5i23.0: IO Pin 027 (P3-07): IOPort
[12470.752180] hm2/hm2_5i23.0: IO Pin 028 (P3-09): IOPort
[12470.752186] hm2/hm2_5i23.0: IO Pin 029 (P3-11): IOPort
[12470.752192] hm2/hm2_5i23.0: IO Pin 030 (P3-13): IOPort
[12470.752197] hm2/hm2_5i23.0: IO Pin 031 (P3-15): IOPort
[12470.752203] hm2/hm2_5i23.0: IO Pin 032 (P3-17): IOPort
[12470.752209] hm2/hm2_5i23.0: IO Pin 033 (P3-19): IOPort
[12470.752214] hm2/hm2_5i23.0: IO Pin 034 (P3-21): IOPort
[12470.752220] hm2/hm2_5i23.0: IO Pin 035 (P3-23): IOPort
[12470.752226] hm2/hm2_5i23.0: IO Pin 036 (P3-25): IOPort
[12470.752232] hm2/hm2_5i23.0: IO Pin 037 (P3-27): IOPort
[12470.752237] hm2/hm2_5i23.0: IO Pin 038 (P3-29): IOPort
[12470.752243] hm2/hm2_5i23.0: IO Pin 039 (P3-31): IOPort
[12470.752249] hm2/hm2_5i23.0: IO Pin 040 (P3-33): IOPort
[12470.752254] hm2/hm2_5i23.0: IO Pin 041 (P3-35): IOPort
[12470.752260] hm2/hm2_5i23.0: IO Pin 042 (P3-37): IOPort
[12470.752266] hm2/hm2_5i23.0: IO Pin 043 (P3-39): IOPort
[12470.752272] hm2/hm2_5i23.0: IO Pin 044 (P3-41): IOPort
[12470.752277] hm2/hm2_5i23.0: IO Pin 045 (P3-43): IOPort
[12470.752283] hm2/hm2_5i23.0: IO Pin 046 (P3-45): IOPort
[12470.752289] hm2/hm2_5i23.0: IO Pin 047 (P3-47): IOPort
[12470.752295] hm2/hm2_5i23.0: IO Pin 048 (P4-01): IOPort
[12470.752300] hm2/hm2_5i23.0: IO Pin 049 (P4-03): IOPort
[12470.752306] hm2/hm2_5i23.0: IO Pin 050 (P4-05): IOPort
[12470.752312] hm2/hm2_5i23.0: IO Pin 051 (P4-07): IOPort
[12470.752317] hm2/hm2_5i23.0: IO Pin 052 (P4-09): IOPort
[12470.752323] hm2/hm2_5i23.0: IO Pin 053 (P4-11): IOPort
[12470.752329] hm2/hm2_5i23.0: IO Pin 054 (P4-13): IOPort
[12470.752334] hm2/hm2_5i23.0: IO Pin 055 (P4-15): IOPort
[12470.752340] hm2/hm2_5i23.0: IO Pin 056 (P4-17): IOPort
[12470.752346] hm2/hm2_5i23.0: IO Pin 057 (P4-19): IOPort
[12470.752352] hm2/hm2_5i23.0: IO Pin 058 (P4-21): IOPort
[12470.752357] hm2/hm2_5i23.0: IO Pin 059 (P4-23): IOPort
[12470.752363] hm2/hm2_5i23.0: IO Pin 060 (P4-25): IOPort
[12470.752369] hm2/hm2_5i23.0: IO Pin 061 (P4-27): IOPort
[12470.752375] hm2/hm2_5i23.0: IO Pin 062 (P4-29): IOPort
[12470.752380] hm2/hm2_5i23.0: IO Pin 063 (P4-31): IOPort
[12470.752386] hm2/hm2_5i23.0: IO Pin 064 (P4-33): IOPort
[12470.752392] hm2/hm2_5i23.0: IO Pin 065 (P4-35): IOPort
[12470.752397] hm2/hm2_5i23.0: IO Pin 066 (P4-37): IOPort
[12470.752403] hm2/hm2_5i23.0: IO Pin 067 (P4-39): IOPort
[12470.752409] hm2/hm2_5i23.0: IO Pin 068 (P4-41): IOPort
[12470.752415] hm2/hm2_5i23.0: IO Pin 069 (P4-43): IOPort
[12470.752420] hm2/hm2_5i23.0: IO Pin 070 (P4-45): IOPort
[12470.752426] hm2/hm2_5i23.0: IO Pin 071 (P4-47): IOPort
[12470.752656] hm2/hm2_5i23.0: registered
[12470.752661] hm2_5i23.0: initialized AnyIO board at 0000:03:00.0
[12472.077786] hm2_5i23.0: dropping AnyIO board at 0000:03:00.0
[12472.077799] hm2/hm2_5i23.0: unregistered
[12472.077832] hm2_pci 0000:03:00.0: PCI INT A disabled
[12472.079375] hm2_pci: driver unloaded
[12472.105051] hm2: unloading
[12472.247401] RTAI[math]: unloaded.
[12472.369747] SCHED releases registered named ALIEN RTGLBH
[12472.401285] RTAI[malloc]: unloaded.
[12472.500031] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[12472.505479] I-pipe: Domain RTAI unregistered.
[12472.505572] RTAI[hal]: unmounted.
-
sysrover
- Мастер
- Сообщения: 433
- Зарегистрирован: 23 янв 2012, 16:32
- Репутация: 90
- Откуда: Украина Житомир
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Так давай по порядку до муксов еще дойдем.
Вначале нужно сделать конфигурацию с 4 осями и шпинделем чтобы просто запустить станок, точнее двиглы.
Тоесть сделаем X Y Z A все в режиме степдир перемещение.
Я щас скопирую на A c Z но только пины поменяю
Вначале нужно сделать конфигурацию с 4 осями и шпинделем чтобы просто запустить станок, точнее двиглы.
Тоесть сделаем X Y Z A все в режиме степдир перемещение.
Я щас скопирую на A c Z но только пины поменяю
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Прутковый автомат Швейцарского типа с нуля
Не загружен компонент.sysrover писал(а): HAL: ERROR: function 'mux2.mode-4' not found
Давай по порядку, выполни пункт 1 и 2. Должна появится панель pyvcp.
Это хорошо. Можно даже две разные конфигурации по-началу сделать, а потом все объединить.sysrover писал(а):Так давай по порядку до муксов еще дойдем.Вначале нужно сделать конфигурацию с 4 осями и шпинделем чтобы просто запустить станок, точнее двиглы.Тоесть сделаем X Y Z A все в режиме степдир перемещение.Я щас скопирую на A c Z но только пины поменяю
