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

KFlop, KStep, KAnalog, KMotion...

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

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

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

Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

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

Сообщение ukr-sasha »

Atom42 писал(а):Саша, как это понять -низкий/высокий?
Если сигнал пропадает при наезде на концевик -низкий уровень. А если появляется - высокий.
Аватара пользователя
Atom42
Мастер
Сообщения: 721
Зарегистрирован: 07 июл 2014, 11:55
Репутация: 286
Настоящее имя: Денис
Откуда: Кемерово
Контактная информация:

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

Сообщение Atom42 »

ukr-sasha писал(а):Если сигнал пропадает при наезде на концевик -низкий уровень. А если появляется - высокий.
У меня при наезде пропадает 24v, получается низкий. Спасибо, парни, завтра пробовать буду.
Неважно, как быстро Ты идешь, главное- не останавливаться.
Аватара пользователя
Atom42
Мастер
Сообщения: 721
Зарегистрирован: 07 июл 2014, 11:55
Репутация: 286
Настоящее имя: Денис
Откуда: Кемерово
Контактная информация:

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

Сообщение Atom42 »

ukr-sasha писал(а):ch0->LimitSwitchOptions=0x103;
если высокий уровень срабатывания концевика.

и
ch0->LimitSwitchOptions=0x10f;
если низкий.
Все заработало :cheesy: большущее спасибо вам!!!
З.ы. Извиняюсь за невнимательность, тема уже поднималась, я не видел :wik: , не уследишь за всем :oops:
Re: Влияют ли значения Soft Limits? Они в импульсах указываю #31
Неважно, как быстро Ты идешь, главное- не останавливаться.
Аватара пользователя
Atom42
Мастер
Сообщения: 721
Зарегистрирован: 07 июл 2014, 11:55
Репутация: 286
Настоящее имя: Денис
Откуда: Кемерово
Контактная информация:

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

Сообщение Atom42 »

Ой, я совсем забыл очень важный для меня вопрос:
Как сделать чтобы слейв тоже при хомление по Z метке вставал?
Неважно, как быстро Ты идешь, главное- не останавливаться.
Аватара пользователя
Atom42
Мастер
Сообщения: 721
Зарегистрирован: 07 июл 2014, 11:55
Репутация: 286
Настоящее имя: Денис
Откуда: Кемерово
Контактная информация:

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

Сообщение Atom42 »

Я вот подумал, а если такой код вставить после строк поиска нуля по Х

SetBitDirection(39,0); // для оси X1

// поиск НОМЕ по Х1

Zero(3); // обнуление координаты оси Х1
Jog(3,10240); // перемещение оси Х1 в положительном направлении на скорости 5% от максимальной 204800 имп/сек
while (!ReadBit(39)) ; // ожидание срабатывания индексной метки по Х1- пин 39 - появление сигнала
Zero(3); // обнуление координаты оси Х1
Jog(3,0); // остановка оси Х1

Я пока не могу его проверить, у меня там полимер стынет, хотелось бы узнать, что еще нужно? Думаю так просто не будет работать, ведь слейв не активная ось.
Нужно что-то прописать, что бы на время она становилась не слейвом, а самостоятельной осью :thinking: ? Что-то типа как с отключением/включением обработки концевиков?
Неважно, как быстро Ты идешь, главное- не останавливаться.
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

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

Сообщение ukr-sasha »

Денис, опишите сначала алгоритм словами.
Так как я не сталкивался с подчиненной осью на практике, у меня вопросы:
- как выставлялось взаимное расположение концевиков? Точность ведь нужна не грубее сотки.
- по какому из двух датчиков обнуляется Х?
Аватара пользователя
Atom42
Мастер
Сообщения: 721
Зарегистрирован: 07 июл 2014, 11:55
Репутация: 286
Настоящее имя: Денис
Откуда: Кемерово
Контактная информация:

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

Сообщение Atom42 »

Саша, а у меня пока хом по Х не реализован до конца.
Хотелось бы видеть примерно следующий алгоритм И при условии, что ВСЕГО ОДИН КОНЦЕВИК!:
1. Ось Х едет на единственный концевик в минус
2. Срабатывает концевик, ось останавливается, отъезжает в плюс до Z метки МАСТЕРА
3. Обнуляется, останавливается.

4. Тут мне нужно (как мне кажется) ВТОРОЙ мотор Х1 вращается в плюс до своей Z метки и останавливается.

