Probing - would like 2 hits instead of just 1


Results 1 to 15 of 15

Thread: Probing - would like 2 hits instead of just 1

  1. #1
    Registered
    Join Date
    Feb 2011
    Location
    USA
    Posts
    77
    Downloads
    0
    Uploads
    0

    Default Probing - would like 2 hits instead of just 1

    I have a machine (horizontal boring bar - with fanuc 15M controller) that has some probing macro's that I would like to change. I'm no pro at parametric programming. Currently, the probe only hits once when finding a position, as opposed to hitting twice (once at a faster feed rate then pull back and contact at a slower feed rate) like any other machine I've worked on. Also, when hitting that one time, it goes faster than I'd like and I've noticed differences when manually slowing the feed rate, so I'd really like it to hit twice.

    I was wondering if anyone would be willing to take the time to decipher the following programs and let me know what I'd have to do to get it to hit twice, as described above. I have run across some very smart people on this website - was hoping to come across some more (or the same). Here are some programs, with 9100 being probing information and 9300 is the centering program, and all the programs those two programs call up:

    O9100(...PROBE-INFORMATION...)
    IF[#19EQ#0]GOTO20
    IF[#19LE0]GOTO10
    #500=#19
    N10#501=#501+1
    IF[#501LE#500]GOTO11
    #501=1
    N11#502=4
    #505=0
    #506=0
    #507=9
    #141=0
    #142=0
    #143=0
    #144=5
    #145=50
    #146=1000
    #147=5
    #148=5
    #109=0
    IF[#507EQ6]GOTO12
    #510=0
    N12IF[#501NE1]GOTO20
    #119=0
    N20
    #27=#7
    #28=#9
    #29=#18
    #30=#1
    #31=#2
    #33=0
    WHILE[#33LE7]DO1
    IF[#[24+#33]EQ#0]GOTO30
    #[141+#33]=#[24+#33]
    N30#33=#33+1
    END1
    IF[#3EQ#0]GOTO40
    #119=#3
    GOTO50
    N40IF[#11EQ#0]GOTO50
    #119=#[#11]
    N50IF[#507EQ6]GOTO60
    IF[#20EQ#0]GOTO60
    #510=#20
    N60IF[#4EQ#0]GOTO70
    IF[#4EQ#505]GOTO70
    IF[#4NE0]GOTO65
    #505=0
    GOTO70
    N65#505=1
    N70IF[#17EQ#0]GOTO80
    #502=#17
    N80G65P9390B17.
    N99M99
    %

    O9300(...CENTERING...)
    G65P9380B#11
    G65P9150A9300.
    #8=1
    M98P9200
    IF[#110EQ#0]GOTO1
    IF[#110LT0]GOTO10
    N1
    IF[[#23-54]*[#23-59]LE0]GOTO20
    N10#23=0
    GOTO50
    N20
    #23=#23-53
    N30IF[#507NE6]GOTO35
    #30=2500+#23
    #31=2600+#23
    GOTO40
    N35#30=5201+#23*20
    #31=5202+#23*20
    N40
    #17=1
    IF[#17GT0]GOTO45
    #[#30]=#115
    #[#31]=#116
    GOTO50
    N45#[#30]=#[#30]+#115
    #[#31]=#[#31]+#116
    N50G90X#24Y#25
    Z#26
    G65P9120A-1.H126R#18
    IF[#110EQ#0]GOTO61
    #3000=199(ERROR FLAG ON)
    GOTO99
    N61
    G65P9390B12.W#23I#[#30]J#[#31]
    N99M99
    %


    O9200(...INSIDE-DIAMETER...)
    IF[#8NE#0]GOTO10
    IF[#501NE1]GOTO99
    G65P9380B#11
    G65P9150A9200.
    N10IF[#7GT#144]GOTO20
    G65P9150B-1.
    GOTO99
    N20
    G65P9120A1.H126
    G65P9130X#24Y#25Z#26
    #30=[#7-#144]/2
    IF[#502NE3]GOTO40
    N30
    IF[#4NE#0]GOTO32
    #4=90
    #5=210
    #6=330
    N32G65P9110X[COS[#4]]Y[SIN[#4]]C#30
    #111=#138
    #112=#139
    G65P9110X[COS[#5]]Y[SIN[#5]]C#30
    #113=#138
    #114=#139
    G65P9110X[COS[#6]]Y[SIN[#6]]C#30
    #115=#138
    #116=#139
    GOTO50
    N40
    G65P9110X1.C#30
    #111=#138
    G65P9110X-1.C#30
    #113=#138
    G65P9110Y1.C#30
    #114=#139
    G65P9110Y-1.C#30
    #116=#139
    N50
    G65P9140A-1.I#111J#112I#113J#114I#115J#116
    IF[[#19-1]*[#19-2]NE0]GOTO60
    #33=117+#19*3
    #[#33]=#111
    #[#33+1]=#112
    #[#33+2]=#26
    N60G65P9150I#24J#25K#26D#7U#111V#112W#26X#114
    IF[#8NE#0]GOTO99
    G65P9120A-1.H126R#18
    G65P9390B1.
    N99M99
    %

    O9110(...SKIP...)
    (M54)
    #10=#5001
    #11=#5002
    #12=#5003
    #33=#3-#147
    #32=#3+#148
    IF[#33LE0]GOTO10
    #32=#147+#148
    G01G91X[#33*#24]Y[#33*#25]Z[#33*#26]F#146
    N10
    G31G91X[#32*#24]Y[#32*#25]Z[#32*#26]F#145
    G04X2.
    #27=#3+#148
    G04X1.(** 91-3-20 **)
    #28=SQRT[[#5001-#10]*[#5001-#10]+[#5002-#11]*[#5002-#11]+[#5003-#12]*[#5003-#12]]
    IF[#28LT[#27-0.01]]GOTO20
    G65P9150B-2.
    N20
    G04X1.(** 91-3-20 **)
    #4=#5021
    #5=#5022
    #6=#5023
    G01G90X#10Y#11Z#12F#146
    G04
    #30=#119
    G04X1.(** 91-3-20 **)
    #138=#5041-#5001
    #139=#5042-#5002
    #140=#5043-#5003
    #138=#5061+#141-#30*#24-#138
    #139=#5062+#142-#30*#25-#139
    #140=#5063-#30*#26-#140
    G65P9190X#24Y#25Z#26C#3I#4J#5K#6
    N99M99
    %

    O9120(...POSITION-SAVE/RETURN...)
    IF[#1LT0]GOTO20
    N10
    G04X1.(** 91-3-20 **)
    #[#11]=#5001
    #[#11+1]=#5002
    #[#11+2]=#5003
    GOTO99
    N20
    IF[#18EQ99]GOTO99
    IF[#18EQ98]GOTO25
    G65P9130X#[#11]Y#[#11+1]Z#[#11+2]
    GOTO99
    N25
    G04X1.(** 91-3-20 **)
    G65P9130X#5001Y#5002Z#[#11+2]
    N99M99
    %

    O9130(...POSITIONING...)
    IF[#26GT#5003]GOTO20
    N10
    G00G90X#24Y#25
    Z#26
    GOTO99
    N20
    G00G90Z#26
    X#24Y#25
    N99M99
    %

    O9150(...DATA-TRANSFER...)
    IF[#1EQ#0]GOTO10
    #100=#1
    N10#110=#2
    IF[#2NE#0]GOTO20
    #33=0
    WHILE[#33LE3]DO1
    #[101+#33]=#[4+#33]
    #[111+#33]=#[21+#33]
    #[115+#33]=#[21+#33]-#[4+#33]
    #33=#33+1
    END1
    GOTO99
    N20
    IF[#2GE0]GOTO99
    N30G65P9390B#2X#24
    GOTO[40-#2]
    N41#3000=180(ILLEGAL-MACRO-CALL)
    N42#3000=180(SKIP-SIGNAL-NOT-ON)
    N43#3000=180(OUT-OF-TOLERANCE)
    N44#3000=180(TOOL-FAILURE)
    N99M99
    %


    I think I have them all. Any help is appreciated...

    Similar Threads:


  2. #2
    Registered
    Join Date
    Feb 2011
    Location
    USA
    Posts
    77
    Downloads
    0
    Uploads
    0

    Default

    Oh, one more:

    O9380(...MEASURING-NO...)
    IF[#2EQ#0]GOTO10
    #506=#2
    GOTO99
    N10#506=#506+1
    N99M99

    Thanks



  3. #3
    Registered
    Join Date
    May 2004
    Location
    United States
    Posts
    4519
    Downloads
    0
    Uploads
    0

    Default

    Error.

    Last edited by txcncman; 03-12-2012 at 04:24 AM.


  4. #4
    Member
    Join Date
    Sep 2010
    Location
    Australia
    Posts
    1230
    Downloads
    0
    Uploads
    0

    Default

    Hi pwilson,
    The actual measure hit is made in the following program. Its the only program that contains a G31 code, and I've highlighted it in RED. The coordinates of where the Skip Signal occurred are gained by reading the System Variables #5061 to #5063, and are highlighted in GREEN

    Its clear that the program only makes one hit, so to make another hit you would add code after the G31 block highlighted in RED, to back away and repeat G31G91X[#32*#24]Y[#32*#25]Z[#32*#26]F#145. Of course, the amount you back off needs to be less than the inverse incremental move of X[#32*#24]Y[#32*#25]Z[#32*#26], otherwise the G31 Skip Signal may not execute on the second touch. A duplicate of the original G31 block can be used for the second touch.

    However, having said the above, the only accuracy advantage that you would gain from taking a second hit would be to average the value of the two Skip Signal sets of coordinates. The program as is, rough positions at a Feed Rate of F1000 (#146) and then makes the Skip Signal touch at F50 (#145). In programs where two touches are made, its usual for the Probe to make touch at a high Feed Rate then back off to where this program is Rough Positioning, and then takes the second touch at a slow Feed Rate.

    Basically, your program is doing the same as a two touch program, but without the first touch. The two touch program is normally one where the position of the feature to be touched is unknown within a reasonably small tolerance, ie 5mm or so. For example, a Tool Measuring Device, where tools of substantial length variation may be being measured for the first time. There are two different forms of Macro program for this purpose, one where a rough length of the tool being measured is either set in the Tool Length Offset registry, or passed to the Macro, and the second where no rough length is either set of passed. In the second form, the tool is positioned over the Tool Setter, and a Rapid move made in Z to a position well above the Setter, say 50mm for the longest tool that will conceivably be used. The slide then moves at a Fast Feed Rate using a G31 Skip Signal command to find the Setter. The slide then backs off a small incremental move and makes a second touch at Slow Feed.

    If you want a slower Feed Rate for the touch, its #145 that needs to be slowed, not #146. #145 is currently set to #145=50 in your listed program.

    Regards,

    Bill

    O9110(...SKIP...)
    (M54)
    #10=#5001
    #11=#5002
    #12=#5003
    #33=#3-#147
    #32=#3+#148
    IF[#33LE0]GOTO10
    #32=#147+#148
    G01G91X[#33*#24]Y[#33*#25]Z[#33*#26]F#146 << This block positions in fresh air so the Feed Rate is rather irrelevant with regards to accuracy. It needs to be fast so not to waste time positioning for the touch in the following G31 block.
    N10
    G31G91X[#32*#24]Y[#32*#25]Z[#32*#26]F#145
    G04X2.
    #27=#3+#148
    G04X1.(** 91-3-20 **)
    #28=SQRT[[#5001-#10]*[#5001-#10]+[#5002-#11]*[#5002-#11]+[#5003-#12]*[#5003-#12]]
    IF[#28LT[#27-0.01]]GOTO20
    G65P9150B-2.
    N20
    G04X1.(** 91-3-20 **)
    #4=#5021
    #5=#5022
    #6=#5023
    G01G90X#10Y#11Z#12F#146
    G04
    #30=#119
    G04X1.(** 91-3-20 **)
    #138=#5041-#5001
    #139=#5042-#5002
    #140=#5043-#5003
    #138=#5061+#141-#30*#24-#138
    #139=#5062+#142-#30*#25-#139
    #140=#5063-#30*#26-#140
    G65P9190X#24Y#25Z#26C#3I#4J#5K#6
    N99M99
    %

    O9120(...POSITION-SAVE/RETURN...)
    IF[#1LT0]GOTO20
    N10
    G04X1.(** 91-3-20 **)
    #[#11]=#5001
    #[#11+1]=#5002
    #[#11+2]=#5003
    GOTO99
    N20
    IF[#18EQ99]GOTO99
    IF[#18EQ98]GOTO25
    G65P9130X#[#11]Y#[#11+1]Z#[#11+2]
    GOTO99
    N25
    G04X1.(** 91-3-20 **)
    G65P9130X#5001Y#5002Z#[#11+2]
    N99M99
    %

    O9130(...POSITIONING...)
    IF[#26GT#5003]GOTO20
    N10
    G00G90X#24Y#25
    Z#26
    GOTO99
    N20
    G00G90Z#26
    X#24Y#25
    N99M99
    %

    O9150(...DATA-TRANSFER...)
    IF[#1EQ#0]GOTO10
    #100=#1
    N10#110=#2
    IF[#2NE#0]GOTO20
    #33=0
    WHILE[#33LE3]DO1
    #[101+#33]=#[4+#33]
    #[111+#33]=#[21+#33]
    #[115+#33]=#[21+#33]-#[4+#33]
    #33=#33+1
    END1
    GOTO99
    N20
    IF[#2GE0]GOTO99
    N30G65P9390B#2X#24
    GOTO[40-#2]
    N41#3000=180(ILLEGAL-MACRO-CALL)
    N42#3000=180(SKIP-SIGNAL-NOT-ON)
    N43#3000=180(OUT-OF-TOLERANCE)
    N44#3000=180(TOOL-FAILURE)
    N99M99
    %


    I think I have them all. Any help is appreciated...[/QUOTE]

    Last edited by angelw; 03-12-2012 at 05:21 AM.


  5. #5
    Registered
    Join Date
    Feb 2011
    Location
    USA
    Posts
    77
    Downloads
    0
    Uploads
    0

    Default

    Hi Bill,

    Thank you for taking the time to reply to my post.

    Currently, the program takes the one hit, where would I put the duplicate line exactly (to take the second hit)? Also, how would I include this second hit in the calculations? You had said "the only accuracy advantage that you would gain from taking a second hit would be to average the value of the two Skip Signal sets of coordinates. The program as is, rough positions at a Feed Rate of F1000 (#146) and then makes the Skip Signal touch at F50 (#145). In programs where two touches are made, its usual for the Probe to make touch at a high Feed Rate then back off to where this program is Rough Positioning, and then takes the second touch at a slow Feed Rate" How do I get it to average the value of the two Skip Signal sets of coordinates?

    Or don't you think I really need the two hits? The only reason I was trying to get the two hits was because the only hit was fast, but now I see it is at F50 and I'm in IPM so that's 50 IPM, which is too fast I think for a hit. We need to manually override it to slow down enough to give us an accurate reading. Well the other reason I wanted two hits is because I am used to seeing that on every other machine. Do you think it's necessary?

    Program 9100 is the probe information program. In the line with that program, we put what the feed rate should be on the hit and on the approach (at least that's what the book says), it would look something like this:

    G65P9100X0Y0Z12.218A.3B.1C0D.197F.05I0.Q4.R60.S0

    Based on what the book says, the "F.05" should control the speed of the hit and the R60. should be the approach speed (I think) - but it doesn't feed at the slow feed rate when running programs like 9300. I might have found the problem when I typed that line above in because each command needs a decimal point with each value and I notice that the "F.05" has the decimal point right after the "F" which might be screwing things up. I will be in the shop in about 2 hours - I will check that out.

    So, do you think I need the second hit or just slow down the current hit from "F50" to something slower and keep it at one hit? If I need the second hit, could you show me where to put it as well as any other lines of code I may need?

    Thanks for your help....



  6. #6
    Member
    Join Date
    Sep 2010
    Location
    Australia
    Posts
    1230
    Downloads
    0
    Uploads
    0

    Default

    I haven't had a chance to go through the program line by line, but I can tell you about some of your issues.

    1. Your following block, G65P9100X0Y0Z12.218A.3B.1C0D.197F.05I0.Q4.R60.S0, passes the argument A, B, F, and R to O9100, and are Local Variables #1, #2, #9, and #18 in that program. Their values are then allocated to the Local Variables #30, #31, #28 and #29 respectively; and that's where it ends. Accordingly, passing A, B, F and R has no effect.

    2. The Skip program O9110 uses #146 and #145 as the Feed Rate for the Rough Positioning and the Touch respectively. These are Common Variables, set in program O9100 and are not modified anywhere else. Accordingly, if you want a different Feed Rate for either of these, you need to change them in O9100. Clearly, the F and R arguments passed in your call block are not being used to specify or regulate the two Feed Rates.

    3. Clearly, these Macro programs were primarily created for use with a Metric configured machine. However, you could test for the Mode the control is set to, Imperial(G20) or Metric(G21), and convert the Feed Rate stored in #145 and #146 to IMP if the control is set to Imperial Mode. The changes required made to program O9100 are shown in RED

    4. As you're using Imperial mode, it would seem that #147=5 and #148=5 would represent 5" instead of 5mm. These variables are used in the rough positioning and the touch coordinates, they should be converted to inch as well, and probably #144 also.

    You don't need to make a second touch with this program. As I explained in my previous Post, your program does what the two touch program does, but without the first Hard Touch. Its making the Touch at F50 which is a slow feed in Metric Mode. In a two touch program, the second touch would be made at this slow feed rate.

    Does your book give any reference to an "S" argument being passed with this block G65P9100X0Y0Z12.218A.3B.1C0D.197F.05I0.Q4.R60.S0? If so whats its proposed purpose?


    Regards,

    Bill

    O9100(...PROBE-INFORMATION...)
    IF[#19EQ#0]GOTO20
    IF[#19LE0]GOTO10 IF[#19LE0]GOTO9
    #500=#19
    N10#501=#501+1 N9#501=#501+1
    IF[#501LE#500]GOTO11 IF[#501LE#500]GOTO10
    #501=1
    N11#502=4 N10#502=4
    #505=0
    #506=0
    #507=9
    #141=0
    #142=0
    #143=0
    #144=5
    #145=50
    #146=1000
    IF[#4006=21]GOTO11
    #145=[#145/25.4] <Convert to IPM
    #146=[#146/25.4] <Convert to IPM
    N11

    #147=5
    #148=5
    #109=0
    IF[#507EQ6]GOTO12
    #510=0
    N12IF[#501NE1]GOTO20
    #119=0
    N20
    #27=#7
    #28=#9
    #29=#18
    #30=#1
    #31=#2
    #33=0
    WHILE[#33LE7]DO1
    IF[#[24+#33]EQ#0]GOTO30
    #[141+#33]=#[24+#33]
    N30#33=#33+1
    END1
    IF[#3EQ#0]GOTO40
    #119=#3
    GOTO50
    N40IF[#11EQ#0]GOTO50
    #119=#[#11]
    N50IF[#507EQ6]GOTO60
    IF[#20EQ#0]GOTO60
    #510=#20
    N60IF[#4EQ#0]GOTO70
    IF[#4EQ#505]GOTO70
    IF[#4NE0]GOTO65
    #505=0
    GOTO70
    N65#505=1
    N70IF[#17EQ#0]GOTO80
    #502=#17
    N80G65P9390B17.
    N99M99
    %

    Last edited by angelw; 03-12-2012 at 09:49 AM.


  7. #7
    Registered
    Join Date
    Feb 2011
    Location
    USA
    Posts
    77
    Downloads
    0
    Uploads
    0

    Default

    Yes, for the "S" argument, this is what the book says:

    S: Measurement skip frequency (If the number has been already set in common variable #500, S = 0).

    So, setting A & B isn't doing anything in program 9100? It should be the amount of approach and overrun at the time of measurement. In program 9300 (which is the centering program) it is using Local Variables #30 and #31. Also in program 9200 (inside diameter) uses #30 a bunch, but no #31.

    The "F" and "R" are the measurement feed rate and rapid feed rate, which I'm not sure is doing anything (I am about to test it out on the machine). Wouldn't "F" be #9 and "R" be #18? If so, their values are allocated to #28 & #29 in program 9100...

    Regarding the changes required in RED, are these lines supposed to be after the line they are on, or replacing that line, or ?

    Thanks again for your help.



  8. #8
    Registered
    Join Date
    Feb 2011
    Location
    USA
    Posts
    77
    Downloads
    0
    Uploads
    0

    Default

    Oops, sorry, I see that you've already identified "F" and "R" as #9 and #18...



  9. #9
    Registered
    Join Date
    Feb 2011
    Location
    USA
    Posts
    77
    Downloads
    0
    Uploads
    0

    Default

    I just came back from the machine, and I changed #145 (feed rate for the touch) to 2.0 from 50. The machine still touches at F50 IPM though. In the 9100 block, I have the "F" specified at .05. It displays this on the control (Fanuc 15m), but shows the actual at 50.

    I'm lost.



  10. #10
    Member
    Join Date
    Sep 2010
    Location
    Australia
    Posts
    1230
    Downloads
    0
    Uploads
    0

    Default

    Quote Originally Posted by pwilson101 View Post
    I just came back from the machine, and I changed #145 (feed rate for the touch) to 2.0 from 50. The machine still touches at F50 IPM though. In the 9100 block, I have the "F" specified at .05. It displays this on the control (Fanuc 15m), but shows the actual at 50.

    I'm lost.
    Hi pwilson,
    What do you mean by having "F" specified at .05? Do you mean that #145 has the value .05 applied to it, because that's the only way that the Touch Feed Rate is going to be altered.

    If you have changed #145 to 2.0 and it still uses 50 when the probe actually feeds onto the feature, then you must not have supplied all of the program to be looked at.

    Of the programs you have listed #145 and #146 appear only in O9100, the setting program, and O9110, the Skip program where the Touch takes place. These two variables are Common Variables meaning that their value is available in all programs that use them. Unless #145 and #146 are being changed back to 50 and 1000 respectively in another program that you have not Posted then changing them in O9100 will have the value that they're changed to used in O9110.

    To see what Macro Programs are actually being used, and to see whats actually occurring in the various Macro programs, set bit 5 of parameter 0010 to 1. This will allow the Macro statements to be executed in single block mode. Once this parameter is set, launch your call block in single block and step through the whole process until finished, or at least until the control gets to the G31 block in O9110. At any time during this process, you can look at the value of any Variable of interest in the Macro Variable registry pages.

    If you change #145 to 2.0 in O9100, then you should see this value in the Macro Variable Registry Page for that variable number. When you get to the G31 block, check it again. It should still be the value you set it to in O9100 unless its being changed in a program that you haven't Posted. For starters, G65P9390B12.W#23I#[#30]J#[#31] in O9100 is calling O9390 and you don't list that program in your Post.

    Quote Originally Posted by pwilson101 View Post
    Regarding the changes required in RED, are these lines supposed to be after the line they are on, or replacing that line, or ?
    Regarding the blocks that show the the original block in black and the alternate block in RED, replace the Black code with the RED code



    Regards,

    Bill

    Last edited by angelw; 03-12-2012 at 05:20 PM.


  11. #11
    Registered
    Join Date
    Feb 2011
    Location
    USA
    Posts
    77
    Downloads
    0
    Uploads
    0

    Default

    Hi angelw,

    Unfortunately, the job has been pulled from the machine for another job, so I will not be able to investigate again for a week or so, but I do want to resolve the issue so I will post back when I can...

    I did change #145 to 2.0 and it still was feeding at 50. I know what you mean, that there must be somewhere else that it is calling it (#145) up and overriding the 2.0, I just can't find it. I went through the programs to make sure there weren't any other ones being called up and didn't see any that I haven't included except the one you mentioned.

    Here is the program that was missing (9390):

    O9390(...PRINT-OUT/MM...)
    IF[#505EQ0]GOTO9990
    POPEN
    IF[#506NE#0]GOTO10
    #506=0
    N10IF[#24NE#0]GOTO20
    #24=0
    N20IF[#2GE0]GOTO1000
    N100
    GOTO[100-#2*10]
    N110DPRNT[#506[40]-#100[40]*///*ALARM*///*ILLEGAL*MACRO*CALL]
    GOTO200
    N120DPRNT[#506[40]-#100[40]*///*ALARM*///*SKIP*SIGNAL*NOT*ON]
    GOTO200
    N130DPRNT[#506[40]-#100[40]*///*ALARM*///*OUT*OF*TOLERANCE]
    GOTO200
    N140DPRNT[#506[40]-#100[40]*///*ALARM*///*TOOL*FAILURE]
    N200DPRNT[************P#100[40]**********T#24[40]**********H#109[30]]
    #505=0
    GOTO9999
    N1000
    IF[#4006EQ21]GOTO1001
    M98P9394
    GOTO9999
    N1001GOTO[1000+#2*10]
    N1010
    DPRNT[#506[40]-#100[40]*INSIDE*DIAMETER/#502[10]-POINTS]
    GOTO2010
    N1020
    DPRNT[#506[40]-#100[40]*OUTSIDE*DIAMETER/#502[10]-POINTS]
    GOTO2010
    N1030
    DPRNT[#506[40]-#100[40]*CENTER*DISTANCE]
    GOTO2010
    N1040
    DPRNT[#506[40]-#100[40]*WIDTH*OF*GROOVE]
    GOTO2040
    N1050
    DPRNT[#506[40]-#100[40]*THICKNESS]
    GOTO2040
    N1060
    DPRNT[#506[40]-#100[40]*DEPTH*/*HEIGHT]
    GOTO2040
    N1070
    DPRNT[#506[40]-#100[40]*ORTHOGONAL*COORDINATES]
    GOTO2070
    N1080
    DPRNT[#506[40]-#100[40]*INCLINATION]
    GOTO2040
    N1090
    DPRNT[#506[40]-#100[40]*TOOL*LENGTH]
    #30=#[2000+#109]
    DPRNT[************Z0*#103[53]**Z**#113[53]**EZ*#117[53]**H#109[30]*#30[53]]
    GOTO9999
    N1100
    DPRNT[#506[40]-#100[40]*TOOL*WEAR]
    GOTO2040
    N1110
    DPRNT[#506[40]-#100[40]*CENTERING*BY*OUTSIDE*DIAMETER/#502[10]-POINTS]
    IF[#23EQ0]GOTO2010
    GOTO2110
    N1120
    DPRNT[#506[40]-#100[40]*CENTERING*BY*INSIDE*DIAMETER/#502[10]-POINTS]
    IF[#23EQ0]GOTO2010
    GOTO2110
    N1130
    DPRNT[#506[40]-#100[40]*COMPENSATION*OF*DATUM*PLANE]
    IF[#23EQ0]GOTO2040
    #30=53+#23
    GOTO[1130+#24]
    N1131DPRNT[************X0*#101[53]**X**#111[53]**EX*#115[53]**G#30[20]X*#4[53]]
    GOTO9999
    N1132DPRNT[************Y0*#102[53]**Y**#112[53]**EY*#116[53]**G#30[20]Y*#5[53]]
    GOTO9999
    N1133DPRNT[************Z0*#103[53]**Z**#113[53]**EZ*#117[53]**G#30[20]Z*#6[53]]
    GOTO9999
    N1140
    #27=9350
    IF[#100NE9330]GOTO1141
    #27=9340
    N1141#30=#[2000+#109]
    DPRNT[#506[40]-#27[40]*TOOL*OFFSET*CHANGE]
    IF[#27EQ9340]GOTO1142
    DPRNT[************I**#105[53]**J**#106[53]**U**#107[53]**V**#108[53]]
    N1142
    IF[#109GT400.]GOTO1143
    #19=#109-200.
    DPRNT[************P#100[40]**********T#24[40]**************************H#19[30]*#30[53]]
    GOTO9999
    N1143
    #19=#109-600.
    DPRNT[************P#100[40]**********T#24[40]**************************D#19[30]*#30[53]]
    GOTO9999
    N1150
    DPRNT[#506[40]-#100[40]*COORDINATE*OF*PLANE]
    GOTO2040
    N1160
    DPRNT[#506[40]-*9170*ECCENTRICITY*OF*PROBE]
    GOTO2070
    N1170
    DPRNT[#506[40]-*9100*PROBE*INFORMATION]
    DPRNT[************X**#141[53]**Y**#142[53]**Z**#143[53]**D**#144[53]]
    DPRNT[************F**#145[53]**R**#146[53]**A**#147[53]**B**#148[53]]
    DPRNT[************C**#119[53]]
    GOTO9999
    N1180
    DPRNT[#506[40]-*9160*AMOUNT*OF*CALIBRATION]
    DPRNT[************P#100[40]**********C**#119[53]**AT*F#145[53]]
    GOTO9999
    N1190
    IF[#505LT10]GOTO9999
    DPRNT[SKIPPED*AT*X**#138[53]**Y**#139[53]**Z**#140[53]]
    GOTO9999
    N2010
    DPRNT[************X0*#101[53]**X**#111[53]**EX*#115[53]]
    DPRNT[************Y0*#102[53]**Y**#112[53]**EY*#116[53]]
    DPRNT[************D0*#104[53]**D**#114[53]**ED*#118[53]]
    GOTO9999
    N2040
    GOTO[2040+#24]
    N2041DPRNT[************X0*#101[53]**X**#111[53]**EX*#115[53]]
    GOTO9999
    N2042DPRNT[************Y0*#102[53]**Y**#112[53]**EY*#116[53]]
    GOTO9999
    N2043DPRNT[************Z0*#103[53]**Z**#113[53]**EZ*#117[53]]
    GOTO9999
    N2044DPRNT[************A0*#104[53]**A**#114[53]**EA*#118[53]]
    GOTO9999
    N2070
    DPRNT[************X0*#101[53]**X**#111[53]**EX*#115[53]]
    DPRNT[************Y0*#102[53]**Y**#112[53]**EY*#116[53]]
    GOTO9999
    N2110
    #30=53+#23
    DPRNT[************X0*#101[53]**X**#111[53]**EX*#115[53]**G#30[20]X*#4[53]]
    DPRNT[************Y0*#102[53]**Y**#112[53]**EY*#116[53]**G#30[20]Y*#5[53]]
    GOTO9999
    N9999PCLOS
    N9990M99
    %

    It calls up program 9394:

    O9394(...PRINT-OUT/INCH...)
    GOTO[1000+#2*10]
    N1010
    DPRNT[#506[40]-#100[40]*INSIDE*DIAMETER/#502[10]-POINTS]
    GOTO2010
    N1020
    DPRNT[#506[40]-#100[40]*OUTSIDE*DIAMETER/#502[10]-POINTS]
    GOTO2010
    N1030
    DPRNT[#506[40]-#100[40]*CENTER*DISTANCE]
    GOTO2010
    N1040
    DPRNT[#506[40]-#100[40]*WIDTH*OF*GROOVE]
    GOTO2040
    N1050
    DPRNT[#506[40]-#100[40]*THICKNESS]
    GOTO2040
    N1060
    DPRNT[#506[40]-#100[40]*DEPTH*/*HEIGHT]
    GOTO2040
    N1070
    DPRNT[#506[40]-#100[40]*ORTHOGONAL*COORDINATES]
    GOTO2070
    N1080
    DPRNT[#506[40]-#100[40]*INCLINATION]
    GOTO2040
    N1090
    DPRNT[#506[40]-#100[40]*TOOL*LENGTH]
    #30=#[2000+#109]
    DPRNT[************Z0*#103[44]**Z**#11+3[44]**EZ*#117[44]**H#109[30]*#30[44]]
    GOTO9999
    N1100
    DPRNT[#506[40]-#100[40]*TOOL*WEAR]
    GOTO2040
    N1110
    DPRNT[#506[40]-#100[40]*CENTERING*BY*OUTSIDE*DIAMETER/#502[10]-POINTS]
    IF[#23EQ0]GOTO2010
    GOTO2110
    N1120
    DPRNT[#506[40]-#100[40]*CENTERING*BY*INSIDE*DIAMETER/#502[10]-POINTS]
    IF[#23EQ0]GOTO2010
    GOTO2110
    N1130
    DPRNT[#506[40]-#100[40]*COMPENSATION*OF*DATUM*PLANE]
    IF[#23EQ0]GOTO2040
    #30=53+#23
    GOTO[1130+#24]
    N1131DPRNT[************X0*#101[44]**X**#111[44]**EX*#115[44]**G#30[20]X*#4[44]]
    GOTO9999
    N1132DPRNT[************Y0*#102[44]**Y**#112[44]**EY*#116[44]**G#30[20]Y*#5[44]]
    GOTO9999
    N1133DPRNT[************Z0*#103[44]**Z**#113[44]**EZ*#117[44]**G#30[20]Z*#6[44]]
    GOTO9999
    N1140
    #27=9350
    IF[#100NE9330]GOTO1141
    #27=9340
    N1141#30=#[2000+#109]
    DPRNT[#506[40]-#27[40]*TOOL*OFFSET*CHANGE]
    IF[#27EQ9340]GOTO1142
    DPRNT[************I**#105[44]**J**#106[44]**U**#107[44]**V**#108[44]]
    N1142
    DPRNT[************P#100[40]**********T#24[40]**************************H#109[30]*#30[44]]
    GOTO9999
    N1150
    DPRNT[#506[40]-#100[40]*COORDINATE*OF*PLANE]
    GOTO2040
    N1160
    DPRNT[#506[40]-*9170*ECCENTRICITY*OF*PROBE]
    GOTO2070
    N1170
    DPRNT[#506[40]-*9100*PROBE*INFORMATION]
    DPRNT[************X**#141[44]**Y**#142[44]**Z**#143[44]**D**#144[44]]
    DPRNT[************F**#145[44]**R**#146[44]**A**#147[44]**B**#148[44]]
    DPRNT[************C**#119[44]]
    GOTO9999
    N1180
    DPRNT[#506[40]-*9160*AMOUNT*OF*CALIBRATION]
    DPRNT[************P#100[40]**********C**#119[44]**AT*F#145[44]]
    GOTO9999
    N1190
    IF[#505LT10]GOTO9999
    DPRNT[SKIPPED*AT*X**#138[44]**Y**#139[44]**Z**#140[44]]
    GOTO9999
    N2010
    DPRNT[************X0*#101[44]**X**#111[44]**EX*#115[44]]
    DPRNT[************Y0*#102[44]**Y**#112[44]**EY*#116[44]]
    DPRNT[************D0*#104[44]**D**#114[44]**ED*#118[44]]
    GOTO9999
    N2040
    GOTO[2040+#24]
    N2041DPRNT[************X0*#101[44]**X**#111[44]**EX*#115[44]]
    GOTO9999
    N2042DPRNT[************Y0*#102[44]**Y**#112[44]**EY*#116[44]]
    GOTO9999
    N2043DPRNT[************Z0*#103[44]**Z**#113[44]**EZ*#117[44]]
    GOTO9999
    N2044DPRNT[************A0*#104[44]**A**#114[44]**EA*#118[44]]
    GOTO9999
    N2070
    DPRNT[************X0*#101[44]**X**#111[44]**EX*#115[44]]
    DPRNT[************Y0*#102[44]**Y**#112[44]**EY*#116[44]]
    GOTO9999
    N2110
    #30=53+#23
    DPRNT[************X0*#101[44]**X**#111[44]**EX*#115[44]**G#30[20]X*#4[44]]
    DPRNT[************Y0*#102[44]**Y**#112[44]**EY*#116[44]**G#30[20]Y*#5[44]]
    GOTO9999
    N9999M99
    %

    I figured they were print-out programs and weren't relevant, but then again, what do I know?

    I will step the probing cycle through as you suggest, hoping to find where the 50 is coming from.

    Thanks again for taking the time to help.



  12. #12
    Member
    Join Date
    Sep 2010
    Location
    Australia
    Posts
    1230
    Downloads
    0
    Uploads
    0

    Default

    Hi Wilson,
    Yes, its as you thought, this Macro is to output data to a file and has no reference to the variables for Feed Rate.

    Stepping through the program will find whats happening with the #145, #146 variables.

    Keep in touch if you want further help.

    Regards,

    Bill



  13. #13
    Registered
    Join Date
    Mar 2012
    Location
    usa
    Posts
    16
    Downloads
    0
    Uploads
    0

    Default

    I haven't read through all this, but.
    Seems like #145=50 is at least one of the issues?
    And
    F#145 is a feed rate you don't want?

    Then just give it a number you like.

    Change F#145 to F10 or what ever, then who cares what is changing
    #145 variable........



  14. #14
    Registered
    Join Date
    May 2004
    Location
    United States
    Posts
    4519
    Downloads
    0
    Uploads
    0

    Default

    My first question would be, if you probe at the fast feed rate and get a setting and then manually override feed rate to a slower feed rate and probe again, do you get a variation in the setting? If not, the feed rate change would only be to make you more comfortable and does not effect the performance.

    As mentioned before, the 2 hit scenario probably does not save a value that effects the final output setting. It only gets a position to probe to at a slower feed rate. The slow feed rate probing actually captures the position for setting. In this case, see above.

    If the 2 hit scenario is averaging, then it may be of value, if you do obtain a difference between the first hit and the second hit.



  15. #15
    Member
    Join Date
    Sep 2010
    Location
    Australia
    Posts
    1230
    Downloads
    0
    Uploads
    0

    Default

    In the OP's particular Probe Program, there is no second hit. In the following blocks:

    G01G91X[#33*#24]Y[#33*#25]Z[#33*#26]F#146 << This block just gets the Probe close to the feature, but is in fresh air when the block terminates.

    G31G91X[#32*#24]Y[#32*#25]Z[#32*#26]F#145 << This block uses the G31 Skip Function to make contact with the Feature.


    This type of Macro relies on the approximate position of the feature being known. The Macro that uses two hits is one where the Feature position is generally unknown. In this case, G31 would be used in both the above blocks, so that the first block would have the Probe head in the correct direction and find the Feature by basically running into it. The probe would when be moved away form the feature a short distance and a second touch made via the second block at a slower feed rate.

    exhaustgases is correct in that the occurrences of F#145 could be replaced with a fixed feed rate, but it starts to erode the flexibility of the program. Its not Rocket Science to find where and why #145 is being changed. Step through the program once in single block would reveal all, and pwilson may have found the issue given that its been some time now since he last visited this Thread.

    Regards,

    Bill



Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •  


About CNCzone.com

    We are the largest and most active discussion forum for manufacturing industry. The site is 100% free to join and use, so join today!

Follow us on


Our Brands

Probing - would like 2 hits instead of just 1

Probing - would like 2 hits instead of just 1