adccommunitymod (AutomationDirect) asked a question.

+/-10V signal from 0-10V signal

Created Date: August 09,2019

Created By: jeb

**** This post has been imported from our legacy forum. Information in this post may be outdated and links contained in the post may no longer work.****

Hello all, I'm working with a CLICK PLC and analog IO module to control a motor. The servo amp takes a signal from -10V to +10V, where negative is the motor running backwards (in proportion to the signal), positive is the motor running forwards (in proportion to the signal), and zero is the motor stopped. The CLICK analog module, however, only generates a 0-10V signal. It's a simple matter of a couple of op-amps to scale and shift a 0-10V signal to a +/-10V signal, but here's the problem: the analog module has limited accuracy. In that case, a 5V output from the analog module would equal a 0V signal to the motor, signaling the motor to stop. When I tell the module to put out a 5V signal, it gives me a 4.95V output. Pretty good, but that would mean that the motor is getting a -0.1V signal, so it'll drift backwards when it's supposed to be stopped. I haven't actually tried this setup, so I'm not certain that the drift will be a big problem. I was hoping, however, for another solution. Does anyone have any suggestions to fix the drift problem, either using this circuit or another circuit entirely? I had the idea of maybe two analog 0-10V signals, inverting one of them, and using a digital signal to enable/disable them according to if I want to go forward or backward. This, however, I can't figure out a circuit for.


  • adccommunitymod (AutomationDirect)

    Created Date: August 09,2019

    Created by: jeb

    Hello all,

    I'm working with a CLICK PLC and analog IO module to control a motor. The servo amp takes a signal from -10V to +10V, where negative is the motor running backwards (in proportion to the signal), positive is the motor running forwards (in proportion to the signal), and zero is the motor stopped. The CLICK analog module, however, only generates a 0-10V signal.

    It's a simple matter of a couple of op-amps to scale and shift a 0-10V signal to a +/-10V signal, but here's the problem: the analog module has limited accuracy. In that case, a 5V output from the analog module would equal a 0V signal to the motor, signaling the motor to stop. When I tell the module to put out a 5V signal, it gives me a 4.95V output. Pretty good, but that would mean that the motor is getting a -0.1V signal, so it'll drift backwards when it's supposed to be stopped.

    I haven't actually tried this setup, so I'm not certain that the drift will be a big problem. I was hoping, however, for another solution. Does anyone have any suggestions to fix the drift problem, either using this circuit or another circuit entirely?

    I had the idea of maybe two analog 0-10V signals, inverting one of them, and using a digital signal to enable/disable them according to if I want to go forward or backward. This, however, I can't figure out a circuit for.

    Expand Post
  • adccommunitymod (AutomationDirect)

    Created Date: August 09,2019

    Created by: quaizywabbit

    for all the trouble, get something that has the +-10v already, or look into a signal conditioner...might be one out there that can do as you want.

  • adccommunitymod (AutomationDirect)

    Created Date: August 09,2019

    Created by: jeb

    I'll think about it, but for now this is the equipment I have.

  • adccommunitymod (AutomationDirect)

    Created Date: August 09,2019

    Created by: ControlsGuy

    Agreed, the orthodox way is get a matching analog output or use a signal conditioner. But, many drives will allow you to define a deadband around zero such that a signal in that range is ignored.

    Or, you can figure out a transfer function that gives you the analog output output you want at a given percentage of desired speed. You might still not be able to get it exact, so you might still need a bit of deadband from the drive, but it would get you most of the way there. Find out how many counts you need to get 0.5V, 1.0V, 1.5V, and so on, build a lookup table, and interpolate between points (if you were using a BRX, you'd even have LERP to do it for you). Even just three points might work well enough for you, 0%, 50%, and 100%.

    Expand Post
  • adccommunitymod (AutomationDirect)

    Created Date: August 12,2019

    Created by: jeb

    Thanks for all the suggestions! I decided to try the signal conditioning circuit before I looked into other options, and it works just as I need it! My servo has a "balance " pot, so I can adjust it a little bit to get my motor to be completely stopped when my signal is (about) zero. My only problem now is getting the encoder to actually work with all the EMI