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

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

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




  • Сообщения

    • lem_on
      ну с дуру известно что сломать можно.
    • Viktor2004
      руку привязки так сломать легко
    • lem_on
      По моему вполне логично если станок вывалится в ошибку если рука не доехала до места. У меня так же если кулачки или деталь на пути, просто пихаеш ее до места и станок опять активен. Но нынешние пановья даже не могут написать модель станка.
    • Viktor2004
      Я согласен что скорее всего проблема механическая Но если логика прописана криво и возможно не предусмотрела остановку в промежуточном состоянии, разве не логично будет попробовать принудительно подав напряжение дернуть эту руку вверх-вниз? Возможно то что туда попало выпадет  
    • Guhl
      Если оставить за скобками вопрото том, что до м19 работает нормально, а после нет, то вы не считали сколько у него реально импульсов на оборот? с помощью стороннего плк, например  А если ориентацию м5 снимать, а не м20?
    • lem_on
      Что это за станок такой в котором сразу ладер ковырять надо, даже не смотря на возможность механической проблемы? Или профдеформация?
    • Viktor2004
      не сразу я понял в чем вопрос. Долго соображал что такое режим управления скоростью. При завершении ориентации PMC снимает сигнал G70.6 ? И если он после снятия сигнала продолжает удерживать шпиндель, при каких условиях эта ориентация все же снимается? После нажатия аварийного грибка или еще как?
    • Viktor2004
      Ладдер пришлите. Будем принудительно пробовать поднимать и опускать
    • streamdown
      Коллеги приветствую! IPS 8. Подскажите пожалуйста, кто какое серверное железо использует? Интересуют параметры при одновременной работе, ну например, 400 пользователей онлайн
    • gudstartup
      так он так и позиционируется по m19 pmc выдает g70.6 а чпу отвечает f45.7 но ориентацию и смещение в 4077 он отрабатывает нормально шпиндель встает ровно и смена происходит хорошо. вопрос почему после ввода команды управления скоростью он все еще продолжает контролировать число импульсов между нуль метками хотя в принципе уже должен отменить позиционный контроль и просто считать обороты по 0 метке как он это делает без М19? это все понятно но почему оно продолжает проверять это после завершения ориентации мне непонятно
×
×
  • Создать...