What's new
What's new

Okuma IF/THEN statement help

Amanor

Plastic
Joined
Jul 26, 2016
I have an issue at lines N495 & N1510 when I run it in my okuma simulator it gives me a
"2553-02 ALARM-B BRANCH(IF,GOTO) No WHILE,IF-THEN,GOTO function" I don't see why it would'nt work and I'm scratching my head. Can anyone please help me with this I'm stepping in new territory at the moment.





Code:
$CB162012.MIN%
O1000
(MAT. CDA932 1=1/PULL 1=30/BAR)
( AM 2/6/14 MODIFIED FOR NEW BARFEEDER)
(G13 T0101 1/32 RADIUS 80 DIAMOND ROUGH O.D.)
(    T0303 1/64 RADIUS 35 DIAMOND FINISH O.D.)
(    T0808 .125 WIDE KENAMETAL CUT-OFF)
(G14 T0505 1/64 RADIUS .7500 DIA. CARBIDE BAR FINISH BORE)
(    T0707 BAR STOPPER)
(PULL BAR 1.80  FROM CHUCK FOR SETUP)
G13
AA50=0303
AA51=0404
AA52=0505
AA98=AA50
TCT1 = 1
G14
AA60=0303
AA61=0404
AA62=0505
AA99=AA60
TCT1 = 1
G13
VCHKL=1.150
VCHKD=.1                      (CHUCK BARRIER)
VCHKZ=-2.90                   (Z-1.750)
VCHKX=.1                      (ACTUAL POSITION CHECK)
G13
NSTRT
G14
NSTRT
G13
M25
G50 S5000
DIA1 = 1.25                   (O.D. FINISH SIZE)
DIA5 = 1.00                     (ROUGH BORE SIZE)
ZZ01 = -1.50                  (FINISH LENGTH)
N10 V30 = 1
N15 COU1 = V30
N20 G00 X10.0 Z1.0 T0101 M09 M42 M05 P-05
N25 M01 P10                (O.D. HOLD)
G14
M25
DIA3 = 1.00                      (I.D. FINISH SIZE)
ZZ03 = -1.50                   (FINISH LENGTH)
N30 V30 = 1
N35 COU1 = V30
N40 G00 X10.0 Z15.0 T0707 M09 M42 M05 P-05
N45 X0.
N50 Z15.
N55 (BARFEED)
N60 IF [COU1 EQ 1] GOTO N70
N65 IF [COU1 GT 1] GOTO N115
N70              (LOAD NEW BAR)
N75 G04 F0.3     (DWELL .5 SEC)
N80 M84          (OPEN CHUCK)
N85 M104         (NEW BAR START)
N90 G04 F20.0    (PUSH OLD SLUG OUT + LOAD BAR)
N95 G00 Z.05     (RAPID TO .05 CEANUP)
N100 M103        (PUSH NEW BAR IN)
N105 G04 F7.0    (DWELL 7 SEC.)
N110 M83         (CHUCK CLOSE)
GOTO N155
N115             (BAR PUSH)
N120 M84         (OPEN CHUCK)
N125 G0 Z.03     (RAPID TO .03)
N130 M103        (BARFEED COUNTER)
N135 G04 F3.0    (DWELL 3 SEC.)
N140 M83         (CHUCK CLOSE)
N145 G04 F0.3    (DWELL .5 SEC)
N155 X10.0 Z4.0
N160 M01 P10
N200 G13
N205 X10.0 Z1.0 S4000 T0101 M08 M42 M03 P15
N215 X=DIA1 + .200 Z.01
N220 G01 X=DIA5 - .200 F.012        (ROUGH FACE)
N225 G00 X5.0 Z.1
N235 G00 X10.0 Z1.0 
N240 X10.0 Z1.0 T=AA98 P17
N245 AA02 = V1                      (V1 TAPER BANK)
N250 DIA2 = DIA1 + AA02
N255 X=DIA1 + .075 Z0.
N260 G01 X=DIA5 - .050 F.0055       (FINISH FACE)
N265 G00 X=DIA1 - .0483 Z.030 P30
N270 G01 Z0. P35
N275 X=DIA1 Z-.0242
N280 X=DIA2 Z=ZZ01 - .0071          (FINISH O.D.)
N285 X=DIA2 -.060 Z=ZZ01 - .0371
N286 X=DIA1 + .005
N287 Z=ZZ01 - .175
N290 G00 X=DIA1 + .200
N295 X10.0 Z1.0
N300 M01 P40
N325 G14
N330 G00 X10.0 Z4.0 S4000 T=AA99 M08 M42 M03 P15
N335 AA03 = V2                      (V2 TAPER BANK)
N340 DIA4 = DIA3 + AA03
N345 X=DIA3 + .0483 Z3.0 P17
N365 Z.030 P30
N370 G01 Z0. F.0055 P35
N375 X=DIA3 Z-.0242
N380 X=DIA4 Z=ZZ03 - .0034          (FINISH BORE)
N385 X=DIA4 + .040 Z= ZZ03 - .0116
N390 X= DIA3 - .010
N395 Z=ZZ03 - .150                  (BORE FOR CUT-OFF)
N395 G00 X=DIA3 - .050 Z1.0
N400 X10.0 Z10.0
N405 M01 P40
N425 G13
N430 G00 G97 X10.0 Z1.0 S1500 T0808 M08 M42 M03 P45
N435 X4.0 Z=ZZ01 - .125 M77         (CATCHER UP)
N440 X=DIA1 + .075
N445 G01 X=DIA5 - .100 F.004        (CUT-OFF)
N450 G00 X4.0
N455 M76                 (CATCHER BACK)
N485 G00 X10.0 Z2.0 P72
N510 TCT1 = TCT1 + 1               (COUNTER FOR TOOL WEAR)
N495 IF [TCT1 GT 5]  THEN [AA98 EQ 0404] (PARTS 5-10 WILL USE T0404)
N500 IF [TCT1 GT 10] THEN [AA98 EQ 0505] (PARTS 10-15 WILL USE T0505)
N505 COU1 = COU1 + 1               (COUNTER FOR BARFEED)
N515 IF [TCT1 LT 15] GOTO N530
N520 IF [TCT1 GT 15] GOTO N550
N530 IF [COU1 LT 31] GOTO N20
N535 IF [COU1 GT 31] GOTO N540
N540 V30=0
/N545 GOTO NSTRT
N550 M24 P75
N475 G14
N480 G00 G97 X10.0 Z12.0 S1500 T0707 M08 M42 M03 P45
N1500 G00 X10. Z15. P72
N1505 TCT1 = TCT1 + 1               (COUNTER FOR TOOL WEAR)
N1510 IF [TCT1 GT 5]  THEN [AA99 EQ 0404] (PARTS 5-10 WILL USE T0404)
N1515 IF [TCT1 GT 10] THEN [AA99 EQ 0505] (PARTS 10-15 WILL USE T0505)
N1520 COU1 = COU1 + 1               (COUNTER FOR BARFEED)
N1530 IF [TCT1 LT 15] GOTO N1545
N1535 IF [TCT1 GT 15] GOTO N1565
N1545 IF [COU1 LT 31] GOTO N40
N1550 IF [COU1 GT 31] GOTO N1555
N1555 V30=0
/N1560 GOTO NSTRT
N1565 M24 P75
N1570 M02
%
 