Зачем так?
Предположим я выставил перпендикулярность осей Х и У она меня устраивает тогда:
1. Я окручиваю одну сторону от ШВП
2. Делаю процедуру хомления как описал выше
3. Та как движки в удержании и оба на Z метках я ослабляю муфту соединяющую ШВП и мотор
4. Подгоняю гайку к порталу и фиксирую.
5. Затягиваю муфту ШВП- мотор

Что это дает?
После отключения/включения станка моторы будут минимально перекашивать порта, на сотки, та как скорее всего будут занимать разные положения, а после хомления должно ровно все быть.
Или так не получится сделать?
Неважно, как быстро Ты идешь, главное- не останавливаться.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Алгоритм обычно делают следующим:
Обе оси хомятся одновременно, но каждая по своему датчику и индексу. После хомления оси устанавливаются каждая в свою собственную позицию, которые задаются при юстировке так, чтобы портал стоял как надо.
Точность расположения датчиков существенной роли не играет.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Atom42
Мастер
Сообщения: 721
Зарегистрирован: 07 июл 2014, 11:55
Репутация: 286
Настоящее имя: Денис
Откуда: Кемерово
Контактная информация:

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

Сообщение Atom42 »

UAVpilot писал(а):Обе оси хомятся одновременно, но каждая по своему датчику и индексу.
А зачем два концевика, у меня они и по одному оба останавливаются? У каждого же есть своя Z метка.
UAVpilot писал(а):После хомления оси устанавливаются каждая в свою собственную позицию, которые задаются при юстировке так, чтобы портал стоял как надо.
Я не додумал до этого, а оно логично как. Но и как я написал тоже должно работать.

Я хочу понять как заставить слэйв ехать к z метке без мастера? Как я писал выше не получится?

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

SetBitDirection(39,0); // для оси X1

 // поиск НОМЕ по Х1

 Zero(3); // обнуление координаты оси Х1
 Jog(3,10240); // перемещение оси Х1 в положительном направлении на скорости 5% от максимальной 204800 имп/сек
while (!ReadBit(39)) ; // ожидание срабатывания индексной метки по Х1- пин 39 - появление сигнала
Zero(3); // обнуление координаты оси Х1
 Jog(3,0); // остановка оси Х1
Я ктому, что она как бы не активная же :thinking:
Неважно, как быстро Ты идешь, главное- не останавливаться.
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

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

Сообщение ukr-sasha »

Ось 3 неподчиненная:
ch3->MasterAxis=-1;
и
ось 3 подчиненная оси 0:
ch3->MasterAxis=0;
Аватара пользователя
Atom42
Мастер
Сообщения: 721
Зарегистрирован: 07 июл 2014, 11:55
Репутация: 286
Настоящее имя: Денис
Откуда: Кемерово
Контактная информация:

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

Сообщение Atom42 »

Здорово!
Это. что получается-выполнение текущего скрипта "отменяет" предыдущие настройки?
Неважно, как быстро Ты идешь, главное- не останавливаться.
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

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

Сообщение ukr-sasha »

Ну да, действует последняя команда.
Аватара пользователя
Atom42
Мастер
Сообщения: 721
Зарегистрирован: 07 июл 2014, 11:55
Репутация: 286
Настоящее имя: Денис
Откуда: Кемерово
Контактная информация:

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

Сообщение Atom42 »

Саша, все заработало как и планировалось, спасибо!
Неважно, как быстро Ты идешь, главное- не останавливаться.
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2181
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

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

Сообщение ukr-sasha »

Atom42 писал(а):Саша, все заработало как и планировалось, спасибо!
Поздравляю.
Интересно было бы посмотреть на код.
Аватара пользователя
Atom42
Мастер
Сообщения: 721
Зарегистрирован: 07 июл 2014, 11:55
Репутация: 286
Настоящее имя: Денис
Откуда: Кемерово
Контактная информация:

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

Сообщение Atom42 »

ukr-sasha писал(а):Интересно было бы посмотреть на код.
Вот так сейчас:

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

#include "KMotionDef.h"

int DoPC(int cmd);
int DoPCInt(int cmd, int i);
#define GATH_OFF 0  // define the offset into the Gather buffer where strings are passed

