My intention was to expand on the circuit design when if it turned out to be necessary. There's a much easier way to solve that problem, but I don't think it's worth discussing the circuit here.
Printable View
Don't be silly now, you know how to do that. Also this thread is going off the rails due to lack of info from the OP, he's either controlling a servo driver or a VFD. The VFD is straight forward, use a spindle board from Mach3, the servo driver, who knows until more info is given ?
Anyway I'm only looking at novel ways to derive a -10v to +10v output but nobody wants to play about with it or forward their own ideas.
It's one of those days when I'm thinking, why bother ?
Thank you for all answers.
I will use linuxcnc not mach3 because mach3 does not have the ability to make outer close loop (not real time kernel in windows).
The servos are for a lathe retrofit ( x & z axes) and the vfd is to control the spindle speed and direction (cc or ccw)
The servo has a mode position/speed and from an input signal you can select position or speed (step/dir or analog -10 to +10v).
I want to have the ability to override the speed manually outside from gcode so this is the reason why i want analog -10v to +10v.
Also i want to control vfd from gcode to have constant surface speed and i want to override this speed manually.
Because with parallel port hardware limit exits and i can't output 500khz pulse train (2500cpr encoder) i want a card to manage 500khz step/dir signals.
Do you know some card which can do this work in linux and cooperate with linuxcnc ?
Eddy - I don't think that it's very novel, but to go from 0-5V to -10-10V I would use an op amp in a similar way to the link that Jonathan gave. Personally, I would do it slightly differently; the op amp needs +-12V to make sure that there is enough headroom on the output (unless you find an op amp that can work closer to the supply rails). Use a potential divider across the supply rails (or +12 and 0V), with whatever regulation/zener diode etc you like, to give a fixed 2.5V and connect this to the inverting input via R1. Use a feedback resistor R2 from output to inverting input. R2/R1 = 4 to give correct gain. Take the 0-5V via an appropriate resistor to the non-inverting input. Job done - I think. You could incorporate a bit more smoothing if you are using a PWM analogue "pseudo 0-5V" signal by putting a suitable capacitor in parallel with the feedback resistor.
You would then use this on a 0-5V output from a BOB connected to the LinuxCNC system and LCNC would allow either gcode-controlled speed or could be overridden for manual control from the LCNC control panel. I think - I use LinuxCNC but don't have speed control that way yet (just use VFD controls manually) so I'm not familiar with that bit.
I think you're still confusing analogue servo operation with step/direction.
You can use the servo
a) with analogue voltage control and encoder feedback for closed loop positioning OR
b) with step/direction pulse train open loop or closed loop with encoder feedback
You can't use step/direction AND analogue voltage together, they are different operating modes of the servo amplifier/driver. A CSMIO/IP motion control card will do what you need and works with Mach3 (it does closed loop control outside of Mach3), don't know about LinuxCNC: the CSMIO/IP-S will do step/direction, the CSMIO/IP-A will do +/-10v analogue. Both will provide the spindle VFD speed/direction output.