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

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


traktorbek

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

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

Задача стоит вывести список инструмента в шапку программы с указанием времени работы каждого инструмента. Для вывод воспользовался имеющейся в 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, очевидно

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

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

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

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

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

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

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

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

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

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

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

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

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

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