Визуализация перемещений или MPG+DRO для станков

Попытка создания устройства ручного управления и цифровой индикации

Priyatel
Рядовой
Сообщения: 85
Зарегистрирован: 04.11.2018{, 14:09}
Репутация: 0
Имя: Олегович

Визуализация перемещений или MPG+DRO для станков

#41

Сообщение Priyatel » 07.12.2018{, 13:25}

pan писал(а):
07.12.2018{, 12:58}
можно же поискать.
Простите, я имею представление о переменных: целочисленные, с плавающей запятой и т.д., но в каких случаях их применять иногда происходит методом "научного тыка". Пока еще не хватает опыта и практики. Да и старенький я уже. Я владею технологией CNC, но не знаю все функции J и M - кодов, т.к. с большинством из них не сталкиваюсь. Посмотрел, если надо в табличку, и - порядок. Так же и здесь. Узнал о возможности применения, и уже накоплен какой то опыт. Давным - давно учил fortran, algol, но практики не было и все забылось.
А за ссылку - большое спасибо. Это тоже накопление опыта и знаний

Priyatel
Рядовой
Сообщения: 85
Зарегистрирован: 04.11.2018{, 14:09}
Репутация: 0
Имя: Олегович

Визуализация перемещений или MPG+DRO для станков

#42

Сообщение Priyatel » 27.01.2019{, 19:12}

Пока ковыряюсь с железом, параллельно возникло желание допилить проект. А именно, внедрить в разработку блок разгона/торможения для ШД.
СпойлерПоказать
MPG-DRO_1-axiz.JPG
Принципиальная схема
New MPG-V2.2.flp
(795 КБ) 89 скачиваний
1Axis-DRO-V2.2.flp
(601.02 КБ) 87 скачиваний
Но возникла коллизия.
Внедренный в модуль генератора MPG, данный блок - работает! Регулируется время нарастания и спада коэффициента деления генератора. Все бы ничего, но эта приблуда дружит только с джойстиком перемещений. Когда включается подача, идет плавный регулируемый разгон ШД. При нажатом джойстике двигатель вращается на выбранной скорости. При отпускании джойстика, двигатель плавно останавливается. Это почти идеально для режима "Подача". Недостаток - после отпускания джойстика, двигатель еще немного докатывает с торможением. Ведь никто, кроме оператора не знает, когда будет отпущен джойстик. Поэтому предусмотреть заранее торможение невозможно.Это как бы первый режим - предварительная проточка/фрезеровка/перемещение.
СпойлерПоказать
Разгон-торможение MPG.bmp
Разгон-торможение MPG.bmp (994.55 КБ) 1048 просмотров
Второй режим - более точен. Он позволяет заранее выставить конечную точку и двигаться к ней не думая, когда остановиться двигатель. Вычислитель в модуле визуализации DRO дает команду на останов генератора. Количество шагов, необходимых для торможения двигателя, тоже устанавливается.
СпойлерПоказать
Торможение DRO1.bmp
Торможение DRO1.bmp (969.38 КБ) 1048 просмотров
И здесь возникает большое НО...
В модуле MPG идет регулировка скорости нарастания/спада (т.е. время), а в модуле DRO - количество шагов до остановки ШД (это примерно, что принести пару вёдер компрессии).
Во, напридумывал, что теперь не знаю, как с этим бороться!
Третий режим - передвижение с помощью энкодера. Этот режим совсем не приручается к разгону/торможению. А ведь при делителе энкодера "1,0", двигатель должен повернуться, как минимум, на 100 импульсов, а при различном пересчете редукции осей, может и на 800, а может и более. В генераторе, который я применяю (от Слимпера), делитель шагов на входе "Steps", а манипуляции энкодера на "StartSteps" и "Direction".
Посоветуйте, кто может, пожалуйста. Может уже наработаны какие то альтернативные решения?

Аватара пользователя
dizzyy
Капитан
Сообщения: 752
Зарегистрирован: 24.11.2017{, 16:25}
Репутация: 37
Откуда: Червоноград
Имя: Марьян

Визуализация перемещений или MPG+DRO для станков

#43

Сообщение dizzyy » 28.01.2019{, 13:26}

я вот застрял на этом сайте..возможно от туда взять разгон, торможение и внести в блок
http://zizibot.ru/articles/electronics/ ... ep-motors/

Priyatel
Рядовой
Сообщения: 85
Зарегистрирован: 04.11.2018{, 14:09}
Репутация: 0
Имя: Олегович

Визуализация перемещений или MPG+DRO для станков

#44

Сообщение Priyatel » 28.01.2019{, 14:16}

