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

Sinumerik 840D. Не работают подпрограммы


petrenko_s

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

Хочу использовать подпрограммы в теле программы. Располагал подпрограммы и перед основной программой, и после неё. Создавал подпрограммы в виде отдельных файлов в той же папке, что и основная программа (в этом случае отрабатывалась только первая программа). Результат всегда один: "Программа "Имя" не существует или редактируется". В чем может быть причина? В Heidenhain подпрограммы располагаются после основной программы, и все прекрасно работает.

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


Так понятно ?

t1m6

m3s111

repeat ggg

g0z500

m30

ggg:

g0x555

y200

endlabel:

m30

или

t1m6

m3s111

repeat ggg ggg2 p=1

g0z500

m30

ggg:

g0x555

y200

ggg2:

m30

если нужно запустить подпрограмму она должна лежать в папке не с программами а в подпрограммах (SPF)

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

Так понятно ?

t1m6

m3s111

repeat ggg p=1

g0z500

m30

ggg:

g0x555

y200

endlabel:

m30

или

t1m6

m3s111

repeat ggg ggg2 p=1

g0z500

m30

ggg:

g0x555

y200

ggg2:

m30

если нужно запустить подпрограмму она должна лежать в папке не с программами а в подпрограммах (SPF)

То, что Вы привели похоже на повторение части программы. Непонятно P=1, если часть программы отрабатывается один раз. Я как раз хотел обойтись без специальной папки с подпрограммами (SPF), т.к. эти подпрограммы будут использовать исключительно в данной программе. В конце подпрограмм ставил, согласно документации M17.

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

А как вы вызываете подпрограмму из программы которая находится в конце программы ? )))

да это повтор части программы а он чем то отличается от вызова подпрограммы ?

P=1 это значит повторить 1 раз P=3 повторить 3 раза . Если после первой метки стоит endlabel: то сразу после этой метки программа вернеться на следующую строку после REPEAT по этому не нужно не каких M17

можно вместо repeat написать goto ggg

тоже самое только 1 раз.

Просто repeat удобнее тем что можно несколько раз повторять .

Для внешнего вызова подпрограммы или программы ( CALL PCALL EXTCALL ) нужно указывать полный путь к файлу программы .

можно вот так

T1M6

G54G17D1

GOX200Y0Z0

R1=50

REPEAT GGG

REPEAT ЕЕЕ P=3

GOTO HHH

REPEAT GGG P=50

M30

GGG:

G0X11Y20Z=R1

ENDLABEL:

TTT:

G0X200Y100Z=R1+2

ENDLABEL:

HHH:

G1X200Y100Z=R1+2/2

ENDLABEL:

M30 (ДВА M30 ОБЯЗАТЕЛЬНО )

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

SergeyKa777

А можно реализовать повтор таким образом:

T="F_D20A45"

; D20_HSS_(71175)

M6

G0 G40 G90 G94 G64 D1

G54

M43

S1020 M3

G0 X0. Y0.

G0 Z300. M8

G60

F45.

MCALL CYCLE82(159.,59.,5.,57.7,,.0)

X0. Y0.

G0 G91 B10 REPEATB P=50

MCALL

G0 Z300.

M9

M5
или обязательно строку G0 G91 B10 оформить как подпрограмму?

Я мб неправильно делаю. Нашел в туторе, что для повтора строки нужен REPEATB, а как с ним работать хз.

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

T="F_D20A45"

; D20_HSS_(71175)

M6

G0 G40 G90 G94 G64 D1

G54

M43

S1020 M3

G0 X0. Y0.

G0 Z300. M8

G60

F45.

MCALL CYCLE82(159.,59.,5.,57.7,,.0)

X0. Y0.

METKA:G0 G91 B10

REPEATB METKA P=50

MCALL

G0 Z300.

M9

M5

Вот так будет правильно .А зачем ставить точкм после нулей ? не вижу смысла , Sinumerik это не Fanuc )

