PDA

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


sheppard
21.07.2020, 14:13
Программа прекрасно пашет в T1/T2, но вот ругаеццо в AUTO:

KSS00203
Разрешение общего перемещения
Caused by: KS

KSS01356
Требуется нажатие кнопки запуска

KSS01376
Активные команды заблокированы

--

Первое сообщение желтое, и при нажатии на "?" оно выдает еще более мутную и общую "расшифровку":

KSS01210
Квитирование общего разрешения перемещения.

===

В мануалах черт ногу сломит.

Пробовал вот этот момент:

If the variable $CHCK_MOVENA has the value FALSE, $MOVE_ENABLE
can be bypassed. The value of the variable can only be changed in the file
C:\KRC\ROBOTER\KRC\STEU\Mada\$OPTION.DAT.

Но просто поправить, естественно, мало. Теоретически надо перезагрузиться, но тогда $CHCK_MOVENA сбрасывается назад в TRUE.


Что надо пнуть? ;)

andy_18
21.07.2020, 16:46
переменную "$move_enable" сконфигурировать на какой-нибудь вход, а его (вход) установить в "true".

sheppard
21.07.2020, 20:58
Ха!!! Так вот физических входов-то у меня и нет... Только пара планок (EL2024 и еще какая-то ELXXXX) выходов на EK1100. Я же не просто так тут пару недель назад бился с X25/X33 и $meas_pulse :)))

Разве нельзя как-то программно "забить" переменную нужным значением? Любой хак подойдет, так как пока я физически все данные ловлю на meas_pulse (один пин все еще свободен - вдруг и так можно вывернуться...), и это точно продлится несколько недель :)

Pavel_T
22.07.2020, 07:09
Подозреваю, что никакой связи с физическими I/O нет. Робот, скорее всего сконфигурирован
для работы в Automatic External, а внешний контроллер отключен (отсоединен). Вот минимальный код для того,
чтобы запустить робот в автомате. Если не пойдет, проверить настройки Automatic External на
смартпаде.

DEF TestAuto ( )
E6POS TempPos

;FOLD INI;%{PE}
;FOLD BASISTECH INI
GLOBAL INTERRUPT DECL 3 WHEN $STOPMESS==TRUE DO IR_STOPM ( )
INTERRUPT ON 3
BAS (#INITMOV,0 )
;ENDFOLD (BASISTECH INI)
;FOLD USER INI
;Make your modifications here

;ENDFOLD (USER INI)
;ENDFOLD (INI)

$OV_PRO = 10
TempPos = $POS_ACT
PTP TempPos ;BCO run

LOOP
ENDLOOP

END

sheppard
22.07.2020, 08:44
Гхм... совсем запутался - буду разбираться :)

но пока кратко и чуток сумбурно:
1. Робот был вообще гол как сокол - одна железяка.
2. У железяки нет входов. Только EL2404, то есть выходы.
3. Входы реализовал через quick measurements, пока сойдет.
4. Робот при попытке запустить программу в AUTO-режиме выдает то, что перечислил в начале.
5. Мысль про $move_enable возникла после перелопачивания пары-тройки страниц мануалов :)

---
Вопросы:

Видимо с $move_enable я прав? И нужно именно ее долбить?
Но тогда что означает $OV_PRO = 10?
Судя по коду это ключевой момент...

Но тогда смущает то, что ПРЕЖДЕ чем запустить этот код, я УЖЕ должен НЕ иметь в списке предупреждения. То есть замкнутый круг. Чтобы запустить "обходилку" запрета движений я должен снять запрет движений :)))

Или тут хитрость какая-то, связанная с $OV_PRO = 10?

То есть раз по ходу это ПЕРВАЯ ЗНАЧИМАЯ строка, то она как раз что-то системное настраивает? И если ее влепить в каждую свою программу в начале, то эта припарка поможет обойти ограничение движений? Хотелось бы знать, что же это за такая волшебная переменная $OV_PRO :)))

Мануал подсказывает, что это просто указание процента от макс.скорости... Или это такой полубаг, из-за которого при явном задании значения переменной она "глушит" все остальные ограничения? Мол, если я пишу $OV_PRO = 100; то фактически насильно разрешаю движения на полную катушку, игнорируя общий запрет?

sheppard
22.07.2020, 13:19
не работает... прежде чем я запускаю программу система заранее орет Kss00203, и никакие команды не "фунициклируют"...

andy_18
22.07.2020, 18:37
пробовали в сигналах внешней автоматики $MOVE_ENABLE=$in[1025] ?

