Analog feedback

Is there any way to manipulate the analog feedback signal used by a 7354 motion controller within Labview?
I.e. implementing things such as lookup tables, averaging, filtering, etc in the control loop?
For instance, for a noisy signal is a hardware filter right at the input to labview the only option?

Cronin,
the 7354 doesn't offer a way to manipulate the feedback signals before
they are used in the control loop. The DSP of the board talks directly
to the analog inputs so any manipulation would have to be done in the
firmware which can't be changed by the end user. If necessary filtering
should be done in external signal conditioning hardware.
On the other hand NI offers products to build your own motion
controller based on LabVIEW Realtime and (optionally) LabVIEW FPGA
hardware. The NI
SoftMotion Development Module for LabVIEW gives you the the flexibility
to choose from a variety of hardware platforms the best fit for your
application. As the trajectory generation and the control loop are
running in LabVIEW you can manipulate literally every single piece of
the motion controller including the feedback signals and the control
algorithm.
Please have a look at this link for more details.
Best regards,
Jochen Klier
National Instruments Germany

Similar Messages

  • Torque control is not working for my system using analog feedback

    In the test bed, we are testing a brushless DC motor and a load motor generates torque to the test motor. The test motor is running with torque control scheme. They were connected together and I measured the torque signal to feedback the signal and control it. However, I just realized it only control when the torque was static. If I commanded a certain torque value (in this case, counts command), it kept generating that value. However, it did not generate the same torque in different position. I heard NI motion controller could develop torque values by mapping the torque signal with encoder signal. If it's true, the torque generation based on analog feedback, also, needs constraint by rotor position, right? W
    hen I turned on the load machine with constant speed (50 RPM), the torque from the test motor did not provide the constant torque that I commanded. It generated the fluctuated torque values. This means the max torque was generated at one point and decreasing by rotating the shaft and increasing the torque. Keep going in this way. Could you please tell me if this is the correct response when we are using analog torque feedback?
    Thank you.

    Try the following:
    1.-Set your test motor to encoder feedback instead of analog feedback.
    2.-Load a velocity move on the axis for the test motor.
    3.-Set the following error limit on you axis to 0 (disable following error).
    4.-Use the load torque limit function to limit the amount of torque the 73xx PID loop will generate,this value is in volts, so you will need to do a correlation between the voltage output from the controller and the torque reported by your torque cell.
    5.- Start the load motor.
    6.-Engage the cluch.
    7.-Start the velocity move on the test motor, you will see the torque ramp up to the torque limit.
    8.-Call the load torque limit function on the fly to vary the torque setpoint to where you want it.

  • Encoder and analog feedback together

    I am using a PCI 7344 board that will operate up to 4 axis with both encoder and transducer feedback.
    The user will have the ability to switch between the two types of feedback whilst on the fly with the system momentarily executing a stop command before re-configuring itself in the other mode be it encoder or transducer. This works fine.
    My problem is - when I am in encoder feedback mode, I do not get a feedback reading from my transducer as my primary feedback device is the encoder and as such the output given is for the primary device. I need to be able to see the analog feedback device whilst operating with the encoder and primary feedback.
    I may have a solution to this, by using one of the feedbacks as the secondary feedb
    ack although could not find any information regarding secondary feedback on NI's web site.

    Hello,
    First of all, analog feedback can not be used as secondary feedback. When you are running on analog signal as your primary feedback, you should be able read encoder data calling the Read Encoder Position.flx. When you are running on encoder as your primary feedback, you should be able read analog data calling the Read ADC.flx. If you do the enabling/disabling properly when you are switching from one feedback mode to other, you should be able to read all the signals.
    Hope this helps!
    Regards,
    Yusuf C.
    Applications Engineering
    National Instruments

  • Problem when analog feedback is set as primary feedback

    I have a simple labview program for pressure control. Primary feedback is set to ADC 1 in MAX. ADC 1 is connected to a voltage signal which represents a pressure. When the motor run from program, the motor stopped after certain time because move complete turn to True, but the position reading didn't reach the desired position at this time. If the motor run from MAX, the motor didn't stop untill the position reading reached the desired value.
    The configuration file exported from MAX and lv program are attached. I would appreciate you very much if anybody could find problems in my program or configuration.
    I am using PCI 7342.
    Thanks.
    Attachments:
    ADC_primary_feedback.xml ‏581 KB
    pressure_control_2.vi ‏74 KB

    Hello Ya-hoo.
    I first just want to clarify what I think your issue is. It sounds like you essentially have a servo motor system with analog feedback. This system is moving to the desired position (pressure) when it is run through 1-D interactive in MAX, but it does not correctly move in your LabVIEW program.
    This situation is uncommon but it can happen. Generally speaking, the things to make sure of:
    Be sure the settings are saved in MAX and that the board is initialized with those settings before running the LabVIEW program
    Make sure you are not calling the stop VI too early. In the while loop you are polling the move complete criteria. What happens if you take that out and simply wait until the user pushes the stop button? If this fixes
    the problem, try adjusting some of the Move Complete criteria (Trajectory Settings in MAX) and see if that changes the behavior.
    As far as the tuning is concerned, I will refer you to the following tutorial on Understanding Servo Tune. This should go over some tuning concepts.
    Hope this helps.
    Regards,
    Colin C.
    Applications Engineering
    Colin Christofferson
    Community Web Marketing
    Blog

  • Is it possible to condition a load cell signal with a 1520 SCXI and then use it as the primary analog feedback for a 735X motion control board?

    My system
    PXI 1052 chassis
    PXI 8196 RT controller
    Flexmotion 7356 motion controller
    Flexmotion 7354 motion controller
    6259 M series DAQ
    1520 SCXI
    1520 SCXI
    1314 SCXI frount mounting terminal block
    DSM strain gage load cells
    Exlar SR Brushless PM motors
    Kollmorgen servo star CD series 5 drives
    My objective:
    I want to measure the force on the load cells with the 1520 SCXI (i.e. excite the load cell then amplify and condition its output) then I want to use this analog (force) signal as the primary feedback for my motion control system (7356 and 7354 motion controller connected to my drives and motors).
    The problem:
    The motion controller boards (7356 and 7354) can be configured for force feedback control via analog feedback from a load cell.  However the boards implicitly expect the load cell signal to be amplified and conditioned with and external signal conditioner rather then using an NI SCXI module.  Currently I’m am reading the SCXI signals via the 6259 M seriers DAQ and consequentially have no way to route the signal into the 735X boards for force feedback control.  I can use softmotion to control the motors but then I loose the fast PID update rates possible with the 735X boards.
    The question:
    Is it possible to condition a load cell signal with a 1520 SCXI and then use it as the primary analog feedback for a 735X motion control board? 
    Thanks
    Patrick Aubin
    Ph.D Candidate
    University of Washington &
    VA MedicalCenter of Excellence for
    Limb Loss Prevention and Prosthetic Engineering  

    Hi GG,
    Thank you for your feedback.
    >create your own external circuitry to amplify the signal.>
    True a few op-amps could amplify and filter the signal externally but the performance of such an amateur built system will never match the accuracy and functionality of the 1520 SCXI.  That’s why we spent the $2500 for the professional version.
    >One thing that you could do is to use a UMI with your motion controller and then wire your signal from your SCXI to the UMI.>
    As I understand it the UMI is basically a break out connectivity interface for third party drives.  After conditioning and amplifying the analog force signal with the SCXI module the analog signal isn’t available to wire into a UMI.  To my knowledge the conditioned signal of the SCXI resides only in the PXI backplane (i.e. there is no physical access to the conditioned analog signal).  Can you explain how the UMI could be help here.
    Again thanks for your input GG.
    Patrick

  • Switching from analog feedback to encoder feedback

    Greetings,
                    I am having problems with switching feedback sources in my Labview App.  I am using a 7344 board.  I initialize the board in encoder feedback as primary.  Then I am able to switch to analog feedback, but then the problem is when I switch back to encoder feedback it acts like it is still using analog feeback as a Primary.  I can only get it back to encoder feedback only if I reinitialize the controller.  I am disabling the axis before I am making config changes and then re enabling axis to run axis on both accounts.  However it doesn't seem to be getting back to encoder feedback.  Any Ideas?
    Wade

    Hey wade,
    As mentioned in this Forum Thread, you should be able to switch back and forth between feedback sources on the 733X motion controller by disabling/enabling the axis. However, this is what you say you are doing. Perhaps changing the order in which you make the feedback switch. What happens if you make the feedback change and then simple disable/enable the axis? Are you seeing this same behavior on all of your axis? What version of the NI Motion driver are you using?
    Hope this helps.
    -Ben
    WaterlooLabs

  • Problem using analog feedback on pix7340

    Hi,
    I am trying to use analog force feedback on one of my axis on pxi 7340. The problem is that MAX always uses encoder as feedback even if i configure it to be analog. In MAX i disabled encoder and enabled the appropriate ADC for the axis and set the position to few hundred counts so the controler stops the axis when force is above a small value (around 1V). If i start motion it moves the same as if the feedback was encoder (for few hundred counts). I dont know what is happening. I red the motion manual and if i understood it correctly the axis should move at the configured speed until the force is larger as value i set in position field.
    Thanks
    Solved!
    Go to Solution.

    Hi toni939,
    please have a look at this document to get a full understanding how analog feedback works with NI motion control boards. I have also gathered all discussions with my involvement about analog feedback under the AnalogFeedback tag.
    Kind regards,
    Jochen Klier
    National Instruments
    Message Edited by Jochen on 02-03-2010 04:20 PM

  • Scaling Settings Analog Feedback for 7354

    Hello,
    I would like to use a Torque sensor as an analog feedback in 7354. The sensor range is +/- 100 Nm, The output is 10 VDC for 100 Nm and 0 VDC for -100 Nm so Zero Nm is 5 VDC.
    How should I scale torque values as counts ? When I program with Labview, What should i do ?
    Thanks
    TallTale

    Hello TallTale,
    Thank you for using National Instruments discussion forums.  Some more information might help in understanding what type of motion control system you have such as: Is your Torque related linearly to the position of the motor or are you changing the velocity due to the torque value?  You can set the ADC range in Measurement and Automation Explorer for each axis analog inputs under "ADC Settings".  The difficulty comes
    in understanding the "paradigm shift" in the standard NI-Motion API
    terms; specifically target position, velocity, acceleration, and
    deceleration.  I have attached a really good document that discusses how to setup your motion control system for analog feedback.  I hope this information helps.  Thanks and have a great day.
    Regards,
    Mark T
    Applications Engineer
    National Instruments
    Attachments:
    How to setup a system for analog feedback control.doc ‏1188 KB

  • Analog feedback 7344 0-5V non liniar

    Hi.
    Having a 7344 left over from an aborted project, I wondered if this controler would accept a non liniar 0-5V position feedback in PID closed loop.
    I know the analog input is "only" 12bit, but this gives by far the required position on the travel I need for this application which is to be an automatic throttle control on my enginedyno. It is not possible (nor practical) to mount encoders on the many different throttlesystems, so the 0-5V from the throttlepositionsensor is all I have.
    If ok, then what kind of motor should I look into, stepper og servo since the application is more still standing in any position than actual turning (running is expected to be very few turns when geared to move throttle 0-80 grd. I have both a SX and CX Nudrive.
    Thanks in advance
    Peter Rene

    It should be possible to use the 0-5V signal as an analog feedback. You can configure the ADC settings for a 0 to 5 V range that maps the full 12 bit resolution to your feedback range. For position control it doesn't matter that your feedback signal is non-linear as long as you know how the voltage of your feedback signal corresponds to the position of the motor. Still you will see the same amount of non-linearity in the velocity profile of your axis as long as you don't run your axis always in contouring mode to compensate it.
    Even though most time your axes are static which I agree would suggest to use a stepper I recommend to use a servo instead. The reason is the fact that closed loop steppers are not controlled in the same way as servos. In theory, analog feedback for stepper motors should work correctly; however, there are several problems that will arise when you attempt to control a stepper motor from an analog feedback. In this type of system, the analog feedback is converted into a position and compared against the desired position, and then the stepper motor is "pulled in" to that position. One of the problems with analog feedback for stepper motors is noise, another one are non-linearities of the feedback signal. Closed loop stepper mode relies on a fixed ratio between the generated steps and the feedback. This is not the case if the feedback signal is non-linear. Thus you will have to use a servo motor.
    As an alternative you should consider using a stepper motor in open loop mode (without feedback). If you can make sure that you don't loose steps this would be the best and easiest option.
    I hope this helps,
    Jochen Klier
    National Instruments Germany

  • Trigger based on Position when using analog feedback

    I am developing an application that uses two hydraulic cylinders to move a model in a pitching and plunging motion.
    My hardware consists of a P4 computer running windows XP SP2. The motion controller is a PCI-7350, 2 axis board.
    The two hydraulic cylinders are equipped with analog position sensors which provide the primary feedback signal for the motion control.
    The drive signal from the motion controller is used to open or close a hydraulic valve, closing the loop. The motion portion works great.
    I am using buffered contouring to generate a precise motion on the two axis using a vector space. The update rate is 10mSec and the motion appears to be correct. Is the contour update rate a precise 10mSec if the PID is running at 62.5 uSec?
    My problem is I need to generate a trigger when the controller is on specific positions of the contour. I can't use breakpoints as I am using analog feedback instead of an encoder. I wrote an onboard program that monitors the contour buffer and toggles the breakpoint line when the controller is on or beyond the specific point. It runs ok and is close but, I am getting an occasional timing discrepency of roughly 16 mSecs. ie the trigger will occasionally be  late by more than 1 contour period.
    I tried increasing the size of the buffer to hold all the points as I thought the delays might be occuring when the buffer was being updated. No change in performance. I tried assigning more time to the trigger program as it is the only on board program, but again it seemed to make no difference. I reduced host communications to a minimum, no change.
    I have attached my entire application and a test sample waveform  in a zip file. You can run the application without any hydraulic cylinders if you set max following error to 32768. You should have a trigger pulse on the breakpoint line every 500 mSec.
    Any pointers would be greatly appreciated.
    Attachments:
    M22PitchPlunge.zip ‏524 KB

    Brian,
    Yes, you can reach exactly 10 mS update interval with a PID rate
    of 62,5 µSec. You can calculate the actual interval with the forumla
    provided here.
    Of course the accuracy is limited by the accuracy of the onboard
    oscillators of the board but this shouldn't be really relevant.
    Generating triggers based on 2D position data is not a trivial
    task. I have tried to examine your program but it's a bit hard to read.
    I had a look at your onboard program. I don't understand exactly how
    you determine if the axes have reached a trigger position or not. It
    looks like you are only reading values from buffers. For an exact match
    with the physical positions you should read the real position values
    from the axes and compare them with your trigger position buffer. In
    your comparison algorithm you will need to add some tolerance to allow
    some deviation from the ideal trigger position (see image).
    There are several possible solutions for your application. You could
    either try to implement the more advanced comparison in your onboard
    program but I'm not sure if this will result in the performance you
    need. The 7350 provides only a limited amount of CPU power for onboard
    programs. At last it all comes down to the question how good your
    deterministic real-time behavior needs to be. If some ms delay and
    jitter are ok for you then you probably could stick with this approach.
    If you need a better real-time behavior you should consider using
    either an additional real-time board like the PCI-7041/6040E that could run the 2D trigger algorithm or a PCI-7830R board that could run the algorithm on an FPGA.
    There are even more options including the NI SoftMotion Development Module to design your own motion controller using LabVIEW RT but again, this depends on your application needs.
    Best regards,
    Jochen Klier
    National Instruments Germany
    Message Edited by Jochen on 09-09-2005 10:47 AM
    Attachments:
    Image1.jpg ‏19 KB

  • Analog feedback on a stepper

    Hi,
    I'm running a motion control system with the MID7602, PCI7352 and a stepper motor plus encoder. The problem I have is the folowing:
    With the stepper I drive a linear, leadscrew alike, mechanism to bend some probes. Those probes will provide in return a voltage to tell me how far they are being bend. The question is, how could I implement a function with the ADC as primary feedback to tell the motor to stop motion at a given voltage-level? Furthermore is there a chance of suppling a vi with similar functions, so i could understand the mechanism better?
    Thanks!
    Message Edited by Endeavour-1770 on 03-19-2008 08:26 AM

    Hi!
    Yes, I do use LabView 8.5 with the NI-Motion 8.5 Module and I'm aware of the ADC read function, but maybe I didn't make my problem very clear. Looking for some examples within the LabView help ended up in no examples as with the Read ADC being integrated in the primary feedback. In the NI-Motion manual were a few examples, but there the read voltage from the ADC is just feedback as a position in a way that wont work for my setup.
    The thing i want to do is to move a pushing rod towards a sample...the sample will be bend a return a voltage "somehow" (not predictble) proportional to the bending...i already read back that voltage with the Read ADC function, so that is no problem...what i want to do then or next, and that is with what i'm struggeling, is...to tell the motor to move the pushing rod towards the sample until i reach, due to bending, a certain voltage value (predefined) like a trigger and then stop the motor...similarly as i'd do by telling the motor via the Move to Postion VI to move into a certain position and reading back the value of the position with an encoder all the ime until the final position is reached. As far as i understood i could feed that ADC value into the Move to Position VI and the value of the ADC will be interpreted into a position as if there was an encoder, but  that's not what i want to do...I want to know how to tell the motor to move until it reaches a defind voltage value?

  • No feedback from resolver after upgrade from 7 to 8.2

    Hi,
    I am running a Pac Sci servo motor as a stepper (with step and direction signals) and
    using the resolver as feedback (analog channel 1) with a PCI 7344 motion card.
    I have updated NI Motion device drivers, firmware, and LabVIEW 7 express to 8.2. 
    In measurement and Automation I reconfigured closed loop stepper using analog feedback.
    1-D interactive:
    I command a move, the servo moves, but the position display does not change, only the following error increases.
    The servo movements are in the correct direction but result in different magnitudes with the same movement command.
    The system worked fine on a different computer before upgrading the motion drivers, firmware, and Labview.
    Where do I start?
    Matthew

    Hi,
    If the position doesn't change this means that the board can't read the feedback signal for some reason. If your position stays exactly at 0 with analog feedback enabled please check the cabling for your resolver (is it powered?). Please check if the ADC is working correctly by reading it in an application (please unmap it from the axis before).
    You could also try to find out if it works correctly when you rewire your motor/resolver to work with another axis.
    Please let me know how it works
    Best regards,
    Jochen Klier
    National Instruments Germany

  • Analog Fedback for position control

    Hi all,
    Its been a long time since I have written into this discussion forum. I have a question. Till now I have been using encoder as a feedback device for position control in PCI 7342 motion controller. Now I want to know about position control using the analog input channel. I cant figure out how the controller understands the equation between input voltage and position.
                                                               Say X Volts = How many mm of movement?
    With the encoder f/b the motion controller knows the encoder pulse per revolution and it keeps counting the feedback and generates motion accordingly. How is it done with analog feedback. My application involves an LVDT which give proportional analog feedback with respect to the displacement. Please help me oiut on this. Also is position compare and breakpoint feature relevant to this particular problem?

    Hi Giridhar,
    it's good to see you back in the forums.
    I have posted a document to another thread that contains a detailed description of the analog feedback feature.
    I hope that helps,
    Jochen Klier
    National Instruments Germany

  • Toolkit for feedback system? Motion; PID; Control/Simulation???

    Hi, I have to develop/program an organ bath system - a feedback system mimicking real sinusoidal breathing oscillations (shown in attached images). I have NI Labview 8.5, NI-Motion 7.6, a linear motor (M-235 DC-Mike actuator), an MID-7654 Servo Power Motor Drive and a pressure transducer. I believe I will need to control the PID controller and am aware of the PID Control Toolkit as well as the Control Design and Simulation Toolkit for NI Labview. However, is it possible to control the system using the NI-Motion software I have at the moment? If not, do I have to purchase both the PID and Control/Simulation Toolkit or just one? Thanks in advance...
    Attachments:
    feedback design1.JPG ‏25 KB
    feedback system1.JPG ‏42 KB

    Dear Garry,
    Do you have a motion controller to interface the MID-7654 to your
    computer and LabVIEW? This would be the PCI-734x or PCI-735x. If you
    do, I believe that you could implement your application with LabVIEW
    and NI-Motion. You could do so by using the analog feedback feature for
    the control loops for each axis. Then, you could specify the optimal
    sinusoidal moves/pressure patterns that mimic real breathing patterns.
    The analog feedback from your pressure transducer will be used during
    the move(s) to maintain the pressure that you want.
    Please see Chapter 13 here for more details:
    NI-Motion User Manual
    http://www.ni.com/pdf/manuals/371242c.pdf
    Here is also a good discussion forum post on Analog feedback:
    Can i use NI-7358 to implement a hybrid position force/torque control system?
    http://forums.ni.com/ni/board/message?board.id=240&thread.id=2976&view=by_date_ascending&page=1
    I believe that the above option would work for you, and you would not
    have to use the Control Design and Simulation Module or the PID
    Toolkit. Please let me know if you have any additional questions. I
    haven't actually set up a system with analog feedback from a pressure
    transducer before, but I believe that the above would be a very viable
    option.
    Best Regards,
    ~Nate

  • How to programmatically change the feedback device??

    Hello,
    We are using the NI UMI7774, together with a Servo-drive for a linear actuator. In our application, we must first go to a certain position, then maintain a certain force for while, then go back to a certain position....
    For the position control we have mapped the actuator's encoder as the feedback device in MAX - and it works well. For the force control part, we want do use the "Force control using analog feedback"-method (see NI-Motion manual, chapter 13). For this, the force sensor needs to be mapped as the feedback device...
    (1) The question is, HOW can we make this mapping programmatically in our application source code???...is there a method "setFeedbackDevice()" or something??
    (2) Is it likely that we have to have 2 PID-settings (one for the position control part and one for the force control part) and if yes, how can we load the PID parameters programmatically, without opening MAX??
     (3) In the mean time, we have experimented a bit: Using MAX and the encoder as the feedback device, we have positioned the actuator to a certain point. Then we mapped the Force sensor as the feedback device in MAX and pressed Save. However, when we run the force-control-using-analog-feedback example, it didnt work. It still used the encoder as the feedback and hence just moved to a certain position.....We then did another try, where we set the force sensor as the feedback device in MAX, pressed SAVE and pressed INITIALISE.....the actuator subsequently started rattling, without us issueing another move command??.....does anybody know, what this could mean and what we should do????......
    THANKS a LOT FOR ANY ANSWER AND YOUR EFFORTS.......
    p.s. We know that there is also the option of "Force Control using Monitoring Force", but after some discussion on here, it appears that the Analog Feedback-method seems to give better force control results in our application....

    Hi janClose,
    You can change the feedback programmatically by using flex_config_axis(). The axis needs to be stopped when you call this function.
    The control behavior differs significantly when you change the feedback resource, so yes, you will have to tune your axes for both feedback modes seperately. You can change the PID parameters by using flex_load_pid_parameters(). Please note, that you can define two sets of PID parameters and you can switch between these two sets by calling flex_load_single_pid_parameter().
    The last paragraph in the online help for flex_load_pid_parameters() discusses this feature.
    Parameter changes in MAX are not applied before you reinitialize the board, so if you just save the changes the board's operation mode is not affected. The reason why the motor starts rattling when you initialize it, is due to the fact that you are still using the position control PID parameters, which are typically not valid after changing to force control.
    I hope that helps,
    Jochen

Maybe you are looking for

  • Installing Windows XP on my MSI system

    system specs:      * I am currently in the process of building the system      *It contains your 875P Neo-FIS2R mainboard for Pentium 4.      *Pentium 4 3.0 Ghz , 800 fsb.      *2 hard drives:            - WD Raptor 36.7 GB            - WD Caviar 160

  • Unable to refresh one or more data connections in the workbook.

    Hi All, I'm Getting below error once i refresh all the connection in Power query. External Data Refresh Failed An error occurred while working on the Data Model in the workbook. Please try again. We were unable to refresh one or more data connections

  • Source System Extraction taking more time

    Hi All, I Have an Issue, please help me out in this. We have two source systems in our process. One is working fine. We dont have any issue with that. But another source system taking more time to extract the data in the source system than usual. Fro

  • Query Problem With Exception Aggregation

    Hello,          I have two I/O 0Customer and 0Cont_Acct and also I have a Infoset made out of both. Here is the problem i am trying to solve, I want to figure out the customers who has more than five contract accounts associated with each customer nu

  • Prints with a 3 inch left margin 2hich losses imprtant data

    when printing data tables on line 5 columns wide, the left margin is about 3 inches wide which removes the fifth column on the right. (The Firefox printer page setup table is set to 1/4 " n the right and left sides.)