Адаптивное управление скоростью подачи для WEDM.

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Адаптивное управление скоростью подачи для WEDM.

Сообщение aftaev »

Нужно приделать к Lcnc адаптивное управление скоростью подачи для поддержания МЭЗ(межэлектродный зазор)
Есть проволочновырезной станок. Если скорость подачи низкая - то станок работает не эфективно. Если скорость подачи большая - то не успевает прорезать, происходит короткое замыкание и проволока рвется.

В родной ЧПУ, аналоговое напряжение около 120v подается через делитель на микроконтроллер. Родной ЧПУ выбросили, так как это китайский "калькулятор" Re: Что я урвал, хвастаемся покупками, завидуем и облизываем #2757

Пробуем все перевести на Lcnc. управление через LPT. Чтобы не покупать дорогих плат MESA под аналоговое задание - появилась такая мысля:
Берется Ардуина + делитель напряжения. Ардуина измеряет напряжение и выдает два дискретных сигнала UP и Down (добавить или убавить скорость подачи). В Ардуине задаем "держать" напряжение например 100v и гистерезис.
Ардуина измеряет напряжение, если напряжение >100v выдает сигнал Up=1. Который получает Lcnc и увеличивает скорость подачи с 50% +1% = 51% , проволока быстрее двигается, уменьшается МЭЗ и напруга падает. Если зазор слишком маленький <90v. Ардуина выдает сигнал Down=1. Lcnc его получает и сбрасывает скорость 51%-1%.

Скорость реакции системы можно сделать в Lcnc или попробовать написать в Ардуине.

Получается нечто вроде ТНС как для плазмы, но у плазмы двигается ось Z вверх/вниз, а нам нужно менять скорость подачи в LCNC в зависимости от внешних сигналов.

С Nick переписывались в ЛС. Вот что пока надумал и Nick
Nick писал(а):Да, для этого есть пин
motion.adaptive-feed IN FLOAT
When adaptive feed is enabled with M52 P1, the commanded velocity is multiplied by this value. This effect is multiplicative with the NML-level feed override value and motion.feed-hold.

Или

Feed Override
halui.feed-override.count-enable (bit, in) - must be true for counts or direct-value to work.
halui.feed-override.counts (s32, in) - counts * scale = FO percentage. Can be used with an encoder or direct-value.
halui.feed-override.decrease (bit, in) - pin for decreasing the FO (-=scale)
halui.feed-override.increase (bit, in) - pin for increasing the FO (+=scale)
halui.feed-override.direct-value (bit, in) - false when using encoder to change counts, true when setting counts directly. The count-enable pin must be true.
halui.feed-override.scale (float, in) - pin for setting the scale for increase and decrease of feed-override.
halui.feed-override.value (float, out) - current FO value
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Адаптивное управление скоростью подачи.

Сообщение aftaev »

На Ардино сделал светодиодную индикацию напряжения на проволоке:
DSC03762 (Копировать).JPG (2311 просмотров) <a class='original' href='./download/file.php?id=64264&mode=view' target=_blank>Загрузить оригинал (237.19 КБ)</a>
Видео:
https://www.youtube.com/watch?v=ZkitFww ... e=youtu.be
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Адаптивное управление скоростью подачи.

Сообщение Serg »

Будет-ли связь Arduino-LinuxCNC успевать передавать данные? Ты ж ведь по USB захочешь их соединить...
aftaev писал(а):выдает сигнал Up=1.
Лучше сразу делать полноценный PID регулятор.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение aftaev »

UAVpilot писал(а):Лучше сразу делать полноценный PID регулятор.
ПИД можно и в Ардуине написать. А если в Lcnc то нужно аналог заводить или как то думать передавать данные. Хочется обойтись без плат Меса, думаю LPT для того станка должно хватить.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
raddd
Почётный участник
Почётный участник
Сообщения: 1564
Зарегистрирован: 10 фев 2015, 08:50
Репутация: 540
Настоящее имя: Alexey Rodionov
Откуда: Беларусь Минский р-н
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение raddd »

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

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение Nick »

Ты сможешь из ардуинки в ком порт писать, или не хватит времени?
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение aftaev »

