What's new
What's new

Fanuc 10m ps190 alarm with macro

Oovos

Plastic
Joined
Mar 7, 2019
Hello.

I have three macros which i run on 18i and they all works great. Now iloaded them to our older mori seiki mv junior with fanuc 10m. Two of those macros works but one gives error ps190 (Parameter of max. cutting feedrate was set to 0.). Error comes when macro goes into while loop and it does one g1 move before error. Macro is similar than 2 others and i have tried to change variables and feeds and everything. Max feedrate parameter is not zero. Error comes when macro goes inside while loop and first row is something like g3g91x-#10i-#4z-#3.

Any idea what can cause this? What difference can be in 10m becouse macro works in 18i and two other macros have very similiar consept and they works?
 
Yes everything else works fine. We have not used macros before on this machine. What differences are in macros between older 10/11 comparing to newer 16/18/21 controls?
 
Here is translated. So error comes when it goes to first while loop:
%
:9010(helical hole)

(G65P9010D50T20E5H0R2Z-2)

(#7 D hole dia)
(#20 T tool dia)
(#8 E chip thickness max)
(#11 H z level ABS)
(#18 R feed level INK)
(#26 Z hole depth abs)

#33=#20/2(tool rad)
#32=#7/2(hole rad)
#1=#11+#18(feedlevel)
IF[[#32+0.05]GT[#33]]GOTO1(if fits)
#3000=1(fuck doesnt fit)

N1#12=ABS[#26-#11](how much to remove in z)
#13=FIX[#12/#8](how many rounds in z)
#14=#12-[#13*#8](final chip thickness)
#27=#32-#33(radius to go)
#3=#27/2(go out radius)
#17=#5003
#101=#4001
#102=#4003
#111=#5001
#112=#5002

G0G90Z#17
G0G90Z#1
G91G1X#27Z-#18
#22=0(rounds)

WHILE[#13GT#22]DO1(till deep enough)
G3G91I-#27Z-#8
#22=#22+1(rounds)
END1

IF[#14EQ0]GOTO10
G3G91I-#27Z-#14

N10G3G91I-#27
X-#27I-#3
G0G90Z#1
G0G90Z#17
X#111Y#112
G#101G#102

M99
%
 
And this works:

%
:9011(SPIral hole XY)

(G65P9011D40A20T12E1R2Z-20V1)

(#7 D=hole dia)
(#1 A=start hole dia)
(#20 T=Tool dia)
(#8 chip width max)
(#18 R=safety height ABS)
(#26 Z=hole depth ABS)
(#22 V=final rounds count)

IF[#1GT#20]GOTO1
#3000=1(tool too big)

(radius)
N1#33=#7/2
#32=#1/2
#31=#20/2

#100=#33-#32(how much to remove)
#101=FUP[#100/#8](how many rounds )
#102=#100/#101(chip width)
#103=#32-#31(x now)
#104=0(rounds count)
#105=#103/2(radius now)
#106=0(finish rounds)
#107=#5003
#108=#4001
#109=#4003
#9=#4109
#111=#5001
#112=#5002

N1G0G90Z#107
Z#18
G1Z#26F2000
G3G91X#103I#105F#9(touch)
#103=#103*2

WHILE[#104LT#101]DO1(till enough)
#103=#103+#102/2(new X)
#105=#103/2(new radius)
G3G91X-#103I-#105
#103=#103+#102
#105=#103/2
G3G91X#103I#105
#103=#103+#102/2
#104=#104+1(rounds)
END1

#105=#33-#31
G3G91I-#105(full round)

IF[#22EQ0]GOTO5(if not finishing)

WHILE[#106LT#22]DO2(till enough)
G3G91I-#105
#106=#106+1(count)
END2

N5X-#105I-[#105/2](away)

G0G90Z#107
X#111Y#112
G#108G#109
M99

%
 
Hello Oovos,
#5001, #5002 and #5003 are Block End System Variables for X, Y and Z. I can simulate your Macro with values for these Variables. As there are no axes moves prior to these Variables in your Macro, the values will be coming from your Calling Program. Accordingly, list the lines leading up to the Macro Call in your Calling Program.

Regards,

Bill
 
Hello Oovo,
Using arbitrary values for #5001, #5002, #5003 of X0.0, Y0.0, Z50.0 respectively and values passed with the Call Block of:

#7 = 50.0
#20 = 20.0
#8 = 2.0
#11 = 0.0
#18 = 2.0
#26 = -21.5

Following is the resulting NC Code.

G0 G90 Z50.000
G0 G90 Z2.000
G91 G1 X15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000 Z-1.500
G3 G91 I-15.000
X-15.000 I-7.500
G0 G90 Z2.000
G0 G90 Z50.000
X0.000 Y0.000

Helical Hole Macro1.JPG

Accordingly, there appears to be no issue with the structure of the Macro. However, you have no Feed Rate specified in the Macro that doesn't work for you, whereas, you have a Feed Rate specified in the Macro that does work for you. Depending on the magnitude of the Feed Rate that was set in the Calling Program, this will be the issue.

You say that the error occurs in the first execution of the WHILE LOOP. As the error doesn't occur with the G91G1X#27Z-#18 prior to the WHILE LOOP, there must be a Feed Rate specified in the Calling Program. When executing Helical Interpolation, the Feed Rate is specified along a circular arc. Therefore, the feed rate of the linear axis (Z in your case) is as follows:

FZ=LZ/LC
Where:
FZ = Linear Axis Feed Factor
LZ = Linear Axis Length
LC = Circular arc Length

The above ratio is used to determine the feed rate so the linear axis feed rate does not exceed any of the various limit values set via parameter. There are parameters that can be used to prevent the linear axis feed rate from exceeding various limit values. Therefore, the reason the program may work on your other machines and not the 10M, is that the Feed Rate Limits may be set differently and or the parameter to prevent the linear feed rate exceeding various limits may be set on your other machines and not the 10M.

Another clue that the error is due to the Feed Rate of the Linear Axis, is that the other program that worked that you listed earlier has no Linear Axis Move; its a Macro for Spiral Interpolation. Its similar to the program that raises the error as White Paint is similar to Black Paint in that they are both Paint, but that's where the similarity ends.

Following is the NC Code generated by your Spiral Interpolation Macro:

N1 G0 G90 X0.000 Y0.000
G0 G90 Z50.000
Z2.000
G1 Z-20.000 F2000
G3 G91 X4.000 I2.000 F200.000
G3 G91 X-8.500 I-4.250
G3 G91 X9.500 I4.750
G3 G91 X-10.500 I-5.250
G3 G91 X11.500 I5.750
G3 G91 X-12.500 I-6.250
G3 G91 X13.500 I6.750
G3 G91 X-14.500 I-7.250
G3 G91 X15.500 I7.750
G3 G91 X-16.500 I-8.250
G3 G91 X17.500 I8.750
G3 G91 X-18.500 I-9.250
G3 G91 X19.500 I9.750
G3 G91 X-20.500 I-10.250
G3 G91 X21.500 I10.750
G3 G91 X-22.500 I-11.250
G3 G91 X23.500 I11.750
G3 G91 X-24.500 I-12.250
G3 G91 X25.500 I12.750
G3 G91 X-26.500 I-13.250
G3 G91 X27.500 I13.750
G3 G91 I-14.000
G3 G91 I-14.000
X-14.000 I-7.000
G0 G90 Z50.000
X0.000 Y0.000
G0 G90

Spiral Interpolation1.JPG


Regards,

Bill
 
Last edited:
Do you mean that it somehow gets 0 feed becouse z axis helical interpolation?

Hello Oovos,
The message may be somewhat generic, but it is definitely related to the feed rate of the Linear Axis (Z) of your Helical Interpolation execution. What Feed Rate have you specified in the Calling Program?

Regards,

Bill
 
Here is thread milling macro which also worked and it does also helical milling.

%
:9014(thread milling)

(G65P9015D40A2T22E3Z-20V2)

(#7 D=dia)
(#1 A=pitch)
(#20 T=tool dia)
(#8 E=chip count)
(#26 Z=hole depth abs)
(#22 V=Z rounds)

IF[#22EQ#0]THEN#22=1(Z rounds)
IF[#8EQ#0]THEN#8=1(X rounds)

#32=[0.5773503*[#1/2]*[#1/2]]/#8(chip area)
#104=1(rounds X)
#106=0(rounds Z)
#107=#5003
#108=#4001
#109=#4003
#9=#4109
#111=#5001
#112=#5002

N1G0G90Z#107
Z[#26+2]

WHILE[#104LE#8]DO1(till enough X rounds)
G1G90Z#26F2000
#102=SQRT[[#32*#104]/0.5773503]+[#7-#1-#20]/2(X value)
G3G91X#102I[#102/2]Z[#1/2]F#9

WHILE[#106LT#22]DO2(till enough z rounds)
G3G91I-#102Z#1
#106=#106+1(count Z)
END2

G3G91X-#102I-[#102/2]Z[#1/2]
#104=#104+1(count X)
#106=0
END1

G0G90Z#107
X#111Y#112
G#108G#109
M99

%
 
Here is thread milling macro which also worked and it does also helical milling.

%
:9014(thread milling)

(G65P9015D40A2T22E3Z-20V2)

(#7 D=dia)
(#1 A=pitch)
(#20 T=tool dia)
(#8 E=chip count)
(#26 Z=hole depth abs)
(#22 V=Z rounds)

IF[#22EQ#0]THEN#22=1(Z rounds)
IF[#8EQ#0]THEN#8=1(X rounds)

#32=[0.5773503*[#1/2]*[#1/2]]/#8(chip area)
#104=1(rounds X)
#106=0(rounds Z)
#107=#5003
#108=#4001
#109=#4003
#9=#4109
#111=#5001
#112=#5002

N1G0G90Z#107
Z[#26+2]

WHILE[#104LE#8]DO1(till enough X rounds)
G1G90Z#26F2000
#102=SQRT[[#32*#104]/0.5773503]+[#7-#1-#20]/2(X value)
G3G91X#102I[#102/2]Z[#1/2]F#9

WHILE[#106LT#22]DO2(till enough z rounds)
G3G91I-#102Z#1
#106=#106+1(count Z)
END2

G3G91X-#102I-[#102/2]Z[#1/2]
#104=#104+1(count X)
#106=0
END1

G0G90Z#107
X#111Y#112
G#108G#109
M99

%
Hello Oovos,
You're still not letting on the Feed Rate that you have specified for your
:9010(helical hole) in the Calling Program. The Linear Axis Feed Rate is inter-related to the Feed Rate along the circular arc because the Helical Move is an Interpolation of the three axes.

In the two Macro Programs that have worked, you have explicitly used the Feed Rate specified in the Calling Program with the Block shown in Red above (#9=#4109). The fact the you have not done this in the Macro that doesn't work shouldn't matter, because Feed Rate is Modal. The fact that a Feed Rate has not been specified in the Macro, simply means that the Feed Rate specified in the Calling Program will be used as default.

Also the example Call Blocks for your Helical Hole and Thread Milling Macro use quite different arguments. Accordingly, the Linear Axis Feed will be quite different, given a similar Circular Arc feed for the two examples.

No one from the Forum will be able to help you further without the Feed Rate specified for each of the Macro Programs. But be assured that your issue is related to the Linear Axis Feed Rate and Feed Rate Limits set in parameter.

I tried even 1 mm/min. Also 500 and 1000 but all same results
If you're saying that you only tried these three Feed Rates, you could be going from one extreme to the other (too small - too large). If your Thread Milling Program works without error, try using the data from the Thread Milling Macro in the Helical Hole Macro. Thread Milling is just another version of a Helical Hole Milling process; the Control will not know the difference.



Regards,

Bill
 
Thanks. I will do some more investigating and post results here.
Hello Oovos,

Following is the NC Code generated by your Thread Mill Program.

N1 G0 G90 X0.000 Y0.000
G0 G90 Z50.000
Z-18.000
G1 G90 Z-20.000 F2000
G3 G91 X8.577 I4.289 Z1.000 F200.000
G3 G91 I-8.577 Z2.000
G3 G91 I-8.577 Z2.000
G3 G91 X-8.577 I-4.289 Z1.000
G1 G90 Z-20.000 F2000
G3 G91 X8.816 I4.408 Z1.000 F200.000
G3 G91 I-8.816 Z2.000
G3 G91 I-8.816 Z2.000
G3 G91 X-8.816 I-4.408 Z1.000
G0 G90 Z50.000
X0.000 Y0.000
G0 G90

Thread Mill1.JPG

The only real difference between the Thread Mill and Helical Hole Macro, is that the Thread Mill Tool Path starts at the bottom of the Hole. But in terms of the Linear Axis and Circular Arc Feed relationship, they are the same.

Regards,

Bill
 
Thanks. I will do some more investigating and post results here.
Hello Oovos,
Following is the NC Code generated using the arguments passed to the Macro Program as specified by the following Call Block. This Block is a Copy and Paste from your listing of the program in your Post #6 that you state raises the error.

(G65P9010D50T20E5H0R2Z-2)

Arbitrary values for #5001 - #5003 used are as follow and will have no bearing whatsoever regarding the error being raised.

#5001 = 0.0
#5002 = 0.0
#5003 = 50.0

G0 G90 X0.0 Y0.0
G0 G90 Z50.000
G0 G90 Z2.000
G91 G1 X15.000 Z-2.000
G3 G91 I-15.000 Z-2.000
G3 G91 I-15.000
X-15.000 I-7.500
G0 G90 Z2.000
G0 G90 Z50.000
X0.000 Y0.000

If you were to run the above code, in terms of Tool Path, it will be exactly the same as running your Helical Hole Macro using the arguments passed in the Call Block above. Accordingly, if you use the same Feed Rate that was specified in your Calling Program for the Helical Hole Macro, the same error should be raised as when executing the same Helical Milling operation via your Helical Hole Macro. It would be worthwhile running the above code to simply take the Macro Program out of the picture and show that the issue is related to the ratio of Circular Arc Length, Linear Axis Length and Feed Rate in Helical Interpolation.

Regards,

Bill
 
Hello.

I tried simple program and noticed that if z value on helical interpolation is positive (like in thread milling macro) it works. But if it is negative it wont work.

It make sense if we look equation which Bill wrote:

FZ=LZ/LC
Where:
FZ = Linear Axis Feed Factor
LZ = Linear Axis Length
LC = Circular arc Length

If linear axis value is negative then feed goes negative.

Any ideas how to bybass this problem?
 
Hello.

I tried simple program and noticed that if z value on helical interpolation is positive (like in thread milling macro) it works. But if it is negative it wont work.

It make sense if we look equation which Bill wrote:

FZ=LZ/LC
Where:
FZ = Linear Axis Feed Factor
LZ = Linear Axis Length
LC = Circular arc Length

If linear axis value is negative then feed goes negative.

Any ideas how to bybass this problem?

Hello Oovos,
I think what you're suggesting is a Red Herring. The simple algorithm below is not used by the control, but can be used to determine if the Circular Arc Feed Rate being used will result in the Linear Axis Feed Rate being outside various Limits set in parameter. The Linear Axis Length in the algorithm is the distance traveled by the Linear Axis and direction is irrelevant.

FZ=LZ/LC
Where:
FZ = Linear Axis Feed Factor
LZ = Linear Axis Length
LC = Circular arc Length

Controls are made with a little more flexibility than being able to only Helical Interpolate in the Z+ direction. Feed Rate is Feed Rate irrespective of whether its in a + or - direction.

Did you try the hard code I suggested in Post #17 (the same movements that would have been generated by your Macro that failed). If so did it raise the error as the Macro did? If it did raise the error, did you try the same program, only with Z+ Helical Moves and with no error being raised? I would be gobsmacked if it did.

What Feed Rate did you originally use with the Helical Hole Macro when the error was raised?

Regards,

Bill
 
Yes i tried hard code (no macro). Error raises allways when trying to do sentence like g3g91i-10z-2. If same sentence is with z2, then no error. I tried few different feeds (10-1000 mm/min) and allways same results.
 








 
Back
Top