Time varying velocity input for servo motor

I 'm running a PXI-8145RT CPU with a 7344 motion controller.I want to load a time varying velocity profile for my servo motor.How can I do this? The "load velocity" tile does not have an input for such a profile,but only for a maximum velocity that will be reached after a certain time.

Are you using the Motion Assistant or a programming language like LabVIEW? If you are using the motion assistant, you can do a contoured move with a Position-Velocity-Time Profile. I have never done this, but it sounds to be what you are looking for. This assumes that you have a controller that can do contoured moves.
Hope that this helps,
Bob
Bob Young - Test Engineer - Lapsed Certified LabVIEW Developer
DISTek Integration, Inc. - NI Alliance Member
mailto:[email protected]

Similar Messages

  • Can I control a stepper motor by a time varying velocity input?

    I want to control the motion of the stepper motor by a velocity input that looks something like a Sine wave.The velocity is changing as a function of time. Can I change the velocity of the motor at a prescribed time interval?
    Thanks in advance
    Kevin

    Thanks for getting back to me on this. The controller card that I have is the PCI-7342 controller card. The time of a cycle is about seven minutes. I want to ramp the RPM of the motor from zero up to a max value then return it to zero and then go in the opposite direction . A graph of the RPM vs Time is attached.
    I thought that I could input an array of velocities into a Load RPM VI and specify the time for each input.I have not been able to do this as of yet, because the load RPM VI will not take an array input.
    All these inputs would be made in labview so they are inputs for the controller card. I was under the impression that the controller card generates the steps and direction from the data entered in labview and sends the step and direction impulses to the driver. Do I have the method of operation right?
    Do you think this is possible?
    Thanks again

  • CRIO using 9502 and 9514 for servo motor

    Hello,
    The 9514 states it is an interface from the cRIO to a servo driver and the 9502 states that it is a servo driver.  Can you hook the two together to work as a system?  Is there any benefit of using the two together as opposed to just one?  I couldn't find any reference in either manual of the other's use.
    Thanks,
    Zach

    "Why would the interface to an external drive have the PID loop on board, when the end product driver itself does not?"
    Essentially the cRIO FPGA is part of the 9502 module. Putting the control logic on the FPGA instead of in the module means that the module is less expensive and that it is more customizable. The performance is the same if not better.
    The goal with a lot of cRIO products, and especially new motion products, is to give customers an API that can be opened and customized by customers all the way down to the actual IO pins if necessary.
    In motion that means that when you use the 9502 you can run the example as is, or you can open it up and modify the logic that defines that hardware to customize it to your needs.
    While the 9502 is less expensive than the 9514+Drive there are some tradeoffs. The 9502 can support up to 4 Amps continuous current. We are doing a lot of work to make the LV FPGA-based 950x modules integrate seamlessly with NI SoftMotion.  In LabVIEW 2011 it takes some custom programming to write the interface code between the NI SoftMotion engine and the FPGA.
    The 9514 can potentially control a drive that can drive larger motors. It is also easier to use with the NI SoftMotion engine in LabVIEW 2011.

  • MPC Time Varying Output Constraints

    Does anyone have experience with implementing time-varying output constraints for an MPC controller (from the Control Design Module)?
    So far, from playing around with the example VIs it seems that I'm stuck with fixed values.
    Cheers.

    Hi Signorec, 
    Can I ask what example VIs you've been looking at? The ones that come with the Control Design Module in LabVIEW example finder?
    When you say time-varying output constraints do you mean be able to change the MPC configuration settings during run time? From the examples I can find it seems that you set it all up and leave it to run. Where as you would like to be able to tweak the settings at particular times? Is that correct? 
    Assuming that it is the implmentation of the MPC controllor occurs within a Control & Simulation Loop. To change any constraints on the MPC you would need to stop that loop, change the settings and re-initalise the process before running that Control & Simulation Loop again. You can implement this with a state machine architecture or a while loop and some logic. I would recommend the state machine personally. 
    Please let me know if I have misinterprted the question or if there's something unclear. If you want me to take a look at an example you're working from I can show you the basic architecture you would need if you like? 
    Best wishes, 
    Charlotte N.
    Applications Engineer, NI UK & Ireland

  • Test stand design for high speed brushless dc servo motor efficiency testing

    We are in the process of designing two test stands around the brushless dc servo motor in the attached specifications.  The first we would like to operate using Labview and a PXI-7352 controller.  The second will be a real time configuration.  The motor will need to run in the 25-50,000 RPM range.  We want to bring the hall sensors back to the controller and do PID and other control there.  The sinusoidal commutation from the controller would then go to an as yet unselected servo amplifier.  When the motor is under test we want to be able to measure accurately the power that is being used by the motor - not the motor and controller / amplifier.
    Can the PXI-7353 handle this motor speed range?
    Will Labview and the PID toolkit be sufficient software to program the first test stand?
    Any example VI's available for this approach (I could not locate any)?
    What is the appropriate controller for a real time system?
    What is the best way to instrument the motor to determine power required at a given test point?
    Any suggestion on a servo amplifier?
    Thanks in advance,
    David
    Attachments:
    B0912-050 Brushless Motor.pdf ‏91 KB

    Mr. Zaatari,
    As you will note, there are six questions posted above.  As you also know, I have been waiting for your response for 5 days and decided to use this alternate method in hope of getting my questions answered.  As you further know you have not answered these questions.   It is a shame that you will  not post your "answers" here so that the rest of this wonderful NI community might have the benefit of your knowledge as well.
    I will respond further to you by email.
    David

  • Servo motor for shaft oscillation

    I am looking for a servo motor to oscillate shaft periodiaclly at some angle.
    We have quoted one company but the price they are charging for control box I would prefer to build something myself.
    Their servo motor
    Motor rated torque 8.6 Nm
    Rpm 2000
    Continuous stall torque 10.2 Nm
    Continuous stall current 7.29A
    Insulation Class H
    Protection IP65
    Electrical connection Full Connector
    Motor Brake Not Fitted
    Feedback device Sin/Cos encoder
    Cooling Natural
    I have taken a look at NI  webpage and found similar motor AKM52H.
    What sort od drive for it is necessary and what are other components required to Program/Control it.
    What for and where in general should I start looking for this sort of applications?
    In our application we need to oscillate the shaft of the motor to some angle up to probably 20 degree at frequency up to 50 Hz.
    Ideally the motion should be smooth(Sine) and average shaft position should not change(no drift of the shaft position over time).

    Hello 
    If you wish to control a servo motor this can be done quite easily. I'm not sure about the specifics of what servo motor you should get but in terms of the controlling the device this could be done with a wide range of PCI cards or any multifunction DAQ device. I assume for this kind of application you would want D I/O to control the stepper motor and an Ai for the feedback. 
    I suggest calling the office (click the contact NI button for details how) and speaking to an inside sales engineer. They can help you configure your device for your application. 
    Many thanks 
    Dan
    Applications Engineer
    Nation Instruments UK

  • Interfacin​g external servo motor in NI sbrio-9632 and programmin​g for it.

    Hi..
    I am using NI starter kit containing SbRIO-9632 and programming it through Labview..Now if I want to interface external gripper to it, I am using servo motor for its motion but how it is possible to program for this external motor in Labview..I mean Do I need to make some pin high in SbRIO??
    Pls help me to start.. 

    Hi sharry,
    You should be able to connect the signal pin of your servo directly into one of the Digital Pins of the SB-RIO. Then you can simple write a pulse of varying width using the FPGA to drive the servo. A good example of this can be found in the Example Finder. Simply search for "PWM", the example you want is called "Controlling a servo using PWM.lvproj".
    The 5V and GND pin of the servo should be connected externally, so that the servo doesn't draw its power from the SB-RIO.
    Also be aware that the digital pins on the SB-RIO operate at 3.3V, not 5V. So if you're outputting a pulse to control a servo, it will be a 3.3V pulse. For most servos, this won't be a problem (3.3V is within the range for a HIGH signal in  TTL and CMOS logic levels), but it's worth checking the datasheet with your servo first, or doing a quick test,
    Kind regards,
    Josh E
    Applications Engineer
    National Instruments UK & Ireland

  • Can some body help me to develop labview code for generating pulse to drive ac servo motor

    can some body help me to develop labview code for generating pulse to drive ac servo motor... i am using NI 9401 card ....tnx

    Driving an AC servo motor would (I missed AC on the previous msg) requires some complex hardware. This is generally done by drivers specifically designed for this purpose. I doubt you will be able to accomplish this with the hardware you currently have and it might be cheaper to just buy a driver for it and control the speed through the driver.

  • Servo motor encoder pulses/counter data erroneous

    First off, I am very new to using labview.  I am trying to complete a project a former employee was working on.
    For a quick background on what I am working with, I am using a NI DAQCard-6036E connected to a SC-2345.  The SC-2345 is then connected to a load sensor, Omron R88D servo driver, and an omron servo motor.  The servo motor has a incremental encoder with a resolution of around 2048 pulses per revolution.  My labview program includes a counter that records the data from the encoder on the servo motor.  I have been able to get accurate data when testing through the measurement and automation program by manually turning the motor.  Also when running through the specific DAQ assistant I am using for my counter, I am getting correct readings when manually turning motor.  Once I run my complete program, instead of getting 2048 pulses per revolution, I am getting between 34000-36000 pulses per revolution.  The most logical assumption is that I am getting vibration in the motor itself or some sort of noise is interfering with my signal.  I first attempted to change any possible settings through the omron servo driver that might reduce any vibration in the motor.  I attempting changing the rigidity settings, turning on and off the auto-tuning function, and a few other settings specified by the user manual that might cause vibration.  If I turn the rigidity settings as low as possible, I am able to get around 2000 pulses per revolution, but the data is very sporadic. Also, my equipment needs to be very rigid, and with the lowest rigidity setting for the servo driver, I am able to almost stop the motor with minimal force.  My equipment needs to be able to travel at a near constant speed with fluctuations of up to 200 N of force.  Any suggestions on which direction I should go in finding a countermeasure? 
    Thanks
    Solved!
    Go to Solution.

    The model number of the servo motor is R88M-W10030L.  The servo motor rotates at a constant speed.  The program is designed to drive the servo motor connected to a ball screw in one direction.  Once the load sensor reaches a desired load, it will reverse at a constant speed until no load is on the sensor. Throughout, it records load vs. displacement.   I have found a few things that will alter the pulses counts.  If you apply resistive pressure on the servo motor while it is rotating, the pulse output will vary.  Also when you apply pressure to the casing of the servo motor itself, the pulses will often jump around. I was almost certain my false pulses were caused by vibration.  After have no success adjusting settings to reduce vibration(according to the user manual), I ran the program while moving around several wires to see if any were loose, etc... After applying force to the power lines and encoder cable, the program ran several times with an average of 2000 pulses per revolution and would actually subract pulses while going in reverse(what I want it to do); Although the average was around 2000 pulses per revoltion, i saw positive and negative jumps in pulse counts while traveling forward at constant speed.  Today I re-wired the equipment, seperating as many wires as possible.  After the re-wire, the equipment/program is back to sending 34000+ pulses per revolution, and does not subract pulses while reversing.  I have read the 'Using Quadrature Encoders with E Series DAQ Boards' article.  Referring to the article, I am running similar to "method 1".  I am already using a signal conditioning box, but have the counter data run directly through. Do you believe running the signals through a SCC-CTR01 might solve the problems? 

  • Tuning servo motor problems

    I have a PCI 7344 connected to a UMI and a Ecodrive amplifier, with a linear modul and servo. Feedback is a incremental encoder 16404counts/rev (400counts/mm). When i try to autotune, the servo motor goes berserk, so I have to manually tune it with "Step response".
    I am able to get a nice response curve according to "Understanding servotune" but the problem is, curve starts at -50mS? and at 50mS it seems stable, but settling time is indicated to be 500 - 600 mS, and when i use "wait for move complete.vi" it waits about the same period before it returns "move complete". I was expecting/hoping for 50 - 100mS settling time. How to tune this? I run position mode and there is no problem regarding velocity, acceleration and position feedback, the only
    thing is that settling time is to long. I have no following error. Is there any other way to get a signal exactly when a position is reached.

    Hi, thank you for your answer.
    I still have problems with this, so here is some more questions.
    1. I am getting a perfect curve on the step response, similar to attached picture (1), only with shorter time scale. The step response report under the chart that settling time is 500-600mS, which is settling time (<100mS) and steady state (>400-500mS) together. This period seems to be the same that i am experience with "move complete.vi".
    I have Kp=7 Kd=14 and Ki=1, and i have tried to adjust these values but this is the best i get.
    Does the loop need that time to determine that move is complete?
    2. The move i want to do in my application is a movement about 20000 counts (50mm) in 130mS, wait 100mS and return to start in 130mS, this is possible if I use
    software delay and start return move before first move is settled according to "move complete.vi" But this generate a increasing stop position error each move if I loop this sequense with 100mS rest time. These timings should be possible with the hardware I am using. Any suggestions?
    3. I have set the driver/amplifier in velocity mode (incremental encoder feedback), how is that compared to torque mode in the driver in this case?
    4. It is possible to get a second feedback from the drive (torque, velocity or position from an analog output) but this is 8 bit and less accurate than encoder. I also have a second external encoder for precision measurement and a force cell, but they are only active parts of the range to the servo (under the desired move) is there any other way i could set this up?
    Regards
    Attachments:
    153.gif ‏29 KB

  • Servo motors, rpm measuremen​ts and accelerome​ters

    Hello reader,
    Please excuse my question if it seems trivial but I am an undergrad trying to make LabVIEW work! We are running LabVIEW 8 and plan to use USB-6009 to make the measurements. I have read that this device isn't the best for control tasks. Any suggestions?
    For our experiment, we wish to have six controllable spinning cylinders attached to servo motors or stepper motors, which ever works the best. Each cylinder will be spinning at a set rpm which we wish to measure the desired rpm versus actual at all times. If possible, we would like to have an accelerometer functioning as well.
    I was wondering if this is possible with LabVIEW. If so, does anyone have any suggestions on how one might do this?
    Thank you very much for your time!
    -I. Fritz

    ifritz,
    there are several  considerations for choosing a servo or a stepper:
    Inertia of the cylinders
    maximum rpm values
    maximum acceleration and deceleration values 
    The maximum velocity for stepper motors is typically 3000 rpm. At this velocity the torque that the motor can provide has decreased to a small fraction of the specified maximum torque.Stepper motors have very limited capabilities to compensate following errors, so you need to calculate carefully the required torque at a given velocity and compare these values with the motor specs. Additionally you need to make sure, that the ratio between the motor's inertia and the inertia of the load is not too low. To avoid torque reflections this value should be somewhere in the range of 1:1 and 1:5.
    If you find a stepper, that is a good match for your application, the difference between commanded speed and measured speed should be very close to zero (except potentially some micro-oscillations).
    If you need higher torque and/or velocities and dynamic following error compensation, a servo motor should be a better choice, but you will have to tune the system which makes it a bit harder to configure the system.
    In any case the USB-6008 is the wrong choice for the control task, as it's not fast enough and can't be used in real-time control applications.
    Depending on the type of your feedback signal, it might be used for your measurements, but I also doubt, that this is a good choice. According to your post, you need to compare commanded velocity and real velocity. This implies, that you have access to the data of the trajectory generator and that you can acquire these data at the same rate as your feedback signal. This requirement conflicts with most of the available motion control units in the market. The minimum system that could meet this requirement is a real-time system with one ore more PCI or PXI multifunction DAQ  plugin boards (depending on the number and type of output channels that you need to control the motors) and optionally (recommended) the NI SoftMotion Development Module.
    Depending on your accuracy and speed requirments there might be also other solutions, but with the USB-6008 you are definitely on the wrong track.
    Kind regards,
    Jochen Klier
    National Instruments

  • Error while running a query-Input for variable 'Posting Period is invalid

    Hi All,
    NOTE: This error is only cropping up when I input 12 in the posting period variable selection. If I put in any other value from 1-11 I am not getting any errors. Any ideas why this might be happening?
    I am getting the following error when I try and run a query - "Input for variable 'Posting Period (Single entry, mandatory)' is invalid" - On further clicking on this error the message displayed is as follows -
    Diagnosis
    Variable Posting Period (Single Value Entry, Mandatory) is used as a lower limit (X) and an upper limit () in an interval selection. This limit has the value #.
    System Response
    Procedure
    Enter a different value for variable Posting Period (Single Value Entry, Mandatory). If the value of the other limit is determined by another variable, you can change its value also.
    Procedure for System Administration

    OK.
    Well, if the variable is not used in any interval selection, then I would say "something happened to it".
    I would make a copy of the query and run it to check if I get the same problem with period 12.
       -> If not, something is wrong in the original query (you can proceed as below, if changes to original are permitted).
    If so, then try removing the variable completely from the query and hardcode restriction to 12.
       -> If problem still persists, I would have to do some thinking.
    If problem is gone, then add the variable again. Check.
       -> If problem is back, then the variable "is sick". Only quick thing to do, is to build an identical variable and use that one.
    If problem also happens with the new variable, then it's time to share this experience with someone else and consider raising an OSS.
    Good luck!
    Jacob
    P.S: what fisc year variant are you using?
    Edited by: Jacob Jansen on Jan 25, 2010 8:36 PM

  • Issues with using SV Time-Varying Loudness.vi

    Hi,
      I am rather new to Labview and am having issues getting my Time-Varying Loudness calcuations to come out correctly. Attached is my current VI and a .csv file of a set of my data (calibrated in Pa. Sample rate = 50kHz for 5 seconds). When i run the VI it does not output what I would expect. Here are my questions:
    Time-Varying Loudness:
    1) What are there so many signals? There are hundreds of lines, but I only expected one.
    2) Why is my x-axis not a range of 1 to 24 like Barks should be?
    1/3 Octave Band Analsysis:
    1) Why does it look incorrect? Their shouldnt be a linear increase as a function of frequency...
    The data is of a part being squeezed and making a squeek. So it is a transient noise that happens around 2 seconds. Additionaly, how would I go about making a waterfall (Time(s),Frequency(Hz),Amplidtude(sones)) of this signal? Is there any easy way? or do I have to make all three signals and add them to make one plot?
    Thank you for your help! Let me know if you need more infromation,
    -Troy
    p.s. i included a picture of the results as well.
    Solved!
    Go to Solution.
    Attachments:
    TimeVaryingIssue.zip ‏668 KB

    Hi Troy,
    1) The SV Specific Loudness VI "chunks" data into 2 ms blocks, and then returns these as individual Specific Loudness vs. Sone plots.  The colored lines you are seeing on your graph are representative of the 2,500 2 ms time periods within your five-second acquisition.  Each of these plots contains 241 points, however they should occur in ten sample "steps", one for each sone.  The digital filter's buffer takes a bit to fill and kick in properly, however, so you may want to give your first few rows( 0-.02 seconds or so) a closer look before using them- you may see a number of unexpected zeroes around the lowest sones.
    2) Since you are using a chart, the x-axis will increment with every subsequent run (the previous data is retained.)  If you only want to display the most recent data, I would recommend switching to a graph, which can also be found in the graph controls palette.  Also, see above (#1) for why the x-axis is longer than 24 points.
    3) Remember that dB is a unitless measure, and can only be used in reference to another value. A typical reference for sound is 20 uPa, however you will likely need to equalize your input data and determine/set a dB reference.  You may want to take a look at SVL Scale voltage to EU.vi (EU stands for equalized units) and SVL Set dB reference.vi.  In your case, I believe the Octave plot is showing your dB relative to a default value of 1.  The values should be accurate with respect to one another, but you will need to provide a reference value to calibrate the scale.
    4) I think that this VI serves as a good example of how to go about creating a waterfall plot:
    Waterfall Display for Octave (DAQmx)
    http://zone.ni.com/devzone/cda/epd/p/id/5562
    You will need to break up your waveform into chunks, much like the specific loudness VI, but the basic concept is roughly the same (take waveform chunk, take octave measurement of chunk, append octave measurement output cluster to array of clusters, repeat for remainder of waveform, display)
    Phew!  That was quite a bit of information.  Let me know if that makes sense, and don't be intimidated by the detail and/or unfamiliar functions or methods  - you're definitely on the right track, or at the very least asking the right questions.
    Tom L.

  • Servo motor

    Hi All,
    Currently I am working on a project involved programing LabView to control an AC servo motor. I have done some simple simulation and controller design algorithm on Simulink and I wish to implement my controller from Simulink to LabView and I am struggle to find the way to input my controller in terms of transfer function. I know there is an add-on toolkit for Control Design and Simulation in LabView, but due to tight budget, I could not purchase that add-on. Therefore I am posting this to ask whether is there any other way I can design/test the controller that I design from Simulink to LabView.
    Thanks.  
    *P.S. Attachment is the basic VI I am using to run/test my servo motor. I need to add on a controller in front, before the signal being sent to motor. 
    Attachments:
    IP2.png ‏17 KB
    26 April Single Axis.vi ‏23 KB

    From the z transform you can generate an algorithm that you can then enter in LabVIEW using the normal functions (shift registers, add functions etc). For example a PD controller might be described in Z and then converted to an algorithm as shown below
    You could then enter this algorithm in LabVIEW
    If you are still stuck I recommend you look in a good control text book which will explain it better than I can
    David
    www.controlsoftwaresolutions.com

  • From where in the UMI flex 6c I should give enable to servo motor amplifier/​driver.

    I am using ADS 50/5 maxon amplifier to run the maxon servo motors with Flex 6C. The problem I am facing is that, How to enable the amplifier so that it works only when desired. I have tried by connecting the enable to the inhibit output but it is not working. before connecting to enable Inhibit output is showing 5v but as soon as I connect it , it drops to 1.5V. I am giving encoder feedback to 6C. Motor runs when I directly connect enable to the power supply, but then it runs continuously. Can anybody suggest me about the correct connections.
    regards
    vkmehta

    If the output voltage of the inhibit output drops to around 1.5V as soon as you connect it to the enable input of your servo amplifier you should check the specifications for the enable input of the amplifier. It seems that an optocoupler is used, and if you apply 5V without any series resistance to the input led of an optocoupler the input voltage will be clamped between 1.5 and 2V. Also, the optocoupler may get damaged due to excessive current on the input led.
    Check the manufacturers specifications for correct input wiring. In most cases a series (current limiting) resistor is needed, somewhere around 470 ohms.
    You should also check whether you are applying the correct logic level to the enable input. Some servo amplifiers need a logic 1 (= 5V) on t
    he input, some require a logic 0 (= 0V) to shut down the amplifier.