Pavel_T
22.07.2020, 19:38
Попробую ответить по порядку.
$OV_PRO = 10 или $OV_PRO = 30 ставлю просто для удобства. Я так привык, что когда запускается
отлаживаемая программа, я железно стартую с заданной скоростью(пониженной). В дальнейшем
скорость можно изменить на подходящую для работы или вообще убрать.
Теперь, что касается I/O. Надо зайти в меню Automatic External и проверить какие
адреса заданы для входов и выходов. Как правило, по умолчанию это 3х или 4х значные индексы,
например 973 или 1025, как подсказывали выше. Какие конкретно должны быть цифры не скажу.
Это зависит от модели робота и его контроллера. Все переменные и порты которые отвечают за
интерфейс Automatic External находятся в файле config.dat Его перед изменениями желательно сохранить,
чтобы можно было откатиться. Если робот был восстановлен корректно, то можно в доступных
проектах на стороне робота поискать проект с названием "Base". Это стартовый начальный проект с
корректной аппаратной конфигурацией, по вашим требованиям для данного конкретного робота, которую Кука
устанавил на заводе. "Base" можно загрузить через WV и там в config.dat посмотреть начальные значения
параметров интерфейса для Automatic External. Просто поменять один $MOVE_ENABLE думаю не получится.

sheppard
22.07.2020, 20:06
Ага, так уже понятнее :)))

Утром вцеплюсь...

Просто робота я уже довел до кондиции, при том, что у него вообще нет входов физически. Но ничего. Уже фурычит: https://youtu.be/grH3J7UCYbo

Роботёр
22.07.2020, 23:38
как ты активируешь автоматический режим
работы? хочу это видеть. сделай видео

Роботёр
22.07.2020, 23:45
никакие настройки внешней автоматики трогать не надо. по умолчанию стоит все для того, чтобы работало все в автомате

sheppard
23.07.2020, 05:11
да там нечего снимать :) тупо включаю агрегат, и на пульте переключаю в Auto, поворачиваю ключ, выбираю программу... и опаньки :)

Роботёр
23.07.2020, 07:00
а привода не забываешь активировать?

sheppard
23.07.2020, 08:44
это что имеется ввиду? просто у меня же лютая смесь немецкого, английского, русского и, простите тайские божки, словенского в мануалах :)))

где и что нажимать? просто из-за несостыковки терминов непонятно :)

Роботёр
23.07.2020, 10:52
именно поэтому и просил видео. буква I сверху на пульте зеленая становится?

sheppard
23.07.2020, 12:04
нет. хардверный косяк?

Pavel_T
23.07.2020, 14:15
Не обязательно хардверный косяк, может быть просто не задан $DRIVES_ON
Так, нашелся базовый проект от нового Куки KR60. Вытащил оттуда $machine.dat
Сейчас можно посмотреть настройки по умолчанию для переменных Automatic External
(т. е. в данном случае Automatic External не настроен, внешний контроллер не требуется и
робот должен автономно работать в Automatic Mode). В прошлом посте я по ошибке упоминал
$config.dat для переменных Automatic External. Правильный файл это $machine.dat
Менять может быть ничего и не надо, просто для начала посмотреть и сравнить. что робот
не заточен для работы в Automatic External.

&ACCESS RV
&PARAM DISKPATH = MADA
&PARAM VERSION=1.0.0
DEFDAT $MACHINE PUBLIC
CHAR $V_STEUMADA[32]
$V_STEUMADA[]="V1.0.0/KUKA8.3" ;VERSIONSKENNUNG
SIGNAL $MASTERINGTEST_REQ_EXT $IN[1026] ;TRUE = Referenzfahrt angefordert (extern)
SIGNAL $BRAKETEST_REQ_EX $IN[1026] ;TRUE = Bremsentest soll gestartet werden
SIGNAL $BRAKETEST_MONTIME FALSE
SIGNAL $MAINTENANCE_TO_PLC FALSE
SIGNAL $BRAKETEST_REQ_INT FALSE
SIGNAL $BRAKETEST_WORK FALSE
SIGNAL $BRAKES_OK FALSE
SIGNAL $BRAKETEST_WARN FALSE
DECL EMSTOP_PATH $EMSTOP_PATH={T1 #ON,T2 #ON,AUT #ON,EX #ON} ;PROJEKTIERUNG DES BAHNTREUEN NOT-AUS FUER T1,T2,AUT,EX
SIGNAL $EXT_START $IN[1026] ;EXTERNER START
SIGNAL $MOVE_ENABLE $IN[1025] ;FAHRFREIGABE GESAMT
SIGNAL $RC_RDY1 $OUT[137] ;RC-BETRIEBSBEREIT 1
SIGNAL $SPOC_MOTION_ENABLE $OUT[1015] ; FAHRFREIGABE DURCH SAFETY CONTROLLER
SIGNAL $ALARM_STOP $OUT[1013] ;NOT-STOP
SIGNAL $T1 $OUT[993] ;BETRIEBSART T1
SIGNAL $T2 $OUT[994] ;BETRIEBSART T2
SIGNAL $AUT $OUT[995] ;BETRIEBSART AUTOMATIK
SIGNAL $I_O_ACTCONF $OUT[140] ;E/A-SCHNITTSTELLE AKTIV QUITTUNG
SIGNAL $MODE_AUTO FALSE
SIGNAL $MODE_TEST FALSE
SIGNAL $LOCAL_NETWORK_OK FALSE
SIGNAL $COMPLETE_NETWORK_OK FALSE
SIGNAL $EXT $OUT[996] ;BETRIEBSART EXTERN
SIGNAL $STOPMESS $OUT[1010] ;STOP-MELDUNG
SIGNAL $CONF_MESS $IN[1026] ;EXTERNE QUITTUNG
SIGNAL $USER_SAF $OUT[1011]
SIGNAL $PERI_RDY $OUT[1012]
SIGNAL $IN_HOME $OUT[1000] ;ROB IN HOMEPOSITION
SIGNAL $IN_HOME1 FALSE
SIGNAL $IN_HOME2 FALSE
SIGNAL $IN_HOME3 FALSE
SIGNAL $IN_HOME4 FALSE
SIGNAL $IN_HOME5 FALSE
SIGNAL $DRIVES_ON $IN[140] ;ANTRIEBE EIN
SIGNAL $DRIVES_OFF $IN[1025] ;ANTRIEBE ENABLE
SIGNAL $ON_PATH $OUT[997] ;ROB AUF BAHN
SIGNAL $PR_MODE $OUT[138] ;HAND/PROGRAMMIERMODUS
SIGNAL $SS_MODE $OUT[139] ;HAND/SINGLE-STEP
SIGNAL $ALARM_STOP_INTERN $OUT[1002] ;NOT-STOP INTERN
SIGNAL $WORKSTATE1 FALSE
SIGNAL $WORKSTATE2 FALSE
SIGNAL $WORKSTATE3 FALSE
SIGNAL $WORKSTATE4 FALSE
SIGNAL $WORKSTATE5 FALSE
SIGNAL $WORKSTATE6 FALSE
SIGNAL $WORKSTATE7 FALSE
SIGNAL $WORKSTATE8 FALSE
SIGNAL $CYLWORKSTATE1 FALSE
SIGNAL $CYLWORKSTATE2 FALSE
SIGNAL $CYLWORKSTATE3 FALSE
SIGNAL $CYLWORKSTATE4 FALSE
SIGNAL $CYLWORKSTATE5 FALSE
SIGNAL $CYLWORKSTATE6 FALSE
SIGNAL $CYLWORKSTATE7 FALSE
SIGNAL $CYLWORKSTATE8 FALSE
SIGNAL $AXWORKSTATE1 FALSE
SIGNAL $AXWORKSTATE2 FALSE
SIGNAL $AXWORKSTATE3 FALSE
SIGNAL $AXWORKSTATE4 FALSE
SIGNAL $AXWORKSTATE5 FALSE
SIGNAL $AXWORKSTATE6 FALSE
SIGNAL $AXWORKSTATE7 FALSE
SIGNAL $AXWORKSTATE8 FALSE
SIGNAL $ASYNC_AX1_P $IN[1026]
SIGNAL $ASYNC_AX2_P $IN[1026]
SIGNAL $ASYNC_AX3_P $IN[1026]
SIGNAL $ASYNC_AX4_P $IN[1026]
SIGNAL $ASYNC_AX5_P $IN[1026]
SIGNAL $ASYNC_AX6_P $IN[1026]
SIGNAL $ASYNC_AX1_M $IN[1026]
SIGNAL $ASYNC_AX2_M $IN[1026]
SIGNAL $ASYNC_AX3_M $IN[1026]
SIGNAL $ASYNC_AX4_M $IN[1026]
SIGNAL $ASYNC_AX5_M $IN[1026]
SIGNAL $ASYNC_AX6_M $IN[1026]
SIGNAL $ZUST_ASYNC $IN[1026]
SIGNAL $NEAR_POSRET $OUT[147] ;ROBOTER IN TOLERANZFENSTER
SIGNAL $COLLISION FALSE
SIGNAL $COLLISION_STOP FALSE
SIGNAL $I_O_ACT $IN[1025] ;E/A-SCHNITTSTELLE AKTIV
SIGNAL $SAFEGATE_OP $IN[1025] ;SAFETY GATE ON PATH STOP
SIGNAL $MOVE_ENA_ACK FALSE
SIGNAL $COLL_ALARM FALSE
SIGNAL $COLL_ENABLE FALSE
SIGNAL $IMM_STOP $IN[1025] ;NOT-AUS VON DER SPS
SIGNAL $AUX_POWER $IN[1026] ;EXTERNE SPANNUNGSVERSORGUNG AKTIV
SIGNAL $T2_ENABLE $IN[1025] ;SAFETY-SPEED
REAL $FAN_FOLLOW_UP_TIME=5.00000 ;NACHLAUFZEIT FUER DIE FAN-ANSTEUERUNG
SIGNAL $ROB_STOPPED $OUT[1023] ;ROBOTER STEHT
SIGNAL $ROB_CAL $OUT[1001] ;ROBOTER SYNCHRON
SIGNAL $PRO_ACT $OUT[1021] ;PROZESS AKTIV
SIGNAL $PRO_MOVE $OUT[1022] ;PROGRAMMBEWEGUNG AKTIV
ENDDAT

sheppard
23.07.2020, 14:46
Навскидку вроде все то же самое (за исключением версии и заголовка):

====
&PARAM VERSION=1.0.0
DEFDAT $MACHINE PUBLIC
CHAR $V_STEUMADA [32]
$V_STEUMADA[]="V1.0.0/KUKA8.2" ;VERSIONSKENNUNG
SIGNAL $MASTERINGTEST_REQ_EXT $IN[1026];TRUE = REFERENZFAHRT ANGEFORDERT (EXTERN)
SIGNAL $BRAKETEST_REQ_EX $IN[1026];TRUE = Bremsentest soll gestartet werden
SIGNAL $BRAKETEST_MONTIME FALSE;TRUE = Monitoringzeit wurde ueberschritten
SIGNAL $MAINTENANCE_TO_PLC FALSE;SIGNAL AN DIE SPS, DASS EIN WARTUNGSINTERVALL ANSTEHT
SIGNAL $BRAKETEST_REQ_INT FALSE;TRUE= Bremsentest wird angefordert
SIGNAL $BRAKETEST_WORK FALSE;TRUE = Bremsentest wird durchgefuehrt
SIGNAL $BRAKES_OK FALSE;False = Bremse ist defekt
SIGNAL $BRAKETEST_WARN FALSE;TRUE = Bremse hat Verschleissgrenze erreicht
DECL EMSTOP_PATH $EMSTOP_PATH={ T1 #ON,T2 #ON,AUT #ON,EX #ON };PROJEKTIERUNG DES BAHNTREUEN NOT-AUS FUER T1,T2,AUT,EX
SIGNAL $EXT_START $IN[1026];EXTERNER START
SIGNAL $MOVE_ENABLE $IN[1025];FAHRFREIGABE GESAMT
SIGNAL $RC_RDY1 $OUT[137];RC-BETRIEBSBEREIT 1
SIGNAL $SPOC_MOTION_ENABLE $OUT[1015]; FAHRFREIGABE DURCH SAFETY CONTROLLER
SIGNAL $ALARM_STOP $OUT[1013];NOT-STOP
SIGNAL $T1 $OUT[993];BETRIEBSART T1
SIGNAL $T2 $OUT[994];BETRIEBSART T2
SIGNAL $AUT $OUT[995];BETRIEBSART AUTOMATIK
SIGNAL $I_O_ACTCONF $OUT[140];E/A-SCHNITTSTELLE AKTIV QUITTUNG
SIGNAL $MODE_AUTO FALSE ;Betriebsarte AUT oder EXT
SIGNAL $MODE_TEST FALSE ;Betriebsart T1 oder T2
SIGNAL $LOCAL_NETWORK_OK FALSE;Lokale Netzwerkkonfiguration OK
SIGNAL $COMPLETE_NETWORK_OK FALSE;Alle konfigurierten Steuerungen erreichbar
SIGNAL $POS_TRACKER_ERROR FALSE;Position Tracker Fehlermeldung wegen Geberfehler oder Uebertragungsfehler DSE-RDW steht an
SIGNAL $RDC_FLASH_DEFECT FALSE;Mindestens ein Sektor im Flash der RDW defekt. RDW sollte bei Gelegenheit gewechselt werden.
SIGNAL $EXT $OUT[996];BETRIEBSART EXTERN
SIGNAL $STOPMESS $OUT[1010];STOP-MELDUNG
SIGNAL $CONF_MESS $IN[1026];EXTERNE QUITTUNG
SIGNAL $USER_SAF $OUT[1011]
SIGNAL $PERI_RDY $OUT[1012]
SIGNAL $IN_HOME $OUT[1000];ROB IN HOMEPOSITION
SIGNAL $IN_HOME1 FALSE
SIGNAL $IN_HOME2 FALSE
SIGNAL $IN_HOME3 FALSE
SIGNAL $IN_HOME4 FALSE
SIGNAL $IN_HOME5 FALSE
SIGNAL $DRIVES_ON $IN[140];ANTRIEBE EIN
SIGNAL $DRIVES_OFF $IN[1025];ANTRIEBE ENABLE
SIGNAL $ON_PATH $OUT[997];ROB AUF BAHN
SIGNAL $PR_MODE $OUT[138];HAND/PROGRAMMIERMODUS
SIGNAL $SS_MODE $OUT[139];HAND/SINGLE-STEP
SIGNAL $ALARM_STOP_INTERN $OUT[1002];NOT-STOP INTERN
SIGNAL $WORKSTATE1 FALSE
SIGNAL $WORKSTATE2 FALSE
SIGNAL $WORKSTATE3 FALSE
SIGNAL $WORKSTATE4 FALSE
SIGNAL $WORKSTATE5 FALSE
SIGNAL $WORKSTATE6 FALSE
SIGNAL $WORKSTATE7 FALSE
SIGNAL $WORKSTATE8 FALSE
SIGNAL $CYLWORKSTATE1 FALSE;AUSGANG ZYLINDRISCHE KARTESISCHE ARBEITSRAUMUEBERWACHUNG
SIGNAL $CYLWORKSTATE2 FALSE;AUSGANG ZYLINDRISCHE KARTESISCHE ARBEITSRAUMUEBERWACHUNG
SIGNAL $CYLWORKSTATE3 FALSE;AUSGANG ZYLINDRISCHE KARTESISCHE ARBEITSRAUMUEBERWACHUNG
SIGNAL $CYLWORKSTATE4 FALSE;AUSGANG ZYLINDRISCHE KARTESISCHE ARBEITSRAUMUEBERWACHUNG
SIGNAL $CYLWORKSTATE5 FALSE;AUSGANG ZYLINDRISCHE KARTESISCHE ARBEITSRAUMUEBERWACHUNG
SIGNAL $CYLWORKSTATE6 FALSE;AUSGANG ZYLINDRISCHE KARTESISCHE ARBEITSRAUMUEBERWACHUNG
SIGNAL $CYLWORKSTATE7 FALSE;AUSGANG ZYLINDRISCHE KARTESISCHE ARBEITSRAUMUEBERWACHUNG
SIGNAL $CYLWORKSTATE8 FALSE;AUSGANG ZYLINDRISCHE KARTESISCHE ARBEITSRAUMUEBERWACHUNG
SIGNAL $AXWORKSTATE1 FALSE;AUSGANG DER ACHSARBEITSRAUMUEBERWACHUNG
SIGNAL $AXWORKSTATE2 FALSE;AUSGANG DER ACHSARBEITSRAUMUEBERWACHUNG
SIGNAL $AXWORKSTATE3 FALSE;AUSGANG DER ACHSARBEITSRAUMUEBERWACHUNG
SIGNAL $AXWORKSTATE4 FALSE;AUSGANG DER ACHSARBEITSRAUMUEBERWACHUNG
SIGNAL $AXWORKSTATE5 FALSE;AUSGANG DER ACHSARBEITSRAUMUEBERWACHUNG
SIGNAL $AXWORKSTATE6 FALSE;AUSGANG DER ACHSARBEITSRAUMUEBERWACHUNG
SIGNAL $AXWORKSTATE7 FALSE;AUSGANG DER ACHSARBEITSRAUMUEBERWACHUNG
SIGNAL $AXWORKSTATE8 FALSE;AUSGANG DER ACHSARBEITSRAUMUEBERWACHUNG
SIGNAL $ASYNC_AX1_P $IN[1026]
SIGNAL $ASYNC_AX2_P $IN[1026]
SIGNAL $ASYNC_AX3_P $IN[1026]
SIGNAL $ASYNC_AX4_P $IN[1026]
SIGNAL $ASYNC_AX5_P $IN[1026]
SIGNAL $ASYNC_AX6_P $IN[1026]
SIGNAL $ASYNC_AX1_M $IN[1026]
SIGNAL $ASYNC_AX2_M $IN[1026]
SIGNAL $ASYNC_AX3_M $IN[1026]
SIGNAL $ASYNC_AX4_M $IN[1026]
SIGNAL $ASYNC_AX5_M $IN[1026]
SIGNAL $ASYNC_AX6_M $IN[1026]
SIGNAL $ZUST_ASYNC $IN[1026]
SIGNAL $NEAR_POSRET $OUT[147];ROBOTER IN TOLERANZFENSTER
SIGNAL $COLLISION FALSE ;Bei Kollisionsvermeidung aktiv wurde eine Kollision erkannt
SIGNAL $COLLISION_STOP FALSE ;Bei aktiver Kollisionsvermeidung ist eine Kollision vorhergesagt und stop wurde eingeleitet
SIGNAL $I_O_ACT $IN[1025];E/A-SCHNITTSTELLE AKTIV
SIGNAL $SAFEGATE_OP $IN[1025];SAFETY GATE ON PATH STOP
SIGNAL $MOVE_ENA_ACK FALSE ;RUECKMELDUNG $MOVE_ENABLE AN PLC
SIGNAL $COLL_ALARM FALSE ;KOLLISIONSALARM
SIGNAL $COLL_ENABLE FALSE ;KOLLISIONSSOFTWARE EIN/AUS
SIGNAL $LAST_BUFFERING_NOTOK $OUT[1003];AUSGANG SIGNALISIERT EINE ANSTEHENDE AKKUMELDUNG
SIGNAL $COBRA_FAN_ERROR FALSE;Lueftermeldung steht an
SIGNAL $IMM_STOP $IN[1025];NOT-AUS VON DER SPS
SIGNAL $AUX_POWER $IN[1026];EXTERNE SPANNUNGSVERSORGUNG AKTIV
SIGNAL $T2_ENABLE $IN[1025];SAFETY-SPEED
REAL $FAN_FOLLOW_UP_TIME=5.0;NACHLAUFZEIT FUER DIE FAN-ANSTEUERUNG
INT $FAN_RED_LIMIT_TEMP=0;Reduktion der Schaltschwelle in Celsius fuer Schrankluefter (0 entspricht Schwelle von 44 Grad)
INT $MOTOR_RED_TEMP=0;Reduktion der Abschaltschwelle in Celsius fuer Motoren (0 entspricht Schwelle von 155 Grad abzueglich Messtoleranz)
SIGNAL $PHASE_VOLTAGE_MISSING FALSE;projektierbare systemvariable
SIGNAL $ROB_STOPPED $OUT[1023];ROBOTER STEHT
SIGNAL $ROB_CAL $OUT[1001];ROBOTER SYNCHRON
SIGNAL $PRO_ACT $OUT[1021];PROZESS AKTIV
SIGNAL $PRO_MOVE $OUT[1022];PROGRAMMBEWEGUNG AKTIV
ENDDAT
====

Роботёр
23.07.2020, 15:33
Конечно все тоже самое, ты же с нуля ставил kss. какой нахрен хардверный косяк. еще раз говорю пришли мне видео, как ты запускаешь прогу в автомате

sheppard
23.07.2020, 15:46
через пару часов, как до домашнего компа добегу :) тут такой интернет, что проще побитово проорать :))))

