Страница 1 из 2

Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 19:28
Alex1982
День добрый.
Интересно сделать систему обратной связи по линейкам для ЧПУ или начать, чтобы кто-то подхватил (готов со своей стороны помочь в написании кода для контролера, по мере сил). Так сложилось, что у меня уже есть такая система, поэтому интерес у меня скорее академический.

Основная идея, получить блок, который реализует обратную связь по линейкам/энкодерам для контролеров и программой ЧПУ без обратной связи с минимальными фин. затратами, с кодом под GPL. Данная идея возникла случайно, благодаря aftaev и моему, замечу не скромному оптимизму :D, что это можно сделать.

Хотелось бы в общих чертах, понять как все это работает.
У меня есть свои мысли по данному поводу, буду благодарен если Вы подтвердите или опровергните их. Может расскажите о подводных камнях, любой помощи буду признателен.

Отбросим такие мелочи, как контролер, библиотеки, код и т.д. Интересна сама суть процесса, вот как она мне видеться:
1. Между контролером ЧПУ и драйвером шагового двигателя ставится блок управления, который вносит корректировку в движение по каждой оси.
2. От контролера заводим в блок управления STEP\DIR\ENABLE, из блока управления пробрасываем STEP\DIR\ENABLE.
3. К блоку подключаем 3 линейки.

Контролер генерирует импульсы STEP\DIR которые передает в блок управления. Блок управления пробрасывает каждый импульс на драйвер шагового двигателя, после каждого импульса проверяет положение линейки, добавляет импульсы (возможно через ПИД, пока не понимаю, как его прикрутить).

Немного подробнее, импульсы от контролера идут с частотой в зависимости от скорости перемещения. Когда мы отправляем G0 X100, то Mach3 берет данные по максимальной скорости оборотов для G0. К примеру 1000 оборотов, ШВП пусть будет с шагом 5мм, получаем 5 метров в минуту и около 84мм в секуду. В одном миллиметре пусть будет 320 шагов (1/16 микрошаг), получается в секунду при такой скорости нужно сформировать 26880 импульсов, пока грубо округлим до 27Khz. Получается каждые 0,000037c или 37 миллисекунд идет импульс, определенной длины.

Блок управления хранит в себе настройки по кол-во шагов в 1мм.
Пробрасывая каждый шаг на драйвер шагового двигателя у нас есть около 37 миллисекунд до следующего импульса, мы смотрим после каждого шага.

Рассмотрим линейку.
Максимальная скорость линейки 60м\мин, 120м\мин, в секунду минимум 1м. В метре 1000 миллиметров, разрешение 0,001 получается 1Mhz. Да там будут еще расчеты и т.д. грубо возьмем до 500Khz. Получается, что после изменения шага, мы тут же получаем изменение положения, примерно через 2 миллисекунды.

Если мои размышления верны, то получается у нас есть время около 35 миллисекунд после каждого шага, для внесения поправки. Но тут возникает вопрос, с какой скоростью может работать шаговый драйвер, к примеру EM402 всего 50KhZ максимум, что можно выжать 1 шаг на исправление в 1 шаге. Мои AM882 дают до 200Khz, это примерно 7 шагов между каждым шагом.

Такие заключения лучше проводить, после просмотра осциллографом или логическим анализатором, но до станка доберусь не скоро, тем более с такими инструментами. А пока бросаю курить (увы грешен), как там у классика - Нет ничего проще чем бросить курить я 1000 раз делал это..., есть время поразмыслить.

И напоследок еще вопрос, это кому-то нужно?

UPD. Нашел отличную тему, Исследование генераторов шагов LinuxCNC, Mach и прочих #1.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 20:09
nkp
Alex1982 писал(а):И напоследок еще вопрос, это кому-то нужно?
я думаю,что нужно многим...
иначе этого бы не сделали несколько десятилетий назад ;)

Контроллер оптических линеек / энкодеров (Step/Dir)

