Ответ
 
Опции темы Поиск в этой теме
Старый 03.12.2021, 11:35   #1
MoHoMaX
Новичок
 
Регистрация: 02.03.2021
Сообщения: 9
Сказал Спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении
Печаль роберт Yrc1000

Доброго времени суток.

Организация приобрела робота YASKAWA YRC1000 model GP25 с написанными уже прогами и запрограммированным контроллером от Митсы на выполнение сверления отверстий в кольцах.
Роботом с горем пополам управляться научился, после KUKA конечно то ещё "удовольствие", всё через 1 место сделано..ну да ладно..придется привыкать и к этому Роберту ((( деваться некуда.

Собственно стал вникать в написанный код господами из Тайваня, многое не понятно. Самое неясное то, что как я понял Роберт общается с контроллером, который управляет другим оборудованием, через свой порт и все входа-выхода у него виртуальные что ли и вот я не понимаю, в коде Роберта пишется что Выход 17 допустим OFF, выход 18 ON.. это типа грипер открыть ну или закрыть. Но на контроллере входа начинаются с 0 до 7, затем 10 ... 17 и так далее. по 8 входов и также снизу выхода. Ну и такой вопрос, неужели нельзя кнопкой грипер открывать/закрывать как например на KUKA? А то общаться через код ну вовсе не удобно.

Вот например весь код, который нам достался от производителя. После работы с KUKA для меня это просто бред сумасшедшего ))) Комменты все писал я, для последователей..т.к. разбираюсь пока что я один..а потом надо это как минимум 6 человекам расскать и научить.
Код:
IF IN#(41)=ON	=> R-GET-CV
DOUT OT#(56) ON			// ВКЛючаем ВЫХОД56
WAIT IN#(17)=ON			// ждем когда ВКЛючится ВХОД17
DOUT OT#(51) OFF			// ВЫКЛючаем ВЫХОД51
MOVJ P021 VJ=100.00 PL=5 NWAIT	// двигаемся в режиме PTP на точку Р021
*RCYCLE				// объявляем маркер RCYCLE
DOUT OT#(18) OFF			// ВЫКЛючаем ВЫХОД18
PULSE OT#(17) T=0.50			// даем импульс на ВЫХОД17
WAIT IN#(17)=ON			// ждем когда ВКЛючится ВХОД17
GETREG I000 MREG#(0)
SET D000 I000				// 0 элемент типа DOUBLE = 0 элементу типа INTEGER (0=0)
CWAIT
MOVL P[D000] V=1500.0 PL=0		// двигаемся в режиме LIN на точку Р0
DOUT OT#(18) ON			// ВКЛючаем ВЫХОД18
WAIT IN#(17)=OFF T=0.80		// ждем когда ВЫКЛючится ВХОД17
MOVL P021 V=1500.0 NWAIT		// двигаемся в режиме LIN на точку Р021
PULSE OT#(51) T=1.00			// даем импульс на ВЫХОД51
CWAIT
MOVJ P023 VJ=100.00			// двигаемся в режиме PTP на точку Р023
IFTHENEXP IN#(19)=OFF		// если ВХОД19 ВЫКЛючен, то 
	 JUMP *RCYCLE		// переходим на маркер RCYCLE
ENDIF
MOVJ P080 VJ=100.00 NWAIT		// двигаемся в режиме PTP на точку Р080
PULSE OT#(41) T=1.00			// даем импульс на ВЫХОД41
CWAIT

IF IN#(42)=ON 	=> R-PUT-WELDING
MOVJ P080 VJ=100.00			// двигаемся в режиме PTP на точку Р080
MOVL P081 V=1500.0 PL=0		// двигаемся в режиме LIN на точку Р081
DOUT OT#(18) OFF			// ВЫКЛючаем ВЫХОД18
DOUT OT#(17) ON			// ВКЛючаем ВЫХОД17
WAIT IN#(17)=ON			// ждем когда ВКЛючится ВХОД17
MOVL P080 V=1500.0 NWAIT		// двигаемся в режиме LIN на точку Р080
PULSE OT#(42) T=1.00			// даем импульс на ВЫХОД42
CWAIT

