flying saw

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

Re: flying saw

Сообщение Nick »

Предлагаю такую схему:

1. берем положение энкодера ленты и заводим на компонент mod - деление с остатком (что-то такого компонента я не нахожу, но его написать - 5 минут)

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

net mod-in <= encoder.1.position 
net mod-in <= mod.0.in 
setp mod.0.div [длинна куска] 
2. вывод с mod отправляем в limit1 - чтобы ограничить рабочую область:

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

net mod-out <= mod.0.out
net mod-out => limit1.0.in
setp limit1.0.min 0 # значение минимальной точки для оси, чтобы за предел не выехать
setp limit1.0.max 1000 # на всякий случай можно ограничить и верхний предел 
3. И выход с limit подаем напрямую в pid - получим то, что надо.

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

net cmd <= limit1.0.out
net cmd => pid.0.command
4. Также можно управлять поперечным перемещением пилы, ей можно сделать задержку и scale:

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

net cmd => scale.0.in
setp scale.0.gain .1
setp scale.0.offset -100
net y-cmd <= scale.0.out 
net y-cmd => pid.1.command
Также я так понимаю, что для отхода назад, потребуется опускать пилу, это можно сделать через wcomp, но тут надо больше данных, чтобы точнее расписать схему.
VitalikD
Мастер
Сообщения: 305
Зарегистрирован: 29 авг 2013, 20:17
Репутация: 41
Контактная информация:

Re: flying saw

Сообщение VitalikD »

Nick
1,2,3, спасибо, буду разбираться
4) пилой управлять не нужно, туда сигнал реза, оттуда сигнал конца реза.
Еще они зачем-то плавно увеличивают ускорение, пишут, что меньше износ оборудования, но почему так не совсем понятно ( http://www.motrona.eu/PDF/Fs701_e.pdf , стр 6). Так можно производные скорости до седьмого колена склонять, но хотелось бы для сравнения и такое. Хотя сименс не заморачивается ( https://a248.e.akamai.net/cache.automat ... w_V2-0.pdf , стр7)
И какой контроллер лучше взять для двух энкодеров и одного цап? Остальное управляется по последовательной шине без особого реалтайма. Хотя еще несколько io для пилы и еще чего нибудь нужно.
VitalikD
Мастер
Сообщения: 305
Зарегистрирован: 29 авг 2013, 20:17
Репутация: 41
Контактная информация:

Re: flying saw

Сообщение VitalikD »

Извините, отвечал несколько сумбурно, приходится сто дел делать одновременно.
Nick писал(а):1. надо определить точку старта.
Да, требуется расчет точки старта в зависимости от скорости. Она будет уходить назад при увеличении скорости. Тут нужно еще сообразить алгоритм, но это, пожалуй, не так сложно. Нужно немножко порисовать.
Nick писал(а): 1. Это можно через компонент integ - считаем скорость энкодера, как только проехали нужное расстояние начинаем рез.
Хотя integ работает в servo-thread - это около 1кГц, его скорости может и не хватить...
Но в принципе, если выдавать задание на привод с поправкой на расстояние т.е. задание на привод оси будет положение энкодера ленты, тогда привод догонит материал.
2. насколько точная должна быть синхронность? можно попробовать через G33 - Spindle-synchronized motion... надо по подробнее все это обмозговать...
servo-thread это частота коррекции траектории ? Если так, то имеем пару десятков импульсов прохода за это время. Приметно такая точность синхронизации и нужна. И по идее достижима если это коррекция и с учетом инерционности системы. Поправьте, если неправильно.
nkp писал(а): мне кажется самым простым будет:
сделать точку старта=длине_детали
Нет, это неприемлимо. Максимальной производительности так не получится, а это самый важный параметр.
nkp писал(а): имхо - может не стоит ж-код сюда вклинивать
Да, хотелось бы без него.

Длина изменяемый параметр. Скорость, пожалуй, можно считать более-менее постояноой ( но изменяемой ). Бывают переходы при изменении, но это настроечный режим и в работе можно не учитывать. Хотя, пожалуй, это должно отрабатываться, чтобы не вывалиться по ошибке синхронизации или бахнуть пилу. С контроллером первый рез отрабатывается на старте, на ускоряющейся подаче и это работает. Запас по ходу каретки есть.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: flying saw

Сообщение nkp »

VitalikD писал(а):И какой контроллер лучше взять для двух энкодеров и одного цап
оптимальный набор для емс - Mesa 5i25+ Mesa 7i77 :
это 6 энкодеров и 6 цап и 48 оптоизолированых IO
(но можно и другие платы меса использовать)
VitalikD писал(а):Еще они зачем-то плавно увеличивают ускорение
в емс сейчас есть попытки встроить S-разгон_торможение
VitalikD писал(а):servo-thread это частота коррекции траектории
servo-thread - это програмный поток , с установленной частотой которого происходит чтение-обновление всех компонентов Hal,
которые ратотают в этом потоке (а это 90% всех компонентов : энкодеров, входов-выходов, и т.д.)
VitalikD писал(а):Нет, это неприемлимо. Максимальной производительности так не получится, а это самый важный параметр.
согласен...
для отработки алгоритма наверно можно начать и с такой точкой старта , постепенно увеличивая скорость системы и "отодвигая" точку старта...
с синхронизацией скоростей по разнице показаний энкодеров (и как итог - корректирующая величина на скорость каретки в виде отрицательной ОС) -
местоположение точки старта не так критично ...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: flying saw

Сообщение Nick »

S-разгон штука хорошая, но максимальную скорость это снизит (хотя может и не значительно).
Его надо будет использовать только на холостых прогонах, пока пила еще не в материале.

На точку старта надо будет формулу написать, и реализовать ее на hal и потом вписать ее в предложенную схему.

Что пила автономная это супер :). Только наверное надо будет придумать отработку аварийной ситуации - когда приближаемся к концу оси, а сигнала об окончании реза все нет... А вообще, что в таких случаях происходит?
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: flying saw

