Ввод в эксплуатацию ЧПУ системы на основе контроллера Kflop.
-
- Мастер
- Сообщения: 226
- Зарегистрирован: 04 авг 2013, 17:05
- Репутация: 43
- Откуда: Новороссийск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Да номера пинов соответствуют. Я так понял добавить скобки. Попробую.
То что стол попортил не страшно-черновой. Просто выяснил что Естоп надо не просто нажать а и подержать немного
В противном случае оси останавливаются но сигнал анейбл не пропадает. А у меня есть небольшое паразитное напряжение и оси понемногу начинают ползти.
Может надо паузу какую то прописать чтобы хватало кратковременного нажатия Естоп.
То что стол попортил не страшно-черновой. Просто выяснил что Естоп надо не просто нажать а и подержать немного
В противном случае оси останавливаются но сигнал анейбл не пропадает. А у меня есть небольшое паразитное напряжение и оси понемногу начинают ползти.
Может надо паузу какую то прописать чтобы хватало кратковременного нажатия Естоп.
- PKM
- Почётный участник
- Сообщения: 4263
- Зарегистрирован: 31 мар 2011, 18:11
- Репутация: 705
- Настоящее имя: Андрей
- Откуда: Украина
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Странно, то есть ПИД отключается без выключения привода? Это недопустимо.konstantinshr писал(а):В противном случае оси останавливаются но сигнал анейбл не пропадает. А у меня есть небольшое паразитное напряжение и оси понемногу начинают ползти.
- ukr-sasha
- Мастер
- Сообщения: 3401
- Зарегистрирован: 21 мар 2011, 07:47
- Репутация: 2180
- Настоящее имя: Украинец Александр Григорьевич
- Откуда: Киев, Украина
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Еще раз перечитал вопрос и не понял о каком отключении идет речь: если о физическом, то реакции и не должно быть, а если о программном отключении в КmotionCNC, то странно, у меня всё работает.konstantinshr писал(а):Сделал как в примере чтобы при отключении оси останавливался шпиндель.
Код выше, как раз и должен отключать сигнал S-On если ПИД отключился, т.е. ось выключена программно.PKM писал(а):Странно, то есть ПИД отключается без выключения привода? Это недопустимо.
-
- Мастер
- Сообщения: 226
- Зарегистрирован: 04 авг 2013, 17:05
- Репутация: 43
- Откуда: Новороссийск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Что то у меня не так с файлом инициализации.
Сразу после инициализации работает и Естоп и останов в результате отключения осей. Но после какого то времени контролер перестает реагировать на кнопки стопа.
Файл инициализации :
Может где то эти программы зацыкливаюся. Потому что при остановке программы на паузу и отводе осей в сторону и потом продолжении программы она выполняется с прерываниями. Ось разгоняется тормозит и снова разгоняется на прямых участках.
Не знаю как спрятать текст под прокрутку поэтому получилось так много и текст сделал больше чтобы разграничить.
Сразу после инициализации работает и Естоп и останов в результате отключения осей. Но после какого то времени контролер перестает реагировать на кнопки стопа.
Файл инициализации :
Может где то эти программы зацыкливаюся. Потому что при остановке программы на паузу и отводе осей в сторону и потом продолжении программы она выполняется с прерываниями. Ось разгоняется тормозит и снова разгоняется на прямых участках.
Не знаю как спрятать текст под прокрутку поэтому получилось так много и текст сделал больше чтобы разграничить.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Не знаю, как организовано у тебя, но нужно смотреть, в каком потоке когда какая программа выполняется.
Если две или более разных программ одновременно выполняются в разных потоках - нужно быть уверенным, что они никак не мешают друг другу и не выполняют противоречивых действий.
Если две или более разных программ одновременно выполняются в разных потоках - нужно быть уверенным, что они никак не мешают друг другу и не выполняют противоречивых действий.
- ukr-sasha
- Мастер
- Сообщения: 3401
- Зарегистрирован: 21 мар 2011, 07:47
- Репутация: 2180
- Настоящее имя: Украинец Александр Григорьевич
- Откуда: Киев, Украина
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Какого отключения?konstantinshr писал(а):в результате отключения осей.
Этот код зачем?konstantinshr писал(а):#define QA 26 // define to which IO bits the AB signals are connected
#define QB 27
main()
{
int BitA,Change1=0,Change2=0, DiffX2;
int PosNoWrap, NewPos, Pos=0, wraps;
double Factor=0;
Что включается?konstantinshr писал(а):SetBit(152);
SetBit(157);
SetBit(158);
SetBit(159);
Ждете пропадание сигнала или появление?konstantinshr писал(а):// Handle ESTOP
if (!ReadBit(141)); // ожидание срабатывания датчика по Z- пин 139 - пропадание сигнала \
Я увидел код по оси Зет.konstantinshr писал(а):И поиск нуля оси А:
И схему соединений бы не помешало. А то гадание на кофейной гуще получается...
-
- Мастер
- Сообщения: 226
- Зарегистрирован: 04 авг 2013, 17:05
- Репутация: 43
- Откуда: Новороссийск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Я делаю инициализацию затем запускаю программу ноль инструмента и пускаю УП. Получается поиск нуля где то висит в контролере? В чера вообще вылез косяк. Делал простейшую про6рамму фрещерования поверхности и вручную пускал шпиндель. Так при нажатии М3 дергалась ось Х и контролер выпадал в ошибку. Помогло только снятие питания с контролера.michael-yurov писал(а):Не знаю, как организовано у тебя, но нужно смотреть, в каком потоке когда какая программа выполняется.
Если две или более разных программ одновременно выполняются в разных потоках - нужно быть уверенным, что они никак не мешают друг другу и не выполняют противоречивых действий.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Вот уже обманываешь - у тебя в конце файла инициализации бесконечный цикл: for (;;) //loop foreverkonstantinshr писал(а):Я делаю инициализацию затем запускаю программу ноль инструмента и пускаю УП.
Так что программа инициализации у тебя никогда не заканчивается. Она будет выполнятся постоянно (висеть) в том потоке, в котором ты ее запустил.
Если при этом запустить программу "ноль инструмента" в том же потоке - программа инициализации будет остановлена и туда будет записана и запущена программа "ноль инструмента".
Очень похоже на проблемы с помехами от шпинделя.konstantinshr писал(а):В чера вообще вылез косяк. Делал простейшую про6рамму фрещерования поверхности и вручную пускал шпиндель. Так при нажатии М3 дергалась ось Х и контролер выпадал в ошибку. Помогло только снятие питания с контролера.
- ukr-sasha
- Мастер
- Сообщения: 3401
- Зарегистрирован: 21 мар 2011, 07:47
- Репутация: 2180
- Настоящее имя: Украинец Александр Григорьевич
- Откуда: Киев, Украина
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Делайте скрины настроек программ и схему подключений.konstantinshr писал(а):Что то у меня не так с файлом инициализации...
-
- Мастер
- Сообщения: 226
- Зарегистрирован: 04 авг 2013, 17:05
- Репутация: 43
- Откуда: Новороссийск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Бесконечный цикл я делал по рекомендациям этой темы. Да и все подключения как для kanaloga. Получается после выполнения программы "ноль инструмента" цикл прервался. Может тогда циклическую часть программы вынести в отдельный файл и сделать кнопку "безопасность" и запускать ее перед пуском УП. Или как то по другому, более красиво, можно решить эту проблему, чтобы при нажатии пуск одновременно запускался цикл безопасности.michael-yurov писал(а): Вот уже обманываешь - у тебя в конце файла инициализации бесконечный цикл: for (;;) //loop forever
Так что программа инициализации у тебя никогда не заканчивается. Она будет выполнятся постоянно (висеть) в том потоке, в котором ты ее запустил.
Если при этом запустить программу "ноль инструмента" в том же потоке - программа инициализации будет остановлена и туда будет записана и запущена программа "ноль инструмента".
Скрины настроек выложу вечером.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
У KFlop-а 7 потоков для одновременного выполнения программ.
Никто не заставляет выполнять все программы в одном потоке.
Я об этом стал писать просто, чтобы обратить внимание на нетривиальный момент.
Никто не заставляет выполнять все программы в одном потоке.
Я об этом стал писать просто, чтобы обратить внимание на нетривиальный момент.
-
- Мастер
- Сообщения: 226
- Зарегистрирован: 04 авг 2013, 17:05
- Репутация: 43
- Откуда: Новороссийск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
А можно объяснить как организовать выполнение программ по разным потокамmichael-yurov писал(а):У KFlop-а 7 потоков для одновременного выполнения программ.
Никто не заставляет выполнять все программы в одном потоке.
- michael-yurov
- Почётный участник
- Сообщения: 11626
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4634
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Вот там, где ты запускаешь программу - там и указывается в настройках, в каком потоке ее запускать.konstantinshr писал(а):А можно объяснить как организовать выполнение программ по разным потокамmichael-yurov писал(а):У KFlop-а 7 потоков для одновременного выполнения программ.
Никто не заставляет выполнять все программы в одном потоке.
Активный поток подсвечивается зеленым (там где семь радиобоксов).
Скриншоты делать лень - придется станок включать.
-
- Мастер
- Сообщения: 226
- Зарегистрирован: 04 авг 2013, 17:05
- Репутация: 43
- Откуда: Новороссийск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Если можно сделайте скриншоты когда будет возможность. На слух воспринимается тяжеловато.michael-yurov писал(а):Вот там, где ты запускаешь программу - там и указывается в настройках, в каком потоке ее запускать.konstantinshr писал(а):А можно объяснить как организовать выполнение программ по разным потокамmichael-yurov писал(а):У KFlop-а 7 потоков для одновременного выполнения программ.
Никто не заставляет выполнять все программы в одном потоке.
Активный поток подсвечивается зеленым (там где семь радиобоксов).
Скриншоты делать лень - придется станок включать.
-
- Мастер
- Сообщения: 226
- Зарегистрирован: 04 авг 2013, 17:05
- Репутация: 43
- Откуда: Новороссийск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Все спасибо разобрался. Поставил "Thread" 2 и все потоки не пересекаются. А что регулирует "VAR" в той же строчкп?michael-yurov писал(а): Вот там, где ты запускаешь программу - там и указывается в настройках, в каком потоке ее запускать.
- AlexNikov
- Мастер
- Сообщения: 1212
- Зарегистрирован: 05 янв 2014, 20:09
- Репутация: 721
- Настоящее имя: Алексей
- Откуда: Томск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Доброго дня. Запускаю управление шпинделя и помпой от K-Step. Встал вопрос - схему управления реле собрал согласно мануалу:
Биты для управления выходами K-step "0" и "1"? У меня реле на 12V и соответственно подано напряжение 12V, прописал на кнопку M3 - установить для битов "0" и "1" состояние "1", при нажатии на кнопку реакции нет (после прописывания действий на кнопку INIT нажимался). Я не верно прописал что-то? (при 24V тоже самое, просто подключил цешку вместо реле - всегда 1,4V на выводе 2 и 4 относительно выводов 1 и 3)- ukr-sasha
- Мастер
- Сообщения: 3401
- Зарегистрирован: 21 мар 2011, 07:47
- Репутация: 2180
- Настоящее имя: Украинец Александр Григорьевич
- Откуда: Киев, Украина
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Попробуйте относительно земли измерить.AlexNikov писал(а):при 24V тоже самое, просто подключил цешку вместо реле - всегда 1,4V на выводе 2 и 4 относительно выводов 1 и 3
Это вы падение напряжения на диоде измеряете. Там оптрон, как ключ открывается/закрывается.
Код в студию.AlexNikov писал(а):после прописывания действий на кнопку INIT нажимался
С Кстепом дело не имел, но на вкладке пинов, есть другая нумерация.
- AlexNikov
- Мастер
- Сообщения: 1212
- Зарегистрирован: 05 янв 2014, 20:09
- Репутация: 721
- Настоящее имя: Алексей
- Откуда: Томск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Относительно 0V на выводах 1 и 3 +12V, на выводах 2 и 4 0V. Насколько я понимаю при активации нужных битов, на выходах 2 и 4 так же должно быть 12V, т.к. транзисторный ключ будет открыт током опто-транзистора в оптопаре, приложенным к базе ключа.ukr-sasha писал(а):Попробуйте относительно земли измерить.AlexNikov писал(а):при 24V тоже самое, просто подключил цешку вместо реле - всегда 1,4V на выводе 2 и 4 относительно выводов 1 и 3
Это вы падение напряжения на диоде измеряете. Там оптрон, как ключ открывается/закрывается.Код в студию.AlexNikov писал(а):после прописывания действий на кнопку INIT нажимался
С Кстепом дело не имел, но на вкладке пинов, есть другая нумерация.
Вот код:
Код: Выделить всё
#include "KMotionDef.h"
// Defines axis 0, 1, 2 as simple step dir TTL outputs for KSTEP
// enables them
// sets them as an xyz coordinate system for GCode
int main()
{
double T0, LastX=0, LastY=0, LastZ=0, Tau;
KStepPresent=TRUE; // enable KSTEP input multiplexing
FPGA(KAN_TRIG_REG)=4; // Mux PWM0 to JP7 Pin5 IO 44 for KSTEP
FPGA(STEP_PULSE_LENGTH_ADD) = 63 + 0x80; // set polarity and pulse length to 4us
ch0->InputMode=NO_INPUT_MODE;
ch0->OutputMode=STEP_DIR_MODE;
ch0->Vel=40000;
ch0->Accel=200000;
ch0->Jerk=4e+006;
ch0->P=0;
ch0->I=0.01;
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=0;
ch0->InputChan1=0;
ch0->OutputChan0=8;
ch0->OutputChan1=0;
ch0->MasterAxis=-1;
ch0->LimitSwitchOptions=0x123;
ch0->LimitSwitchNegBit=169;
ch0->LimitSwitchPosBit=168;
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.000769;
ch0->iir[2].B1=0.001538;
ch0->iir[2].B2=0.000769;
ch0->iir[2].A1=1.92076;
ch0->iir[2].A2=-0.923833;
EnableAxisDest(0,0);
ch1->InputMode=NO_INPUT_MODE;
ch1->OutputMode=STEP_DIR_MODE;
ch1->Vel=40000;
ch1->Accel=200000;
ch1->Jerk=4e+006;
ch1->P=0;
ch1->I=0.01;
ch1->D=0;
ch1->FFAccel=0;
ch1->FFVel=0;
ch1->MaxI=200;
ch1->MaxErr=1e+006;
ch1->MaxOutput=200;
ch1->DeadBandGain=1;
ch1->DeadBandRange=0;
ch1->InputChan0=0;
ch1->InputChan1=0;
ch1->OutputChan0=9;
ch1->OutputChan1=0;
ch1->MasterAxis=-1;
ch1->LimitSwitchOptions=0x123;
ch1->LimitSwitchNegBit=171;
ch1->LimitSwitchPosBit=170;
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.92076;
ch1->iir[2].A2=-0.923833;
EnableAxisDest(1,0);
ch2->InputMode=NO_INPUT_MODE;
ch2->OutputMode=STEP_DIR_MODE;
ch2->Vel=40000;
ch2->Accel=200000;
ch2->Jerk=4e+006;
ch2->P=0;
ch2->I=0.01;
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=0;
ch2->InputChan1=0;
ch2->OutputChan0=10;
ch2->OutputChan1=0;
ch2->MasterAxis=-1;
ch2->LimitSwitchOptions=0x122;
ch2->LimitSwitchNegBit=173;
ch2->LimitSwitchPosBit=172;
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;
EnableAxisDest(2,0);
DefineCoordSystem(0,1,2,-1);
SetBitDirection(45,1); // set Enable Signal as Output
SetBit(45); // Enable the amplifiers
// Add a small amount of Coordinated Motion Path smoothing if desired
// Tau = 0.001; // seconds for Low Pass Filter Time Constant
// KLP = exp(-TIMEBASE/Tau);
KLP=0; // force to 0 to disable
// printf("Tau=%f KLP=%f\n",Tau,KLP);
for (;;) // loop forever
{
WaitNextTimeSlice();
// Service Amplifier disable after no activity for a while
if (ch0->Dest != LastX || ch1->Dest != LastY || ch2->Dest != LastZ)
{
// we moved - enable KStep Amplifers
SetBit(45);
T0 = Time_sec(); // record the time and position of last motion
LastX=ch0->Dest;
LastY=ch1->Dest;
LastZ=ch2->Dest;
}
else
{
if (Time_sec() > T0 + 10.0) ClearBit(45);
}
}
return 0;
}
- ukr-sasha
- Мастер
- Сообщения: 3401
- Зарегистрирован: 21 мар 2011, 07:47
- Репутация: 2180
- Настоящее имя: Украинец Александр Григорьевич
- Откуда: Киев, Украина
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
Верно.AlexNikov писал(а):Относительно 0V на выводах 1 и 3 +12V, на выводах 2 и 4 0V. Насколько я понимаю при активации нужных битов, на выходах 2 и 4 так же должно быть 12V, т.к. транзисторный ключ будет открыт током опто-транзистора в оптопаре, приложенным к базе ключа.
- AlexNikov
- Мастер
- Сообщения: 1212
- Зарегистрирован: 05 янв 2014, 20:09
- Репутация: 721
- Настоящее имя: Алексей
- Откуда: Томск
- Контактная информация:
Re: Ввод в эксплуатацию ЧПУ системы на основе контроллера Kf
В настройках KMotion прописал управление пинами так:
Вроде все верно. Но реакции нет. Номера битов судя по мануалу "0" и "1"