Страница 3 из 3
Re: Как в EMC настраивается задержка на разгон шпинделя
Добавлено: 27 янв 2024, 22:44
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. Вариантов масса, в зависимости от уровня знаний.
Re: Как в EMC настраивается задержка на разгон шпинделя
Добавлено: 27 янв 2024, 23:19
Kost_irk
rstm писал(а): ↑
Есть только FO
Не получится, на smd-taxi нет аналоговых входов, куда это подать.
Re: Как в EMC настраивается задержка на разгон шпинделя
Добавлено: 28 янв 2024, 00:59
rstm
mikehv писал(а): ↑
У меня управление частотником сделано по modbus. При этом всё просто отслеживается. И реальные значения учитываются без костылей.
Вот у этого HL3000-4040-T (
manual) есть modbus? Я не нашел
Хотя китайцы
пишут что есть! (и выглядит у меня он чуть по другому, зеленая колодка в 2 ряда)
Re: Как в EMC настраивается задержка на разгон шпинделя
Добавлено: 28 янв 2024, 01:49
hmnijp
rstm писал(а): ↑28 янв 2024, 00:59
mikehv писал(а): ↑
У меня управление частотником сделано по modbus. При этом всё просто отслеживается. И реальные значения учитываются без костылей.
Вот у этого HL3000-4040-T (
manual) есть modbus? Я не нашел
Хотя китайцы
пишут что есть! (и выглядит у меня он чуть по другому, зеленая колодка в 2 ряда)
Не нужен вам никакой аналоговый вход.
Если судить по мануалу, и переводу на английский, то есть сигнал о достижении заданной частоты,
его можно отправить на выходы управляемые параметрами pr112-114, если установить их =2
Берете сигнал с одного из этих контактов (настроенный на =2), и заводите на вашу плату, далее в хал вешаете это на контакт spindle.0.at-speed
Частотник будет говорить когда набрал частоту, а линукс ждать этого сигнала.
net spindle-at-speed spindle.0.at-speed <= parport.0.pin-10-in
(имя входного пина месы пишете своё)
Re: Как в EMC настраивается задержка на разгон шпинделя
Добавлено: 28 янв 2024, 08:56
mikehv
hmnijp писал(а): ↑
Берете сигнал с одного из этих контактов (настроенный на =2), и заводите на вашу плату, далее в хал вешаете это на контакт spindle.0.at-speed
Частотник будет говорить когда набрал частоту, а линукс ждать этого сигнала.
Кстати да. Один раз так делал, но были проблемы с тем, что аналоговое задание частоты на частотник немного плавало и сигнал в итоге был не стабильный. Но это могли быть особенности того частотника. Такую проблему, если оно будет иметь место, можно отфильтровать компонентом в hal.
Re: Как в EMC настраивается задержка на разгон шпинделя
Добавлено: 28 янв 2024, 12:55
rstm
mikehv писал(а): ↑
сигнал в итоге был не стабильный.
Это
вот оно? Пауза вроде бы и есть, но иногда кажется что нет её!
А как "отфильтровать компонентом в HAL"?
Re: Как в EMC настраивается задержка на разгон шпинделя
Добавлено: 28 янв 2024, 13:15
mikehv
rstm писал(а): ↑
Это вот оно
Оно. Можно кстати просто конденсатор на сигнальный провод повесить.
Можно сигнал в ладдер завести, там взять таймер и настроить его на задержку отключения. Что нибудь 0,2 секунды. Выход таймера пустить на at.speed
Компонент не помню точно какой использовал. Надо почитать
Re: Как в EMC настраивается задержка на разгон шпинделя
Добавлено: 28 янв 2024, 14:00
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
Re: Как в EMC настраивается задержка на разгон шпинделя
Добавлено: 29 янв 2024, 01:34
rstm
Спасибо! Оказалось мне нужно два фильтра. Один для "таблетки", второй для "паузы перед стартом". Ещё вычитал что есть некий
dbounce помимо
debounce. Оба попробовал
Сложно но интересно!
Код: Выделить всё
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