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.



  • Сообщения

    • gudstartup
      @mortinio слишком малый объем бэкапа надо при сканировании файлов выбирать кнопку *.* scan all у вас огромная  длина инструмента указана отсюда DCM   я не нашел в вашем бэкапе таблицы инструментов и таблицы мест уберите инструмент т5 из грйфера в tnc:\plcdata исправьте длину инстр T41   зайдите в 789 зажмите разожмите шпидель и иициализируйте по смены
    • Jesse
      ну, это скорее наша придумка значить..просто у заказчика появились вопросы по типу "а к какой категории отнести ёмкость, которую вообще на сейсмику не проверяют?" Вот так и возникла 4-я категория...) ну у нас множитель перед [sigma] должен быть либо такой же как в газмясе, либо меньше. Ну т.е. более жёсткие требование. Хотя чаще их просто копируют))
    • Pauls75
      Привет, Максим!  Для тебя всё что угодно, хоть из 0.005 мм, про материал даже не спрашиваю 
    • A_1
      Станок получит список координат осей отверстий по программе HOLES2. Эта программа позиционирует инструмент к центрам отверстий, а изменённая программа L115 с помощью команд TRANS X=<текущее положение по X> Y=<текущее положение по Y> устанавливает в этих точках начало системы координат для расфрезеровки.   Если не хотите модифицировать подпрограмму L115, то можно сделать "по формулам": def int _i, _n=8; количество отверстий def real _r=125; радиус окружности def real _a=45; угол первого отверстия for _i = 1 to _n trans x=_r * cos(_a) y=_r * sin(_a) L115 _a = _a + 360 / _n endfor trans  
    • vik300001
      согласен, лучше пронест, но ситуация...  Нужно лантеком
    • aleksejkolinko
      При переносе размеров из модели в чертёж, почему-то не проставляются буквенные допуски. Пытаюсь освоить этот способ простановки размеров. У кого какой опыт и почему проставляются только числовые значения допусков?
    • Bellka
      На предыдущей стойке это была команда М6
    • Nod801
      @timyr8693 по вашей ссылке не получается скачать ... выложите в другое место ваши файлы ... посмотрим что там не так
    • Nikomas
      Из вашей формулы я не получу список координат.   Очень жаль что для TRANS нельзя использовать полярные координаты (TRANS RP=125 AP=45). Было бы в разы проще. Первое отверстие я нашел с помощью: R1 = SQRT(2) / 2 * 125 А вот второе добавить (+45град на радиусе 125мм) я без понятия как.
    • mortinio
      Получилось сделать бэкап только после того как притащил стационарный комп с Widows7 и установил последнюю версию TNCremo, с ноутбука старенького с Windows xp ни в какую не проходил пароль. https://disk.yandex.by/d/LvR8ZqTK2YnC2w
×
×
  • Create New...