sheppard
23.07.2020, 16:47
Собственно вотъ ;) - https://yadi.sk/i/eJOjlVmyBiusnA

сразу появляется желтое предупреждение... так что и дергаться бесполезно :)

Pavel_T
23.07.2020, 19:33
Моторы не включены или не включаются.
Выбрать Т1, затем просто нажать дедман свич. Все оси или координаты с
правой стороны должны стать зеленые, типа ready. Индикатор моторов
(который рядом с режимом работы робота слева) должен измениться с
О на I и тоже стать зеленым. Двигать робот не обязательно. В этот момент убираются брексы и робот издает характерный щелчек. Теперь отпустить дедман свич.
Индикатор моторов изменится с зеленого на серый, но что важно, должен остаться символ I. Переключиться в режим AUT. Индикатор моторов остается серым, символ I. Дальше нажимаем на треугольник плей (возможно несколько раз) робот должен начать выходить на начальную позицию или сразу запустится в автомате (если он уже был в начальной точке).
Если, как в фильме, сначала запуститься в автомате с выключенными моторами (символ О), то надо нажать на квадратик индикатра моторов. Выбрать символ I. Индикатор должен переключиться на I, но оставаться серым. После этого нажимать на плей. Робот начинает запускаться. Индикатор моторов остается I зеленый.
Ну и вариант когда не удается переключить индикатор моторов с
О на I. Думаю, что есть какой-то аппаратный трабл. Надо копать дальше.
Попробуй.

