Ввод в эксплуатацию ЧПУ системы на основе контроллера Kflop.

KFlop, KStep, KAnalog, KMotion...

Имеете ли вы контроллер Kflop? :-)

Можно выбрать до 1 варианта ответа

 
 
Результаты голосования

Duhas
Мастер
Сообщения: 1961
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 285
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение Duhas »

повторюсь, настройте одну ось для начала, нарисуйте как что подключено и конфиг сюда выложите, там поглядим по симптомам
olegprom19
Опытный
Сообщения: 117
Зарегистрирован: 05 июн 2017, 18:28
Репутация: 7
Настоящее имя: Олег
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение olegprom19 »

почему в опросе нет вариантов
нет не имею, и не хочу приобрести
и имею но не хочу приобрести ещё
выбор без выбора
Аватара пользователя
uralpt
Мастер
Сообщения: 651
Зарегистрирован: 23 ноя 2015, 14:31
Репутация: 104
Настоящее имя: евгений
Откуда: Миасс
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение uralpt »

ок, сделал на 2 оси, токарник.
Работает только одна ось, назначенная на DAC1. Выход на DAC0 пустой.
На всякий случай прикреплю принтскрин экрана и настройки.
S-ON на всех, пищат :)) ПИД настраивал отдельно на каждую ось, но не в нем суть. Моя проблема - не могу заставить крутиться хотя бы 2 оси. Любую отдельно из двух - пожалуйста.

Самое интересное то, что полгода назад настроил одну ось (приятно удивился, как легко это удалось сделать) - и запаковал Кфлоп в ящик, приделав к нему штеккеры для носибельности между домом и гаражом. Был уверен, что так легко и дальше пойдет. Ан нет...

(для просмотра содержимого нажмите на ссылку)
#include "KMotionDef.h"

main()
{
int BitA,Change1=0,Change2=0, DiffX2;
int PosNoWrap, NewPos, Pos=0, wraps;
double Factor=0;

SetBit(152);
SetBit(157);
SetBit(158);

ch0->InputMode=ENCODER_MODE;
ch0->OutputMode=DAC_SERVO_MODE;
ch0->Vel=409600;
ch0->Accel=4.096e+006;
ch0->Jerk=4.096e+007;
ch0->P=1;
ch0->I=0;
ch0->D=0;
ch0->FFAccel=0;
ch0->FFVel=0;
ch0->MaxI=2047;
ch0->MaxErr=10000;
ch0->MaxOutput=2047;
ch0->DeadBandGain=1;
ch0->DeadBandRange=0;
ch0->InputChan0=0;
ch0->InputChan1=0;
ch0->OutputChan0=0;
ch0->OutputChan1=0;
ch0->MasterAxis=-1;
ch0->LimitSwitchOptions=0x10f;
ch0->LimitSwitchNegBit=138;
ch0->LimitSwitchPosBit=139;
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=1000000000;
ch0->StepperAmplitude=20;

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=1;
ch0->iir[1].B1=0;
ch0->iir[1].B2=0;
ch0->iir[1].A1=0;
ch0->iir[1].A2=0;

ch0->iir[2].B0=0.000768788;
ch0->iir[2].B1=0.00153758;
ch0->iir[2].B2=0.000768788;
ch0->iir[2].A1=1.92076;
ch0->iir[2].A2=-0.923833;

ch1->InputMode=ENCODER_MODE;
ch1->OutputMode=DAC_SERVO_MODE;
ch1->Vel=409600;
ch1->Accel=4.096e+006;
ch1->Jerk=4e+007;
ch1->P=1;
ch1->I=0;
ch1->D=0;
ch1->FFAccel=0;
ch1->FFVel=0;
ch1->MaxI=2047;
ch1->MaxErr=10000;
ch1->MaxOutput=2047;
ch1->DeadBandGain=1;
ch1->DeadBandRange=0;
ch1->InputChan0=1;
ch1->InputChan1=1;
ch1->OutputChan0=1;
ch1->OutputChan1=1;
ch1->MasterAxis=-1;
ch1->LimitSwitchOptions=0x10f;
ch1->LimitSwitchNegBit=0;
ch1->LimitSwitchPosBit=0;
ch1->SoftLimitPos=1e+009;
ch1->SoftLimitNeg=-1e+009;
ch1->InputGain0=1;
ch1->InputGain1=1;
ch1->InputOffset0=0;
ch1->InputOffset1=0;
ch1->OutputGain=1;
ch1->OutputOffset=0;
ch1->SlaveGain=1;
ch1->BacklashMode=BACKLASH_OFF;
ch1->BacklashAmount=0;
ch1->BacklashRate=0;
ch1->invDistPerCycle=1;
ch1->Lead=0;
ch1->MaxFollowingError=1000000000;
ch1->StepperAmplitude=20;

ch1->iir[0].B0=1;
ch1->iir[0].B1=0;
ch1->iir[0].B2=0;
ch1->iir[0].A1=0;
ch1->iir[0].A2=0;

ch1->iir[1].B0=1;
ch1->iir[1].B1=0;
ch1->iir[1].B2=0;
ch1->iir[1].A1=0;
ch1->iir[1].A2=0;

ch1->iir[2].B0=0.000769;
ch1->iir[2].B1=0.001538;
ch1->iir[2].B2=0.000769;
ch1->iir[2].A1=1.92081;
ch1->iir[2].A2=-0.923885;


EnableAxis(0);
EnableAxis(1);

DefineCoordSystem(0,1,-1,-1);
}
Вложения
111.jpg (4893 просмотра) <a class='original' href='./download/file.php?id=118637&mode=view' target=_blank>Загрузить оригинал (484.28 КБ)</a>
Аватара пользователя
uralpt
Мастер
Сообщения: 651
Зарегистрирован: 23 ноя 2015, 14:31
Репутация: 104
Настоящее имя: евгений
Откуда: Миасс
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение uralpt »

