WLMill >> WLTurn для токарного станка (первая версия)

В WLMill-beta была добавлена возможность для работы с токарным станком(WLTurn). Делается это выставлением селектора в меню.

Для токарной версии выбираем Turn. После чего необходимо перезагрузить программу.

В заголовке окна у нас появится надпись WLTurn. Теперь у нас изменилось следующее:

1.Изменилась ориентация осей. Теперь кнопки на клавиатуре влево/вправо = Z, вверх/вниз = X pageUp/pageDown = Y.

2. Изменились стандартные ориентации визуального вида.

3. В G коде добавилась поддержка G7(диаметр), G8(радиус) по X.

4. Изменилась смена инструмента в G коде. Инструмент и его смена происходит по вызову T

Например:

T1 // установить инструмент №1 (Устанавливается только инструмент!!!)

T05 // установить инструмент №5 (Устанавливается только инструмент!!!)

T101 // установить инструмент №1 и смещение №1

T911 // установить инструмент №9 и смещение №11

T1010 // установить инструмент №10 и смещение №10

T1505 // установить инструмент №15 и смещение №5

T55556 // неверный ввод

При смене инструмента вызывается функция changedTool в MScript. Данную функцию можно переопределить и добавить необходимые действия (wek).

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

5. Работа со смещениями инструмента.(они доступны и в WLMill)

В закладке Tool желательно добавить колонки для отображения смещения инструмента. Для этого нажимаем на колонки и вводим колонки которые мы хотим отображать через запятую.

index — индекс инструмента

Xo,Zo — смещение инструмента

Xw,Zw — коррекция смещения инструмента ( фактическое смещение = Xo+Xw)

Comment — добавили колонку комментария для каждого инструмента. В ней мы можем коротко охарактеризовать инструмент. Теперь у нас будут подсвечиваться(красным) смещения которые сейчас активны.

Задание смещений. Задание смещений удобно производить с помощью скрипта WLToolOffset.js — он идёт по умолчанию с программой. Также его можно добавить самостоятельно.

WLToolOffset — Добавляет кнопку внизу таблицы инструментов. Нажав на неё мы можем установить смещения инструмента задав текущее(истинное) значение координаты для этого инструмента. После чего будет рассчитано и установлено смещение инструмента. И координаты установятся нужные значения.

Общий алгоритм задания смещений будет выглядеть так:

1. Устанавливаем первый инструмент он будет базовый. (вводим Т101)

2. Задаём ему смещения Xo=0 Yo=0 (вводим в таблицу).

3. Определяем координаты Z и X для этого инструмента и вводим их как смещение СК (Где кнопки ручных перемещений)

4. Меняем инструмент (Т202 — инструмент №2 смещение №2) и определяем координаты Z и X для этого инструмента и задаём смещения этого инструмента с помощью кнопки ToolOffset.

5.Проделываем п3 и п4 для остальных инструментов.

PS На данный момент не отлажена работа станка с середины программы. Она будет происходить как и с WLMill (подход XY и опускание по Z) !!!

Видео:

WLMill-beta. Доработан редактор скриптов.

Были добавлены короткие описания типов элементов которые можно подставить в текст скрипта.

obj — объект к нему можно обращаться через функции.

var — глобальные переменные который определил пользователь (в тексте скриптов)

fun — функция которая была определена

pro — свойства, которые можно использовать в программе как глобальные переменные. Но которые были созданы скриптом. Например на скрине снизу WLJoystickPath — путь до файла WLJoystick.js

wek — функция которую можно переопределить в тексте скрипта. То есть если не было определения этой функции в тексте скрипта, то будет выполняться стандартная функция (из памяти WLMill). Если мы хотим переопределить эту функцию, то мы выбираем её и редактор автоматически вставит(из памяти WLMill) в текст стандартной функции в текст скрипта.

Например мы можем переопределить 4 функции которые ещё не определены, но используются стандартные.

WLDEV + Aliexpress = wldev.aliexpress.ru

Был сделан магазин на площадке Aliexpress…

https://wldev.aliexpress.ru

WLMill-beta. Добавлен функционал для Кнопок

