Страница 36 из 70
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 19 июл 2016, 14:03
AlexNikov
konstantinshr писал(а):AlexNikov писал(а):
konnect подключается к kflop через разъем JP8 (konnect) - JP6 (kflop).
Спасибо за ответ. Завтра должен получить контролер. Интересно разъем в комплекте или надо что то искать?
Я когда покупал K-FLOP и K-STEP шлейф с разъемами обжатый был в комплекте. По сути там обычные разъемы типа IDC и плоский шлейф, обжать дело 3х минут, и есть почти во всех радиомагазинах.
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 19 июл 2016, 17:52
Duhas
AlexNikov писал(а):По сути там обычные разъемы типа IDC2 и плоский шлейф,
там просто IDC, IDC2 это IDC с шагом 2мм вместо обычных 2.54
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 19 июл 2016, 18:27
AlexNikov
Duhas писал(а):AlexNikov писал(а):По сути там обычные разъемы типа IDC2 и плоский шлейф,
там просто IDC, IDC2 это IDC с шагом 2мм вместо обычных 2.54
точно

Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 22 июл 2016, 11:53
konstantinshr
Duhas писал(а):AlexNikov писал(а):По сути там обычные разъемы типа IDC2 и плоский шлейф,
там просто IDC, IDC2 это IDC с шагом 2мм вместо обычных 2.54
Сегодня пришел KKFLOP. Разъем для платы KONNECT в комплекте. Теперь надо найти разъем JP7 для вывода сигнала на драйвера. Подскажите где его можно найти .Я так понял там разъем на 26 пинов. В нашем городе проблема с электронными комплектующими.
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 22 июл 2016, 12:04
AlexNikov
konstantinshr писал(а):Duhas писал(а):AlexNikov писал(а):По сути там обычные разъемы типа IDC2 и плоский шлейф,
там просто IDC, IDC2 это IDC с шагом 2мм вместо обычных 2.54
Сегодня пришел KKFLOP. Разъем для платы KONNECT в комплекте. Теперь надо найти разъем JP7 для вывода сигнала на драйвера. Подскажите где его можно найти .Я так понял там разъем на 26 пинов. В нашем городе проблема с электронными комплектующими.
http://www.platan.ru/,
http://www.chipdip.ru/,
http://ru.aliexpress.com/ru_home.htm
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 22 июл 2016, 12:11
konstantinshr
Эти варианты понятны. Я думал есть возможность взять готовый шнур, типа шлейфа в компьютере.
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 23 июл 2016, 21:13
Duhas
готовый будете дольше искать чем делать, скорее всего. не припомню распространенных 26 пин шнуров, LPT только если, тот что с материнки/PCI адаптера на DB разъем.
А у меня вопросец о настройке созрел, второй день ковыряю токарку свою, 16К20, X Z настроил вроде, поиск HOME сделал по индексным меткам, а вот шпиндель как ось заставить не могу, висит у меня на 6 оси, в удержание встает, в Step Response шевелится, а вот из код оболочки не стартует, вроде сделал все по примеру.
Есть у кого какие идеи?
ПС у меня управление +-10в.
Код: Выделить всё
#define SPINDLEAXIS 6 // Axis Channel to Jog to rotate Spindle
#define FACTOR (20000/60.0) // to convert RPM to counts/sec (counts/rev / 60.0sec)
#define SPINDLECW_BIT 151 // bit to activate to cause CW rotation
#define SPINDLECCW_BIT 151 // bit to activate to cause CCW rotation
#define SPEEDVAR 99 // global persistant variable to store latest speed
#define STATEVAR 98 // global persistant variable to store latest state (-1=CCW,0=off,1=CW)
#define KMVAR PC_COMM_CSS_S // variable KMotionCNC will pass speed parameter (113)
#define USE_POS_NEG_VOLTAGE 1 // 0 = output Magnitude, 1 = output positive and negative speed
Код: Выделить всё
#include "KMotionDef.h"
//#include "KMotionDef.h"
#include "CSS\MySpindleDefs.h"
#include "CSS\CSSJog.c"
/*
DACS
7 - X
6 - Z
0 - C
ENCODERS
0 - C
1 - Z
2 - X
LIMITS
143 - home x
141 - LIM- x
140 - LIM+ x
136 - home z
137 - LIM- z
138 - LIM+ z
*/
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=333000;
ch0->Accel=400000000;
ch0->Jerk=400000;
ch0->P=0.12;
ch0->I=0.000001;
ch0->D=0;
ch0->FFAccel=0;
ch0->FFVel=0.00455;
ch0->MaxI=100;
ch0->MaxErr=1e+006;
ch0->MaxOutput=2047;
ch0->DeadBandGain=1;
ch0->DeadBandRange=0;
ch0->InputChan0=2;
ch0->InputChan1=0;
ch0->OutputChan0=7;
ch0->OutputChan1=1;
ch0->MasterAxis=-1;
ch0->LimitSwitchOptions=0x12f;
ch0->LimitSwitchNegBit=141;
ch0->LimitSwitchPosBit=140;
ch0->SoftLimitPos=1e+030;
ch0->SoftLimitNeg=-1e+030;
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=1;
ch0->iir[2].B1=0;
ch0->iir[2].B2=0;
ch0->iir[2].A1=0;
ch0->iir[2].A2=0;
ch1->InputMode=ENCODER_MODE;
ch1->OutputMode=DAC_SERVO_MODE;
ch1->Vel=330000;
ch1->Accel=40000000;
ch1->Jerk=2e+005;
ch1->P=0.08;
ch1->I=0;
ch1->D=0;
ch1->FFAccel=0;
ch1->FFVel=0.00476;
ch1->MaxI=0;
ch1->MaxErr=1e+006;
ch1->MaxOutput=2047;
ch1->DeadBandGain=1;
ch1->DeadBandRange=0;
ch1->InputChan0=1;
ch1->InputChan1=0;
ch1->OutputChan0=6;
ch1->OutputChan1=0;
ch1->MasterAxis=-1;
ch1->LimitSwitchOptions=0x12f;
ch1->LimitSwitchNegBit=137;
ch1->LimitSwitchPosBit=138;
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=1;
ch1->iir[2].B1=0;
ch1->iir[2].B2=0;
ch1->iir[2].A1=0;
ch1->iir[2].A2=0;
ch2->InputMode=ENCODER_MODE;
ch2->OutputMode=STEP_DIR_MODE;
ch2->Vel=40000;
ch2->Accel=400000;
ch2->Jerk=4e+006;
ch2->P=0.01;
ch2->I=0;
ch2->D=0;
ch2->FFAccel=0;
ch2->FFVel=0;
ch2->MaxI=200;
ch2->MaxErr=1e+006;
ch2->MaxOutput=200;
ch2->DeadBandGain=1;
ch2->DeadBandRange=0;
ch2->InputChan0=2;
ch2->InputChan1=0;
ch2->OutputChan0=2;
ch2->OutputChan1=0;
ch2->MasterAxis=-1;
ch2->LimitSwitchOptions=0x100;
ch2->LimitSwitchNegBit=0;
ch2->LimitSwitchPosBit=0;
ch2->SoftLimitPos=1e+009;
ch2->SoftLimitNeg=-1e+009;
ch2->InputGain0=-1;
ch2->InputGain1=-1;
ch2->InputOffset0=0;
ch2->InputOffset1=0;
ch2->OutputGain=1;
ch2->OutputOffset=0;
ch2->SlaveGain=1;
ch2->BacklashMode=BACKLASH_OFF;
ch2->BacklashAmount=0;
ch2->BacklashRate=0;
ch2->invDistPerCycle=1;
ch2->Lead=0;
ch2->MaxFollowingError=1000000000;
ch2->StepperAmplitude=20;
ch2->iir[0].B0=1;
ch2->iir[0].B1=0;
ch2->iir[0].B2=0;
ch2->iir[0].A1=0;
ch2->iir[0].A2=0;
ch2->iir[1].B0=1;
ch2->iir[1].B1=0;
ch2->iir[1].B2=0;
ch2->iir[1].A1=0;
ch2->iir[1].A2=0;
ch2->iir[2].B0=1;
ch2->iir[2].B1=0;
ch2->iir[2].B2=0;
ch2->iir[2].A1=0;
ch2->iir[2].A2=0;
ch6->InputMode=ENCODER_MODE;
ch6->OutputMode=DAC_SERVO_MODE;
ch6->Vel=40000;
ch6->Accel=400000;
ch6->Jerk=4e+006;
ch6->P=0.02;
ch6->I=0;
ch6->D=0;
ch6->FFAccel=0;
ch6->FFVel=0;
ch6->MaxI=20000;
ch6->MaxErr=20000;
ch6->MaxOutput=2047;
ch6->DeadBandGain=1;
ch6->DeadBandRange=0;
ch6->InputChan0=0;
ch6->InputChan1=1;
ch6->OutputChan0=0;
ch6->OutputChan1=1;
ch6->MasterAxis=-1;
ch6->LimitSwitchOptions=0x100;
ch6->LimitSwitchNegBit=0;
ch6->LimitSwitchPosBit=0;
ch6->SoftLimitPos=1e+009;
ch6->SoftLimitNeg=-1e+009;
ch6->InputGain0=1;
ch6->InputGain1=1;
ch6->InputOffset0=0;
ch6->InputOffset1=0;
ch6->OutputGain=1;
ch6->OutputOffset=0;
ch6->SlaveGain=1;
ch6->BacklashMode=BACKLASH_OFF;
ch6->BacklashAmount=0;
ch6->BacklashRate=0;
ch6->invDistPerCycle=1;
ch6->Lead=0;
ch6->MaxFollowingError=10000000;
ch6->StepperAmplitude=250;
ch6->iir[0].B0=1;
ch6->iir[0].B1=0;
ch6->iir[0].B2=0;
ch6->iir[0].A1=0;
ch6->iir[0].A2=0;
ch6->iir[1].B0=1;
ch6->iir[1].B1=0;
ch6->iir[1].B2=0;
ch6->iir[1].A1=0;
ch6->iir[1].A2=0;
ch6->iir[2].B0=1;
ch6->iir[2].B1=0;
ch6->iir[2].B2=0;
ch6->iir[2].A1=0;
ch6->iir[2].A2=0;
EnableAxis(0);
EnableAxis(1);
EnableAxis(2);
EnableAxis(6);
DefineCoordSystem(0,2,1,-1);
//main()
//{
for (;;)
{
WaitNextTimeSlice();
ServiceCSS();
}
//}
}
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 23 июл 2016, 21:39
Дмитро
Duhas писал(а): в Step Response шевелится, а вот из код оболочки не стартует, вроде сделал все по примеру.
Измените ch6->FFVel=0; на ch6->FFVel=2047;
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 23 июл 2016, 22:41
Duhas
на сколько я понимаю FFvel используется для Open Loop, т.е. когда нет ОС, в частности энкодера, хотя в любом случае можно и без ОС для начала запустить.
попробовал вот так
все равно из Step Response крутится, а из оболочки нет. и почему то график скорости стал каким то странным.
такс, это я сам дурак видимо, но без G97/96 шпиндель не включается )
теперь вылезла другая проблема, если я включаю шпиндель, то управление как бы подвисает, оси начинают двигаться и встают, изменение скорости шпинделя если и срабатывает то с огромной задержкой. и шпиндель дубасит на максимум вместо заданной скорости, причем так и отображается, например, заданная 10, текущая 365, она пока ограничена значением FFvel.
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 24 июл 2016, 11:53
Duhas
при помощи Jog из консоли все ок, а вот из оболочки вот так
хотя было бы понятнее задавать таки в оборотах в минуту, я пока не допер где это правильно настраивать, по сути сейчас 1 это макс скорость
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 24 июл 2016, 13:43
Дмитро
Duhas писал(а): а вот из оболочки вот так
В tool setup screen в команде S переменная должна быть не 1, а 113
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 24 июл 2016, 19:03
Duhas
Спасибо! так и чуял что мелочь какую то проглядел, а на это даже внимания не обратил
хотя проблема была не тут, т.е. не только тут, эту проблему я еще не почуял
пришлось дойти да такого значения FACTOR чтобы реальные обороты совпали с заданными, я что-то не понял как они считаются и описано ли это где-то.
Код: Выделить всё
#define FACTOR (20000/(60.0*1000000)) // to convert RPM to counts/sec (counts/rev / 60.0sec)
первоначально задал 20000/60, т.к. имею энкодеры на осях по 5000 делений, соответственно 20000 дискрет. вроде бы все логично, надо было указать коэфф. для приведения оборотов в минуту к импульсам в секунду, но чтобы все считалось верно пришлось скорректировать все-го то в миллион раз, может я где то еще что то сделал не так, мало ли. если есть люди кто настраивал шпиндель с управлением +-10в, опишите процесс если будет время, а то на мой взгляд одна из самых простых вещей заняла столько времени.
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 28 июл 2016, 17:47
Duhas
пока точно не проверял, но есть ощущение что из-за моей коррекции неправильно считается скорость для CSS, как расковыряю - опишу.
пока что другой баг/фича. собрал и настроил вчера/позавчера револьверку, т.к. не хватало каналов оптовходов, то для начала взял 2 положения. сегодня сваял плату опторазвязки разъемов AUX0/1, подключаю к ней герконы револьверки - оно для пары позиций работает нормально, остальные начинает крутить и тут же перестает, промелькивает единичка в бите.. думаю блин, маловаты резисторы в развязке, было 2кОм, увеличил до 5.1кОм, не помогло. повесил револьверку на опторазвязку Kanalog-а, вдруг я рукожоп

