WLMill (Windows/Linux (Qt) + WLMotion) - управление фрезерным ЧПУ

Mach, популярные и не очень CAD, CAM. Обсуждение и разработка программ для управления станками.
VGT
Опытный
Сообщения: 132
Зарегистрирован: 28 ноя 2021, 14:25
Репутация: 4
Откуда: Москва

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение VGT »

1. А что за применение? по идее для этого экранные функциональные клавиши есть..
2. без защиты?

я бы вообще все перемещения сделал в 2 шага чтобы исключить случайный запуск. в том числе и хоуминг.
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

CNC-Logic писал(а): 11 янв 2022, 09:16 Серёг, а есть ли возможность сделать быстрый запуск G-кода, например нажав кнопку на клавиатуре? Удобно ведь :)
Можно сделать запуск программы от физической кнопки (срабатывание входа) или кнопки на экране(и к ней привязать "горячую кнопку" клавиатуры). Суть одна запускается скрипт ->> запуск программы

напишу пример попозже...

PS опасно от одной кнопки на клавиатуре.
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

Запуск программы от клавиатуры.
1 создаём кнопку
2 устанавливаем название и вызываемую функцию
3 привязываем к кнопке на клавиатуре (рекомендую использовать комбинации)

в скрипт MScript добавляем 2 функции

function startCurGProgram()
{
if( !MACHINE.isRunGProgram()){ //если программа не запущена
MACHINE.runGProgram(0);
}
}

function myStartButton()
{
TOOLBAR1.addButton("MYSTARTBUTTON")
MYSTARTBUTTON.setShow(1);
MYSTARTBUTTON.setText("startProgram")
MYSTARTBUTTON.setScript("startCurGProgram()");
MYSTARTBUTTON.setShortcut("F2")
}

Из меняем функцию init() добавляя вызов myStartButton()

function init()
{
myStartButton()
.....
}
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

Запуск по входу контроллера

добавляем функцию в LScript

function startCurGProgram()
{
if( !MACHINE.isRunGProgram()){ //если программа не запущена
MACHINE.runGProgram(0);
}
}

И добавляем условие обрабортки состояния входов

function changedInput(index,state)
{
if( state==1 // по положительному фронту
&& index==5) {// входа №5
startCurGProgram()
}
....
}
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

4 осевая обработка от пользователя.

https://youtu.be/gOXMBnVpLkU
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

WLMill. Добавилась поддержка джостика
gamepad-0.jpg (1288 просмотров) <a class='original' href='./download/file.php?id=202478&sid=480791993802532418b70823452d3213&mode=view' target=_blank>Загрузить оригинал (86.68 КБ)</a>
В скриптах добавился элемент JOYSTICK
Также при изменение состояния органов управления вызываются функции в скрипте LScript

function changedButtonJoystick(id,button,press) //нажатие на кнопку джостика
{
if(press)
SCRIPT.console("Joystick "+id+" button "+button+" pressed")
else
SCRIPT.console("Joystick "+id+" button "+button+" released")
}

function changedPOVJoystick(id,number,angle) //нажатие на курсор крест (джостика)
{
SCRIPT.console("Joystick "+id+" POV "+number+" angle "+angle)
}

function changedAxisJoystick(id,axis,value) //пропорциональные оси
{
SCRIPT.console("Jostick"+id+" axis "+axis+" value "+value)
}

Также был написан базовый скрипт WLJoystick.js . В котором есть описание и базовое определение функций.
Левый джостик перемещения по XY. Правый по ZA. Нажатие на левый джостик уменьшает макс. скорость на правый увеличивает.

Вверх/вниз увеличивает/уменьшает корректор S;
Вправо/влево увеличивает/уменьшает корректор F;

Кнопка Start = кнопка пуск.
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
VGT
Опытный
Сообщения: 132
Зарегистрирован: 28 ноя 2021, 14:25
Репутация: 4
Откуда: Москва

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение VGT »

wldev писал(а): Нажатие на левый джостик уменьшает макс. скорость на правый увеличивает.
кстати у меня это не работало. да и не надо если есть экспоненциальная зависимость от угла отклонения .
мертвая зона бытового джойстика гадит.. она нужна - но не такая огромная как 20%. если кто знает софтовые способы управления чипом - пишите тут.
можно ее минимизировать аппаратно и не особо сложно..но если есть какие то софтовые настройки - почему бы не воспользоваться.
по дефолту зона нечувствительности у меня в проводном юсб джойстике 2...3В(при шкале линейного пота 0..5В). АЦП чипа по поведению - 8 бит
wldev писал(а): Кнопка Start = кнопка пуск.
не думаю что это удачная идея категорически. кнопке Start (а лучше бы ее назвать Run - смысл пошире и можно выкинуть тогда Continue) должен предшествовать переход управления из ручного в автоматический.. если бы такая кнопка у меня была - я бы ее вырвал с корнем , чтобы случайно не нажать. но ее уже нет.
остальные кнопки стандартного пульта тоже вызывают сомнения.. S и F - но это не так страшно. но вот какой смысл в них в пульте который нужен только чтоб приехать в нужную точку?

