EMC2 и гидропривод

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

Re: EMC2 и гидропривод

Сообщение Nick »

Попробуй:
1. добавить пару пустых строчек перед этой строкой, тогда точно увидим на нее ругается или нет.
2. Убрать names= в 10 и 11 строке. Судя по man lowpass этот параметр не обязательный.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и гидропривод

Сообщение Nick »

Это строка загружает компонент lowpass. Который по идее делает это Фильтр_нижних_частот.

Но его нужно к чему-то подключать, а так сама по себе строка смысла иметь не должна.
Аватара пользователя
ubey_bobra
Кандидат
Сообщения: 75
Зарегистрирован: 21 ноя 2010, 21:56
Репутация: 0
Откуда: г. Сосновый Бор Ленинградская обл.
Контактная информация:

Re: EMC2 и гидропривод

Сообщение ubey_bobra »

ну раз он необязательный пусть пока в сторонке посидит...
теперь бы таки разобраться чего писать в хале, чтобы научить емс:
1) принимать сигнал от энкодера(2 пина)
2) дать 1 пин разрешающего работу сигнала(+5 вольт) - необязательно но очень хотелось бы(не хочу подключать доп источники питания к лпт порту)
3) отдавать сигнал шим на какой нибудь пин порта...

а фильтр вижу смысл поставить только разве что на входы датчиков номе и е-стоп, чтобы наводки фильтровать.
p.s. Все гениальное просто, тогда когда оно известно и популярно. А в свое время людей жгли на костре, за то что они утверждали что земля круглая.
Аватара пользователя
ubey_bobra
Кандидат
Сообщения: 75
Зарегистрирован: 21 ноя 2010, 21:56
Репутация: 0
Откуда: г. Сосновый Бор Ленинградская обл.
Контактная информация:

Re: EMC2 и гидропривод

Сообщение ubey_bobra »

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

Re: EMC2 и гидропривод

Сообщение Nick »

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

Re: EMC2 и гидропривод

Сообщение Nick »

Можно взять за пример настройку stepconf для шим шпинделя.
Аватара пользователя
ubey_bobra
Кандидат
Сообщения: 75
Зарегистрирован: 21 ноя 2010, 21:56
Репутация: 0
Откуда: г. Сосновый Бор Ленинградская обл.
Контактная информация:

Re: EMC2 и гидропривод

Сообщение ubey_bobra »

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

Re: EMC2 и гидропривод

Сообщение Nick »

Запусти stepconf и поставь там пин на ШИМ шпинделя, остальные можешь вообще поотключать и будет нормальный пример конфига.

Хмммм, такая штука... для чтения шим энкодера походу нужна платка специальная... хотя сейчас еще уточню...
Аватара пользователя
ubey_bobra
Кандидат
Сообщения: 75
Зарегистрирован: 21 ноя 2010, 21:56
Репутация: 0
Откуда: г. Сосновый Бор Ленинградская обл.
Контактная информация:

Re: EMC2 и гидропривод

Сообщение ubey_bobra »

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

Re: EMC2 и гидропривод

Сообщение Nick »

там это в stepconf или во входе от энкодера?
Аватара пользователя
ubey_bobra
Кандидат
Сообщения: 75
Зарегистрирован: 21 ноя 2010, 21:56
Репутация: 0
Откуда: г. Сосновый Бор Ленинградская обл.
Контактная информация:

Re: EMC2 и гидропривод

Сообщение ubey_bobra »

там - между энкодером и машиной, либо другой вариант, это программный делитель.

вот собственно сделал конфиг
stanok.hal
(для просмотра содержимого нажмите на ссылку)
# Создан stepconf в Thu Feb 24 19:54:44 2011
# Все изменения в этом файле будут перезаписаны
# при следующем запуске stepconf
loadrt trivkins
loadrt [EMCMOT]EMCMOT base_period_nsec=[EMCMOT]BASE_PERIOD servo_period_nsec=[EMCMOT]SERVO_PERIOD num_joints=[TRAJ]AXES
loadrt probe_parport
loadrt hal_parport cfg="0x378 out "
setp parport.0.reset-time 5000
loadrt stepgen step_type=0,0,0
loadrt encoder num_chan=1
loadrt pwmgen output_type=0

addf parport.0.read base-thread
addf stepgen.make-pulses base-thread
addf encoder.update-counters 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 stepgen.update-freq servo-thread
addf pwmgen.update servo-thread

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

