Смена инструмента на токарнике

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение Serg »

Ваш компонент никуда не подключен.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение tokarka63 »

Усе, нашел косяк!))

loadrt test
addf test servo-thread
net knopka test.knopka <= parport.0.pin-12-in
net led test.led <= parport.0.pin-17-out

заработало!!!)))
так и знал, мелочь каую нить пропустил!)

Теперь на долго затихну, револьверка пришла, осталось ее разобрать, помыть-почистить-модернизировать(установить датчики-флажки для датчиков), адаптировать к станку....потом продолжу!))

Всем спасибо!
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение tokarka63 »

Киньте пожалуйста в меня ссылкой, на тот СИ который используется в linuxcnc )
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение nkp »

tokarka63 писал(а):Киньте пожалуйста в меня ссылкой, на тот СИ который используется в linuxcnc )
попробую "перевести" вопрос:
требуется описание синтаксиса ,который используется в компонентах
угадал?
пост #248
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение tokarka63 »

nkp писал(а):угадал?
Почти) не могу понять почему не работает инвертирование типа " a =~a; "
"a" может иметь значение 1 или 0, объявляю переменную "pin out bit a = 0;" после запуска "а=1" и все
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение nkp »

но для правильного ответа нужен код
Последний раз редактировалось nkp 27 фев 2020, 20:22, всего редактировалось 1 раз.
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение nkp »

tokarka63 писал(а):pin out bit a = 0;
может там нужно просто переменную объявить

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

variable тип имя;
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение tokarka63 »

nkp писал(а):a = !a;
это просто заменит 1 на 0 и все, я хочу, чтоб с каждым циклом менялось значение)
Сейчас пытаюсь изобразить....нажали на кнопку-зажгли led, еще раз нажали-потушили led
потихоньку разбираюсь, что как работает и мучительно вспоминаю СИ )

pin in bit knopka = 0;
pin out bit led = 0;
pin out bit b = 0;

UNCTION(_)
{
if((b==1)&& !knopka)
{
b=0;
led=~led;
}
if (knopka)
{
b =1;
}
}

P.S. на МК это работает!)
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение nkp »

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

pin in bit knopka ;
pin out bit led ;


FUNCTION(_){
    if(knopka)led=1;
    if(!knopka)led=0;
}
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение nkp »

вот полностью код компонента
(в коменте команда компиляции)

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

component knopka"knopka";
//sudo halcompile --install knopka.comp
pin in bit knopka;
pin out bit led;

function _;
license "GPL"; 
;;
    if(knopka)led=1;
    if(!knopka)led=0;
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение nkp »

извиняюсь - только сейчас дочитал - кнопка-тумблер нужна
тогда всё что выше - не считается :hehehe:
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение tokarka63 »

Меня не поняли
tokarka63 писал(а):Сейчас пытаюсь изобразить....нажали на кнопку-зажгли led, еще раз нажали-потушили led
По вашему коду....кнопка отпущена-горим, кнопка нажата -не горим)
nkp писал(а):тогда всё что выше - не считается
Ага ))
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение nkp »

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

pin in bit knopka;
pin out bit led;
variable int iter;

function _;
license "GPL"; 
;;
    if(knopka & !iter){led=1;}
    if(knopka & iter) {led=0;}
    if(!knopka){iter=led;}
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение Maxekb77 »

Посмотри компонент toggle
nkp
Мастер
Сообщения: 8340
Зарегистрирован: 28 ноя 2011, 00:25
Репутация: 1589
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение nkp »

Maxekb77 писал(а):Посмотри компонент toggle
зачем?

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

component toggle "'push-on, push-off' from momentary pushbuttons";
pin in bit in "button input";
pin io bit out "on/off output";
param rw u32 debounce = 2 "debounce delay in periods";
option data toggle_data;

function _ nofp;
license "GPL";
;;

typedef struct {
    int debounce_cntr;
    int debounced;
} toggle_data;

FUNCTION(_) {

    if (( debounce < 1 ) || ( debounce > 10000 )) {
	/* set a sane value, we don't want 2 million second delays */
	debounce = 2;
    }
    if ( in ) {
	/* pressed */
	data.debounce_cntr++;
	if ( data.debounce_cntr >= debounce ) {
	    data.debounce_cntr = debounce;
	    if ( data.debounced == 0 ) {
		/* toggle output */
		out = !out;
	    }
	    data.debounced = 1;
	}
    } else {
	/* not pressed */
	data.debounce_cntr--;
	if ( data.debounce_cntr <= 0 ) {
	    data.debounce_cntr = 0;
	    data.debounced = 0;
	}
    }
}
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение tokarka63 »

nkp
Спасибо за код, завтра попробую-обдумаю)
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение tokarka63 »

nkp писал(а):

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

pin in bit knopka;
pin out bit led;
variable int iter;

function _;
license "GPL"; 
;;
    if(knopka & !iter){led=1;}
    if(knopka & iter) {led=0;}
    if(!knopka){iter=led;}
Работает!))
вне зависимости как объявлена переменная
pin out bit
variable int
т.е. получается, на прямую ни выход, ни переменную не проинвертировать
Спасибо
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение tokarka63 »

Приветствую!!!
Не прошло и года, как я продолжил развлекаться с револьверкой!)
Возник вопрос, на который, не удалось найти ответа.
С какой частотой идет обращение к компоненту!?
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение Maxekb77 »

Быстро ;)
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

Re: Смена инструмента на токарнике

Сообщение tokarka63 »

Maxekb77 писал(а): Быстро
Это я уже понял!)
Сколько надо посчитать попугаев, для секундной задержки?)
Ответить

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