вопрос по Look ahead

Общие вопросы станкостроения и организиции труда.
Аватара пользователя
_ardilla_
Новичок
Сообщения: 7
Зарегистрирован: 17 мар 2015, 05:44
Репутация: 0
Настоящее имя: Елена
Откуда: Харьков
Контактная информация:

вопрос по Look ahead

Сообщение _ardilla_ »

Доброе утро! Может кто подскажет, ищу по интернету алгоритм опережающего просмотра Look ahead контурной подачи для просмотра всей управляющей программы, второй день ничего найти не могу. Хоть кое где и встречается упоминания, что некоторые разработчики используют просмотр вперед не ограниченного набора кадров, а всей программы целиком, не нашла ни одного конкретного разработчика, ни одной статьи. Может кто знает такие конкретные реализации киньте ссылку пожалуйста
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: вопрос по Look ahead

Сообщение aftaev »

_ardilla_ писал(а):Может кто подскажет, ищу по интернету алгоритм опережающего просмотра Look ahead контурной подачи для просмотра всей управляющей программы, второй день ничего найти не могу.
а для чего вам это?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
verser
Мастер
Сообщения: 1895
Зарегистрирован: 21 июл 2013, 22:28
Репутация: 1282
Настоящее имя: Сергей
Откуда: Тбилиси
Контактная информация:

Re: вопрос по Look ahead

Сообщение verser »

Когда я экспериментировал с "печатью" паяльной маски на pcb, была необходимость заблаговременно включать диспенсер, для чего надо было просмотреть вперед g-code и рассчитать длину траектории до нужной точки. Делал на pyton и подключал в .hal
Такой функцией парсил g-code из mask.ngc

Код: Выделить всё

    self.stat = linuxcnc.stat()
    self.coords = []
	
    def parse_ngc_file(self) :
        self.stat.poll()
        f = open("mask.ngc","r")
        f_lines = f.readlines()
        for line in f_lines :
            coords = [str(s) for s in line.split()]
            self.coords.append(coords)
А вот так делал анализ длины

Код: Выделить всё

    def all_other_segments_length(self, line_num) : # distance from now  to Z lift-up point (self.dtg_curr+ all next segment lengths)
#            print "line_num:", line_num, self.coords[line_num-1], self.dtg_curr,self.dtg_prev
            position = self.stat.actual_position
            offset = self.stat.g5x_offset
            self.x0 = position[0]-offset[0]
            self.y0 = position[1]-offset[1]
#            self.z0 = position[2]-offset[2] #actual positions
            if self.coords[line_num-1][0] == "G0" :
		return 0
            
	    dist=float( self.stat.distance_to_go ) # include current segment length
            for parsed_coord in self.coords[line_num-1] : # Positions in G1 command
                    if parsed_coord[0:1] == "X" :
                        self.x0=float(parsed_coord[1:])
                        continue
                    if parsed_coord[0:1] == "Y" :
                        self.y0=float(parsed_coord[1:])
                        continue
#                    if parsed_coord[0:1] == "Z" :
#                        self.z0=float(parsed_coord[1:])
#                        continue
            xi = self.x0
            yi = self.y0
	    print "x0 y0 :", xi,yi
#            zi = self.z0
            i=1
            while self.coords[line_num-1+i][0] not in ( "G0", "M02", "%") : # iteration for all next points  and dist calculation
                    if self.coords[line_num-1+i][0]  not in ( "M64", "M65","G4") : 
                            for parsed_coord in self.coords[line_num-1+i] :
                                    if parsed_coord[0:1] == "X" :
                                        xi=float(parsed_coord[1:])
                                        continue
                                    if parsed_coord[0:1] == "Y" :
                                        yi=float(parsed_coord[1:])
                                        continue
#                                    if parsed_coord[0:1] == "Z" :
#                                        zi=float(parsed_coord[1:])
#                                        continue 
                            dist=dist+math.sqrt((xi-self.x0)**2 + (yi-self.y0)**2) # + (zi-self.z0)**2) # dist calculation
	    	    print "xi yi :", xi,yi
                    self.x0=xi
                    self.y0=yi
#                    self.z0=zi
                    i=i+1                
            return dist
Идея не дошлифована, поскольку появилась нереально дешевая возможность заказывать pcb мелкими тиражами,
но вдруг окажется полезной :)
Вот целиком мои потуги, правда, под gmoccapy(есть небольшие отличия, чем для от axis) и сырые, не пиняйте:
mask.rar
(4.59 КБ) 348 скачиваний
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11639
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4644
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: вопрос по Look ahead

Сообщение michael-yurov »

Нужен сам алгоритм, или система чпу, способная просматривать весь код УП?

А если УП будет на 27 ГБ - ее тоже всю просматривать?

В принципе, нет никаких проблем установить просмотр на большое количество строк УП. Проблема будет только с запуском больших УП при такой настройке.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5182
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: вопрос по Look ahead

Сообщение Serg »

_ardilla_ писал(а):Может кто знает такие конкретные реализации киньте ссылку пожалуйста
Там всё просто: читаете G-код и рассчитываете нужные вам параметры (например скорость и вектор) и складываете в табличку, длина таблицы = глубина просмотра.
При выполнении кода при необходимости заглядываете в табличку на желаемое количество кадров.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
_ardilla_
Новичок
Сообщения: 7
Зарегистрирован: 17 мар 2015, 05:44
Репутация: 0
Настоящее имя: Елена
Откуда: Харьков
Контактная информация:

Re: вопрос по Look ahead

Сообщение _ardilla_ »