setp encoder.0.position-scale 20.000000
net spindle-position encoder.0.position => motion.spindle-revs
net spindle-velocity encoder.0.velocity => motion.spindle-speed-in
net spindle-index-enable encoder.0.index-enable <=> motion.spindle-index-enable
net spindle-phase-a encoder.0.phase-A
net spindle-phase-b encoder.0.phase-B
net spindle-index encoder.0.phase-Z

net spindle-pwm => parport.0.pin-01-out
net spindle-on => parport.0.pin-02-out
net xenable => parport.0.pin-03-out


net spindle-phase-a <= parport.0.pin-10-in
net spindle-phase-b <= parport.0.pin-11-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

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

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 estop-out <= iocontrol.0.user-enable-out
net estop-out => 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
с таким конфигом идет вот такая ругань
(для просмотра содержимого нажмите на ссылку)
Print file information:
RUN_IN_PLACE=no
EMC2_DIR=
EMC2_BIN_DIR=/usr/bin
EMC2_TCL_DIR=/usr/share/emc/tcl
EMC2_SCRIPT_DIR=
EMC2_RTLIB_DIR=/usr/realtime-2.6.32-122-rtai/modules/emc2
EMC2_CONFIG_DIR=
EMC2_LANG_DIR=/usr/share/emc/tcl/msgs
INIVAR=inivar
HALCMD=halcmd
EMC2_EMCSH=/usr/bin/wish8.5
EMC2 - 2.4.6
Machine configuration directory is '/home/emc/emc2/configs/stanok'
Machine configuration file is 'stanok.ini'
INIFILE=/home/emc/emc2/configs/stanok/stanok.ini
PARAMETER_FILE=emc.var
EMCMOT=motmod
EMCIO=io
TASK=milltask
HALUI=
DISPLAY=axis
NML_FILE=
Starting EMC2...
Starting EMC2 server program: emcsvr
Loading Real Time OS, RTAPI, and HAL_LIB modules
Starting EMC2 IO program: io
Shutting down and cleaning up EMC2...
Killing task emcsvr, PID=10631
Removing HAL_LIB, RTAPI, and Real Time OS modules
Removing NML shared memory segments
Cleanup done

Debug file information:
stanok.hal:34: Pin 'motion.spindle-on' was already linked to signal 'spindle-enable'
10631
PID TTY STAT TIME COMMAND
Stopping realtime threads
Unloading hal components

Kernel message information:
[23923.067667] I-pipe: Domain RTAI registered.
[23923.067674] RTAI[hal]: <3.8.1> mounted over IPIPE-NOTHREADS 2.6-03.
[23923.067676] RTAI[hal]: compiled with gcc version 4.4.3 (Ubuntu 4.4.3-4ubuntu5) .
[23923.067713] RTAI[hal]: mounted (IPIPE-NOTHREADS, IMMEDIATE (INTERNAL IRQs DISPATCHED), ISOL_CPUS_MASK: 0).
[23923.067715] PIPELINE layers:
[23923.067718] fe435e20 9ac15d93 RTAI 200
[23923.067720] c085cb20 0 Linux 100
[23923.086422] RTAI[malloc]: global heap size = 2097152 bytes, <BSD>.
[23923.086618] RTAI[sched]: IMMEDIATE, MP, USER/KERNEL SPACE: <with RTAI OWN KTASKs>, kstacks pool size = 524288 bytes.
[23923.086623] RTAI[sched]: hard timer type/freq = APIC/12525856(Hz); default timing: periodic; linear timed lists.
[23923.086627] RTAI[sched]: Linux timer freq = 250 (Hz), TimeBase freq = 2505039000 hz.
[23923.086629] RTAI[sched]: timer setup = 999 ns, resched latency = 2943 ns.
[23923.086703] RTAI[usi]: enabled.
[23923.129894] RTAI[math]: loaded.
[23923.188137] config string '0x378 out '
[23923.487060] RTAI[math]: unloaded.
[23923.520038] SCHED releases registered named ALIEN RTGLBH
[23923.552225] RTAI[malloc]: unloaded.
[23923.652034] RTAI[sched]: unloaded (forced hard/soft/hard transitions: traps 0, syscalls 0).
[23923.654973] I-pipe: Domain RTAI unregistered.
[23923.655020] RTAI[hal]: unmounted.
если правильно понимаю то ругаеться оно на то что пин движение шпинделя постоянно слинкован с сигналом шпиндель-разрешено. а вот к размышлениям ни к каким это меня не приводит...
p.s. Все гениальное просто, тогда когда оно известно и популярно. А в свое время людей жгли на костре, за то что они утверждали что земля круглая.
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: EMC2 и гидропривод

