3. Настройка.
Настройка и использование контроллера Кфлоп описана в разделе помощь на сайте производителя:
http://dynomotion.com/Help/index.htm.
Первым делом нужно скачать пакет программ для Кфлопа.
Это можно сделать на сайте производителя по ссылке:
http://dynomotion.com/Software/Download.html
Я сам пользуюсь альфа версиями, в которых реализовано больше функций и в них быстрее исправлются баги. Проблем со стабильностью у меня не было. Взять можно здесь:
http://dynomotion.com/Software/?M=D .
В этой теме буду описывать использование только родного софта для управления станком. Для эстетов желающих управлять Кфлопом из под Mach3 есть тема в разделе помощь.
После того, как вы установите программное обеспечение и драйвер для Кфлопа (ставится автоматически), можно подключать плату к компьютеру.
На этом этапе у вас приводы в комплекте с моторами должны быть уже
отстроены и при включении питания становиться в режим удержания. А у сервопривода не должно быть дребезга и срыва мотора.
Нам нужны две программы:
Kmotion для настройки контроллера и
KmotionCNC для управления станком.
Сначала запускаем
Kmotion, и в ней нажимаем на вкладки
1.
Как я уже писал ранее, в комплекте с программой есть шаблоны/примеры готовых файлов конфигурации для выполнения разных задач. Для первоначальных настроек контроллера, нам нужен файл конфигурации
InitStepDir3Axis.c для варианта
С/Д и файл
Init3Analog.c соответственно для варианта
10В. Эти файлы нужно выбрать в окне
C programs через стандартный диалог открытия файла в верхней части окна
2. Советую сразу пересохранить этот файл, с добавление названия вашего станка в отдельный каталог, чтобы не портить стандартный шаблон и не путаться.
После выбора шаблона настроек осей, нужно изменить их для ваших условий.
Для варианта
С/Д:
-
3 - выбор оси, которая настраивается: 0 - это ось Х, 1 - ось Y, и т.д.;
Тут следует сделать оговорку: в зависимости от номера порта, задается его режим работы. (подсказал
michael-yurov - за что ему отдельное спасибо!)
Задавая номер порта 0-7, выход будет работать, как открытый коллектор (см. схему подключения), который можно использовать для подключения к оптовходам рассчитанным на 5 В.
Если к номеру выхода добавить 8 - он будет работать, как LVTTL 3,3 В (обычный выход на 3,3 В).
Например, введя в поле «output chanel» число «11» вы настроите выход сигнала step/dir с генератора номер 3 в режиме LVTTL 3,3 В.
Если же добавить 16 - генератор будет работать не в режиме Step/Dir, а в квадратурном режиме.
Режим открытый коллектор гарантированно будет работать с оптовходами рассчитанными на 5В.
Режим 3,3 В - менее подвержен влиянию помех и способен работать на более высоких частотах.
-
4 - прочитать из файла-шаблона настройки для выбранной оси;
-
5 - вид датчика обратной связи, выбрать
No Input. Хотя никто нам не запрещает поставить энкодер или оптическую линейку и будет ОС с шаговиками.
Но это я чуть вперед забегаю.;
-
6 - вид исходящего сигнала для управления моторами. Нам нужен
Step Dir.;
-
7 - оставвляете без изменений, т.к. датчика ОС нет;
-
8 - выбираете номер канала исходящих сигналов к которому подключен привод. В нашем случае это канал №0. Второе окошко - это усиление сигнала, оставляете равным 1. Если двигатель крутится не в ту сторону, которую нужно, то меняете знак и пишете -1. Оффсет не трогаете.
-
9 - произведенные изменения записываете/экспортируте в уже ваш файл настройки.
Для варианта
10В выполняются те же шаги, только следующие параметры отличаются:
-
5 - выбираете
Encoder;
-
6 - выбираете
DAC Servo;
-
7 - нужно выбрать номер канала входящих сигналов для датчика ОС, в нашем случае это канал №0. Параметр
Gain отвечает за усиление входящего сигнала - оставьте 1. Если перепутаны фазы энкодера при подключении к плате, и серва при включении набирает обороты, а не становится в удержание, то поменяйте у этого параметра знак на противоположный.
После экспорта настроек в ваш файл, не забудте его сохранить, нажав кнопку в верхней части окна.
На будущее, запомните: все произведенные в программе
Kmotion настройки
НЕ ПРИМЕНЯЮТСЯ АВТОМАТИЧЕСКИ - ИХ НУЖНО СОХРАНЯТЬ. И вновь инициализировать в контроллер. Запомните - сэкономите много времени и нервов.
Далее, опять идем в окно C
programs, где открыт файл настроек.
Небольшие пояснения к настройкам:
ch0->InputMode=ENCODER_MODE; // режим ОС по энкодеру
ch0->OutputMode=DAC_SERVO_MODE; // вывод сигнала задания в ЦАП, т.е. +/-10В
ch0->Vel=132000; // максимальная скорость двигателя в импульсах
ch0->Accel=300000; // максимальное ускорение
ch0->Jerk=1e+006; /. максимальный толчок
ch0->P=0.01; // пропорциональная составляющая ПИД
ch0->I=0; // интегральная составляющая
ch0->D=0; // диф. составляющая
ch0->FFAccel=0; // ускорение предзадания, или добавка в сигнал
ch0->FFVel=0; // скорость предзадания
ch0->MaxI=2047; // максимальная величина обработки сигнала
ch0->MaxErr=3e+009; // максимальная ошибка рассогласования позиции
ch0->MaxOutput=2047; // максимальный уровень сигнала
ch0->DeadBandGain=1; // усиление мертвой зоны
ch0->DeadBandRange=0; // величина мертвой зоны в импульсах
ch0->InputChan0=0; // канал №0 входящих сигналов от датчика ОС
ch0->InputChan1=1; // второй канал для датчика ОС, резольвера например
ch0->OutputChan0=0; // канал №0 для выходящих сигналов, в нашем случае +/-10В
ch0->OutputChan1=1; // канал для подчиненной оси
ch0->MasterAxis=-1; // включение/выкл. подчиненной оси
ch0->LimitSwitchOptions=0x88890003; // режим работы концевиков
ch0->SoftLimitPos=1e+009; // софтлимит положит. в импульсах
ch0->SoftLimitNeg=-1e+009; // софтлимит отриц. в импульсах
ch0->InputGain0=1; // усиление входящего сигнала
ch0->InputGain1=1; //усиление входящего сигнала
ch0->InputOffset0=0; // смещение входящего сигнала
ch0->InputOffset1=0; // смещение входящего сигнала
ch0->OutputGain=1; // усиление выходящего сигнала
ch0->OutputOffset=0; // смещение выходящего сигнала
ch0->SlaveGain=1; // усиление сигнала подчиненной оси
ch0->BacklashMode=BACKLASH_OFF; // вкл/откл режима компенсации люфта
ch0->BacklashAmount=0; // скорость компенсации люфта
ch0->BacklashRate=0; //величина в имп. компенсации люфта
ch0->invDistPerCycle=1;
ch0->Lead=0;
ch0->MaxFollowingError=10000000;
ch0->StepperAmplitude=250;
ch0->iir[0].B0=1;
ch0->iir[0].B1=0;
ch0->iir[0].B2=0;
ch0->iir[0].A1=0;
ch0->iir[0].A2=0;
ch0->iir[1].B0=0.003522;
ch0->iir[1].B1=0.003522;
ch0->iir[1].B2=0;
ch0->iir[1].A1=0.992956;
ch0->iir[1].A2=0;
ch0->iir[2].B0=1;
ch0->iir[2].B1=0;
ch0->iir[2].B2=0;
ch0->iir[2].A1=0;
ch0->iir[2].A2=0;
EnableAxisDest(0,ch0->Dest); // активация оси
DefineCoordSystem(0,-1,-1,-1); // конфигурирование системы координат - осей
Тут нужно поправить несколько параметров:
- нужно посчитать максимальное значение параметра ch0->Vel.
Например серводвигатель может вращаться с оборотами 3000 об/мин, а энкодер на нем 1024 имп/об, тогда:
ch0->Vel = 3000 об/мин * 1024 имп/об * 4 = 12288000 имп/мин = 204800 имп/сек
ch0->Vel = 204800
Если это шаговик с максимальными оборотами 1200 об/мин, 200 шаг/об и деление шага выставлено в 1/8, то значение параметра будет:
ch0->Vel = 1200 об/мин * 200 шаг/об * 8 = 192000 шаг/мин = 3200 шаг/сек.
- значения ch0->Accel и ch0->Jerk для начала можно поставить равными максимальной скорости двигателя, т.е. ch0->Vel. Скорее всего с таким значением двигатель будет набирать и сбрасывать скорость очень плавно. Но тут уже каждый должен подбирать значения под свои приводы и механику.
Эти три параметра действуют только для режима
Jog, т.е. быстрых перемещений или по
G0. И являются верхней ограничивающей планкой для перемещений по
G1.
- параметр пропорциональной составляющей коэф. ПИД
ch0->P для варианта
С/Д нужно выставить равным 1, т.е.
ch0->P=1, а для варианта
10В - для начала
ch0->P=0,01. Причем если серва будет дрожать при включении, его нужно уменьшать. Затем покажу, как более точно подобрать коэф ПИД.
Теперь можно запускать программу
KmotionCNC.
В главном окне нужно нажать на кнопку
Tool Setup, чтобы ее настроить.
Выбираем вкладку
User Buttons, и в качестве события на нажатие пользовательской кнопки
INIT пишем выполнение ранее отредактированного файла настройки осей
InitStepDir3Axis.c для варианта
С/Д и файл
Init3Analog.c соответственно для варианта
10В. Параметры Thread=1 и VAR=0.
Далее на вкладке
Trajectory Planner прописываем параметры движения осей станка:
- количество импульсов на дюйм
Cnts/Inch. Пусть мотор соединен напрямую через муфту к винту с шагом 5мм. Тогда значение параметра для выбранной оси будет равняться 25,4 мм/дюйм * 1024 имп/об * 4 / 5мм = 20807,68 имп/дюйм. Это для серводвигателя.
Или для шаговика: 25,4 мм/дюйм * 200 шаг/об * 8 / 5мм = 8128 имп/дюйм.
- максимальная скорость перемещения оси в режиме
G1 это параметр
Vel in/sec. Например, мы хотим, чтобы максимальная рабочая подача была в 2 раза ниже, чем скорость холостых перемещений, тогда этот параметр будет равняться: 204800 имп/сек / (20807,68 имп/дюйм *2) = 4,92 дюйм/сек.
Или для шаговика: 3200 шаг/сек / (8128 имп/дюйм *2) = 0,19 дюйм/сек.
- ускорение оси
Accel in/sec2 поставьте для начала равным скорости, если будет мало - всегда сможете увеличить.
- скорость холостых перемещений по
G0, то же самое, что и в файле инициализации осей, только тут в дймах в секунду. Для нашего случая: 204800 имп/сек / 20807,68 имп/дюйм = 9,84 дюйм/сек. Можно поставить меньше, если механика не выдерживает.
После всех этих непонятных действий
, можно подвигать осями.
В главном окне нажимаете кнопку
INIT, файл конфигурации при этом заливается в контроллер. И теперь, если всё сделали правильно и я нигде не ошибся
, при нажатии стрелок в программе, оси должны двигаться.