Обороты шпинделя в HAL

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
atomichammer
Опытный
Сообщения: 136
Зарегистрирован: 20 янв 2017, 13:10
Репутация: 7
Настоящее имя: Anton
Откуда: Алматы
Контактная информация:

Обороты шпинделя в HAL

Сообщение atomichammer »

Добрый день
Продолжаю осваивать и затачивать LinuxCNC под себя.
Поставил управление оборотами по аналогу, все хорошо работает (нет). Теперь хочется в интерфейсе видеть обороты (заданные, конечно, а не реальные). И вот тут я застрял.
Еще не до конца понимаю логику сигналов и пинов в HAL и никак не могу прикрутить обороты к прогресс-бару.
Исходные данные таковы:
Вот это в основном HAL файле:

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

net spindle-cmd-rpm => pwmgen.0.value
net spindle-on <= motion.spindle-on => pwmgen.0.enable
net spindle-pwm <= pwmgen.0.pwm
setp parport.0.pin-17-out-invert 1
net spindle-on motion.spindle-on => parport.0.pin-17-out
setp pwmgen.0.pwm-freq 200.0
setp pwmgen.0.scale 24000
setp pwmgen.0.dither-pwm true
net spindle-cmd-rpm     <= motion.spindle-speed-out
net spindle-cmd-rpm-abs <= motion.spindle-speed-out-abs
net spindle-cmd-rps     <= motion.spindle-speed-out-rps
net spindle-cmd-rps-abs <= motion.spindle-speed-out-rps-abs
что написать в custom_postgui.hal, чтобы связать spindle-cmd-rpm и pyvcp.spindle_rpm? Я уже даже методом перебора пошел и все равно ничего не получилось.
atomichammer
Опытный
Сообщения: 136
Зарегистрирован: 20 янв 2017, 13:10
Репутация: 7
Настоящее имя: Anton
Откуда: Алматы
Контактная информация:

Re: Обороты шпинделя в HAL

Сообщение atomichammer »

Вот стоило создать тему - тут же все заработало...
НУ еще вопрос вдогонку: где настраивается максимум оборотов и шаг приращения по F11-F12? Кагбе работает все правильно, но добавлять (виртуально) оборотов можно бесконечно... И шаг мелкий, по 100
atomichammer
Опытный
Сообщения: 136
Зарегистрирован: 20 янв 2017, 13:10
Репутация: 7
Настоящее имя: Anton
Откуда: Алматы
Контактная информация:

Re: Обороты шпинделя в HAL

Сообщение atomichammer »

Быстрый ответ: нигде не настраивается и шаг нигде не меняется (кроме исходников)

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

case EMCMOT_SPINDLE_INCREASE:
	    rtapi_print_msg(RTAPI_MSG_DBG, "SPINDLE_INCREASE");
	    if (emcmotStatus->spindle.speed > 0) {
		emcmotStatus->spindle.speed += 100; //FIXME - make the step a HAL parameter
	    } else if (emcmotStatus->spindle.speed < 0) {
		emcmotStatus->spindle.speed -= 100;
	    }
	    break;

	case EMCMOT_SPINDLE_DECREASE:
	    rtapi_print_msg(RTAPI_MSG_DBG, "SPINDLE_DECREASE");
	    if (emcmotStatus->spindle.speed > 100) {
		emcmotStatus->spindle.speed -= 100; //FIXME - make the step a HAL parameter
	    } else if (emcmotStatus->spindle.speed < -100) {
		emcmotStatus->spindle.speed += 100;
	    }
	    break;
Ответить

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