UAVpilot писал(а):Будет-ли связь Arduino-LinuxCNC успевать передавать данные? Ты ж ведь по USB захочешь их соединить...
Нет не по USB. Ардуина будет выдавать 2 дискретных TTL сигнала UP или Down - все как на ТНС на плазморезах.
Могу даже взять готовый ТНС снять с плазмореза который измеряет напругу плазмы 150в (в настройках задается какое напряжение держать) и прикрутить его к проволочному станку ;). ТНС - выдает сигнал в LPT Mach3 Up или Down. В зависимости от этих сигналов Mach3 таскает ось Z.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение aftaev »

Nick писал(а):Ты сможешь из ардуинки в ком порт писать, или не хватит времени?
Мы сейчас работаем примерно так: положили сталюку толщиной 10мм, поставили на угад скорость подачи 3мм/мин. Смотрим в течении минуты как режет, по стрелочному индикатору и на генераторе смотрим напругу. Если скорость маленькая добавляем в ручную двигая ползунок в LCNC скорость подачи. То есть процесс весьма не быстрый :)
Могу ошибиться но реалтайма здесь не нужно. Возможно хватит в 1сек один раз измерить и +/-1 скорректировать подачу.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
MIX
Кандидат
Сообщения: 89
Зарегистрирован: 23 авг 2015, 09:48
Репутация: 34
Настоящее имя: Михаил
Откуда: С. Петербург
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение MIX »

Я на своей THC выкинул управление UP/DOWN. И сделал PID. В компьютер передаю значение напряжения.
UP/DOWN работало на редкость нестабильно. Замучился подбирать скорость. Выставлять целевое напряжение на отдельном устройстве тоже та еще радость (в плазме оно сильно зависит от скорости реза).
Об этом не жалею.
В Вашем случае наверное PID можно завязывать на скорость подачи.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение selenur »

На ардуине выведены пины вроде 3х ком-портов, используя переходник типа такого http://easyelectronics.ru/svyaz-mikroko ... rs232.html на мк max232, можно ардуину сразу в аппаратный ком-порт подключить.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение aftaev »

selenur писал(а):На ардуине выведены пины вроде 3х ком-портов, используя переходник типа такого http://easyelectronics.ru/svyaz-mikroko ... rs232.html на мк max232, можно ардуину сразу в аппаратный ком-порт подключить.
Не хочется иметь секса с протоколом передачи.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение aftaev »

Еще проще: к Lcnc к LPT подключено 2 кнопки [+] и [-]. Как сделать так чтобы при нажатии на кнопку [+] - скорость подачи в % в Lcnc увеличивалась на +1%, а при нажатии на [-] уменьшалась :thinking:
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
raddd
Почётный участник
Почётный участник
Сообщения: 1564
Зарегистрирован: 10 фев 2015, 08:50
Репутация: 540
Настоящее имя: Alexey Rodionov
Откуда: Беларусь Минский р-н
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение raddd »

А чего ты так привязался к лпт? Там и так пинов мало. Можешь зав(н)ести в ком без протокола)))
Теже 2 пина. а лпт входы еще на чтонибудь сгодятся
||||||||||||
||||||||||||
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение aftaev »

raddd писал(а):Можешь зав(н)ести в ком без протокола)))
Я не могу, потому и спрашиваю - как?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение Serg »

raddd писал(а):Можно чере ком порт войти. Он вроде тоже в реалтайме с лпт обрабатывается...
Тоже не в RT, но уже лучше.
aftaev писал(а):Могу ошибиться но реалтайма здесь не нужно. Возможно хватит в 1сек один раз измерить и +/-1 скорректировать подачу.
За 1 секунду на скорости большей, чем нужно оно уже может "упереться" и порвать проволоку...

А при управлении в виде Up/Down оно не сможет быстро уменьшить скорость - будет уменьшать только по 1% за итерацию...
aftaev писал(а):Не хочется иметь секса с протоколом передачи.
Да какой там секас? Передавай одно число циклически - вот и весь протокол.

Из пары пинов LPT или COM можно изобразить синхронный последовательный интерфейс, могущий работать в RT.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
MIX
Кандидат
Сообщения: 89
Зарегистрирован: 23 авг 2015, 09:48
Репутация: 34
Настоящее имя: Михаил
Откуда: С. Петербург
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение MIX »