IF IN#(43)=ON	=> R-GET-WELDING
WAIT IN#(17)=ON			// ждем когда ВКЛючится ВХОД17
MOVJ P080 VJ=100.00			// двигаемся в режиме PTP на точку Р080
MOVL P081 V=1500.0 PL=0		// двигаемся в режиме LIN на точку Р081
DOUT OT#(17) OFF			// ВЫКЛючаем ВЫХОД17
DOUT OT#(18) ON			// ВКЛючаем ВЫХОД18
WAIT IN#(17)=OFF			// ждем когда ВЫКЛючится ВХОД17
WAIT T=0.30
MOVL P080 V=1500.0 NWAIT		// двигаемся в режиме LIN на точку Р080
PULSE OT#(43) T=1.00			// даем импульс на ВЫХОД43
CWAIT
IFTHENEXP IN#(73)=ON		// если ВХОД73 ВКЛючен, то 
	 MOVJ P060 VJ=100.00		// двигаемся в режиме PTP на точку Р060
ENDIF

IF IN#(44)=ON	=> R-PUT-TAP
MOVJ P070 VJ=100.00			// двигаемся в режиме PTP на точку Р070
MOVL P071 V=1000.0 PL=0		// двигаемся в режиме LIN на точку Р071
DOUT OT#(18) OFF			// ВЫКЛючаем ВЫХОД18
DOUT OT#(17) ON			// ВКЛючаем ВЫХОД17
WAIT IN#(17)=ON			// ждем когда ВКЛючится ВХОД17
IMOV P072 V=1500.0 NWAIT		// инкрементное движение в режиме LIN на точку Р072
PULSE OT#(44) T=1.00			// даем импульс на ВЫХОД44
CWAIT
 
IF IN#(46)=ON	=> L-PUT-CV
MOVJ P051 VJ=100.00 PL=5 NWAIT	// двигаемся в режиме PTP на точку Р051
GETREG I001 MREG#(1)
SET D001 I001				// 1 элемент типа DOUBLE = 1 элементу типа INTEGER (31=31)
CWAIT
WAIT IN#(46)=ON			// ждем когда ВКЛючится ВХОД46
MOVL P[D001] V=1500.0 PL=0		// двигаемся в режиме LIN на точку Р31
DOUT OT#(20) OFF			// ВЫКЛючаем ВЫХОД20
DOUT OT#(19) ON			// ВКЛючаем ВЫХОД19
WAIT IN#(21)=ON			// ждем когда ВКЛючится ВХОД21
MOVL P051 V=1500.0 NWAIT		// двигаемся в режиме LIN на точку Р051
PULSE OT#(52) T=1.00			// даем импульс на ВЫХОД52
CWAIT
MOVJ P021 VJ=100.00 PL=5 NWAIT	// двигаемся в режиме PTP на точку Р021
PULSE OT#(46) T=1.00			// даем импульс на ВЫХОД46
CWAIT
IFTHENEXP IN#(74)=ON		// если ВХОД74 ВКЛючен, то
	 MOVJ P060 VJ=100.00		// двигаемся в режиме PTP на точку Р060
ENDIF
DOUT OT#(56) OFF			// ВЫКЛючаем ВЫХОД56

IF IN#(50)=ON	=> L-GET-TAP
WAIT IN#(21)=ON			// ждем когда ВКЛючится ВХОД21
MOVJ P060 VJ=100.00			// двигаемся в режиме PTP на точку Р060
MOVL P061 V=1500.0 PL=0		// двигаемся в режиме LIN на точку Р061
DOUT OT#(19) OFF			// ВЫКЛючаем ВЫХОД19
DOUT OT#(20) ON			// ВКЛючаем ВЫХОД20
WAIT IN#(22)=ON			// ждем когда ВКЛючится ВХОД2
IMOV P062 V=1500.0 NWAIT
PULSE OT#(50) T=1.00
CWAIT
MOVJ P070 VJ=50.00

