Как в EMC настраивается задержка на разгон шпинделя

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
mikehv
Мастер
Сообщения: 2103
Зарегистрирован: 14 авг 2013, 10:10
Репутация: 1170
Откуда: Иваново
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение mikehv »

rstm писал(а): 27 янв 2024, 22:13 Здравствуйте! А как получить в LinuxCNC значение выхода GPIO_PWM на плате SMD-Taxi, а затем заставить его влиять на spindle.at-speed? (интерфейс qtdragon) Чтоб задержка на разгон шпинделя длилась пока на сблизятся заданное и актуальное значения PWM. Modbus на HL3000-4040-T отсутствует. Есть только FO который Изображение
Pwm же будет без учёта разгона выдавать задание. Разгон задаётся в частотнике. У меня управление частотником сделано по modbus. При этом всё просто отслеживается. И реальные значения учитываются без костылей.
По простому, можно сделать с помощью таймера и ладдера. Или же просто в gкоде прописать паузу через g4. Вариантов масса, в зависимости от уровня знаний.
Kost_irk
Мастер
Сообщения: 997
Зарегистрирован: 19 июл 2018, 07:46
Репутация: 193
Откуда: Иркутск
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение Kost_irk »

rstm писал(а): Есть только FO
Не получится, на smd-taxi нет аналоговых входов, куда это подать.
rstm
Кандидат
Сообщения: 49
Зарегистрирован: 25 фев 2018, 16:20
Репутация: 5
Настоящее имя: Рустам
Откуда: Уфа
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение rstm »

mikehv писал(а): У меня управление частотником сделано по modbus. При этом всё просто отслеживается. И реальные значения учитываются без костылей.
Вот у этого HL3000-4040-T (manual) есть modbus? Я не нашел :wik: Хотя китайцы пишут что есть! (и выглядит у меня он чуть по другому, зеленая колодка в 2 ряда)
Аватара пользователя
hmnijp
Мастер
Сообщения: 1723
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение hmnijp »

rstm писал(а): 28 янв 2024, 00:59
mikehv писал(а): У меня управление частотником сделано по modbus. При этом всё просто отслеживается. И реальные значения учитываются без костылей.
Вот у этого HL3000-4040-T (manual) есть modbus? Я не нашел :wik: Хотя китайцы пишут что есть! (и выглядит у меня он чуть по другому, зеленая колодка в 2 ряда)

Не нужен вам никакой аналоговый вход.
Если судить по мануалу, и переводу на английский, то есть сигнал о достижении заданной частоты,
его можно отправить на выходы управляемые параметрами pr112-114, если установить их =2
2024-01-28 02-43-26.jpg (261 просмотр) <a class='original' href='./download/file.php?id=210666&sid=9926e2126c0654b77bf5d2c7036ffbb0&mode=view' target=_blank>Загрузить оригинал (100.24 КБ)</a>
Берете сигнал с одного из этих контактов (настроенный на =2), и заводите на вашу плату, далее в хал вешаете это на контакт spindle.0.at-speed
Частотник будет говорить когда набрал частоту, а линукс ждать этого сигнала.
net spindle-at-speed spindle.0.at-speed <= parport.0.pin-10-in
(имя входного пина месы пишете своё)
Аватара пользователя
mikehv
Мастер
Сообщения: 2103
Зарегистрирован: 14 авг 2013, 10:10
Репутация: 1170
Откуда: Иваново
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение mikehv »

hmnijp писал(а): Берете сигнал с одного из этих контактов (настроенный на =2), и заводите на вашу плату, далее в хал вешаете это на контакт spindle.0.at-speed
Частотник будет говорить когда набрал частоту, а линукс ждать этого сигнала.
Кстати да. Один раз так делал, но были проблемы с тем, что аналоговое задание частоты на частотник немного плавало и сигнал в итоге был не стабильный. Но это могли быть особенности того частотника. Такую проблему, если оно будет иметь место, можно отфильтровать компонентом в hal.
rstm
Кандидат
Сообщения: 49
Зарегистрирован: 25 фев 2018, 16:20
Репутация: 5
Настоящее имя: Рустам
Откуда: Уфа
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение rstm »

mikehv писал(а): сигнал в итоге был не стабильный.
Это вот оно? Пауза вроде бы и есть, но иногда кажется что нет её! :wtf:
А как "отфильтровать компонентом в HAL"?
Аватара пользователя
mikehv
Мастер
Сообщения: 2103
Зарегистрирован: 14 авг 2013, 10:10
Репутация: 1170
Откуда: Иваново
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение mikehv »

rstm писал(а): Это вот оно
Оно. Можно кстати просто конденсатор на сигнальный провод повесить.
Можно сигнал в ладдер завести, там взять таймер и настроить его на задержку отключения. Что нибудь 0,2 секунды. Выход таймера пустить на at.speed
Компонент не помню точно какой использовал. Надо почитать
Аватара пользователя
hmnijp
Мастер
Сообщения: 1723
Зарегистрирован: 20 авг 2017, 15:02
Репутация: 526
Настоящее имя: Константин
Откуда: Ульяновск
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение hmnijp »

rstm писал(а): А как "отфильтровать компонентом в HAL"?
mikehv писал(а): Компонент не помню точно какой использовал. Надо почитать
Debounce фильтр
https://linuxcnc.org/docs/html/man/man9/debounce.9.html
loadrt debounce cfg=1 (for 1 comp input declare in hal file)
addf debounce.0 servo-thread
setp debounce.0.delay 4 (number of servothread cycles for delay)

net xxx-switch debounce.0.0.in <= (your phisical pin) hm2_5i25.0.7i77.0.0.input-33
net home-xxx debounce.0.0.out => (your signal with filter-delay) joint.0.home
rstm
Кандидат
Сообщения: 49
Зарегистрирован: 25 фев 2018, 16:20
Репутация: 5
Настоящее имя: Рустам
Откуда: Уфа
Контактная информация:

Re: Как в EMC настраивается задержка на разгон шпинделя

Сообщение rstm »

hmnijp писал(а): Debounce фильтр
Спасибо! Оказалось мне нужно два фильтра. Один для "таблетки", второй для "паузы перед стартом". Ещё вычитал что есть некий dbounce помимо debounce. Оба попробовал :cheesy: Сложно но интересно!

Код: Выделить всё

loadrt dbounce count=2

addf dbounce.0 servo-thread
setp dbounce.0.delay 100
net db-probe-in dbounce.0.in <= [HMOT](CARD0).gpio.020.in_not
net probe-in dbounce.0.out => motion.probe-input

addf dbounce.1 servo-thread
setp dbounce.1.delay 3000
net db-spindle-at-speed-in dbounce.1.in <= [HMOT](CARD0).gpio.018.in_not
net spindle-at-speed dbounce.1.out => spindle.0.at-speed
Ответить

Вернуться в «LinuxCNC»