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

Вопрос по R-переменным


dreadnought-san

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

Почему 2? Я раньше представлял, что каналы - это и несколько станков от одного ЧПУ, было раньше такое веяние, а пока что так: один канал на Simulation,  другой для сервисных отладок, третий рабочий. А вообще без внятных немецких инструкций (где вы их видели, всё скрывают под одеялом) хрен поймёшь. Спецы есть, но они хлебом делиться не будут. Да и процессор слабоват, не тянет он одновременной работы 2х каналов. Если сильно надо, напишите программу копирования через R900-R999, они общие и запустите её в фоновом режиме. Наверное, если посидеть со словарём, то можно разобраться с инструкциями по кодам @, через них можно считывать значения ячеек памяти, регистров или что там ещё есть, только не забывать про дружественность этих инструкций. Бред, прошлый век.

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


Понятно. У меня было 2 паллеты (стола). Ну и что? Каналов всё равно 3 в старых версиях.

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

Господа. В продолжение темы.

Проясните мне - а есть команда удаления переменных? Ну например с номера R1 по R10. Ну на крайний случай всех R-переменных.

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

Господа. В продолжение темы.

Проясните мне - а есть команда удаления переменных? Ну например с номера R1 по R10. Ну на крайний случай всех R-переменных.

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

 
 
%_N_RPARCLEAR_SPF                ; - кадр для вызова подпрограммы на станке                        
STOPRE                                         ; - обновление переменных
R0=1                                               ; - приравниваем единице первый параметр
LN1:                                                ; - марка для возврата   
R[R0]=0                                           ; - записываем любое значение в R[n]. Можно просто обнулить.
R0=R0+1
IF R0<=999 GOTOB LN1                ; - здесь вместо 999 пишем последнее желаемое для обнуление R переменной (если надо обнулить с R1 до R100, то пишем R0<101)    
STOPRE                                          ; - обновление переменных
RET
Изменено пользователем s_liam
Ссылка на сообщение
Поделиться на других сайтах
  • 2 года спустя...

Здравствуйте, уважаемые!
Стойка 840D sl. В MDA строка: R97=1 (к примеру) меняет значение R97 в таблице R-параметров, а такая же строка в программе обработки (режим Auto) - нет. В таблице остаётся ноль. Подсткажите, пожалуйста, в чём может быть дело?
Спасибо!

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

Уважаемый @ATambovtsev !

В режиме MDA введите тест R97=123. Нажмите кнопку RESET, далее ПУСК ЧПУ.

В области ПАРАМЕТРЫ/R-параметры будет 123 для R97. 

Если значение R-параметра не изменится измените номер или повысьте уровень доступа.

Но честным тест для MDA или AUTO должен иметь вид

Rn=число

M30 иди M02

 

 

Ссылка на сообщение
Поделиться на других сайтах
Давид, спасибо! Немного продвинулся. Параметр пишется и в auto. Но. Мне надо в начале программы присваивать параметру, условно, 1, а ближе к концу сбрасывать этот же параметр обратно в 0. Если присваивание в программе одно, то оно срабатывает. А если 2 и больше, то параметр сразу принимает то значение, которое присваивается последним. Даже если станок до этого кадра еще не дошел 0_0.
Программа :
.
.
. R10=1
.
.
.R10=0
.
.
Положит в R10 ноль. Как я понял, сразу, со старта программы 0_0. Как сделать так, чтобы с определённого места программы в R-параметре было одно значение, а потом, с определённого места, стало другое? Пробовал использовать подпрограммы для присвоения - не помогает, всё равно параметр сразу принимает последнее присвоенное значение.. 
Ссылка на сообщение
Поделиться на других сайтах
10 минут назад, ATambovtsev сказал:

Как сделать так, чтобы с определённого места программы в R-параметре было одно значение, а потом, с определённого места, стало другое?

Перед вторым присвоении напишите строчку Stopre.

В Вашем случае 0 в R10 просто отображается заранее, так как программа читается на несколько кадров вперед. Несмотря на это, она будет работать правильно, т.е. до кадра с присвоением R10=0, программа будет работать еще с единицей присвоенной в R10 ранее.

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

Уважаемый @ATambovtsev !

Как вариант согласен с @A_1 .

Для тестирования можно сделать

.........

R10=1

..........

R9=R10

R10=0

..........

Для контроля (тестирования) в R9  будет запомнено первое значение R10.

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

Спасибо, stopre отлично сработал! В качестве постскриптум.. Значение R-параметра я считываю из контроллера. И без использования stopre, в ситуации, что я описал выше, контроллер всегда видел там ноль. А со stopre всё в порядке.

Изменено пользователем ATambovtsev
Ссылка на сообщение
Поделиться на других сайтах
  • 9 месяцев спустя...

