What's new
What's new

Heidenhain Q def / Macro

Redwineracing

Plastic
Joined
Mar 16, 2018
HELP I am trying to write a macro to call 7 different programs with a possible 10 different datums and jus to complicate it even further some Datums may have nothing to machine so would need to be skipped.
Datum 1 could have program 1 through to 7
Datum 2 could have program 1 through to 7
Datum 3 could have program 1 through to 7
Datum 4 could have program 1 through to 7
Datum 5 could have program 1 through to 7
Datum 6 could have program 1 through to 7
Datum 7 could have program 1 through to 7
Datum 8 could have program 1 through to 7
Datum 9 could have program 1 through to 7
Datum 10 could have program 1 through to 7

I am trying to write the program so that the operator just has to enter no more than two variables for each pocket.
I seem to have hit a brick wall with this one so any help would be appreciated
Regards Martin
 
If the datums are not varying actively do you really need Q defs?

Make the datums programs, then call them
the operator is looking at a program that looks like this
call pgm datum1
call pgm1
call pgm 3
call pgm 4
call pgm 7
call pgm datum2
call pgm 2
call pgm 5
 
HELP I am trying to write a macro to call 7 different programs with a possible 10 different datums and jus to complicate it even further some Datums may have nothing to machine so would need to be skipped.
Datum 1 could have program 1 through to 7
Datum 2 could have program 1 through to 7
Datum 3 could have program 1 through to 7
Datum 4 could have program 1 through to 7
Datum 5 could have program 1 through to 7
Datum 6 could have program 1 through to 7
Datum 7 could have program 1 through to 7
Datum 8 could have program 1 through to 7
Datum 9 could have program 1 through to 7
Datum 10 could have program 1 through to 7

I am trying to write the program so that the operator just has to enter no more than two variables for each pocket.
I seem to have hit a brick wall with this one so any help would be appreciated
Regards Martin

So do you mean you want to run 1 program per datum? or multiple programs per datum?


If its one you could have the operator enter something such as

;1
FN0: Q1 = 1 ; DATUM 1 - YES/NO (1/0)
FN0: Q2 = 1; PROGRAM NUMBER
;
;2
FN0: Q3 = 0 ; DATUM 2 - YES/NO (1/0)
FN0: Q4 = 5; PROGRAM NUMBER
;
;3
FN0: Q5 = 1 ; DATUM 3 - YES/NO (1/0)
FN0: Q6 = 7; PROGRAM NUMBER
;
etc...
;******************************
;then add your logic

FN9: IF Q1 EQU 0 GOTO LBL "NEXT1
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 #1
CALL LBL Q2
LBL "NEXT1"
;
FN9: IF Q3 EQU 0 GOTO LBL "NEXT2
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 #2
CALL LBL Q4
LBL "NEXT2"
;
FN9: IF Q5 EQU 0 GOTO LBL "NEXT3
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 #3
CALL LBL Q6
LBL "NEXT3"
;
ETC..

M30
;
LBL 1
; PGM 1
...
...
LBL0
;
LBL 2
; PGM 2
...
...
LBL0
;
LBL 3
; PGM 3
...
...
LBL0
;
etc...


Other ways to do it too

which control version do you have?
 
The control is an ITNC 530
sometimes there might only be 1 pocket used at a time sometimes all 10 pockets but with different materials.
So pocket 1 could have Ali, pocket 2 ti, pocket 3 St St, and so on. It will be run by a basic operator so I want it as simple as possible so that all they have to do is enter up to 10 variables at the beginning of the program to assign the material to the pocket and call the correct program. It is a two stage fixture and the parts will be probed before moving in the fixture for op two.

