Модернизация фрезерного 6Р13Ф3-01

Тяжелые фрезерные станки по металлу.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

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

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

Я кажется знаю в чем дело:
halui.estop.activate выполняет постановку на Estop, но не удерживает на нем. Т.е. как только появилась 1 ставим на Estop, потом любым внешним действием его можно снять вне зависимости от того, какое значение на нем будет.

Связанно наверняка с тем, что иначе получится двоякая ситуация - два пина отвечают за одно и то же. А в hal в один и тот же пин нельзя записать два разных выхода, можно только через дополнительный компонент (логический или любой другой). Главное, чтобы не появлялось неразберихи.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Понятно
:bender:
freeform
Кандидат
Сообщения: 83
Зарегистрирован: 30 июн 2011, 00:02
Репутация: 7
Откуда: Москва
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение freeform »

Lexxa писал(а):В процессе реализации преобразователь сигналов резольвера в обычный квадратурный энкодер для нормального восприятия его EMC.
А зачем эти навороты? Почему просто не выкинуть резольвер и не поставить энкодер?
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Потому что это, во-первых, адский огород с креплением их на ШВП и станину. Штатных мест не предусмотрено конструкцией.
А во-вторых, они денег стоят достаточно дорого, которых лишних нету.
И в-третьих, резольвер механически значительно надежней энкодера.
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Китайцы наконец прислали переходник для CF карты.
Осталось ШРы намутить
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Итак, готова прошивка ResolverToEncoder, готова макетка. В понедельник сбока тестового образца!!!
Найден подопытный резольвер))
Теперь надо на Atmtga8 счетчик импульсов замутить и всех потестить, потом сравнить как со станком будет.
Кстати, 94% ПЛИС занято))
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

Ждем результатов!
ЗЫ А можешь фото этого чуда сделать? А то ПЛИС, резольвер, для меня это выглядит как пины HAL :D.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

канечна
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Я так понял для того чтобы заставить ПИД ЕМС регулировать скорость а не положение для трех координат надо

Код: Выделить всё

# Загружаем модуль "производная"
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.feedback
Теперь в пид будет входными данными:
1) Скорость, которую задает motion со всеми коррекциями на люфты и стандартными ограничениями
2) Ошибка скорости считанная с энкодера
Выходными данными:
1) Сигнал скорость на привод в явном виде.
2) Отклонение скорости от заданной

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

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

Lexxa писал(а):newsig xvel float
linkps ddt.1.out => xvel-fb
Это старая форма задания сигналов, сейчас все делается одной функцией net, но в принципе похоже на истину. Только обратную связь я бы все равно делал по положению, иначе будет копиться ошибка, причем я думаю достаточно быстро. Т.е. обратная связь pid правильная, но в axis.motor-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

Сообщение Lexxa »

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

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

Все правильно. Просто я запутанно написал :).
Главное не забыть в axis.motor-fb энкодер завести.
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Круто, вот это мне очень нравится
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Код: Выделить всё

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
И так по всем координатам
:bender:
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

Но, если есть внешний ПИД на приводе , внутренний ПИД EMC2 можно вообще не использовать ;)
Какие у тебя привода?
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

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

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Nick »

А что он сможет сделать? Ну заглючит встроенный ПИД, тогда ПИД от емс загонит на него максимальную нагрузку и хрен знает, что получится в итоге. Пусть лучше на Ferror встанет после такого и все ;).
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

Как и обещал фотка макета.
Дисплей WH1602C и микроконтроллер Atmega8 служат лишь для пересчета импульсов энкдера и отображения значения перемещения.
На неделе проверим ПЛИСку с сельсином и аналоговой половиной схемы от 16К20Ф3 и соберем макет аналогвой части.
Синий разъем - входные сигналы от аналоговой части.
Вложения
N-coder_counter-1.JPG (2214 просмотров) <a class='original' href='./download/file.php?id=4066&mode=view' target=_blank>Загрузить оригинал (123.11 КБ)</a>
:bender:
Аватара пользователя
Lexxa
Мастер
Сообщения: 2703
Зарегистрирован: 16 дек 2011, 16:48
Репутация: 319
Настоящее имя: Алексей
Откуда: ryazan
Контактная информация:

Re: Модернизация фрезерного 6Р13Ф3-01

Сообщение Lexxa »

ПЛИСка воде заработала как надо. Ща сделаем опорные синус/косинус 400 Гц, и соберем аналоговую часть. И подключим резольвер. дело пошло)
:bender:
Ответить

Вернуться в «Фрезерные станки по металлам»