Мне на плазморезе RT пока не понадобился. PID оказалось неплохо гасит временные задержки данных. На максимальной скорости, которую пробовал 6м/мин около удается компенсировать перепады до 5мм на 50мм примерно. Впрочем быстрее шаговик ось не таскает, а не поток данных забивается. Работаю через USB. За интерфейс (двусторонний туда включение 8 рэле, обратно цифра 0-255 вольт целое число) отвечает микросхема FTDI232. Протоколы связи ардуины с этой микросхемой отработаны. Кое где на ардуинах она уже распаяна.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение Serg »

Дело не в отработанных протоколах. Сам USB в случае сбоя например из-за импульсной помехи начнёт процедуру реконекта, а это несколько секунд полного отсутствия связи, да ещё и, как правило, другой виртуальный COM-порт после реконекта - был /dev/ttyUSB0, станет /dev/ttyUSB1.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение aftaev »

UAVpilot писал(а):За 1 секунду на скорости большей, чем нужно оно уже может "упереться" и порвать проволоку...
А при управлении в виде Up/Down оно не сможет быстро уменьшить скорость - будет уменьшать только по 1% за итерацию...
Вот и проверим :)
UAVpilot писал(а):Да какой там секас? Передавай одно число циклически - вот и весь протокол.
Передать с Ардуины для меня не проблема, а вот принять со стороны Lcnc и подключить к нужным сигналам это для меня проблема.
MIX писал(а):На максимальной скорости, которую пробовал 6м/мин около удается компенсировать перепады до 5мм на 50мм примерно.
На плазме все по другому, здесь скорость в сотни раз меньше.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
MIX
Кандидат
Сообщения: 89
Зарегистрирован: 23 авг 2015, 09:48
Репутация: 34
Настоящее имя: Михаил
Откуда: С. Петербург
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение MIX »

UAVpilot писал(а):Дело не в отработанных протоколах. Сам USB в случае сбоя например из-за импульсной помехи начнёт процедуру реконекта, а это несколько секунд полного отсутствия связи, да ещё и, как правило, другой виртуальный COM-порт после реконекта - был /dev/ttyUSB0, станет /dev/ttyUSB1.
Несколько секунд это Вы преувеличиваете ))) По моим замерам не более миллисекунды. Другой порт тоже не всегда берет. В той версии Ubuntu, что я использую, порты дополнительно линкуются на символьное устройство с именем, совпадающим с ID устройства. В моем случае с именем микросхемы FTDI:

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

PORT = "/dev/serial/by-id/usb-FTDI_FT232R_USB_UART_A602R5WZ-if00-port0"
С выходом некоторого обновления этот функционал вроде отвалился, но я думаю можно найти способ идентифицировать именно по ID
Так что с этой стороны траблов небыло. Были со стороны реализации доступа на Pyserial. Дело в том, что эта библиотека не реконнектит устройство после того, как оно отвалится. Эта проблема решилась через стандартную проверку на ошибки соединения и программный реконнект. Впрочем гораздо лучше чтобы такого не происходило. Тут нужно схемно развязать часть устройства, которое меряет напряжение и часть, отвечающую за связь с копом.
Во всяком случае меня эти проблемы не мучают особо. Они решились достаточно оперативно.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Адаптивное управление скоростью подачи для WEDM.

Сообщение Serg »

По каким именно замерам? Выдернул из порта и снова вставил? Так не интересно, попробуй D+ и D- позамыкать во время обмена или питанием "поискрить"...

ID устройства - это хорошо (но надо понимать, что этот ID, т.е. серийный номер, есть только у FTDI), но тут засада в другом: если подключенное устройство первым решит сделать реконнект, то оно закончит его ещё до того, как комп сообразит, что устройство отмерло (таймаут там в несколько секунд) и окажется, что это устройство с ID ещё не освободилось. Нового устройства в этом случае не появится, но и прежнее не будет работать до истечения таймаута и нового реконекта (ибо занято) - в итоге имеем отсутствие связи в течении нескольких секунд.
MIX писал(а):Дело в том, что эта библиотека не реконнектит устройство после того, как оно отвалится. Эта проблема решилась через стандартную проверку на ошибки соединения и программный реконнект.
Так не бывает, механизм реконекта зашит в самом USB-стэке, его нельзя отменить.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Ответить

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