Немного информации по R-параметрам...

1. Глобальная переменная типа REAL;

2. Хранится в статической памяти SRAM, значения этой массив-переменной сохраняются после NC-Reset, NC-PowerOff/NC-PowerOn

3. Максимально допустимый размер массив-переменной на канал - 32535. Стандартный размер - 100. Параметрируются в MD28050 $MN_MM_NUM_R_PARAM. При изменении данного параметра значения в R-переменных обнуляются.

4. Есть параметр MD28262 $MC_START_AC_FIFO. Назначение не известно. Возможно, как-то влияет на R-переменные.

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

Здравствуйте. Требуется при первом выполнении программы, после включения станка выполнять проверку в виде измерения щупом Renishaw углового положения патрона с кулачками.

Мне подошло бы решение в виде некоторой переменной, которая бы обнулялась при выключении станка (не при M30 или Reset). Но я не знаю, есть ли такая переменная. Sinumerik 840D sl.

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

@A_1 , смотрели в мануале в разделе про переменные?

Насколько я понял, переменная должна быть определена так:

REDEF <имя> <момент инициализации> <иниц_значение>

с моментом инициализации = INIPO

 

Скрытый текст

777-3.jpg

777-1.jpg

777-2.jpg

 

 

 

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

@DJ Astro спасибо большое, всё получилось. В определения добавил файл UGUD. DEF со строками

DEF NCK INT FIRSTSTART
REDEF FIRSTSTART INIPO 1
M30

И, теперь, после включения станка эта переменная имеет значение 1. В программе при условии, что эта переменная равна 1 сделаю необходимые действия щупом и обнулю её, чтобы больше эти действия не выполнять до выключения станка.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • fenics555
      это каждый раз что-то ковырять при установке, не вариант.
    • maxx2000
      @fenics555, я никогда не задавался таким вопросом, а можно ли отключить авторегенрацию компонентов или заморозить? Если прям опции нет, может через Тулкит или Апи?
    • fenics555
      штифты разрезные- понятно, что примонтаже изменяют размер по отверстию.  Резиновое кольцо уплотнительное- оно меняет не только диаметр наружный и внутренний, но и толщину. именно долго открываются сборки, содержащие эти изделия.  можно конечно и без нее обходиться, но мы уже привыкли. Только грузятся сборки очень долго, но это врятли из-за гибкости.
    • Viktor2004
    • UkulyAlex
      Добрый день. Работаю в t-flex 16. Имеется приспособление в котором более 150 позиций деталей, спецификация сделана по структуре изделия. Возникла необходимость изменения конструкции, некоторые детали из середины списка пришлось удалить. После обновления отчёта позиции сдвигаются, как сделать чтобы оставались на месте, т.е. был пропуск позиций в середине раздела "Детали"? 
    • статист
      Спасибо за цитату, полезная для меня   Я знал до этого способ использовать атрибуты LATT для задания направления, но они применялись только к построенным линиям. Если например рассматривать созданный элемент E, 1, 2, где для задания применяются только два узла, то тут уже никак не поменяешь положение третьего узла, так как его нет. Нужно тогда создавать отдельно направляющий узел  и задавать его через EMODIF,EID, 3, NID.   Но получается без создания узла, задать направление нельзя. В настране по крайней мере так можно. А в ансисе нужно плодить лишние узлы. Грустно)
    • FROST_R6
      Есть монорельса размером 12м. Хочу проверить перемещение при нагрузке на середину в 2 тонны. Саму монорельсу фиксировать не нужно, поэтому я поставил ее на 2 призмы и зафиксировал их. Расчет не получается провести - сначала программа пишет, что "деформация в данном исследовании слишком значительная и нереалистичная, хотите остановить программу и перезапустить исследование с меньшими нагрузками или с более жесткой моделью?". Я выбираю "нет". После долгого процесса расчета появляется сообщение о том, что "Состояние равновесия не было достигнута" и "Анализ больших смещений был остановлен до сохранения результата", появляется надпись о сбое расчета. 
    • maxx2000
      подгружаются при повторном открытии сборки или при первой вставке? Ну и гибкость сначала вызвала вопрос, но я не заметил существенной задержки при выборе способа вставки с ней или без неё.
    • Ветерок
      Я не понял зачем в этих деталях задана гибкость. При том, что новые значения размеров определяются не измерением, а вводом вручную.
    • BOJIOD9I
      Добрый день! Подскажите куда внести изменения на стойке fanuc 0i, чтобы когда вводишь коррекцию в графу износа она не отображалась на координатах. Пример: Резец точит размер 100 мм, по факту получается 101мм. В графе износ вносишь -1.0 мм. В итоге по координатам будет показано что резец точит 99мм, а по факту станет 100мм как нужно было.
×
×
  • Создать...