Jump to content

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


Vladislav-dobrynin

Recommended Posts

Vladislav-dobrynin

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

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

DEF NCK REAL _XX[99]

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

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

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

Edited by Vladislav-dobrynin
Link to post
Share on other sites


UnPinned posts

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

DEF NCK REAL var_name[30]

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

X=var_name[29]

Edited by A_1
Link to post
Share on other sites
Vladislav-dobrynin
9 часов назад, A_1 сказал:

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

DEF NCK REAL var_name[30]

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

X=var_name[29]

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

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

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

Edited by Vladislav-dobrynin
Link to post
Share on other sites
44 минуты назад, Vladislav-dobrynin сказал:

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

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

 

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

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

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

DEF REAL _X

Edited by A_1
  • Нравится 1
Link to post
Share on other sites
Vladislav-dobrynin
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, данные в главную программу не возвращаются. Но на реальном станке это работает именно так?

 

 

 

 

Link to post
Share on other sites
Vladislav-dobrynin

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

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

Link to post
Share on other sites
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....., и не смог получить ошибку)

Edited by A_1
  • Нравится 1
Link to post
Share on other sites
Vladislav-dobrynin
33 минуты назад, A_1 сказал:

Вызываем:

SUBPROG(20, 30, R10, _X)

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

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

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

Link to post
Share on other sites
1 час назад, Vladislav-dobrynin сказал:

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

 

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

 

 

 

  • Нравится 1
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.



  • Сообщения

    • Simlion
      Подскажите как вставить за раз в сборку несколько одинаковых компонентов, а то приходится сначала вставить один компонент, затем в дереве построения сделать ctrl+C этого компонента и уже в графическом поле сделать ctrl+v. Явно же есть простой способ вставки. Подскажите знающие люди. Заранее спасибо.
    • karachun
      В этом плане нестационарные расчеты в CFX раз и навсегда приучают к тому что надо сперва заказывать вывод нужных результатов а потом считать. Иногда приходят люди на cfd-online, в раздел по CFX и спрашивают: - Я считал нестационарную задачу трое суток и теперь нестационарных результатов не чувствую. Где они находятся? А местный модератор ghorrocks на это и отвечает: - Бубба, у тебя их нет.
    • Simlion
      В общем несколько дней назад перешел на Solidworks 2021 и всё бы хорошо, но вот после установки дополнения КБ2.0 стало происходить следующее: при создании новой сборки как обычно открывается новое графическое поле и сразу всплывает окно проводника, как если бы я пытался вставить в сборку деталь. До установки КБ2.0 при создании новой сборки ни каких окон не всплывало. Как отключить это?
    • Simlion
      Несколько дней назад на рабочем месте установили Solidworks2021 и тоже в сборках возникла проблема с прозрачностью рандомно у моделей в основном импортированных. Решилась на данный момент проблема отключением отображения исправленных моделей в разделе вид. 
    • BSV1
      Вот так уж точно в одно тело     
    • gudstartup
      И еще один минус  при работе с бумажными схемами кроме долгого поиска это еще и то  что необходимо потом все отсортировать и разложить как оно и было до начала раскопок!  
    • gudstartup
      Хотя бы один на бригаду можно у руководства выцыганить но  желательно с хорошей батареей...
    • BSV1
    • gudstartup
      Скорость поиска в бумажной и электронной документации невозможно сравнивать! Хорошо если схема организована со сквозной нумерацией обозначение элемента схемы = страница . столбец эл. схемы = метка элемента в оборудовании тогда все ищется быстро даже на бумаге, а вот у китайские и тайваньские товарищи этого стандарта не придерживаются на лицо очень большая сегментация и не рациональное обозначение частые ошибки в описании элемента и использование сокращений приводящих к трудностям перевода и это не европейские языки правда сейчас стало гораздо легче но это пока гугл работает! Генераторы например летят, реже серво но а что касается периферии то тут уже траблы случаются гораздо чаще! Работой они нас не обделяют. Да конечно большинство неисправностей случаются в следствии перепадов напряжения а UPS и входные стабилизаторы уже не первой свежести и никто их не хочет обновлять так как оборудование работает как говорится на износ и до полного морального устаревания.
    • rasta89
      Спасибо, погружусь. Почему-то возникло желание солид тоже как-то более-менее знать, вот и поюзываю понемногу.
×
×
  • Create New...