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

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


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 пользователей

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




  • Сообщения

    • maxx2000
      Я скорее согласен с Надеждой Януарьевной
    • Koels
      Мотора 54 градуса, что на 6 градусов больше соседнего станка, вентеляторы в норме да. Ещё хочу сравнить нагрузку координаты с соседним станком, но пока не дают. У этих двух станков проблемы с охлаждением, на соседнем стоит автомобильный радиатор для охлаждения масла. xD
    • Ninja
    • Ninja
      В зимнее время водители устанавливают на колёса специальные цепи против скольжения. В мире разработано множество видов цепей и способов их установки. Японцы применяют "цепи Абэ". Кто этот великий инженер? Это знаменитый японский писатель Кобо Абэ. Для уединенного писательского труда Абэ купил домик в горах. А в горах зима ранняя, снежная, затяжная. Без цепей на колёсах можно и улететь с обрыва. Абэ периодически заводил машину и спускался в долину. Почту получить/отправить, в магазине продукты купить, ящик рисовой водки. (Известное дело: насухую великую книгу не напишешь). В долине приходилось цепи снимать. По правилам цепи запрещается применять при отсутствии на дороге снежного покрова. В те времена для установки/снятия цепи требовалось домкратом поднимать каждое колесо. В машине 4 колеса. Товарищу Абэ приходилось корячиться с домкратом. При этом в самых нелитературных выражениях комментируя политику правящей партии и все домкраты в мире. Купил в магазине бухлишко-закусь. Поехал домой в горы. А там снег, скользко. Цепи требуются. Опять писатель и драматург Абэ домкрат крутит. Всё это насмерть надоело Абэ. Обратился к компаниям-производителям: придумайте способ установки цепей без домкрата! Но производители ничего не придумали. Или не захотели. Тогда Абэ сам придумал способ установки цепей без необходимости поднимать колесо. Послал изобретение на конкурс. И неожиданно получил призовое место и патент. Новый способ установки цепей быстро завоевал популярность. Так и пошло у японцев - "цепи Абэ". Кобо Абэ не получил Нобелевскую премию по литературе. Уже выдвигался, уже все были уверены в том, что он её получит. Но не успели, писатель умер. А это всё дурацкие цепи виноваты. Сколько времени он потерял в установке/снятии цепей? Сколько времени, вместо того чтобы писать, он крутил домкрат? Вот и не успел. https://ru.ruwiki.ru/wiki/Абэ,_Кобо
    • gudstartup
      приемлимо. температуру мотора посмотрите. если вентилятор нормально вращается и его скорость соответствует оригинальному а также контакт в разъеме нормальный а F все равно появляется то даже не знаю что у вас может быть так как привод у вас новый
    • Koels
      Хмм, я думал раз она вылазит даже в простое, то Z координата висит на тормозе и дело не в этом. Спасибо за мысль, щас узнаю. Вообще у нас рядом стоит точно такая же макина, точь в точь и там таким проблем нет. Много заказов и отсутствие специалистов сделало свое дело. :) @gudstartup, 58% нагрузка на координату
    • mrVladimir
      Что-то я немного засомневался. Если решим брать новое ЧПУ, то искать точно такое же необходимо по номеру сзади корпуса (пластикового пластмассового) - так? А если брать только плату (материнскую или как ее лучше назвать...), на которой установлена (запаена) микросхема 1 на моих фото выше, то искать плату необходимо по номеру, который указан на самой плате - так? В моем случае : ЧПУ : A02B-0321-B520. Код на плате : A20B-8201-0081/01A. Если, допустим, мы покупаем ЧПУ A02B-0321-B520 - будет ли это гарантией того, что в нем установлена плата A20B-8201-0081/01A. И можно ли будет его считать таким же. И с отдельно приобретаемой платой тоже самое - если номер на ней полностью совпадает с нашим, значит ли это, что она полностью идентична. P.S. : извиняюсь за , возможно, навязчивые вопросы. Просто не хотелось бы попасть впросак из-за своей некомпетентности. такой файл есть, но мне говорили, что после снятия архивов, его лучше вообще никогда нигде ни использовать. А на каком этапе он нам может понадобиться?. Если, как говорил Виктор, мы зальем архив SRAM на старый модуль (ROM-SRAM), установленный в новое ЧПУ, то и файл OPRMINF не нужен. Правильно же?
    • Slavdos
      Доброе. делюсь 1 внедренным китайцем. купили у ЛЛС MARVEL PRO 6000-3015.HGT , 2 шт , с автоматизацией. станки неплохие, интерфейс русские, достаточно дружелюбен. за автоматизацию зря переплатили, китай похоже в этом сильно уступает европе. из неожиданностей- резка воздухом дает неудаляемый грат, по сути необходимы зачистные станки.
    • Killerchik
      Я 4 комфорки на скоростной шпиндель поставил, в этом же качестве)))))
    • gudstartup
      я предлагал операторам чай кипятить чем больше и интенсивнее работают тем чаще чайку попить можно нельзя же чтобы тормозной кипятильник перегрелся
×
×
  • Создать...