Фоновые задачи

Все представленные в этой статье макросы для их корректной работы необходимо назначить на фоновые задачи через меню Сервис-Настройки-Фоновые задачи. Версия визуализатора должна быть 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()
    }
}
Предзаказ
Предзаказ успешно отправлен!
Имя *
Телефон *
Добавить в корзину
Название товара
100 ₽
1 шт.
Перейти в корзину
Обратный звонок
Запрос успешно отправлен!
Имя *
Телефон *
Заявка

Я ознакомлен и согласен с условиями оферты и политики конфиденциальности.

Заказ в один клик

Я ознакомлен и согласен с условиями оферты и политики конфиденциальности.