Ответ
 
Опции темы Поиск в этой теме
Старый 11.10.2021, 15:57   #21
Pavel_T
Гуру
 
Регистрация: 04.08.2016
Сообщения: 81
Сказал Спасибо: 0
Сказали Спасибо 29 раз(а) в 19 сообщении
По умолчанию

Я бы просто попробовал в процедуре plasma_start() после каждой строки
INTERRUPT OFF 17 добавить
MsgNotify("INTERRUPT OFF line 1434")
или INTERRUPT ON 17 добавить
MsgNotify("INTERRUPT ON line 1432")
и т.д.
Затем запустить в автомате и смотреть на пульте на главном экране последовательность
лога сообщений когда сиквенс нормальный и когда с ошибкой. А по сообщениям с номером строки
понять, как сработала логика втом и другом случае.
Pavel_T вне форума   Ответить с цитированием
cказали "Спасибо" Pavel_T за это сообщение:
Старый 12.10.2021, 09:23   #22
Роботёр
Гуру
 
Регистрация: 20.12.2017
Сообщения: 711
Сказал Спасибо: 18
Сказали Спасибо 142 раз(а) в 135 сообщении
По умолчанию

Сейчас очень важно понять, включено ли прерывание на моменте неподжига дуги плазмы. Ты говоришь, что это происходит достаточно редко и сложно отследить. Так создай искусственно данную ситуацию, подними точки поджигания дуги значительно выше, что бы ошибка выскакивала постоянно.
https://cloud.mail.ru/public/ALXQ/3si1keRaF -по ссылке мануал на KRC4. На странице 356 можно посмотреть, где находится меню индикации прерывания
Роботёр вне форума   Ответить с цитированием
cказали "Спасибо" Роботёр за это сообщение:
Старый 14.10.2021, 08:58   #23
MoHoMaX
Новичок
 
Регистрация: 02.03.2021
Сообщения: 9
Сказал Спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении
По умолчанию

доброго времени суток, уважаемые
.
возникли также проблемы с прерываниями у меня как мне кажется. прилагаю файл с началом кода программы.
итак, что имею: робот-сварочник, лазер и мини-пк. на мини-пк запущена самописная программа на с++, которая связывается с лазером и собирает от него данные, рассчитывает всё и потом передает данные роботу для корректировки координат.
на данный момент работает почти всё как нам надо, то есть имеется 6 точек сканирования лазером. робот подъезжает на первую точку, дает сигнал о том что он на месте Startscan5 (все данные обмениваются через Kukavarproxy), моя программа считывает что пришло True по этой переменной, включает лазер, делает измерения, усредняет и передает роботу данные по смещению и сигнал Next5 о том, чтобы робот ехал на следующую точку. остальные 5 точек по аналогии делаются. Startscan0 -> Next0, Startscan1 -> Next1, Startscan2 -> Next2, Startscan3 -> Next3, Startscan4 -> Next4. тем самым через Interrupt отлавливаются эти Next# и в функциях Out# на флаги вешаются также True, которые потом робот ждет. повторюсь, это всё работает безотказно уже как месяца 3, но есть но...
пришла мысль доработать программу по измерениям, а именно подвинуть первые 2 сканирования как нам надо, чтобы объект измерения вычислялся более точнее с применением смещений для вычислений уже с корректировкой. т.е. Startscan5 и Startscan0 измерялись не всегда в 1 и той же точе р15 и р16 допустим, а с корректировкой смещения, иначе порой лазер попадает не туда куда надо если заготовка немного "кривая", ну вы поняли.
ну вот собственно делема, программу на с++ допилил на ещё 2 доп измерения, также добавил ещё 2 прерывания на Startscan6 и Startscan7 и к ним также Next6 и Next7, добавил 2 флага 7 и 8, также функции на них, всё по аналогии как делал ранее для тех 6 измерений. и что я имею: запускаю программу с самого начала, робот делает корректно все 8 измерений, затем варит заготовку, программа по Loop перезапускается по приходу флагу что оператор готов с новой заготовкой, затем робот подъезжает на 1 точку (startscan7) для сканирования и висит, ожидая Flag[8].
если смотреть в меню данные по флагам во вкладке "признаки", то действительно он выключен. но если свернуть оболочку программы и посмотреть логи по Kukavarproxy, то там Next7=true и также передалась величина смещения Replace1="чему-то". и соответственно т.к. пришло на робота Next7=true, что я вижу даже в переменных, если открыть и поглядеть в меню -> ... -> отдельно, то в теории если бы прерывание сработало, то и флаг бы стал активным. и вот я не понимаю почему при 1 запуске программы она первый цикл отрабатывает без препинаний, а на 2 цикле зависает. вопрос (((
ведь когда их было 6, всё работало, стало 8 и ни работает, логики не понимаю. в мануале пишут то ли 16, то ли 32 прерывания могут быть использованы, у меня их меньше как бы.

принимаю любые предположения для решения задачки, не сказать что это проблема прям для меня, как бы сейчас всё работает, но порой заготовку робот возвращает обратно оператору чтобы тот искал изъян в сканировании, правил его и вертал обратно. но вот если сделать корректировки по сканированию начальному, то это решит небольшую проблему.

есть кстати предположение, что можно попробовать включать прерывания не все сразу, а последовательно хотя бы по паре штук по мере их вызова и потом их отключать, чтобы не мешались когда они не нужны, думаю попробовать эту теорию. но для этого придется на время оператора "изгнать" и отнять у него робота для тестирования )))

всем приятного дня.
Изображения:
Тип файла: jpg IMG_20211013_191223_001.jpg (95.0 Кбайт, 8 просмотров)
__________________
KUKA KRC4
MoHoMaX вне форума   Ответить с цитированием
Старый 15.10.2021, 08:02   #24
Pavel_T
Гуру
 
Регистрация: 04.08.2016
Сообщения: 81
Сказал Спасибо: 0
Сказали Спасибо 29 раз(а) в 19 сообщении
По умолчанию

Трудно сказать, почему пререывание не срабатывает не видя всей программы. Так навскидку, может быть корректно не проинициализированы
или наоборот вовремя не сбрасываются Next6 и Next7. Mожет быть прерывание вызывается из прерывания или не в той последовательности, как ожидалось потому что программа в роботе и PC плохо синхронизированны по обмену данными (т.е. робот выполняет еще Startscan5, а ему уже подняли Next6 или Next7) и т.д.
Pavel_T вне форума   Ответить с цитированием
Старый 22.11.2021, 17:38   #25
MoHoMaX
Новичок
 
Регистрация: 02.03.2021
Сообщения: 9
Сказал Спасибо: 3
Сказали Спасибо 0 раз(а) в 0 сообщении
По умолчанию

так и не победил много прерываний, сделал всего 1. тупо когда робот встал на точку, передается Startscan с необходимым номером программе, а затем как сделаются расчеты, то передается уже роботу Next = True и после того как он его получает выполняется функция, в которой Next = False. и так 8 раз подряд на время вычислений. пока что полет нормальный, проблемы такого рода закончились.
__________________
KUKA KRC4
MoHoMaX вне форума   Ответить с цитированием
Старый 30.11.2021, 07:51   #26
Александр ПИК
Гуру
 
Регистрация: 24.09.2020
Сообщения: 160
Сказал Спасибо: 46
Сказали Спасибо 2 раз(а) в 2 сообщении
По умолчанию

моя проблема решилась пересохранением всех точек в фигуре, где не работало прерывание. видимо что то перезаписалось и стало все ок. всем спасибо за полезные советы!!
Александр ПИК вне форума   Ответить с цитированием
Ответ
Опции темы Поиск в этой теме
Поиск в этой теме:

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

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

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


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

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