Страница 2 из 2
Re: flying saw
Добавлено: 30 авг 2013, 09:27
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, но тут надо больше данных, чтобы точнее расписать схему.
Re: flying saw
Добавлено: 30 авг 2013, 22:22
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 для пилы и еще чего нибудь нужно.
Re: flying saw
Добавлено: 30 авг 2013, 23:13
VitalikD
Извините, отвечал несколько сумбурно, приходится сто дел делать одновременно.
Nick писал(а):1. надо определить точку старта.
Да, требуется расчет точки старта в зависимости от скорости. Она будет уходить назад при увеличении скорости. Тут нужно еще сообразить алгоритм, но это, пожалуй, не так сложно. Нужно немножко порисовать.
Nick писал(а):
1. Это можно через компонент integ - считаем скорость энкодера, как только проехали нужное расстояние начинаем рез.
Хотя integ работает в servo-thread - это около 1кГц, его скорости может и не хватить...
Но в принципе, если выдавать задание на привод с поправкой на расстояние т.е. задание на привод оси будет положение энкодера ленты, тогда привод догонит материал.
2. насколько точная должна быть синхронность? можно попробовать через G33 - Spindle-synchronized motion... надо по подробнее все это обмозговать...
servo-thread это частота коррекции траектории ? Если так, то имеем пару десятков импульсов прохода за это время. Приметно такая точность синхронизации и нужна. И по идее достижима если это коррекция и с учетом инерционности системы. Поправьте, если неправильно.
nkp писал(а):
мне кажется самым простым будет:
сделать точку старта=длине_детали
Нет, это неприемлимо. Максимальной производительности так не получится, а это самый важный параметр.
nkp писал(а):
имхо - может не стоит ж-код сюда вклинивать
Да, хотелось бы без него.
Длина изменяемый параметр. Скорость, пожалуй, можно считать более-менее постояноой ( но изменяемой ). Бывают переходы при изменении, но это настроечный режим и в работе можно не учитывать. Хотя, пожалуй, это должно отрабатываться, чтобы не вывалиться по ошибке синхронизации или бахнуть пилу. С контроллером первый рез отрабатывается на старте, на ускоряющейся подаче и это работает. Запас по ходу каретки есть.
Re: flying saw
Добавлено: 31 авг 2013, 07:57
nkp
VitalikD писал(а):И какой контроллер лучше взять для двух энкодеров и одного цап
оптимальный набор для емс -
Mesa 5i25+
Mesa 7i77 :
это 6 энкодеров и 6 цап и 48 оптоизолированых IO
(но можно и другие платы меса использовать)
VitalikD писал(а):Еще они зачем-то плавно увеличивают ускорение
в емс сейчас есть попытки встроить
S-разгон_торможение
VitalikD писал(а):servo-thread это частота коррекции траектории
servo-thread - это програмный поток , с установленной частотой которого происходит чтение-обновление всех компонентов Hal,
которые ратотают в этом потоке (а это 90% всех компонентов : энкодеров, входов-выходов, и т.д.)
VitalikD писал(а):Нет, это неприемлимо. Максимальной производительности так не получится, а это самый важный параметр.
согласен...
для отработки алгоритма наверно можно начать и с такой точкой старта , постепенно увеличивая скорость системы и "отодвигая" точку старта...
с синхронизацией скоростей по разнице показаний энкодеров (и как итог - корректирующая величина на скорость каретки в виде отрицательной ОС) -
местоположение точки старта не так критично ...
Re: flying saw
Добавлено: 31 авг 2013, 19:57
Nick
S-разгон штука хорошая, но максимальную скорость это снизит (хотя может и не значительно).
Его надо будет использовать только на холостых прогонах, пока пила еще не в материале.
На точку старта надо будет формулу написать, и реализовать ее на hal и потом вписать ее в предложенную схему.
Что пила автономная это супер