Роботёр
23.07.2020, 21:49
почти уверен, что никаких аппаратных проблем нет. Шепард ты просто не активировал привода. делай все, как пишет Pavel T

sheppard
23.07.2020, 23:04
Агась :))) Будь-сделано!

Что-то читал про это, хотя это же безумно нелогично... А если линия из 10ти таких Кук, работающих автономно, как в моем случае? Это так каждый аппарат наяривать или обязательно все делать через ExtAUTO? :)

Весьма нелогичное решение :)

Пасибки! Как утром доскачу до аппарата, так сразу же пну...

sheppard
24.07.2020, 08:57
номер не прошел... I нормально врубается. остается серым при переходе в авто. если сразу вхожу в авто и кликаю на O, то все светится зеленым кроме самого нижнего серого квадрата, где подписано, что в авто так и должно быть.

где-то еще собака порыта...

фотки скину попозже.

Pavel_T
24.07.2020, 10:26
а плей ты нажимаешь для запуска автомата ?

Роботёр
24.07.2020, 11:15
https://cloud.mail.ru/public/ALXQ/3si1keRaF -мануал
Шепард, проблема в том, что мы не понимаем, что ты делаешь. Я считаю, что ты просто не соблюдаешь последовательность. Давай делай еще одно видео. В мануале на странице 227 есть последовательность включения режима автомат

