Machsupport Forum

Third party software and hardware support forums. => SmoothStepper USB => Topic started by: TunerTom on September 03, 2009, 09:36:16 AM

Title: G-Code execution halts
Post by: TunerTom on September 03, 2009, 09:36:16 AM
I have just installed a Smooth Stepper interface. All seems to be working, but my code hangs after it encounters a user-written macro.  It used to work when connected to the PP. 

I added a button & LED to toggle the Tailstock extend/retract function...  (see image 1)

I wrote a VB macro to toggle LED on/off...  (see image 2)

I wrote 2 macros to operate the tailstock on Output(4) so I could manage the tailstock in G-Code
(see image 3)
(see image 4)

Now, take a look at the following code...

N10    %(DIAMETER Mode)
N20    %(Complete profile for KEGGOBLQ in G-Code)
N30    T0101                           %(Set Tool #1)
N40           M801          %(Be sure Tailstock is retracted)
...
...      Note Line N40 executes just fine and program execution continues on. If the tailstock is extended, it will retract.
...
N50    G0 Z-69.4   X40.0           %(Go to 'Home')
N60    M3                                  %(Spindle On)
N70    M800                            %(extend Tailstock)
...
...     The line N70 executes and the tailstock extends
...     At this point the program executions halts and the
...     only way to continue on, is to click the [Cycle Start] button
N80     G04    P1000       %(Dwell 1000 milliseconds)
...
...     From here, the bulk of the profile runs just fine
...     Then when the program reaches line N710  (see below)
...     the M801 executes and the tailstock retracts
...     At this point program execution stops and  the
...     only way to continue on, is to click the [Cycle Start] button just like line N70
...
N690    G0  Z-68.48 X17.44
N700    G0  Z-69.4  X40.0
N710    M801                                  
N720    G04 P1000           %(Dwell 1000 milliseconds)
N730    M5                      %(Spindle Stop)
N740    M30                    %(Reset program)

Although this is sort of 'livable', it is a nusiance to have to 'continue' program execution twice for each run.
Any suggestions would be most appreciated.

Thanks in advance.


Title: Re: G-Code execution halts
Post by: TunerTom on September 03, 2009, 10:26:01 AM
Something to add...

The problem is not limited to user-written macros.
Other files will stop executing at the end of G0 and G1 lines.
In DIAGS, I see the "Dwell" is turning on, but not turning off unti [Cycle Start] is clicked.
Title: Re: G-Code execution halts
Post by: ger21 on September 03, 2009, 11:25:05 AM
Do you have G4 set to milliseconds in General Config?
Title: Re: G-Code execution halts
Post by: Jeff_Birt on September 03, 2009, 12:42:44 PM
What version of mach and plug-in are you using. There has been one other report of a SS stopping after G0's. I have tested many SS's and have never seen this. It makes me believe that 'something' is amiss in the profile. Can you start withe a fresh clean mill profile and see what happens? I would suggest just getting the Ports and Pins set up first in the new profile and test the operation of G0's. Then if that works right copy over your macros.
Title: Re: G-Code execution halts
Post by: TunerTom on September 03, 2009, 04:33:51 PM
OK  The "G04 in milliseconds" setting in General Config is turned on  (see first image)

Mach-3 Version R3.042.029 is installed  (second image)

Smooth Stepper USB Driver 2.04.06  (third image)

Smooth Stepper Plugin  Ver 0.015ogb Config  (fourth image)

Program execution still turns "Dwell" on and won't clear without clicking  [Cycle Start] as describer earlier.
Title: Re: G-Code execution halts
Post by: Jeff_Birt on September 03, 2009, 04:48:23 PM
OK, it has to be something hidden in the XML. Please try creating a brand new one from the stock 'Mill' profile, just change it to use the SS and then set the Ports&Pins up properly. If that works then copy your macros over. I'm not sure what gets screwed up in a profile but there have been a few different reports on the forum of unexplainable silly things happening when a profile gets corrupted.

I had a call from a customer yesterday that started Mach up with a SS profile I sent them BEFORE loading the plug-in. After the SS plug-in was loaded it insisted on setting a bunch of things to default. Even when I walked them through the settings it still would not come out of fault. I sent them another profile (same settings as I was telling them to make) and it magically worked. Some strange Mach variables are being corrupted I would bet.
Title: Re: G-Code execution halts
Post by: TunerTom on September 03, 2009, 05:09:52 PM
OK, I'll do that in the morning and re-post when I get it done. 

I'm doing this on the plotter I have at home on my computer here.
If you think I should really be doing this on the computer at work?

I can do that but I have to disconnect the working PP interface and since it is working
I would have to wait until the lathe is free... that could be a couple of weeks...

The computer at work has been optimized and stripped of everything except for Mach-3
Do you think running this at home on a PC loaded with software is a bad idea?
The plotter ran just fine through the PP here.

(my apologies if this is a dumb question)
Title: Re: G-Code execution halts
Post by: Jeff_Birt on September 03, 2009, 05:23:33 PM
The symptoms you are describing do not strike me as having anything to do with any background processes that might be running on your PC. Since you are using the SS and not the LPT the processor load on the PC is less critical. I think it has to be some goofy profile thing.

If you want to you can post your current XML and a short bit of Gcode (like 10 lines) that replicate the problem and I'll try it here.
Title: Re: G-Code execution halts
Post by: TunerTom on September 03, 2009, 08:37:12 PM
Jeff,

The following code will "hang after executing line N70 and after executing line N110


N05          %(Intended as a Turn Profile)
N10    %(use DIAMETER Mode)
N20    %(Demo profile to show flow interruption)
N30    T0101                                                        %(Set front tool)
N40          M801                         %(Be sure Tailstock is retracted)
N50    G0 Z-69.4   X40.0
N60    M3                               %(Spindle On)
N70    M800                                                         %(extend Tailstock)
N80          G04    P1000                                        %(Dwell 1000 milliseconds)
N90    G0  Z-69.4  X31.76
N100    G01 Z-47.92 X31.76          F150.0
N110    M801                                  %(Retract tailstock to sand)
N120    G04 P2000                             %(Dwell 12000 milliseconds)
N130    M5                                    %(Spindle Stop)
N140    M30                                   %(Reset program)

I've also included the macro files for M800 and M801...
(rename to M800.m1s and M801.m1s
Title: Re: G-Code execution halts
Post by: TunerTom on September 09, 2009, 05:47:22 AM
Really wierd...

I've done a complete uninstall/reinstall of Mach-3 Version   R3.042.029   I removed the original c:\Mach3 folder beforehand and made copies of my two user-writter vb macros M800 and M801. I reinstalled Smoothstepper... went through all the setup steps.  This time Windows found Smoothstepper hardware... There must have been a trace in the Registry,  Maybe I should do a system restore to a date before Smoothstepper was ever installed.

At any rate, I redid all my Ports & Pins settings and my motor tuning...
Still the same problem.  Line N70 of my listed program executes  (M800, my Tailstock extend Macro)... "Dwell" comes on (I have no idea why) and "Dwell" stays on until I click the  [Cycle Start]  button. The program continues on and it executes line N110 (M801, my Tailstock retract Macro)...  and "Dwell" hangs again, list like line N70.  Everything else executes and continues on without interruption. Oddly enough, Line N40 (which is identical to Line N110) works just fine, even if I extend the tailstock beforehand (so the line will actually do something)

If I hook up the PP and disconnect the SS, everything works.
Title: Re: G-Code execution halts
Post by: Jeff_Birt on September 09, 2009, 09:25:13 AM
I noticed looking at your XML that you have a couple of Brains running. What do they do? Did you move them over too? It looks like the combination of calling a macro followed by a pause might be the problem. I wonder what would happen if you put in some Gcode between the macro and Pause? It would not really be needed but it would cause Mach/SS plug-in to get into a 'Gcode finished' state before entering the pause. See the example below.

N30    T0101                       %(Set front tool)
N40    M801                         %(Be sure Tailstock is retracted)
N50    G0 Z-69.4   X40.0
N60    M3                             %(Spindle On)
N70    M800                         %(extend Tailstock)
N80    G0 Z-69.4   X40.0        %(***Do nothing***)
N80    G04    P1000               %(Dwell 1000 milliseconds)
Title: Re: G-Code execution halts
Post by: TunerTom on September 09, 2009, 03:40:49 PM
> Posted by: Jeff_Birt  

> I noticed looking at your XML that you have a couple of Brains running. What do they do?  

TomsBrain.brn...
I have two push-buttons wired to Inputs #1 & #2. The buttons are Active Low.  The first button executes "FeedHold"; the second button Executes "CycleStart".  The third item in this file monitors the state of OemLED(853)  OemLED(853) Is toggled with a user-entered button through a vbStript...

If GetOemLED (853) Then
DeActivateSignal (OutPut4)
Else
ActivateSignal (Output4)
End If  


Output4 is wired to a relay which operated the tailstock extending.
In addition to the toggle function above.
Macro M800  Turns OemLED(853) "on"  which extends the Tailstock
Macro M801  Turns OemLED(*03) off, which retracts the Tailstock

Fishey Huh?  This is all tied to where my program execution gets hung up.  Hmmmm...


The other Brain...  I have no idea what this was... I removed it.

Title: Re: G-Code execution halts
Post by: Jeff_Birt on September 09, 2009, 05:14:23 PM
I would try getting rid of both Brains and change your macros 800 & 801 to directly manipulate Output 4 to extend/retract the tailstock. That will eliminate any possible interaction with Brains.
Title: Re: G-Code execution halts
Post by: TunerTom on September 14, 2009, 04:43:11 AM
Hi Jeff,  Thanks for your patience...

It took me two days to try your latest suggestion.  I decided to bite the bullet and reformat the hard drive on my PC at home (where the plotter and the Smoothstepper board is being tried out) and reinstall Windows and only my essential applications here. With that done, I reinstalled Mach3 and the Smoothstepper software & driver.

Now, there are NO brain files in this setup. As I said earlier, I added a push-button and LED to the "Cycle" screen. The purpose of this is to be able to extend/retract the tailstock manually by clicking the button. Click the button the first time and the LED {oemled(853)} lights up... push the button again and the LED goes off.  This works properly. Then I wrote a simple vbScript to monitor the state of the LED and turn Output(4) "on" whenever the LED is illuminated....

RowlandLathe.m1s...
   If GetOEMLED(853) Then
      DeactivateSignal(Output4)
   Else
      ActivateSignal(Output4)
   End If

Then with Hood's help, he explained how I make a vbScript function as an M-Code, by simply naming the files using the M-Code numbers I wish to use.  They are...

M800.m1s...
   ActivateSignal(Output4)

M801.m1s...
   DeactivateSignal(Output4)


Now, the button I added toggles the OEMLED(853),  on & off as expected.  I have a physical LED on the plotter that indicates whether or not the tailstock is extended. The plotter's pen has a solenoid that raises/lowers the pen.  The pen is associated with the Lathe Spindle motor. So the plotter "draws" only while the spindle is "on" and the tailstock LED on the plotter is lit, only when the tailstock is supposed to be extended.  This is just perfect for debugging profiles before taking them to the lathe.

In Mach3 in Manual Mode, if I enter an "M800", Output(4) blinks (debug screen) the OEM LED lights up, and the physical LED on the plotter lights up...  PERFECT!

If I enter "M801", Output(4) on the debug screen goes off and the physical LED on the plotter goes out.

If I repeatedly click the User Button I added to my screen the OEM LED toggles on/off and the Output(4) LED on the debug screen follows accordingly as well as the physical LED for the tailstock on the plotter.

So now I try the G-Code file. The file executes through the first "M801" and it works just fine.  This first "M801" was intended to ensure the tailstock was retracted until after the spindle is turned on.  This one works. If I start the profile with the tailstock extended, it will retract as the first "M801" is executed, and program execution continues on. If I start the program with the tailstock already retracted, execution still continues on past the first "M801" line

Now (and this happens every time) when the program gets to the M800 Line, The tailstock extends (LED on the plotter turns on) and then DWELL comes "on" and remains on. The program is stuck with a DWELL If I click the [Cycle Start] button the DWELL stops and execution continues on its own until it reaches the remaining "M801" near the end of the profile. The tailstock retracts and once again,  execution is stuck  with a stuck DWELL. I click [Cycle Start] and the profile completes the reaming couple of lines.

Do you think there is a possible conflict with the vbScripts?

If I disconnect the Smoothstepper and connect my PC's parallel port directly to the plotter, executing this profile works without getting stuck.