Regards Martin
I think this might work but it still requires the operator to input 2 sets of data. A value for the pocket and a value for the program. I would like it to be just 1 value for each pocket but not sure if it's possible.
BEGIN PGM MACRO-TEST MM
FN 0:0000 Q1=+1; Pocket 1 Starting from the left to right (Stes The Datum shift for each pocket)
FN 0:0000 Q2=+2 ;Pocket 2
FN 0:0000 Q5=+3 ;Pocket 3
FN 0:0000 Q7=+4 ;Pocket 4
FN 0:0000 Q9=+5 ;Pocket 5 FN 0:0000 Q1=+6 ;Pocket 6
FN 0:0000 Q3=+7 ;Pocket 7
FN 0:0000 Q5=+8 ;Pocket 8
FN 0:0000 Q7=+9 ;Pocket 9
FN 0:0000 Q9=+10 ;Pocket 10
FN 0:0000 Q31=+31 ;Program for pocket 1 (sets which program to use for each pocket) FN 0:0000 Q32=+32 ;Program for pocket 2
FN 0:0000 Q33=+31 ;Program for pocket 3
FN 0:0000 Q34=+33 ;Program for pocket 4
FN 0:0000 Q35=+32 ;Program for pocket 5
FN 0:0000 Q36=+31 ;Program for pocket 6
FN 0:0000 Q37=+31 ;Program for pocket 7
FN 0:0000 Q38=+31 ;Program for pocket 8
FN 0:0000 Q39=+31 ;Program for pocket 9
FN 0:0000 Q40=+31 ;Program for pocket 10

CYCL DEF 7.0 DATUM SHIFT; Cancel Datum shift in case of restart.
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CYCL DEF 7.3 Z0.0
FN 9:0000IF + Q1EQU +1 GOTO LBL 1; jump statement to label
FN 9:0000IF + Q2EQU +2 GOTO LBL 2
FN 9:0000IF + Q3EQU +3 GOTO LBL 3
FN 9:0000IF + Q4EQU +4 GOTO LBL 4
FN 9:0000IF + Q5EQU +5 GOTO LBL 5
FN 9:0000IF + Q6EQU +6 GOTO LBL 6
FN 9:0000IF + Q7EQU +7 GOTO LBL 7
FN 9:0000IF + Q8EQU +8 GOTO LBL 8
FN 9:0000IF + Q9EQU +9 GOTO LBL 9
FN 9:0000IF + Q10EQU +10 GOTO LBL 10

FN 9:0000IF + Q2EQU +0 GOTO LBL 11; terminate program if 0 parts are loaded
FN 9:0000IF + Q3EQU +0 GOTO LBL 11
FN 9:0000IF + Q4EQU +0 GOTO LBL 11
FN 9:0000IF + Q5EQU +0 GOTO LBL 11
FN 9:0000IF + Q6EQU +0 GOTO LBL 11
FN 9:0000IF + Q7EQU +0 GOTO LBL 11
FN 9:0000IF + Q8EQU +0 GOTO LBL 11
FN 9:0000IF + Q9EQU +0 GOTO LBL 11
FN 9:0000IF + Q10EQU +0 GOTO LBL 11
M30 End of program
LBL 1
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X20.0
CYCL DEF 7.2 Y0.0
CALL LBL Q31; CALL MACHINE SEQUENCE
LBL 0
LBL 2
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X40.0
CYCL DEF 7.2 Y0.0
CALL LBL Q32; CALL MACHINE SEQUENCE
LBL 0
LBL 3
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X60.0
CYCL DEF 7.2 Y0.0
CALL LBL Q33; CALL MACHINE SEQUENCE
LBL 0
LBL 4
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X80.0
CYCL DEF 7.2 Y0.0
CALL LBL Q34; CALL MACHINE SEQUENCE
LBL 0
LBL 5
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X100.0
CYCL DEF 7.2 Y0.0
CALL LBL Q35; CALL MACHINE SEQUENCE
LBL 0
LBL 6
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CALL LBL Q36; CALL MACHINE SEQUENCE
LBL 0
LBL 7
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CALL LBL Q37; CALL MACHINE SEQUENCE
LBL 0
LBL 8
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CALL LBL Q38; CALL MACHINE SEQUENCE
LBL 0
LBL 9
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CALL LBL Q39; CALL MACHINE SEQUENCE
LBL 0
LBL 10
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CALL LBL Q40; CALL MACHINE SEQUENCE
LBL 0
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CYCL DEF 7.3 Z0.0