Сообщение Nick »

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

Re: EMC2 и гидропривод

Сообщение Nick »

Сделай конфиг с поддержкой MESA и установи управление осью через pwm. И потом возьми из его hal файла управление и "скрести" с управлением шпинделем :freak:.

У меня EMC2 стоит на нетбуке, который не включен в сеть, и стандартных конфиг перебрасывать гиморно....
Аватара пользователя
ubey_bobra
Кандидат
Сообщения: 75
Зарегистрирован: 21 ноя 2010, 21:56
Репутация: 0
Откуда: г. Сосновый Бор Ленинградская обл.
Контактная информация:

Re: EMC2 и гидропривод

Сообщение ubey_bobra »

что то у меня затык мозговой...

слишком разные конфиги получаются у станка с месой и станка на лпт порту...

попробовал свежим умом заного сделать конфиг при помощи pncconf.
выводы: для станка без использования плат меса, программа пнцконф не дает выставлять пины для исходящих сигналов шим, и входящих сигналов энкодера.
для станка с платой меса - можно назначать указанные выше пины, но назначаются они на пины самой платы.

покурил интеренет, накурил: с платами типа месы или плуто-п емс общается по шине передачи данных(либо pci, либо lpt-порт выступает в качестве шины передачи данных), и собственно ЕМС передает плате конкретные цифры сколько, куда шагать и с какой скоростью.

и напрашивается мне отсюда вывод: не смогу я без использования посторонних плат управлять ни чем)))
будем курить инет в сторону плуто-п(месу своими руками наврядли осилю)

вот есть маленькая просьбочка, у тебя вроде с англицким неплохо, сможешь на форуме(линухцнц) вопрос задать про реальность получения на выходе лпт-порта ШИМ-сигнала? а то может они давно уже написали конфиги, а мне с моим англицким непонять о чем они там гутарят)
p.s. Все гениальное просто, тогда когда оно известно и популярно. А в свое время людей жгли на костре, за то что они утверждали что земля круглая.
Аватара пользователя
ubey_bobra
Кандидат
Сообщения: 75
Зарегистрирован: 21 ноя 2010, 21:56
Репутация: 0
Откуда: г. Сосновый Бор Ленинградская обл.
Контактная информация:

Re: EMC2 и гидропривод

Сообщение ubey_bobra »

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

Re: EMC2 и гидропривод

Сообщение Nick »

На сколько я понял, выход ШИМ получить можно, его мы и получаем например при управлении шпинделем. Но со входом несколько сложнее, т.к. нет возможности непрерывно следить за lpt портом, а только через определенный промежуток времени - base period, то мы не можем быть уверены в том, что полученный ШИМ сигнал вычисляется правильно.

Например, если ШИМ от энкодера будет обладать большой частотой, мы можем просто пропускать некоторые сигналы. И точность определения ширины каждого импульса ограничена base period-ом с двух сторон, т.е. это как минимум 4 base period. Поэтому не получится читать ШИМ от энкодера через LPT и нужна отдельная плата.

ИМХО с MESA будет проще разобраться. Нужно ее прошить на Hostmot2, а дальше все должно настроится через pncconf.

На счет звуковухи - наверняка можно, "но стоить это вам будет ... очень дорого" :)
Аватара пользователя
ubey_bobra
Кандидат
Сообщения: 75
Зарегистрирован: 21 ноя 2010, 21:56
Репутация: 0
Откуда: г. Сосновый Бор Ленинградская обл.
Контактная информация:

Re: EMC2 и гидропривод

Сообщение ubey_bobra »

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

Re: EMC2 и гидропривод

Сообщение Nick »

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

Re: EMC2 и гидропривод

Сообщение Nick »

Я понял почему может быть затык с LPT и сервой:
1. Серве нужен управляющий сигнал в ШИМ
2. Серва выдает обратную связь в виде ШИМ

3. ЕМС2 управляет сервой по выходным пинам используя PID.
4. Для PID нужна обратная связь.

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

Re: EMC2 и гидропривод

Сообщение Nick »

Хотя, наверное я не прав. Сейчас попробую наклепать hal config...
Ответить

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