Добавлено: 03 июн 2016, 20:09
nkp
Alex1982 писал(а):И напоследок еще вопрос, это кому-то нужно?
я думаю,что нужно многим...
иначе этого бы не сделали несколько десятилетий назад ;)

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 20:45
Alex1982
nkp писал(а):я думаю,что нужно многим...
иначе этого бы не сделали несколько десятилетий назад
Если Вас правильно понял, все это давно есть в том же LinuxCNC.
Или других аппаратных решениях, которые кстати, не дешевы.

Другими словами Вы считаете, что нет ни какого смысла делать велосипед, пусть и с минимальной стоимостью (цена STM32F4 Discovery).

Спасибо за ответ.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 20:45
Alex1982
nkp писал(а):я думаю,что нужно многим...
иначе этого бы не сделали несколько десятилетий назад
Если Вас правильно понял, все это давно есть в том же LinuxCNC.
Или других аппаратных решениях, которые кстати, не дешевы.

Другими словами Вы считаете, что нет ни какого смысла делать велосипед, пусть и с минимальной стоимостью (цена STM32F4 Discovery).

Спасибо за ответ.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 20:56
michael-yurov
Меня в последнее время все чаще просят сделать такое устройство.
Видимо, буду делать. Но после того, как куплю пару линеек для себя, иначе будет очень сложно проверить устройство в работе.
Когда куплю для себя линейки - неизвестно. Среди прочих дел приоритетность покупки линеек ниже плинтуса.
Alex1982 писал(а):других аппаратных решениях, которые кстати, не дешевы.
Предположительная цена готового блока контроля на 1 канал в моем исполнении составит 2000 - 2500 руб.
Диапазон рабочих частот - до 5 МГц (в отличии от китайских блоков на 80 кГц). Можно и больше, но нужно ли?
GPL не будет.

:attention: Тему отделил: http://www.cnc-club.ru/forum/viewtopic.php?f=41&t=11787

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 21:09
Alex1982
michael-yurov писал(а):Предположительная цена готового блока контроля на 1 канал в моем исполнении составит 2000 - 2500 руб.
Диапазон рабочих частот - до 5 МГц (в отличии от китайских блоков на 80 кГц). Можно и больше, но нужно ли?
На каждый канал отдельное устройство, может быть, лучше делать сразу на 3 оси?

Код будет открытым?
Если да, готов помогать, по мере сил (разумеется бесплатно).

UPD.
Что касается цены, она отличная, недавно покупал значительно дороже, удачи!

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 21:43
michael-yurov
Alex1982 писал(а):На каждый канал отдельное устройство, может быть, лучше делать сразу на 3 оси?
Может быть и лучше, но мне так проще (меньше усилий на разработку), и не всем нужно 3 оси.
Мне вот нужно две.
Alex1982 писал(а):Код будет открытым?
Нет, не будет. Код у меня уже есть (требует небольших изменений), и он, скорее всего, никогда не будет открытым.
Alex1982 писал(а):Что касается цены, она отличная, недавно покупал значительно дороже, удачи!
Не хотел составлять конкуренцию, и лишние сложности, но так уж вышло, что решение о разработке принял уже несколько дней назад, и, в общем-то не пытался держать эту информацию в секрете - потому и отписался в этой теме.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 21:54
N1X
michael-yurov писал(а):Когда куплю для себя линейки - неизвестно.
Купи угловые энкодеры и поставь на другой конец вала. Для электроники те же яйца, для тебя дешевле...

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 22:10
michael-yurov
N1X писал(а):
michael-yurov писал(а):Когда куплю для себя линейки - неизвестно.
Купи угловые энкодеры и поставь на другой конец вала. Для электроники те же яйца, для тебя дешевле...
Так я с пользой хочу контроллер то сделать.
Мне бы на раскладчике линейки пригодились бы.
Иначе никакого интереса в разработке.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 22:13
Alex1982
michael-yurov писал(а):Может быть и лучше, но мне так проще (меньше усилий на разработку), и не всем нужно 3 оси.
Мне вот нужно две.
Понятно.
michael-yurov писал(а): Нет, не будет. Код у меня уже есть (требует небольших изменений), и он, скорее всего, никогда не будет открытым.
Спросил лишь потому, что если бы код открытый и не написанный, готов был принять участие в разработке.
michael-yurov писал(а):Не хотел составлять конкуренцию, и лишние сложности, но так уж вышло, что решение о разработке принял уже несколько дней назад, и, в общем-то не пытался держать эту информацию в секрете - потому и отписался в этой теме.
Конкуренции у нас с Вами не будет :) .