LBL 31; MACHINE SEQUENCE
TOOL CALL 1 Z0.0S1500
CYCL DEF 200 DRILLING ~
Q200=+2 ;SET-UP CLEARANCE ~
Q201=-20 ;DEPTH ~
Q206=+150 ;FEED RATE FOR PLNGNG ~
Q202=+5 ;PLUNGING DEPTH ~
Q210=+0 ;DWELL TIME AT TOP ~
Q203=+0 ;SURFACE COORDINATE ~
Q204=+50 ;2ND SET-UP CLEARANCE ~
Q211=+0 ;DWELL TIME AT DEPTH ~
Q395=+0 ;DEPTH REFERENCE
M13
M99
LBL 0
LBL 32; MACHINE SEQUENCE
TOOL CALL 1 Z0.0S1500
CYCL DEF 200 DRILLING ~
Q200=+2 ;SET-UP CLEARANCE ~
Q201=-20 ;DEPTH ~
Q206=+150 ;FEED RATE FOR PLNGNG ~
Q202=+5 ;PLUNGING DEPTH ~
Q210=+0 ;DWELL TIME AT TOP ~
Q203=+0 ;SURFACE COORDINATE ~
Q204=+50 ;2ND SET-UP CLEARANCE ~
Q211=+0 ;DWELL TIME AT DEPTH ~
Q395=+0 ;DEPTH REFERENCE
M13
M99
LBL 0
LBL 33 ; MACHINE SEQUENCE
TOOL CALL 1 Z0.0S1500
CYCL DEF 200 DRILLING ~
Q200=+2 ;SET-UP CLEARANCE ~
Q201=-20 ;DEPTH ~
Q206=+150 ;FEED RATE FOR PLNGNG ~
Q202=+5 ;PLUNGING DEPTH ~
Q210=+0 ;DWELL TIME AT TOP ~
Q203=+0 ;SURFACE COORDINATE ~
Q204=+50 ;2ND SET-UP CLEARANCE ~
Q211=+0 ;DWELL TIME AT DEPTH ~
Q395=+0 ;DEPTH REFERENCE
M13
M99
LBL 0

LBL 11 ; TERMINATE PROGRAM LABEL
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CYCL DEF 7.3 Z0.0
M30
LBL 0
END PGM MACRO-TEST MM
 
Last edited:
Here is one way that should work

