Frequency problem in input-output control loop, LabviewRT

Hello,
I want to write a cotrol loop in LabView real-time. My target is to acquire a data from 5 channel in frequncy about 100 kHz, integrate the data and send them to the output in frequency about 10 kHz (every 10th sample). I made twou time-loops. One for acquiring and integrating, second for sending them to output. This loops are connected throug the rt fifo. 
My problem is with a speed of acquisition. When I use "Hardware-timed single point" for acquiring, the result frequency is about 50 kHz. Continous sample and finite samples give me the desired frequency, but the output is not in in the same time as input (output waits until the input collects all data). Is there any problem with communication with the input and output channels in the same time?
My Hardware: 
Computer: NI PXIe-8108 in NI PXIe-1062Q
card: NI PXIe-6358
My vi is attached
Attachments:
rt_headless_v1.2.vi ‏133 KB

Dear Kocman,
thanks for including your VI, it is useful to understand better your application.
However, the detailed requirements are still not entirely clear for me.
I think, starting with the right architecture and proper timing and synchronization schemes could save you a lot of effort while they ensure proper operation.
First, it should be defined what kind of timing your application requires. More specifically, if it needs to be hardware or software timed.
From your description it sounds like you would need hardware timed aquisition synchronized with generation, although your code tries to implement it using timed loops, which are inherently software timed.
You can find some useful additional information about the two methods and a nice white paper about synchronization techniques here:
http://zone.ni.com/reference/en-XX/help/370466V-01/TOC11.htm
http://www.ni.com/white-paper/4322/en
Probably it helps to review them or even try to test some of the methods to get a better feeling about it.
I hope this helps you to get to the proper solution.
Best Regards,
Adam Cseh
Applications/Systems Engineer
National Instruments