далее. Что делаю - меняю местами DAC1 и DAC0 (физически), меняю местами штеккеры энкодеров. Не работает ни одна ось.
Хорошо, все возвращаю в первоначальное состояние - и... снова ничего не работает. Ни на одной оси нет сигнала.
Уверен, что выключу-включу несколько раз питание, потом снова прошьюсь - и после получаса танцев с бубнами заработает. Но - только одна ось из двух!

Точно! На этот раз оказалось достаточно один раз просто сбросить питание Кфлопа - и сигнал на DAC1 есть! На DAC0 - нет. На этот раз обошлось без перепрошивки. KMotion в процессе не закрывал.
Сразу оговорюсь - все физические подключения, ессно, при выключенном Кфлоп.
Последний раз редактировалось uralpt 20 авг 2017, 19:23, всего редактировалось 1 раз.
Duhas
Мастер
Сообщения: 1961
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 285
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение Duhas »

для начала - видите у вас на картинке одна ось зеленая, другие желтые? так вот активна только зеленая, остальные отключены.

ПС вы делаете все чего делать не нужно на данный момент..
Аватара пользователя
uralpt
Мастер
Сообщения: 651
Зарегистрирован: 23 ноя 2015, 14:31
Репутация: 104
Настоящее имя: евгений
Откуда: Миасс
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение uralpt »

Duhas,
вижу. Иногда - две зеленые. Зависит от расположения звезд :)) а вовсе не от изменения кода программы. То есть сейчас перепрошьюсь - станут обе зеленые. Но сигнал будет только на одной.
EnableAxis - на 2 оси, листинг есть.
Что еще - коротышей нет. Может, разобрать "носибельный вариант", и начать все с ноля? А?
Duhas
Мастер
Сообщения: 1961
Зарегистрирован: 10 окт 2015, 23:25
Репутация: 285
Настоящее имя: Андрей
Откуда: Красноярск
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение Duhas »

