Все представленные в этой статье макросы для их корректной работы необходимо назначить на фоновые задачи через меню Сервис-Настройки-Фоновые задачи. Версия визуализатора должна быть 4.3 или выше.
Запуск определенной управляющей программы по внешней физической кнопке
При замыкании кнопки, подключенной ко входу из переменной INPUT_ID, происходит открытие и запуск файла управляющей программы G-кода, полный путь к которому указывается в переменной GCODE_FILE_PATH. Если при этом значение переменной CHECK_STATUS_IDLE равно 1, то перед попыткой открыть файл осуществляется проверка состояния контроллера: если в данный момент уже выполняется какая-либо другая УП или состояние контроллера не ГОТОВ, запуск УП из макроса отменяется.
Код макроса:
{
// БЛОК КОНФИГУРАЦИОННЫХ ПЕРЕМЕННЫХ
// Макрос для запуска управляющей программы (УП) по внешней кнопке
// !!! В макросе нужно изменить только переменные INPUT_ID, CHECK_STATUS_IDLE и GCODE_FILE_PATH.
// !!! Макрос необходимо назначить на фоновую задачу, которая будет периодически его запускать.
// INPUT_ID - идентификатор входа, к которому подключена кнопка запуска УП.
// Например, 7 означает, что кнопка подключены ко входу IN7 (переопределенный RST).
// Соответствующий вход нужно переопределить на сервисную функцию (Ix) в меню Станок-Конфигурация-Входы/выходы.
var INPUT_ID = 7
// CHECK_STATUS_IDLE - включение проверки, чтобы запускать задачу, только если контроллер находится в состоянии Готов
// и никакая другая УП не выполняется. 1 - проверка включена, 0 - выключена.
var CHECK_STATUS_IDLE = 1
// GCODE_FILE_PATH - полный путь к файлу управляющей программы G-кода, который требуется запустить по нажатию на кнопку.
// В Windows разделителем каталогов является двойной обратный слеш.
var GCODE_FILE_PATH = "D:\\Documents\\G-Code\\rectangle.tap"
}
{
// БЛОК КОДА МАКРОСА
var detected = 0
if ($.inputs["i" + String(INPUT_ID)]) {
if (CHECK_STATUS_IDLE == 1) {
// Проверяем, запущена ли какая-то управляющая программа на исполнение.
if ($.tasklist.is_running()) {
$.message("На выполнении находится другая управляющая программа, запуск УП отменён!")
$.exit()
}
// Проверяем статус контроллера.
// $.status - значение 1 означает состояние Готов
if ($.status != 1) {
$.message("Контроллер не в состоянии ГОТОВ, запуск УП отменён!")
$.exit()
}
}
// Останавливаем текущую УП, если запущена, и открываем нужный нам файл УП
$.tasklist.stop()
var res = $.tasklist.add_task(GCODE_FILE_PATH, 1)
if (res == 0) {
$.message("Ошибка открытия файла " + String(GCODE_FILE_PATH))
$.exit()
}
// Запускаем G-код файл на исполнение
$.tasklist.start_hold()
var detected = 1
}
if (detected == 1) {
while($.inputs["i" + String(INPUT_ID)])
$.wait()
}
}
Коррекция скорости рабочей подачи по внешней физической кнопке
При нажатии на кнопку, подключенную ко входу DECREASE_FEED_IN_ID, происходит уменьшение скорости подачи. При нажатии на кнопку, подключенную ко входу INCEREASE_FEED_IN_ID, происходит увеличение скорости подачи. При нажатии на кнопку, подключенную ко входу RESET_FEED_IN_ID, осуществляется сброс коррекции подачи в 100%.
Код макроса:
{
// БЛОК КОНФИГУРАЦИОННЫХ ПЕРЕМЕННЫХ
// Макрос для регулировки скорости рабочей подачи с помощью физически подключенных к контроллеру кнопок
// !!! В макросе нужно изменить только переменные DECREASE_FEED_IN_ID, INCEREASE_FEED_IN_ID и RESET_FEED_IN_ID.
// !!! Макрос необходимо назначить на фоновую задачу, которая будет периодически его запускать.
// DECREASE_FEED_IN_ID - идентификатор входа, к которому подключена кнопка уменьшения подачи.
// Например, 7 означает, что датчик/кнопка подключены ко входу IN7 (переопределенный RST).
// Соответствующий вход нужно переопределить на сервисную функцию (Ix) в меню Станок-Конфигурация-Входы/выходы.
var DECREASE_FEED_IN_ID = 7
// INCEREASE_FEED_IN_ID - идентификатор входа, к которому подключена кнопка увеличения подачи.
// Например, 8 означает, что датчик/кнопка подключены ко входу IN8 (переопределенный HOLD).
// Соответствующий вход нужно переопределить на сервисную функцию (Ix) в меню Станок-Конфигурация-Входы/выходы.
var INCEREASE_FEED_IN_ID = 8
// RESET_FEED_IN_ID - идентификатор входа, к которому подключена кнопка сброса коррекции скорости подачи.
// Например, 9 означает, что датчик/кнопка подключены ко входу IN9 (переопределенный STRT).
// Соответствующий вход нужно переопределить на сервисную функцию (Ix) в меню Станок-Конфигурация-Входы/выходы.
var RESET_FEED_IN_ID = 9
}
{
// БЛОК ФУНКЦИЙ
// Функция грубого увеличения скорости подачи (на 10%)
function fead_rate_increase_coarse() {
$.rt.ov.feed.coarse_plus()
}
// Функция грубого уменьшения скорости подачи (на 10%)
function fead_rate_decrease_coarse() {
$.rt.ov.feed.coarse_minus()
}
// Функция точного увеличения скорости подачи (на 1%)
function fead_rate_increase_fine() {
$.rt.ov.feed.fine_plus()
}
// Функция точного уменьшения скорости подачи (на 1%)
function fead_rate_decrease_fine() {
$.rt.ov.feed.fine_minus()
}
// Функция сброса коррекции скорости подачи
function fead_rate_reset() {
$.rt.ov.feed.reset()
}
}
{
// БЛОК КОДА МАКРОСА
if ($.inputs["i" + String(DECREASE_FEED_IN_ID)]) {
// Если требуется точная регулировка, замените функцию ниже на fead_rate_decrease_fine()
fead_rate_decrease_coarse()
}
if ($.inputs["i" + String(INCEREASE_FEED_IN_ID)]) {
// Если требуется точная регулировка, замените функцию ниже на fead_rate_increase_fine()
fead_rate_increase_coarse()
}
if ($.inputs["i" + String(RESET_FEED_IN_ID)]) {
fead_rate_reset()
}
}