main()
{

//определяем пины для индексных меток, как ВХОД

SetBitDirection(36,0); // для оси Х
SetBitDirection(37,0); // для оси Y
SetBitDirection(38,0); // для оси Z
SetBitDirection(39,0); // для оси X1

      // поиск НОМЕ по Z
                       ch2->LimitSwitchOptions=0x100; // отключение обработки концевого датчика на оси Z, чтобы не блокировалась ось
            Jog(2,-20480);                            // перемещение оси Z в отрицательном направлении на скорости 10% от максимальной 204800 имп/сек
            while (ReadBit(141)) ;               // ожидание срабатывания датчика по Z-  пин 141 - пропадание сигнала
            Zero(2);                                    // обнуление координаты оси Z
            Jog(2,0);                              // остановка оси Z
            Jog(2,10240);                            // перемещение оси Z в положительном направлении на скорости 5% от максимальной 204800 имп/сек
            while (!ReadBit(38)) ;               // ожидание срабатывания индексной метки по Z-  пин 38 - появление сигнала
            Zero(2);                                    // обнуление координаты оси Z
            Jog(2,0);                              // остановка оси Z
                                ch2->LimitSwitchOptions=0x10f;// включение обработки концевого датчика на оси Z,
            
            
         
      // поиск НОМЕ по Х      
                       ch0->LimitSwitchOptions=0x100; // отключение обработки концевого датчика на оси Х, чтобы не блокировалась ось
            Jog(0,-20480);                            // перемещение оси Х в отрицательном направлении на скорости 10% от максимальной 204800 имп/сек
            while (ReadBit(137)) ;               // ожидание срабатывания датчика по Z-  пин 137  - пропадание сигнала
            Zero(0);                                    // обнуление координаты оси Х
            Jog(0,0);                              // остановка оси Х
            Jog(0,10240);                            // перемещение оси Х в положительном направлении на скорости 5% от максимальной 204800 имп/сек
            while (!ReadBit(36)) ;                 // ожидание срабатывания индексной метки по Х-  пин 36 - появление сигнала
            Zero(0);                                    // обнуление координаты оси Х
            Jog(0,0);                              // остановка оси Х
                                ch0->LimitSwitchOptions=0x10f;// включение обработки концевого датчика на оси Х,
          
// поиск НОМЕ по Х1 
                           ch3->MasterAxis=-1;
            Jog(3,10240);                            // перемещение оси Х1 в положительном направлении на скорости 5% от максимальной 204800 имп/сек
            while (!ReadBit(39)) ;                 // ожидание срабатывания индексной метки по Х1-  пин 39 - появление сигнала
            Zero(3);                                    // обнуление координаты оси Х1
            Jog(3,0);                              // остановка оси Х1
                            ch3->MasterAxis=0;
            
                 // поиск НОМЕ по Y      
                       ch1->LimitSwitchOptions=0x100; // отключение обработки концевого датчика на оси Y, чтобы не блокировалась ось
            Jog(1,-20480);                            // перемещение оси Y в отрицательном направлении на скорости 10% от максимальной 204800 имп/сек
            while (ReadBit(139)) ;               // ожидание срабатывания датчика по Y- пин 139
            Zero(1);                                    // обнуление координаты оси Y
            Jog(1,0);                              // остановка оси Y
            Jog(1,10240);                            // перемещение оси Y в положительном направлении на скорости 5% от максимальной 204800 имп/сек
            while (!ReadBit(37)) ;                 // ожидание срабатывания индексной метки по Y-  пин 37 - появление сигнала
            Zero(1);                                    // обнуление координаты оси Y
            Jog(1,0);                              // остановка оси Y
                                ch1->LimitSwitchOptions=0x10f;// включение обработки концевого датчика на оси Y,

            

            MDI("G92.1");  // очистка всех действующих оффсетов
}

//далее код обеспечивающий ввод команды в MDI

// put the MDI string (Manual Data Input - GCode) in the 
// gather buffer and tell the App where it is
int MDI(char *s)
{
   char *p=(char *)gather_buffer+GATH_OFF*sizeof(int);
   int i;
   
   do // copy to gather buffer w offset 0
   {
      *p++ = *s++;
   }while (s[-1]);
   
   // issue the command an wait till it is complete
   // (or an error - such as busy)
   return DoPCInt(PC_COMM_MDI,GATH_OFF);
}


// Put an integer as a parameter and pass the command to the App
int DoPCInt(int cmd, int i)
{
   int result;
   persist.UserData[PC_COMM_PERSIST+1] = i;
   return DoPC(cmd);
}