Сообщение nkp »

вот такой несложный макет можно использовать для настройки подобной системы...
одна серва имитирует движение ленты,вторая - каретки...
энкодер между ними (на минимальное количество тиков) - показывает рассогласование:
его вал закреплен на одном маховике, а корпус на другом...
вопросы:
возможна ли передача сигналов энкодера через скользящий контакт??
может как по другому снять рассогласование (не теряя точности)??
VitalikD
Мастер
Сообщения: 305
Зарегистрирован: 29 авг 2013, 20:17
Репутация: 41
Контактная информация:

Re: flying saw

Сообщение VitalikD »

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

Re: flying saw

Сообщение Nick »

nkp писал(а):может как по другому снять рассогласование (не теряя точности)??
Два энкодера на каждую часть. И вообще можно просто брать показания от энкодеров серв и вычислять рассогласование :). Механически их вовсе не обязательно соединять. Все равно показания энкодеров будем читать раз в сервотрид.

VitalikD, VitalikD, VitalikD,
VitalikD писал(а):Да, я тоже подумываю о макете. Только нечем пока сервой управлять. Может попробую поставить маховичек на шаговик, мастер энкодер можно запустить програмно, рассогласование мерить аппаратно по стробу сигнала включения пилы
А зачем шаговик? Лучше попробовать погонять серву... Главное, получить нормальную обратную связь от реальной сервы, которая гоняет пилу.
Сделать имитацию энкодера главного конвейера не вопрос - он же на постоянной скорости работает? Для этого есть компонент sim encoder.
http://linuxcnc.org/docs/html/man/man9/ ... der.9.html

И тогда можно будет рассматривать рассогласование в виде красивых графиков в halscope типо вот такого 16К20Т1 -модернизация с LINUXCNC #40
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: flying saw

Сообщение nkp »

тогда вообще простой макет получается - серва одна и всё :freak:
VitalikD
Мастер
Сообщения: 305
Зарегистрирован: 29 авг 2013, 20:17
Репутация: 41
Контактная информация:

Re: flying saw

Сообщение VitalikD »

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

Re: flying saw

Сообщение Nick »

Все только раз в серво период и опрос и установка ЦАП. В принципе, при желании можно сервотрид ускорить и выполнять его не раз в 1 000 000нс, а чаще.

Эксперимент с сервой нужен именно для определения рассогласования. В случае с шаговиком рассогласования не будет, т.к. он на обратную связь выдает фактически тоже, что и получил (ну с некоторым допущением). На самом деле он выдает сколько он шагов нашагал, а это напрямую зависит от задания и ускорения.

В принципе алгоритм можно оттестировать вообще без оборудования, сравнивая выходы команды привода и входящего энкодера.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11731
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: flying saw

Сообщение michael-yurov »

Nick писал(а): В принципе, при желании можно сервотрид ускорить и выполнять его не раз в 1 000 000нс, а чаще.
Для такой задачи было бы очень кстати. Если это получится сделать, то и задачу точно можно будет решить силами EMC.
т.к. даже если теоретически частоты и достаточно - все же настройки ПИД придется несколько "зализать", чтобы не было паразитных всплесков, а это в свою очередь сильно отразится на скорости реакции.
Аватара пользователя
Алексс
Почётный участник
Почётный участник
Сообщения: 2210
Зарегистрирован: 20 июл 2012, 15:49
Репутация: 266
Заслуга: IQ32
Настоящее имя: Алексей
Откуда: Прага
Контактная информация:

Re: flying saw

Сообщение Алексс »

зачем в этой схеме компьютер + EMC ?
PLC + серва = готовое решение.

типа такого

PS: а че, ютуб не вставляется уже ? :?

PPS:
https://www.youtube.com/watch?v=QBtrFDoqWTM

и правда вставляется...
Последний раз редактировалось Алексс 03 сен 2013, 16:20, всего редактировалось 2 раза.
Каждая собака, бегущая на поводке впереди хозяина, думает, что ведет его за собой.
Ответить

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