Dual loop control for positioning system.-- motion ocntrol

I am currently doing a dual loop control for a positioning system,  i use the tachometer to read the velocity and the position encoder about the position of the platform. 
the problem i am currently encounter is that i am not sure weather the computer have the PID toolkit, because i can not find them under the control design and simulation module.  so i did a PID  use the basic labview functions, related information is in the attached documents.
i am not sure about the dt part, did the labview have this kind of function like to calculate the simpling time??
do i have to install the labview real_time potion? i am right using the labview 8.5
another question is that, how i am going to let the system remember the position instead of return to 0 every time i  restarted the program? otherwise is there any other way that i can command the motor to move to the target position which is initially defined? 
the last question is that that is it possible for me to generate a profile regarding the current and the desired position? to set a maximum velocity and acceleration.
i do not have a motion controller, so i did not install the  motion and version module. 
can some one suggest me a way to do this?
Solved!
Go to Solution.

attached is the files.
Attachments:
Integral.vi ‏8 KB
Dt.vi ‏7 KB
A CLOSED-LOOP TEMPERATURE CONTROL SYSTEM.pdf ‏886 KB

Similar Messages

  • Loop control for set number of times per loop

    Hello everyone,
    I am having a problem with an assignment, I have gotten it all to work except one thing. The assignment was to create a quiz asking for the planets in order by using JOptionPane input dialog,loop, and StringBuffer. If the user answers incorrect show a message dialog with a hint and ask the same question again. If the user gets it wrong again, then just move on to the next question. I got it to work except I cant figure out how to make it ask the question again only once if the answer is wrong. Here is what I have so far:
       import javax.swing.*;
        public class SolarSystemQuiz {
           public static void main(String[] args) {
             String answer;
             int i ;
             int count = 0;
             int correct = 0;
             int wrong = 0;
             boolean crt;
             for (i=1; i < 10; ++i) {
                StringBuffer str = new StringBuffer("What is the " + getPlace(i) + " planet in the solar system?");
                do {
                   answer = JOptionPane.showInputDialog(null, str);
                   crt = getAnswer(i, answer);
                   if (crt) {
                      ++correct;
                      count = 0;
                   else{
                      ++count;
                      ++wrong;
                } while ( ! crt && count <= 1);
             JOptionPane.showMessageDialog(null, "You got " + correct +
                " answers correct\n, and " + wrong + " incorrect answers.");
             System.out.println(correct + wrong);
             System.exit(0);
           public static String getPlace(int spot) {
             switch (spot) {
                case 1:
                   return "1st";
                case 2:
                   return "2nd";
                case 3:
                   return "3rd";
                case 4:
                   return "4th";
                case 5:
                   return "5th";
                case 6:
                   return "6th";
                case 7:
                   return "7th";
                case 8:
                   return "8th";
                case 9:
                   return "9th";
                default:
                   return "You have created an error, please try again.";
           public static boolean getAnswer(int planet, String guess ) {
             String mercury = "mercury" ;
             String venus = "venus";
             String earth = "earth";
             String mars = "mars" ;
             String jupiter = "jupiter";
             String saturn = "saturn";
             String uranus = "uranus";
             String neptune = "neptune";
             String pluto = "pluto" ;
             switch (planet) {
                case 1:
                   if (guess.equalsIgnoreCase("Mercury")) {
                      JOptionPane.showMessageDialog(null, "Correct!");
                      return true;  
                   else {
                      JOptionPane.showMessageDialog(null,
                         "not it, the planet starts with M and has " + mercury.length() + " letters");
                      return false;
                case 2:
                   if (guess.equalsIgnoreCase("Venus")) {
                      JOptionPane.showMessageDialog(null, "Correct!");
                      return true;
                   else {
                      JOptionPane.showMessageDialog(null,
                         "not it, the planet starts with " + venus.charAt(0) + " and has " + venus.length() + " letters");
                      return false;
                case 3:
                   if (guess.equalsIgnoreCase("Earth")) {
                      JOptionPane.showMessageDialog(null, "Correct!");
                      return true;
                   else {
                      JOptionPane.showMessageDialog(null,
                         "not it, the planet starts with " + earth.charAt(0) + " and has " + earth.length() + " letters");
                      return false;
                case 4:
                   if (guess.equalsIgnoreCase("Mars")) {
                      JOptionPane.showMessageDialog(null, "Correct!");
                      return true;
                   else {
                      JOptionPane.showMessageDialog(null,
                         "not it, the planet starts with " + mars.charAt(0) + " and has " + mars.length() + " letters");
                      return false;
                case 5:
                   if (guess.equalsIgnoreCase("Jupiter")) {
                      JOptionPane.showMessageDialog(null, "Correct!");
                      return true;
                   else {
                      JOptionPane.showMessageDialog(null,
                         "not it, the planet starts with " + jupiter.charAt(0) + " and has " + jupiter.length() + " letters");
                      return false;
                case 6:
                   if (guess.equalsIgnoreCase("Saturn")) {
                      JOptionPane.showMessageDialog(null, "Correct!");
                      return true;
                   else {
                      JOptionPane.showMessageDialog(null,
                         "not it, the planet starts with " + saturn.charAt(0) + " and has " + saturn.length() + " letters");
                      return false;
                case 7:
                   if (guess.equalsIgnoreCase("Uranus")) {
                      JOptionPane.showMessageDialog(null, "Correct!");
                      return true;
                   else {
                      JOptionPane.showMessageDialog(null,
                         "not it, the planet starts with " + uranus.charAt(0) + " and has " + uranus.length() + " letters");
                      return false;
                case 8:
                   if (guess.equalsIgnoreCase("Neptune")) {
                      JOptionPane.showMessageDialog(null, "Correct!");
                      return true;
                   else {
                      JOptionPane.showMessageDialog(null,
                         "not it, the planet starts with " + neptune.charAt(0) + " and has " + neptune.length() + " letters");
                      return false;
                case 9:
                   if (guess.equalsIgnoreCase("Pluto")) {
                      JOptionPane.showMessageDialog(null, "Correct!");
                      return true;
                   else {
                      JOptionPane.showMessageDialog(null,
                         "not it, the planet starts with " + pluto.charAt(0) + " and has " + pluto.length() + " letters");
                      return false;
                default:
                   JOptionPane.showMessageDialog(null, "Not in this universe, try again");
                   return false;
       } Thanks for your time,
    Brad

    This was a perfect example of how fast and easy a fix can be when the OP provides sufficient information and code.

  • Ethernet Unix control for PIX system

    I am looking into assisting to install a PIX rack with several power supplies into an existing test system running Unix.  Has anyone on the forum had any experience with interfacting PIX with an older Unix system and, if so, what was your approach in terms of both the hardware used and the code you wrote?  At this point I am looking at an Ethernet based solution as the Unix system has this currently and it - at least for right now - seems to be the most logical approach to take on the project.
    Any thoughts, pointers, direction or general warnings are appreciated.
    Andy Linnenkohl

    Make all of the above PIX PXI. 

  • I have a state space model of a complex system. can anyone help me for implementi​ng MPC and e-MPC control for the same?????

    Hi everyone. I am new to the forums, so let me be as mprecise as possible. i know the basic functionalities of Labview with MPC block etc. However, i dont know how to go ahead with implementing MPC control for a system whose state space model i possess. can anyone help me out?? the problem is that i dont even know the approach or the starting point..

    This happens if you remove a program manually, but still have the registry keys to load files from this program.<br />
    You can use the MSConfig program or the Autoruns utility to see which software and services are getting started.
    *http://technet.microsoft.com/en-us/sysinternals/bb963902.aspx
    You can use registry editor and do a search (Ctrl+D) for imesh to see if you can locate the registry key(s) that launches this program on a reboot.
    Try to ask advice at a Windows oriented forum if you can't fix this.
    * http://www.bleepingcomputer.com/forums/ - BleepingComputer.com - Computer Help Forums
    * http://windowssecrets.com/forums/ Windows Secrets Lounge

  • Newmark Systems Motion Controller

    I am trying to control A Newmark Systems Motion Controller using Labview 8.5. The Model number is NSC-M4 and it connects to the computer using an RS-232 connection.
    Using Visa Write commands in Labview I have been able to get some motion out of the linear stages connected to the controller. I have also been able to issue basic commands.
    The difficulty I am having is that typically after a few movements the controller stops responding to my commands. I believe that the controller is encountering an error, but I have no way of knowing because I have been unsuccesful in getting labview to read any values or messages from the device.
    I haven't been able to find any device drivers for the controller, nor have I been able to find any sample Labview programs to give me some guidance on where to go next with this.
    I guess my questions are;
    How do I read any requested information from the device?
    What could be causing my sudden loss of control of the device?(If I'm wrong and it's not just the device erroring out)
    And are VISA read/write commands the best way to communicate with this type of device or is there a better method than what I'm using?
    I'm still pretty new to Labview so any help would be greatly appreciated.

    Hi Chris,
    I am also programming a VI which control a 2-axis stepper motor of Newmark systems. I have managed to control the motion with VISA, communication is rs232. What I need is to simulate the motion of the device on VI. This is because I want to control the deice remotely, without actually seeng the response of the device. I thought this may be managed with the VISA read however, I couldn't manage it. This simulation might be a chart or graph, or I have 3D images of my device and it would be really great if I see the motion actually on these images.
    How can I do that?
    Thanks in advance.
    Regards
    Berk.

  • How can I control the positioning of a horizontal line?

    Hi - I'm wanting to control the positioning of a horizontal line in Pages.   Is there an easy way to do this?  Thanks.

    Adam,
    The Metrics Inspector has all the controls for positioning.
    Jerry

  • Configuring Secondary Feedback for Position Control

    Hi,
    I am using PXI7340 Motion Control card with RT Controller. I am using servo motor with 35:1 gear to increase the output torque. I have two encoders (One at the motor side and the other at the load side). If I want to control motor position based on the second encoder feedback then what is the procedure for that.
    Now I connected Motor side encoder as Primary feedback and load side encoder as secondary feedback. But there is no option to enter gear ratio in MAX.

    Venkat wrote:
    Hi,
    I am using PXI7340 Motion Control card with RT Controller. I am using servo motor with 35:1 gear to increase the output torque. I have two encoders (One at the motor side and the other at the load side). If I want to control motor position based on the second encoder feedback then what is the procedure for that.
    Now I connected Motor side encoder as Primary feedback and load side encoder as secondary feedback. But there is no option to enter gear ratio in MAX.
    Hello Venkat,
    Thank you for contacting National Instruments. It is advised to use secondary feedback in situations like yours to overcome backlash due to gearing. Backlash is the delay there can be in the motion from the motor to transfer over to the load. If the encoder connected to the load is used to close the velocity loop it can lead to a delayed response in terms of correcting the velocity. Secondary feedback is used to compensate for the backlash and is used to complete the velocity loop. Secondary feedback comes from the encoder connected to the motor. Primary feedback in this case is used to correct position errors and needs to come from an encoder connected to the load.
    When using secondary feedback the Kd term of the PID is set to 0 and the Kv term is used instead. You will not need to set the gearing ratio or the encoder counts per revolution for the secondary feedback since the velocity loop is only interested in the difference in steps. More information about this procedure can be found in the NI-Motion User Manual installed on your machine with the NI-Motion drivers. You can find it under Start>>Programs>>National Instruments>>NI-Motion>>Documentation>>NI-Motion User Manual or "C:\Program Files\National Instruments\Motion\Documentation\NI-Motion User Manual.pdf". Dual Loop Feedback on page 4-30 goes into more details about this procedure. Hope this helps your out. Have a nice day!
    Regards,
    Nipun M.
    Applications Engineer
    National Instruments

  • Need motion control for a video link antenna

    Up to 60 lb parabolic dish antenna.
    Need 1 degree positioning accuracy (on 30 mi target).
    Motor postioning signal from an ethernet or Rs232 connection.
    We will send control signals (in required re-format of lat, long and elevation) converted to control motor positioning in azimuth and elevation of the dish.
    Need rugged for out door use.
    At close in ranges need motor speed to track target.
    Like to have software control to implement/adjust [lead/lag, possibly implement signal tracking] on the fly.
    any assistance appreciated ASAP. thxs/Steve

    Dear Steve,
    as we (PI) are experts in micro positioning systems your request looks very interesting to us. In order to explore which product of PI meets your needs best could you please provide your contact details? I think there is no "private message option" here on the board, but you could send an email to [email protected], my colleague Gernot will contact you then as soon as possible. You can also select the PI office that is closest to your location on our homepage
    http://www.physikinstrumente.de/offices/index.htm
    There you can contact your local office directly.
    Best regards,
    Gabs

  • 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

  • Dual Control for Sensitive fields  Transaction FD08?

    Hi all,
    When configuring the dual control for sensitive fields, Transaction i have a few questions:
    a) Is there a way (work around) by which I can add the sales area data fields to the catalogue of fields.
    b) More importantly, system allows to create the sales order even if the changes have not been confirmed by the respective approving authority, this alone beats the logic of configuring the sensitive fields.
    Is there some more setting or user exit which needs to be put in to prevent the user from creating the sales order unless the changes to the sensitive fields have been confirmed.
    Userfull answers will be rewarded!
    Thanks
    Kind Regards

    Hi,
    Please go through the following path for configuration :
    Point No. 1
    1> Customer
    IMG --> Financial Accounting (New) --> Accounts Receivable and Accounts Payable --> Customer Accounts --> Master Data --> Preparations for Creating Customer Master Data --> Define Sensitive Fields for Dual Control (Customers)
    2> Vendor
    IMG --> Financial Accounting (New) --> Accounts Receivable and Accounts Payable --> Vendor Accounts --> Master Data --> Preparations for Creating Vendor Master Data --> Define Sensitive Fields for Dual Control (Vendors)
    Point No. 2
    You can execute transaction code FD08 in background with a periodic job for each User ID who has authorization and tick on Accounts to be confirmed by me and send the output via mail through distribution list or each user can view output by viewing spool by going to transaction code SP01.
    Point No. 3
    Same as point 2 only need to select option Accounts refused.
    Point No. 4
    Yes
    Point No. 5
    Same as point 1
    Hope your issue gets resolved.
    Regards,
    Tejas

  • Position drift during the stepper motor controlled back and forth motion

    Hi everyone there,
    I get a headache position drift problem during the stepper motor controlled back and forth motion. I have been wroking on the problem for the last two weeks, and still can not figure it out. So I write down here my problem in hope of getting some clues from those have some experiences in stepper motor motion control.
    My goal is to use a stepper motor to drive a beam flage fixed onto the shaft to go back and forth for a certain angle, and this back and forth motion needs to be stable and reproducible within hours. With the SMD1 stepper motor driver, I only need to send in a pulse train to control the number of steps(the pulse frequency defines the stepping rate), and another pulse to controle the direction (i.e., cw or ccw). To do this, in LabView, I used the counter of the DAQ board to produce a finite pulse train to step the motor, and used one digital line to produce a pulse to switch the direction every 500ms, the timing is contolled by the software.(I used the oscilloscope to monitor these two pulses, the pulse train produced by the counter looks very stable, and delay between the pulse edges of the direction pulse and the pulse train is also very stable within 500ms. There seems no software timing problems at such a long delay.)  And this labview controlled motor appears to work perfectly as I required, the motor steps a defined number of steps at one direction, and then steps back at the origin position. But after running for a few minutes, the back position shifts gradually(I can not observe a obvious shift at the first few minutes) with repect to the origin position(the position I start running). I looked it up at the manual and also the website, I got a clue that this might because the motor steps at the resonace frequency of the motor and hence misses or takes extral steps sometimes. So I changed the steping rate from 1Hz to 1000Hz to see if the shift disappears or gets smaller at certain frequency range, but the shift always exists.
    I did observe the shift got smaller within the same running time when change the step model from full step (1.8degree/step)to half and quarter step model. According to this, the motor did miss steps (or pulses) during running, the quarter step model has smaller shift due to the smaller steps.  But I also noticed that the motor always shift at one direction, no matter I started with clockwise or counter-clockwise, this seems really strange to me. Because the motor should shift at each direction with the same probability if we assume the motor missis steps randomly.
    There is something must be wrong, either the labveiw program or the motor, but I don't even know a clue of this weird shift problem. And because of this, I haven't made any progress in my lab for the last three weeks. So any suggestions could be very helpful for solving this headache and will be really appreciated.
    Thanks a million in advance and Merry Christmas!
    Li

    Hey, Brian Beal,
    Thanks for your quick response. "accel" and "decel" mean acceleration and deceleration, am I understanding right?
    If yes, then I don't have these in my LabView program, I just generate one TTL pulse train and one TTL pulse with LabView and send them into the SMD1 stepper motor driver.
    The pulse train steps the shaft, and the other switchs the direction.
    Yesterday, I confirmed that if the motor steer always at one direction either CW or CCW, then the stepping were very stable, no missing or extra steps happen for hours.
    And I also observed that the motor took one extra step  from time to time when the direction changes. And this only happens when the direction switch from CW to CCW. (bizarre!)
    I guess this indicates that some pulse noise happens when the motor switch the direction too often.  But I just don't have any clue for irregular extra steps.

  • 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

  • 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.

  • Is possible control tape library slot 1 - 10 for file system backup

    hi ..
    i am new to osb , i just install and setup osb , i have a question as below , hope expert can help me
    env: testing
    rhel 5.5
    tape library with 20 slot
    file system backup
    1. is possible osb only use slot 1 - 10 for file system backup ? amanda can control slot x - slot y for the configuration .
    2. how do i label the tape for slot 1 - slot 10 by obtool ? how to control osb auto load the tape for next backup ? where to check the log say that next tape is tape-02 ?
    thanks ..

    hi dcooksey
    how do i use list for a tape drive...for example, if you want tape drive A to only use slots 1-10 from obtool or webtool ?
    becoz i new to backup solution & osb ( i always use ghost or acronis to clone the image ) , my thinking as below , pls correct me if i am wrong
    slot 1 - 10 for daily backup
    slot 11-16 for full system backup
    slot 17 - 20 reserve ( this tape only use for full system backup before perform any application upgrade patches , )
    daily backup mon - fri ( 2 week ) ( no backup on saturday and sunday ) , server application offline
    full system backup friday ( 1 , 14 on calendar ) every 2 week perform full system backup after daily backup completed
    for upgrade application ,
    perform full system backup after daily backup , then release the server to application team to perform upgrading .
    so how to set my media family for the above setting ? the slot configuration is control by media family ?
    hope you can help ...

  • Dual Control for Vendor/Customer Master Data

    We can set Dual Control for Vendor/Customer Master Data. I have set it. According to the cycle, I have customized sensitive field, and make changes in Vendor/Customer A/c. Here the changes will be confirmed by other user who is authorised to confirm the changes. In this scenario, I would like to know, can we avoid this confirmation once we have actived? If, no than how could we confirm the changes and where can we set authorisation?

    Dear,
    No, You cannot avoid the dual check if You activate it. Another user by FK08 has to confirm the changes.
    Then You can delete the field for the dual control into the table T055F and no check will be done in the future.
    I hope this helps.
    Mauri

Maybe you are looking for

  • Print Out of Check List In Maintenance Order.

    Hi All I just added one checklist to the Long Text in the tasklist of an equipment. In the checklist there are some tabular cloumns, lines, square box, etc... But when i take a print out of the checklist/Orerations from the maintenance order the tabu

  • Saving Sound Clips

    I'd like to download and save movie sound clips. When I find one I like, qt opens it and plays it, but won't save it as a file. Do I need qt pro to do this or is there another way?

  • InDesign:  Opening documents question

    Hello, I have recently upgraded to ID CC 2014 from CS 5.5.  When using 5.5, ID presented  me with a window displaying recent files, allowing me to choose the file I wished to open.  I don't see that on the most recent version, and I miss it.  Is ther

  • Unable to connect to editor application

    When I click "go to full Edit", a box pops up saying "attempt to access invalid address".  When I click OK on that box then another one appears saying "unable to connect to editor applicaton".  Any help appreciated

  • Changing Macs!! How to Make sure to get everything from old macbook!

    Hi, Im just about to get a new Imac but I would like to know the most comprehensive way of transferring absolutely everything about Logic 8 from my macbook to my new computer. Including all my songs, settings, plug ins, everything. Also the new Imac