// Pass a command to the PC and wait for it to handshake
// that it was received by either clearing the command
// or changing it to a negative error code
int DoPC(int cmd)
{
   int result;
   
   persist.UserData[PC_COMM_PERSIST]=cmd;
   
   do
   {
      WaitNextTimeSlice();   
   }while (result=persist.UserData[PC_COMM_PERSIST]>0);
   
   return result;
   }


Неважно, как быстро Ты идешь, главное- не останавливаться.
Александр_
Мастер
Сообщения: 1743
Зарегистрирован: 24 дек 2013, 17:47
Репутация: 122
Контактная информация:

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

Сообщение Александр_ »

ukr-sasha писал(а): в таком случае, нужно будет сделать или купить платку с оптоизолированными входами, т.к. у Каналога их всего 8шт
а физически куда эта платка с оптоизолированными выходами подключается?
по сути и правда: в входов в каналоге это немного. в моем случае, например, три из них заняты Z-метками с линеек. три - концевики осей. остается всего два, а хотелось кое-какие кнопки с панели оператора завести в каналог.
можно. конечно, все концевики повесить на один вход но в этом случае уж точно не получится оставить возможность отъезда в противоположную сторону при наезде. по хорошему, наверное, вообще нужно 6 входов под концевики оставить.
Заходите в гости: www.pandicon.net www.graver36.ru
Дмитро
Почётный участник
Почётный участник
Сообщения: 1060
Зарегистрирован: 14 сен 2013, 01:20
Репутация: 1139
Настоящее имя: Дмитрий
Откуда: Киев

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

Сообщение Дмитро »

Александр_ писал(а): а физически куда эта платка с оптоизолированными выходами подключается?
В kflop
Александр_
Мастер
Сообщения: 1743
Зарегистрирован: 24 дек 2013, 17:47
Репутация: 122
Контактная информация:

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

Сообщение Александр_ »

ukr-sasha писал(а):Всё, теперь шпиндель будет управляться по G-кодам и кнопками на панели программы
хотел уточнить по шпинделю - если настроить все как в примере в начале темы, то скорость шпинделя будет задаваться только программно. всегда ли это удобно? даже у автора темы в соседней теме дополнительно стоит галетник на панели управления что говорит о том. что есть случаи когда нужно прибавить/убавить оборотов. если настроить шпиндель указанным в начале темы способом на управление сигналом 0-10V и дополнительно вывести на панель управления скажем, резистор переменного сопротивления для управления скорость. то как эти два сигнала будут между собой дружить? и как инвертор поймет какой сигнал главный?
Заходите в гости: www.pandicon.net www.graver36.ru
Аватара пользователя
AlexNikov
Мастер
Сообщения: 1212
Зарегистрирован: 05 янв 2014, 20:09
Репутация: 721
Настоящее имя: Алексей
Откуда: Томск
Контактная информация:

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

Сообщение AlexNikov »

Александр_ писал(а):
ukr-sasha писал(а):Всё, теперь шпиндель будет управляться по G-кодам и кнопками на панели программы
хотел уточнить по шпинделю - если настроить все как в примере в начале темы, то скорость шпинделя будет задаваться только программно. всегда ли это удобно? даже у автора темы в соседней теме дополнительно стоит галетник на панели управления что говорит о том. что есть случаи когда нужно прибавить/убавить оборотов. если настроить шпиндель указанным в начале темы способом на управление сигналом 0-10V и дополнительно вывести на панель управления скажем, резистор переменного сопротивления для управления скорость. то как эти два сигнала будут между собой дружить? и как инвертор поймет какой сигнал главный?
Думаю целесообразней выводить на панель галетник/переменный резистор дублирующий вот эту регулировку в программе, тогда и "дружить" все будет между собой (думаю у Саши (автора темы) именно так и сделано :thinking: ):
S_Feed.jpg
S_Feed.jpg (9.55 КБ) 1944 просмотра
Видео в подтверждение:
http://www.youtube.com/watch?v=bvMNvgMEqL0
Александр_
Мастер
Сообщения: 1743
Зарегистрирован: 24 дек 2013, 17:47
Репутация: 122
Контактная информация:

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

Сообщение Александр_ »

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

опять же: эта панелька на скрине из KmotionCNC. Если работать в Маче через плагин то галетник не будет работать?
Заходите в гости: www.pandicon.net www.graver36.ru
Ответить

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