Страница 5 из 70

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

Добавлено: 01 дек 2014, 13:36
vektor_z
ukr-sasha писал(а):
vektor_z писал(а):Я правильно понял выполнение предоставленного вами кода?
Всё верно.
Сегодня проверил код, не работает условие. То есть хоть включен бит хоть выключен все равно включается задержка. Можно как то изменить код чтоб работало условие, а то когда выключен двигатель и включаю муфту то непонятно включил я её или нет, жду 5 сек чтоб убедится включилась или нет..

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

Добавлено: 01 дек 2014, 14:40
PKM
Я конечно не специалист в кфлопе, но
ukr-sasha писал(а):if (  SetBit(27) )
    {
    ClearBit(27);
    Delay_sec(5.0);
    }
SetBit(28);
Вместо SetBit(27) должна быть функция проверки состояния, так?

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

Добавлено: 01 дек 2014, 15:27
ukr-sasha
PKM писал(а):Вместо SetBit(27) должна быть функция проверки состояния, так?
Да, скорее всего: ReadBit.

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

Добавлено: 01 дек 2014, 15:36
vektor_z
PKM писал(а):Я конечно не специалист в кфлопе, но
ukr-sasha писал(а):if (  SetBit(27) )
    {
    ClearBit(27);
    Delay_sec(5.0);
    }
SetBit(28);
Вместо SetBit(27) должна быть функция проверки состояния, так?
Вот это другое дело :good: Работает как швейцарские часы :controller:
Всем огромное спасибо за помощь!!!
Р.S. Наверное в ближайшее будущее займусь изучением языка Си+ )..

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

Добавлено: 01 дек 2014, 15:49
ukr-sasha
vektor_z писал(а):Р.S. Наверное в ближайшее будущее займусь изучением языка Си+ )..
И я его не знаю. Мне бы тоже заняться изучением.... :hehehe:

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

Добавлено: 02 дек 2014, 02:24
PKM
Да... темный лес и для меня. Только по примеру могу чего-то написать.

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

Добавлено: 03 дек 2014, 13:54
vektor_z
Помогите правильно настроить скорости и ускорения, а то я уже запарился. Как я понял в конфигурационном файле выставляются мах скорости для G0, в настройках КМоушин Axis parametrs -мах скорость для G1, а в Jog speeds - мах скорость для ручных переездов. Никак не могу правильно настроить все три скорости, если по G0 и ручным переездам вроде все нормально ездит, то G1 очень медленно, если увеличиваю скорость G1, то G0 улетает в космос и соответственно драйвер уходит в защиту.. Какие примерно должны быть значения скорости и ускорения в конфигурационном фале и в настройках Axis parametrs, если по ХYZ стоят ШВП 10мм, по оси А редуктор 1:50, по оси В редукция 1:58 и на всех осях стоит дробление шага 1/8.

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

Добавлено: 03 дек 2014, 14:17
ukr-sasha
Выложите скриншот настроек...

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

Добавлено: 03 дек 2014, 15:37
vektor_z
Изображение

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

#include "KMotionDef.h"

#define QA 26	// define to which IO bits the AB signals are connected 
#define QB 27	
   

