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) // устанавливаем номер смещения

Также смещение инструментов доступно и для фрезерных станков.

https://youtu.be/9wAd8sSuW9M

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.

Создан новый модуль MSpindle

До настоящего времени у контроллера было реализована возможность управления шпинделем с помощью выхода ШИМ или аналогового выхода.

В beta были добавлены:

  • возможность дискретного управления шпинделем (вкл/выкл)
  • можно задавать выходы для организации прямого и обратного вращения шпинделя
  • возможность управления шпинделем с помощью импульсов (шаг/направление)
  • остановка шпинделя контроллером по сигналу inEMGStop при дискретном управлении (без участия компьютера)
  • поддержка многошпиндельности (пока нет поддержки в WLMill)

В скриптах (M3/M4/M5) необходимо указывать установку состояние шпинделя.

M3<<<MACHINE.setSpindleState(1) // вращение в прямом направлении

M4<<<MACHINE.setSpindleState(-1) // вращение в обратном направлении

M5<<<MACHINE.setSpindleState(0) // остановка

Для совместимости с прошлыми версиями команда MACHINE.enableSOut интерпретируется как:

  • MACHINE.enableSOut(1) = MACHINE.setSpindleState(1)
  • MACHINE.enableSOut(0) = MACHINE.setSpindleState(0)

Изменено окно настройки шпинделя, добавлены подсказки:

Установка QtCreator

Для сборки (компиляции) программ которые могут работать снашими контроллерами, а также написания интерфесов (QML) рекомендуется использовать среду разработки Qt Creator.

Windows. Установка на примере Qt5.12.2:

1. Рекомендуем скачать offline инсталятор с нашего сайта. https://wldev.ru/data/other/qt/qt-opensource-windows-x86-5.12.2.exe . – Это иснталятор которому не нужно подключение к сети интернет.

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

3. Запускаем инсталятор. Жмём далее…..И выбираем следующие (минимальные) параметры установки.

4. Установка закончена.

Linux

Для установки в среде линукс нужно последовательно выполнить несколько комманд для установки.

Linux(Debian)

sudo apt install qt5-default
sudo apt install qtcreator
sudo apt install qtdeclarative5-dev
sudo apt install libqt5serialport5-dev
sudo apt install qtscript5-dev
sudo apt install qtmultimedia5-dev
sudo apt install libsdl2-dev
sudo apt install libqt5multimedia5-plugins

Linux(Armbian)

sudo apt install qtbase5-dev qtchooser qt5-qmake qtbase5-dev-tools
sudo apt install qtcreator
sudo apt install qtdeclarative5-dev
sudo apt install libqt5serialport5-dev
sudo apt install qtscript5-dev
sudo apt install qtmultimedia5-dev
sudo apt install libqt5opengl5-dev
sudo apt install libqt5multimedia5-plugins

WLMIll beta + QML(Qt)

Для организации графических пользовательских интерфесов была добавлена возможность их встраивания в WLMill . Данные интерфесы должны быть написаны на QML.

Файлы *.qml размещаются в папке /qml/

Для добавления файла на главный экран имеется функция:

WLMILL.addTabQML(“file.qml”)

Для вызова окна QML как диалога:

WLMILL.runQML(“file.qml)

Ознокомительное видео с использованием WLProbe.qml

Будет сделано несколько базовых уроков по созданию простых интерфесов.

https://youtu.be/KPnjLa5OOF4