**************
Store this program in your control
It assumes you have the variable option turned on
**************
**************
**************
%
O8999 (spindle orientation subroutine)
IF[ #1 EQ #0 ] THEN #1 = 0 (BLANK -A- = 0)
IF[ #1 LT 0 ] THEN #3000 = 1 (-A- MUST BE FROM ZERO TO 360)
IF[ #1 GT 360 ] THEN #3000 = 1 (-A- MUST BE FROM ZERO TO 360)
#2 = 407 (ORIGINAL SETTING IN PARAMETER 4077 FOR TOOL CHANGING) <== M
UST BE SET FOR EACH MACHINE
#22 = 0 (ANGLE FROM TOOL CHANGE POSITION TO ZERO DEGREES AT 3 O'CLOCK) <
== MUST BE SET FOR EACH MACHINE
#3 = 4095 (# OF PULSES FOR 360 DEGREES)
#4 = [ #3 / 360 ](# OF PULSES PER DEGREE)
#5 = #1 + #22 (ADD BASE ANGLE)
#6 = #4 * #5 (RAW # OF PULSES )
#7 = ROUND[#6] (# OF PULSES)
#8 = #7 (COPY # OF PULSES)
IF [ #8 GT #3 ] THEN #8 = #8 - #3 (DEDUCT 1 REVOLUTION)
G10 L52 (ACCESS L52 PARAMETER PAGE) <== FANUC OiD or FANUC 32i CONTR
OLS, USE THIS LINE
G10 L50 (ACCESS L50 PARAMETER PAGE) <== OLDER FANUC CONTROLS, USE THI
S LINE
N4077 P1 R#8 (SET NEW ANGLE)
G11
G53
M19
M99
(SUBROUTINE CALL = )
( G65 P8999 A{-ANGLE-})
( G65 P8999 A90.0 )
(THE -A- MUST BE FROM ZERO TO 360 DEGREES. NO NEGATIVE!)
***************************
G65 P8999 A90.0
%
**************
%
O9001(M06 TOOL CHANGE PROGRAM)
G10 L52 (ACCESS L52 PARAMETER PAGE) з FANUC OiD or FANUC 32i CONTROLS, USE THIS LINE
G10 L50 (ACCESS L50 PARAMETER PAGE) з OLDER FANUC CONTROLS, USE THIS LINE
N4077 P1 R{XXXX }(FROM THE ORIGINAL PARAMETER #4077 SETTING) з MUST BE SET FOR EACH MACHINE
G11
G53
G80G40M9
G91G30Z0M19
G30G49Z0
M06
G0G90G94
M99
%
**************
Store this program in your control
It assumes you have the variable option turned on
**************
**************
**************
%
O8999 (spindle orientation subroutine)
IF[ #1 EQ #0 ] THEN #1 = 0 (BLANK -A- = 0)
IF[ #1 LT 0 ] THEN #3000 = 1 (-A- MUST BE FROM ZERO TO 360)
IF[ #1 GT 360 ] THEN #3000 = 1 (-A- MUST BE FROM ZERO TO 360)
#2 = 407 (ORIGINAL SETTING IN PARAMETER 4077 FOR TOOL CHANGING) <== M
UST BE SET FOR EACH MACHINE
#22 = 0 (ANGLE FROM TOOL CHANGE POSITION TO ZERO DEGREES AT 3 O'CLOCK) <
== MUST BE SET FOR EACH MACHINE
#3 = 4095 (# OF PULSES FOR 360 DEGREES)
#4 = [ #3 / 360 ](# OF PULSES PER DEGREE)
#5 = #1 + #22 (ADD BASE ANGLE)
#6 = #4 * #5 (RAW # OF PULSES )
#7 = ROUND[#6] (# OF PULSES)
#8 = #7 (COPY # OF PULSES)
IF [ #8 GT #3 ] THEN #8 = #8 - #3 (DEDUCT 1 REVOLUTION)
G10 L52 (ACCESS L52 PARAMETER PAGE) <== FANUC OiD or FANUC 32i CONTR
OLS, USE THIS LINE
G10 L50 (ACCESS L50 PARAMETER PAGE) <== OLDER FANUC CONTROLS, USE THI
S LINE
N4077 P1 R#8 (SET NEW ANGLE)
G11
G53
M19
M99
(SUBROUTINE CALL = )
( G65 P8999 A{-ANGLE-})
( G65 P8999 A90.0 )
(THE -A- MUST BE FROM ZERO TO 360 DEGREES. NO NEGATIVE!)
***************************
G65 P8999 A90.0
%
**************
%
O9001(M06 TOOL CHANGE PROGRAM)
G10 L52 (ACCESS L52 PARAMETER PAGE) з FANUC OiD or FANUC 32i CONTROLS, USE THIS LINE
G10 L50 (ACCESS L50 PARAMETER PAGE) з OLDER FANUC CONTROLS, USE THIS LINE
N4077 P1 R{XXXX }(FROM THE ORIGINAL PARAMETER #4077 SETTING) з MUST BE SET FOR EACH MACHINE
G11
G53
G80G40M9
G91G30Z0M19
G30G49Z0
M06
G0G90G94
M99
%
**************
- Системные переменные для определения позиций
- Пример программы для ориентации шпинделя Fanuc (O8999)
- Локальные макро-переменные #1 - #26
- Таблица переводов переменных в их аргументы.
- Макро-подпрограмма. Простой вызов G65 с аргументами
- Примеры пользовательских программ с использованием локальных и системных переменных
Демо-версия: