Custom Spindle Speed Variation for DMG Mori NLX 2500

Custom Spindle Speed Variation for DMG Mori NLX 2500

GermanWings
Advocate Advocate
1,032 Views
1 Reply
Message 1 of 2

Custom Spindle Speed Variation for DMG Mori NLX 2500

GermanWings
Advocate
Advocate

Hello,

I am trying to modify my DMG Mori NLX 2500, post to have a Spindle Speed Variation Function as Haas ST20Y Post has, The Spindle Speed Variation Command varies the Speed of Spindle by certain range at a fixed time frequency. This helps avoid chatter.

Now SSV is standard on Haas Controls, but it is an option on DMG Mori MAPPS Control, the option is expensive, and I don’t have budget for it.

So, I thought if I write a Spindle Speed Command on every line of code it will work the same way as Haas M138 SSV Command Does.

However, Spindle Accelerating and Decelerating takes some time so something like

 

S1000 M03 (Spindle On)

X 10. Z20. (Movement)

S1500 M03 (Spindle Speed Change) <- This will not be executed before the 
                                    movement is completed

 

Would take much time and would make my program appear jittery as it is being interpreted line by line. The Haas Control must be using Background Thread to vary the spindle speed, so the program movements go as normal.

The solution to this problem must be making little spindle speed changes so line by line interpretation is quick. However, if a long movement code is added, my spindle speed would only change until that long movement code is executed, this would cause chatters.

The other solution would be to break the movement codes into short steps and then add minor spindle speed changes. This could work to an extent, with some rules such as Haas M138 takes a RPM Range and a Seconds Value, so I must modify my post in such a way that it breaks the Movement Codes by factoring feed and time.

 

For Example:

  • My Feed is 1mm/rev
  • My Spindle Speed is 1000 RPM
  • My Spindle Variation limit is 200 RPM + and 200 RPM –
  • My frequency of change is every 2 seconds
  • Distance my program wants to travel is from Z0. To Z1000. mm

So, in 1 Rotation my Program will move 1 mm, so total of 1000mm will take 60 Seconds. In 1 Second therefore my program will move 16mm so a speed change at Frequency of 2seconds will occur at 16 times 2, at intervals 32mm

Motion will look like

 

 

S1000 M03 (spindle on)

G01 Z0. F1.

G01 Z32. F1. S800 M03 (spindle speed change)

G01 Z64. F1. S1000 M03 (spindle speed change)

 

 

 

 

And so on. However, the fine the movement segmentation is the less the program will appear to be jittery. I also am concerned of the Movement to be too fine such as in Microns, and the control might struggle with so many lines. But that is a problem to be dealt later.

Any ideas on how I would be able to implement this in my post? or any ideas on a better Approach?

 

Let me know if you have any ideas except for building budget to purchase that option. Budget will take time. Besides its not fun as this could be.

 

Thanks,

Bhavar 🌸🌸

 

 

 

 

0 Likes
1,033 Views
1 Reply
Reply (1)
Message 2 of 2

GermanWings
Advocate
Advocate

Answering my own Question , I was successful in building a Custom Post Processor that converts every move in to small linear lines using inspiration from DDA and Bresenhams Algorithm , however ended up using Pythagoras Theorem to break all lines (input Co-ordinates) using a linear tolerance value , with Spindle Speed Changes on every line by using a "ratio"

 

However my Machine cannot read so many tiny lines and move with itself increasing the speed and decreasing the spindle speed all after line by line , therefore the movements are tooooooo slow.

 

For now I know that the solution directed by above question will not work.

 

https://github.com/german-wings/FusionPosts/blob/main/SegmenterPost.cps 

 

Thanks,

Bhavar 🌸🌸

0 Likes