Servo Controlling with Servo Controllers

More
14 Jun 2017 19:52 #94512 by schorsch
Hi,
I have been using LinuxCNC for a couple of year now, with my 3+1 axis stepper machine.

Owning to favourable circumstances I got a couple of KEB combivert F5 servo controllers, a few servo motors with resolvers and an old SPS. Of course I'm thinking now to start to build a new machine using servo and linux-cnc.;)

I know very well about how to setup a machine with steppers, but not very much about servo-controlling. I know that linuxcnc is capable to do the PID-stuff in order to let the servos run (reading the position and correcting the servo currents). I read that I can use analog inputs on the KEB combiverts in order to change the driving speed, but I'm not sure if this is the best way to go?

I would like to now what the typical concepts are; how one can use linuxcnc to connect servo motors and let the servos run trajectories
Currently my idea are:
A. Connecting the servo controllers to the SPS and let linuxcnc communicate with the SPS only, then doing linear extrapolations very fast (is the SPS fast enough? are accelerations handled correctly?)
B. Using the analog inputs of the servocontrollers and connecting the controllers directly to linuxcnc (some kind of PID is still needed in order to synchronise the servos and align them on their trajectory, how?)
C. I'm not sure if it is possible with these controllers, but usually (and as far as I know) it is possible to enable a stepper-like mode with two digital signals (for clock and direction). (fast enough?)

Which way would you go and why? Thanks a lot

Georg

Please Log in or Create an account to join the conversation.

More
14 Jun 2017 20:18 #94513 by Todd Zuercher
B. If it were me. This is actually how the very first machines were controlled by Linuxcnc, way back when it was still called EMC (and even before that). It just works well. Linuxcnc sends a velocity command (updated every servo thread cycle) to the drive (usually using an analog +-10v signal) while reading the motor position (from an encoder or resolver). The PID is how the feedback position is compared with the commanded one, and from that the velocity command is constantly changed and adjusted to minimize error.

Not sure if those drives support step/dir (aka position control). No idea what SPS is, but if it is a motion controller, it won't work with Linuxcnc.

Please Log in or Create an account to join the conversation.

More
15 Jun 2017 10:07 #94522 by schorsch
Hi,
thanks a lot for you quick replay.

I'm sorry, SPS is a german abbreviation (didn't thought about that). Its a Programmable Logic Controller (PLC).
I see that Solution B offers a lot of advantages.

What is the best idea to get the actual Positions into linxucnc? Reading out the Positions by Profibus?

Georg

Please Log in or Create an account to join the conversation.

More
15 Jun 2017 12:33 #94524 by Todd Zuercher
It will depend a lot on the drives. Do the drives read the resolvers? Do the drives output a simulated encoder signal for the control? There is hardware available for Linuxcnc that can read resolvers, but unlike encoders I don't think a resolver can easily be wired to two devices like an encoder can.

Please Log in or Create an account to join the conversation.

