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

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

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




  • Сообщения

    • eljer0n
      Большое спасибо! Посмотрю. Но, судя по всему, даже если удастся заставить его сохранять чертеж с трехзначным исполнением, видимо, в той же спецификации правильного отображения не добиться. У Леона с товарищем был об этом разговор, что солид вроде как не воспринимает исполнения дальше двузначного. Хотя, может и я неправильно понял. Вернусь к этому вопросу чуть позже. Еще раз спасибо за совет.
    • mrVladimir
      @gudstartup @Viktor2004 спасибо Вам за такое участие.  Я вот тоже в maintenance manual заглянул (наконец-то ). А вот фраза "при замене FROM/SRAM необходимо ..." (под пунктом 3 во вложении) не подразумевает, что появление ps5523 произойдет только если мы решим на нашей чпу поменять именно FROM/SRAM. А при замене других печатных плат (в том числе и материнской ) необходимо только как написано в пункте 2 восстановить данные памяти SRAM и, при необходимости, файлы пользователя. Нет?
    • maxx2000
      @davidovka это же очевидно. Вдруг нужного размера не окажется  как в анекдоте  
    • davidovka
      А для чего и сотни исполнений в таблице и гибкость одновременно?
    • ak762
      в СВ есть встроенный калькулятор для расчета балок при различных сценариях нагружения если ваш профиль монорельса совпадает с предопределенными профилями то можно прикинуть поведение монорелься без анализа на картинке 2 расчета двутавровой балки в качестве теста    
    • Viktor2004
      @mrVladimir не спешите отчаиваться. Вопрос спорный Я завел новую тему в которой мы это выясним  
    • Viktor2004
      Уважаемые специалисты. У кого был опыт замены фануковских плат? Именно на ЧПУ. Пожалуйста напишите какое ЧПУ и какую плату меняли И результат. Подошла или не подошла  
    • gudstartup
      @mrVladimir к сожалению с вашей платой все не так просто вам придется приобрести ее клон то есть она должна быть подготовлена продавцом и в нее должен быть записан серийный номер вашей старой платы он на штрихкоде а так готовить умеют не все или готовьтесь к сертификации опций также есть еще один аппаратный вариант но не каждый будет на новую плату м\сх перепаивать с риском превратить ее в кирпич.   если бы у вас был отдельный модуль процессора то вы бы просто переставили его в новую плату и все а с этой платой из-за ее не модульности намучаешься
    • SAPRonOff
      в окне состава изделия снять замочки у колонки позиция, тогда генератор колонки состава изделия не будет им присваивать свои значения автоматически, а запомнит то - что вы поставили или стояло до изменений проекта: 
    • Kelny
      Смотреть надо процедуру main, почти в самом конце: Слева от этих строк на сером поле ставите красные точки (клик мышкой) и запускаете макрос, когда макрос дойдёт до обозначенных строк можно будет наводить мышку на перменные, например, sPathName и смотреть значения, что бы определить где сбой: Для продолжения выполнения макроса нажимаем зелёный треугольничек (как кнопка Play).      
×
×
  • Создать...