Is there a way to test for Skip Signal?
I'd like to make the G31 move, then test to see whether or not I actually got the Skip Signal, I can compare the axis position to the commanded position but I'd rather do it more simply and directly if possible... just in case I miss the target, that's what I am checking for, to see if I actually touched the part.
Thanks in advance,
Here's an example for an X-axis move. Is this what you're looking for?
#1=#5041(X START POS)
IF[ABS[#5061-[#1+#24]] LT 0.001]GOTO9999
N9999 #3000=1(NO SKIP SIGNAL)
Originally Posted by Denim
I was hoping to avoid all of the processing just to check for the Skip Signal, but yes, that is what I will do if there's no other way...
I do see that you are using 5041 as opposed to 5001, why is that?
I think I see why, 5001 is where it was commanded to go, we want to see where it actually went.
Originally Posted by ttx336
If I'm right about that, can I simply compare 5001 and 5041, if they're equal, won't that tell me that I missed?
Hmm, since the current position is saved to #1 prior to the skip-feed block I would think that #5001 and #5041 both hold the same value at this point.
Originally Posted by ttx336
You might be able to compare #5001 to #5041 (or the actual skip coordinate, #5061) on the first block after the skip move, but I have not tested this so I can't be sure.
Either way, it is probably a good idea to check if the difference between the positions is larger than a very small amount (0.001mm in my example) rather than checking if they are equal. The reason for this is to avoid false errors due to floating point rounding errors in the control.
I do agree with that, I have seen some equality tests fail because of that... you are hitting on something that I am trying to get a handle on... that is, what is/are the differences in 5001, 5041 and 5061? I see that 5001 is without tool comp, but also, Fanuc say in the manual that it is "Block End Point" so I am under the impression that is where the machine is being commanded to as opposed to where it actually at since we have this Skip Function and it is providing us a way to stop short if we desire to with a probe, etc. But what the heck is this #540X"Current" position versus #560X"Skip Signal Position"? Seems to me that they would be the same always... I really wish I could just go put my hands on a machine and test this all but all of the machines are running production, not like when I worked in a job shop and I setup and ran my own machine(s).
Originally Posted by Denim
And even then, for #5001, if I am at X8.5 in WCS and I command an incremental move of, say, G91X1.0, would #5001 show X1.0 or X9.5?
Since No machine can stop Instantaneously! there is the location where the skip signal was detected, and the location where the machine was finally able to slam to a stop, after seeing the skip signal.
The slower the feed rate, the closer the two positions will be.
The commanded position will be farther along than the position where the skip was detected, if it did in fact sense something.
To merely test if a Skip Signal has occurred, a common technique is to compare the Skip Signal System Variable, with the Block End Point. The logic in this, is that an end point past the expected Skip Signal position is normally programmed. Accordingly, the Skip Signal System Variable will be a value other than the Block End Point if the Skip Signal was turned on in a G31 block. If the Skip Signal was not turned on, the end point of the specified block is held in the Skip Signal System Variables.
If you simply want to know if skip check works, go to a Manual Data Input window and enter
G91 G31 X5.0 F1. and run it
The machine should attempt to move 5" in X at a very slow feed rate. Once it starts moving manually trigger your probe. If everything is working, motion should stop and you should still see soem value in the disatnce to go screen.
The axis is irrelevant. It can be any axis that won't result in a collision before the movement completes.
Originally Posted by Stuart Caruk
I was assuming that the probe is functioning properly, my aim here, is to make sure that the probe actually touched the part. My concern is that during an unattended operation, and using a setup probing routine, if, say a bore was oversize, then possibly the probe could travel all the way to the programmed dimension and actually make it to the block endpoint and I wanted to know if I could test for that... Here's an exaggerated hypothetical case: I'm probing a 3" bore for a new fixture offset but I inadvertently program for a 2" bore... I was thinking that if the probe missed the part completely (stopping short on each move) I would not get any change from the initial fixture offset because each probing move would be exactly the same length... Something like that anyway. So if I could look for some kind of signal that the Skip Function was activated then I would know that the probe was indeed triggered. It sounds like the general consensus is that I can compare the Block Endpoint with the Skip Signal Position - so something like
The reason I would not want to simply program an excessively large move is that I will often be probing down in counterbores and if I overrun the bore, the body of the probe will contact the casting and wreck the probe, so I need to be very conservative on the probing moves.
This new machine is set to arrive next week and will be operational soon after. I will certainly test all of this and report back what I learn about it.
If you're using a Renishaw probe and one of their probing macros, it will alarm out if it doesn't trigger within the skip check distance you called out in the program. If you use protected positioning moves, it will alarm out if it triggers before you start your probing routine, although if the machine is in full rapid, you may not have a stylus left when it stops.... I typically bump the rapids down to 25% when I close the doors and walk away... just in case...