Перейти к публикации

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


Рекомендованные сообщения

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

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

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

 

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

 

Изменено пользователем traktorbek
Ссылка на сообщение
Поделиться на других сайтах


UnPinned posts

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

Ссылка на сообщение
Поделиться на других сайтах
16 часов назад, traktorbek сказал:

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

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
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 минут)

Ссылка на сообщение
Поделиться на других сайтах

@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 и вообще в программировании. Просто "копипаста" не решит вашу проблему.

 

Ссылка на сообщение
Поделиться на других сайтах
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 - переменное значение от программы к программе

 

Ссылка на сообщение
Поделиться на других сайтах
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 - переменное значение от программы к программе

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

Ссылка на сообщение
Поделиться на других сайтах
40 минут назад, mr_Voden сказал:

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

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

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

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

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...

Не знаю насколько удобна работа с буфером в  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

 

Ссылка на сообщение
Поделиться на других сайтах
  • 2 недели спустя...
22.08.2024 в 10:44, tmv сказал:

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

 

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

 

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

Ссылка на сообщение
Поделиться на других сайтах
  • 1 месяц спустя...
12.08.2024 в 20:07, 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

 

Можете пожалуйста поделиться вашим постом? Взамен тоже могу поделится от haasа тоже с тул листом

Ссылка на сообщение
Поделиться на других сайтах

Присоединяйтесь к обсуждению

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

Гость
Ответить в тему...

×   Вставлено в виде отформатированного текста.   Вставить в виде обычного текста

  Разрешено не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отобразить как ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставить изображения напрямую. Загрузите или вставьте изображения по ссылке.

  • Сейчас на странице   0 пользователей

    Нет пользователей, просматривающих эту страницу.



×
×
  • Создать...