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

KFlop, KStep, KAnalog, KMotion...

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

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

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

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

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

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

Александр_ писал(а): тогда при размыкании цифрового выхода ток пропадет во всей цепи и все оси остановятся. так?
У меня так и сделано. Работает.
Аватара пользователя
AlexNikov
Мастер
Сообщения: 1212
Зарегистрирован: 05 янв 2014, 20:09
Репутация: 721
Настоящее имя: Алексей
Откуда: Томск
Контактная информация:

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

Сообщение AlexNikov »

Александр_ писал(а):
AlexNikov писал(а):Завершение выполнения g-кода обычно сопровождается командой М5 или М30, повесьте на них активацию кого-либо пина в KMotionCNC.
зачем? вопос был по мотивам поста №5 этой темы.
там показан пример для одной оси. если там цифровой выход замыкает перемычку для активации оси то логично по-моему, последовательно все оси подключить - по аналогии с сигналом ALM. тогда при размыкании цифрового выхода ток пропадет во всей цепи и все оси остановятся. так?
Ответ был дан для Fishman, и по конкретному вопросу - как выдать сигнал с к-флоп после окончания работы ж-кода.
fishman
Кандидат
Сообщения: 83
Зарегистрирован: 14 сен 2015, 22:04
Репутация: 9
Контактная информация:

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

Сообщение fishman »

AlexNikov писал(а):
Александр_ писал(а):
AlexNikov писал(а):Завершение выполнения g-кода обычно сопровождается командой М5 или М30, повесьте на них активацию кого-либо пина в KMotionCNC.
зачем? вопос был по мотивам поста №5 этой темы.
там показан пример для одной оси. если там цифровой выход замыкает перемычку для активации оси то логично по-моему, последовательно все оси подключить - по аналогии с сигналом ALM. тогда при размыкании цифрового выхода ток пропадет во всей цепи и все оси остановятся. так?
Ответ был дан для Fishman, и по конкретному вопросу - как выдать сигнал с к-флоп после окончания работы ж-кода.
Спасибо! Будем пробовать
Александр_
Мастер
Сообщения: 1743
Зарегистрирован: 24 дек 2013, 17:47
Репутация: 122
Контактная информация:

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

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

попытался сегодня настроить сигнал ServoOn и как обычно, с первого раза не получилось :-(
Отключил через СигмаВин "Servo is always ON", собрал цепочку из четырех сервопаков, последовательно выводя сигнал S-ON с каждого. Дальше как и нужно было, завел в Каналог и вставил кусочек кода в файл инициализации. При нажатии кнопки INIT KmotionCNC не ругается, но оси не оживают. Сами провода точно спаял правильно - вынул из Каналога 2 провода - на нихВольта как и нужно. Замкнул их между собой - оси включаются. То есть не срабатывает именно перемычка на Каналоге. Может, какая-то орфографическая неточность в С-файле? Прикрепил его.
Вложения
Setup Gcode 4 axis setub.zip
(1.28 КБ) 403 скачивания
Заходите в гости: www.pandicon.net www.graver36.ru
Аватара пользователя
AlexNikov
Мастер
Сообщения: 1212
Зарегистрирован: 05 янв 2014, 20:09
Репутация: 721
Настоящее имя: Алексей
Откуда: Томск
Контактная информация:

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

Сообщение AlexNikov »

Александр_ писал(а):попытался сегодня настроить сигнал ServoOn и как обычно, с первого раза не получилось :-(
Отключил через СигмаВин "Servo is always ON", собрал цепочку из четырех сервопаков, последовательно выводя сигнал S-ON с каждого. Дальше как и нужно было, завел в Каналог и вставил кусочек кода в файл инициализации. При нажатии кнопки INIT KmotionCNC не ругается, но оси не оживают. Сами провода точно спаял правильно - вынул из Каналога 2 провода - на нихВольта как и нужно. Замкнул их между собой - оси включаются. То есть не срабатывает именно перемычка на Каналоге. Может, какая-то орфографическая неточность в С-файле? Прикрепил его.
(ch0->Enable && ch1->Enable && ch2->Enable) мб тут ошибка? Какой бит включает оси, 144? К каким пинам к-аналога подключена активация осей?
Последний раз редактировалось AlexNikov 13 окт 2015, 15:33, всего редактировалось 1 раз.
Александр_
Мастер
Сообщения: 1743
Зарегистрирован: 24 дек 2013, 17:47
Репутация: 122
Контактная информация:

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

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

подключал все как в примере в первых постах этой темы. 144 бит
Заходите в гости: www.pandicon.net www.graver36.ru
Аватара пользователя
AlexNikov
Мастер
Сообщения: 1212
Зарегистрирован: 05 янв 2014, 20:09
Репутация: 721
Настоящее имя: Алексей
Откуда: Томск
Контактная информация:

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

Сообщение AlexNikov »

Александр_ писал(а):подключал все как в примере в первых постах этой темы. 144 бит
ну так у вас вроде каналы на привода не ch0-ch2 а ch4-ch7
Александр_
Мастер
Сообщения: 1743
Зарегистрирован: 24 дек 2013, 17:47
Репутация: 122
Контактная информация:

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

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

а, и правда, может именно из-за этого. спасибо! подправлю
Заходите в гости: www.pandicon.net www.graver36.ru
Александр_
Мастер
Сообщения: 1743
Зарегистрирован: 24 дек 2013, 17:47
Репутация: 122
Контактная информация:

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

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

ukr-sasha писал(а):У меня так и сделано. Работает.
как правильно завести сигналы ALARM в кфлоп/каналог? цепочкой из ALARM-ов сервопаков шунтировать цепь S-on? Или завести эту цепочку в свободный цифровой выход и как-то настроить чтобы при выпадении ошибки каналог отключал S-ON?
Заходите в гости: www.pandicon.net www.graver36.ru
Александр_
Мастер
Сообщения: 1743
Зарегистрирован: 24 дек 2013, 17:47
Репутация: 122
Контактная информация:

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

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

не получается ли некоторого противоречия в описании к каналогу?
на сайте кфлопа есть заметка про подключение аналоговых сервоусилителей Advanced Motion к каналогу. на схеме видно, что в сервоусилитель заводится дифференциальный выход энкодера и они же через сервоусилитель идут в каналог замыкая цепочку ОС. С другой стороны, просмотрел по каталогу Advanced Motion сервоусилители с энкодером - на всех что нашел вход энкодера типа "открытый коллектор", а значит и энкодер должен быть такой же.
Вложения
Untitled-1 copy.jpg (2378 просмотров) <a class='original' href='./download/file.php?id=60965&mode=view' target=_blank>Загрузить оригинал (101.59 КБ)</a>
Заходите в гости: www.pandicon.net www.graver36.ru
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Входы не бывают "открытый коллектор", такими бывают только выходы.
Выход может быть и "открытый коллектор" и дифференциальный одновременно.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
rz90
Новичок
Сообщения: 31
Зарегистрирован: 27 май 2014, 08:33
Репутация: 4
Откуда: Екатеринбург
Контактная информация:

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

Сообщение rz90 »

Всем привет, нужна помощь! Пытаюсь разобраться с управлением автосмены инструмента. Отредактировал файл, но он еще далек от верного варианта, на недостающие скобочки можно пока не обращать внимания, номера пинов тоже не принципиальны.
У станка следующий алгоритм работы
https://youtu.be/zi93cBBHXRM

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

#include "KMotionDef.h"

// T O O L   C H A N G E R   S E Q U E N C E
//
// define state that the tool changer may be in
enum {T_IDLE,T_WORKING};

#define TOOL_VAR 20        	// Tool changer desired new tool Var
#define TOOL_STATE_VAR 19  	// Tool changer state is saved globally in this Var
#define LAST_TOOL_VAR 18   	// Tool changer Last tool position is saved globally in this Var
#define ZHOME 0             // Absolute Position of Z Axis Home
#define ZTOOLPOS ******     // Absolute Position of Z Axis For Top Of Tool Slot

int *ChangerState 	= &persist.UserData[TOOL_STATE_VAR];
int *Tool     		= &persist.UserData[TOOL_VAR];
int *LastTool 		= &persist.UserData[LAST_TOOL_VAR];

double ToolTime;

// Returns Current Tool Number
int CurrentTool(void){
    int ToolNum = 0;
}
    if (ReadBit(140)){       
    return ToolNum;
}

// Moves Magazine To Specified Slot
void MoveMagazine(int tool){
	
    int delta = tool - CurrentTool();   // how far to move
    if (delta>10)  delta-=20;            // optimize direction
    if (delta<-10) delta+=20;
	printf("Moving Magazine %d Slots\n", delta);
    StepMagazine(delta);
    return;
}

// Moves Magazine By Specified Number Of Slots
void StepMagazine(int delta){

    if (!ReadBit(???) && (Pos(2) < -100)) ????????????????
}
    {
        printf("Error Spindle In Invalid Position\n");
        *ChangerState = T_IDLE;  // go idle

    } else {

        int i = 0;
        int dir;
        if (delta > 0){
            SetBit(148);
	While(ReadBit(141);
	if (ReadBit(141)){
	ClearBit(148);	
        {    
	dir = 1;
        } else {
            SetBit(149);
	While(ReadBit(141);
	if (ReadBit(141)){
	ClearBit(149);	
        { 
            dir = -1;
        }
        while (delta != i){
            while(ReadBit(140)){
                WaitNextTimeSlice();
            }
            while(!ReadBit(140)){
                WaitNextTimeSlice();
            }
            i += dir;
        }
        ClearBit(149);
        ClearBit(148);
        return;
    }
}

main()
{
    
	{
		/// T O O L  C H A N G E R  S T A R T
		
		if (*ChangerState == T_IDLE)
		{
			*ChangerState = T_WORKING;
			
			// Spindle stop
			Move(3,0);		// move a-axis to 0
				
			// Move Z Axis To TOOL Position
			Move(2, ZTOOLPOS);
			while (!CheckDone(2)) ;
				if (!chan[2].Enable) return 1;
			
			// Wait For Z Axis To Stop Moving
				while (!CheckDone(2)) ;
					if (!chan[2].Enable) return 1;

			if (*LastTool==0)
			{
				printf("Error Magazine Position Never Defined\n");
				*ChangerState = T_IDLE;  // go idle
				return;
			}
			else if (*Tool > 20 || *Tool < 1)
			{
				printf("Invalid Tool Number %d\n",*Tool);
				*ChangerState = T_IDLE;  // go idle
				return;
			}
			else if (*Tool == *LastTool)
			{
				printf("Requested Tool (#%d) Already In Position\n",*Tool);
				*ChangerState = T_IDLE;  // go idle
				return;
			}
			else
			{

				// Move Magazine To Last Tool Position If Not Already There
				if (CurrentTool() != *LastTool){
					MoveMagazine(*LastTool);
				}					

		                                             
				// Move Magazine into position of tool slot
				SetBit(144);
				While(ReadBit(136);
				if (ReadBit(136)){
					ClearBit(144);
				}

				// Unclamp Tool Освободить инструмент
				SetBit(145);
				While(ReadBit(137);
				if (ReadBit(137)){
					ClearBit(145);
				}
				printf("tool Unclamped\n");
			
				//Up Z-Axis
				MoveRel(2,150);		// 150 mm
				
				// Wait For Z Axis To Stop Moving
				while (!CheckDone(2)) ;
					if (!chan[2].Enable) return 1;

			
				// Move Magazine To Desired Tool Position
				MoveMagazine(*Tool);

				// Check If Current Tool Is Desired Tool
				if (CurrentTool() == *Tool)
				{
					printf("Tool Clamp\n");

					Move(2, ZTOOLPOS);
					while (!CheckDone(2)) ;
						if (!chan[2].Enable) return 1;

					// Clamp Tool
					SetBit(146);
					While(ReadBit(138);
					if (ReadBit(138)){
					ClearBit(146);
					
				} else {
				
					printf("Wrong Tool Slot - %d/n", CurrentTool());
					return;
					
				}

				// Move Magazine into home position
				SetBit(147);
				While(ReadBit(139);
				if (ReadBit(139)){
					ClearBit(147);
				
				// Move Z Axis To Home Position
				Move(2, ZHOME);
				while (!CheckDone(2)) ;
					if (!chan[2].Enable) return 1;
							
				printf("Tool Change Complete\n");
				*LastTool = *Tool;  // remember where we are
				*ChangerState = T_IDLE;
			}
		}
	}
}
Александр_
Мастер
Сообщения: 1743
Зарегистрирован: 24 дек 2013, 17:47
Репутация: 122
Контактная информация:

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

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

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

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

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

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

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

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

так и я о том же, но тут мне присоветовали:

"Дифференциальый выход нельзя напрямую подключать к TTL входу. Нужен преобразователь из дифференциального в однополярный сигнал TTL уровня. Хотя усилитель, может иметь как дифференциальный, так и TTL вход.

Дело не столько в инвертированном сигнале дифпары. Дело в уровнях. По дифпаре сигнал передается потенциалом +-12, или +-24В. А выход типа открытый коллектор при срабатывании тика энкодера, открывает ключ, ко коллектору которого присоединена линия передачи сигнала к усилителю. Фактически открытый коллектор, при срабатывании тика энкодера коротит сигнальный провод линии на землю. А когда нет тика отключает сигнальную линию от земли. Принцип передачи сигнала разный в дифпаре - изменяемый потенциал, открытый коллектор - изменение сопротивления на конце сигнальной линии. Прямое подключение вряд ли заработает. Да и усилитель не поймет, что у него на входе творится. В худшем случае, что-то сгорит. Хотя разъемы разны типов энкодеров, вряд ли совпадут."
Заходите в гости: www.pandicon.net www.graver36.ru
Дмитро
Почётный участник
Почётный участник
Сообщения: 1060
Зарегистрирован: 14 сен 2013, 01:20
Репутация: 1139
Настоящее имя: Дмитрий
Откуда: Киев

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

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

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

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

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

так если взять энкодер с дифференциальным выходом А, А-, В, В-, Z, Z-, завести половину этих сигналов в сервоусилитель то как на выходе он отдаст снова 4 сигнала чтобы в каналог завести?
Заходите в гости: www.pandicon.net www.graver36.ru
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

А- - это инвертированный А.
Александр_ писал(а):как на выходе он отдаст снова 4 сигнала
Прямые сигналы проинвертирует и получит недостающие.
Дифф. сигнал используется только в длинных проводах, чтобы помехи/наводки не могли испортить передаваемый сигнал, внутри обрабатывающей электроники сигнал обычный.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Vitalik
Почётный участник
Почётный участник
Сообщения: 48
Зарегистрирован: 20 авг 2014, 19:26
Репутация: 30
Настоящее имя: Виталий
Откуда: Горишние Плавни
Контактная информация:

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

Сообщение Vitalik »

Подскажите пожалуйста, у меня при настройке пид для оси зет ошибка позиционирования получается не меньше 20 импульсов. Энкодер 17 бит, но программно задано 2048 импульсов на оборот. В пересчете на мм эта ошибка выходит в 0.0163мм (ШВП с шагом 5мм, редукция 1 к 3). При обработке рельефа на пластике вылазят разные ступеньки, после поднятия оси до плоскости безопасности и опускания . Такое выходит как раз из-за ошибки? (Надеюсь понятно объяснил)
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

Vitalik писал(а):При обработке рельефа на пластике вылазят разные ступеньки
Покажи рельеф или нарисуй его в Paint
Если обрабатывать шарик при 0,02мм будут ступеньки.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Ответить

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