Уже давно можно создавать пользовательские кнопки. При нажатии на которые можно запускать выполнение скриптов. Но до настоящего времени отсутствовала возможность фиксации кнопки в нажатом положении (чекабельности).

Теперь это свойство доступно. И для работы с ним добавлено несколько методов.

setChekable(enable) // вкл/выкл использования защёлкивания

setChecked(check) // перевести кнопку в состояние нажата/отпущена

isChecked() // -> возвращает текущее состояние кнопки

setScriptRelease( txt) //устанавливает скрипт выполнения при отжатии кнопки

setScript( txt) //устанавливает скрипт выполнения при нажатии кнопки ///как и раньше

Ниже приведён пример функции которая создаёт кнопку ENABLEH с фиксацией. Для теста можно добавить данную функцию в MScript и добавить её вызов в init().

function initButtonH()
{
TOOLBAR2.addButton("ENABLEH")

ENABLEH.setShow(1)
ENABLEH.setText("Enable H")
ENABLEH.setCheckable(1)
ENABLEH.setScript("SCRIPT.console('press')");
ENABLEH.setScriptRelease("SCRIPT.console('release')");
}

WLMill-beta. Изменено окно редактирования скриптов.

В WLMill beta было переработано окно редактирования скриптов.

Было добавлено:

  1. Одновременная работа с несколькими файлами (которые были добавлены через include).
  2. Подсветка синтаксиса.
  3. Добавлена система подсказок при написание скриптов. То есть при нажатии CTRL+Пробел редактор может предложить нам варианты, что можно вписать. Это могут быть функции, глобальные переменные, объекты и их методы. И нам не надо держать в голове весь багаж этих функций.

WLMill + Подключение переменного резистора

У контроллера 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)

function OFF() 
{
SCRIPT.clearInterval();
}

Поясняющее видео:

https://youtu.be/kg5L09z9U3E

WLMill + PORG,MORG (алгоритм поиска положения оси)

В WLMill beta были добавили 2 новых алгоритма поиска положения оси. Они используют датчик положения inORG (оригинальное положение) когда этот датчик находится в положительном пределе(PORG) и в отрицательном пределе (MORG).

Фактически используются прежний алгоритмы поиска положения оси по концевым датчикам. Но у нового способа есть существенное преимущество — это сохранение максимальной рабочей зоны станка.

При использование PORG/MORG мы пользуемся датчиками только во время поиска положения. В отличие от концевых датчиков.

Также доступна модификация этих режимов с возможностью переезда в заданное положение после успешного завершения поиска положения.

WLMill + Смещение инструмента

В бета версии была добавлена возможность использования смещения инструмента (не системы координат). В основном эта возможность была реализована для WLTurn (Токарная версия ЧПУ), но в WLMill она также будет полезной.

Зачем.?

Данное смещение можно использовать когда нам нужно работать с несколькими интрументами, которые имеют смещение друг относительно друга. Например:

  1. Несколько шпинделей
  2. Использование 3D щупа на штанге.
  3. Использование камеры.
  4. Прочий инструмент.

Как пользоваться?

Для использования в 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 + Подключение селектора.

Некоторым пользователям удобно(привычно) использовать селектор(галлетник) для установки подачи и скорости вращения шпинделя.

Селектор удобно использовать совместно с аналоговым входом. То есть мы используем переключатель с резисторным делителем. В результате чего имеем несколько фиксированных положений которым соотв. напряжения на входе контроллера.

Для интеграции в 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. Добавляем вызов функции п1 в функцию ON()

function ON()
{
SCRIPT.setInterval(«updateSelectorF()»,200) //каждые 200мс
//….
}

  1. Добававляем отмену вызова п2 в функцию OFF()

function OFF()
{
SCRIPT.clearInterval();
//….
}

*/

ОС Astra + WLMill = Astra CNC

Многие пользователи стали всё чаще обращать внимание на операционную систему Astra.

В связи с чем была сделана сборка программы WLMill прямо в ОС Astra.

На первый взляд ОС Astra по интерфейсу сильно приближена к Windows.