I have an issue at lines N495 & N1510 when I run it in my okuma simulator it gives me a
"2553-02 ALARM-B BRANCH(IF,GOTO) No WHILE,IF-THEN,GOTO function" I don't see why it would'nt work and I'm scratching my head. Can anyone please help me with this I'm stepping in new territory at the moment.





Code:
$CB162012.MIN%
O1000
(MAT. CDA932 1=1/PULL 1=30/BAR)
( AM 2/6/14 MODIFIED FOR NEW BARFEEDER)
(G13 T0101 1/32 RADIUS 80 DIAMOND ROUGH O.D.)
(    T0303 1/64 RADIUS 35 DIAMOND FINISH O.D.)
(    T0808 .125 WIDE KENAMETAL CUT-OFF)
(G14 T0505 1/64 RADIUS .7500 DIA. CARBIDE BAR FINISH BORE)
(    T0707 BAR STOPPER)
(PULL BAR 1.80  FROM CHUCK FOR SETUP)
G13
AA50=0303
AA51=0404
AA52=0505
AA98=AA50
TCT1 = 1
G14
AA60=0303
AA61=0404
AA62=0505
AA99=AA60
TCT1 = 1
G13
VCHKL=1.150
VCHKD=.1                      (CHUCK BARRIER)
VCHKZ=-2.90                   (Z-1.750)
VCHKX=.1                      (ACTUAL POSITION CHECK)
G13
NSTRT
G14
NSTRT
G13
M25
G50 S5000
DIA1 = 1.25                   (O.D. FINISH SIZE)
DIA5 = 1.00                     (ROUGH BORE SIZE)
ZZ01 = -1.50                  (FINISH LENGTH)
N10 V30 = 1
N15 COU1 = V30
N20 G00 X10.0 Z1.0 T0101 M09 M42 M05 P-05
N25 M01 P10                (O.D. HOLD)
G14
M25
DIA3 = 1.00                      (I.D. FINISH SIZE)
ZZ03 = -1.50                   (FINISH LENGTH)
N30 V30 = 1
N35 COU1 = V30
N40 G00 X10.0 Z15.0 T0707 M09 M42 M05 P-05
N45 X0.
N50 Z15.
N55 (BARFEED)
N60 IF [COU1 EQ 1] GOTO N70
N65 IF [COU1 GT 1] GOTO N115
N70              (LOAD NEW BAR)
N75 G04 F0.3     (DWELL .5 SEC)
N80 M84          (OPEN CHUCK)
N85 M104         (NEW BAR START)
N90 G04 F20.0    (PUSH OLD SLUG OUT + LOAD BAR)
N95 G00 Z.05     (RAPID TO .05 CEANUP)
N100 M103        (PUSH NEW BAR IN)
N105 G04 F7.0    (DWELL 7 SEC.)
N110 M83         (CHUCK CLOSE)
GOTO N155
N115             (BAR PUSH)
N120 M84         (OPEN CHUCK)
N125 G0 Z.03     (RAPID TO .03)
N130 M103        (BARFEED COUNTER)
N135 G04 F3.0    (DWELL 3 SEC.)
N140 M83         (CHUCK CLOSE)
N145 G04 F0.3    (DWELL .5 SEC)
N155 X10.0 Z4.0
N160 M01 P10
N200 G13
N205 X10.0 Z1.0 S4000 T0101 M08 M42 M03 P15
N215 X=DIA1 + .200 Z.01
N220 G01 X=DIA5 - .200 F.012        (ROUGH FACE)
N225 G00 X5.0 Z.1
N235 G00 X10.0 Z1.0 
N240 X10.0 Z1.0 T=AA98 P17
N245 AA02 = V1                      (V1 TAPER BANK)
N250 DIA2 = DIA1 + AA02
N255 X=DIA1 + .075 Z0.
N260 G01 X=DIA5 - .050 F.0055       (FINISH FACE)
N265 G00 X=DIA1 - .0483 Z.030 P30
N270 G01 Z0. P35
N275 X=DIA1 Z-.0242
N280 X=DIA2 Z=ZZ01 - .0071          (FINISH O.D.)
N285 X=DIA2 -.060 Z=ZZ01 - .0371
N286 X=DIA1 + .005
N287 Z=ZZ01 - .175
N290 G00 X=DIA1 + .200
N295 X10.0 Z1.0
N300 M01 P40
N325 G14
N330 G00 X10.0 Z4.0 S4000 T=AA99 M08 M42 M03 P15
N335 AA03 = V2                      (V2 TAPER BANK)
N340 DIA4 = DIA3 + AA03
N345 X=DIA3 + .0483 Z3.0 P17
N365 Z.030 P30
N370 G01 Z0. F.0055 P35
N375 X=DIA3 Z-.0242
N380 X=DIA4 Z=ZZ03 - .0034          (FINISH BORE)
N385 X=DIA4 + .040 Z= ZZ03 - .0116
N390 X= DIA3 - .010
N395 Z=ZZ03 - .150                  (BORE FOR CUT-OFF)
N395 G00 X=DIA3 - .050 Z1.0
N400 X10.0 Z10.0
N405 M01 P40
N425 G13
N430 G00 G97 X10.0 Z1.0 S1500 T0808 M08 M42 M03 P45
N435 X4.0 Z=ZZ01 - .125 M77         (CATCHER UP)
N440 X=DIA1 + .075
N445 G01 X=DIA5 - .100 F.004        (CUT-OFF)
N450 G00 X4.0
N455 M76                 (CATCHER BACK)
N485 G00 X10.0 Z2.0 P72
N510 TCT1 = TCT1 + 1               (COUNTER FOR TOOL WEAR)
N495 IF [TCT1 GT 5]  THEN [AA98 EQ 0404] (PARTS 5-10 WILL USE T0404)
N500 IF [TCT1 GT 10] THEN [AA98 EQ 0505] (PARTS 10-15 WILL USE T0505)
N505 COU1 = COU1 + 1               (COUNTER FOR BARFEED)
N515 IF [TCT1 LT 15] GOTO N530
N520 IF [TCT1 GT 15] GOTO N550
N530 IF [COU1 LT 31] GOTO N20
N535 IF [COU1 GT 31] GOTO N540
N540 V30=0
/N545 GOTO NSTRT
N550 M24 P75
N475 G14
N480 G00 G97 X10.0 Z12.0 S1500 T0707 M08 M42 M03 P45
N1500 G00 X10. Z15. P72
N1505 TCT1 = TCT1 + 1               (COUNTER FOR TOOL WEAR)
N1510 IF [TCT1 GT 5]  THEN [AA99 EQ 0404] (PARTS 5-10 WILL USE T0404)
N1515 IF [TCT1 GT 10] THEN [AA99 EQ 0505] (PARTS 10-15 WILL USE T0505)
N1520 COU1 = COU1 + 1               (COUNTER FOR BARFEED)
N1530 IF [TCT1 LT 15] GOTO N1545
N1535 IF [TCT1 GT 15] GOTO N1565
N1545 IF [COU1 LT 31] GOTO N40
N1550 IF [COU1 GT 31] GOTO N1555
N1555 V30=0
/N1560 GOTO NSTRT
N1565 M24 P75
N1570 M02
%