Ссылка на сообщение
Поделиться на других сайтах
Разве МЕТКА: не должна заканчиваться ENDLABEL: ?

Точки в целых числах действительно привычка, или недоработанный постпроцессор.

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

В случае REPEATB выплняется только одна строка после метки ,а в случае REPEAT выполняеться до конца или до ENDLABEL.

Правильнее будет вот так .

MCALL CYCLE82(159.,59.,5.,57.7,,.0)

X0. Y0.

METKA:G0 G91 B10

REPEATB METKA P=50

MCALL

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

Ага, понятненько,...

Спасибо, коллега.

Видимо иногда нужно перебороть собственную лень, открыть

Руководство по программированию

Раздел11. Техника подпрограмм и повтороение части программы.

Честно говоря, как-то упустил из виду, когда читал сей мануал. :doh:

ЗЫ. Точки после нулей выдает пост, который потом правится руками :gun_guns:

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

SergeyKa777, такой еще вопрос.

Возможно ли повторение подпрограммы? Думаю, ничего страшного в этом нет.

И нужно ли в данном случае ENDLABEL?

; FREZEROVKA_36D21

; SECH_B8-B8

; VID_E6



G0 B-2.82



SPF2; PODRPOGRAMMA



; --------------------

LABEL: G0 G91 B10.

SPF2; PODRPOGRAMMA

REPEAT LABEL P=35

; --------------------



M9

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

В данном случае можно ставить а можно и не ставить . Оба варианта будут работать .

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

Надеюсь, что эта подходящая тема для моего вопроса.

В основной программе делаю вызов подпрограммы с параметрами, которая лежит в стандартных циклах. Все хорошо, но приходится в начале основной программы объявлять

EXTERN ПОДПРОГРАММА(INT,REAL,...).

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

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

Хочу использовать подпрограммы в теле программы. Располагал подпрограммы и перед основной программой, и после неё. Создавал подпрограммы в виде отдельных файлов в той же папке, что и основная программа (в этом случае отрабатывалась только первая программа). Результат всегда один: "Программа "Имя" не существует или редактируется". В чем может быть причина? В Heidenhain подпрограммы располагаются после основной программы, и все прекрасно работает.

Попробуй после написания подпрограммы залезть в меню вертикальных кнопок на стойке в "Управление программой" далее "Загрузить" и "Разблокировать".сам редактор с написанной программой перед этим закрывай.Подпрограмму лучше создавать в директории данной детали чтобы не мучиться с модальным вызовом (это кому как удобней).И будет тебе счастье)

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

Надеюсь, что эта подходящая тема для моего вопроса.

В основной программе делаю вызов подпрограммы с параметрами, которая лежит в стандартных циклах. Все хорошо, но приходится в начале основной программы объявлять

EXTERN ПОДПРОГРАММА(INT,REAL,...).

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

А помоему ее надо запихать в циклы изготовителя, а потом ОБЯЗАТЕЛЬНО полностью перегрузить станок, с полным выключением, включая рубильник на 10 сек

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

есть ли подобное размножение деталей в синумерике как на фануке

через метки и подпрограммы понятно что можно делать но это не так удобно как в примере для фанука.

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

 

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

Sinumerik в этом отношении не уступает Fanuc, только Сimco не прорисовывает такие программы, по крайней мере 6 версия, и чуть другой язык: 

 

While R1<R2

...

Endwhile

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

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

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

Def int _I, _J

R1=10(Количество дет. по X)

R2=15(Количество дет. по Y)

R3=20(Шаг по X)

R4=30(Шаг по Y)

For _I=1 to R1
For _J=1 to R2
Trans X=(_I-1)*R3 Y=(_J-1)*R4
;=======================
G0 X... Y...
Z2
G1 Z-2
...
G0 Z20
;=======================
Endfor
Endfor
Trans
M30
Ссылка на сообщение
Поделиться на других сайтах

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

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

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

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

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

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

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

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

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

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




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