Jump to content
Sign in to follow this  
DJ Astro

Параметры инструмента в 840D

Recommended Posts

DJ Astro

В программе используется параметр $TC_DP3[$P_TOOLNO,1]. 

В Tool Table загружены инструменты с произвольными номерами. Макрос AutosetToolManLength840DVars сохраняет все длины инструментов в параметры $TC_DP3[N,1], при этом N принимает значения порядкового номера инструментов в таблице (от 1 до общего количества инструментов в таблице). А нужно, чтобы N принимала значения фактических номеров инструментов в таблице. Т.е. если в таблице есть только 3 инструмента с номерами 15, 27, 31, то на выходе нужно получить только три параметра

$TC_DP3[15,1],

$TC_DP3[27,1],

$TC_DP3[31,1],

вместо 

$TC_DP3[1,1],

$TC_DP3[2,1],

$TC_DP3[3,1].

 

Как это можно реализовать?

Можно, конечно, вставить инструменты-пустышки, чтобы инструменты с нужными номерами стояли на правильных местах, но это не выход.

Share this post


Link to post
Share on other sites


grOOmi
8 часов назад, DJ Astro сказал:

В Tool Table загружены инструменты с произвольными номерами.

Так может нужен номер в магазине?

Share this post


Link to post
Share on other sites
s_liam

$P_TOOLNO разве определяется не как идентификатор инструмента текущий?

В стойке sin840d.ctl по крайней мере так.

Если у меня в УП

T11

или

T="11"

то он видит параметр $P_TOOLNO равный номеру этого инструмента.

На всякий случай попробуйте прописать в настройках стойки так, как на картинке.

Ну или проект кидайте - будет время, погляжу.



2019-03-04_121807.PNG

Edited by s_liam

Share this post


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

$P_TOOLNO разве определяется не как идентификатор инструмента текущий?

В стойке sin840d.ctl по крайней мере так.

Если у меня в УП

T11

или

T="11"

то он видит параметр $P_TOOLNO равный номеру этого инструмента.

На всякий случай попробуйте прописать в настройках стойки так, как на картинке.

Ну или проект кидайте - будет время, погляжу.

 

Да, всё правильно, $P_TOOLNO работает и определяется как ID текущего инструмента. Но загрузив, например, в таблицу единственный инструмент с номером "15", я ожидаю получить значение его длины в параметре $TC_DP3[15,1] (как это происходит в реальном станке), но Vericut это значение сохранит в $TC_DP3[1,1], а $TC_DP3[15,1]=0.

Если у вас будет возможность, попробуйте на стандартной 840й стойке из библиотеки vericut'a.

 

В хэлпе про макрос есть такая инфа

-2--1.thumb.jpg.51e162c4d096a268e10d5a0156037b9c.jpg

 

у меня и Tool Chain'a нету и все методы смены инструмента перепробовал в "Tool Change By..." - всё равно эти переменные нумеруются подряд не зависимо от номера инструмента.

Share this post


Link to post
Share on other sites
s_liam

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

Сделать так у меня уже не получится, у нас версия 8.2.1

 

В версии 7.4.2 появился макро, который отвечает за автоматическую расстановку оффсетов.

 

AutosetToolManOnOff

Function — VARIABLES

Status — ACTIVE

Comment — Added V7.4.2

Inputs 

Text: Not used

Value: 0 = Off, 1 = ON

 

This macro enables (ON) and disables (OFF) the AutosetToolMan macros.

 

Currently we are seeing a performance hit during load time associated with the AutosetToolMan macros.  Until the performance issue can be address, this macro can be used to disable these macros if the variables are not being used.  It should be called during the Reset event.  When performance improves, this macro will be OBSOLETE.

Может подобный есть макро в версии 7.1.3?Если его создать и присвоить значение равное единице, то в переменные $TC_DP значения будут занесены автоматически из активного инструмента. И тогда все будет работать.

В сочетании с AutosetToolManLength840DVars и значением: $TC_DP3 Z про который Вы писали это проставит значения в таблицу нужным образом (см картинку).

 

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