sheppard
24.07.2020, 12:54
Все сделал. Бестолку...

Вариант1 - выбираю прогу в T1. Врубаю движки. Переключаюсь в Ато и тут же ловлю KSS00203

Вариант2 с 227ой страницы. Перехожу в Ато. Проверяю движки и режим Go. И сноба сразу же получаю KSS00203.

Без вариантов. Ошибка выскакивает вообще до любых кнопок Плей :)))

сейчас попробую видео из мастерской залить...

sheppard
24.07.2020, 13:35
https://yadi.sk/i/z4nz6283XhxLow

Роботёр
24.07.2020, 13:36
вариант 1 точно не будет работать. привода включаются после перехода в режим автомат.
вариант2 - "проверяю движки". как ты их проверяешь? я не понимаю. давай видео. что за ошибка Kss00203 тоже не понятно

Роботёр
24.07.2020, 13:42
вот это хорошее видео. теперь видно, что делается все правильно и ничего не работает. есть возможность скинуть архив?

sheppard
24.07.2020, 13:59
да. сейчас озабочусь :)

sheppard
24.07.2020, 14:39
а просто файла проекта хватит?

sheppard
24.07.2020, 15:09
хотя лучше уж архив. все равно через пару часов буду уже у нормального интернета...

sheppard
24.07.2020, 15:46
https://yadi.sk/d/G-gACyn2BdCXJQ

