Плагин COM порта для WLMill (WLSerialPortPlugin)

Что такое плагин?

Плаги́н[1][2] (англ. plug-in, от plug in «подключать») — независимо компилируемый программный модуль, динамически подключаемый к основной программе и предназначенный для расширения и/или использования её возможностей. Плагины обычно выполняются в виде библиотек общего пользования.

Уже давно была добавлена возможность написания своих плагинов для WLMill. Сейчас был создан пример плагина для работы с серийным портом. Давайте разберёмся что с ними делать.

Например у нас есть задача принимать данные с COM порта и производить управление станком удалённо, например позиционировать что либо.

Как организовать работу плагина:

  1. Создаём папку plugins рядом с программой WLMill (если её нет).
  2. Копируем туда файл WLSerialPortPlugin.dll
  3. Запускаем WLMill. У нас должен появится новый объект SERIALPORT в скриптах LSCRIPT и MSCRIPT. С помощью него мы будем работать с портом.
  4. Организуем работу с портом. При нажатии на кнопку вкл/выключения мы будем открывать и закрывать порт. Для этого добавим строки в MScript, в функции функции ON() и OFF(). Открываем редактор скрипта.

Находим эти функции (если они переопределены) или вставляем их в удобное место.

Для этого за пределами других функций (например в самом верху нажимаем Ctrl+Пробел и выбираем “wek ON()”.

function ON()
{
 SCRIPT.console("ON()")
 SCRIPT.console("OPEN COM "+ SERIALPORT.open("COM182"));
}

function OFF()
{
 SCRIPT.clearInterval()
 SCRIPT.clearTimeout()

 SERIALPORT.close();
}

Если всё верно, то SERIALPORT – должен быть зелёного цвета.

По умолчанию скорость передачи 9600бит/с. Её можно переопределить с помощью SERIALPORT.setBaudRate(4800) – установили скорость 4800бит/с

В функции ON мы открывaем порт COM182 и выводим сообщение в консоль MSCRIPT.

Номер ком порта можно найти в диспетчере устройств.

При выключении мы закроем порт.

  • Теперь нужно организовать приём сообщений от ком порта. При приёме сообщений вызывается функция readDataSerialPort() скрипa LScript (фоновый скрипт). Определим её
function readDataSerialPort()
{
 var data = SERIALPORT.readAll()
 SCRIPT.console(data)

//MACHINE.runGCode(data) //если раскомментировать, то выполнится полученная строка как G код

}

В данной функции мы читаем все данные и просто выводим их в консоль LScript.

Внимание!!! Если мы уберём // то у нас будет выполняться строка которую мы приняли.

  • Для отправки сообщений используется функция

SERIALPORT.sendStr(“X45 Y123.5”)

PS. Также можно будет написать свои плагины. Как это делать? скоро…