BEGIN PGM MACRO-TEST2 MM
;
* - PGM 0 SKIPS POCKET
;
* - Pocket 1
FN0: Q1 = 31; PROGRAM NUMBER
;
* - Pocket 2
FN0: Q2 = 32; PROGRAM NUMBER
;
* - Pocket 3
FN0: Q3 = 31; PROGRAM NUMBER
;
* - Pocket 4
FN0: Q4 = 33; PROGRAM NUMBER
;
* - Pocket 5
FN0: Q5 = 32; PROGRAM NUMBER
;
* - Pocket 6
FN0: Q6 = 31; PROGRAM NUMBER
;
* - Pocket 7
FN0: Q7 = 31; PROGRAM NUMBER
;
* - Pocket 8
FN0: Q8 = 31; PROGRAM NUMBER
;
* - Pocket 9
FN0: Q9 = 31; PROGRAM NUMBER
;
* - Pocket 10
FN0: Q10 = 31; PROGRAM NUMBER
;
;*******************************
;*******************************
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CYCL DEF 7.3 Z0.0
;
; 1
FN9: IF Q1 EQU 0 GOTO LBL "NEXT1"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CALL LBL Q1
LBL "NEXT1"
;
; 2
FN9: IF Q2 EQU 0 GOTO LBL "NEXT2"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X20.0
CYCL DEF 7.2 Y0.0
CALL LBL Q2
LBL "NEXT2"
;
; 3
FN9: IF Q3 EQU 0 GOTO LBL "NEXT3"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X40.0
CYCL DEF 7.2 Y0.0
CALL LBL Q3
LBL "NEXT3"
;
; 4
FN9: IF Q4 EQU 0 GOTO LBL "NEXT4"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X40.0
CYCL DEF 7.2 Y0.0
CALL LBL Q4
LBL "NEXT4"
;
; 5
FN9: IF Q5 EQU 0 GOTO LBL "NEXT5"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X60.0
CYCL DEF 7.2 Y0.0
CALL LBL Q5
LBL "NEXT5"
;
; 6
FN9: IF Q6 EQU 0 GOTO LBL "NEXT6"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X80.0
CYCL DEF 7.2 Y0.0
CALL LBL Q6
LBL "NEXT6"
;
; 7
FN9: IF Q7 EQU 0 GOTO LBL "NEXT7"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X100.0
CYCL DEF 7.2 Y0.0
CALL LBL Q7
LBL "NEXT7"
;
; 8
FN9: IF Q8 EQU 0 GOTO LBL "NEXT8"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X120.0
CYCL DEF 7.2 Y0.0
CALL LBL Q8
LBL "NEXT8"
;
; 9
FN9: IF Q9 EQU 0 GOTO LBL "NEXT9"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X140.0
CYCL DEF 7.2 Y0.0
CALL LBL Q9
LBL "NEXT9"
;
; 10
FN9: IF Q10 EQU 0 GOTO LBL "NEXT10"
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X160.0
CYCL DEF 7.2 Y0.0
CALL LBL Q10
LBL "NEXT10"
;
CYCL DEF 7.0 DATUM SHIFT
CYCL DEF 7.1 X0.0
CYCL DEF 7.2 Y0.0
CYCL DEF 7.3 Z0.0
;
M30 ; End of program
;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;
LBL 31; MACHINE SEQUENCE
TOOL CALL 1 Z S1500
CYCL DEF 200 DRILLING ~
Q200=+2 ;SET-UP CLEARANCE ~
Q201=-20 ;DEPTH ~
Q206=+150 ;FEED RATE FOR PLNGNG ~
Q202=+5 ;PLUNGING DEPTH ~
Q210=+0 ;DWELL TIME AT TOP ~
Q203=+0 ;SURFACE COORDINATE ~
Q204=+50 ;2ND SET-UP CLEARANCE ~
Q211=+0 ;DWELL TIME AT DEPTH ~
Q395=+0 ;DEPTH REFERENCE
M13
M99
LBL 0
;
LBL 32; MACHINE SEQUENCE
TOOL CALL 1 Z S1500
CYCL DEF 200 DRILLING ~
Q200=+2 ;SET-UP CLEARANCE ~
Q201=-20 ;DEPTH ~
Q206=+150 ;FEED RATE FOR PLNGNG ~
Q202=+5 ;PLUNGING DEPTH ~
Q210=+0 ;DWELL TIME AT TOP ~
Q203=+0 ;SURFACE COORDINATE ~
Q204=+50 ;2ND SET-UP CLEARANCE ~
Q211=+0 ;DWELL TIME AT DEPTH ~
Q395=+0 ;DEPTH REFERENCE
M13
M99
LBL 0
;
LBL 33 ; MACHINE SEQUENCE
TOOL CALL 1 Z S1500
CYCL DEF 200 DRILLING ~
Q200=+2 ;SET-UP CLEARANCE ~
Q201=-20 ;DEPTH ~
Q206=+150 ;FEED RATE FOR PLNGNG ~
Q202=+5 ;PLUNGING DEPTH ~
Q210=+0 ;DWELL TIME AT TOP ~
Q203=+0 ;SURFACE COORDINATE ~
Q204=+50 ;2ND SET-UP CLEARANCE ~
Q211=+0 ;DWELL TIME AT DEPTH ~
Q395=+0 ;DEPTH REFERENCE
M13
M99
LBL 0
;
END PGM MACRO-TEST2 MM
 








 
Back
Top