Similar Messages

  • Can't get computer to show volume input/output controls, Can't get computer to show volume input/output controls

    Can't get computer to show volume input/output controls, Can't get computer to show volume input/output controls

    How, what, why, where, when!
    This is the Logic Pro forum.
    We're going to need more information if this is in regards to using Logic Pro.
    Computer model & year, audio interface, Logic Pro version..etc..etc

  • Problem creating inputs, outputs and text in Scilab Script Block

    I have recently installed the Labview to Scilab Gateway.  I am running Labview 11.0 and Scilab 5.3.3.  The example files run properly, However, when I try to define any inputs, or outputs, there is no option to add the ports.  The block also ignores any text I type in it or copy to it.  I have been trying this on a blank vi.
    Solved!
    Go to Solution.

    Hi Ronny,
    I have a few more questions to help us debug this issue.  You said you tried the same right-click procedure to create inputs and outputs on a normal script block and it worked as expected.  What specifically do you mean by a "normal script block"?
    How did you drop the empty Scilab script node on a blank VI?  Did you drop it from a palette or paste it from another VI?
    Can you post an image of your Help >> About LabVIEW screen (feel free to obscure your name, company, and license number)?  If not, can you provide the LabVIEW version number specified from that screen?  There have been a few patches to LabVIEW 2011 and it will help us to reproduce the issue if we know exactly which version you have.  Also on that screen, do you have LabVIEW Base, Full, or Professional (or maybe an Evaluation or Student edition)?  The Scilab script node will not work in LabVIEW Base and the right-click menu will look as you describe.  You can verify your LabVIEW activation in the NI License Manager.
    Do you have any other versions of LabVIEW installed on your computer?  Is LabVIEW 2011 the most recent LabVIEW you installed?  How about previous versions of Scilab?  Do any previous versions remain or did you remove a previous version of Scilab AFTER installing Scilab 5.3.3?
    Grant M.
    Senior Software Engineer | LabVIEW Tablets | National Instruments

  • Frequency sweep input output

    Hi
    Using Labview 7.1 and PCI 6071 DAQmx card i want to design a frequency sweep application. I mean  that i need my analogue output channel to give a sine wave with incremental frequency of 100 Hz step, starting from 10000 Hz untli  100000 Hz (10000 Hz, 10100 Hz...100000 Hz). This wave is applied on a kind of a transformer, and each time the frequency changes, i need an input channel to acquire another also sinus wave coming from this transformer and measure its amplitude, in order to examine its frequency response. So, i came up with the attached vi.
    The problem is, that when "sweeping" takes place ,i get amplitude values between 2 and 6 or even 7 volts something that  can't be happening. I know that the amplitude values i should get are around 2 volts  (+/- 500 mV maximum).
    I think, that the problem should be in some kind of "non-synchronization" of the input-output channels when the vi enters the loop to start changing the frequency.
    Just to be more clear, i need my vi to do these steps in order:1. constantly output the 10000 Hz wave 2. acquire the input wave 3. measure its amplitude 4.transform the frequency into 10100 Hz 5. acquire the input wave 6. measure amplitude  etc... 
    The odd thing is that when i physically connected the output channel with the input one to see if the frequency sweep is done, it worked fine. I mean that i did get in the input channel almost exactly the signal i generated.
    Thanks in advance, and i hope i was not tiringly analytical..
    Attachments:
    sweep3.vi ‏140 KB

    Hi
    Please take a glance at the two attached vi's.
    The first is the one i use in order to generate a steady frequency sinus wave,feed it to my transformer and acquire the also sinus output of the transformer  through my input channel. Using two channels of an external oscilloscope i check and notice that for many frequency values, both sinus waves are steady and noiseless, with the expected amplitude voltages.
    Now, using the second vi, in order to "sweep" the wave and check my transformers amplitude response, then these impossible amplitude "up's and down's" again came up.Again by looking at the oscilloscope's screen i can see the noisy waves tha "confuse" and the oscilloscope and my input channel, and so result in wrong amplitudes.
    Based on the above, i have to assume, that the problem lies in the sweep mechanism design i use. Also, after trying several different ways to sweep, i came to the conclusion, that the problem comes up whenever i use the second Basic Function Generator.vi inside the loop. Could it be that it needs triggering again?
    I'd really use some help, or maybe even ideas for different design approaches for the frequency sweep.
    Thanks in advance
    Attachments:
    Multi-Function-Synch AI-AO3.vi ‏164 KB
    sweep4.vi ‏142 KB

  • I had a problem with the hard disk on a 2010 macbook pro. Replaced the hard disk with an Hitachi 1TB and when I tried to erase and format It fails with input/output error. Any help much appreciated!

    I had a problem with the hard disk on a 13" 2010 macbook pro. Replaced the hard disk with an Hitachi 1TB disk but when I tried to erase and format, it fails with input/output error and at other times saying unable to allocate memory. Any help much appreciated!

    Zap the PRAM and Reset the SMC, then try again.

  • How to bind complex input/output types in web service data control

    Hi,
    I have created data control using external web service for simple input & output data type and its working fine.
    But I don't know how it can be done for complex data types.
    My external Web services have complex input & output types. Such as java object which contains another java object again it contains another java object or arry or java collection etc.
    Each my service has one complex input data type and for this no user input is require so how I can do it without using any component for it.
    I want to bind my page components with this input & output type.
    What is the best approach to do this and how to bind screen component.
    Regards,
    Devang

    Hi,
    Thanks frank.
    I already check this link before posting this so if you have any other link then kindly reply.
    Regards,
    Devang

  • Input/Output And Method Not Found Problem

    Ok so firstly I think I should apologise on two fronts.
    Firstly, 'cause this is probably posted in the wrong board but I'm not sure this was suitable for the Swing board just 'cause I've been using Swing? And secondly 'cause the code I'm gonna post is so shoddy I would think this constitutes as flaim-bait. >_>
    In my defense this is purely for a little class project to give something to write some documentation on so I'm really not too bothered about the efficiency or ace-mazingness of the end result. I just want it to work.
    To the problem at hand.
    I'm trying to write a program that asks the user a question and then outputs their answer to a file, from which a tally of answers can later be made for the purpose of displaying "results".
    My problem is I've been having problems with the input/output of saving the answers given to the program.
    I'm still learning and input/output is probably my weakest subject (other than, y'know, being good at Java). I've had a bash at it in the following code but all it does it overwrite what is in the file with a single answer so no list of results accumulate. I generally don't have an idea what to try for that one so any pointers would be appreciated.
    Also, my second problem is, in trying to gather results by tallying what is contained in the file, I've run across a problem with the charAt() method not being found and I'm not sure why. Isn't that method a part of java.lang?
    Here's the code thus far:
    //libraries
    import javax.swing.*;
    import javax.swing.border.*;
    import javax.swing.text.*;
    import javax.swing.event.*;
    import java.awt.*;
    import java.awt.event.*;
    import java.text.*;
    import java.io.*;
    class CaseStudy {
         public static void main(String args[]) {
              GUI maininterface = new GUI();
              maininterface.setupMenu();
              maininterface.display();
    class GUI {
         //for the actionlisteners
         int whatframe = 0;
         //creates mainframe and border content panel
         JFrame mainframe = new JFrame("Survey Client");
         JPanel borderpanel = new JPanel(), bottompanel = new JPanel();
         JButton quizbutton = new JButton("Take the quiz"), tallybutton = new JButton("Show Results"), submitbutton = new JButton("Submit Results"), menubutton = new JButton("Return To Menu");
         QuizQuestions toppanel = new QuizQuestions();
         QuizResults toppanel2 = new QuizResults();
         GUI() {
              //sets border in borderpanel, this spaces the main content in from the sides of the window
              borderpanel.setBorder(BorderFactory.createEmptyBorder(10,10,10,10));
              //sets up the frame and panels and adds on borders
              mainframe.setDefaultCloseOperation(mainframe.EXIT_ON_CLOSE); // exits java when clicking on close on main frame
              mainframe.getContentPane().add(borderpanel); // adds the panel as a component to the frame, the panel can hold stuffs
              borderpanel.setLayout(new BoxLayout(borderpanel, BoxLayout.PAGE_AXIS));// page_axis means it'll layout vertically
              bottompanel.setLayout(new BoxLayout(bottompanel, BoxLayout.LINE_AXIS));// line_axis means it'll layout horizontally
              //gives button an action
              quizbutton.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e1) {
                        setupQuiz();
              tallybutton.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e1) {
                        if(whatframe == 1) setupResults();
                        else {
                             int rusure = JOptionPane.showConfirmDialog(null, "Are you sure you wish to show results? Any current quiz answers won't be saved.", "Please Choose One", JOptionPane.YES_NO_OPTION);
                             if(rusure == JOptionPane.YES_OPTION) setupResults();
              menubutton.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e1) {
                        setupMenu();
              submitbutton.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e1) {
                        toppanel.doQuiz();
              borderpanel.add(bottompanel);
         public void setupMenu() {
              if(whatframe == 3) {
                   bottompanel.remove(menubutton);
                   borderpanel.remove(toppanel2);
              whatframe = 1;
              //adds components and lays them out
              bottompanel.add(quizbutton);
              bottompanel.add(Box.createRigidArea(new Dimension(0,10)));
              bottompanel.add(tallybutton);
              display();
         public void setupQuiz() {
              bottompanel.remove(quizbutton);
              bottompanel.remove(Box.createRigidArea(new Dimension(0,10)));
              bottompanel.remove(tallybutton);
              whatframe = 2;
              bottompanel.add(submitbutton);
              bottompanel.add(Box.createRigidArea(new Dimension(0,10)));
              bottompanel.add(tallybutton);
              borderpanel.add(toppanel);
              display();
         public void setupResults() {
              if(whatframe == 1) {
                   bottompanel.remove(quizbutton);
                   bottompanel.remove(Box.createRigidArea(new Dimension(0,10)));
                   bottompanel.remove(tallybutton);
              else {
                   bottompanel.remove(submitbutton);
                   bottompanel.remove(Box.createRigidArea(new Dimension(0,10)));
                   bottompanel.remove(tallybutton);
                   borderpanel.remove(toppanel);
              whatframe = 3;
              bottompanel.add(menubutton);
              borderpanel.add(toppanel2);
              display();
         public void display() {
              //sets the size of the frame around it's components and then shows it
              mainframe.pack();
              mainframe.setVisible(true);
              mainframe.validate(); //makes referenced container relayout it's components
    class QuizQuestions extends JPanel {
         LoadingSaving loadsave = new LoadingSaving();
         JPanel popm = new JPanel(), pop1 = new JPanel(), pop2 = new JPanel(), pop3 = new JPanel(), pop4 = new JPanel();
         JFormattedTextField ques = new JFormattedTextField(), op1 = new JFormattedTextField(), op2 = new JFormattedTextField(), op3 = new JFormattedTextField(), op4 = new JFormattedTextField();
         JButton bop1 = new JButton("1"), bop2 = new JButton("2"), bop3 = new JButton("3"), bop4 = new JButton("4");
         char answer;
         QuizQuestions() {
              popm.setLayout(new BoxLayout(popm, BoxLayout.PAGE_AXIS));
              pop1.setLayout(new BoxLayout(pop1, BoxLayout.LINE_AXIS));
              pop2.setLayout(new BoxLayout(pop2, BoxLayout.LINE_AXIS));
              pop3.setLayout(new BoxLayout(pop3, BoxLayout.LINE_AXIS));
              pop4.setLayout(new BoxLayout(pop4, BoxLayout.LINE_AXIS));
              this.add(popm);
              popm.add(ques);
              popm.add(pop1);
              popm.add(pop2);
              popm.add(pop3);
              popm.add(pop4);
              pop1.add(op1);
              pop1.add(bop1);
              pop2.add(op2);
              pop2.add(bop2);
              pop3.add(op3);
              pop3.add(bop3);
              pop4.add(op4);
              pop4.add(bop4);
              //sets up question text fields
              ques.setEditable(false);
              op1.setEditable(false);
              op2.setEditable(false);
              op3.setEditable(false);
              op4.setEditable(false);
              bop1.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e1) {
                        answer = 'a';
              bop2.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e1) {
                        answer = 'b';
              bop3.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e1) {
                        answer = 'c';
              bop4.addActionListener(new ActionListener() {
                   public void actionPerformed(ActionEvent e1) {
                        answer = 'd';
              Question1();
         public void doQuiz() {
              loadsave.save(answer);
         public void Question1() {
              ques.setValue("Who's your favourite X-Men character?");
              op1.setValue("Cyclops");
              op2.setValue("Xavier");
              op3.setValue("Wolverine");
              op4.setValue("Rogue");
    class QuizResults extends JPanel {
         LoadingSaving loadsave = new LoadingSaving();
         JPanel popm = new JPanel();
         JFormattedTextField op1 = new JFormattedTextField(), op2 = new JFormattedTextField(), op3 = new JFormattedTextField(), op4 = new JFormattedTextField();
         int[] answerarray = new int[4];
         QuizResults() {
              popm.setLayout(new BoxLayout(popm, BoxLayout.PAGE_AXIS));
              this.add(popm);
              popm.add(op1);
              popm.add(op2);
              popm.add(op3);
              popm.add(op4);
              op1.setEditable(false);
              op2.setEditable(false);
              op3.setEditable(false);
              op4.setEditable(false);
              answerarray = loadsave.load();
              op1.setValue(answerarray[0]);
              op2.setValue(answerarray[1]);
              op3.setValue(answerarray[2]);
              op4.setValue(answerarray[3]);
    class LoadingSaving {
         public void save(char answer) {
              FileReader fr;
              FileWriter fw;
              BufferedReader br;
              String s;
              try {
              //ERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERROR
                   fr = new FileReader("casestudyoutput.txt");
                   fw = new FileWriter("casestudyoutput.txt");
                   br = new BufferedReader(fr);
                   if (br.readLine() == null) s = "x";
                   else s = br.readLine();
                   s = s + answer;
                   fw.write(s);
                   fr.close();
                   fw.close();
              //ERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERROR
              catch(FileNotFoundException exc) {
                   JOptionPane.showMessageDialog(null, "File not found.");
                   return;
              catch(IOException exc) {
                   JOptionPane.showMessageDialog(null, "Something bad happened.");
                   return;
         public int[] load() {
              FileReader fr;
              BufferedReader br;
              int[] answerarray = new int[3];
              String s;
              long length;
              int a = 0, b = 0, c = 0, d = 0;
              answerarray[0] = 0;
              answerarray[1] = 0;
              answerarray[2] = 0;
              answerarray[3] = 0;
              try {
                   fr = new FileReader("casestudyoutput.txt");
                   br = new BufferedReader(fr);
                   if (br.readLine() == null) return answerarray;
                   else s = br.readLine();
                   length = s.length();
                   for(int i = 0; i < length; i++) {
                        char ch = charAt(i); //ERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERRORERROR
                        switch(ch) {
                             case 'a':
                                  a++;
                                  break;
                             case 'b':
                                  b++;
                                  break;
                             case 'c':
                                  c++;
                                  break;
                             case 'd':
                                  d++;
                                  break;
                   answerarray[0] = a;
                   answerarray[1] = b;
                   answerarray[2] = c;
                   answerarray[3] = d;
                   fr.close();
              catch(FileNotFoundException exc) {
                   JOptionPane.showMessageDialog(null, "File not found.");
                   return answerarray;
              catch(IOException exc) {
                   JOptionPane.showMessageDialog(null, "Something bad happened.");
                   return answerarray;
         return answerarray;
    }Any pointers/tips/solutions/angry posts to tell me to stop trying to learn Java would be greatly appreciated.
    Thanks in advance!
    Oh, and in trying to work with it a bit further I realised I'm having a few problems with runtime errors due to exceptions. The first was due to the array being assigned out of bounds (fixed in the above code). But the second reads the following:
    Exception in thread "main" java.lang.NullPointerException
         at Loadingsaving.load(CaseStudy.java:330)
         at QuizResults.(init)(CaseStudy.java.259)
         at GUI.(init)(CaseStudy.java:34)
         at CaseStudy.main(CaseStudy.java:15)Not quite sure what this one means or how to handle it. =\
    Edited by: ThePermster on May 19, 2008 8:08 AM

    A NullPointerException means a method has been called on a null object, or a variable that isn't pointing to any object. Your Exception points to line 330, which is:
    length = s.length();A NPE on that line means that s is null. So let's look at where s is set:
    if (br.readLine() == null) return answerarray;
    else s = br.readLine();s gets it's value from br.readLine(), so that method must be returning null. You have a logical error here. Look at your If-Else. It reads a line, makes sure it isn't null...then it reads another line. Well what if that line is null? You are performing 2 reads here instead of 1.
    Since your If condition returns a value, there's no need for an Else. The code will continue on until it reaches another return. Try this:
    s = br.readLine();
    if (s == null) return answerarray;

  • .dmg problem input/output error

    hi,
    i have a copy of adobe cs3 from my college, and i am having problems installing. i skipped the verification. and then i noticed it would only install about 3 components, not illus. photoshop, or flash, then i let the verify run, and then it came up with an error of "input/output error" how is it possible to save the files on the dvd, what are my options?
    also, another sidenote, i have had a weird problem with i tunes, since 7.6.2 and my software is all up to date. if i run i tunes, it could be 10 secs or after about 10 mins. the pinwheel comes up and wont go away, how can i check in system monitor if theres somehting fishy, has anyone heard of this problem ? i was thinking to downgrade since i have not had problems until i upgraded

    HI Gene,
    "This usually works fine but now and then I get an error that says " Unable to create disk1s10.dmg Input/output error." Have you downloaded and installed any 3rd party software or changed any preference files since you've successfully done this before ??
    If your profile is correct, you might try updating from 10.4.8 to 10.4.11. If you do, make sure and Repair Disk Permissions when it's finished.
    Suggestion here for using Console: http://forums.macosxhints.com/showthread.php?t=67302
    Carolyn
    Message was edited by: Carolyn Samit

  • Problem Removing Files: Input/Output Error

    I recently posted this article
    http://discussions.apple.com/thread.jspa?messageID=4596969#4596969
    about my struggles to repair my hard drive. I'm currently in Single-User Mode, in the process of manually removing files that returned the error "Overlapped Extent Allocation" during fsck. Everything's going well for the most part, but a few of the files I'm finding can't be removed. When I try, I receive this message:
    hfs: WARNING - blocks on volume Garfunkel not allocated!
    rm: [path name]: Input/output error
    It all sounds very dire and life-threatening, but I have no idea what this means. I can only assume it means there is a permissions issue. Am I close? Is there a way I can remove these files? So far all of the files have been iCalendar files or iApps preference files. If it's important, I can list the exact files. I hope someone can help me, because I know very little about Unix.
    Thanks to everyone who makes an attempt at rescuing me!

    Thanks. I did that, as per the Apple Support article instructions, but apparently I have to do it before every remove command. And sometimes, I have to input the command twice for it to work. Thanks for the tip.

  • Problem of configuration the requirement output control ?

    Hi ,
    i am now in a very urgent situation that is the system does not create the message type after executing the transaction VL31N.
    In detail :
       I have used the transaction NACE to configure the "Requirements output control" and i have created 3 message type (Z1 , Z2, Z3)  ( type V6 : handling unit) and i have coded for each of them to check the requirements for creating the messsage type ( the message type will be created if the sy=subrc = 0 after the forms are executed.
    FORM KOBEV_Z1.
    Check condition from the structure  komkbv6
    if cond Ok
      sy-subrc = 0.
    endif.
    ENDFORM KOBEV_Z1.
      FORM KOBEV_Z2.
    Check condition from the structure  komkbv6
    if cond Ok
      sy-subrc = 0.
    endif.
      ENDFORM KOBEV_Z2.
      FORM KOBEV_Z3.
    Check condition from the structure  komkbv6
    if cond Ok
      sy-subrc = 0.
    endif.
      ENDFORM KOBEV_Z3.
    But in fact , even if i have put the sy-subrc = 0 for each of them or for all , the message type was not created as i need .
    Result :
      if the message type is created automatically after executing the KOBEV or KOBEV , a printing program will be called to print the SAPscript form , but till now , i can not do that , to print the form i have to created the message type by hand ..
    Is the something wrong in the system ? How can i configure them to run well ?
    Please help me .
    PS : I will reward immediately and i am waiting
    Thank you very much

    Hi,
    If you are supposed to bring across characteristic values to your target, then you will not be able to jump from the result line. The configuration expects that the values of the characteristic marked as being used in the jump are filled with unique values. When you use the result line as a source for your jump, the values in the result line will most likely be based on the sum of multiple characteristic values.
    Hth,
    -Jacob

  • PID control loop slows down during execution.

    Hi, I am a attaching a LV8.6 code that i am currently using to control my engine experiment. I use PID control where the input signal is an rpm value that i measure using a counter. The ttl signal from the sensor is not clean and so i use an analog trigger to generate pulses on the counter from where i measure the frequency and hence the rpm. The output is generated as an analog voltage on an output channel. The problem i am facing is that the loop runs really good when i start off but gradually the loop keeps slowing down and this greatly affects my ability to control engine speed. I am not sure why this is happening. I tried increasing the sample size and rate (so as to increase the buffer size) but this didnt have any effect on the speed. I am guessing its a problem with the way i have my loops setup.. any suggestions would be greatly appreciated.
    Thanks, Shyam.
    Attachments:
    PID control loop.vi ‏33 KB

    Hi all..I realised my mistake soon after posting as usually is the case..the create channel vi for doing the analog output to the output channel was within the loop and slowing things down..when i moved it out..it fixed the problem!!
    Shyam.

  • How to generate a pwm whose duty cycle has to be varied depending on the frequency of the input trigger??

    Sir/madam,
    I am quite new to the Labview FPGA module. 
    I am currently working on an application where i have to generate a pwm to control the ON time duration . The pwm ON time depends on the frequency of an input signal.I want to retrieve the ON time value from a lookup table which contain the duty cycle values for the pwm at different frequencies of the input.This input also has to work as a trigger. The input is pulsed and the trigger has to generate the pwm at every rising edge. I am using a PCI 7831R-  RIO series. I am urgently in need of some help and i have hardly a  couple of weeks before i meet the deadline.
    I am trying hard to learn the basics from the shipping examples but not able to quite make my vi work. 
    Kindly lend a helping hand and i would be very grateful to anybody who can help. Thanks a lot in advance.
    Do ask in case of any clarifications required. I  think i have explained my problem quite well. 

    Hello Manu,
    You can refer 
    Developing a PWM Interface using LabVIEW FPGA or PWM Output with LabVIEW FPGA
    How this helps.
    Best Regards, 
    Hardik Asawa
    AE
    National Instruments  
    Message Edited by Hardik Asawa on 05-05-2010 12:46 AM

  • Smith predictor in Control loop

    Hi,
    I´ve been developing a .vi for controlling a lung simulator.
    My hardware is not NI, so all my input/output is through 3 different VISA Serial-USB (Air Flow sensor, Pressure sensor, Motor controller).
    The problem I have, is the delay of the flow measures (+- 160ms), so I am searching the way adding a Smith Predictor to the control routine.
    In the attached, is part of what I am doing, but don´t know if this is ok?
    I know that the Simulation Loop is used for simulate certain plant/control, and I also know that the Simulation loop can be put inside a general while loop, so that in every execution of the general while loop, only one step of the ODE solver is executed....
    But, can I use a Simulation loop to actually control a real system??
    I haven´t found any example of this, all the examples are of simulations, but not real stuff.
    Which is the correct way of Deploying complex control in labview for real systems? (not modeling, nor design, nor simulation, neither optimization)
    Thank you very much for your time!!
    Best regards, Pablo
    Attachments:
    Smith predictor for real control.jpg ‏517 KB

    Hey Pablo,
    To achieve the behavior you want - where a single step is executed for each step of a while loop you should use a single-stepped simulation subsystem (http://zone.ni.com/reference/en-XX/help/371894G-01​/lvsimhowto/sim_h_subsyssa/) instead of using the CD+Sim loop.  This will let you configure your code to run just one step per while loop iteration.
    Let me know if this helps and if you have any additional questions.
    Regards,
    Kevin
    Product Support Engineer
    National Instruments

  • Can't acces to internal laptop hard disc - input/output error

    Sometimes when I use my i can't acces to any file on my hdd and i get input/output error when i type commands in console(i even can't halt or reboot). This is used to happen suddenly after few hour of work in one session (not always, it happend three times during last week)
    When i get this error the hdd control led  is on (I have ibm x60s with ssd hard disc, and normaly this diod only blink sometimes, bbut when i get this error , diod is  the whole time floodlite. I didn't any similar problem in google so i posted it here.

    Welcome to the forums.
    Not exactly alot of info to go on here. Try reading up on the "How to post" article on the wiki.
    As for the trouble at hand. With the limited info given, I'd say start off with running some health checks on your disk (smartctl, fsck,...).
    Last edited by Gcool (2012-03-29 05:23:32)

  • Error inserting acpi_cpufreq: Input/output error?

    Hi,
    I'm trying to set up frequency scaling on my Intel i5 760 as per the wiki.
    The only problem is I can't seem to load the acpi_cpufreq module!
    # modprobe acpi_cpufreq
    FATAL: Error inserting acpi_cpufreq (/lib/modules/2.6.39-ARCH/kernel/arch/x86/kernel/cpu/cpufreq/acpi-cpufreq.ko.gz): Input/output error
    There is no additional output in dmesg from this error.
    I'm running x86_64 btw, and I notice that it's trying to load an x86 module, could this have anything to do with it?
    Thanks!

    Hi
    Did you find a solution? I'm having exactly the same problem with acpi-cpufreq. (eeepc 900). I tried modprobing the p4_clockmod as well, which some older posts say is required for my machine, but I got the same error.
    Both modules appear to be available -
    ls /lib/modules/$(uname -r)/kernel/arch/x86/kernel/cpu/cpufreq/
    acpi-cpufreq.ko.gz     gx-suspmod.ko.gz  mperf.ko.gz        powernow-k6.ko.gz  speedstep-ich.ko.gz
    cpufreq-nforce2.ko.gz  longhaul.ko.gz    p4-clockmod.ko.gz  powernow-k7.ko.gz  speedstep-lib.ko.gz
    e_powersaver.ko.gz     longrun.ko.gz     pcc-cpufreq.ko.gz  powernow-k8.ko.gz  speedstep-smi.ko.gz
    Last edited by belbo (2011-06-11 11:07:50)

Maybe you are looking for

  • How do I install Oracle8i on Windows XP

    I am having problem to install Developer 6.0 and Oracle8i on Windows XP. Please suggest me how to install it. Thank

  • Report to display EPC's in URN format

    Hello, I am new to AII and I have a request which is stated below. can someone let know if this is possible and if so, could give me some information to get started on this. maybe if there are some tables, or FM's or BAPI's that would have this infor

  • Html5smartimage not working in a scaffolding

    When I use html5smartimage or html5smartfile in a scaffolding or a panel it is not working properly.  First, it fails to show the upload / drag and drop functionality.  The area where this should be is blank.  Secondly, if the page the scaffolding be

  • Payments can't "create accounting"[11.5.9]

    hi,all I cleared a payment transaction under CE/"clear transactions" while AP's options/"when payment clears" not checked,now this payment can't create accounting,can't void,also can't be find under CE/unclear transactions. now what and how shoud i d

  • Creating thumnail of an image

    how can i creat the thumbname of an image