Перейти к содержимому


Фотография

Пауза перед включением/выключением реле

Пауза

  • Авторизуйтесь для ответа в теме
Сообщений в теме: 3

#1 OFFLINE   snova

snova

    Абитуриент

  • Пользователи
  • Pip
  • 4 сообщений
  • Из:Киров

Отправлено 18 Июль 2015 - 21:10

Помогите справится с проблемой, от меня 2 т.р. в благодарность первому кто предложит любое правильное решение.
 
Собираю ЧПУ для продольной сварки. К выходу Output2 привязано реле, которое включает/выключает сварочную горелку.
 
Задача для чпу простая: пройти по оси X в нужном направлении, включив и выключив реле (реле включает горелку) в нужных местах.
 
Проблема в том, что в месте выключения горелки ось X кратковременно останавливается, перед тем как идти дальше. В месте остановки горелка прожигает металл. Нужно избавиться от этой остановки.
 
Программа простейшая:
 
G0 X0 Y0 Z0
G0 X150 Y0 Z0
G0 M3 X350 Y0 Z0 ( Здесь включается горелка и начинает двигаться вдоль заготовки. вначале этой строчки происходит пауза небольшая - ее можно оставить.)
G0 M5 X400 Y0 Z0 (Здесь горелка выключается и должна в режиме затухания двигаться еще 50 шагов до конца заготовки. Вначале этой строчки происходит пауза небольшая - ее оставлять ни в коем случае нельзя, иначе горелка зависнув прожжет заготовку)
G0 X500 Y0 Z0
 
Вот какие советы нашел в интернете по этому поводу:
 
1. 
 

 

Использовать макрос:

 
Code "G01 F100 X120"                                   'это куда надо ехать
While isMoving()                                           'цикл - ждем завершения движения
   X_DRO = GetDRO(1)                              'получить текущее значение координаты
   If X_DRO > 30 Then                              'точка включения насоса
   
      If X_DRO > 70 Then                      'точка выключения насоса
         DeactivateSignal(Output2)
      Else
         ActivateSignal(Output2)         'насос включится между 30 и 70, после 70 выключится
      End If
   
   End If
   
sleep (10)            ' без этого может повиснуть
Wend

 

 
Пробовал. Горелка просто проезжает до конечной точки. Реле не включается. По логике должно работать, но у меня почему-то не работает, может подскажете в чем ошибка?
 
2

 

Установить длину паузы = 0 

Mach3_Turn_spindle_setup.jpg

 

 

Пробовал. Все осталось попрежнему.

 

3. Пробовал вместо M3/M5 использовать свои макросы M62/M63. В них прописывал ActivateSignal(Output2)/DeactivateSignal(Output2) соответственно. Паузы по-прежнему оставались.

 

Контроллер у меня TB6560 в алюминевом корпусе.
 
Без-имени-2.jpg

 

 
Управляющая программа Mach3
 
Тему мониторю, отвечать на вопросы и пробовать решения буду быстро. Если нужно сниму видео.

Прикрепленные изображения

  • Без-имени-2.jpg
  • Mach3_Turn_spindle_setup.jpg

  • 0

#2 OFFLINE   preps

preps

    Пианист CNC

  • Cтарожил
  • PipPipPipPipPipPipPipPipPipPip
  • 6 846 сообщений
  • Пол:Мужчина
  • Город:взрывающихся у быдла пердаков из-за маечки в сеточку )
  • Интересы:Ура, мы фсех артистов подебилы )
  • Из:Страны-казармы

Отправлено 18 Июль 2015 - 22:10

disable rood/mist relas стоит...

output2 как раз там.

 

и пауза там не перед включением, а после...


Сообщение отредактировал preps: 18 Июль 2015 - 22:53

  • 0

Дневник мастерской https://boosty.to/diycnc


#3 OFFLINE   Roma

Roma

    Гуру CNC

  • Продвинутый
  • PipPipPipPipPipPipPipPipPipPip
  • 1 219 сообщений
  • Пол:Мужчина
  • Из:Воронеж

Отправлено 18 Июль 2015 - 22:19

1. Использовать макрос:

 
Code "G01 F100 X120"                                   'это куда надо ехать
While isMoving()                                           'цикл - ждем завершения движения
   X_DRO = GetDRO(1)                              'получить текущее значение координаты
   If X_DRO > 30 Then                              'точка включения насоса
   
      If X_DRO > 70 Then                      'точка выключения насоса
         DeactivateSignal(Output2)
      Else
         ActivateSignal(Output2)         'насос включится между 30 и 70, после 70 выключится
      End If
   
   End If
   
sleep (10)            ' без этого может повиснуть
Wend
 

Пробовал. Горелка просто проезжает до конечной точки. Реле не включается. По логике должно работать, но у меня почему-то не работает, может подскажете в чем ошибка?

В макросе одна ошибка, так правильней:

 

X_DRO = GetDRO(0)

Иначе, идёт контроль текущей координаты Y, т.е. DRO(1).


Сообщение отредактировал Roma: 18 Июль 2015 - 22:52

  • 0

#4 OFFLINE   snova

snova

    Абитуриент

  • Пользователи
  • Pip
  • 4 сообщений
  • Из:Киров

Отправлено 18 Июль 2015 - 23:22

В макросе одна ошибка, так правильней:

 

X_DRO = GetDRO(0)

Иначе, идёт контроль текущей координаты Y, т.е. DRO(1).

 

Все сработало. Больше спасибо. Сейчас в ЛС напишу.


  • 0





Темы с аналогичным тегами Пауза

Количество пользователей, читающих эту тему: 0

0 пользователей, 0 гостей, 0 анонимных