It's probably syntax. I think the first thing I'd do is try removing "THEN" and see what it does. Step two might be removing the [ ] from [AA98 EQ 0404] You may also have to do something like IF [[TCT1 GT 5] THEN [AA98 EQ 0404]] and put the whole thing in brackets. I don't normally do compound statements where if one thing = x, then y = another but I know that it can be done. I just can't remember where I saw the post about it.

There's a really good group on facebook for Okuma users and there are some mega smart macro guys there that love to get involved in this type of thing.
 
Like said above OKUMA doesn't use the "THEN" part. IF statements just assume GOTO.
After you read...
N495 IF [TCT1 GT 5] THEN [AA98 EQ 0404] (PARTS 5-10 WILL USE T0404)
You need to have the part I put in bold on it's own line, and swap around your syntax a bit. You also swap your statement around going from GT to LE and then "skip" the line.

Try using this instead...
N495 IF [TCT1 LE 5] N496
AA98=0404 (If the above statement is NOT true I.E if your original statement IS true, it reads this line and should do what you wanted)
N496
 
Last edited:
Also, in this area of your code, you don't leave anything for if the value is EQUAL to 31.

N530 IF [COU1 LT 31] GOTO N20
N535 IF [COU1 GT 31] GOTO N540
N540 V30=0

The way the above is written, if COU1 = 31 then both N530 and N535 become false statements, and you will just go to N540 and reset V30 anyway. Probably not a huge deal, but you are losing 1 part if you actually want the second statement to control your count or maybe it's exactly what you need and I would swap N535 to be GE (greater than or equal to) rather than GT. You could also potentially just eliminate the N535 statement since it's really just the inverse of the line before it. If the first statement is false, the second has to be true. As it is I don't think your code has ever read line N535 as a true statement. I hope that makes sense.
 








 
Back
Top