блин, еще раз. перепрошиваться постоянно - это как делать ФГС каждый раз когда пищеварение чудит.

найдите причину почему у вас ось выключается, основная причина - выход за предельную ошибку, найдите сами этот параметр, мне правда сейчас лень.

ну и вы когда вал сервы шевелите у вас нормально циферки бегают в положении оси?
Аватара пользователя
uralpt
Мастер
Сообщения: 651
Зарегистрирован: 23 ноя 2015, 14:31
Репутация: 104
Настоящее имя: евгений
Откуда: Миасс
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение uralpt »

Duhas,
да менял я значение ошибки, не помогает. Реально (при настройке ПИД) укладывался в 10`000, сейчас сделал ch0->MaxErr=100`000 - результат одинаков. имхо, дело не в ней.
Циферки бегают только по одной оси из двух.

Докладываю. Назначил на ось Х DAC2. Переставил проводок в DAC2. Внес единственное изменение в настройку - ch0->OutputChan0=2;
Скомпилировал, сделал "upload" осей.
Результат - в KMotionCNC ось Y на секунду становится зеленой, потом - снова желтой. А.... ведь я никаких настроек с осью Y не производил!
Ось Х по прежнему желтая.
Могу даже поспорить, что несколько раз выключу питание, потом прошьюсь - и ось Y позеленеет. Ни-че-го при этом более не меняя. Мне прошиваться не доставляет удовольствия, поверьте.

ps. ладно, не буду грузить своими проблемами. Осцилл уже принес, буду разбирать "переносной" вариант, пытать паяльником.
Smouk
Кандидат
Сообщения: 76
Зарегистрирован: 08 ноя 2016, 16:36
Репутация: 32
Настоящее имя: Алексей
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение Smouk »

uralpt писал(а):ps. ладно, не буду грузить своими проблемами. Осцилл уже принес, буду разбирать "переносной" вариант, пытать паяльником.
Скопируйте сюда с тэгом "code" Ваши файлы инициализации - сильно упростит задачу.

Смена цвета координат оси с зеленой на желтую - это отключении оси. Вызывается:
- программно;
- одна из возможных настроек наезда на концевик;
- выход оси за максимальное значение ошибки слежения(наиболее вероятно в данном случае).

Нет ли потока, что либо отслеживающего в бесконечном цикле?
Входа концевиков в настройках оси не в Z состоянии?
Какой выставлен параметр Max Following Error при инициализации оси?

П.С. Посмотрел еще раз сообщения, Вы зачем то меняете параметр MaxErr, а не MaxFollowingError, поэтому ось и выключается.
Параметр MaxErr отвечает за максимальное значение ошибки на входе интегратора и его значение выше максимального выхода(2047) не имеет никакого смысла. Этот параметр даже при наладке трогается в исключительных случаях - об этом в том числе указано в документации.
MaxFollowingError как раз следит за ошибкой рассогласования позиции и команды.
Аватара пользователя
smart4on
Почётный участник
Почётный участник
Сообщения: 160
Зарегистрирован: 27 июн 2016, 18:54
Репутация: 34
Настоящее имя: Михаил
Откуда: Беларусь, Минск
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение smart4on »

Здравствуйте, прошу помощи в параметрирование KFLOP для ШД.
- подключаю сигналы Step- и Dir- к 15,16 контактам разъема JP7
Step+ и Dir+ подключаю к +5V (контакт 24 разъема JP7);
- подключаю KFLOP к питанию 5V. (проверяю мультиметром, на разъеме платы висит 5В);
- Снимаю ждампер (J3), отключения питания от USB порта. Подключаю Kflop к ПК;
- Вкладка Console - Version - Send, убеждаюсь что связь установлена и что версия ПО соответствует аппаратно железу;
- C Program - Open - InitStepDir3Axis.c - этот файл сразу пере сохраняю на свой (к примеру называем Mydak.c;
- Config&Flash - Chanel 0 - Import All from Open C Program - Input No Input - Output Step Dir - Output Channels 0-1-0 - Export All to Open C Program;
- C Program меняю значение ch0->Vel=128000; так как деление шага 1х32
ch0->Accel=128000;
ch0->Jerk=128000;
ch0->P=1;
Больше здесь ничего не трогаю. Просто сохраняю (Save);

По идеи если сейчас открыть программу Kmotion CNC добавив во вкладке User Buttons адрес куда сохранил файл. И в параметрах оси выставить свои расчетные значения, то двигатель должен начать вращаться. Но он не крутиться.

В чем я ошибаюсь?

Замерял напряжение на клемах драйвера. Между Step + и Step- висит 1.56V при нажатии на движение - 1.27V.
Между Dir+ и Dir - висит 4.29V и при нажатой кнопки перемещения 1.3V
Smouk
Кандидат
Сообщения: 76
Зарегистрирован: 08 ноя 2016, 16:36
Репутация: 32
Настоящее имя: Алексей
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение Smouk »

smart4on писал(а):Здравствуйте, прошу помощи в параметрирование KFLOP для ШД.
1. Зачем установка/снятие J3? Если есть внешнее питание 5В через Molex - джампер следует снять и больше не трогать.
2. Почему к 15,16 контактам разъема JP7 подключены отрицательные входа драйвера? Сомнительно, что там двунаправленная оптопара, что за драйвер? На выходе JP7 15,16 либо 0, либо +5В. На мой взгляд + следует подключить к 15,16, а "-" к GND KFLOP.
Аватара пользователя
smart4on
Почётный участник
Почётный участник
Сообщения: 160
Зарегистрирован: 27 июн 2016, 18:54
Репутация: 34
Настоящее имя: Михаил
Откуда: Беларусь, Минск
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение smart4on »

Smouk писал(а):
smart4on писал(а):Здравствуйте, прошу помощи в параметрирование KFLOP для ШД.
1. Зачем установка/снятие J3? Если есть внешнее питание 5В через Molex - джампер следует снять и больше не трогать.
2. Почему к 15,16 контактам разъема JP7 подключены отрицательные входа драйвера? Сомнительно, что там двунаправленная оптопара, что за драйвер? На выходе JP7 15,16 либо 0, либо +5В. На мой взгляд + следует подключить к 15,16, а "-" к GND KFLOP.

1. Джампер снят.
2. Изначально я так и пробовал подключать, но по совету разработчика изменил схему подключения.
Можно по подробнее по поводу подключения, и параметрирования в программе?
Smouk
Кандидат
Сообщения: 76
Зарегистрирован: 08 ноя 2016, 16:36
Репутация: 32
Настоящее имя: Алексей
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение Smouk »

Если открыть документацию (http://www.leadshine.com/UploadFile/Down/DM556m.pdf) на этот драйвер, то видно, что на "+" надо подавать положительное напряжение, что логично.
Поэтому выводы 15,16 однозначно подключаются к "+". Оба "-" драйвера должны быть подключены к GND KFLOP.
Аватара пользователя
smart4on
Почётный участник
Почётный участник
Сообщения: 160
Зарегистрирован: 27 июн 2016, 18:54
Репутация: 34
Настоящее имя: Михаил
Откуда: Беларусь, Минск
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение smart4on »

Smouk писал(а):Если открыть документацию (http://www.leadshine.com/UploadFile/Down/DM556m.pdf) на этот драйвер, то видно, что на "+" надо подавать положительное напряжение, что логично.
Поэтому выводы 15,16 однозначно подключаются к "+". Оба "-" драйвера должны быть подключены к GND KFLOP.

Подключил как вы сказали. ШД не крутиться... Измеряю напряжение на сигнале Step+- = 0.15В. Когда задаю перемещение через программу, на Step+- = 0В.
Smouk
Кандидат
Сообщения: 76
Зарегистрирован: 08 ноя 2016, 16:36
Репутация: 32
Настоящее имя: Алексей
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение Smouk »

Дело в том, что измеряете Вы видимо мультиметром, шаг таким образом заметить можно только косвенно. Дабы не засорять тут ветку написал в личку.

П.С. В данном случае проблема решилась установкой номера канала на 8, что означает выходы LVTTL - Step/Dir.
Аватара пользователя
smart4on
Почётный участник
Почётный участник
Сообщения: 160
Зарегистрирован: 27 июн 2016, 18:54
Репутация: 34
Настоящее имя: Михаил
Откуда: Беларусь, Минск
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение smart4on »

Благодаря Smouk решил свою проблему.
Чтобы долго не описывать что делал, снял видео:
https://youtu.be/9AtnZKWUFNU
Аватара пользователя
tommygun
Новичок
Сообщения: 35
Зарегистрирован: 17 авг 2015, 23:27
Репутация: 20
Настоящее имя: Valery
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение tommygun »

smart4on писал(а):Чтобы долго не описывать что делал, снял видео:
Все бы хорошо, только вот изменяющаяся тональность голоса в видео...))
Аватара пользователя
smart4on
Почётный участник
Почётный участник
Сообщения: 160
Зарегистрирован: 27 июн 2016, 18:54
Репутация: 34
Настоящее имя: Михаил
Откуда: Беларусь, Минск
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение smart4on »

tommygun писал(а):
smart4on писал(а):Чтобы долго не описывать что делал, снял видео:
Все бы хорошо, только вот изменяющаяся тональность голоса в видео...))

