Страница 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? Я не нашел :wik: Хотя китайцы пишут что есть! (и выглядит у меня он чуть по другому, зеленая колодка в 2 ряда)

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

Добавлено: 28 янв 2024, 01:49
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 (391 просмотр) <a class='original' href='./download/file.php?id=210666&sid=cf416a5a2544643a490869c25b7b059a&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
(имя входного пина месы пишете своё)

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

Добавлено: 28 янв 2024, 08:56
mikehv
hmnijp писал(а): Берете сигнал с одного из этих контактов (настроенный на =2), и заводите на вашу плату, далее в хал вешаете это на контакт spindle.0.at-speed
Частотник будет говорить когда набрал частоту, а линукс ждать этого сигнала.
Кстати да. Один раз так делал, но были проблемы с тем, что аналоговое задание частоты на частотник немного плавало и сигнал в итоге был не стабильный. Но это могли быть особенности того частотника. Такую проблему, если оно будет иметь место, можно отфильтровать компонентом в hal.

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

Добавлено: 28 янв 2024, 12:55
rstm
mikehv писал(а): сигнал в итоге был не стабильный.
Это вот оно? Пауза вроде бы и есть, но иногда кажется что нет её! :wtf:
А как "отфильтровать компонентом в 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
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