Ввод в эксплуатацию закрыт, но вопросы остались...

Система управления станками с ЧПУ на основе контроллера KFLOP
mamun
Новичок
Сообщения: 3
Зарегистрирован: 19 мар 2016, 00:26
Репутация: 0
Настоящее имя: Андрей
Город: Рига
Страна: Латвия

Ввод в эксплуатацию закрыт, но вопросы остались...

#1 

Сообщение mamun » 19 мар 2016, 01:03

При удачных обстоятельствах приобрел KFLOP+kanalog+3 сервомотора (1 с тормозом)+3 servo drive к ним. Все первые шаги делал как описал Ukr-sasha в разделе http://www.precision-machines.ru/viewtopic.php?f=54&t=18.
- Подключил
- настроил файл Init3Analog.c соответственно для варианта +/-10В. Переименовал и Сохранил.
- в окне C Programs сделал коррекцию файлов
- настроил User Buttons и Trajectory Planner и т.д.
- загрузил файл в контроллер.
Стрелки в программе (KMotionCNC) работают, обнуляются размеры, работают разные скорости, но сами моторы не вращаются. В электросхемах не силен, может подсоединил неправильно?
подсоединял так (на примере одного серво драйва):

kflop_shem.jpg
6488 просмотров
kflop_shem.jpg 308.09 КБ

Аватара пользователя
ukr-sasha
Вникающий
Сообщения: 194
Зарегистрирован: 10 окт 2014, 12:08
Репутация: 397
Настоящее имя: Александр
Город: Киев
Страна: Украина

Re: Ввод в эксплуатацию закрыт, но вопросы остались...

#2 

Сообщение ukr-sasha » 19 мар 2016, 10:30

Активировать приводы нужно:
viewtopic.php?f=54&t=18#p112
Заходите в гости: YouTube-ukr-sasha

mamun
Новичок
Сообщения: 3
Зарегистрирован: 19 мар 2016, 00:26
Репутация: 0
Настоящее имя: Андрей
Город: Рига
Страна: Латвия

Re: Ввод в эксплуатацию закрыт, но вопросы остались...

#3 

Сообщение mamun » 19 мар 2016, 12:22

Понятно, но тогда еще уточнить - будет достаточно питания 12В или нужно 24В (в схеме указано от 12 до 24)?

Аватара пользователя
ukr-sasha
Вникающий
Сообщения: 194
Зарегистрирован: 10 окт 2014, 12:08
Репутация: 397
Настоящее имя: Александр
Город: Киев
Страна: Украина

Re: Ввод в эксплуатацию закрыт, но вопросы остались...

#4 

Сообщение ukr-sasha » 19 мар 2016, 13:46

mamun писал(а):Источник цитаты в схеме указано от 12 до 24

Тогда от 12 до 24В . :-)
Заходите в гости: YouTube-ukr-sasha

Аватара пользователя
Predator
Мастер
Сообщения: 2841
Зарегистрирован: 30 авг 2014, 20:14
Репутация: 1577
Настоящее имя: Александр
Страна: Россия
Контактная информация:

Re: Ввод в эксплуатацию закрыт, но вопросы остались...

#5 

Сообщение Predator » 19 мар 2016, 14:15

Ну, как-то так, да :D
Великую цивилизацию не покорить извне — пока она не разрушит себя изнутри! © Уильям Дюрант

mamun
Новичок
Сообщения: 3
Зарегистрирован: 19 мар 2016, 00:26
Репутация: 0
Настоящее имя: Андрей
Город: Рига
Страна: Латвия

Re: Ввод в эксплуатацию закрыт, но вопросы остались...

#6 

Сообщение mamun » 21 мар 2016, 22:52

Для активации приводов в файл инициализации куда надо вставить указанный код это Init3Analog.c? Но там нет команды Return 0.
Еще есть три файла:
Init3AnalogPlusMPG,
Init3AnalogPlusTwoMPGS,
InitStepDir3Axis ?
И соответственно для каждой следующей оси в коде менять пин (145, 1) ; (146, 1) ?

Вот мой Init3Analog.c В конце файла нет команды Return 0. Может что-то пропустил ранее?

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