IF IN#(51)=ON	=> R-NG-PUT
WAIT IN#(17)=ON
MOVJ P080 VJ=100.00
MOVL P081 V=1500.0 PL=0
DOUT OT#(17) OFF
DOUT OT#(18) ON
WAIT IN#(17)=OFF
WAIT T=0.30
IMOV P082 V=1500.0
MOVL P088 V=1500.0
MOVL P083 V=1500.0
MOVL P084 V=1500.0 PL=0
DOUT OT#(18) OFF
DOUT OT#(17) ON
WAIT IN#(17)=ON
PULSE OT#(53) T=1.00
MOVL P086 V=1500.0

IF IN#(52)=ON	=> EXCHANGE-POS
CALL JOB:HOME
MOVJ P098 VJ=10.00 NWAIT
PULSE OT#(54) T=0.50
CWAIT
Не понимаю точно как работает IMOV. В коде встречается IMOV P082 V=1500.0, двигаю робота и это точка.. но если зайти в переменные и там выбрать P82.. там по всем осям стоят 0, а ось Z = 200. WTF?

Чирканите что-нибудь если кто хоть как-то имел дело с сие чудом японского производства. Когда Роберт приехал, за 2 дня всё собрали, включили.. но как дальше не понятно.. боимся Робертом вокруг всё разнести ))) когда режим АВТО включим..потому что как я понял вручную фиг что выйдет..т.к. ничего не активируется из входов.

Спасибо.. надеюсь хоть что-то напишите..чтобы можно было дальше вопросы наводящие позадавать. Всех благ.
Изображения:
Тип файла: jpg sys_info.jpg (73.1 Кбайт, 1 просмотров)
__________________
KUKA KRC4
MoHoMaX вне форума   Ответить с цитированием
Старый 03.12.2021, 17:37   #2
Dmitry_CH
Новичок
 
Регистрация: 24.08.2021
Сообщения: 14
Сказал Спасибо: 1
Сказали Спасибо 5 раз(а) в 5 сообщении
По умолчанию

Сообщение от MoHoMaX Посмотреть сообщение
Не понимаю точно как работает IMOV. В коде встречается IMOV P082 V=1500.0, двигаю робота и это точка.. но если зайти в переменные и там выбрать P82.. там по всем осям стоят 0, а ось Z = 200. WTF?
Я с мотоманами не работал, но мануал подсказывает что IMOV это смещение. Он берёт свою нынешнюю позицию, прибавляет к ней значение из P082 и перемещается к тому что получилось.

Из мануала: "Moves by linear interpolation from the current position for the specified incremental value."
Dmitry_CH вне форума   Ответить с цитированием
cказали "Спасибо" Dmitry_CH за это сообщение:
MoHoMaX (06.12.2021)
Старый 06.12.2021, 18:18   #3
MoHoMaX
Новичок
 
Регистрация: 02.03.2021
Сообщения: 9
Сказал Спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении
По умолчанию

спасибо, собственно так и подумал, но были сомнения.
__________________
KUKA KRC4
MoHoMaX вне форума   Ответить с цитированием
Старый 12.01.2022, 13:25   #4
Moto
Новичок
 
Регистрация: 20.11.2018
Сообщения: 4
Сказал Спасибо: 0
Сказали Спасибо 2 раз(а) в 2 сообщении
По умолчанию

Варианты сделать открытие и закрытие гриппера одной функцией есть. Используйте макросы например. Что касается Imov, то Дмитрий правильно подсказал. Выхода и входа, которые вы используете в программе включаются и регистрируются в меню general purpose output/input. Через лестницу они связаны с external входами/выходами, может быть network входами/выходами. Как именно, зависит от того, какие платы сопряжения стоят в контроллере, какие протоколы соединения.
Moto вне форума   Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Часовой пояс GMT +2, время: 16:33.

vBulletin v3.6.2, Copyright ©2000-2024, Jelsoft Enterprises Ltd.
Русский перевод: zCarot, Vovan & Co