Уважаемый dizzyy, я посмотрел ссылку. Дело в том, что там ничего нового не придумано (во всяком случае в идеологии реализации). Я уже создал блок разгона/торможения. Функциональный фрагмент - картинка во втором спойлере моего сообщения #42 и рабочий модуль "New MPG-V2.2.flp". Единственное отличие от реализации из Вашей ссылки, это независимые установки скорости и ускорения. Я считаю так: ведь инерционная масса привода не изменяется от скорости, поэтому ускорение/торможение должно быть постоянным, выставленным один раз подстроечным резистором на максимальной скорости. Я думаю, что в дальнейшей эксплуатации к изменению ускорения не придется обращаться (во всяком случае, так показывает опыт эксплуатации Mach-3 на четырех моих станках).
Но основная проблема в другом.
Выходной сигнал запланированного торможения, подаваемый с модуля индикации (DRO), отсчитывает значения в импульсах. Можно уложить количество импульсов в заданный интервал времени (но это только для одной установленной скорости). При изменении скорости, установленное значение импульсов торможения никак не будет вписываться в данный интервал времени на генераторе (MPG).
Вот в чем основная проблема!
В одном случае мы измеряем "в попугаях", а в другом - "в улыбке Чиширского кота". Прямо какая то "Алиса в стране чудес" получается.

Аватара пользователя
vacz
Лейтенант
Сообщения: 485
Зарегистрирован: 17.10.2016{, 05:56}
Репутация: 52
Имя: Владимир

Визуализация перемещений или MPG+DRO для станков

#45

Сообщение vacz » 28.01.2019{, 17:54}

Priyatel писал(а):
28.01.2019{, 14:16}
Выходной сигнал запланированного торможения, подаваемый с модуля индикации (DRO), отсчитывает значения в импульсах. Можно уложить количество импульсов в заданный интервал времени (но это только для одной установленной скорости). При изменении скорости, установленное значение импульсов торможения никак не будет вписываться в данный интервал времени на генераторе (MPG).
Вот в чем основная проблема!
Я немного не пойму, зачем и почему Вы хотите привязаться ко времени? Выходной сигнал запланированного торможения, отсчитывает значения в импульсах (шагах). Можно уложить количество шагов в общий, заданный интервал шагов, но не времени. При изменении скорости, установленное значение импульсов торможения никак не будет зависеть от времени! Количество шагов задано Вами и это величина постоянная! И пока не будет выполнено это количество шагов, двигатель будет работать независимо от времени исполнения заданных шагов. Изменяя скорость, Вы влияете только на время исполнения задания, а количество заданных шагов останется постоянным, пока Вы не измените их.
СпойлерПоказать
3.png
Будь проще к людям. Хочешь быть мудрей - не делай больно мудростью своей. "Омар Хайям"

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Визуализация перемещений или MPG+DRO для станков

#46

Сообщение eugeneb » 29.01.2019{, 08:38}

Priyatel, обратите внимание на проект GRBL:
https://github.com/gnea/grbl/wiki
распиновка:
https://github.com/gnea/grbl/wiki/Connecting-Grbl
сендеры:
https://github.com/gnea/grbl/wiki/Using-Grbl

GRBL ставится на отдельную Ардуину и управляет тремя шаговыми двигателями со всеми разгонами, ускорениями и ограничениями в реальном времени. Частота STEP - до 30 кГц. Обрабатываются концевики. Есть управление шпинделем, лазером, охлаждением. Со стороны FLProg нужно только подавать по UART привычные G-команды. Оттуда же можно читать текущие положения (для DRO).

Ещё для работы с GRBL написано куча сендеров (см. ссылку).

Priyatel
Рядовой
Сообщения: 85
Зарегистрирован: 04.11.2018{, 14:09}
Репутация: 0
Имя: Олегович

Визуализация перемещений или MPG+DRO для станков

#47

Сообщение Priyatel » 29.01.2019{, 13:33}

Большое спасибо eugeneb, за представленную информацию. С GRBL я знаком давно. Но когда эта эпопея с GRBL и подобными начиналась, они все обслуживались только через ПК. Тогда я познакомился с Сергеем Е., разработчиком автономного контроллера на Атмега 32.
СпойлерПоказать
$_10.JPG
$_10.JPG (62.02 КБ) 980 просмотров
В дальнейшем переделал ПП под другой формат:
СпойлерПоказать
mega32u4-controller-board1.jpg
СпойлерПоказать
mega32u4-controller-board.jpg
Недавно на этом сайте http://www.cnc-club.ru/forum/viewtopic.php?f=41&t=10940 увидел автономный (как Вы говорите) сендер. Меня это очень заинтересовало. Как раз вчера пришел из Китая экранчик к нему. Так что буду пробовать.
Идея создания именно в FLProg контроллера (сендера) для управления GRBL-контроллером, аналогичным изложенному, мне очень по вкусу. Но маловато опыта. Даже не знаю с чего начать.
Но моя идея прямо противоположна!
Фактически все мои станки имеют (будут иметь) привод от ШД. Управлять перемещением в ручном режиме кнопками крайне затруднительно. Поэтому и родилась идея создания электронного эмулятора функций обычных металлорежущих станков:
1. Ручное перемещение с помощью энкодера - эмуляция механического маховика станка (точный подвод, отвод, перемещение).
2. Автоматическая подача - эмуляция механической функции с помощью джойстика (резание на определенной скорости).
3. Работа с электронным концевиком - эмуляция останова привода по механическому упору.