Я купил пульт такой. раздербанил в ноль. оставил проц и джойстики. Кнопки может и задействую но только для скриптов типа "ехать на парковку", "ехать отмокать", "ехать на точку замены" , "ехать на сервис".. т.е по смыслу. буду делать чтото более удобоваримое, так как игровая консоль в исходном виде это конечно треш, это непригодное устройство в исходном виде .. ну а какой выбор? ни мышь, ни тач, ни кнопки клавиатуры - вообще не пригодны в существующем интерфейсе. А половина аварий именно изза интерфейса. Есть еще маховичок..это конечно соответствует современной тенденции "вперед в прошлое" - но только чур без меня. я накрутился маховичков еще в школе, в 70х.

-Но (разработчику респект) есть бета возможность экспоненциального управления джойстиком. Это как по мне делает не особо нужным переключение скоростей и джог/не джог, которые собственно и есть прямейший путь к авариям
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

Долго думал как сделать настройку более гибкой.
В результате можно скорректировать функции скриптов и получить какой угодно функционал. Кому как нравится...
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

Также в новой beta добавлена возможность использования компенсации радиуса инструмента.
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

Небольшие новости.

Несколько лет назад, пытался использовать одноплатник OrangePi PC совместно с программой для гибки проволоки WLBend. Оказалось она очень сильно тормозила. И работать было невозможно. Но с WLMill более или менее.

Из-за этого перешёл на RasberryPi 4 всё работает хорошо.

Но в свете последних изменений цен последний стал достаточно дорогим. И тут я решил тряхнуть старину.
Взял OrangePi PC и самый последний Armbian. И о чудо всё стало работать быстрее, почему не знаю.

Даже с WLBend стало всё хорошо, только почему-то тени не расчитывет.

https://youtube.com/shorts/4dcQ1Y-bfEo
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Аватара пользователя
MX_Master
Мастер
Сообщения: 7460
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3086
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение MX_Master »

Я недавно проверял свежий образ с Ubuntu на Orange Pi One+. Аппаратное ускорение графики (драйвер panfrost) робит из коробки. Даже в хроме WebGL примеры робят неплохо. После этих тестов я сразу забил на аппаратную отрисовку GUI/траектории (C + XML + OpenGL ES) и вернулся к привычному HTML5/CSS3/JS/WebGL.
Аватара пользователя
CNC-Logic
Мастер
Сообщения: 1559
Зарегистрирован: 14 мар 2012, 03:40
Репутация: 814
Настоящее имя: Евгений
Откуда: г.Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение CNC-Logic »

Заказчиком была поставлена нестандартная задача: станок должен обрабатывать детали, постоянно отслеживая неровность поверхности по оси Z. Для этого у заказчика есть своя приспособа, но данные от неё должны куда то поступать и обрабатываться. Решили установить WLMill и контроллер WLM155S, так как он очень богат по возможностям подключения переферии (цифровые и аналоговые входы выходы+возможность написания собственных макросов).

Собственно сам станок:
20220414_210718.jpg (1103 просмотра) <a class='original' href='./download/file.php?id=202870&sid=480791993802532418b70823452d3213&mode=view' target=_blank>Загрузить оригинал (4.88 МБ)</a>
20220414_210732.jpg (1103 просмотра) <a class='original' href='./download/file.php?id=202871&sid=480791993802532418b70823452d3213&mode=view' target=_blank>Загрузить оригинал (4.26 МБ)</a>
20220414_211507.jpg (1103 просмотра) <a class='original' href='./download/file.php?id=202872&sid=480791993802532418b70823452d3213&mode=view' target=_blank>Загрузить оригинал (4.52 МБ)</a>
20220414_211528.jpg (1103 просмотра) <a class='original' href='./download/file.php?id=202873&sid=480791993802532418b70823452d3213&mode=view' target=_blank>Загрузить оригинал (4.85 МБ)</a>
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

Вопрос от польователя:
"Есть возможность индикацию Естоп вывести на выход? Т.е. сработал Естоп - загорелась красная лампа?"