main()

   
{


	ch0->InputMode=NO_INPUT_MODE;
	ch0->OutputMode=STEP_DIR_MODE;
	ch0->Vel=25000;
	ch0->Accel=1000000;
	ch0->Jerk=1000000;
	ch0->P=1;
	ch0->I=0;
	ch0->D=0;
	ch0->FFAccel=0;
	ch0->FFVel=0;
	ch0->MaxI=200;
	ch0->MaxErr=1e+006;
	ch0->MaxOutput=200;
	ch0->DeadBandGain=1;
	ch0->DeadBandRange=0;
	ch0->InputChan0=4;
	ch0->InputChan1=0;
	ch0->OutputChan0=4;
	ch0->OutputChan1=0;
	ch0->MasterAxis=-1;
	ch0->LimitSwitchOptions=0x100;
	ch0->LimitSwitchNegBit=0;
	ch0->LimitSwitchPosBit=0;
	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=100000;
	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;

  EnableAxisDest(0,ch0->Dest);


	ch1->InputMode=NO_INPUT_MODE;
	ch1->OutputMode=STEP_DIR_MODE;
	ch1->Vel=25000;
	ch1->Accel=1000000;
	ch1->Jerk=1000000;
	ch1->P=1;
	ch1->I=0;
	ch1->D=0;
	ch1->FFAccel=0;
	ch1->FFVel=0;
	ch1->MaxI=600000;
	ch1->MaxErr=1e+006;
	ch1->MaxOutput=600000;
	ch1->DeadBandGain=1;
	ch1->DeadBandRange=0;
	ch1->InputChan0=5;
	ch1->InputChan1=0;
	ch1->OutputChan0=5;
	ch1->OutputChan1=0;
	ch1->MasterAxis=-1;
	ch1->LimitSwitchOptions=0x100;
	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;

EnableAxisDest(1,ch1->Dest);


	ch2->InputMode=NO_INPUT_MODE;
	ch2->OutputMode=STEP_DIR_MODE;
	ch2->Vel=25000;
	ch2->Accel=1000000;
	ch2->Jerk=1000000;
	ch2->P=1;
	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=6;
	ch2->InputChan1=0;
	ch2->OutputChan0=6;
	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=0.000769;
	ch2->iir[2].B1=0.001538;
	ch2->iir[2].B2=0.000769;
	ch2->iir[2].A1=1.92081;
	ch2->iir[2].A2=-0.923885;

EnableAxisDest(2,ch2->Dest);

	ch3->InputMode=NO_INPUT_MODE;
	ch3->OutputMode=STEP_DIR_MODE;
	ch3->Vel=25000;
	ch3->Accel=1000000;
	ch3->Jerk=1000000;
	ch3->P=1;
	ch3->I=0;
	ch3->D=0;
	ch3->FFAccel=0;
	ch3->FFVel=0;
	ch3->MaxI=200;
	ch3->MaxErr=1e+006;
	ch3->MaxOutput=200;
	ch3->DeadBandGain=1;
	ch3->DeadBandRange=0;
	ch3->InputChan0=7;
	ch3->InputChan1=0;
	ch3->OutputChan0=7;
	ch3->OutputChan1=0;
	ch3->MasterAxis=-1;
	ch3->LimitSwitchOptions=0x100;
	ch3->LimitSwitchNegBit=0;
	ch3->LimitSwitchPosBit=0;
	ch3->SoftLimitPos=1e+009;
	ch3->SoftLimitNeg=-1e+009;
	ch3->InputGain0=1;
	ch3->InputGain1=1;
	ch3->InputOffset0=0;
	ch3->InputOffset1=0;
	ch3->OutputGain=1;
	ch3->OutputOffset=0;
	ch3->SlaveGain=1;
	ch3->BacklashMode=BACKLASH_OFF;
	ch3->BacklashAmount=0;
	ch3->BacklashRate=0;
	ch3->invDistPerCycle=1;
	ch3->Lead=0;
	ch3->MaxFollowingError=1000000000;
	ch3->StepperAmplitude=20;

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

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

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


EnableAxisDest(3,ch3->Dest);


	ch4->InputMode=NO_INPUT_MODE;
	ch4->OutputMode=STEP_DIR_MODE;
	ch4->Vel=25000;
	ch4->Accel=1000000;
	ch4->Jerk=1000000;
	ch4->P=1;
	ch4->I=0;
	ch4->D=0;
	ch4->FFAccel=0;
	ch4->FFVel=0;
	ch4->MaxI=200;
	ch4->MaxErr=1e+006;
	ch4->MaxOutput=200;
	ch4->DeadBandGain=1;
	ch4->DeadBandRange=0;
	ch4->InputChan0=3;
	ch4->InputChan1=0;
	ch4->OutputChan0=3;
	ch4->OutputChan1=0;
	ch4->MasterAxis=-1;
	ch4->LimitSwitchOptions=0x100;
	ch4->LimitSwitchNegBit=0;
	ch4->LimitSwitchPosBit=0;
	ch4->SoftLimitPos=1e+009;
	ch4->SoftLimitNeg=-1e+009;
	ch4->InputGain0=1;
	ch4->InputGain1=1;
	ch4->InputOffset0=0;
	ch4->InputOffset1=0;
	ch4->OutputGain=1;
	ch4->OutputOffset=0;
	ch4->SlaveGain=1;
	ch4->BacklashMode=BACKLASH_OFF;
	ch4->BacklashAmount=0;
	ch4->BacklashRate=0;
	ch4->invDistPerCycle=1;
	ch4->Lead=0;
	ch4->MaxFollowingError=1000000000;
	ch4->StepperAmplitude=20;

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

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

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


EnableAxisDest(4,ch4->Dest);




   DefineCoordSystem6(0,1,2,3,4,-1);
   
      SetBitDirection(29,1);  //set as output
      SetBitDirection(30,1);  //set as output
      SetBitDirection(31,1);  //set as output
      SetBitDirection(33,1);  //set as output
   
   return 0;

    

	
}

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

Добавлено: 03 дек 2014, 15:54
ukr-sasha
Василий, скажу так "хотелки" по скрости у вас ого-го! ;-)
А если серьезо, попробуйте посчитать, как я писал в сообщении №3 этой темы.
Если не получится, то обращайтесь.

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

