нестандартная рабочая зона на ЕМС для робота

Обсуждение установки, настройки и использования LinuxCNC. Вопросы по Gкоду.
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

Всем доброго!
В силу сложившихся обстоятельств, есть вероятность что придется переделать управление одного китайского робота.
Вот такого:
Р.jpg (2993 просмотра) <a class='original' href='./download/file.php?id=43731&mode=view' target=_blank>Загрузить оригинал (56.48 КБ)</a>
Только с одной осью Z.
Возникли проблемы с программированием, а китайцы тянут резину, то алгоритм им пришли, то фотки, то видео, то новый год у них....
Дело в том, что робот не является свободно-программируемым. У него есть определенная последовательность команд, а мы можем только координаты подставлять.
Вот я и решил заранее подготовится к возможной работе. Двое суток терроризировал aftaev-а на предмет управления серво-приводами(причем не два дня, а именно двое суток).
Ток вот, решил пересадить робот на ЕМС и теперь требуется сделать для него нестандартную рабочую зону, чтоб программно не давал выходить за его пределы.
Требуемая рабочая зона выглядит так:
Рис.jpg (2993 просмотра) <a class='original' href='./download/file.php?id=43732&mode=view' target=_blank>Загрузить оригинал (18.63 КБ)</a>
Можно ли это реализовать?

З.Ы. :attention: От лица Почетного Члена Клуба, тобиш Меня, объявляю благодарность aftaev-у, за потраченные время и нервы на объяснения принципов работы и управления серво-приводом. :good:
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Serg »

Тима писал(а):Можно ли это реализовать?
Смотря что надо делать при нарушении границ рабочей зоны.
Есои просто останавливать станок, то можно.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

Не понял, что за чудеса????
Куда подевались 2 последних сообщения, мое и UAVpilot????
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Predator »

Тима писал(а):Куда подевались 2 последних сообщения
База у форума слетела, Ник бэкап залил, который имелся...
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Nick »

Тима писал(а):Не понял, что за чудеса????
Куда подевались 2 последних сообщения, мое и UAVpilot????
Технические неполадки #1
Напиши заново. Хотя бы примерно.


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

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Serg »

Если просто останавливать, то можно в HAL сравнивать координаты с помощью wcomp и генерить E-Stop при заходе в запрещённую зону.
Nick писал(а):на уровне выдачи задания двигателям уже после axis.n.position-cmd? Или в кинематике?
Без разницы. Главный вопрос: что делать при попытке заехать в запрещённую зону.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

Ну в принципе можно сказать, что сообщения восстановились, кроме вот этой сЦылки:
http://linuxcnc.org/docs/devel/html/man ... omp.9.html
которую выложил UAVpilot...
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

UAVpilot писал(а):Главный вопрос: что делать при попытке заехать в запрещённую зону.
Вариант с E-stop, вполне устраивает. И если можно, вывод соответствующего сообщения.
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

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

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Serg »

Тима писал(а):И если можно, вывод соответствующего сообщения.
http://linuxcnc.org/docs/devel/html/man ... age.9.html
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

Принцип ограничения зоны примерно понял. На практике попробовать вариантов нету, нахожусь на объекте. Приеду домой, буду разбираться.
А пока есть время, задам еще вопрос:
Для управления сервами aftaev посоветовал использовать MESA 5i25+7i77. В алгоритме работы робота должны быть задействованы и входа/выхода. Т.е. отработал часть кода, остановился и ждет сигнала с дискретного входа для отработки следующей части кода.
И отработал часть кода, выдал сигнал на выход и работает дальше.
Как можно вписать управление входами/выходами в G-код?
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение aftaev »

Тима писал(а):Для управления сервами aftaev посоветовал использовать MESA 5i25+7i77.
если хош сервы в роботе использовать по +-10в + обратная связь.
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

aftaev писал(а):
Тима писал(а):Для управления сервами aftaev посоветовал использовать MESA 5i25+7i77.
если хош сервы в роботе использовать по +-10в + обратная связь.
Принцип управления менять не хочу, пусть остается step/dir + контроль положения по энкодерам! А прикрутить 3 энкодера к ЕМС без них вроде не получится...
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Nick
Мастер
Сообщения: 22776
Зарегистрирован: 23 ноя 2009, 16:45
Репутация: 1735
Заслуга: Developer
Откуда: Gatchina, Saint-Petersburg distr., Russia
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Nick »

