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

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


dreadnought-san

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

Доброго времени суток. Уважаемые гуру ЧПУ, не сочтите за труд помочь в решении проблемы. Стойка 840d. Есть R-параметры. И есть необходимость использовать значения присвоенные в первой программе и в других программах без их повторного ввода и прописывания. КАК???????

 

На фануке #1-#10 переменные действуют только в одной программе в которой созданы. А вот дальнейшие ## можно использовать в нескольких программах. Не могу найти инфу.

 

Если можно объясните. Ну или направление четкое дайте 

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


Ну не знаю, как на новых синумериках, на старых значения ни куда не девались, если их не затирали новыми значениями. Было их 3 канала и с R900 был один канал общий.

Важно знать, какие номера пользовательские.  На старых 0-99 под подпрограммы условно. Для новых может это бред.

Ссылка на сообщение
Поделиться на других сайтах
Есть R-параметры. И есть необходимость использовать значения присвоенные в первой программе и в других программах без их повторного ввода и прописывания. КАК???????

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

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

Вопрос в том, что я присвоил в программе R1=456. И хочу работать с этой переменной и в другой программе. А при м30 переменная обнуляется и стойка принимает ее за ноль. Хотя в таблице R-параметров все еще 456.

Может я не теми переменными работаю. Подскажите пожалуйста, что не так.

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

Наверно, не теми. В нашей инструкции по программированию написано, что можно использовать R0-R99.

Другие переменные используются в различных циклах станка, и менять их нельзя.

Значения наших R0-R99 сохраняются после M30.

 

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

Хорошо. Второй вопрос. Как я их могу использовать? Потому что в другой программе запись типа G1 X=R1 отправляет станок как R1=0 то есть в X0.

Ссылка на сообщение
Поделиться на других сайтах
N10 R1=14000 
N20 R2=365.2 
N30 R3=276.9 
N40 R4=9 
 
 
N41 G1 X=R1 Z=R4 F1.0
N42 G1 X=R2 Z=R3 F1.0
 
N50 M30
 
Это первая программа ну условно.

N41 G1 X=R4 Z=R2 F1.0
N42 G1 X=R1 Z=R3 F1.0
 
N50 M30
 
Это вторая. и вот в ней происходит обнуление переменных R.
Изменено пользователем dreadnought-san
Ссылка на сообщение
Поделиться на других сайтах

По команде M30 в станке выполняетcя программа, которая, видимо, инициализирует R-переменные. Видимо, так задумал производитель. Как выход, можно попробовать создать свой массив переменных.

В определениях

def nck real вашапеременная[100]

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

Мне всегда представлялось, что R1-100 локальные переменные и действуют только в своей программе. Можно попробовать перед концом первой программы запускать из неё следующую, но это не кажется хорошей идеей.

А может, подгружать подпрограмму с ними?

Есть же пользовательские переменные, их как-то использовать можно. 

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

Мне всегда представлялось, что R1-100 локальные переменные и действуют только в своей программе. Можно попробовать перед концом первой программы запускать из неё следующую, но это не кажется хорошей идеей.

R- параметры будут определены до тех пор, пока их не переопределит что-то (либо в какой-то подпрограмме будет переопределение или еще где-либо). А так, даже после сброса они не будут переопределены. И вроде как даже после перезагрузки стойки (хотя здесь точно не уверен)

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

Ну хорошо. Как мне обратиться во второй программе к моим переменным которые сохранились в таблице R-параметров, чтобы им присвоились не нулевые значения, а табличные?

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

Если R-переменные обнуляются по команде M30, то тогда - никак не получится, хотя такое я вижу впервые.

У нас есть подобное, например мы используем циклы RENISHAW, поэтому в инструкции к их использованию написано, не использовать R-параметры с 1 по какой-то там. По 30й или 40й, так как эти R-параметры используются в циклах и могут быть переопределены.

В случае, если по M30 R-переменные обнуляются или переопределяются, вам необходимо сохранять значения в другие параметры, не в R-параметры или в те R-параметры, которые не переопределяются.

Внутри одной программы не проблема

Есть команды, например DEF REAL

Выглядеть это будет так, вначале программы пишется

DEF REAL DELTA_Z1,DELTA_X1,DELTA_Z2,DELTA_X2,DELTA_X57,DELTA_Z57

Дальше идет тело программы.

В этом случае внутри программы будут определены указанные переменные, и далее в УП можно использовать например:

G0 X=DELTA_Z1

Но это только внутри программы.

А вот что касается определения в канале, то писали выше про команду DEF NCK REAL

Но вот как в этом случае будет работать - не могу сказать точно.

Значения можно будет найти в так называемых GUD7.def, если не ошибаюсь. Попробуйте найти на стойке эту штуку и прописать там. Или же определить переменные предварительно в программе через DEF NCK REAL и поглядите, что получится.

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

Если M30 стирает R-переменные, (хотя такого быть не должно, на то и R, чтобы программы обменивались данными) можно все же решить проблему.

Записываете ваши числовые данные не R1=14000, а

write(error,"subprog_spf","r1="<<14000)

и т.д.

write(error,"subprog_spf","m17")

(на месте числа 14000 может стоять любая переменная, например измеренное значение R10.)

M30

(в самом верху "первой" программы def int error)

 

Другая программа, находящаяся в этой же папке должна вызвать подпрограмму subprog, которая установит в памяти заданные значения R-переменным.

Изменено пользователем A_1
Ссылка на сообщение
Поделиться на других сайтах
Если M30 стирает R-переменные, (хотя такого быть не должно, на то и R, чтобы программы обменивались данными) можно все же решить проблему.

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

Кстати, про М30. Слышал разные теории, что можно и даже нужно, вместо неё использовать М2 или даже RET.

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

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

Здравствуйте.

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

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

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

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

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

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

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

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

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

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

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

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




×
×
  • Создать...