hy teahole
glad to see you ... please, i did not get it :
It will not stop on every line in single block with nothing but variables and as a result the program will keep reading them until it finds something else >so by using "TIME=VDIN[1001]", than when running in single block machine will stop only on lines with variables ? and if this is true, than what is the purpose for this ?
No, this will not change that, but the purpose of the VDIN[####] is to force the control to wait to read ahead in a way that it is calculating variables and numbers ahead of time. If it has to record WHEN something happened, it cannot do it until that line is executed, thus it must wait on that line before calculating any further. It does not change how single block works
TIME is setting a local variable to be named "TIME", and you're setting the value to VDIN[24] > i am lost ... so lost : so a local variable may be initialized with VDIN[1001], and that local variable may be called TIME or LV01 ? and what happens next with the local variable ? this variable stores a value = VDIN[1001], but why does it store it, and for how long ? [24] was a mistype. VDIN[24] is an end of bar signal in a lathe. Meant to type 1001. A local variable is initialized as you say as soon as you define it within a given program. So once TIME exists, I can check it's value. I can also check it's existence.
O1234
IF TIME N1234
TIME=1
VC1=TIME
N1234
RTS
This will set VC1 to 1.
O1234
DAN=1
IF DAN N1234
TIME=1
VC1=TIME
N1234
RTS
This will set DAN to 1 and because DAN exists, skip TIME=1 and VC1=TIME, therefore, not changing it from its previous value.
Id wager the addition of a G code would be correct > why would i add a G code ? when i input "TIME=VDIN[1001]", machine was jumping more than a "single line" in "single block", and i just supposed that it was looking for some G codes
Let me see if I can get a mill for a minute to create a demonstration of what i'm trying to explain here.
However, as another solution, to prove the lathe is correct or the mill is, add an M331 to the lathe before and after the CALL statement. Then, add, and I forget the exact number needed, so we'll guess high, 20 lines that read: G4F.01 before and after the call statement. I think if you were to add the VDIN[1001] with a single G4 it may do the same > so using "TIME=VDIN[1001]" has the same effect like :
Code:
M331
CALL Oxyz
M331
G04 F 0.01 ( ~20 times ? )
NO.
(LATHE CODE)
Code:
M331
CALL Oxyz
M331
(MILL CODE)
Code:
G04 F 0.01 ( ~20 times ? )
CALL Oxyz
G04 F 0.01 ( ~20 times ? )
and the "effect" is ? you mean to delay the buffer ? to avoid the "read ahead" ? i remember you said this before here :
http://www.cnczone.com/forums/okuma/...tructures.html
i have allready disabled the "buffer reading" from machine parameters, and nothing changed ... thus, why would i try other techniques to disable "buffer / read ahead" ?