. Только наверное надо будет придумать отработку аварийной ситуации - когда приближаемся к концу оси, а сигнала об окончании реза все нет... А вообще, что в таких случаях происходит?
Re: flying saw
Добавлено: 31 авг 2013, 23:10
nkp
вот такой несложный макет можно использовать для настройки подобной системы...
одна серва имитирует движение ленты,вторая - каретки...
энкодер между ними (на минимальное количество тиков) - показывает рассогласование:
его вал закреплен на одном маховике, а корпус на другом...
вопросы:
возможна ли передача сигналов энкодера через скользящий контакт??
может как по другому снять рассогласование (не теряя точности)??
Re: flying saw
Добавлено: 01 сен 2013, 13:29
VitalikD
Nick писал(а):S-разгон штука хорошая, но максимальную скорость это снизит (хотя может и не значительно).
Его надо будет использовать только на холостых прогонах, пока пила еще не в материале.
Когда пила в работе, разгонов нет.
Nick писал(а):А вообще, что в таких случаях происходит?
Аварийная остановка. Материал успевает замяться на роликах и его приходится вырезать по всей длине линии. Неприятно, но бывает. Особенно когда помирает мастер энкодер.
nkp писал(а):
вот такой несложный макет можно использовать для настройки подобной системы...
Да, я тоже подумываю о макете. Только нечем пока сервой управлять. Может попробую поставить маховичек на шаговик, мастер энкодер можно запустить програмно, рассогласование мерить аппаратно по стробу сигнала включения пилы. Нужно выдрать время поизучать сам линуксснс, а то я пока не соберу картину в кучу.
Re: flying saw
Добавлено: 01 сен 2013, 21:13
Nick
nkp писал(а):может как по другому снять рассогласование (не теряя точности)??
Два энкодера на каждую часть. И вообще можно просто брать показания от энкодеров серв и вычислять рассогласование

. Механически их вовсе не обязательно соединять. Все равно показания энкодеров будем читать раз в сервотрид.
VitalikD,
VitalikD,
VitalikD,
VitalikD писал(а):Да, я тоже подумываю о макете. Только нечем пока сервой управлять. Может попробую поставить маховичек на шаговик, мастер энкодер можно запустить програмно, рассогласование мерить аппаратно по стробу сигнала включения пилы
А зачем шаговик? Лучше попробовать погонять серву... Главное, получить нормальную обратную связь от реальной сервы, которая гоняет пилу.
Сделать имитацию энкодера главного конвейера не вопрос - он же на постоянной скорости работает? Для этого есть компонент sim encoder.
http://linuxcnc.org/docs/html/man/man9/ ... der.9.html
И тогда можно будет рассматривать рассогласование в виде красивых графиков в halscope типо вот такого
16К20Т1 -модернизация с LINUXCNC #40
Re: flying saw
Добавлено: 01 сен 2013, 21:29
nkp
тогда вообще простой макет получается - серва одна и всё

Re: flying saw
Добавлено: 01 сен 2013, 22:19
VitalikD
А какие могут быть проблемы с сервой? Сервоуправление программа то отрабатывает, проверено. Получается проверять можно вообще программно. Энкодер программный, на выход шаговик (без физического подключения) и рассогласование с длиной можно смотреть программно, поскольку обратные связи отсутствуют. Мелкого сервопривода для экспериментов нет, большие все заняты и к трем фазам поначалу тащиться неохота и месу брать пока не заработает на макете не хочется. Задача то по внешней обвязке элементарная, главное подружить алгоритм с программой. Еще такой вопрос, опрос месовского железа получается раз в период сервотреда. То есть счетчики месы работают быстрее сервотреда, но результат снимается с его периодом. Правильно? А как работает цап, устанавливается тоже с частотой сервотреда, или передается предполагаемая кривая на период сервотреда? Не могу прикинуть точность управления с месой.
Re: flying saw
Добавлено: 03 сен 2013, 11:12
Nick
Все только раз в серво период и опрос и установка ЦАП. В принципе, при желании можно сервотрид ускорить и выполнять его не раз в 1 000 000нс, а чаще.
Эксперимент с сервой нужен именно для определения рассогласования. В случае с шаговиком рассогласования не будет, т.к. он на обратную связь выдает фактически тоже, что и получил (ну с некоторым допущением). На самом деле он выдает сколько он шагов нашагал, а это напрямую зависит от задания и ускорения.
В принципе алгоритм можно оттестировать вообще без оборудования, сравнивая выходы команды привода и входящего энкодера.
Re: flying saw
Добавлено: 03 сен 2013, 12:48
michael-yurov
Nick писал(а): В принципе, при желании можно сервотрид ускорить и выполнять его не раз в 1 000 000нс, а чаще.
Для такой задачи было бы очень кстати. Если это получится сделать, то и задачу точно можно будет решить силами EMC.
т.к. даже если теоретически частоты и достаточно - все же настройки ПИД придется несколько "зализать", чтобы не было паразитных всплесков, а это в свою очередь сильно отразится на скорости реакции.
Re: flying saw
Добавлено: 03 сен 2013, 13:07
Алексс
зачем в этой схеме компьютер + EMC ?
PLC + серва = готовое решение.
типа такого
PS: а че, ютуб не вставляется уже ?
PPS:
https://www.youtube.com/watch?v=QBtrFDoqWTM
и правда вставляется...