Планировал управлять оборотами шпинделя сигналом 0-10В.
Mesa 7I96 генерирует ШИМ, этот сигнал подаем на плату конвертации ШИМ в сигнал 0-10В (PWM10V), плата конвертации подает сигнал на сервопривод. Подключил внешние сигналы энкодера шпинделя с сервопривода (A,B) на Mesa, думал с их помощью контролировать скорость в заданном диапазоне.
Получилось управлять шпинделем, но обороты не соответствовали тем, что были заданы. К примеру в программе задано 100 об/минуту, значение hm2_7i96.0.pwmgen.00.value = 100, а показания энкодера hm2_7I96.0.encoder.00.velocity-rpm = 534 (они советовали реальным оборотам). Вероятнее всего не правильная настройка, оставлю себе на память архив с настройками.
Отказался от этой идеи, так как в документации к плате PWM10V было написано следующее: Разрешающая способность 0,1В. Если правильно понял, плата способна выдавать сигнал от 0 до 10В с минимальным шагом 0,1В. При 4000 об/минуту на шпинделе, минимальный шаг изменения 40об/минуту (если предположить, что сигнал будет линейным).
Забыл проверить интересную мысль
xenon-alien.
xenon-alien писал(а): ↑
Вы чисто для интереса ткните мултиметром (только осторожно) в режиме измерения напряжения. Чёрный щуп на землю, а красный на ШИМ.
Полюбуйтесь результатом изменяя обороты.
Решил перейти на управление оборотами шпинделя с помощью Step\Dir. Залил стандартную прошивку в Mesa, перегрузил и проверил настройки.
Код: Выделить всё
mesaflash --device 7i96 --addr 10.10.10.10 --write 7i96d.bit
mesaflash --device 7i96 --addr 10.10.10.10 --reload
mesaflash --device 7i96 --addr 10.10.10.10 --readhmid
Настроил сервопривод шпинделя для управления Step\Dir.
Код: Выделить всё
P1-00 - 002
P1-01 - 000
P1-44 - 25000
P1-45 - 10
P1-46 - 2500
Попытался настроить управление оборотами шпинделя с помощью PncConf, не получилось. Нашел тему, в которой решали аналогичную проблему,
viewtopic.php?f=15&t=28669&start=160. В итоге получилось, но не до конца понял как (в решении проблемы использовался метод научного тыка).
Настройки в файле ini
Код: Выделить всё
[SPINDLE_0]
MAX_VELOCITY = 66.6666666667
MAX_ACCELERATION = 300.0
# The values below should be 25% larger than MAX_VELOCITY and MAX_ACCELERATION
# If using BACKLASH compensation STEPGEN_MAXACCEL should be 100% larger.
STEPGEN_MAXVEL = 83.33
STEPGEN_MAXACCEL = 375.00
P = 0.0
I = 0.0
D = 0.0
FF0 = 1.0
FF1 = 0.0
FF2 = 0.0
BIAS = 0.0
DEADBAND = 0.0
MAX_OUTPUT = 4000.0
# these are in nanoseconds
DIRSETUP = 2000
DIRHOLD = 2000
STEPLEN = 1000
STEPSPACE = 1000
STEP_SCALE = 32.1
Настройки файла hal были взяты после запуска PncConf.
Изменение скорости происходило только при изменении параметра STEP_SCALE, все остальные параметры не влияли на скорость. Получилось управлять оборотами шпинделя с точностью около 1% от заданной скорости. В будущем надо настроить энкодер и возможно ПИД для нарезания резьбы. И надо находить время на изучение hal, без этих знаний становится все сложнее.
Сейчас надо разбирать станок чтобы замерить винты и сделать чертежи. Все винты и гайки под замену, учитывая возраст станка, чудес не бывает.