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

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

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

З.Ы. :attention: От лица Почетного Члена Клуба, тобиш Меня, объявляю благодарность aftaev-у, за потраченные время и нервы на объяснения принципов работы и управления серво-приводом. :good:

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

Добавлено: 24 фев 2015, 00:09
Serg
Тима писал(а):Можно ли это реализовать?
Смотря что надо делать при нарушении границ рабочей зоны.
Есои просто останавливать станок, то можно.

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

Добавлено: 24 фев 2015, 12:35
Тима
Не понял, что за чудеса????
Куда подевались 2 последних сообщения, мое и UAVpilot????

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

Добавлено: 24 фев 2015, 12:39
Predator
Тима писал(а):Куда подевались 2 последних сообщения
База у форума слетела, Ник бэкап залил, который имелся...

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

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


Я вот тоже сижу, думаю на каком уровне можно рабочую область ограничить...
на уровне выдачи задания двигателям уже после axis.n.position-cmd? Или в кинематике?

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

Добавлено: 24 фев 2015, 12:42
Serg
Если просто останавливать, то можно в HAL сравнивать координаты с помощью wcomp и генерить E-Stop при заходе в запрещённую зону.
Nick писал(а):на уровне выдачи задания двигателям уже после axis.n.position-cmd? Или в кинематике?
Без разницы. Главный вопрос: что делать при попытке заехать в запрещённую зону.

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

Добавлено: 24 фев 2015, 12:47
Тима
Ну в принципе можно сказать, что сообщения восстановились, кроме вот этой сЦылки:
http://linuxcnc.org/docs/devel/html/man ... omp.9.html
которую выложил UAVpilot...

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

Добавлено: 24 фев 2015, 12:53
Тима
UAVpilot писал(а):Главный вопрос: что делать при попытке заехать в запрещённую зону.
Вариант с E-stop, вполне устраивает. И если можно, вывод соответствующего сообщения.

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

Добавлено: 24 фев 2015, 13:09
Тима
И еще необходимо задействовать несколько входов/выходов для связи с ТПА.

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

Добавлено: 24 фев 2015, 13:24
Serg
Тима писал(а):И если можно, вывод соответствующего сообщения.
http://linuxcnc.org/docs/devel/html/man ... age.9.html

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

Добавлено: 25 фев 2015, 19:38
Тима
Принцип ограничения зоны примерно понял. На практике попробовать вариантов нету, нахожусь на объекте. Приеду домой, буду разбираться.
А пока есть время, задам еще вопрос:
Для управления сервами aftaev посоветовал использовать MESA 5i25+7i77. В алгоритме работы робота должны быть задействованы и входа/выхода. Т.е. отработал часть кода, остановился и ждет сигнала с дискретного входа для отработки следующей части кода.
И отработал часть кода, выдал сигнал на выход и работает дальше.
Как можно вписать управление входами/выходами в G-код?

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

Добавлено: 25 фев 2015, 19:42
aftaev
Тима писал(а):Для управления сервами aftaev посоветовал использовать MESA 5i25+7i77.
если хош сервы в роботе использовать по +-10в + обратная связь.

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

Добавлено: 25 фев 2015, 19:50
Тима
aftaev писал(а):
Тима писал(а):Для управления сервами aftaev посоветовал использовать MESA 5i25+7i77.
если хош сервы в роботе использовать по +-10в + обратная связь.
Принцип управления менять не хочу, пусть остается step/dir + контроль положения по энкодерам! А прикрутить 3 энкодера к ЕМС без них вроде не получится...

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

Добавлено: 25 фев 2015, 20:21
Nick
Если Step Dir и энкодеры, то 5i25 и 7i77 не хватит, там нет степ дира. Надо еще дочернюю плату или управлять по +-10В.

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

Добавлено: 25 фев 2015, 20:42
Тима
Nick писал(а):Если Step Dir и энкодеры, то 5i25 и 7i77 не хватит, там нет степ дира. Надо еще дочернюю плату или управлять по +-10В.
А что за плата?

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

Добавлено: 25 фев 2015, 21:48
Тима
Тима писал(а):
Nick писал(а):Если Step Dir и энкодеры, то 5i25 и 7i77 не хватит, там нет степ дира. Надо еще дочернюю плату или управлять по +-10В.
А что за плата?
Уже прочитал! Если правильно понял вдобавок нужна плата 7i67. Т.е. управление через 7i67, а обратная связь через 7i77...

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

Добавлено: 25 фев 2015, 21:59
Тима
Вот еще вопрос. Вот схема:
Рис1.jpg (2859 просмотров) <a class='original' href='./download/file.php?id=43895&mode=view' target=_blank>Загрузить оригинал (203.02 КБ)</a>
Верхний канал - степ/дир, нижний левый - скоростной канал степ/дир(по нему сейчас управляется), а нижний правый как понять?
Написано прямое вращение 0..10в, обратное вращение -10..10в.
Это как? Или опечатка?

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

Добавлено: 25 фев 2015, 22:07
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;
}

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

Добавлено: 25 фев 2015, 22:36
Тима
torvn77 писал(а):А почему,раз управление через степдир просто 7i76 не взять?
Используется выход энкодера для обратной связи. Положение вычисляется не программно, а по сигналам энкодера. Т.е если руками передвинуть какую нибудь ось, координаты на мониторе меняются. Хочется оставить эту функцию.
torvn77 писал(а):И ещё,можно не делать комбинацию из компонентов хала,а сделать собственный компонент
С этим еще надо разбираться, я понял лишь принцип. Буду читать, насколько это позволит гугл...)))

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

Добавлено: 25 фев 2015, 22:50
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);
}