2019-03-06_092907.PNG

  • Нравится 1

Share this post


Link to post
Share on other sites
DJ Astro
4 часа назад, s_liam сказал:

вы используете версию 7.1.3.

Нет, это из хэлпа от 7.4.1.

 

Проблема в том, что в 7.4.1 нет связи между номером инструмента (ID) и номером строки (Index) в которой он находится в ToolManager'e.

В 8.2.1 это уже работает: в SetDynamicVars вместе с параметром CurTool теперь есть CurToolIndex.

 

***************

CurToolIndex # — The current tool index will be set in the specified variable. The tool index is defined as the nth tool within toolman. If the current tool is the 5th tool listed within toolman, the specified variable will be set to 5.

Example:

Override Text value = CurToolIndex $P_TOOLNO

 

CurTool # — The current tool number will be set in the specified variable. The tool number will be as defined before any tool indirection, such as can occur when a Tool List is in use.

***************

 

И я не смог в 8.2.1 добиться такого же результата, как на вашем примере. Вызываю 18-й инструмент, который стоит в 6-й строке таблицы инструментов.

AutosetToolManOnOff уже был прописан в 840й стойке, которая идёт с этой версией вериката, но почему-то в ветке Start of Processing. Хотя в мануале пишут, что должно быть в Reset. Добавил и туда - не помогло. 

 

 

2221.jpg

Share this post


Link to post
Share on other sites
s_liam

Кидайте проект. Можете в личку ссылку прислать на скачивание. Сделаю, думаю что. Только что прикрутил измеряшку для цикла CYCLE974 токарного станка, которого пока еще нет в стандартном пакете VERICUT, попа пляшет =)

Share this post


Link to post
Share on other sites
DJ Astro
В 07.03.2019 в 09:17, s_liam сказал:

Кидайте проект. Можете в личку ссылку прислать на скачивание. Сделаю, думаю что.

Отправил в ЛС.

Share this post


Link to post
Share on other sites
s_liam

Поглядел проект, повозился с ним. Потом в свои поглядел - действительно расставляет просто по порядку. В описании макро написано, что если не создано механизма смены или не используется специальная смена инструмента. Макро может быть и как в Reset и как в Начале процесса. Суть не в этом. Почему-то вот таким образом у него это работает. Можно, конечно, попробовать в поддержке спросить, почему так...

Автоматически, получается, в данный момент это дело не расставить.

Тогда зайдем с другого бока. Насколько это нужно и для чего? Ну в том смысле, понятное дело, если бы это работало - было бы замечательно это использовать.

Но раз так не получается, придется пока что придумать альтернативное решение. А это уже будет зависеть от того, что нужно в итоге иметь.

Хотя, может и верное описание макро.

Сейчас еще поглядел.

Переменная системная CurToolindex равняется порядковому номеру в библиотеке инструмента.

Надо подумать, как сделать так, чтобы все было как нужно.

Edited by s_liam

Share this post


Link to post
Share on other sites
s_liam

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

Edited by s_liam

Share this post


Link to post
Share on other sites
s_liam

Я предлагаю Вам следующее решение.

В файл подпрограмм станка dixi_dhp80.spf в самый конец добавляете следующее:

 

PROC D_SPEC
$TC_DP3[CurrentToolNum,$P_TOOL] = $P_TOOLL[1]
RET

 

В стойку в регистр D добавляете вызов подпрограммы D_SPEC (смотри картинку).

После вызова активного корректора произойдет вызов подпрограммы, в которой параметр $TC_DP3 с индексом активного номера инструмента и номером активного корректора станет равным длине этого инструмента.

 

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



2019-03-11_153436.PNG

Edited by s_liam
  • Нравится 1

Share this post


Link to post
Share on other sites
DJ Astro
2 часа назад, s_liam сказал:

$TC_DP3[CurrentToolNum,$P_TOOL] = $P_TOOLL[1]

Я уже думал о таком, но Vericut ругается на попытку переопределения таким образом этих сименсовских параметров среди макросов в G-code processing. ("Error: Invalid array index for variable $TC_DP3").