Роботёр
25.07.2020, 14:07
смотри, ранее ты писал здесь на форуме
Signal $ext_start $in[1026];externer Start
Signal $move_enable $in[1025];fahrfreigabe Gesamt
Signal $rc_rdy1 $out[137];rc-betriebsbereit 1
Signal $spoc_motion_enable $out[1015]; Fahrfreigabe Durch Safety Controller
Signal $alarm_stop $out[1013];not-stop
Signal $t1 $out[993];betriebsart T1

Сейчас
SIGNAL $EXT_START $IN[220] ;EXTERNER START
SIGNAL $MOVE_ENABLE $IN[216] ;FAHRFREIGABE GESAMT
SIGNAL $RC_RDY1 $OUT[200] ;RC-BETRIEBSBEREIT 1
SIGNAL $SPOC_MOTION_ENABLE $OUT[1015] ; FAHRFREIGABE DURCH SAFETY CONTROLLER
SIGNAL $ALARM_STOP $OUT[201] ;NOT-STOP
SIGNAL $T1 $OUT[216] ;BETRIEBSART T1
SIGNAL $T2 $OUT[217] ;BETRIEBSART T2

Как так? Скорей всего в этом и дело...

sheppard
26.07.2020, 02:04
твою же м...

так все просто

убейте меня об стену :)

в понедзялек проверю.

sheppard
12.08.2020, 06:50
сорри что пропал. тут у нас адище, в том числе и с интернетом. сейчас только двойное туннелирование настроил :)

по ходу пока и без профибаса обошёлся, робот фактически полнофункционален. и через пару часов попробую заменить настройки, чтобы, наконец, запустить авто :)))

sheppard
12.08.2020, 11:50
https://www.instagram.com/p/CDyF-krhTFk/ - ничего так ;)

Роботёр
12.08.2020, 15:44
это уже хоть что-то...

Pavel_T
13.08.2020, 07:19
ну, красота !

sheppard
13.08.2020, 16:20
https://m.facebook.com/story.php?story_fbid=3428500420521453&id=100000845857125&refid=17&_ft_=mf_story_key.3428500420521453%3Atop_level_pos t_id.3428500420521453%3Atl_objid.3428500420521453% 3Acontent_owner_id_new.100000845857125%3Athrowback _story_fbid.3428500420521453%3Aphoto_id.3428498523 854976%3Astory_location.4%3Astory_attachment_style .video_autoplay%3Athid.100000845857125%3A306061129 499414%3A2%3A0%3A1598943599%3A6331512331233139340&__tn__=%2As%2As-R

sheppard
15.08.2020, 08:50
Ну или почти в боевом режиме :)))

https://www.facebook.com/100000845857125/videos/3431758373528991/

Роботёр
15.08.2020, 16:35
программа конечно рабочая, но мне вот лично не нравится, что все делается какими-то рывками. может, конечно, такой технологический процесс, но было бы плавно - было бы супер. ну в вообще конечно красавчик

sheppard
15.08.2020, 17:04
это мысля...

Тогда сразу два вопроса и одно уточнение:

1.
PTP_REL - все ясно.
А если у просто PTP использовать только одну из координат, то где физически по-умолчанию расположен (0,0,0)?
Сработает ли PTP (X 100) как возвращение к абсолютным (100, Y , Z), где X и Y останутся текущими?

2. У меня опрашивается $xxx_MEAS[1], к примеру. Если переменная = TRUE, то двигаемся еще на +100мм. Отсюда и рывки - гадёныш после завершения каждого PTP_REL проверяет IF $xxx_MEAS[1]=..., для чего останавливается, что вообще-то очень легко кодируется, но выглядит некузяво в работе :) И медленно...
Можно ли просто двигаться по команде PTP (X 100) и просто при $xxx_MEAS[1]=FALSE остановить движение и выполнить что-нибудь? То есть не делать сдвиг на 100, затем проверку и затем дальше двигаться на следующие 100, а ехать непрерывно, останавливаясь только если $xxx_MEAS[1]=FALSE, а не каждые 100мм, и потом продолжить, будто остановки не было?
Хотя продолжить "необязательно", ведь если первый вопрос имеет положительный ответ, то можно снова сказать PTP (X 100) и не париться, где робот остановился - координата же абсолютная!

