Announcement

Collapse
No announcement yet.

Electronics help - Servo drive issues on mill

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

  • Electronics help - Servo drive issues on mill

    Hi all

    Having issues with a servo drive for a spindle add-on for my mill.

    It will run ok up to 2880rpm, after that the controller reports following-error faults and cuts out. Its a CS-LABS IP/A controller. You can see the FE counter run away in the drag screen at higher speeds.

    I have changed the cable to proper encoder stuff with twisted-pairs and screened but no change.

    Today, i 'scoped the signals as a first attempt at discovery, 4 pics below, 3 taken at the controller end at 100rpm, 1500rpm and 2800rpm then one taken at the drive end with the cable removed.

    Do these show a problem or is it normal - my lack of knowledge bites here









    I was expecting the signals to look the same at the controller but can't understand why they look messed up ?

    It's not a ground-loop as the signal did not change when i removed the cable screen connection.

    Any thoughts?
    If it does'nt fit, hit it.
    https://ddmetalproducts.co.uk
    http://www.davekearley.co.uk

  • #2
    is that the encoder signal? That isn't right.. The square wave should be offset by 90 deg between the two..

    Comment


    • #3
      like this

      Comment


      • #4
        Originally posted by skunkworks View Post
        is that the encoder signal? That isn't right.. The square wave should be offset by 90 deg between the two..
        Yes and no, it's one channel of the encoder but a differential signal output.
        If it does'nt fit, hit it.
        https://ddmetalproducts.co.uk
        http://www.davekearley.co.uk

        Comment


        • #5
          The encoder interface appears to be single ended, the differential type is much preferred because of the noise cancellation characteristics.
          Max.

          Comment


          • #6
            ah - that makes more sense...

            Comment


            • #7
              Its not encoder related as far as i can see

              I had a spare 600ppr encoder so wired that in and connected it by clamping in the spindle.

              It still suffers the same fault, just slower as there are only 2,400 pulses instead of 10,000 per rev - the error count just goes up slower.

              It still worked ok until 2980rpm.

              Baffled now.
              If it does'nt fit, hit it.
              https://ddmetalproducts.co.uk
              http://www.davekearley.co.uk

              Comment


              • #8
                Has the servo tuning been looked at? For a servo spindle, I would assume it is a velocity mode control loop. The following error is basically the difference between commanded and actual rpm. The tuning is what determines how close they track each other. Also, if the following error value is set too low it would would show more at higher rpm's. The following error will be a fixed value, some rpm whereas mechanical errors will be a percentage of commanded rpm's (belt reduction ratio for instance). This is why problems are more likely to appear at the higher rpm's

                What I am suggesting is the problem may be servo tuning and nothing to do with the encoders.

                I use linuxcnc for my bridgeport and have a closed loop spindle control with AC motor and vfd. A encoder error would probably show up as a "quadrature error" rather than a "following error" on my setup. Of course different controls can/do have different software error tracking. As I recall, you are running Mach3 which is a not closed loop control so the following error must be displaying at the drive???

                (note: following error value may be in rev/min or rev/second either works the same but the value will be 60X different)
                Last edited by Sparky_NY; 05-27-2019, 06:59 AM.

                Comment


                • #9
                  Its tuned as good as i can get it so far.

                  Nothing i do in Pid tuning seems to make it better, i can make it a lot worse but not better.

                  I could simply throw a massive error limit in but then, when you command a stop, it will creep until the error is zero again - not good for a spindle.

                  I cant find any info regarding speed or torque mode - the 'net seems a bit vague here. Should i set it for speed or torque? It has three options, speed, torque, position.

                  I think the XYZ axes were set in torque mode but will have to go look to be certain.

                  So if the following error is the difference between commanded and actual rpm, is it telling me its not reaching 3000 or that its going beyond?

                  The error increases so that to me suggests its not reaching 3000?

                  A hand-tacho seems to think its very close to 3000 though
                  If it does'nt fit, hit it.
                  https://ddmetalproducts.co.uk
                  http://www.davekearley.co.uk

                  Comment


                  • #10
                    Reading your original post again, I seen you are using a CS-LABS IP/A controller. I searched and found the manual for it. I see the pid tuning section for the CS-LABS IP/A controller and that is where the following error and deadband values are set (either manually or autotune). The other info in my prior post remains valid, I would look and see what the following error value is set at. It may be a unreasonable value for spindle control purposes. The PID values may also not be optimum for a servo spindle.

                    Tuning a spindle is quite different than a motion axis. The CS-LABS IP/A controller manual focuses on tuning the common motion axis, I didn't find anything on use with a servo spindle. Not a problem, its just a servo spindle is a different beast than a motion axis and tunes differently.
                    Last edited by Sparky_NY; 05-27-2019, 07:29 AM.

                    Comment


                    • #11
                      Agree, they don't mention servo spindles much at all.

                      The following error was at 1000, but its irrelevant as the actual error count is not just big - it constantly increases at 3000rpm so whatever value i set it will eventually fault out.

                      The next issue with setting a big allowable error is that when you command a stop it will move until the actual error reaches zero - this can be a whole rev or more after you expect a stop, plus it creeps to zero which could be a bit dangerous.

                      I've just been playing with Pid again and i cant seem to get any good setting in there, it runs smoothest at P=14000, I=0, d=0, kvff=0 but then the error is really large, once you start feeding in I, D & K values it starts wobbling as it reaches stop or just sounds rough.

                      They [CS labs] also took out the auto-tune function
                      If it does'nt fit, hit it.
                      https://ddmetalproducts.co.uk
                      http://www.davekearley.co.uk

                      Comment


                      • #12
                        Originally posted by Davek0974 View Post
                        Its tuned as good as i can get it so far.

                        Nothing i do in Pid tuning seems to make it better, i can make it a lot worse but not better.

                        I could simply throw a massive error limit in but then, when you command a stop, it will creep until the error is zero again - not good for a spindle.

                        I cant find any info regarding speed or torque mode - the 'net seems a bit vague here. Should i set it for speed or torque? It has three options, speed, torque, position.

                        I think the XYZ axes were set in torque mode but will have to go look to be certain.

                        So if the following error is the difference between commanded and actual rpm, is it telling me its not reaching 3000 or that its going beyond?

                        The error increases so that to me suggests its not reaching 3000?

                        A hand-tacho seems to think its very close to 3000 though
                        Your spindle is a speed mode servo. If you google search it will more likely come up as velocity mode, same thing but term more commonly used.

                        You could be beyond 3000 or under , either is a following error and reacts the same. Only difference is whether the control increases the drive or decreases it to hit the target number.

                        Close enough? All depends on what that following error is set to. That determines the trip point for a following error fault.

                        If I understand your comment about creep correctly the deadband value could cure that. Wouldn't do that until everything else is tuned properly.

                        Comment


                        • #13
                          Originally posted by Davek0974 View Post
                          Agree, they don't mention servo spindles much at all.

                          The following error was at 1000, but its irrelevant as the actual error count is not just big - it constantly increases at 3000rpm so whatever value i set it will eventually fault out.

                          The next issue with setting a big allowable error is that when you command a stop it will move until the actual error reaches zero - this can be a whole rev or more after you expect a stop, plus it creeps to zero which could be a bit dangerous.

                          I've just been playing with Pid again and i cant seem to get any good setting in there, it runs smoothest at P=14000, I=0, d=0, kvff=0 but then the error is really large, once you start feeding in I, D & K values it starts wobbling as it reaches stop or just sounds rough.

                          They [CS labs] also took out the auto-tune function

                          General guide here but for a spindle, I would expect a low value for P and a small value in I. P takes care of the gross speed errors, like when you first start, too much P will cause overshoot when starting. I takes care of the close in error, like when you command 1000 and its at 950. Be advised the I term gain increases with time, so it starts low and increases more and more. There is a parameter for limiting the ultimate max I applied, I seen it in the manual but can't recall what the term they used was. I would set that Max I at something like 500 for starters.

                          Once tuned good, you shouldn't need a large value for the following error.

                          Pay attention to what is happening.
                          When starting, does the spindle accelerate and overshoot the commanded value and then settle back down to it? (use something like 2000 rpm for that check)

                          OR does it rise fast to just below the commanded value then slowly increase up to it?

                          What happens under a rapidly applied load on the spindle? (something like a peck drill cycle where the spindle goes from no load to loaded very quickly) How does it respond?

                          These things give you the hints at what needs to be adjusted in tuning.

                          Servo tuning is VERY confusing until you get a understanding of what is going on, cause and effect sort of thing and how each variable term affects things. As I d before, a spindle tunes MUCH differently than a motion axis.

                          Lastly, on any servo system, the servo drive has to be propery in tune BEFORE any tuning is done in the controller. That part is very important.

                          Comment


                          • #14
                            Originally posted by Sparky_NY View Post
                            Lastly, on any servo system, the servo drive has to be propery in tune BEFORE any tuning is done in the controller. That part is very important.
                            That is one big issue - there is no info on this at all for these drives, i have asked the supplier a few times and they just say use the default settings - they clearly have no idea so default is safest.

                            The manual is chinglish, the terms used are confusing.

                            The downside to using cheap drives.

                            No way to tune the drive.
                            If it does'nt fit, hit it.
                            https://ddmetalproducts.co.uk
                            http://www.davekearley.co.uk

                            Comment


                            • #15
                              Using my bench PSU at 10v it was giving 2965rpm one way and 2971rpm the other.

                              It was also creeping with the inputs shorted out.

                              I ran the auto zero speed set function which killed most of the creep.

                              Then I adjusted the gain to 305rpm/V

                              It now gives 3000rpm forwards and backwards.

                              Did it fix the issue?

                              No


                              A short video of the Pid screen at 2990rpm and 3000rpm

                              https://youtu.be/i7GEe7jAoY4
                              If it does'nt fit, hit it.
                              https://ddmetalproducts.co.uk
                              http://www.davekearley.co.uk

                              Comment

                              Working...
                              X