Jump to content

Время работы инструмента в списке инструмента через PB_CMD_create_tool_list


traktorbek

Recommended Posts

traktorbek

Доброго дня, коллеги.

Задача стоит вывести список инструмента в шапку программы с указанием времени работы каждого инструмента. Для вывод воспользовался имеющейся в NX процедурой PB_CMD_create_tool_list. Но время работы инструмента не выводится.

В PB_CMD_init_tool_list есть переменная $tool_time, которая по логике и собирает время работы со всех операций, но не удалось её вывести, т.е. процесс не читает программу вперёд. Если вывести PB_CMD_create_tool_list, то все необходимые данные получим, и машинное время там есть. Но по ТЗ, оно должно быть в шапке...

 

Подскажите, пожалуйста, как поправить процедуру, чтобы она собрала данные о машинном времени и вывела в начале кода УП

 

Edited by traktorbek
Link to post
Share on other sites


UnPinned posts
5axisCNC

А нет случайно команды чтобы после процедуры прекратил вывод в файл и имеет ли смысл если она есть ее использовать?

Link to post
Share on other sites
mr_Voden
16 часов назад, traktorbek сказал:

Нет примера, как из хвоста программы перенести данные в начало?

Можете тут посмотреть.

1 минуту назад, 5axisCNC сказал:

А нет случайно команды чтобы после процедуры прекратил вывод в файл и имеет ли смысл если она есть ее использовать?

Такая команда есть:  MOM_close_output_file. Смысл ее использовать есть когда надо прекратить вывод в файл)

  • Нравится 1
Link to post
Share on other sites
traktorbek
31.07.2024 в 15:22, mr_Voden сказал:

Можете тут посмотреть.

 

 

По вашей методике в INIT_OUTPUT внёс

global DATA DATA_count
set DATA_count 0
set DATA($DATA_count) "mom_machine_time"
incr DATA_count

 

И разместил в самое начало Старт оф програм

 

OUTPUT разместил в самом конце

 

После инит оутпут поставил процедуру вывода времени

 

Так вот выводит время 10 секунд, т.е. берет существующее на данный момент времени значение, а не то, которое есть в конце ( более 3 минут)

Link to post
Share on other sites
mr_Voden

@traktorbek

9 минут назад, traktorbek сказал:

global DATA DATA_count
set DATA_count 0
set DATA($DATA_count) "mom_machine_time"
incr DATA_count

 

И разместил в самое начало Старт оф програм

То есть вы  внесли в массив инфу о времени которое было при старте всей программы.

9 минут назад, traktorbek сказал:

Так вот выводит время 10 секунд, т.е. берет существующее на данный момент времени значение, а не то, которое есть в конце ( более 3 минут)

А потом говорите, что это не то время которое nx рассчитывает в конце операции)

Советую разобраться в том как работает nx, постбилдер, язык tcl и вообще в программировании. Просто "копипаста" не решит вашу проблему.

 

Link to post
Share on other sites
traktorbek
1 час назад, mr_Voden сказал:

@traktorbek

То есть вы  внесли в массив инфу о времени которое было при старте всей программы.

А потом говорите, что это не то время которое nx рассчитывает в конце операции)

Советую разобраться в том как работает nx, постбилдер, язык tcl и вообще в программировании. Просто "копипаста" не решит вашу проблему.

 

 

Смутило #set DATA($DATA_count) "какая-то инфа", решил что это аргумент, с которым эта конструкция работает.

 

Понял следующее

global DATA DATA_count - объявили массив
set DATA_count 0 - обнулили счётчик

set DATA($DATA_count) "mom_machine_time" - запишет значение в строку массива, а т.к. DATA_count 0, то это запись в первую строку

incr DATA_count - прибавляет значение 1 на каждой итерации считывания этой переменной

 

Мне надо вывести последнее значение, но я не знаю его номер, чтобы обратиться к нему.

 

перед выводом в моём случае машинного времени, нужно присвоить переменной значение последней строки массива

set mom_machine_time DATA(n), а n - переменное значение от программы к программе

 

Link to post
Share on other sites
mr_Voden
6 часов назад, traktorbek сказал:

set DATA($DATA_count) "mom_machine_time"

set DATA($DATA_count) "$mom_machine_time", если точнее.

6 часов назад, traktorbek сказал:

Мне надо вывести последнее значение, но я не знаю его номер, чтобы обратиться к нему.

DATA_count-1, очевидно

6 часов назад, traktorbek сказал:

set mom_machine_time DATA(n), а n - переменное значение от программы к программе

Зачем? Наоборот же все. И получать машинное время надо в конце операции, а не в конце программы или в начале.

Link to post
Share on other sites
traktorbek
40 минут назад, mr_Voden сказал:

set DATA($DATA_count) "$mom_machine_time", если точнее.

DATA_count-1, очевидно

Зачем? Наоборот же все. И получать машинное время надо в конце операции, а не в конце программы или в начале.

РАЗВЕ? Мне нужно время всей программы, т.е. последнее значение

Link to post
Share on other sites
  • 2 weeks later...
Stanislav

Не знаю насколько удобна работа с буфером в  TCL я не стал разбираться, давно есть пример как сохранять код программы в промежуточный файл, открывать новый файл писать туда список инструмента, переписывать туда промежуточный файл, удалять промежуточный файл. Вывожу так все устраивает.  

 

 TCut=17 - время резки в минутах.

 

Переменные для использования

        #Инструмент время работы
        global mom_toolpath_time ;#Общее время работы инструмента
        global mom_toolpath_length ;#Общее пройденное растояние
        global mom_toolpath_cutting_time ;#Время резки
        global mom_toolpath_cutting_length ;#Растояние резки

 