Добавлено: 03 дек 2014, 17:26
vektor_z
Дак, а что там ого-го? Вроде скромные хотелки, по расчетам получается около 10 метров/мин. Если в МДИ вводить то вроде все норм, а вот по программе иногда выкидывает фокусы. А так как раз по вашей инструкции и настаивал. Спасибо за статью, очень помогла)

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

Добавлено: 03 дек 2014, 17:51
ukr-sasha
vektor_z писал(а):Дак, а что там ого-го?

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

   ch0->Accel=1000000;
   ch0->Jerk=1000000;
И ускорение 15 дюймов/сек2= 381мм/сек2
И скорость 10дюймов/сек = 15 м/мин
Как по мне многовато для шаговика.

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

Добавлено: 03 дек 2014, 17:56
michael-yurov
vektor_z писал(а):Дак, а что там ого-го? Вроде скромные хотелки, по расчетам получается около 10 метров/мин.
Ну не 10, а больше 15.
ukr-sasha писал(а):И ускорение 15 дюймов/сек2= 381мм/сек2
И скорость 10дюймов/сек = 15 м/мин
Как по мне многовато для шаговика.
Ну, ускорение то еще нормальное, если механика позволяет, а вот скорость для шаговика, конечно, интересная, хотелось бы видео посмотреть.

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

Добавлено: 03 дек 2014, 21:10
vektor_z
michael-yurov писал(а):
vektor_z писал(а):Дак, а что там ого-го? Вроде скромные хотелки, по расчетам получается около 10 метров/мин.
Ну не 10, а больше 15.
Походу я чего то не понимаю... Шаг ШВП 10мм, микрошаг 1/8 и того имеем 200*8/10=160*25,4=4064 импульс/дюйм, далее макс скорость G0 в конфиг. файле Vel=25000; - 25000/4064*25,4*60= 9375мм/мин, эт я про G0 так как фокусы со скоростью как раз на холостых и получаются... Может с ускорениями чуть перемудрил, но если уменьшаю, то как то вяло двигается ось. Мах разгоняются линейные оси до 15000мм/мин, но уменьшил до 10000, так как очень резво двигается, не успеваю за ним проследить...
ukr-sasha писал(а):И ускорение 15 дюймов/сек2= 381мм/сек2
И скорость 10дюймов/сек = 15 м/мин

Как по мне многовато для шаговика.
Ну, ускорение то еще нормальное, если механика позволяет, а вот скорость для шаговика, конечно, интересная, хотелось бы видео посмотреть.
После завтра буду на работе, попробую заснять видео.

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

Добавлено: 03 дек 2014, 21:36
ukr-sasha
Моторы какие у вас?

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

Добавлено: 03 дек 2014, 21:42
michael-yurov
Мы говорим про то, что в KMotionCNC задано 10 дюймов в секунду, это 15240 мм/мин.

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

Добавлено: 03 дек 2014, 21:55
vektor_z
michael-yurov писал(а):Мы говорим про то, что в KMotionCNC задано 10 дюймов в секунду, это 15 240 мм/мин.
Я так и понял, но в KMotionCNC выставляются G1 скорости, которые я в G коде выставляю 5-8м/мин, а в настройках как с начала выставил так и забыл изменить...
ukr-sasha писал(а):Моторы какие у вас?
http://cnc.prom.ua/p4057603-shagovyj-dvigatel-85nm.html

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

Добавлено: 03 дек 2014, 22:31
ukr-sasha
На ваш мотор не нашел график скорости/момента, но у аналогичного двигателя, уже на 10 000имп/сек момент меньше 10%. А на 25000 имп/сек тогда что?
http://darxton.ru/files/pdf/steppermotor/ST86-114.pdf

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

Добавлено: 03 дек 2014, 23:38
vektor_z
ukr-sasha писал(а):На ваш мотор не нашел график скорости/момента, но у аналогичного двигателя, уже на 10 000имп/сек момент меньше 10%. А на 25000 имп/сек тогда что?
http://darxton.ru/files/pdf/steppermotor/ST86-114.pdf
По законам физики шмель летать не должен, но он об этом не знает и всё равно летает :hehehe:
Не знаю, или аналогичный двигатель совсем не такой как у меня, или вы в чем то просчитались, но мой двигатель вполне себе уверенно вращается на этих скоростях. Наверное Кфлоп и драйвера Leadshine EM806 с питанием 70В справляются со своей задачей выжимать из двигателя все..

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

Добавлено: 04 дек 2014, 00:38
ukr-sasha
vektor_z писал(а):Наверное Кфлоп и драйвера Leadshine EM806 с питанием 70В справляются со своей задачей выжимать из двигателя все..
Я же не против. :)
По вопросу: уменьшите скорость и ускорение, а потом постепенно добавляйте.
И еще, мне не понятно, как увеличение параметров по G1 влияют на G0?