Gain scheduling using motion controller

I have a motor controlled by motion controller.
The control gains should be different depending on the range of operation, so I want to make a gain scheduling program. I just wonder whether there is any example or idea that I can refer to. I found PID toolset document in NI website. However, it seems like I have to buy if I want to "gain scheduling.vi" in the document. If I know how the vi created, it will help me a lot. If any other method that I can look at, please let me know. Thank you.

All you have to do to perform gain scheduling in the motion controller is to select at which position you want your gains to change, and download the new gains on the fly when tha positionn is reached.I am attaching the following example vi that should help you achieve this.
Attachments:
PID_Control_Loop_Change[1].vi ‏72 KB

Similar Messages

  • Dual loop operation using PCI7344 motion controller

    I am using PCI7344 to control servo motor. Primary feedback to the controller comes from the motor encoder. Secondary feedback from the torque transducer is given to the ADC input. The motion controller is set to operate in absolute position mode with velocity, acceleration, Deceleration, target position values appropriately set. I expect the trajectory position to change automatically based on the torque feedback from the torque transducer. Is my assumption correct? I have referred the NI-Motion user manual, 7344 hardware manuals with out success. Any suggesions? Thanks in advance.

    In order to perform torque control using the NI-Motion Controller, you need to use the torque sensor feedback as the primary feedback. So in the axis configuration, the ADC where your sensor is configured must be set to primary feedback. You can then use the encoder feedback to work as a secondary (velocity feedback) device. Because torque does not behave in a linear fashion like position does, you will need to have several tuning schemes and apply a gain scheduling algorithm in order to properly tune the motor to maintain torque at any point of the trajectory. You can then use the read encoder function to read the ecoder position at any torque during the movement. Your setpoint and target position in the 1-d interactive will now be in ADC bit values. The 7344 contr
    oller has 12 bit ADC's which means that for a sensor with a +/- 10 volt range, you will have 20/2^12 = 4096 bit counts of movement range. This means that + 10 volts will be represented as ~ 2048 and -10 volts will be ~ -2048 and so on. Keep in mind that the ADC's on the 7344 are not calibrated so you might have a little bit of discrepancy with these numbers though youn will always get the full range of the ADC.

  • How can I use one motion controller to control two robotic independently?

    the help document says :
    Note  Configuring and clearing buffers is a processor-intensive operation on the motion controller that requires the allocation and deallocation of memory. You should configure and clear buffers only when motors are not moving and onboard programs are not running. For example, if you wish to execute three simultaneous contouring operations on axis 1, axis 2, and vector space 1 (with axes 3 and 4), you should first configure all three buffers before starting any of the operations. You can start the contour operations independently, and at different times, but should wait until all operations are complete before clearing any of the buffers.
    and i tried to conduct two contouring operation on two vector space. and tried to clear or configuring buffer for one vector when another one is still moving. so that i can start or end the movement at any time i want,and  it is ok.no error. but when i tried add a buffer  breakpoint output along with each vector movement. the bp doesn't work if the other vector is running . is there anyway to solve this problem.

    I think you've misunderstood what the dns attribute is for. The dns attribute returns the hostname of the client accessing your website, not the hostname of the website that linked to your website.
    For example, when someone using the Comcast ISP goes to a malicious website at example.com that loads images from your website at www.amigoo.net, the dns attribute will be something like "c-1-2-3-4.ca.comcast.net", not "example.com". ACLs are used for authentication and authorization of clients (not the websites those clients chose to visit), and they don't provide the functionality you're looking for.
    If I understand correctly, you want to prevent websites other than amigoo.net from linking to files in your d:/webserver/imat/pics_upload directory. You can achieve this adding the following lines to your obj.conf configuration file:
    <Object ppath="d:/webserver/imat/pics_upload/*">
    <Client referer="*~*amigoo.net">
    PathCheck fn="deny-existence"
    </Client>
    </Object>

  • How to control esp 301 motion controller using labview

    Hi Everybody,
    I am new to Labview. I am trying to connect ESP 301 motion controller from Newport to the labview and control it. But I couldn't find the drivers for it online. How can I connct it and using.
    I am planning to use it with USB connection.
    Could some one please help me in this regard.
    Solved!
    Go to Solution.

    Hello Thomas
    there are existing facilities:
    · Two turntables XY driven by stepper motors 10 microns
    · Central ESP301 command to the decks
    · Central control and data acquisition: Unit PXI
    I want to do the next step
    · Control of stepper motors to perform scans on a large scale wafers two or four inches with a very good resolution of up to 10 .mu.m
    · Programming the ESP unit 301 microstepping mode by dividing the initial step to make scans on small areas at a resolution of up to 1 .mu.m;

  • How use an ESP motion controller to drive an actuator by using Labview program?

    Our group bought a Universal Motion Conroller/Driver from Newport company and
    its model is ESP 300. Right now, I am going to use it remotely and I want
    to use Labview to compile the driving program. My thought is to move an
    actuator step by step in x-axis and the length of step moving is 2cm.
    After moving 40cm on x-axis from the beginning to the end, I will move the
    actuator one step on y-axis. Then I moving from the beginning to the end
    on x-axis again. I wonder whether somebody has such a labview program
    or not. Or, has anybody other sample Labview programs for the
    controller to control the moving? Can you provide them to me?
    Thanks a lot.
    Huili Wang

    Hello,
    There are several examples written in LabVIEW to do what you are trying to do but they will only work with National Instruments motion controllers, as they use driver specific VIs. In order to use your controller with LabVIEW you'll need a shared library of some sort. Once you have this library you can program your controller in LabVIEW by making function calls referencing to its shared library. See built-in LabVIEW examples for 'Using External Code'.
    I hope this helps. Let me know if you decide to go with one of National Instruments motion controllers instead and need help finding those examples I was referencing above.
    Best regards,
    Yusuf C.
    Applications Engineering
    National Instruments

  • I want to configure the 7330 motion controller without using MAX

    I am new to labview and I have a project where I have to configure the 7330 motion controller without using MAX. What do I need to do to get started doing so?
    Thanks for the help!
    nw2labview

    Hi,
    There are several VI's that are included with the motion driver for configuring your controller.  They are located on the function pallete under Vision and Motion>>Ni-Motion>>Axis Configuration.  Using these VI's you will be able to configure your axis.  But why don't you want to use MAX?  If you are new to LabVIEW I would suggest configuring and testing your motor in MAX first before you start programing.  Once you have it working there you may want to look at several of the examples such as Simple One-Axis Move.vi.  I hope this helps.
    GG

  • How to use LabVIEW FPGA on Custom FPGA board other than NI products .....Also how to develop RTx DLL for a customised motion controller hardware

    I'm using RTx, LabVIEW RT and LabVIEW FPGA.
    The GUI is windows based. The motion control and FPGA  are RTx based.
    Is there any way to develop device drivers for the custom hardware in RTx. For example motion controller hardware, FPGA hardware, PCI hardware.
    Is there a possibility to use custom FPGA boards to use with LabVIEW FPGA.
    Please send me some links
    Thanks
    Bhoopathy
    Take life as it comes! you may never know what's gonna happen Tommorrow

    CODE WARRIOR Hello. I believe this question was answered in a previous post. Please let us know if you have any new questioins or if you need some clarification.
    You are able to develop device drivers for your custom hardware using the NI Measurement Hardware Driver Development Kit.
    However, it is not possible to use custom FPGA boards with LabVIEW FPGA. The FPGA boards have to be one of our R Series boards. Here are some links that should shed some light on the Measurement Hardware DDK.
    Measurement Hardware Driver Development Kit Frequently Asked Questions
    NI Measurement Hardware DDK (Driver Development Kit)
    Please post if you have further questios.
    Efosa O.
    NIAE

  • How can I output a square wave to control a stepper motor using 7332 controller?

    I have the following system configuration for testing a linear actuator (LA):
    LabView 7.1
    NI FlexMotion 7332 Motion Controller
    NI Flex DMM 4070
    The LA is a stepper motor with Step and Direction of Rotation inputs, as well as some discrete I/O for Power Enable and other functions.
    The LA specification only requires that I send a 50% Duty Cycle square wave signal with frequency less than 300 Hz to it in order to make it step.  The LA has it's own power source.  I only need the 7332 to generate the drive signal and the DOR signal to the LA.  Using some of the example VI's, I can get the LA to work, but I will need to incorporate the functions in to a custom application. 
    How can I weed through the numerous advanced functions the 7332 offers and only generate a DOR signal and a step command at a user-defined frequency.  How do I set up the controller for this?
    Thanks

    Hello,
    All the VIs that you can use to create a pulse train and digital I/O from your motion controller are found in the "Analog & Digital I/O VIs" sub-palette in the "Flex Motion" palette. Use "Load PWM Duty Cycle" and "Configure PWM Output" VIs to create the square wave. Use the "Set I/O Port Direction", "Set I/O Port MOMO", and "Set I/O Port Polarity" VIs to create digital output. I hope you find this information useful. You can learn about the specifics of these VIs and their inputs/outputs in the NI-Motion VI Help.
    Regards,
    Aaron B.
    National Instruments

  • What are resources that one has to use motion control in LabView?

    I am a newbie at Labview and I am trying to get a stepper motor to drive a shaft for one rotation (the shaft is attached to a bearing which will rotate a laser around a fixed object in the center). I am very limited in experience and I am wondering if ValueMotion is the way to go. Do you have to purchase the PC controller from NI to use value or flex motion? It would appear that using the intialization and setup VI's that ship with LV 6i would be the easiest and quickest route.
    What demos/programs for labview will be best in helping me in my efforts? I have yet to even select the controller or stepper motor for this application.

    Hello Graymalkin79...
    LabVIEW and an NI motion controller for your PC are an excellent combination for the application that you describe. To answer your specific questions...Yes the ValueMotion and FlexMotion VI's require a PC based controller from NI. For your application, either the 7334 stepper controller (ValueMotion) or the 7344 step/servo controller (FlexMotion) will do the trick. For straighforward stepper control as you describe in your application, ValueMotion is fine and the VI's for init, setup and operation should have you up and running quickly. FlexMotion provides a significant level of motion capability and overall system integration that may enhance your total application, but that's difficult to determine from your brief description.
    Most
    any Stepper Motor requires a power driver unit like the MID7602, and the selection of this component really depends on the motor that you choose and its associated torque and speed requirements in your system.
    Both ValueMotion and FlexMotion VI libraries provide motion demos that you can use interactively as well as VI's that you can integrate into your overall laser based LabVIEW application.

  • Warning while loading example VIs for XPS motion controller

    Hi,
    I'm new to Labview. I want to control the XPS motion controller using Labview and I wanted to get started with the examples provided by XPS along with the drivers. But I get a warning while loading the example. I have attached a screenshot of it. Please help.
    Also, opening the example opens just the front panel. How do I open the bloack diagram of the example VI?
    Thank you.
    Attachments:
    warning.png ‏40 KB

    That warning is nothing to be worried about -- it just means that things were found in a new location, which is normal when you move code around.  Once you save the project it should go away.
    To look at the block diagram, use Window - Show Block Diagram, or simply Ctrl+E.
    Good luck!
    Edwin

  • How do I get labview for linux to send out ascii code to a motion controller?

    I have posted part of this problem but I will now try to clearify things. I have an x-y stage that needs motion control. I have to run the motion controller from within a linux system (RedHat 7.1) due to others in the research area. I have found a motion controller card (PCI) that will run under linux. This card is not National Instruments. I understand that they do not have drivers for their controller cards. This other card comes with the companies own software that uses ASCII codes to move the motors on the stage. I was hoping to create a program that could call those ASCII codes to move the stage. An example would be if a user wanted to have the stage move to the right he would press a b
    utton on the screen instead of typing in whatever ASCII could that move to the right happens to be. How would I go about programming something like this? I have heard of others doing things like this but I am unsure of how to program labview to send out ASCII codes to a PCI card to move motors.

    > would I go about programming something like this? I have heard of
    > others doing things like this but I am unsure of how to program
    > labview to send out ASCII codes to a PCI card to move motors.
    Look in the manual to see get familiar with the sequences of codes you
    need to write, and more importantly, where you write them to. I suspect
    a memory location, but it could be a socket or port.
    Each of these locations will have a slightly different way of accessing
    it. Once you know, search devzone for how to do it on linux, or post
    back here.
    After you can send the codes to the right location, you probably want to
    build a state machine that simplifies the interface and prevents certain
    actions from taking place. Now determine which buttons or
    keys perform
    which actions and use either the event structure or the older polling
    for control changes to affect state changes in the state machine.
    I'm summarizing here assuming that you know what a state machine is and
    why you'd want to use it. If I'm assuming too much, do some research
    and post again with more specific questions. Also be sure to look at
    example VIs as they show how to respond to UI actions.
    Greg McKaskle

  • Connecting Hall Effect Sensor as an encoder(fe​edback) for PCI 7356 Motion Controller

    Hi,
    We have Labview 2010 and the following hardwares for testing a specific motor (a brushless DC motor):
    NI PCI 7356 Motion Controller
    NI UMI 7774
    AKD Servo Drive P00606
    However, I met some difficulty when wiring the motor to the motor drive(and controller). In the manual, it says PCI 7356 needs encoder signals as the feedback. But our motor doesn't have a built-in encoder. It has three Hall Effect Sensors, which we plan to use as an encoder. If we feed the hall sensor signals as the encoder phase signals (Phase A, B) to the drive/controller, I wonder if Labview or PCI 7356 (after an appropriate configuration) can adjuct the phase (from 120 degree to 90). Does it work even without the adjustment?
    If the above doesn't work, can I feed only one Hall Effect sensor signal as Encoder Phase A and don't feed anything to Phase B (since I only need control the motor speed in one direction)? Will PCI 7356 or Labview recognize the signal and function accordingly?
    If it doesn't work as well, could I use motor's Back EMF as a feedback (this motor produces a decent sinusoidal back EMF)? If I can, how should I configure the hardware and wire the motor to controller accordingly? 
    If all three above don't work, could you suggest a way to solve this problem?
    Thanks so much for your help.
    Best,
    Chen

    Hey Chen,
    I have comfirmed that the PCI card will not be able to do feedback with the hall effect sensors. However, you could do that with our NI 951x modules if you run it in FPGA mode. You would need an extra IO module to set up the hall effect sensors with, but you could effectively customize your control and your feedback on the FPGA board immediately. 
    For your other post, I am not sure you can create a time constraint on the move, I believe that when you define a motion, you would need to define the number of steps or the position and not the time. If you are running the motor at a specific velocity for an amount of time, you would need to set that as the number of revolutions and not time.
    I hope this helps.
    Regards,
    A. Zaatari
    National Instruments
    Applications Engineer

  • PCI-7344 motion controller encoder reset problem

    I'm using a PCI-7344 motion controller for my application. I'm currently working on simple display of position and velocity using an encoder. I am able to read the encoder pulser, but I am unable to reset it. I want the encoder pulses to be display continously till I press a reset button on the screen. After pressing the reset button on the front panel, the encoder count should become zero and start counting again till I press stop button. Kindly give me a simple example of encoder reset using push button. Thanks.
    Regards,
    Giridhar Rajan
    Cruiser Controls
    Mumbai, India

    This should do what you are looking for.  I am not at the computer that has a motion controller card in it, so I have not tested it. 
    It resets the encoders for Axis 1 and Axis 2.  Unless you have a different configuration for encoders and axes, it should work.
    Hope that this helps,
    Bob
    Bob Young - Test Engineer - Lapsed Certified LabVIEW Developer
    DISTek Integration, Inc. - NI Alliance Member
    mailto:[email protected]
    Attachments:
    Reset encoders.vi ‏66 KB

  • PXI 7344 motion controller as a DAQ device for ELVIS

    Hi,
    Is there a way to reconfigure a PXI-7344 motion controller with its two 68-pin connectors so as to use it as a DAQ device that would receive the signals from a NI ELVIS workstation. The 7344 has a "motion I/O connector" and a "digital I/O connector". Analog outputs are even possible if I remember well, as well as digital.
    Thanks

    Hello,
    The card does has some analog input and outputs. I would check the manual here: http://www.ni.com/pdf/manuals/370838b.pdf. The DAQmx API with a DAQ card is going to be much better than interfacing with a motion card, but you should be able to read off it at the least.
    Rahul B.
    Applications Engineer
    National Instruments

  • PWM PID loop on 7344 motion controller

    I need to control motion by PWM, with the help of 7344 motion controller.Please verify if it possible or not, and how can I do it.Please provide me(if it possible)any example of solution of this problem.

    Hello,
    The onboard PID circuitry can only be utilized with servos and closed loop steppers. You can write your own PID loop in software using the PWM functions and the Read Encoder Position.flx. This should work pretty well for low loop rates (since it's implemented in sw). I don't think there are any examples of it available but it should be pretty straight forward.
    Regards,
    Yusuf C.
    Applications Engineering
    National Instruments

Maybe you are looking for