Иначе длинное видео получилось бы. Хотелось бы не утомлять смотрящих. ;)
Al4nse
Кандидат
Сообщения: 46
Зарегистрирован: 16 авг 2017, 09:34
Репутация: 1
Настоящее имя: Евгений
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение Al4nse »

Здравствуйте. Есть желание отключать серводрайверы при каждой остановке оси(Деактивацией оптовыхода на KAnalog, на который подключен S-ON с драйвера) и включать перед каждым движением. можно ли это в C файле запрограммировать? Никаких структур, функций, для работы с G кодом я не нашёл. (может плохо искал?)
Либо, может есть такой постпроцессор, в котором можно автоматом перед/после каждого движения добавить свои команды M100-M119.
Smouk
Кандидат
Сообщения: 76
Зарегистрирован: 08 ноя 2016, 16:36
Репутация: 32
Настоящее имя: Алексей
Контактная информация:

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf

Сообщение Smouk »

Al4nse писал(а): Есть желание отключать серводрайверы при каждой остановке оси(Деактивацией оптовыхода на KAnalog, на который подключен S-ON с драйвера) и включать перед каждым движением. можно ли это в C файле запрограммировать? Никаких структур, функций, для работы с G кодом я не нашёл. (может плохо искал?)
Есть функция CheckDone<N> определяющая, что ось выполнила задание:
https://dynomotion.com/Help/Cmd.htm#CheckDone, либо CheckDoneBuf - что все оси выполнили задания.

В бесконечном цикле Вам необходимо прописать контроль за этим состоянием и нужную функцию. Например, для канала номер 0:

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

if (CheckDone(0) == 1)
{
 ClearBit(x);
} else {
 SetBit(x);
}
Но надо смотреть по ситуации, так как Вы уверены, что драйвера будут успевать включаться и нормально отрабатывать начало траектории? Если с драйвера есть выход готовности это сильно упростит задачу - так как можно дожидаться его ответа.
Al4nse писал(а):Либо, может есть такой постпроцессор, в котором можно автоматом перед/после каждого движения добавить свои команды M100-M119.
Можно делать и так, но на мой взгляд некорректно, так как раздувает G-код. M100-M119 в данном случае можно не использовать - это только усложняет. Kflop допускает использование в G-коде команд SetBitBuf(https://dynomotion.com/Help/GCodeScreen/GCodeScreen.htm) и т.д.

П.С. Если Вы озвучите задачу, возможно ее можно будет решить проще.
Ответить

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