WLMill 2.99.8 Добавлено объединение входов (суммирование) — можно назначить например несколько inProbe или inEMGStop (начиная с прошивки WLMotion 2.5). Раньше нужно было «мудрить» с соединением или использовать плату WL3NPN для подключения нескольких датчиков к одному …
Добавлена кнопка закрытия программы в полноэкранном режиме. В таблице инструментов(систем координат) добавлены кнопки для переключения отображаемых параметров. В таблицах стала обязательной колонка GCode. — как инструмент или СК доступны из G кода. В таблице инструментов …
Количество задач, которые иногда нужно решать достаточно большое и порой использование скриптов не всегда хватает для этого. Чтобы можно было добавлять свои инструменты в функционал WLMill был создан инструмент — создание плагинов. Как создать свой …
Что такое плагин? Плаги́н[1][2] (англ. plug-in, от plug in «подключать») — независимо компилируемый программный модуль, динамически подключаемый к основной программе и предназначенный для расширения и/или использования её возможностей. Плагины обычно выполняются в виде библиотек общего пользования. Уже давно была добавлена возможность написания своих плагинов для WLMill. …
Добавлена поддержка переменных в G коде Инициализация из G кода #100 = 50 // создали переменную 100 и присвоили ей значение 50 #ZFREE = -25 // создали переменную ZFREE и присвоили ей значение -25 Внимание!!! …
Для организации графических пользовательских интерфесов была добавлена возможность их встраивания в WLMill . Данные интерфесы должны быть написаны на QML.
Файлы *.qml размещаются в папке /qml/
Для добавления файла на главный экран имеется функция:
WLMILL.addTabQML(«file.qml»)
Для вызова окна QML как диалога:
WLMILL.runQML(«file.qml)
Ознокомительное видео с использованием WLProbe.qml
Будет сделано несколько базовых уроков по созданию простых интерфесов.
Для более точного позиционирования в WLMill была добавлена поддержка энкодерных линеек с организацией обратной связи ещё этой весной. Однако динамическое позиционирование было не столько хорошим как хотелось. И чтобы его улудшить были добавлены 2 коэффициента (FFP\FFD) прямой регулировки (без учёта линейки). В результате чего динамическая точность существенно повысилась.
Общий принцип сейчас такой:
Общий алгоритм такой.
Устанавливаем все коэффициенты в ноль.
Расcчитываем и устанавливаем FFP для шагового двигателя. FFP = (шаг линейки)/(один шаг двигателя)
Устанавливаем режим для ШД все 0. (нет ограничений)
Устанавливаем заведомо большую ошибку позиционирования. Например 10мм
Включаем WLMill и пробуем подвигать ось в ручном режиме. При этом нужно проверить совпадает ли направление энкодерного входа(по закладке где входы/выходы ). В случае необходимости инвертируем энкодер ПКМ на энкодер в настройке оси.
Если мы правильно задали FFP, то наша ось должна двигаться практически по всему диапазону перемещения без ошибок.
У WLMill появилась возможность опережения выборки люфта какой либо осью если она на текущем элементе перемещения не движется. То есть мы экономим время, которое мы тратим на выборку люфта. Данная функция даёт приемущество если обработка в основном происходит ортогонально, то есть движения вдоль X,Y,Z. Для включения и выключения данной возможности был добавлен G код.
Данный контроллер был разработан на базе WLM55J и имеет схожие характеристики. Но его основной особенностью является наличие интерфейса Ethernet (модуль W5500).
Таблица перенесена в отдельную закладку. Ниже таблицы расположена панель для добавления кнопок.
Новая панель кнопок называется TOOLBARTOOLS. В неё можно добавлять кнопки(как для TOOLBAR1(2)) а также также заправшивать какой элемент таблицы сейчас выбран.
TOOLBARTOOLS.selectTool() — индекс выбранного инструмента (на котором сейчас указатель)
TOOLBARTOOLS.selectData() — название выбранного столбца
Например скрипт.
TOOLBARTOOLS.addButton("MYBUTTONTOOLS") //добавляем кнопку
MYBUTTONTOOLS.setShow(1) //делаем её видимой
MYBUTTONTOOLS.setText("Текущий") //устанавливаем текст
MYBUTTONTOOLS.setScript("SCRIPT.console(TOOLBARTOOLS.selectTool())"); //по нажатия запускаем скрипт который пишет в консоль индекс выделенного инструмента
TOOLBARTOOLS.addButton("MYBUTTONTOOLS2")
MYBUTTONTOOLS2.setShow(1)
MYBUTTONTOOLS2.setText("Параметр")
MYBUTTONTOOLS2.setScript("SCRIPT.console(TOOLBARTOOLS.selectData())");//по нажатия запускаем скрипт который пишет в консоль название параметра выделенной ячейки (столбца)
Этот код можно поместить в функцию init() скрипта MScript. После чего у нас появится 2 кнопки при нажатии на которые будет выводится информация в консоль
TOOLBARTOOLS.selectTool() — индекс выбранного инструмента (на котором сейчас указатель)
Количество инструментов стало неограниченным, также стала возможным применять свободную нумерацию инструментов. То есть не по порядку.
Для работы с этим добавлены новые функции в GCODE.
Теперь мы можем добавить новый параметр например так:
GCODE.setDataTool(128,»noAutoH»,0) //будет записан параметр по имени «noAutoH» и ему будет присвоено значени 0.
var A=GCODE.getDataToolNum(128,»noAutoH»,1) //возьмём значение переменной из инструмента 128, а если его (такого значения или инструмента) нет в базе то по умолчанию вовратится 1 (значение по умолчанию).
2. Для удобного отображения данных инструментов сделана новая настройка.
Был создан новый файл config.ini на замену config.xml. В нём (сгенерируется после первого запуска и выхода) можно увидеть параметр «Tools/showColumn». Это колонки таблицы которые будут отображаться в WLMill.
И если мы зададим GCODE.setDataTool(5,»sss»,6) то будет
Добавлена возможность работы с картой высот. Она нужна когда нам необходимо фрезеровать на неровной поверхности. Например мы имеем программу для фрезеровки плоской детали, а заготовка явно не плоская, то есть имеет неровности. Тогда перед фрезеровкой мы сканируем нашу заготовку (делаем карту). Далее мы включаем нашу карту и запускаем фрезеровку. Теперь наш станок будет изменять Z согласно нашей карты. В результате мы получим правильную глубину фрезеровки на всей детали.
Порядок работы с картой высот.
Определяем положение нашей заготовки в плоскости XY. И корректируем нашу СК.
Устанавливаем сканер/щуп/контактор т.е. инструмент, который будет производить замер карты.
Позиционируем его на высоту, при которой он может свободно перемещаться над заготовкой.
Запускаем сканирование карты высот.
После успешного сканирования включаем нашу карту высот(если она выключена). Установив галочку «активна». В окне работы с картой высот.
Устанавливаем инструмент и задаём положение Z заготовки в любом месте (будет учтена карта высот). Внимание отображаемое положение может отличаться от заданного – это корректировка согласно карте высот.
Можем произвести перемещение с помощью MDI (ручной ввод) и убедиться, что у нач корректируется координата Z.