%
O00812 (EE8.000.238_CAM)
(SISTEMA KORREKCII INSTRUMENTA -> NA RADIUS)
(Data: 12.08.2024 12:25:39)
(Machine: Vesta_3x | PostVer: 12.01.2024)
(Machine Time: 00:59 | 59 min)
(G54 - Zmin=-40.5 Zmax=26.0 Xmin=-28.0 Xmax=192.0 Ymin=-116.7 Ymax=9.7)

(========== TOOL LIST START ==========)
(T2 SVRazmetD10.0 CND10_D5-90A-1000 D=10.0 L=89.0 PA=90.0grad PL=5.0 SK40ER32L100 Out=59 TCut=1)
(T3 SVD5.0 SVD5.0_D51-0500 D=5.0 FL=52.0 L=86.0 PA=118.0grad SK40ER32L100 Out=61 TCut=1)
(T4 FRD20.0 FRD20_G7-4FS-2000-M D=20.0 FL=45.0 L=100.0 z=4 SK40ER32L100 Out=60 TCut=17)
(T6 SVD4.5 SVD4.5_D51-0450 D=4.5 FL=47.0 L=80.0 PA=118.0grad SK40ER32L100 Out=60 TCut=3)
(T7 SVD4.0 SVD4.0_D51-0400 D=4.0 FL=43.0 L=75.0 PA=118.0grad SK40ER32L100 Out=55 TCut=0)
(T8 FRD8.0 FRD8_G7-4FS-0800-M D=8.0 FL=20.0 L=60.0 z=4 SK40ER32L100 Out=30 TCut=9)
(T11 SVD2.5 SVD2.5_D51-0250 D=2.5 FL=30.0 L=57.0 PA=118.0grad SK40ER32L100 Out=42 TCut=1)
(T12 FRD3.0 FRD3_G7-3FS-0300-MX D=3.0 FL=9.0 L=50.0 z=3 SK40ER32L100 Out=20 TCut=2)
(T13 FRD2.0 FRD2_G7-3FS-0200-MX D=2.0 FL=6.0 L=50.0 z=3 SK40ER32L100 Out=20 TCut=18)
(T14 SVD2.4 SVD2.4_D51-0240 D=2.4 FL=30.0 L=57.0 PA=118.0grad SK40ER32L100 Out=42 TCut=0)
(========== TOOL LIST END ==========)

N1 G40 G64 G94 G80 G90
 
(Operation_1: U1_TOREC)
(T4 FRD20.0 FRD20_G7-4FS-2000-M D=20.0 FL=45.0 L=100.0 z=4 SK40ER32L100 Out=60 TCut=3)
N2 G00 G53 Z0.0 M05
N3 M09
N4 T04 M06
N5 G54

 

  • Нравится 1
Link to post
Share on other sites
  • 2 weeks later...
Stanislav
22.08.2024 в 10:44, tmv сказал:

В PC можно без промежуточных файлов.image.png

 

Это красиво выглядит если вы открываете это на компьютерное. На стойке особенно на фанук, с его экраном, это будет нечитаемый мусор в несколько строк перенесенного текса. На Siemens 840 с большим экраном уже нормально. 

 

Видать, разработчики этого вывода таблицы инструментов, за станком ни разу не стояли. А так все конечно красиво выглядит. 

Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • Александр1979
      У вас какой преобразователь частоты для шпинделя? Если смотреть параметр 4002 для Ai серии, то у вас энкодер шпинделя вообще не используется.  
    • Александр1979
      https://www.helmancnc.com/example-of-fanuc-g07-1-cylindrical-interpolation-program/
    • Tad
      Это не минус, а плюс. Собственный кам всегда намного дороже. А так же, как почти любое блюдо можно исправить с помощью кетчупа, любой сторонний кам легко адаптируется под конкретную машину с помощью хорошего постпроцессора.   Это вопрос к сервису, который занимался пусконаладкой.   конкретно, чего не может выполнить эта машина, а может "брендовая"?   А куда же без них? Это Китай, батенька. Поспрашиваю у коллег. Лазеры конкретно - не моё.
    • Александр 36
      CNCPARAM.DAT
    • Alexejswt
      У вас масштабный коэффициент высокий = 50. Т.е масштабирование реальных перемещений в 50 раз. Поставьте 1. 
    • Александр 36
      Шкив мотора и входной шкив КПП соотношение 1 к2(на моторе меньший диаметр) Повышенная передача входной шкив КПП 1 оборот -шпиндель 1,65 оборота Средняя передача входной шкив КПП 1 оборот-шпиндель 0,75 оборота Пониженная передача входной шкив КПП 1 оборот-шпиндель примерно 0.22-0.21 оборота
    • Ander
      Мда, есть проблемка. Не буду её замечать ))))).
    • gudstartup
      `думаю там ничего трогать  надо и так все работает только бэкап сделать
    • Maxim.Oi TF
      Добрый день. Возможна ли коррекция на радиус фрезы при помощи G41 G42 в циклах G107? Стойка fanuc Oi-Tf.?  К примеру нужно отфрезировать контур как на рисунке. Координаты точек 1 2 3 4 5 есть. Смещение на радиус от инструмента для точек 1 2 4 посчитать не трудно. А вот для точек 3 и 5 под вопросом. Как можно сделать чтобы для точек 3и5 координаты считались автоматически. Применимо ли в этой ситуации  G41 G42.? Или есть другие способы?   
    • 323f
      если нужно снимать размеры, когда "0" точка справа, а не слева - приходится два раза перетягивать линейку: сначала верхний левый угол, потом нижний правый, и диагонали ну никак тут не помогают, о угловых размерах я вообще не писал.
×
×
  • Create New...