#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=100000;
	ch0->Accel=1e+006;
	ch0->Jerk=1e+007;
	ch0->P=0.1;
	ch0->I=0;
	ch0->D=0;
	ch0->FFAccel=0;
	ch0->FFVel=0;
	ch0->MaxI=200;
	ch0->MaxErr=20000;
	ch0->MaxOutput=2000;
	ch0->DeadBandGain=1;
	ch0->DeadBandRange=0;
	ch0->InputChan0=0;
	ch0->InputChan1=0;
	ch0->OutputChan0=0;
	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=0.00025;
	ch0->Lead=0;
	ch0->MaxFollowingError=100000;
	ch0->StepperAmplitude=100;

	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=100000;
	ch1->Accel=1e+006;
	ch1->Jerk=1e+007;
	ch1->P=0.7;
	ch1->I=0.003;
	ch1->D=0;
	ch1->FFAccel=0;
	ch1->FFVel=0;
	ch1->MaxI=2000;
	ch1->MaxErr=20000;
	ch1->MaxOutput=2000;
	ch1->DeadBandGain=1;
	ch1->DeadBandRange=0;
	ch1->InputChan0=1;
	ch1->InputChan1=1;
	ch1->OutputChan0=1;
	ch1->OutputChan1=1;
	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=0.00025;
	ch1->Lead=0;
	ch1->MaxFollowingError=1000;
	ch1->StepperAmplitude=100;

	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=DAC_SERVO_MODE;
	ch2->Vel=100000;
	ch2->Accel=1e+006;
	ch2->Jerk=1e+007;
	ch2->P=0.3;
	ch2->I=0.003;
	ch2->D=0;
	ch2->FFAccel=0;
	ch2->FFVel=0;
	ch2->MaxI=2000;
	ch2->MaxErr=20000;
	ch2->MaxOutput=2000;
	ch2->DeadBandGain=1;
	ch2->DeadBandRange=0;
	ch2->InputChan0=2;
	ch2->InputChan1=2;
	ch2->OutputChan0=2;
	ch2->OutputChan1=2;
	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=0.00025;
	ch2->Lead=0;
	ch2->MaxFollowingError=1000;
	ch2->StepperAmplitude=100;

	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;

    EnableAxis(0);
	EnableAxis(1);
	EnableAxis(2);

    DefineCoordSystem(0,1,2,-1);
}


Будет работать, если написать так:

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

#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;
...............
...............
...............
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;

    EnableAxis(0);
	EnableAxis(1);
	EnableAxis(2);

    DefineCoordSystem(0,1,2,-1);

   SetBitDirection(144,1);
        for (;;)  //loop forever
   {
       WaitNextTimeSlice();
         if (ch0->Enable &&  ch1->Enable  && ch2->Enable)         
         SetBit(144);           
         else
         ClearBit(144);
    }

SetBitDirection(145,1);
        for (;;)  //loop forever
   {
       WaitNextTimeSlice();
         if (ch0->Enable &&  ch1->Enable  && ch2->Enable)         
         SetBit(145);           
         else
         ClearBit(145);
    }

SetBitDirection(146,1);
        for (;;)  //loop forever
   {
       WaitNextTimeSlice();
         if (ch0->Enable &&  ch1->Enable  && ch2->Enable)         
         SetBit(146);           
         else
         ClearBit(146);
    }

    return 0;
}


Уважаемый, mamun!
Убедительная просьба, в следующий раз листинги кода, забирать в специально предназначенный для этого BBcode [code], а не в BBcode [quote] предназначенный для цитирования.
Спасибо, за понимание.

- Predator

Аватара пользователя
Predator
Мастер
Сообщения: 2841
Зарегистрирован: 30 авг 2014, 20:14
Репутация: 1577
Настоящее имя: Александр
Страна: Россия
Контактная информация:

Re: Ввод в эксплуатацию закрыт, но вопросы остались...

#7 

Сообщение Predator » 25 мар 2016, 17:47

mamun писал(а):Источник цитаты Будет работать, если написать так
Так, а попробовать не получается, работает в таком варианте или нет? Если не работает, вернуть назад прежний файл.
Великую цивилизацию не покорить извне — пока она не разрушит себя изнутри! © Уильям Дюрант


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

Сейчас на форумах

Сейчас этот форум просматривают: нет зарегистрированных пользователей и 0 гостей