Дело в том, что решение о создании данной системы, было из-за того, что никто не хотел ее делать.
К тому же у Вас должно получиться лучше. Во первых Вы не дилетант в ЧПУ (в отличии от меня), во вторых я даже не планировал делать платы, только код. А платы Вы делаете достойные, по ним я пробежался.

Удачи!

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 22:25
michael-yurov
Alex1982 писал(а): Спросил лишь потому, что если бы код открытый и не написанный, готов был принять участие в разработке.
У меня ушел год на создание этой прошивки.
(речь о прошивке степмастера; она подходит для контроллера линеек).

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 22:31
Alex1982
michael-yurov писал(а):Alex1982 писал(а):
Спросил лишь потому, что если бы код открытый и не написанный, готов был принять участие в разработке.

У меня ушел год на создание этой прошивки.
(речь о прошивке степмастера; она подходит для контроллера линеек).
Если говорить о контролере ЧПУ, то разработка впечатляет :good: .

За разработку контролера ЧПУ с нуля, я бы не взялся, говорил исключительно о коробочках.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 23:10
michael-yurov
Alex1982 писал(а):За разработку контролера ЧПУ с нуля, я бы не взялся, говорил исключительно о коробочках.
Так у меня там и есть почти коробочка. Только петля обратной связи внутри процессора.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 23:21
Бармалей
Для ТС - маст рид
http://www.chipmaker.ru/topic/100711/

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 23:37
Alex1982
michael-yurov писал(а):Так у меня там и есть почти коробочка. Только петля обратной связи внутри процессора.
У Вас не совсем коробочка.

Тут дело немного проще (хотя может не вижу подводных камней, еще не смотрел на осциллографе и пока рассуждения поверхностные).
Общую схему описал, если в ней не ошибся, то задача не кажется не подъемной, хотя есть свои ограничения.

По поводу петли внутри процессора, не совсем понимаю о чем Вы.
Нужно получать сигналы, линейки, как это сделать вопрос возможности конкретного микроконтроллера. То же получение данных от линейки (подсчет импульсов), можно сделать на прерываниях, можно на таймерах в режиме энкодеров (если таковые есть), можно работать с таймерами через DMA (если есть поддержка) и т.д.
Бармалей писал(а):Для ТС - маст рид
http://www.chipmaker.ru/topic/100711/
Не заметил, спасибо.

Прежде чем прикручивать ПИД регулировку, надо понять общую схему работы, этим и занимался.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 03 июн 2016, 23:59
Бармалей
Alex1982 писал(а): По поводу петли внутри процессора, не совсем понимаю о чем Вы.
Имеется в виду, что до собсно ЧПУ сигналы ОС не доходят, петля замыкается раньше. Но тут непонятно, как настраивать регуляторы. Без настройки регуляторы будут работать только для оч. ограниченного набора систем.
Прежде чем прикручивать ПИД регулировку, надо понять общую схему работы, этим и занимался.
ПИД - это классика АУ.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 04 июн 2016, 00:17
michael-yurov
Бармалей писал(а):Но тут непонятно, как настраивать регуляторы. Без настройки регуляторы будут работать только для оч. ограниченного набора систем.
Придется вывести регулировку наружу.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 04 июн 2016, 00:25
Alex1982
Бармалей писал(а):Имеется в виду, что до собсно ЧПУ сигналы ОС не доходят, петля замыкается раньше.
Видимо начинаю тупить, на сегодня все, завтра перечитаю.

Re: Принцип работы системы обратной связи по линейкам в ЧПУ

Добавлено: 04 июн 2016, 12:48
N1X
michael-yurov писал(а):Придется вывести регулировку наружу.
В любом случае совсем немой система такого уровня не получится ) выводить если не координату, то хотябы готовность/аварию нужно. ЧПУ полезно знать, если система по рассогласованию стала )