Глобальная концепция - это создание класса обучения токарно - фрезерных работ на базе настольных миниатюрных станков. Но прежде чем, перейти обучающимся на CNC технологии, они должны освоить ручную обработку на станках. "Железной" составляющей между Manual и CNC должна быть одна и та же база.

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Визуализация перемещений или MPG+DRO для станков

#48

Сообщение eugeneb » 29.01.2019{, 19:35}

Что вы используете для
Priyatel писал(а):
29.01.2019{, 13:33}
Ручное перемещение с помощью энкодера
Это?
СпойлерПоказать
p2.jpg
Не совсем понял вашу педагогическую идею.
Но технически, по-моему все три перечисленные задачи решаются комбинацией FLProg+GRBL. (причём GRBL здесь безальтернативен. В рукопашную сделать то что он делает - это потратить годы.)

1. Ручное перемещение. Сколько маховиков? Трудновато, но можно. Трудность в том, чтобы успевать реагировать на импульсы MPG. FLProg не очень с прерываниями. И если у вас больше одного маховика, то Нанкой уже не обойдёшься - там прерываний только на один энкодер. Придётся на Мегу переходить.
В GRBL есть специальная команда для джоггинга. Задаёте цену деления маховика и каждый импульс от него превращаете в команду для GRBL. Выглядит типа:

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

$j=G91 X0.1
Это то, что надо послать в UART. Здесь 0.1 - заданная цена деления MPG. С каждым импульсом будет прыжок на эту величину. Причём, с учётом разрешённых ускорений! А оси могут быть любые. G20/G21, G90/G91, G53 - всё здесь действует.

2. Автоматическая подача - обычная G-команда:

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

G01 X15 Y-1.5 Z0 F60
3. Программные концевики - настраиваешь максимальные ходы по осям и включаешь soft-limits:

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

$130=200
$131=200
$132=50
$20=1
Токмо зачем, когда есть железные. Без них всё равно софтовые работать не будут.

В общем, натуральный станок с ЧПУ получается :)

Аватара пользователя
eugeneb
Лейтенант
Сообщения: 481
Зарегистрирован: 15.08.2016{, 11:20}
Репутация: 21
Откуда: Нижний Новгород
Имя: Евгений

Визуализация перемещений или MPG+DRO для станков

#49

Сообщение eugeneb » 30.01.2019{, 19:20}

Сендер (от английског 'to send' - посылать). Одна из проблем GRBL - очень маленький входной буфер для G-кода и поэтому приходится соблюдать определённый протокол обмена (там три варианта). Поэтому и появились сендеры, программы, которые занимаются передачей G-кода в GRBL. А заодно они стали развиваться в сторону человеко-машинного интерфейса. И теперь есть простейшие сендеры, которые просто пересылают файл с G-кодом с командной строки, а есть графические монстры с элементами САМ, а-ля Mach3.
Но сендер, это не обязательно программа на компьютере! Ничто не мешает посылать команды и G-код из вашего собственного контроллера, в том числе, запрограммированного в FLProg.

Priyatel
Рядовой
Сообщения: 85
Зарегистрирован: 04.11.2018{, 14:09}
Репутация: 0
Имя: Олегович

Визуализация перемещений или MPG+DRO для станков

#50

Сообщение Priyatel » 06.02.2019{, 18:33}

В общем, все свелось к тому, что в модуле MPG нет возможности обработать импульсы Step из генератора.

Проблема вот в чем: ПБ генератора написан в коде, выходной сигнал Step, да и другие, выходят непосредственно на пины Ардуины. Но мне нужно обрабатывать сигнал с выхода ПБ непосредственно в среде разработки, т.е. вывести сигнал на выход блока в схеме. Тогда я смогу подсчитать количество импульсов, необходимых для режима торможения.

Мне, по своей неопытности в программировании, с этим не справиться. Может кто нибудь подскажет, как это сделать?

Ответить

Вернуться в «Проекты различных устройств на Arduino»