Maybe you are looking for

  • !!!SOLUTION !!! Hotsync TE2 with windows 7 (64bit) via blue tooth SOLUTION !!!

    I recently struggled with syncing my TE2 with the palm desktop application in windows 7 as many of you have too. I am using Windows 7 Home Premium, Palm desktop 4.1.4 and a blue tooth dongle. The solution I found for my problem works like this: Find

  • Writing/reading HTTP with plain sockets

    Hello, I�m trying to send an HTTP request and read response with a plain socket, not URLConnection. My code below is not working - bufferedReader.readLine() returns null. If I change to URLConnection everything works as expected. What is wrong in my

  • Call waiting gets turned off on its own.

    i bought an iphone 4s . i am facing a problem that is my call waiting gets off on its own. even though i turn it on it gets turned off after few mins so plz could some1 help

  • WLC 5508 - 802.11n using 802.1X security

    WLC 5508 product version: 6.0.199.4 AP: AIR-LAP1142N-S-K9 The connection can reach up to 144Mbps when using WPA2 with AES (Layer 2 security), WMM allowed (QOS). But when I use 802.1X (Layer 2 security), can only reach up to 54Mbps. Any special settin

  • I can't find the iCloud

    I am self-taught on computers and have limited knowledge.  In trying to work with iCloud, I downloaded Mountain Lion.  But I am unable to find iCloud in my System Preferences.  I was able to pull it up on my iPhone appropriately.  Am I missing someth