Количество задач, которые иногда нужно решать достаточно большое и порой использование скриптов не всегда хватает для этого. Чтобы можно было добавлять свои инструменты в функционал WLMill был создан инструмент – создание плагинов. Как создать свой …
Что такое плагин? Плаги́н[1][2] (англ. plug-in, от plug in «подключать») — независимо компилируемый программный модуль, динамически подключаемый к основной программе и предназначенный для расширения и/или использования её возможностей. Плагины обычно выполняются в виде библиотек общего пользования. Уже давно была добавлена возможность написания своих плагинов для WLMill. …
Добавлена поддержка переменных в G коде Инициализация из G кода #100 = 50 // создали переменную 100 и присвоили ей значение 50 #ZFREE = -25 // создали переменную ZFREE и присвоили ей значение -25 Внимание!!! …
2.91 Поддержка G64 при многоосевой обработке Была добавлен поддержка G64 для многоосевой обработки. Также как и в 3х координатах происходит сглаживание и упрощение траектории. И был добавлен ещё один параметр “A” для G64. A – …
Было произведено много изменений в результате чего можно улучшить производительность станка. Использование сигнала inCutted в рубке Было добавлено использование сигнала inCutted при работе рубки. Это сигнал означает, что произошёл отруб проволоки и станок может производить …
В WLMill beta было переработано окно редактирования скриптов.
Было добавлено:
Одновременная работа с несколькими файлами (которые были добавлены через include).
Подсветка синтаксиса.
Добавлена система подсказок при написание скриптов. То есть при нажатии CTRL+Пробел редактор может предложить нам варианты, что можно вписать. Это могут быть функции, глобальные переменные, объекты и их методы. И нам не надо держать в голове весь багаж этих функций.
У контроллера WLM155S имеется 4 аналоговых входа которые можно использовать по-разному.
Например для плавного изменения корректоров F и S.
Для этого мы будем использовать следующую функцию в LScript:
function updateProportionalF() //установка значения корректора S
{
var ain=5 //номер аналогового входа
var max=0.9726 //максимальное значение
var min=0.0230 //минимальное значение
var inA=(MACHINE.getAIn(ain)-min) / (max-min)
value=Math.round(inA*100) //нормируем к 100
MACHINE.setPercentF(value) //устанавливаем
}
Также необходимо добавит постоянный вызов этой функции при включении станка (в ON() LScript)
function ON()
{
SCRIPT.setInterval("updateProportionalF()",200) //каждые 200мс
}
Также необходимо добавит удаление всех постоянных вызовов при выключении станка (в OFF() LScript)
В WLMill beta были добавили 2 новых алгоритма поиска положения оси. Они используют датчик положения inORG (оригинальное положение) когда этот датчик находится в положительном пределе(PORG) и в отрицательном пределе (MORG).
Фактически используются прежний алгоритмы поиска положения оси по концевым датчикам. Но у нового способа есть существенное преимущество – это сохранение максимальной рабочей зоны станка.
При использование PORG/MORG мы пользуемся датчиками только во время поиска положения. В отличие от концевых датчиков.
Также доступна модификация этих режимов с возможностью переезда в заданное положение после успешного завершения поиска положения.
В бета версии была добавлена возможность использования смещения инструмента (не системы координат). В основном эта возможность была реализована для WLTurn (Токарная версия ЧПУ), но в WLMill она также будет полезной.
Зачем.?
Данное смещение можно использовать когда нам нужно работать с несколькими интрументами, которые имеют смещение друг относительно друга. Например:
Несколько шпинделей
Использование 3D щупа на штанге.
Использование камеры.
Прочий инструмент.
Как пользоваться?
Для использования в WLMill нужно выбрать смещение инструмента в G-коде либо задать его в скрипте.
В G – коде (MDI):
P1 //В строке должнен быть “P”, который включает соотв. смещение инструмента. В строке не должно быть параметра “G”.
Смещение инструмента определяется в таблице инструментов как Xo, Yo, Zo. И корректировки смещения Xw ,Yw, Zw (необязательны).
Для удобного задания смещения был написан скрипт (WLToolOffset.js), который добавляет кнопку в низ таблицы инструментов. После чего мы можем “задавать текущие координаты” с помощью этой кнопки. Но фактически будет задаваться смещение инструмента таким, при котором текущая координата установится в заданное значение.
Также были добавлены новые функции в скрипты.
MACHINE.setCurPositionSCT(nameCoord,double pos) //задание текущего положения с помощью смещения инструмента
GCODE.getOfstTool() //возвращает текущий номер смещения инструмента
GCODE.setOffsetTool(int index) // устанавливаем номер смещения
Также смещение инструментов доступно и для фрезерных станков.
Некоторым пользователям удобно(привычно) использовать селектор(галлетник) для установки подачи и скорости вращения шпинделя.
Селектор удобно использовать совместно с аналоговым входом. То есть мы используем переключатель с резисторным делителем. В результате чего имеем несколько фиксированных положений которым соотв. напряжения на входе контроллера.
Для интеграции в WLMill мы используем следующий алгоритм. (файл WLSelector.js)
/* WLSelector – пример работы с селектором (делителем напряжения, с фиксированными положенями)
Установка: 1.Создаём функцию обработчика положения в скрипте WLScript
function updateSelectorF() //установка значения корректора F { var select=12 //количество положений селектора var ain=4 //номер аналогового входа var data=[0,0.5,1,2,5,10,15,25,50,75,100,125,150] //значения которые будем устанавливать.
value=Math.round(MACHINE.getAIn(ain)* select)
MACHINE.setPercentF(data[value]) }
Добавляем вызов функции п1 в функцию ON()
function ON() { SCRIPT.setInterval(“updateSelectorF()”,200) //каждые 200мс //…. }
Для сборки (компиляции) программ которые могут работать снашими контроллерами, а также написания интерфесов (QML) рекомендуется использовать среду разработки Qt Creator.
Для организации графических пользовательских интерфесов была добавлена возможность их встраивания в 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, то наша ось должна двигаться практически по всему диапазону перемещения без ошибок.