Модернизация фрезерного 6Р13Ф3-01
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
halcmd setp halui.estop.activate 1 - ставит на естоп
halcmd setp halui.estop.reset 1 снимает естоп.
Оно и работало.
Не работала связка
-------|/AmpRD|--------------------(Estop)------------
Estop = halui.estop.activate
когда AmpRD до загрузки EMC снять.
При том, что в hal-метре halui.estop.activate был true, а estop был снят.
По идее такая схема должна практически мгновенно ставить станок обратно на естоп
halcmd setp halui.estop.reset 1 снимает естоп.
Оно и работало.
Не работала связка
-------|/AmpRD|--------------------(Estop)------------
Estop = halui.estop.activate
когда AmpRD до загрузки EMC снять.
При том, что в hal-метре halui.estop.activate был true, а estop был снят.
По идее такая схема должна практически мгновенно ставить станок обратно на естоп
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Я кажется знаю в чем дело:
halui.estop.activate выполняет постановку на Estop, но не удерживает на нем. Т.е. как только появилась 1 ставим на Estop, потом любым внешним действием его можно снять вне зависимости от того, какое значение на нем будет.
Связанно наверняка с тем, что иначе получится двоякая ситуация - два пина отвечают за одно и то же. А в hal в один и тот же пин нельзя записать два разных выхода, можно только через дополнительный компонент (логический или любой другой). Главное, чтобы не появлялось неразберихи.
halui.estop.activate выполняет постановку на Estop, но не удерживает на нем. Т.е. как только появилась 1 ставим на Estop, потом любым внешним действием его можно снять вне зависимости от того, какое значение на нем будет.
Связанно наверняка с тем, что иначе получится двоякая ситуация - два пина отвечают за одно и то же. А в hal в один и тот же пин нельзя записать два разных выхода, можно только через дополнительный компонент (логический или любой другой). Главное, чтобы не появлялось неразберихи.
-
freeform
- Кандидат
- Сообщения: 83
- Зарегистрирован: 30 июн 2011, 00:02
- Репутация: 7
- Откуда: Москва
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
А зачем эти навороты? Почему просто не выкинуть резольвер и не поставить энкодер?Lexxa писал(а):В процессе реализации преобразователь сигналов резольвера в обычный квадратурный энкодер для нормального восприятия его EMC.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Потому что это, во-первых, адский огород с креплением их на ШВП и станину. Штатных мест не предусмотрено конструкцией.
А во-вторых, они денег стоят достаточно дорого, которых лишних нету.
И в-третьих, резольвер механически значительно надежней энкодера.
А во-вторых, они денег стоят достаточно дорого, которых лишних нету.
И в-третьих, резольвер механически значительно надежней энкодера.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Китайцы наконец прислали переходник для CF карты.
Осталось ШРы намутить
Осталось ШРы намутить
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Итак, готова прошивка ResolverToEncoder, готова макетка. В понедельник сбока тестового образца!!!
Найден подопытный резольвер))
Теперь надо на Atmtga8 счетчик импульсов замутить и всех потестить, потом сравнить как со станком будет.
Кстати, 94% ПЛИС занято))
Найден подопытный резольвер))
Теперь надо на Atmtga8 счетчик импульсов замутить и всех потестить, потом сравнить как со станком будет.
Кстати, 94% ПЛИС занято))
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Ждем результатов!
ЗЫ А можешь фото этого чуда сделать? А то ПЛИС, резольвер, для меня это выглядит как пины HAL
.
ЗЫ А можешь фото этого чуда сделать? А то ПЛИС, резольвер, для меня это выглядит как пины HAL
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Я так понял для того чтобы заставить ПИД ЕМС регулировать скорость а не положение для трех координат надо
Привязать к ПИД:
Теперь в пид будет входными данными:
1) Скорость, которую задает motion со всеми коррекциями на люфты и стандартными ограничениями
2) Ошибка скорости считанная с энкодера
Выходными данными:
1) Сигнал скорость на привод в явном виде.
2) Отклонение скорости от заданной
Правильно?
Код: Выделить всё
# Загружаем модуль "производная"
loadrt ddt count=6
# Скорость и ошибка скорости Х
addf ddt.0 servo-thread
addf ddt.1 servo-thread
newsig xvel float
newsig xvel-fb float
linksp xpos-cmd => ddt.0.in
linkps ddt.0.out => xvel
linksp xpos-fb => ddt.1.in
linkps ddt.1.out => xvel-fb
# Скорость и ошибка скорости Y
addf ddt.2 servo-thread
addf ddt.3 servo-thread
newsig yvel float
newsig yvel-fb float
linksp ypos-cmd => ddt.2.in
linkps ddt.2.out => yvel
linksp ypos-fb => ddt.3.in
linkps ddt.3.out => yvel-fb
# Скорость и ошибка скорости Z
addf ddt.4 servo-thread
addf ddt.5 servo-thread
newsig zvel float
newsig zvel-fb float
linksp zpos-cmd => ddt.4.in
linkps ddt.4.out => zvel
linksp zpos-fb => ddt.5.in
linkps ddt.5.out => zvel-fb
Код: Выделить всё
net xvel => pid.x.command
net xvel-fb => pid.x.feedback
net yvel => pid.x.command
net yvel-fb => pid.x.feedback
net zvel => pid.x.command
net zvel-fb => pid.x.feedback1) Скорость, которую задает motion со всеми коррекциями на люфты и стандартными ограничениями
2) Ошибка скорости считанная с энкодера
Выходными данными:
1) Сигнал скорость на привод в явном виде.
2) Отклонение скорости от заданной
Правильно?
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Это старая форма задания сигналов, сейчас все делается одной функцией net, но в принципе похоже на истину. Только обратную связь я бы все равно делал по положению, иначе будет копиться ошибка, причем я думаю достаточно быстро. Т.е. обратная связь pid правильная, но в axis.motor-fb нужно положение.Lexxa писал(а):newsig xvel float
linkps ddt.1.out => xvel-fb
Код: Выделить всё
# Загружаем модуль "производная"
loadrt ddt count=6
# Скорость и ошибка скорости Х
addf ddt.0 servo-thread
addf ddt.1 servo-thread
net xpos-cmd => ddt.0.in
net xvel ddt.0.out => => pid.x.command
net xpos-fb xpos-fb => ddt.1.in
net xvel-fb ddt.1.out => pid.x.feedback- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Не понял. Как будет копиться ошибка?
axis.motor-fb если мне не изменяет память берется с энкодера.
Т.е. вроде как получается, что мухи отдельно, а котлеты отдельно.
motion имеет обратную связь по положению с энкодера и занимается планированием траектории, а PID обратную связь по скорости и регулирует только скорость.
axis.motor-fb если мне не изменяет память берется с энкодера.
Т.е. вроде как получается, что мухи отдельно, а котлеты отдельно.
motion имеет обратную связь по положению с энкодера и занимается планированием траектории, а PID обратную связь по скорости и регулирует только скорость.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Все правильно. Просто я запутанно написал
.
Главное не забыть в axis.motor-fb энкодер завести.
Главное не забыть в axis.motor-fb энкодер завести.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Код: Выделить всё
net xenable => pid.x.enable
net xoutput pid.x.output => hm2_5i20.0.pwmgen.01.value
#net xpos-cmd axis.0.motor-pos-cmd => pid.x.command - [b]убираем[/b]
setp hm2_5i20.0.encoder.01.counter-mode 0
setp hm2_5i20.0.encoder.01.filter 1
setp hm2_5i20.0.encoder.01.index-invert 0
setp hm2_5i20.0.encoder.01.index-mask 0
setp hm2_5i20.0.encoder.01.index-mask-invert 0
setp hm2_5i20.0.encoder.01.scale [AXIS_0]INPUT_SCALE
net xpos-fb <= hm2_5i20.0.encoder.01.position
#net xpos-fb => pid.x.feedback - [b]убираем[/b]
net xpos-fb => axis.0.motor-pos-fb
net x-index-enable axis.0.index-enable <=> hm2_5i20.0.encoder.01.index-enableКод: Выделить всё
loadrt ddt count=6
addf ddt.0 servo-thread
addf ddt.1 servo-thread
net xpos-cmd => ddt.0.in
net xvel ddt.0.out => => pid.x.command
net xpos-fb xpos-fb => ddt.1.in
net xvel-fb ddt.1.out => pid.x.feedback- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Но, если есть внешний ПИД на приводе , внутренний ПИД EMC2 можно вообще не использовать 
Какие у тебя привода?
Какие у тебя привода?
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
У меня КЕМРОНы болгарские.
Я хочу оставить ПИД ЕМС2, чтоб он на всякий случай следил и дублировал. Мало ли что.
Хотя попробовать без ПИД ЕМС тоже надо.
Я хочу оставить ПИД ЕМС2, чтоб он на всякий случай следил и дублировал. Мало ли что.
Хотя попробовать без ПИД ЕМС тоже надо.
- Nick
- Мастер
- Сообщения: 22776
- Зарегистрирован: 23 ноя 2009, 16:45
- Репутация: 1735
- Заслуга: Developer
- Откуда: Gatchina, Saint-Petersburg distr., Russia
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
А что он сможет сделать? Ну заглючит встроенный ПИД, тогда ПИД от емс загонит на него максимальную нагрузку и хрен знает, что получится в итоге. Пусть лучше на Ferror встанет после такого и все
.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
Как и обещал фотка макета.
Дисплей WH1602C и микроконтроллер Atmega8 служат лишь для пересчета импульсов энкдера и отображения значения перемещения.
На неделе проверим ПЛИСку с сельсином и аналоговой половиной схемы от 16К20Ф3 и соберем макет аналогвой части.
Синий разъем - входные сигналы от аналоговой части.
Дисплей WH1602C и микроконтроллер Atmega8 служат лишь для пересчета импульсов энкдера и отображения значения перемещения.
На неделе проверим ПЛИСку с сельсином и аналоговой половиной схемы от 16К20Ф3 и соберем макет аналогвой части.
Синий разъем - входные сигналы от аналоговой части.
- Lexxa
- Мастер
- Сообщения: 2703
- Зарегистрирован: 16 дек 2011, 16:48
- Репутация: 319
- Настоящее имя: Алексей
- Откуда: ryazan
- Контактная информация:
Re: Модернизация фрезерного 6Р13Ф3-01
ПЛИСка воде заработала как надо. Ща сделаем опорные синус/косинус 400 Гц, и соберем аналоговую часть. И подключим резольвер. дело пошло)