Уточнение.
Разве все так плохо, и в PTP и PTP_REL нельзя влепить вместо констант переменную и тем более мат.выражение? Ругаеццо!!!

Роботёр
17.08.2020, 07:46
1.Нет не отработает, т.к. не назначены другие координаты, а переменная имеет тип E6pos, epos, e6axis,eaxis. По умолчанию 0,0,0 координата находится в центре основания робота, но это при условии использования base [0]. Как только база меняется, то и меняется начало системы отсчета соответствующего инструмента.
2. В перемещение ptp нельзя влепить мат. выражение. Мат выражение можно влепить до этого, а потом выполнить перемещение в рассчитанную точку. По рывкам: у тебя добавлена апроксимация движения между точками? думаю нет. начни с этого. Опять же весь разговор в пустую, т.к. не вижу кода программы.

sheppard
17.08.2020, 10:03
организую код :)

1. PTP заранее рассчитанные переменные не принимает. Ругается и требует константу. То есть рассчитать заранее и впихнуть - нельзя. Поэтому я и двигаюсь рывками и после каждого движения проверяю переменную MEAS_PULSE.


2. А насчет плавного движения с учетом значения переменной... меня интересует, как можно устроить реальное прерывание или аналог прерывания средствами KRL. Просто пусть робот проезжает метр по команде PTP/PTP_REL, но если переменная вдруг становится TRUE, он выполнит какую-нибудь процедуру.

Пока, кажется, PTP/PTP_REL работают от начала до конца. Но это же нелогично для робототехники!

3. И в моем случае, вдруг можно и прерывание обойти, скажем, системной переменной, в которую закладываем процент от максимальной скорости. Пусть робот двигается со 100% скорости, но когда MEAS_PULSE становится TRUE, то скорость, скажем, сбрасывается. Просто как-то "параллельно" сделать опрос MEAS и присвоение 50% какому-нибудь AXIS_VEL или COORD_VEL.

Там же VxW. Ну робот же...

Роботёр
17.08.2020, 10:24
1. объявляешь переменную типа E6pos, epos, e6axis,eaxis. Допустим пусть это будет переменная "point". Ты можешь работать с любой из координат данной переменной (любые математические счисления). Сделал. Далее пишешь ptp point и о чудо..., робот едет в расчетную позицию. По поводу того, что ты каждый раз проверяешь переменную: это неправильно. Для этого есть команда прерывания interrupt. Используй ее. На форуме не так давно обсуждали эту тему.
2. Как раз выше написал, что есть команда прерывания
3. Сброс скорости можно осуществить через команду $ov_pro=100 (где 100 - это скорость в процентном соотношении от заданной скорости для точки)

sheppard
17.08.2020, 11:17
великолепно!!! :)))

ну не может же робот быть алогичным :)

ныряю снова в кишки этого монстра...

sheppard
31.08.2020, 09:41
И все-таки пока возился с прерываниями подзабросил АВТО. Не пашет :((( все то же самое...

https://yadi.sk/d/qBus9dWkqUS3eA - это текущий $machine.dat

Pavel_T
03.09.2020, 10:15
Ты привел файл $machine.dat который находится в проекте по адресу:
KRC:\R1\Mada\$machine.dat (это вроде настройки осей робота и мастеринг),
а перемнные которые отвечают за настройку работы в автомате находятся в другом файле:
KRC:\STEU\Mada\$machine.dat

Какие значения должны быть по умалчанию было выше.

sheppard
04.09.2020, 11:38
Теперь точно из STEU/Mada:

https://yadi.sk/d/ocFw6h-3I0h0bA

Оба файла: machine и option

====

А ранее было указано вот это:
--
Signal $ext_start $in[1026];externer Start
Signal $move_enable $in[1025];fahrfreigabe Gesamt
Signal $rc_rdy1 $out[137];rc-betriebsbereit 1
Signal $spoc_motion_enable $out[1015]; Fahrfreigabe Durch Safety Controller
Signal $alarm_stop $out[1013];not-stop
Signal $t1 $out[993];betriebsart T1
---
Это точно все?

про вот это - ничего: SIGNAL $T2 $OUT[217] ;BETRIEBSART T2
должно стать? :
Signal $t1 $out[993];betriebsart T1

И нет ли еще строк для правки?

======

Кстати, нашел от такую приблуду - очень похоже на какой-то магнитный свитч. Может это свитч безопасности, который необходимо вешать на дверь защитной зоны? И без него ничего не фунициклирует в боевом режиме?!

Вот он:

https://yadi.sk/i/mIQEL142k2bAtQ