dave wrote:
> On Mon, 2010-05-17 at 20:42 -0500, Jon Elson wrote:
>    
>> John Kasunich wrote:
>>      
>>> The quirks are not with offsets.  The problem is "run-from-line".
>>>
>>> It is evil.  Don't do it.
>>>
>>> Sorry, just had to say that.... IMO RFL is only suitable for
>>> very simple programs, I don't trust it to handle subroutines,
>>> offsets, etc correctly.
>>>
>>> We've had the discussion of why a rock-solid RFL is a hard
>>> problem about 100 times...
>>>
>>>        
>> Ugh, this is bad news.  I really hate this bit of having to edit the
>> program and reload every time something goes wrong and you have to pick
>> up in the middle of a program.
>>
>> I have had good luck with it on totally linear programs.
>>
>> Jon
>>
>>      
> Maybe this is a gentle hint to stay with linear programs. KISS
> has its advantages.
> I do a lot of work with a few lines of C to write G code.
> Yes it generates lots of lines but to my simple mind an easier way to
> go. ;-)
>    
Actually, I think RFL works fine, you just have to understand what 
happens when you stop a program midway through.

My understanding of run from line is that it does execute the entire 
program up to the selected line, simply not issuing NML commands for 
motion or I/O (machine state).  (coincidentally, my first commit to EMC 
was to change the interpreter so it would execute these lines faster)  
The trouble happens when the program is stopped, not when it's 
restarted.  When you stop a program, you stop both the motion controller 
and the interpreter, but they don't get stopped in the same place.  The 
interpreter will likely be miles ahead of the motion controller.  In a 
program that depends on existing machine state when it's run (e.g. you 
touch off G92 before running), and which changes that state (e.g. by 
issuing G92 commands), the initial state will be different when you 
restart.  Compound that with the fact that what you see - the machines 
physical position - does not match the interpreter state due to 
read-ahead, and things can be very confusing.

Another point that I think Steve B quoted from the manual - the machine 
moves to the endpoint of the previous line, and then executes the 
selected line.  In Jon's case, the previous line happened to be a 
subroutine call.  I think that shouldn't matter, and it's a bug if it 
does.  The observation that the program seems to start a few dozen lines 
away from the selected start point is troubling, and may also indicate a 
bug.  It's possible that this is an observation error though - changes 
in offsets could make the earlier lines execute in the machine position 
that the later lines would have.  (this is all irrelevant if the display 
showed the later lines being executed.

- Steve


------------------------------------------------------------------------------

_______________________________________________
Emc-developers mailing list
Emc-developers@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/emc-developers

Reply via email to