Страница 1 из 2

Токарный + автооператор

Добавлено: 06 янв 2013, 10:20
Remal
Hi all!
Имеется токарный станок с автооператором(а/о). Станок и а/о имеют свой сервопривода. Настроил Linuxcnc на 5 осей, это S X Z и V W. А/о имеет два захвата один из которых поворотный(кантование). Сейчас управление всем этим хозяйством реализовано, примитивно, по следующему примеру:

%основная программа
...
...
G1x10z5
O103 call (подпрограмма с движениями а/о)
...
G1v15w15f100 - перемещение
M101 -> (halcmd setp parport.0.pin-14-out True) - разжим захвата
G1v10w10f100 - перемещение
...
...
M30

Но такая схема не устраивает. Нужно что бы а/о мог управляться от своих подпрограмм, не зависимо от хода выполнения основной программы. Т.е когда выполняется точение детали а/о мог спокойно уехать в точку разгрузки, взять другую заготовку и уехать в точку ожидания. Экономия вспомогательного времени! :)

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 10:34
aftaev
Remal писал(а): Но такая схема не устраивает. Нужно что бы а/о мог управляться от своих подпрограмм, не зависимо от хода выполнения основной программы.
Скорее все придется ставить отдельно ЧПУ для а/о

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 11:33
nkp
а что , если написать небольшой пп - который будет выполнять распределение команд для а\о в кадры основной уп с учетом (примерным) времени выполнения.
Последнее необходимо в случаях когда время для перемещения а\о будет значительно больше чем "основное" перемещение в одном кадре

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 13:11
Nick
Remal писал(а):M101 -> (halcmd setp parport.0.pin-14-out True) - разжим захвата
Вот это лучше сделать через
motion.digital-out-NN OUT BIT
These pins are controlled by the M62 through M65 words.
и M62-65: http://linuxcnc.org/docs/html/gcode/m-c ... ec:M62-M65

А вообще, насколько сложные программы у автооператора? Может через ClassicLadder им управлять? Или вообще просто отдельный скрипт на питоне написать?

ЗЫ а что за станок? Железо все родное, или это кастомная работа???

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 14:36
aegis
кажется мне, что когда все стоит на одной чпу, то перемещение по 5 осям прописывается в коде и выйдет что при одновременном перемещении автооператора и, скажем, точении фаски все режимы будут подстраиваться под самый длинный период, тоесть перемещение резца будет неправильно и следующий кадр не будет выполняться пока оператор не доедет до нужного места. я бы наверно сделал так: поставил 2 системы, система автооператора запускается от сигнала станка, выполняет свой код независимо, потом когда уже деталь выточена основная система дает новый сигнал о выполнении и считывает сигнал с а/о об готовности... может замудренно, но вариантов других нет. у нас на заводе есть двухсупортовые станки, там программа управления своя и определенная синхронизация суппортов всеравно есть, но она не такая жесткая как в вашей реализации на базе емс2

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 15:18
Remal
Nick писал(а): ЗЫ а что за станок? Железо все родное, или это кастомная работа???
Станок ТМ500Ф3, железки все родные, до модернизаций стояла чпу МАЯК-223М.
Nick писал(а): А вообще, насколько сложные программы у автооператора? Может через ClassicLadder им управлять? Или вообще просто отдельный скрипт на питоне написать?
Последовательность примерно такая:
Загрузка с накопителя в оба захвата -> установка первой заготовки(захват1) в патрон и поджим центром -> обработка первой стороны -> зажим заготовки(захват1) кантование -> зажим в патроне и обработка второй стороны -> готовую деталь берем захватом1 -> установка следующей заготовки из захвата2(не поворотный) -> а/о едет к накопителю и выгружает деталь из захвата1 а, захватом2 берет следующую заготовку -> а/о едет в точку ожидания конца программы -> захватом1 кантует заготовку -> обработка второй стороны -> зажим захватом1 -> установка заготовки из захвата2.......и так по кругу)

-установка еще одной системы для а/о тоже вариант, но это только если ничего не получиться(
Я побовал так:
на pid.v заводим два сигнала один c axis.7.motor-pos-cmd другой с mux.N через SUM.2, но после команды с mux.N вылетает по follow error. Надо каим то образом посылать команду через axis из hal)

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 15:21
nkp
aegis писал(а): все режимы будут подстраиваться под самый длинный период,
вот я и предлагал "распределять" движения а\о ,подстраивая их под движения основной уп
это все будет делать пп (что несравнимо дешевле чем вторая управляющая система)
примерно это должно выглядеть так:
допустим у нас есть некая программа обработки детали

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

g1 f100
x2 
z2
x3
z3
m2
и есть код для а\о конечно если прописать сразу в одном кадре

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

g1 f100
x2 v3 w3
z2
x3
z3
m2
то будем ждать завершения движения по v,w
а вот если постпроцессор "распишет" примерно так:

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

g1 f100
x2 v1 w1
z2 v2 w2
x3 v3 w3
z3
m2
то ждать а\о не надо

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 15:42
Remal
nkp писал(а):то ждать а\о не надо
Получается следующее:
-если в программе точения используются кадры с дугами, циклами, и тп то вставить в них перемещение vw не получиться
-скорость хода осей vw значительно выше подачи по xz. примерно в 10 раз
и это тоже вариант)

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 15:49
nkp
Remal писал(а):если в программе точения используются кадры с дугами, циклами, и тп то вставить в них перемещение vw не получиться
не факт
Remal писал(а):-скорость хода осей vw значительно выше подачи по xz. примерно в 10 раз
ту наверно решающую роль играет время между сменами T
и чистое время отработки а\о t
если t при самой низкой скорости меньше T - то все срастается

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 16:06
Nick
Не, модифицировать Gкод - не вариант, точнее вариант, но плохой.

А процедура авто оператора всегда такая?
Лучше всего Classic Ladder или сторонний скрипт.

При этом Оси автооператора не надо заводить в самом LinuxCNC, просто загружаем их отдельными компонентами (pid, pwmgen или stepgen) и управляем отдельной программой через пины hal.

У тебя есть пример Gкода, на котором оно работает сейчас?

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 16:17
Remal
Nick писал(а):У тебя есть пример Gкода, на котором оно работает сейчас?
кода нет(
Nick писал(а):При этом Оси автооператора не надо заводить в самом LinuxCNC, просто загружаем их отдельными компонентами (pid, pwmgen или stepgen) и управляем отдельной программой через пины hal.
Тогда нужно каким то образом производить выход в ноль через hal?

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 16:22
Remal
Remal писал(а):Тогда нужно каким то образом производить выход в ноль через hal?
может так:
кнопка V0 -> на пид команда на перемещение в минус -> наезд на концевик -> реверс -> ищем индекс?

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 16:33
nkp
Nick писал(а):При этом Оси автооператора не надо заводить в самом LinuxCNC, просто загружаем их отдельными компонентами (pid, pwmgen или stepgen) и управляем отдельной программой через пины hal.
если я правильно понял - home в классическом виде нам и не понадобиться
то есть ноль а\о мы определяем ,но "для себя"

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 17:09
Nick
Remal писал(а):Тогда нужно каким то образом производить выход в ноль через hal?
И это можно.
Все правильно, сначала едем до концевика, потом выставляем пин index-enable на энкодере и при следующем индексе у нас будет точный 0.
Remal писал(а):кода нет(
А как он тогда работает? :)
Тот код который ты вверху написал - это просто из головы?

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 17:32
Remal
Nick писал(а):А как он тогда работает? :)
Тот код который ты вверху написал - это просто из головы?
В общем да :) , станок еще в стадий отладки. Описывать в g коде, точки а/о, не стал, ибо вариант не очень(.
Буду пробовать через hal)

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 19:23
Nick
Надо добавить какую-то управлялку.
Ты с ClassicLadder знаком?

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 19:35
Remal
Nick писал(а):Ты с ClassicLadder знаком?
Да. пробовал как то кнопку привязывать к ладдеру :)
Отключил оси vw из axis, попробовал на pid.v задавать команду с кнопки, работает норм.
С начала опишу выход в нуль по осям. Дальше с командами а/о надо разбираться.
Nick, советуешь через ладдер реализовать перемещения а/о?

Re: Токарный + автооператор

Добавлено: 06 янв 2013, 20:02
Nick
Все зависит от сложности алгоритма, необходимости реалтайма, и от того есть ли опыт программирования на других языках :).

Re: Токарный + автооператор

Добавлено: 08 янв 2013, 16:26
Remal
Столкнулся с проблемой:
-каким образом менять скорость подачи через pid.N? Есть такой пин, pid.N.command-deriv,я так понимаю это задание скорости перемещения, но какие значения я бы туда не заводил, он всегда отрабатывает с одной скоростью(
Nick писал(а):потом выставляем пин index-enable на энкодере
-пин, encoder.N.index-enable bit i/o , на него с начала нужно подать TRUE, а когда появиться index на энкодере, index-enable станет FALSE. Как правильно соединить in/out к encoder.N.index-enable? :problem:

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

net v-index   =>  encoder.0.index-enable  => classicladder.0.in-01
net v-index   <=  classicladder.0.out-00
не работает, ошибка(

Re: Токарный + автооператор

Добавлено: 08 янв 2013, 18:14
Nick
А как у тебя привод управляется? По +-10? Можешь просто пид настроить таким образом, чтобы он плавно разгонялся и останавливался...

Что-то не понимаю зачем тебе и in и out к index-enable подключать?