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

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

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

Сообщение Maxekb77 »

Я бы с 500 начал, а то факторов много
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

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

Сообщение alex_sar »

в какой thread добавили функцию через addf, с такой частотой и выполняется.

halcmd show покажет инфу по threads (чтобы по конфигам не лазить).
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

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

Сообщение tokarka63 »

alex_sar писал(а): halcmd show покажет инфу по threads (чтобы по конфигам не лазить).
Во!, точно!)
Спасибо!!!)
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

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

Сообщение tokarka63 »

В ini файле установлено SERVO_PERIOD = 1000000
через halcmd show показывает 998955
это под 1Мгц получается?
т.е. чтоб подождать секунду надо посчитать 1 000 000 попугаев!?)
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5181
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

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

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

Сообщение tokarka63 »

Serg писал(а): это не попугаи, а наносекунды.
Я уже понял!)
Есть ли возможность, запустить несколько таких счетчиков, с разным временем ?

loadrt timedelay count=1
addf timedelay.0 servo-thread
setp timedelay.0.on-delay 0.5 #~0.5 сек
net delaystart timedelay.0.in <= xxx.delaystart
net delaydone timedelay.0.out => xxx.delaydone
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

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

Сообщение tokarka63 »

Можно считать, что револьверку победил!)
Тест в несколько часов, не выявил глюков!)
СИ_шный код
(для просмотра содержимого нажмите на ссылку)
component revolverka;

pin out bit delaystart = 0; //0,15сек
pin in bit delaydone = 0;
pin out bit delaystart2 = 0; //1сек
pin in bit delaydone2 = 0;
pin out bit delaystart3 = 0; //2сек
pin in bit delaydone3 = 0;

pin in bit toolchange ; // смена инструмент tool-change команда на смену инстркмента 1 или 0 >> от чпу
pin in s32 toolnumber ; // установленный инструмент tool-number >> от чпу
pin out bit toolchanged ; // окончание смены инструмента tool-changed << в чпу
pin in s32 old; // установленный инструмент tool-oldnumber >> от чпу
pin out s32 position = 0; // инструмент по датчикам
pin out s32 tool = 0;
pin out float e = 0;
pin out float a = 0;



pin out bit moto=0; //out02 крутим назад, если 1 крутим вперед

pin in bit opto1 = 0; // датчик1 in10
pin in bit opto2 = 0; // датчик2 in11
pin in bit opto3 = 0; // датчик3 in12
pin in bit metka = 0; // датчик4 in13


option singleton yes;
function _;
author "WV";
license "GPL";
;;

// rtapi_print_msg(RTAPI_MSG_ERR, "Error - opto inputs do not match truth table");

