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

Создание пользовательских глобальных переменных


Vladislav-dobrynin

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

Кто подскажет, каким образом правильно создать свои глобальные переменные в sinumerik

В инструкции по расширенному программированию описан способ задания в программе

DEF NCK REAL _XX[99]

Вопрос - кто-то проверял и данный метод работает? То есть, по месту пишу данную строку и появляется переменная с глобальной областью видимости, значение которой храниться до перезапуска станка?

в GUD прописывать ее не обязательно? а если там прописать, то после перезагрузки станка ей скорее всего будет приравниваться прописанное там значение, или актуальное значение до перезагрузки?

Кто пользовался и знает как это работает?

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


UnPinned posts

Здравствуйте. Для создания глобальных переменных добавлял строку в файл UGUD.DEF (в определениях):

DEF NCK REAL var_name[30]

Эти переменные становятся доступными во всех программах, и для всех каналов. После перезагрузки станка сохраняют свои значения. Ну, и обращаемся к ним (в этом случае) по индексу от 0 до 29:

X=var_name[29]

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

Здравствуйте. Для создания глобальных переменных добавлял строку в файл UGUD.DEF (в определениях):

DEF NCK REAL var_name[30]

Эти переменные становятся доступными во всех программах, и для всех каналов. После перезагрузки станка сохраняют свои значения. Ну, и обращаемся к ним (в этом случае) по индексу от 0 до 29:

X=var_name[29]

Приветствую. По месту инициализировать если в конкретной главной программе - не работает?   

Можно ли прописать переменную используя интерфейс стойки , или только в ручную - открывать этот файл и прописывать ?

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

Изменено пользователем Vladislav-dobrynin
Ссылка на сообщение
Поделиться на других сайтах
44 минуты назад, Vladislav-dobrynin сказал:

Можно ли прописать переменную используя интерфейс стойки , или только в ручную - открывать этот файл и прописывать ?

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

 

44 минуты назад, Vladislav-dobrynin сказал:

По месту инициализировать если в конкретной главной программе - не работает?

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

DEF REAL _X

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

Здравствуйте. Для создания глобальных переменных добавлял строку в файл UGUD.DEF (в определениях):

DEF NCK REAL var_name[30]

Эти переменные становятся доступными во всех программах, и для всех каналов. После перезагрузки станка сохраняют свои значения. Ну, и обращаемся к ним (в этом случае) по индексу от 0 до 29:

X=var_name[29]

 

Возможно сможете мне еще другой момент пояснить.

Пример. Стандартный цикл CYCLE116 вызывается со списком значений _CAL[ ] - переменная является локальной в главной программе.

Вот что пишут в расширенном программировании:

 

DEF INT _MODE
DEF REAL _CAL[13]= (3,0,10,-10,0,0,-10,0,0,0,0,0,0) ;с задачей 3 точек P1: 0,10 P2: -10,0 P3: 0,-10

 

CYCLE116(_CAL[ ], _MODE) ;результат: _CAL[9]=0 _CAL[10]=0 _CAL[11]=10 _CAL[12]=0 _ALM=0

 

Каким образом происходит передача значений локальной переменной (_CAL[9]=0 _CAL[10]=0 и т.д) обратно в главную программу?

 

Если открыть CYCLE116

PROC CYCLE116 (VAR REAL _CAL[],VAR INT _MODE)

 

Получается слово VAR - (Кодовое слово для передачи параметров по ссылке) дает возможность возвратить на уровень выше рассчитанные значения переменных в подпрограмме? Я правильно понимаю? Тестирую на уровне симулятора станка в NX, данные в главную программу не возвращаются. Но на реальном станке это работает именно так?

 

 

 

 

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

И еще к Вам вопрос, по другой теме. Приходилось ли Вам сталкиваться на Sinumerik 840D с ограничением количества символов в одном кадре?

Какая максимальная длинна кадра, которую может обработать данная стойка?

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Vladislav-dobrynin сказал:

Каким образом происходит передача значений локальной переменной (_CAL[9]=0 _CAL[10]=0 и т.д) обратно в главную программу?

Не сталкивался с передачей массива значений в вызывающую программу, но, для простых переменных работает так:

 

PROC SUBPROG(real _a1, real _a2, var real _a3, var real _a4)

_a3=_a1+_a2

_a4=_a1*_a2

M17

 

Вызываем:

SUBPROG(20, 30, R10, _X)

Переменные _a1, _a2 - обычные, примут значения 20 и 30 соответственно, а рассчитанные значения _a3, _a4 попадут в R10 (50) и _X (600), _X локальная переменная, недоступная в подпрограмме.

Как работает это с массивом, не знаю, наверно так, как Вы написали.

 

51 минуту назад, Vladislav-dobrynin сказал:

Приходилось ли Вам сталкиваться на Sinumerik 840D с ограничением количества символов в одном кадре?

Количество символов в кадре, наверно, не ограничено, проверял максимальное количество цифр в номере кадра n55555555555555....., и не смог получить ошибку)

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

Вызываем:

SUBPROG(20, 30, R10, _X)

Переменные _a1, _a2 - обычные, примут значения 20 и 30 соответственно, а рассчитанные значения _a3, _a4 попадут в R10 (50) и _X (600), _X локальная переменная, недоступная в подпрограмме.

Как работает это с массивом, не знаю, наверно так, как Вы написали.

Идея понятна, спасибо. на днях проверю на массиве значений, отпишусь 

Ссылка на сообщение
Поделиться на других сайтах
1 час назад, Vladislav-dobrynin сказал:

Какая максимальная длинна кадра, которую может обработать данная стойка?

 

Максимально 512 символов.
В последнем издании информация не изменилась.
(NC programming, 07/2021, 6FC5398-2EP40-0BA2)

 

 

 

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • RokiSIA
      Судя по всему к нему подведено питания, но выход не используется, я вроде правильно понимаю?    
    • Ветерок
      Инструкция по построению модели в NX? Есть такие инструкции? Вы строите модели только по инструкциям? Без инструкции никак? Или в вашей железнодорожной корпорации всё должно строиться только по инструкциям? Тогда вам должны предоставить инструкцию. Вот только кто будет писать подобные инструкции, если эти модели ещё никто не строил - большая загадка.
    • Александр1979
      У вас был задействован импульсный выход (SKIP) на OMI ?
    • felena
      Спасибо, но это я все знаю. Конкретно по 2.106 указано про  алфавитный порядок. Мне НК утверждает что гост оговорено указывать конденсаторы и прочее в том порядке, в каком они идут по ПЭ3. А это далеко не алфавитный порядок, вернее не по русскому алфавиту. Есть про это где-то четкое указание?
    • Волшебница
      Доброго дня! Возможно ситуацию прояснят ГОСТ Р 2.106—2019 и ГОСТ Р 2.102—2023
    • Killerchik
      Небольшая путаница. Постпроцессор - это такой файл на ПК, с помощью которого CAM переводит линии траекторий на экране в текстовый файл УП. По сути, это как бы правила языка УП для конкретного станка.   Если хотите остаться в SW, используйте SW CAM :) По первой части - в целом да, редактирование поста это уже не очень просто, лучше самому не лезть без понимания. НО. Ни разу в жизни у меня не было ситуации, чтобы к простейшему токарному или 3-х осевому фрезерному станку не подошёл какой-то дефолтный пост, соответствующий стойке. В комплекте к SW CAM идёт куча стандартных постов, с вероятностью, близкой к 100%, один из них подойдёт Вам практически полностью. В общем-то для остальных CAMов так же, поищите, наверняка есть стандартный пост. Не обязательно чётко под Ваш Фанук, подойдёт почти что под любой Фанук. Если софту не обязательно быть лицензионным, то всё ещё сильнее упрощается :)   Совсем в идеале - прогонять готовую УП через какой-нибудь симулятор, типа верикута - но это уж совсем круто, для ответственных деталей.   Да, выставляете длины инструментов, ноль системы координат детали - и вперёд.
    • felena
      Всем здравствуйте. Знающие люди. Нужен совет. Есть печатная плата с элементами, я оформляю КД, поспорила с НК про спецификацию. Где есть четкое указание, как должны быть записаны электронные компоненты в спецификации в разделе прочие изделия? В каком порядке, гост? Или это регулируется на каждом предприятии по своему?
    • __GAR__
      Предлагаю услуги фрезерной обработки на станках с чпу. Работа по договору. Предпочтительно большие партии из алюминия. Быстрое рассмотрение и оценка.  Также имеется парк универсальных станков, в том числе ДИП 500.  почта для связи   td_prominstrument@mail.ru
    • Jenny
      Нашли проблему. Окащывается я деоала без обозначения компонентов. Ну т.е. в соединителях имеются системы координат подписанные Порт 1 Порт2 и т.д. Я в ручную все подсоединила. Миную кнопку обозначить. А еще чтобы он корректно воспринимал, надо тыкать на соединитель из дерева модели, а не на экране.  Элементарное....
    • Igor Lipin
      Происходила операция нарезания продольного шлица приводным инструментом (фрезой), в момент аварии шпиндель встал по ошибке, фреза по инерции продолжала фрезеровать, ну и соответственно привод С13 ушел в ошибку по превышению нагрузки. Это самый худший сюжет, в основном проходит все без ущерба В основном вот такие ошибки
×
×
  • Создать...