imachine909
Cast Iron
- Joined
- May 17, 2010
- Location
- South East
I have a cnc mill with a 840d control. When we run the program "warmup" the program warms the spindle up to 24,000 rpm we want to limit this at 15,000 rpm. How can I do this I have attached the program. Can we change it in the program on do we need to change a parameter in the machine if so which one?
%_N_WARMUP_SPF
;$PATH=/_N_CMA_DIR
N100 PROC WARMUP DISPLOF SBLOF
;Spindle warmup
N110 DEF STRING[40] DATAFILE = "/_N_COM_DIR/_N_WARMUP_LOG_MPF"
N120 DEF REAL FRONT_TEMP, REAR_TEMP
N130 DEF BOOL LONG_WARMUP,FIRST_WARMUP
N140 DEF REAL PREV_SWORD,MAX_S,MAX_TOOL,START_T,DELTA_T
N150 DEF REAL INTV,S_RATE,TEMP_LIM,S_INC,S_DEC
N160 DEF INT PREV_SDIR,IVAR,ERROR
N170 INTV = 10
N180 TEMP_LIM = 60
N190 S_INC = 0.01
N200 S_DEC = 0.02
N210 IF ($P_TOOLNO == 0)
N220 SETAL(66900)
N230 M17
N240 ENDIF
N250 MAX_TOOL = $TC_TPC1[$P_TOOLNO]
N260 PREV_SWORD = $P_S[0]
N270 PREV_SDIR = $P_SDIR[0]
N280 MAX_S = $MA_SPIND_VELO_LIMIT[AX6]
N290 IF (MAX_TOOL <> MAX_S)
N300 SETAL(66901)
N310 M17
N320 ENDIF
N330 MSG("Spindle warmup - press NC START to begin")
N340 M5 M0
;N350 START_T = $AC_OPERATING_TIME
;N360 IF (NOT ($A_DBB[0] B_AND 1))
;N370 MSG("Wait for pre-lube completion")
;N380 REPEAT
;N390 G4F1
;N400 UNTIL ($A_DBB[0] B_AND 1)
;N410 ENDIF
N420 LONG_WARMUP = $A_DBB[0] B_AND 'B100000'
N425 FIRST_WARMUP = $A_DBB[0] B_AND 'B1000000'
N430 M36 M49
N431 IF (FIRST_WARMUP)
N450 MSG("First time warmup started")
N460 IF ISFILE(DATAFILE)
N470 DELETE(ERROR,DATAFILE)
N480 ENDIF
N490 WRITE (ERROR, DATAFILE, "FIRST TIME SPINDLE WARMUP STARTED ON "<<$A_MONTH<<"."<<$A_DAY<<"."<<$A_YEAR<<" AT "<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND)
N500 M3S=MAX_S * 0.10
N510 WHILE ($AA_S[0]<$P_S[0]*0.9)
N520 MSG("Wait for spindle up to speed")
N530 G4F0.5
N540 ENDWHILE
N550 FOR IVAR = 1 TO 60
N560 STOPRE
N570 FRONT_TEMP = $A_DBW[256] / 100
N580 REAR_TEMP = $A_DBW[258] / 100
N590 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N600 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N610 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N620 G4F10
N630 ENDFOR
INTV = 30
S_INC = 90/120/100
S_DEC = S_INC * 2
N780 S_RATE = 0.10 + S_INC
N790 REPEAT
N800 S=MAX_S * S_RATE
N810 WHILE ($AA_S[0]<$P_S[0]*0.9)
N820 MSG("Wait for spindle up to speed")
N830 G4F0.5
N840 ENDWHILE
N850 STOPRE
N860 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N870 FRONT_TEMP = $A_DBW[256] / 100
N880 REAR_TEMP = $A_DBW[258] / 100
N890 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N900 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N910 G4F=INTV
N920 IF (FRONT_TEMP < TEMP_LIM)
N930 S_RATE = S_RATE + S_INC
N940 ELSE
N950 S_RATE = S_RATE - S_DEC
N960 ENDIF
N970 UNTIL (S_RATE >=1.0)
N980 S=MAX_S
N990 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1000 MSG("Wait for spindle up to speed")
N1010 G4F0.5
N1020 ENDWHILE
N1030 FOR IVAR = 1 TO 60
N1040 STOPRE
N1050 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N1060 FRONT_TEMP = $A_DBW[256] / 100
N1070 REAR_TEMP = $A_DBW[258] / 100
N1080 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N1090 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N1100 G4F30
N1110 ENDFOR
N439 ELSE
N440 IF (LONG_WARMUP)
N450 MSG("Long warmup started")
N460 IF ISFILE(DATAFILE)
N470 DELETE(ERROR,DATAFILE)
N480 ENDIF
N490 WRITE (ERROR, DATAFILE, "SPINDLE WARMUP STARTED ON "<<$A_MONTH<<"."<<$A_DAY<<"."<<$A_YEAR<<" AT "<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND)
N500 M3S=MAX_S * 0.25
N510 WHILE ($AA_S[0]<$P_S[0]*0.9)
N520 MSG("Wait for spindle up to speed")
N530 G4F0.5
N540 ENDWHILE
N550 FOR IVAR = 1 TO 6
N560 STOPRE
N570 FRONT_TEMP = $A_DBW[256] / 100
N580 REAR_TEMP = $A_DBW[258] / 100
N590 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N600 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N610 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N620 G4F10
N630 ENDFOR
N640 S=MAX_S * 0.5
N650 WHILE ($AA_S[0]<$P_S[0]*0.9)
N660 MSG("Wait for spindle up to speed")
N670 G4F0.5
N680 ENDWHILE
N690 FOR IVAR = 1 TO 12
N700 STOPRE
N710 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N720 FRONT_TEMP = $A_DBW[256] / 100
N730 REAR_TEMP = $A_DBW[258] / 100
N740 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N750 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N760 G4F10
N770 ENDFOR
N780 S_RATE = 0.75
N790 REPEAT
N800 S=MAX_S * S_RATE
N810 WHILE ($AA_S[0]<$P_S[0]*0.9)
N820 MSG("Wait for spindle up to speed")
N830 G4F0.5
N840 ENDWHILE
N850 STOPRE
N860 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N870 FRONT_TEMP = $A_DBW[256] / 100
N880 REAR_TEMP = $A_DBW[258] / 100
N890 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N900 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N910 G4F=INTV
N920 IF (FRONT_TEMP < TEMP_LIM)
N930 S_RATE = S_RATE + S_INC
N940 ELSE
N950 S_RATE = S_RATE - S_DEC
N960 ENDIF
N970 UNTIL (S_RATE >=1.0)
N980 S=MAX_S
N990 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1000 MSG("Wait for spindle up to speed")
N1010 G4F0.5
N1020 ENDWHILE
N1030 FOR IVAR = 1 TO 6
N1040 STOPRE
N1050 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N1060 FRONT_TEMP = $A_DBW[256] / 100
N1070 REAR_TEMP = $A_DBW[258] / 100
N1080 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N1090 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N1100 G4F10
N1110 ENDFOR
N1120 ELSE
N1130 MSG("Short warmup started")
N1140 M3S=MAX_S * 0.5
N1150 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1160 MSG("Wait for spindle up to speed")
N1170 G4F0.5
N1180 ENDWHILE
N1190 MSG("Short warmup in process - spindle speed "<<$P_S[0])
N1200 G4F60
N1210 S=MAX_S * 0.75
N1220 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1230 MSG("Wait for spindle up to speed")
N1240 G4F0.5
N1250 ENDWHILE
N1260 MSG("Short warmup in process - spindle speed "<<$P_S[0])
N1270 G4F60
N1280 S=MAX_S
N1290 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1300 MSG("Wait for spindle up to speed")
N1310 G4F0.5
N1320 ENDWHILE
N1330 MSG("Short warmup in process - spindle speed "<<$P_S[0])
N1340 G4F60
N1350 ENDIF
N1355 ENDIF
N1360 S=PREV_SWORD M=PREV_SDIR M37 M48
N1370 MSG("Spindle warmup complete - press NC START to resume program")
N1380 M0
N1390 MSG
N1400 M17
%_N_WARMUP_SPF
;$PATH=/_N_CMA_DIR
N100 PROC WARMUP DISPLOF SBLOF
;Spindle warmup
N110 DEF STRING[40] DATAFILE = "/_N_COM_DIR/_N_WARMUP_LOG_MPF"
N120 DEF REAL FRONT_TEMP, REAR_TEMP
N130 DEF BOOL LONG_WARMUP,FIRST_WARMUP
N140 DEF REAL PREV_SWORD,MAX_S,MAX_TOOL,START_T,DELTA_T
N150 DEF REAL INTV,S_RATE,TEMP_LIM,S_INC,S_DEC
N160 DEF INT PREV_SDIR,IVAR,ERROR
N170 INTV = 10
N180 TEMP_LIM = 60
N190 S_INC = 0.01
N200 S_DEC = 0.02
N210 IF ($P_TOOLNO == 0)
N220 SETAL(66900)
N230 M17
N240 ENDIF
N250 MAX_TOOL = $TC_TPC1[$P_TOOLNO]
N260 PREV_SWORD = $P_S[0]
N270 PREV_SDIR = $P_SDIR[0]
N280 MAX_S = $MA_SPIND_VELO_LIMIT[AX6]
N290 IF (MAX_TOOL <> MAX_S)
N300 SETAL(66901)
N310 M17
N320 ENDIF
N330 MSG("Spindle warmup - press NC START to begin")
N340 M5 M0
;N350 START_T = $AC_OPERATING_TIME
;N360 IF (NOT ($A_DBB[0] B_AND 1))
;N370 MSG("Wait for pre-lube completion")
;N380 REPEAT
;N390 G4F1
;N400 UNTIL ($A_DBB[0] B_AND 1)
;N410 ENDIF
N420 LONG_WARMUP = $A_DBB[0] B_AND 'B100000'
N425 FIRST_WARMUP = $A_DBB[0] B_AND 'B1000000'
N430 M36 M49
N431 IF (FIRST_WARMUP)
N450 MSG("First time warmup started")
N460 IF ISFILE(DATAFILE)
N470 DELETE(ERROR,DATAFILE)
N480 ENDIF
N490 WRITE (ERROR, DATAFILE, "FIRST TIME SPINDLE WARMUP STARTED ON "<<$A_MONTH<<"."<<$A_DAY<<"."<<$A_YEAR<<" AT "<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND)
N500 M3S=MAX_S * 0.10
N510 WHILE ($AA_S[0]<$P_S[0]*0.9)
N520 MSG("Wait for spindle up to speed")
N530 G4F0.5
N540 ENDWHILE
N550 FOR IVAR = 1 TO 60
N560 STOPRE
N570 FRONT_TEMP = $A_DBW[256] / 100
N580 REAR_TEMP = $A_DBW[258] / 100
N590 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N600 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N610 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N620 G4F10
N630 ENDFOR
INTV = 30
S_INC = 90/120/100
S_DEC = S_INC * 2
N780 S_RATE = 0.10 + S_INC
N790 REPEAT
N800 S=MAX_S * S_RATE
N810 WHILE ($AA_S[0]<$P_S[0]*0.9)
N820 MSG("Wait for spindle up to speed")
N830 G4F0.5
N840 ENDWHILE
N850 STOPRE
N860 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N870 FRONT_TEMP = $A_DBW[256] / 100
N880 REAR_TEMP = $A_DBW[258] / 100
N890 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N900 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N910 G4F=INTV
N920 IF (FRONT_TEMP < TEMP_LIM)
N930 S_RATE = S_RATE + S_INC
N940 ELSE
N950 S_RATE = S_RATE - S_DEC
N960 ENDIF
N970 UNTIL (S_RATE >=1.0)
N980 S=MAX_S
N990 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1000 MSG("Wait for spindle up to speed")
N1010 G4F0.5
N1020 ENDWHILE
N1030 FOR IVAR = 1 TO 60
N1040 STOPRE
N1050 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N1060 FRONT_TEMP = $A_DBW[256] / 100
N1070 REAR_TEMP = $A_DBW[258] / 100
N1080 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N1090 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N1100 G4F30
N1110 ENDFOR
N439 ELSE
N440 IF (LONG_WARMUP)
N450 MSG("Long warmup started")
N460 IF ISFILE(DATAFILE)
N470 DELETE(ERROR,DATAFILE)
N480 ENDIF
N490 WRITE (ERROR, DATAFILE, "SPINDLE WARMUP STARTED ON "<<$A_MONTH<<"."<<$A_DAY<<"."<<$A_YEAR<<" AT "<<$A_HOUR<<":"<<$A_MINUTE<<":"<<$A_SECOND)
N500 M3S=MAX_S * 0.25
N510 WHILE ($AA_S[0]<$P_S[0]*0.9)
N520 MSG("Wait for spindle up to speed")
N530 G4F0.5
N540 ENDWHILE
N550 FOR IVAR = 1 TO 6
N560 STOPRE
N570 FRONT_TEMP = $A_DBW[256] / 100
N580 REAR_TEMP = $A_DBW[258] / 100
N590 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N600 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N610 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N620 G4F10
N630 ENDFOR
N640 S=MAX_S * 0.5
N650 WHILE ($AA_S[0]<$P_S[0]*0.9)
N660 MSG("Wait for spindle up to speed")
N670 G4F0.5
N680 ENDWHILE
N690 FOR IVAR = 1 TO 12
N700 STOPRE
N710 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N720 FRONT_TEMP = $A_DBW[256] / 100
N730 REAR_TEMP = $A_DBW[258] / 100
N740 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N750 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N760 G4F10
N770 ENDFOR
N780 S_RATE = 0.75
N790 REPEAT
N800 S=MAX_S * S_RATE
N810 WHILE ($AA_S[0]<$P_S[0]*0.9)
N820 MSG("Wait for spindle up to speed")
N830 G4F0.5
N840 ENDWHILE
N850 STOPRE
N860 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N870 FRONT_TEMP = $A_DBW[256] / 100
N880 REAR_TEMP = $A_DBW[258] / 100
N890 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N900 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N910 G4F=INTV
N920 IF (FRONT_TEMP < TEMP_LIM)
N930 S_RATE = S_RATE + S_INC
N940 ELSE
N950 S_RATE = S_RATE - S_DEC
N960 ENDIF
N970 UNTIL (S_RATE >=1.0)
N980 S=MAX_S
N990 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1000 MSG("Wait for spindle up to speed")
N1010 G4F0.5
N1020 ENDWHILE
N1030 FOR IVAR = 1 TO 6
N1040 STOPRE
N1050 DELTA_T = ROUND(($AC_OPERATING_TIME - START_T)/0.6)/100
N1060 FRONT_TEMP = $A_DBW[256] / 100
N1070 REAR_TEMP = $A_DBW[258] / 100
N1080 MSG ("ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N1090 WRITE (ERROR, DATAFILE, "ELAPSED TIME "<<DELTA_T<<" SPINDLE SPEED "<<$P_S[0]<<" FRONT "<<FRONT_TEMP<<" DEG C REAR "<<REAR_TEMP<<" DEG C")
N1100 G4F10
N1110 ENDFOR
N1120 ELSE
N1130 MSG("Short warmup started")
N1140 M3S=MAX_S * 0.5
N1150 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1160 MSG("Wait for spindle up to speed")
N1170 G4F0.5
N1180 ENDWHILE
N1190 MSG("Short warmup in process - spindle speed "<<$P_S[0])
N1200 G4F60
N1210 S=MAX_S * 0.75
N1220 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1230 MSG("Wait for spindle up to speed")
N1240 G4F0.5
N1250 ENDWHILE
N1260 MSG("Short warmup in process - spindle speed "<<$P_S[0])
N1270 G4F60
N1280 S=MAX_S
N1290 WHILE ($AA_S[0]<$P_S[0]*0.9)
N1300 MSG("Wait for spindle up to speed")
N1310 G4F0.5
N1320 ENDWHILE
N1330 MSG("Short warmup in process - spindle speed "<<$P_S[0])
N1340 G4F60
N1350 ENDIF
N1355 ENDIF
N1360 S=PREV_SWORD M=PREV_SDIR M37 M48
N1370 MSG("Spindle warmup complete - press NC START to resume program")
N1380 M0
N1390 MSG
N1400 M17