спасибо огромное за ответы и примеры! Объясню зачем мне это надо, я пишу обзорную статью на тему предварительного просмотра управляющей программы Look ahead. Конечно, никто из разработчиков свои алгоритмы раскрывать не будет, это один из наиболее закрытых алгоритмов в системах ЧПУ. В основном вкратце пишут, что в системе есть такая функциональность и производительность становится лучше.
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: вопрос по Look ahead

Сообщение aftaev »

_ardilla_ писал(а):я пишу обзорную статью на тему предварительного просмотра управляющей программы Look ahead.
А для кого или чего статья пишется?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
_ardilla_
Новичок
Сообщения: 7
Зарегистрирован: 17 мар 2015, 05:44
Репутация: 0
Настоящее имя: Елена
Откуда: Харьков
Контактная информация:

Re: вопрос по Look ahead

Сообщение _ardilla_ »

aftaev, аспирантура
Аватара пользователя
ukr-sasha
Мастер
Сообщения: 3401
Зарегистрирован: 21 мар 2011, 07:47
Репутация: 2180
Настоящее имя: Украинец Александр Григорьевич
Откуда: Киев, Украина
Контактная информация:

Re: вопрос по Look ahead

Сообщение ukr-sasha »

Тут еще инемного информации, от производителя контроллера: http://dynomotion.com/Help/KMotionCNC/T ... reenTP.htm
SVP
Мастер
Сообщения: 6135
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: вопрос по Look ahead

Сообщение SVP »

_ardilla_ писал(а): это один из наиболее закрытых алгоритмов в системах ЧПУ.
Честно говоря слабо себе представляю какая тут вообще может быть закрытость и вариативность.
Ноу-хау могут и будут в области "что делать в углах" "как обрабатывать круги" итп, но сам
предпросмотр он предпросмотр и есть.
Можете ли привести пример двух разных алгоритмов предпросмотра ?
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: вопрос по Look ahead

Сообщение Сергей Саныч »

SVP писал(а):Честно говоря слабо себе представляю какая тут вообще может быть закрытость и вариативность.
Да сколько угодно. Не в самом предпросмотре, а в алгоритме действий по его результатам, то есть в планировании траектории с учетом допустимых отклонений, скоростей, ускорений и т.п.
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5182
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: вопрос по Look ahead

Сообщение Serg »

Сергей Саныч писал(а):а в алгоритме действий по его результатам
Это уже не алгоритм предпросмотра, алгоритм действий по его результатам. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
_ardilla_
Новичок
Сообщения: 7
Зарегистрирован: 17 мар 2015, 05:44
Репутация: 0
Настоящее имя: Елена
Откуда: Харьков
Контактная информация:

Re: вопрос по Look ahead

Сообщение _ardilla_ »

Аватара пользователя
_ardilla_
Новичок
Сообщения: 7
Зарегистрирован: 17 мар 2015, 05:44
Репутация: 0
Настоящее имя: Елена
Откуда: Харьков
Контактная информация:

Re: вопрос по Look ahead

Сообщение _ardilla_ »

в этой статье пишут, что некоторые системы могут просматривать всю управляющую программу http://woodstanki.ru/info/lookahead/
SVP
Мастер
Сообщения: 6135
Зарегистрирован: 19 дек 2012, 15:49
Репутация: 884
Откуда: Москва
Контактная информация:

Re: вопрос по Look ahead

Сообщение SVP »

Какая-то чудовищная статья... с таким не защититься.
Аватара пользователя
_ardilla_
Новичок
Сообщения: 7
Зарегистрирован: 17 мар 2015, 05:44
Репутация: 0
Настоящее имя: Елена
Откуда: Харьков
Контактная информация:

Re: вопрос по Look ahead

Сообщение _ardilla_ »

svp, это не моя статья, это в интернете нашла
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6192
Откуда: Казахстан.
Контактная информация:

Re: вопрос по Look ahead

Сообщение aftaev »

_ardilla_ писал(а):aftaev, аспирантура
как называется будущая профессия?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
NightV
Почётный участник
Почётный участник
Сообщения: 6599
Зарегистрирован: 30 дек 2011, 09:14
Репутация: 2279
Настоящее имя: Владимир Айрапетян
Откуда: Israel
Контактная информация:

Re: вопрос по Look ahead

Сообщение NightV »

О, вот так порядок! теперь и _ardilla_ порозовела :)
Всё просто! если знаешь КАК!
Аватара пользователя
Predator
Мастер
Сообщения: 9583
Зарегистрирован: 18 июл 2013, 18:26
Репутация: 2531
Контактная информация:

Re: вопрос по Look ahead

Сообщение Predator »

NightV писал(а):О, вот так порядок! теперь и _ardilla_ порозовела :)
Тут ведь вот в чём нюанс - главное, чтобы ты не порозовел снова! :hehehe:
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11639
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4644
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

Re: вопрос по Look ahead

Сообщение michael-yurov »

_ardilla_ писал(а):в этой статье пишут, что некоторые системы могут просматривать всю управляющую программу http://woodstanki.ru/info/lookahead/
Тут небольшая путаница слов получилась.
В статье сказано, что есть системы, которые не имеют ограничения на количество просматриваемых кадров. Это не значит, что они просматривают всю программу. Это значит, что они могут просмотреть любое необходимое количество кадров (если это потребуется).
В некоторых случаях, если в этом есть необходимость, может получиться так, что система просмотрит всю программу управления до конца.
Но не значит, что существуют системы, которые всегда будут просматривать всю программу.
Ответить

Вернуться в «Общие вопросы»