More
15 Jun 2017 12:42 - 15 Jun 2017 12:46 #94525 by Todd Zuercher
According to this manual the drives should have an incremental encoder simulation for connecting to the controler (aka Linuxcnc).
www.keb.de/fileadmin/media/Manuals/f5/co.../f5s/00f5sebk320.pdf
That should be the easiest way to connect the drives. One of the better hardware choices for connecting to Linuxcnc would be a Mesa 7i77 combo (one of Mesa's DB25 FPGA cards + a 7i77 daughter card.)
The 7i77 has encoder inputs and +-10v analog outputs for controlling servo drives. (but there are other choices from other manufacturers.)
Last edit: 15 Jun 2017 12:46 by Todd Zuercher.

Please Log in or Create an account to join the conversation.

More
15 Jun 2017 12:47 #94527 by schorsch
Hi,
With drives you mean the servo controllers right?

I checked in the docs, but I didn't found that the KEBs can output a quadrature-signal. I think the idea around the KEB combiverts it to keep control loop between resolvers and the servo currents completely inside the controller unit. I know as well, that the KEBs can be used for the correct translation from the resolver signals into real axis-values (in mm), including the axis reference.

For programming the KEBs can be accessed by RS232, I think the best way to access them is the Profibus connection.

Do you know how I can connect Profibus to linuxcnc? I do not even now how the hardware could look like? Maybe a PCI Interface card? Currently not available to me :-(

The KEBs have analog outputs available, too, which can be programmed (showing velocity, output current, ....), but I'm afraid for a PID looppack they are useless, one needs to access the acual position. And they have some programmable digital outs, too

What do you think how frequently the actual position needs to be updated? What would be an appropriate hardware to connect linux cnc to analog in of the KEB (speed control) and Position feedback (profibus??)

Thanks Georg

Please Log in or Create an account to join the conversation.

More
15 Jun 2017 12:49 #94528 by schorsch

According to this manual the drives should have an incremental encoder simulation for connecting to the controler (aka Linuxcnc).
www.keb.de/fileadmin/media/Manuals/f5/co.../f5s/00f5sebk320.pdf
That should be the easiest way to connect the drives. One of the better hardware choices for connecting to Linuxcnc would be a Mesa 7i77 combo (one of Mesa's DB25 FPGA cards + a 7i77 daughter card.)
The 7i77 has encoder inputs and +-10v analog outputs for controlling servo drives. (but there are other choices from other manufacturers.)


This is so great!!

Thanks you very much, I didn't saw it myself! I will have a deeper look in the evening

Georg

Please Log in or Create an account to join the conversation.

More
15 Jun 2017 13:47 #94538 by Todd Zuercher
Servo drive, servo controler , I think we are talking about the same thing. (Although a servo controler could refer to a motion controller like Linuxcnc that sends commands to a servo drive.)
Does the manual link I posted apply to your drives? If it does, then connector X3B (talked about on pg. 10) would be the simulated encoder output and would be the actual motor position needed for Linuxcnc to close the position loop. (The velocity loop would be closed within the KEB drive.)

Analog velocity commands with incremental encoder feedback is a pretty standard servo control model. (one I believe these drives support.)

I don't think Profibus is a viable option for servo control with Linuxcnc. I think some people were experimenting with it some, but I don't think what they did was suitable for real time applications such as servo control.

I would use this hardware for these servos.
store.mesanet.com/index.php?route=produc...83_84&product_id=214
If you don't fancy using a PCI card there are PCIe and Ethernet options. (For example a 7i92 costs the same as a 5i25 but uses an Ethernet connection)

Please Log in or Create an account to join the conversation.

More
16 Jun 2017 12:18 #94567 by schorsch
Hi Todd,
looks great 280$ looks fair to me.

The linuxcnc closed loop depends on the rtai-kernel, right? What I do not understand is, if one develops an FPGA Board, why isn't the PID stuff implemended in the LVDS Code? In that case I could use a standard kernel.

Do all the hardware you suggested work fine with LinuxCNC? Or are some supported in a better way? Should there be a latency problem, when using an ethernet card?

Thanks
Georg

Please Log in or Create an account to join the conversation.

More
16 Jun 2017 14:13 - 16 Jun 2017 14:26 #94578 by Todd Zuercher
One of the basic tenets of Linuxcnc is that it is (or should be) in complete control of everything. And is the main reason why real time is required for it. Linuxcnc and the PC it is installed on IS the motion controller. The FPGA hardware is just a means for facilitating the gathering and distribution of the data that Linuxcnc needs to do that.

Latency is still important on a servo controlled machine, but really low numbers are not as critical as with a parallel port software stepping machine like you are familiar with. Numbers 10 times has high as would be usable for a software stepper machine, can still produce good results on an analog servo machine.

Mesa's hardware is some of the better supported hardware available. Peter Wallace (PCW) I think is that company's owner and helps a lot of people on this forum and the mailing list.
Last edit: 16 Jun 2017 14:26 by Todd Zuercher.

Please Log in or Create an account to join the conversation.

Time to create page: 0.080 seconds
Powered by Kunena Forum