FUNCTION(_)
{



if(!opto1 && !opto2 && opto3 && metka==0)
position = 1;
else if(!opto1 && opto2 && !opto3 && metka==0)
position = 2;
else if(!opto1 && opto2 && opto3 && metka==0)
position = 3;
else if(opto1 && !opto2 && !opto3 && metka==0)
position = 4;
else if(opto1 && !opto2 && opto3 && metka==0)
position = 5;
else if(opto1 && opto2 && !opto3 && metka==0)
position = 6;


if (toolchange)
{tool=toolnumber;}

switch ( tool )
{

case 1:

if(position !=1 )
{
moto = 1; toolchanged = 0; //вперед
}


if (position==1 && metka==1 && e==0) //реверс
{
delaystart = 1; //0,15 sec антидребезг
if(delaydone==1)
{
delaystart = 0;
if (position==1 && metka==1)
{ moto = 0; e=1; }

}
}

if (e==1)
{
if (position==1 && metka==0 ) //проверка после реверса
{
if (a==0)
{
delaystart2 = 1; //1sec
a=1;
}
if(delaydone2)
{
delaystart2 = 0;
}
if (position==1 && metka==0 && delaydone2==0 )
{
delaystart3 = 1; //2sec

if(delaydone3)
{
delaystart3 = 0;
toolchanged = 1; //инструмент готов на чпу
e=0;
a=0;
}
}
}
}


break;

case 2:

if(position !=2 )
{
moto = 1; toolchanged = 0; //вперед
}


if (position==2 && metka==1 && e==0) //реверс
{
delaystart = 1; //0,15 sec антидребезг
if(delaydone==1)
{
delaystart = 0;
if (position==2 && metka==1)
{ moto = 0; e=1; }

}
}

if (e==1)
{
if (position==2 && metka==0 ) //проверка после реверса
{
if (a==0)
{
delaystart2 = 1; //1sec
a=1;
}
if(delaydone2)
{
delaystart2 = 0;
}
if (position==2 && metka==0 && delaydone2==0 )
{
delaystart3 = 1; //2sec

if(delaydone3)
{
delaystart3 = 0;
toolchanged = 1; //инструмент готов на чпу
e=0;
a=0;
}
}
}
}


break;

case 3:

if(position !=3 )
{
moto = 1; toolchanged = 0; //вперед
}


if (position==3 && metka==1 && e==0) //реверс
{
delaystart = 1; //0,15 sec антидребезг
if(delaydone==1)
{
delaystart = 0;
if (position==3 && metka==1)
{ moto = 0; e=1; }

}
}

if (e==1)
{
if (position==3 && metka==0 ) //проверка после реверса
{
if (a==0)
{
delaystart2 = 1; //1sec
a=1;
}
if(delaydone2)
{
delaystart2 = 0;
}
if (position==3 && metka==0 && delaydone2==0 )
{
delaystart3 = 1; //2sec

if(delaydone3)
{
delaystart3 = 0;
toolchanged = 1; //инструмент готов на чпу
e=0;
a=0;
}
}
}
}


break;

case 4:

if(position !=4 )
{
moto = 1; toolchanged = 0; //вперед
}


if (position==4 && metka==1 && e==0) //реверс
{
delaystart = 1; //0,15 sec антидребезг
if(delaydone==1)
{
delaystart = 0;
if (position==4 && metka==1)
{ moto = 0; e=1; }

}
}

if (e==1)
{
if (position==4 && metka==0 ) //проверка после реверса
{
if (a==0)
{
delaystart2 = 1; //1sec
a=1;
}
if(delaydone2)
{
delaystart2 = 0;
}
if (position==4 && metka==0 && delaydone2==0 )
{
delaystart3 = 1; //2sec

if(delaydone3)
{
delaystart3 = 0;
toolchanged = 1; //инструмент готов на чпу
e=0;
a=0;
}
}
}
}


break;

case 5:

if(position !=5 )
{
moto = 1; toolchanged = 0; //вперед
}


if (position==5 && metka==1 && e==0) //реверс
{
delaystart = 1; //0,15 sec антидребезг
if(delaydone==1)
{
delaystart = 0;
if (position==5 && metka==1)
{ moto = 0; e=1; }

}
}

if (e==1)
{
if (position==5 && metka==0 ) //проверка после реверса
{
if (a==0)
{
delaystart2 = 1; //1sec
a=1;
}
if(delaydone2)
{
delaystart2 = 0;
}
if (position==5 && metka==0 && delaydone2==0 )
{
delaystart3 = 1; //2sec

if(delaydone3)
{
delaystart3 = 0;
toolchanged = 1; //инструмент готов на чпу
e=0;
a=0;
}
}
}
}


break;

case 6:

if(position !=6 )
{
moto = 1; toolchanged = 0; //вперед
}


if (position==6 && metka==1 && e==0) //реверс
{
delaystart = 1; //0,15 sec антидребезг
if(delaydone==1)
{
delaystart = 0;
if (position==6 && metka==1)
{ moto = 0; e=1; }

}
}

if (e==1)
{
if (position==6 && metka==0 ) //проверка после реверса
{
if (a==0)
{
delaystart2 = 1; //1sec
a=1;
}
if(delaydone2)
{
delaystart2 = 0;
}
if (position==6 && metka==0 && delaydone2==0 )
{
delaystart3 = 1; //2sec

if(delaydone3)
{
delaystart3 = 0;
toolchanged = 1; //инструмент готов на чпу
e=0;
a=0;
}
}
}
}


break;

}
}
custom.hal
(для просмотра содержимого нажмите на ссылку)
loadrt revolverka
addf revolverka servo-thread

loadrt timedelay count=4
addf timedelay.0 servo-thread
setp timedelay.0.on-delay 0.15

net delaystart timedelay.0.in <= revolverka.delaystart
net delaydone timedelay.0.out => revolverka.delaydone


addf timedelay.2 servo-thread
setp timedelay.2.on-delay 1

net delaystart2 timedelay.2.in <= revolverka.delaystart2
net delaydone2 timedelay.2.out => revolverka.delaydone2

addf timedelay.3 servo-thread
setp timedelay.3.on-delay 2

net delaystart3 timedelay.3.in <= revolverka.delaystart3
net delaydone3 timedelay.3.out => revolverka.delaydone3







net tool-change iocontrol.0.tool-change => revolverka.toolchange
net tool-changed iocontrol.0.tool-changed <= revolverka.toolchanged
net tool-number iocontrol.0.tool-prep-number => revolverka.toolnumber
net tool-oldnumber iocontrol.0.tool-number => revolverka.old
net tool-prepare-loopback iocontrol.0.tool-prepare => iocontrol.0.tool-prepared

net moto revolverka.moto => parport.0.pin-06-out

net opto1 revolverka.opto1 <= parport.0.pin-11-in
net opto2 revolverka.opto2 <= parport.0.pin-12-in
net opto3 revolverka.opto3 <= parport.0.pin-13-in
net metka revolverka.metka <= parport.0.pin-15-in
Диск позиции
Изображение
Изображение
Изображение
Изображение
Испытательный стенд)
Изображение
Изображение
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