, стало лучше, работают 5 из 6
Не я конечно постараюсь отмести помехи/наводки, все-таки все провода идут в 1 куче. протяну к движку провод отдельно на днях, но что за фигня - не ясно. на своей опторазвязке я уже и осциллографом пытался пик найти - нету ни фига блин.
ПС а вот и код
Код: Выделить всё
#include "KMotionDef.h"
main()
{
//155 - ROTATE
//156 - FIX
int slot = persist.UserData[9]; // value stored is an int
int id = persist.UserData[9+1]; // value stored is an int
if (slot == 1)
{
if (!ReadBit(138)) //смотрим надо ли поворачиваться
{
if(!ReadBit(156))//проверяем не включен ли контактор на зажатие
{SetBit(155);} //разжимаем и крутим
while (!ReadBit(138)); //ждем пока не докрутим (вот тут оно ловит коротенький импульс судя по всему)
ClearBit(155);
Delay_sec(1);
if (!ReadBit(155))
{
SetBit(156);
Delay_sec(0.1);
ClearBit(156);
}
}
printf("Tool Set to slot %d id %d\n",slot,id); // print the slot and id
}
if (slot == 2)
{
if (!ReadBit(140))
{
if(!ReadBit(156))
{SetBit(155);}
while (!ReadBit(140));
ClearBit(155);
Delay_sec(1);
if (!ReadBit(155))
{
SetBit(156);
Delay_sec(0.1);
ClearBit(156);
}
}
printf("Tool Set to slot %d id %d\n",slot,id); // print the slot and id
}
if (slot == 3)
{
if (!ReadBit(141))
{
if(!ReadBit(156))
{SetBit(155);}
while (!ReadBit(141));
ClearBit(155);
Delay_sec(1);
if (!ReadBit(155))
{
SetBit(156);
Delay_sec(0.1);
ClearBit(156);
}
}
printf("Tool Set to slot %d id %d\n",slot,id); // print the slot and id
}
if (slot == 4)
{
if (!ReadBit(137))
{
if(!ReadBit(156))
{SetBit(155);}
while (!ReadBit(137));
ClearBit(155);
Delay_sec(1);
if (!ReadBit(155))
{
SetBit(156);
Delay_sec(0.1);
ClearBit(156);
}
}
printf("Tool Set to slot %d id %d\n",slot,id); // print the slot and id
}
if (slot == 5)
{
if (!ReadBit(143))
{
if(!ReadBit(156))
{SetBit(155);}
while (!ReadBit(143));
ClearBit(155);
Delay_sec(1);
if (!ReadBit(155))
{
SetBit(156);
Delay_sec(0.1);
ClearBit(156);
}
}
printf("Tool Set to slot %d id %d\n",slot,id); // print the slot and id
}
if (slot == 6)
{
if (!ReadBit(136))
{
if(!ReadBit(156))
{SetBit(155);}
while (!ReadBit(136));
ClearBit(155);
Delay_sec(1);
if (!ReadBit(155))
{
SetBit(156);
Delay_sec(0.1);
ClearBit(156);
}
}
printf("Tool Set to slot %d id %d\n",slot,id); // print the slot and id
}
Delay_sec(1);
}
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 30 июл 2016, 01:28
robinnn
Вопрос к знатокам. Купил К флоп +К аналог. Решил подключить проверить на ноутбуке с питанием плат от USB.
При подлючение К аналога к плате, переодически мигаеют светодиоды (как буд-то не может загрузиться плата), есл к аналог отключаю, то все запускается как нужно. Это нормальная ситуация? Не хватвает мощност питания USB для запуска комплекта К флоп +К аналог? Или что-то не так.
Для 64 бит обязательно при каждом запуске отключать проверку драйверов?
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 30 июл 2016, 07:40
ukr-sasha
robinnn писал(а):Не хватвает мощност питания USB для запуска комплекта К флоп +К аналог? Или что-то не так.
да
robinnn писал(а):Для 64 бит обязательно при каждом запуске отключать проверку драйверов?
http://dynomotion.com/Software/KFLOP_US ... s_V434.exe
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 02 авг 2016, 22:33
konstantinshr
Наконец пришел kflop+konnekt. Драйвера завел на kflop jp 6. Оси начали работать, правда пока не устойчиво, но это из за неправильной настройки. А вот как подключить концевики и где прописывать пины. Где то читал что надо в файл инициализации добавить файл с konnektom . С программированием дружу не очень. Может уже кто то это делал?
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 03 авг 2016, 19:53
AlexNikov
konstantinshr писал(а):Наконец пришел kflop+konnekt. Драйвера завел на kflop jp 6. Оси начали работать, правда пока не устойчиво, но это из за неправильной настройки. А вот как подключить концевики и где прописывать пины. Где то читал что надо в файл инициализации добавить файл с konnektom . С программированием дружу не очень. Может уже кто то это делал?
Коннект уже подключили? Файлик про который я выше говорил прописали?
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 03 авг 2016, 21:51
konstantinshr
AlexNikov писал(а):Коннект уже подключили? Файлик про который я выше говорил прописали?
Да коннект подключил. Файл посмотрел, но не понял куда его надо вставить. В файл инициализации или другой алгоритм?
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 04 авг 2016, 05:49
AlexNikov
konstantinshr писал(а):AlexNikov писал(а):Коннект уже подключили? Файлик про который я выше говорил прописали?
Да коннект подключил. Файл посмотрел, но не понял куда его надо вставить. В файл инициализации или другой алгоритм?
Я бы добавил в файл инициализации. В тело кода
после кода инициализации осей и определения системы координат (то есть перед закрывающей "}") вставляйте код инициализации коннекта:
Код: Выделить всё
InitAux();
AddKonnect(0,&VirtualBits,VirtualBitsEx);
Либо файл EnableKonnect.с открываем во втором "thread" во вкладке "C program":
В "Config & Flash" ставим галку на thread 2, чтоб при запуске загружался указанный код (в первом обычно файл инициализации осей подгружается).
И не забыть указать адрес платы Коннекта:
Всю информацию по Коннекту можно выудить тут:
http://dynomotion.com/Help/SchematicsKo ... onnect.htm
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Добавлено: 04 авг 2016, 07:21
Stich
konstantinshr писал(а):
Да коннект подключил.
Если не затруднит, можно 2 качественные фотографии коннекта с двух сторон