А, вот, запихнуть это в spf стойки, как процедуру, я не сообразил. Теперь буду знать, что так тоже можно.

 

Да, конечно же, этот вариант работает.

@s_liam, Спасибо!! :clapping:

 

Share this post


Link to post
Share on other sites
s_liam

Да, тут вся сложность в том, что переменная имеет два адреса. И нужно каким-то образом их предопределить. Самый простой - взять активный ID адрес инструмента и корректора. Я сначала хотел предопределить это сразу в подпрограмме L300 после M106 - внутренней команды смены инструмента, но здесь еще неактивен корректор D. Поэтому пришлось это перенести в D регистр, после того, как определится номер активного корректора и инструмента, а вместе с этим и текущие значения соответствующих переменных.

  • Нравится 1

Share this post


Link to post
Share on other sites
DJ Astro

Нашёл ещё более простое решение - в разделе Substitute просто заменил $TC_DP3[$P_TOOLNO,1] на $P_TOOLL[3], и всё.:biggrin:

Share this post


Link to post
Share on other sites
s_liam

Ну, это если у Вас корректор D всегда равен единице - так тоже пойдет =)

Share this post


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.

Sign in to follow this  
  • Recently Browsing   0 members

    No registered users viewing this page.



  • Сообщения

    • РоманВ
      @Александр10 берешь мышкой, вытаскиваешь в чисто поле и закрываешь. Или Настройки и ищешь там эту включенную панель, выключаешь соответственно. @don108 , ну хорош уже, а)
    • Чингачгук
      етитская сила, это ж надо - вирус со спутника разглядеть...  
    • don108
      @Александр10  маленькая просьба к вам ... убирайте скриншоты под спойлер ... это не трудно
    • Елена
      https://ria.ru/20200408/1569762232.html?utm_source=yxnews&utm_medium=desktop&utm_referrer=https%3A%2F%2Fyandex.ru%2Fnews Разведка знала, а китайцы объявили лишь 31 декабря.
    • раздватри
      Извиняюсь, не туда вложил или заложил-наложил, но однозначно Вам адресовано.
    • KorovnikovAV
      Пора переименовать тему "поиск работы после 50 дней самоизоляции"
    • раздватри
      У Вас не должно возникать проблем. Если хотите исследовать свой винт только как жидкую область, тогда ничего хорошего не получите, кроме мультфильма. Необходимо иметь твердую часть тела и границу его с жидкой частью. Т.е. тело должно быть заполненным расчетной сеткой на всю свою пустоту жидкого тела, полученного вычитанием. Только так Вы сможете организовать и прочностной расчет, и деформацию винта, создать муфту, а с ней и все задаваемые и снимаемые величины.  Вот пример жидкостного тела: тело раскручивается с нуля и до теоретического предела с учетом своей массы и момента инерции, угла атаки лопастей. Чтобы снимать нагрузку на ось, задать сопротивление и т.д. необходима твердая часть, о чем уже сказал.  Изучите уроки в 13 и 14 версии Star-ccm+  Не бойтесь overset сеток и используйте их по полной. Только так Вы получите естественное творение, мастерски соединяя 6 dof тела, c свойствами DFBI,  между собой или связывая их муфтами. Вопросы только в личку и по известному алгоритму. На старте, только начало процесса расчета.  
    • andrey2147
      То-то  я заметил что эмульсия подозрительно прозрачная. Ну готовьтесь к скорому повторному вызову. Энкодер сфоткали для покупки ? С проушинами - ими регулилуется точное положение,для синхронизации положения ротора и энкодера.(до сотых градуса ) Ваши постоянные клиенты будут.
    • R2D2_
      @Евдоким Жаркий , а отверстия в детали точно симметрично?
    • ak80
      Есть тут спецы по программированию на стойках Фагор? Конкретнее, нужна помощь по циклам g81 g63 g79. нужно просверлить 24 двойных отверстия по окружности
×
×
  • Create New...