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

Первый опыт макропрограмм FANUC 0i-MD


catiauser

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

Собственно возникла необходимость написания небольших макропрограмм, что бы операторы отстали)

начал с простого примера:

%
:6660
G0 G17 G40 G90
G0 G54
#1=1 (TOOL NO.)
#2=800 (DIAMETR OKR.)
#3=50 (TOOL DIAM)
#8=#3*0.75 (SHAG V RADIAL'NOM NAPRAVLENII)
#15=1000 (OBOROTI)
#16=300 (PODACHA)

T#1 M6
G43 H#1 Z60.
S#15 M03
F#16
M08
G0 X0 Y[#2/2+#3/2+5]
Z5
G1 Z0.
#20=#2/2+#3/2-#8
	WHILE[#20GT#8/2] DO1
	Y#20
	G2 X0 Y#20 I0 J-#20
	#20=#20-#8
	END1
G2 X0 Y#8/2 J-#8/2
G0 Z60.
M09
M05
M30
%

Программа фрезерует круглую заготовку по плоскости. Все как бы работает.

Но с примером посложнее

%
:7777
G0 G17 G40 G90
G0 G54

(----------PARAMETRI----------)

#1=1 (TOOL NO.)
#2=800 (DIAMETR OKR.)
#3=50 (TOOL DIAM)
#4=-5 (ABSOL. GLUBINA KARMANA)
#5=5 (TOLSCHINA SNIMAEMOGO MATERIALA)
#6=2 (GLUBINA ZA ODIN PROHOD PO Z)
#7=60 (BEZOPASNAYA PLOSKOST')
#8=#3*0.5 (SHAG V RADIAL'NOM NAPRAVLENII)
#9=0 (KOORD X CENTRA)
#10=0 (KOORD Y CENTRA)
#11=FUP[#5/#6] (ILI ROUND[#5/#6] KOL-VO PROHODOV PO Z)
#12=#3*0.8 (DIAMETR SPIRALI VREZANIYA)
#13=2*#12*TAN[1] (SHAG SPIRALI PO Z)
#14=FUP[#6/#13] (ILI ROUND[#6/#13] KOL-VO VITKOV SPIRALI PO Z)
#15=1000 (OBOROTI)
#16=300 (PODACHA)
#101=0.25 (KOEFFICIENT UVELICHENIYA SHAGA V RAD NAPRAVLENII)
#104=90 (UGOL VRASCHENIYA)

(----------PROGRAMMA----------)

IF [#2LE[6*#3]] GOTO6

T#1 M6
G43 H#1 Z#7
S#15 M03
F#16
M08
G68 X#9 Y#10 R#104
#19=#11

(----------Z CYCLE----------)

#102=[#2/4-#101*#8] (Y PERVOGO PROHODA)
WHILE[#19GT0] DO1
	#19=#19-1
	G0 X#9 Y[#10+#102]. Z#7
	G0 Z[#4+#19*#6+#13*#14+1]
	G1 Z[#4+#19*#6+#13*#14]
	#20=#14
	
	(----------HELIX APROACH CYCLE----------)
	
	WHILE[#20GT0] DO2
		#20=#20-1
		G3 X#9. Y[#10+#102] J-[#12/2] Z[#4+#19*#6+[#20*#13]]
	END2
	
	(----------END HELIX APROACH CYCLE----------)
	
	#21=[#2/4+#101*#8]
	#22=#102
	#105=#101

	(----------SPIRAL CYCLE----------)
		
	WHILE[#21LE[#2/2-#8]] DO3
		#23=SQRT[#21*#21-#22*#22]
		G1 X[#9+#23]
		#105=#105+0.1
		IF[#105GE1] THEN #105=1
		#24=#21+#105*#8
		#25=#22-#105*#8
		#26=SQRT[#21*#21-#25*#25]
		G3 X[#9-#26] Y[#10+#25] R#21
		#21=#24
		#22=#25
	END3
	
	(----------END SPIRAL CYCLE----------)
		
	G1 Y[#10+0.6*#8]
	G1 X[#9+[#2/2-#8]]
	G1 X[#9+[#2/2-0.5*#3]] Y#10
	G3 X[#9-[#2/2-0.5*#3]] Y#10 R[#2/2-0.5*#3]
	G1 X[#9+[#2/2-0.5*#3]] Y#10
	G1 Z10.
	G0 Z#7
END1

(----------END Z CYCLE----------)

N6
M09
M05
M30
%

вылетает ошибка

PS0004

 

IMG-eaa7f8e67561ff2e39a37afcc1cdea39-V.jpg

IMG-41049f18cc6266017e693dcc6bdccf8d-V.jpg

Программа должна фрезеровать половину круглого кармана
 

O7777.jpg

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


Вот, профессиональный пример как положено писать МАКРО. Это написано спецами ф.Фанук и представляет из себя системный эксекатор С.А.Р. 

PD1M_CAP.RAR

Ссылка на сообщение
Поделиться на других сайтах
15 минут назад, agering сказал:

Вот, профессиональный пример как положено писать МАКРО. Это написано спецами ф.Фанук и представляет из себя системный эксекатор С.А.Р. 

PD1M_CAP.RAR

69 тыщ строчек кода это конечно круто. Но я не спец ф.Фанук и решить с помощью него свою проблему в ближайшем обозримом будущем не смогу.

Я понимаю, что нарушил синтаксис, но пока еще не понял где.

Ссылка на сообщение
Поделиться на других сайтах
2 часа назад, catiauser сказал:

G0 X#9 Y[#10+#102].

 

G3 X#9. Y[#10+#102] J-[#12/2] Z[#4+#19*#6+[#20*#13]]

Точки здесь не нужны.

Ссылка на сообщение
Поделиться на других сайтах
Точки здесь не нужны.
Не ужели это из за них? Я не все удалил... Но почему тогда ошибка выскочила в кадре с G68?

Отправлено с моего Lenovo K10a40 через Tapatalk

Ссылка на сообщение
Поделиться на других сайтах
Только что, catiauser сказал:

Не ужели это из за них?

Может быть, есть еще другая причина.

Кадр с G68 - нормальный, система читает вперед, а на нем просто остановилась.

Ссылка на сообщение
Поделиться на других сайтах
10 часов назад, AndreyChinc сказал:

А где отмена G68?

 Верно подмечено, ее нет, но мужики со стойки внесли в конец программы G69 - не помогло. 

Без точек сегодня не смогли потестить. 

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

Может, его нахлобучило при обращении к #104 параметру? Попробуйте #101, #102, #104 заменить на 28, 29, 30

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

O0001(MACRO B SAMPLE - CIRCLE POCKET.NC)

(TO SEE THE VARIABLES UPDATE WHILE RUNNING THIS PROGRAM)
(USE THE STEP CONTROLS ON THE VARIABLE DISPLAY WINDOW.)
(THIS WINDOW CAN BE OPENED FROM THE MENU "CALC/SHOW VARIABLES")

N1 G00 G17 G80 G40 G90
N2 M06 T01
N3 G00 G54 X0 Y0
N4 G43 H01 Z2.
N5 M03 S1500
N6 G65 P2 X0 Y0 Z-0.75 R0.25 I6. J0.375 K0.2 E0 F25.
N7 G00 Z5.
N8 M02

 

 

O0002(CIRCLE POCKET MACRO)
(#24  X POCKET CENTER)
(#25  Y POCKET CENTER)
(#18  R Z APPROACH DEPTH)
(#26  Z FINISH DEPTH)
(#6   Z STEP AMOUNT)
(#4   I POCKET DIAMETER)
(#7   D TOOL DIAMETER)
(#5   J RADIAL STEPOVER)
(#8   E CUTTING DIRECTION 0=CW, 1=CCW)
(#9   F FEEDRATE)

(#30 STARTING DEPTH)
(#31 RADIAL PASSES)
(#32 DIVIDE RADIUS INTO EVEN NUMBER OF PASSES)

N1 G00 X#24 Y#25
N2 Z#18
N3 #4=[#4/2]-[#7/2]
N4 #6=ABS[#6]
N5 #30=#18
N6 #31=FIX[#4/#5]+1
N7 #32=#4/#31
N8 #34=#32/2
N9 #30=#30-#6
N10 IF [#30LT#26] THEN #30=#26
N11 G01 Z#30 F#9
N12 #33=#32
N13 WHILE [[#33-#4]LT0.0001] DO1
N14 G01 X#24+#33
N15 IF [#8EQ0] THEN G02 X#24+#33 I-#33 J0
N16 IF [#8NE0] THEN G03 X#24+#33 I-#33 J0
N17 #33=#33+#32
N18 END1
N19 IF [#8EQ0] THEN G02 X[#24+#4-#32] I-#34 J0
N20 IF [#8NE0] THEN G03 X[#24+#4-#32] I-#34 J0
N21 G00 Z#18
N22 X#24 Y#25
N23 IF [#30GT#26] GOTO 9
N24 M99
 

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

У нас на одном работает переменная #100 а на другом ошибка #151 а на другом ошибка. Может ещё надо понять какие переменные работают!!

 

Правда мне Вашу прогу с планшета не глянвть.

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

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

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

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

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

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

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

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

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

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

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




  • Сообщения

    • Борман
      z - это и есть результат решения модальника (прямая, обратная и без прецессии) k - это особенность твоей конкретной задачи. Например если у тебя со стороны статора есть направляющие лопатки, которых 10 штук, то за один оборот вала он испытает 10 воздействий потока, т.е. вал крутиться на частоте n, а воздействие на частоте 10n, Вот и ищут опасные обороты как пересечение с этим лучем. 
    • Povar1
      Паписанием спец поста на основе языка программирования C++. 
    • maxx2000
      Я не работаю в SW, эти приёмы общие для всех CAD   Можно построить коническую спираль как кривую по уравнению
    • g687
      Спасибо за совет!   Судя по всему Вы каким то инструментом прямо спроецровали. Скажите пожалуйста - что это за инструмент ? (у меня SW 20222, но могу и SW 2024 поставить)
    • maxx2000
      если не проецирует, то  протягиванием по этой спирали отрезка получить поверхность получить линию пересечения конуса и поверхности   Таким способом можно построить спираль любой формы   Не знаю начиная с какой версии SW, но для спирали уже  добавили возможность задавать угол этой самой спирали. В 2018 вроде ещё не было.
    • Av-eng
    • g687
      На всякий случай приложил сам файл (SW 2022) конический шнек2.SLDPRT
    • Shura762
      И тоже в пиратских (как же себя не похвалить)   даже мысли нет у комментатора почему чел вынужден делать такие расчеты. У @Ветерок  есть самый лучший расчет корпуса корабля.
    • gudstartup
      может  вам надо направление сигнала обратной связи изменить иначе при неправильном сигнале система будет отрубаться при включении слежения приводов? MP1040 %xxxxxx?x (If the axis runs away, he should be replaced 0 -> 1 or 1 -> 0) или вы неверно задаете параметр 331 332
    • g687
      Построил сваю, сделал шнек из листового металла, получил его развертку, далее на развертке сделал вырез Но почему то когда я развертку сворачиваю - то вижу по прежнему прямой край.   Я раньше так делал и все было ок.   Подскажите пожалуйста - как правильно внести изменения в развертку чтобы увидеть изменения в 3D модели?
×
×
  • Создать...