For our FA400's we got this macro from toyoda. Note the red section, and #7 needs to be set with the value for 4077 from each machine it is used on.
There are risks for using this, but we have not had any issues. We use the standard M19 with this so it ALWAYS sets 4077 each use instead of only when M119 is used. This makes sure it is correct when doing tool changes.
Code:
O9025(1 DEG SPINDLE ORIENT MACRO)
(SET PARA #6085 = 19)
(K.S. 2-11-03)
(TO USE PROGRAM M19 A-- S--)
(VACANT A=0)
(VACANT S=0)
(CHECK A ARGUMENT, #1)
(MUST BE A VALUE BETWEEN 0 AND 359)
IF[#1EQ#0]THEN#1=0.
IF[#1EQ360.]THEN#1=0.
IF[#1GT359.]GOTO998
IF[#1LT0.]GOTO999
(CHECK S ARGUMENT)
(CANNOT BE LT 7 OR GT 118)
IF[#19EQ#0]GOTO500
IF[#19LT7.]GOTO996
IF[#19GT118.]GOTO997
GOTO501
N500#19=0.
N501
(SET STANDARD ORIENTATION POSITION)
(THIS IS THE VALUE FOR 0 DEGREES )
(********************************)
(#2 IS A SAFTY CHECK)
(SET #2=7.0 AFTER #7 IS SET FOR MACHINE)
#2=0.
IF[#2NE7.0] THEN GOTO 995
#7=2540.(ZERO POSITION - STD VAL)
(OF PARAMETER 4077 W-DRIVE KEYS)
(ALIGNED FOR ATC)
(********************************)
(MUST BE ENTERED PER MACHINE)
(********************************)
#8=[4096./360.](PULSES PER DEGREE )
#12=[[#1*#8]+#7](NEW 4077 VAL )
#12=ROUND[#12]
M20
(#12=FIX[#12])
(SET ORNT SPEED)
(SET ORIENTATION POS TO #12 DEG)
#620=0 (FLAG FOR NON-ZERO ORIENTATION)
G10L50(PARAMETER SET MODE)
N4038P1R#19(SET ORNT SPEED)
N4077P1R#12(SET 4077 TO #12DEG)
G11(END SETTING MODE)
M20
M5
G4X1.
M20
M19(ORIENT TO #12 POSITION)
M20
(SET ORIENT POSITION BACK)
(TO DEFAULT VALUE)
G10L50
N4077P1R#7
G11
M20
M99
N995 (PRM 4077 NOT SET TO #7)
#3006=7(SET #7= PRM 4077 AND #2=7.0)
M19
M99
N996#3000=1(M19 S IS LESS THAN 7)
N997#3000=2(M19 S IS GREATER THAN 118)
N998#3000=3(M19 A IS GREATER THAN 359)
N999#3000=4(M19 A IS LESS THAN 0)