Если Step Dir и энкодеры, то 5i25 и 7i77 не хватит, там нет степ дира. Надо еще дочернюю плату или управлять по +-10В.
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

Nick писал(а):Если Step Dir и энкодеры, то 5i25 и 7i77 не хватит, там нет степ дира. Надо еще дочернюю плату или управлять по +-10В.
А что за плата?
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

Тима писал(а):
Nick писал(а):Если Step Dir и энкодеры, то 5i25 и 7i77 не хватит, там нет степ дира. Надо еще дочернюю плату или управлять по +-10В.
А что за плата?
Уже прочитал! Если правильно понял вдобавок нужна плата 7i67. Т.е. управление через 7i67, а обратная связь через 7i77...
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

Вот еще вопрос. Вот схема:
Рис1.jpg (2856 просмотров) <a class='original' href='./download/file.php?id=43895&mode=view' target=_blank>Загрузить оригинал (203.02 КБ)</a>
Верхний канал - степ/дир, нижний левый - скоростной канал степ/дир(по нему сейчас управляется), а нижний правый как понять?
Написано прямое вращение 0..10в, обратное вращение -10..10в.
Это как? Или опечатка?
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение torvn77 »

А почему,раз управление через степдир просто 7i76 не взять?
И ещё,можно не делать комбинацию из компонентов хала,а сделать собственный компонент
http://linuxcnc.org/docs/devel/html/man ... ile.1.html
Мануальник(анг)
http://linuxcnc.org/docs/devel/html/hal/comp.html
Пример простенького компонента:
(для просмотра содержимого нажмите на ссылку)

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

component sum2 "Sum of two inputs (each with a gain) and an offset";
pin in float in0;
pin in float in1;
param rw float gain0 = 1.0;
param rw float gain1 = 1.0;
param rw float offset;
pin out float out "out = in0 * gain0 + in1 * gain1 + offset";
function _;
license "GPL";
;;
FUNCTION(_) {
    out = in0 * gain0 + in1 * gain1 + offset;
}
Последний раз редактировалось torvn77 25 фев 2015, 23:46, всего редактировалось 1 раз.
Аватара пользователя
Тима
Почётный участник
Почётный участник
Сообщения: 3162
Зарегистрирован: 01 мар 2012, 20:47
Репутация: 1089
Настоящее имя: Тимур
Откуда: КБР
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение Тима »

torvn77 писал(а):А почему,раз управление через степдир просто 7i76 не взять?
Используется выход энкодера для обратной связи. Положение вычисляется не программно, а по сигналам энкодера. Т.е если руками передвинуть какую нибудь ось, координаты на мониторе меняются. Хочется оставить эту функцию.
torvn77 писал(а):И ещё,можно не делать комбинацию из компонентов хала,а сделать собственный компонент
С этим еще надо разбираться, я понял лишь принцип. Буду читать, насколько это позволит гугл...)))
Дорогу осилит идущий!
Я все пойму, Вы только дайте денег!!!
Аватара пользователя
torvn77
Мастер
Сообщения: 2442
Зарегистрирован: 02 июн 2012, 22:12
Репутация: 215
Откуда: Россия,Санкт-Петербург
Контактная информация:

Re: нестандартная рабочая зона на ЕМС для робота

Сообщение torvn77 »

Особо разбираться не надо,*.comp по содержанию это шаблон файла на С с кучей if-define под капотом.
В общем берешь компонент из примера и заменяешь,раздуваешь пока не выйдет желаемое.
Например упомянутый ранее wcomp имеет такой код
(для просмотра содержимого нажмите на ссылку)

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

component wcomp "Window comparator";
pin in float in "Value being compared";
pin in float min_ "Low boundary for comparison";
pin in float max_ "High boundary for comparison";
pin out bit out "True if \\fBin\\fR is strictly between \\fBmin\\fR and \\fBmax\\fR";
pin out bit under "True if \\fBin\\fR is less than or equal to \\fBmin\\fR";
pin out bit over "True if \\fBin\\fR is greater than or equal to \\fBmax\\fR";
notes "If \\fBmax\\fR <= \\fBmin\\fR then the behavior is undefined.";

function _;
license "GPL";
;;
FUNCTION(_) { 
  double tmp = in;
  under = (tmp <= min_);
  over = (tmp >= max_);
  out = !(over || under);
}
Ответить

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