PDA

Просмотр полной версии : какие программные команды могут вызвать остановку робота во время движения?


Павел Милаев
13.08.2015, 17:35
кто-нибудь мне может сказать, какие программные команды могут вызывать остановку робота во время движения? (смотрел в мануале – ничего не нашел.)
спасибо.

Sergei Troizky
13.08.2015, 20:52
если имеется в виду преждевременно прерванное движение при продолжающей выполняться программе и быть уверенным, что причина в самой программе, то первое, что приходит на ум- это опция Until, добавленная к инструкции Mov.

Евгений Бокшиц
14.08.2015, 10:29
цель остановки?
если вы программируете, можно использовать:
Wait
Pause

Павел Милаев
14.08.2015, 17:03
когда в программе два шага, первый шаг не требует полной остановки, есть ли какая-то команда, между этими двумя шагами, которая может вызвать остановку, перекрывая первый шаг спецификации.
пример:
Movj р001 Vj = I033
Set I051 20
Movj P002 Vj = I033
вызовет ли команда Set I051 20 полную остановку робота? (возможно, нет.)
как насчет Dout? (наверно, да.)
а если используется команду Pl-8 для каждого движения? я заметил снижение скорости между движениями при ее использовании.

NSY
14.08.2015, 20:04
0001 0001 Movj P000 Vj=i033
0002 0002 Movj P001 Vj=i033 Until In#(51)=on
..........
движемся в р001 пока In#(51)=off
если In#(51)=on - прерываем движение и переходим к выполнению следующей команды
.........

0003 0003 Movj P000 Vj=i033
0004 If In#(51)=on Then
0005 0004 Movj P001 Vj=i033
0006 Elseif In#(51)=off Then
0007 Wait In#(51)=on
0008 0005 Movj P001 Vj=i033
0009 Endif

.........
если In#(51)=on движемся в р001
если In#(51)=off ждем In#(51)=on (или что либо другое)
и движемся в р001 (или что либо другое)

Sergei Troizky
14.08.2015, 21:27
когда в программе два шага, первый шаг не требует полной остановки, есть ли какая-то команда, между этими двумя шагами, которая может вызвать остановку, перекрывая первый шаг спецификации.
пример:
Movj р001 Vj = I033
Set I051 20
Movj P002 Vj = I033
вызовет ли команда Set I051 20 полную остановку робота? (возможно, нет.)
как насчет Dout? (наверно, да.)
а если используется команду Pl-8 для каждого движения? я заметил снижение скорости между движениями при ее использовании.
Так бы сразу и писали, а то заставляете без нужды фантазировать.
Без PL, движение по определению происходит до конца и до полной остановки.
При наличии ненулевого PL, робот безостановочно срезает конец движения и переходит к следующему движению.
Однако, остановка все же может произойти, если между инструкциями движения достаточно много других инструкций.
Сколько именно, зависит в том числе от самих этих инструкций.
2-3 арифметические или set/reset инструкции остановки не вызовут.
Но, если их десяток, остановка будет, даже если это лишь строки комментариев.
Если между движениями есть jmp назад по тексту программы, остановится почти наверняка.

Евгений Бокшиц
17.08.2015, 13:23
команда Pl не относятся к скорости.
используйте Wait или Pause.

Руслан Иванов
17.08.2015, 16:37
основная цель робота, двигаться из точки а в точку б, и ничего больше, однако, параллельно происходит проверка выхода, переменной нагрузки, изменение полезной нагрузки, смена инструмента – все это заставляет робота подумать.
если бы вам во время ходьбы пришлось набирать сообщение, неужели скорость вашей ходьбы не изменилась?

Sergei Troizky
17.08.2015, 17:43
павел, уточните, вам нужно остановить робот между движениями, или наоборот- избежать остановки?

Руслан Иванов
18.08.2015, 08:15
когда вы заставляете робота "подумать", он останавливается. так что, забудьте о командах со структурированным языком
насколько я знаю, руководства об этом нету (хотя, если вдруг у кого- то есть, скиньте мне)

Павел Милаев
18.08.2015, 14:56
я также задавался вопросом, почему робот иногда останавливается между шагами, а иногда двигается нормально. я думаю все дело в командах
по моим наблюдениям:
- строки комментариев замедляют робота, и если их много, робот остановится
- несколько простых Get, Set и т.д. команд не вызывают проблем.
- также можно использовать Ifthen, но неelse.
- Wait In# 1 = On всегда останавливает робот.

Руслан Иванов
19.08.2015, 10:13
Pwait также останавливает робота.

Sergei Troizky
21.02.2016, 20:55
Выявил опытным путем на DX200: робот останавливается между движениями, если между ними выполняется инструкция, модифицирующая последующую точку назначения, например:
MOVL P000 PL=8
SETE P001 (3) D000
MOVL P001 PL=8
Что интересно: у Fanuc, к примеру, такой проблемы нет.


- Wait In# 1 = On всегда останавливает робот.
А вот это оказалось неверным.
У меня эта инструкция робот не останавливает (естественно, если условие присутствует на момент ее выполнения).