Ответ:
Естоп - вход номер 6
Красная лампа - выход номер 4

function changedInput(index) //функция в LSCRIPT, вызывается при изменении состояния входа. index - номер входа
{
if(index==6) //если это 6 вход
MACHINE.setOutput(4,MACHINE.getInput(6)); //то устанавливаем выход 4 в положение как и вход.
}
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение aftaev »

wldev писал(а): function changedInput(index) //функция в LSCRIPT, вызывается при изменении состояния входа. index - номер входа
{
if(index==6) //если это 6 вход
MACHINE.setOutput(4,MACHINE.getInput(6)); //то устанавливаем выход 4 в положение как и вход.
}
Если ЧПУ встанет из-за какой то ошибки, то красный лампоШка не будет светиться при таком коде? Светофор на станке нужен для сигнализации состояния станка, а не то что Естоп нажали .
Кнопка Естоп это обычно кнопка грибок. Кнопки Естоп обычно имеют норм.замкнут. и разомкнут. контакты. Зачем выхода занимать, когда можно туды напрямую лампочку прикрутить?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

Можно сделать чтобы мигала. И если ЧПУ Встанет то и миганий не будет.....
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Cvazist
Мастер
Сообщения: 1075
Зарегистрирован: 16 окт 2017, 16:07
Репутация: 84
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение Cvazist »

aftaev писал(а): 20 апр 2022, 07:32 Если ЧПУ встанет из-за какой то ошибки, то красный лампоШка не будет светиться при таком коде? Светофор на станке нужен для сигнализации состояния станка, а не то что Естоп нажали .
Кнопка Естоп это обычно кнопка грибок. Кнопки Естоп обычно имеют норм.замкнут. и разомкнут. контакты. Зачем выхода занимать, когда можно туды напрямую лампочку прикрутить?
У меня перегрузка частотника заведена на Естоп и пределы. Попробую как будет работать данная сигнализация.
Я выводил ошибку с шаговиков с энкодерами на красную лампу, так как она не отображалась в мач3, было удобно.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение aftaev »

Удобно когда в станке есть светофор, по которому издалека можно судить что делает станок.
А в самой ЧПУ есть табличка с сообщениями и что с ними делать. Есть три уровня событий: зеленый, желтый, красный. В табличке расписано событие, какого оно уровня, что с этим событием делать(0 не останавливать, 1 останавливать выполнение).
При наступлении события, это событие выдается в строке состояния на экране, записывается в лог, и выдается на светофор.

Примерно так:
1. Пуск программы. Зеленый. 0
2. Низкий уровень масло в системе смазки, Желтый, 0
3. Сервопривод не в режиме слежения, Красный, 1
4. Низкое давление пневмосистемы, Желтый, 0

В табличке оператор может задать что ЧПУ делать с этим событием.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
vtgmfg
Мастер
Сообщения: 1421
Зарегистрирован: 23 июн 2022, 14:13
Репутация: 53
Настоящее имя: Максим
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение vtgmfg »

В настройках подач появилась возможность задавать множество комбинаций ускорений и скоростей присваивая комбинации некое имя. Как использовать? Допустим я хочу по обстоятельствам менять режимы и вообще очень хотелось бы для холостых и рабочих сделать разные режимы и для увеличения производительности и отдельно настраиваемые холостые при перемещениях щупа например.
Аватара пользователя
wldev
Мастер
Сообщения: 1637
Зарегистрирован: 24 янв 2012, 16:04
Репутация: 510
Настоящее имя: Сергей Бочаров
Откуда: Новосибирск
Контактная информация:

Re: WLMill (Open source + WLMotion) - управление фрезерным ЧПУ

Сообщение wldev »

Сейчас есть только 3 дефолтных режима:
2022-09-17_11-33-21.png (483 просмотра) <a class='original' href='./download/file.php?id=204891&sid=480791993802532418b70823452d3213&mode=view' target=_blank>Загрузить оригинал (13.88 КБ)</a>
main - используется как базовый
mainMinus - используется как базовый в отрицательном направлении (если не задан то исп. "main")
manual - при ручных перемещениях

Холостые и рабочие разнести конечно можно. Нужно изменить планировщик.

По проббингу.
Можно сделать manualProbe. Они будут использоваться при включении защиты щупа....
Единственное что не будет учитываться геометрия станка...

ps это меню используется и в других программах например в WLBend задаются режимы для каждого диаметра проволоки.
Новости: https://t.me/wldevruch
Обсуждения: https://t.me/wldevgr
Ответить

Вернуться в «Windows / Mach»