Создан новый модуль 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

WLMill + PID + FF . Энкодерная линейка.

Для более точного позиционирования в WLMill была добавлена поддержка энкодерных линеек с организацией обратной связи ещё этой весной. Однако динамическое позиционирование было не столько хорошим как хотелось. И чтобы его улудшить были добавлены 2 коэффициента (FFP\FFD) прямой регулировки (без учёта линейки). В результате чего динамическая точность существенно повысилась.

Общий принцип сейчас такой:

Общий алгоритм такой.

  1. Устанавливаем все коэффициенты в ноль.
  2. Расчитываем и устанавливаем FFP для шагового двигателя. FFP = (один шаг двигателя)/(шаг линейки)
  3. Устанавливаем режим для ШД все 0. (нет ограничений)
  4. Устанавливаем заведомо большую ошибку позиционирования. Например 10мм
  5. Включаем WLMill и пробуем подвигать ось в ручном режиме. При этом нужно проверить совпадает ли направление энкодерного входа(по закладке где входы/выходы ). В случае необходимости инвертируем энкодер ПКМ на энкодер в настройке оси.
  6. Если мы правильно задали FFP, то наша ось должна двигаться практически по всему диапазону перемещения без ошибок.
  7. Настраиваем FFD,P,I,D. И Уменьшаем ошибку.

необходимо обновить WLMill + прошивка beta

WLMill — упреждение люфта

У WLMill появилась возможность опережения выборки люфта какой либо осью если она на текущем элементе перемещения не движется. То есть мы экономим время, которое мы тратим на выборку люфта. Данная функция даёт приемущество если обработка в основном происходит ортогонально, то есть движения вдоль X,Y,Z.
Для включения и выключения данной возможности был добавлен G код.

G111 включить опережающую выборку люфта
G110 выключить опережающую выборку люфта

Без опережающей выборки люфта:

С опережающей выборки люфта:

Новый контроллер WLM55E (USB/Ethernet)

Данный контроллер был разработан на базе WLM55J и имеет схожие характеристики. Но его основной особенностью является наличие интерфейса Ethernet (модуль W5500).

На данный момент:

4 оси

14 входов

12 выходов

2 ШИМ выхода

4 Входа подключения энкодеров

1 преобразователь ШИМ напряжение

Интерфейс USB/Ethernet

USB изолятор для контроллеров

Иногда случаются пропажи связи по USB если работает частотник. Купили на испытание вот такую штуку. Пока всё хорошо

WLMill script.

Упразднён GCODE.isMCode(num).

Раньше эта функция использовалась для определения включен ли шпиндель. Сейчас для этого можно использовать:

MACHINE.isSpindleCW()Возвращает 1 если шпиндель вращается по часовой стрелке. (M3)
MACHINE.isSpindleCCW()Возвращает 1 если шпиндель вращается против часовой стрелке. (M4)
MACHINE.isSpindleStop()Возвращает 1 если шпиндель остановлен. (M5)

WLMill beta — добавлена панель с пользовательскими кнопками в таблицу инструментов

  1. Таблица перенесена в отдельную закладку. Ниже таблицы расположена панель для добавления кнопок.
  2. Новая панель кнопок называется 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() — индекс выбранного инструмента (на котором сейчас указатель)

Обновился WLMill <=> WLMill — beta. В WLMill -Beta новые возможности!.

  1. Количество инструментов стало неограниченным, также стала возможным применять свободную нумерацию инструментов. То есть не по порядку.

Для работы с этим добавлены новые функции в 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) то будет

Также возможен прямой ввод данных в таблицу.