Выявилась проблемка. Иногда револьверка зажимает не тот инструмент
Револьверная головка уг9326 может перещелкнуться на другой инструмент, или магнит своим магнитным полем включит рядом стоящий геркон, или дребезг контактов геркона.... или луна повлияет.
:attention: Что приводит к неправильному установленному инструменту в револьверке.
В ладдере нужно добавить проверку инструмента после зажима барабана.

Так Ладер выглядит сейчас.
Снимок.png (1788 просмотров) <a class='original' href='./download/file.php?id=188590&sid=177ec4dc2c739c89099dced50df105c9&mode=view' target=_blank>Загрузить оригинал (49.98 КБ)</a>
Такая схема будет рабочей?
01.png (1788 просмотров) <a class='original' href='./download/file.php?id=188591&sid=177ec4dc2c739c89099dced50df105c9&mode=view' target=_blank>Загрузить оригинал (59.96 КБ)</a>
custom.rar
(1.63 КБ) 127 скачиваний
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

Сегодня поймал проблему.
Стоял 5й инструмент. При смене на 7й, барабан дернулся не провернулся, сразу же затянулся. В револьверке остался стоять 5й инструмент.
В строке состояния внизу LinuxCNC, написано Инструмент 7, по факту в револьверке 5й.

Если откинуть разъем у револьверки для проверки на помехи, то никаких сигналов нет. Проблема похоже механическая. Происходит это когда револьверка уг9326 какое то время(ночь) постояла. Тогда барабан как бы с большим усилием сдергивается.
Если правильно понимаю, то при срывании барабана геркон дребезжит, срабатывает. Ладер это принимает как нашли нужный инструмент, тут же включает реверс и затягивает барабан.

:attention: В Ладере должна быть проверка на нужный инструмент в конце всей логики.
tool7.png (1747 просмотров) <a class='original' href='./download/file.php?id=188593&sid=177ec4dc2c739c89099dced50df105c9&mode=view' target=_blank>Загрузить оригинал (71.7 КБ)</a>
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Maxekb77
Мастер
Сообщения: 1658
Зарегистрирован: 05 окт 2013, 00:04
Репутация: 285
Настоящее имя: Максим
Откуда: Екатеринбург
Контактная информация:

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

Сообщение Maxekb77 »

А denounce прописать ?
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

Maxekb77 писал(а): А denounce прописать ?
Это шо такое? search.php?keywords=denounce*
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
alex_sar
Мастер
Сообщения: 1672
Зарегистрирован: 28 авг 2018, 17:13
Репутация: 278
Настоящее имя: Алексей
Контактная информация:

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

Сообщение alex_sar »

http://linuxcnc.org/docs/html/man/man9/debounce.9.html

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

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

Сообщение Maxekb77 »

aftaev писал(а): 11 ноя 2020, 13:04 Это шо такое? search.php?keywords=denounce*
iPhone умничает ;)
Мне на дупломатике помогло, главно не перебрать а то неплохой шпиндель получается ;)
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

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

Сообщение tokarka63 »

aftaev писал(а): 10 ноя 2020, 22:33 Выявилась проблемка. Иногда револьверка зажимает не тот инструмент
Револьверная головка уг9326 может перещелкнуться на другой инструмент, или магнит своим магнитным полем включит рядом стоящий геркон, или дребезг контактов геркона.... или луна повлияет.
:attention: Что приводит к неправильному установленному инструменту в револьверке.
В ладдере нужно добавить проверку инструмента после зажима барабана.

Так Ладер выглядит сейчас.
Снимок.png

Такая схема будет рабочей?
01.png

custom.rar
А почему "Останов" а не повторный запуск процедуры?
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

tokarka63 писал(а): А почему "Останов" а не повторный запуск процедуры?
Можно и повтор раза два, потом останов. В моем случае дребезг контактов геркона, хоть сколько раз делай ставило не тот инструмент ;)
Геркон поменял, все пучком заработало.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
tokarka63
Мастер
Сообщения: 393
Зарегистрирован: 10 фев 2020, 18:39
Репутация: 13
Настоящее имя: Виталий
Контактная информация:

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

Сообщение tokarka63 »

Антидребезг все равно нужен, история может повториться, как обычно в самый не подходящий момент.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

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

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

Сообщение tokarka63 »

aftaev писал(а): Есть куча вариантов когда револьверка может поймать не тот инструмент.
А с этого места по подробнее!!!)
С револьверкой никогда прежде не работал, так что, очень интересны возможные проблемы)
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6191
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

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

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

Сообщение Maxekb77 »

aftaev писал(а): Не нужен антидребезг. Есть куча вариантов когда револьверка может поймать не тот инструмент.
Нужна проверка в конце цикла, что стоит нужный инструмент.
Одно другого не исключает , а по хорошему оба надо делать.
Ответить

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