Simple counter within Control & Simulation Loop

Does anyone know a simple way of creating an incremental counter within the Control & Simulation Loop ? It's not possible to have a For loop within the Control & Simulation Loop hence the shift register method is out.

The "simulation parameters" function on the utilities pallete outputs a "Timestep Index" that is incremented each step. That's the simplest option. Alternatively, you could use a sub VI that executes on major steps and contains a for loop.

Similar Messages

  • Control & Simulation Loop failed to compile

    Dear Forum Members,
    I have a problem with a Control & Simulation Loop program (attached) that just doesn't compile & run.  I believe that the problem is associated with the 'Feedback Node' at the bottom of this Control & Simulation Frame since if this is taken out the program will run ok.
    Can anyone please advise me if this 'Feedback Node' is incorrectly used or in violation of anything.  I have tried various ways to overcome the problem i.e. initialising it at the start but nothing works.  The error message that I received just says "VI failed to compile".
    Appreciate any help with this.

    Hello bunnykins, 
    The Feedback node really isn't a supported function in control design and simulation. The behavior you're reporting, and the work around are both documented in the know issues of the module here: 
    201449
    Return
    A Feedback Node on a Simulation Diagram causes the VI to fail to compile
    The Feedback Node does not make sense semantically within a Simulation Diagram, due to the fact that most ODE Solvers will execute the diagram multiple times per iteration and may need to reject steps and try again, filling the Feedback Node with bad data.
    Workaround: Use the Memory block from the Simulation Utility palette. If a delay of greater than 1 is desired you can chain multiple memory blocks in sequence.
    Reported Version: 8.5
    Resolved Version: N/A
    Added: 07/31/2010
    Applications Engineer
    National Instruments
    CLD Certified

  • Extract Signal Tone Information in Control & Simulation Loop

    Hi,
    I have a simple Block Diagram to try Control & Simulation Loop. I added a Sine Wave signal and a Waveform Chart connected to it. They work just fine.
    I tried to add a Extract Single Tone Information , from Signal Processing, and connect it to the output of the Sine Wave generator but I do not know how to create a proper Time Signal.
    I thought of storing the output of the Sine Wave in an array but I was unsuccessful since I could not add any shift register to this type of control loops.
    Any help or suggestions?
    Thanks
    Attachments:
    Control_n_Sim_Test.PNG ‏9 KB

    Hi Siamak,
    Thanks for your reply mate.
    However, when I built a same BD as you posted on, it somehow didn't work. I also attached a photo of my BD here.  I used the gauge to measure when I run the programme. The gauge shows there is no signal output after the "collector"VI (gauge no.13). would you please check it for me? Many thanks!
    BR
    Floyd
    Attachments:
    tone info extraction.png ‏134 KB

  • Control & simulation loop, VI failed to compile

    hi!
    I want to simulate asynchronous generater. but I cant run my VI. It failed to compile. I have read some reason in this forum but I cant fix It. who can help me!
    the name of main VI is: mpdb_2.vi
    thanks you!
    Attachments:
    MPDB_2.zip ‏1951 KB

    Which version of LabVIEW are you using?
    In 2013, the error says: Tmech_Ef_1.vi 'Tmechc_Ef':subsystem has illegal term names. And in analyzing the subsystem, I noticed that the Enum where you choose "EF or Tmech" has a "2 <space>" as a label.
    To fix this, just put simple name without spaces in the beginning or the end of the name. In doing this, the VI is runnable.
    Now, another note: I noticed you are trying to pass paraemters between Mathscript and Control Design and Simulation. We have a feature called Parameter Hierarchy that you can just transfer information between both Models of Computation without going through the wires. Also, we do have a plug-in for Mathscript that you can just use for this purpose. Please see shipping examples in the links below and documentation for more information:
    C:\Program Files (x86)\National Instruments\LabVIEW 2013\examples\Control and Simulation\Simulation\Mathscript Integration
    C:\Program Files (x86)\National Instruments\LabVIEW 2013\examples\Control and Simulation\Simulation\Get-Set Model Parameters
    Barp - Control and Simulation Group - LabVIEW R&D - National Instruments

  • Memory function in Control and Simulation loop - ODE solver problem

    Hello,
    I am currectly using the control & simulation loop to simulate the behaviour of what is essentially a spring-damper-mass system. In the process the change in time (dt) is being used to integrate an arbitrary value. I am using a built in memory function to store the time, to calculate the time change (dt).
    The simulation is rather complex, due to the necessary accuracy needed, not all the ODE solvers can handle it. Currently I am using Adams-Moulton method, this works fine for the simulation. However it cannot detect the change in time, the change is constantly zero. This problem worked it self out by using another ODE solver, but then the simulation was rather messed up (even when I tuned the step sizes and tolerances). So I am quite confident that Adams-Moulton is one of the best suited ODE solver for the problem at hand.
    Is there another way to store the previous time and use it calculate the time difference, than using the memory function? Has anyone experienced such problems before?
    I have been doing alot of error searching using the probe, but I am quite sure that there is a problem with the ODE solver and the memory function. See picture below, showing in basic how the change in time is being calculated.
    I am rather new to LabVIEW, so if there could be something else I have missed I will be glad to hear it.
    PS! I have tuned the minimum step size/relative and absolute tolerances for the Adams-Moulton to simulate the behaviour of the system correctly.
    Solved!
    Go to Solution.

    Hi Willy,
    I am sorry, I can not upload the VI some of the content is confidential. I have attached a larger picture of the section were the change in volume and time is calculated, dV and dt. Also I have marked the two memory functions used. Hopefully this can help.
    My parameters:
    - ODE solver Adams-Moulton
    - Relative tolerance      1e-8
    - Absolute tolerance     1e-7
    - Minimum step size     0,0005
    - Maximum step size    0,01
    - Initial step size           0,01
    - Auto discrete time      On
    - Decimation                 0
    - Synz loop to timing source off
    Attachments:
    06-05-2014 21-20-00.png ‏52 KB

  • Maxon EPOS Simulation Loop

    Hello,
    I'm using LabVIEW 8.5.1 and I have modeled and simulated a plant I'm developing within a Simulation Loop (attached) and now I want to go and implement the system, but it doesn't appear to be as simple as just dropping the transfer functions and putting DAQ Output and Input VIs in as specified in the "Introduction to LabVIEW in 3 Hours for Control Design and Simulation" tutorial for this particular system. I have a Maxon RE-40 brushed DC motor and a HEDS 5450 encoder interfaced with an EPOS 24/5 positioning controller that communicates with my PC through an RS-232 cable. Can someone talk me through how I can communicate with this system with the VI I already built for simulation purposes?
    Thanks,
    Brian
    Attachments:
    Control System V8.vi ‏215 KB

    Well you have the simulation running right? The point of the transfer function is to represent the response of the physical system right? Well replace the transfer function with the routines for writing values to the system and reading the response that relates to the transfer function output.
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Page Version Count within the selected dates

    Hi,
    We have a folder of name General in our site.
    i have two SharePoint date time controls on the user control.
    Now i need to get the number of page versions within the selected dates.
    I am able to get all the pages under the 'General' folder as below
    SPFolder oGeneralFolder = list.RootFolder.SubFolders["General"];
     DataTable dt = new DataTable();
    dt.Columns.Add("Page Versions Count");
    foreach (SPFile file in oGeneralFolder.Files)
    dr["Page Versions Count"] = ?
    Now i need to get the number of page versions within the selected dates.
    Because i don't see any supporting property in SPFile object to filter the page version according to the date.
    Please share your ideas or thoughts on the same.
    Regards,
    Sudheer
    Thanks & Regards, Sudheer

    Hi Naga,
    Get item of File and do the following
      foreach (SPListItemVersion v in item.Versions)
    if(v.Created > daterange &&v.Created < daterange )
    count++;
    Within the foreach loop, check for specified date range and increase the count if it fine.
    Thanks,
    Vivek
    Please vote or mark your question answered, if my reply helps you

  • DAQ Assistant with multichannels causing Simulation Loop slow?

    Hi, another LabView newbie here.
    I have in a Real Time Target (NI 9132)  a Control & Simulation Loop with DAQ Assistant block inside, whose signals are fed into a Discrete State Space block. The discrete state space model has 1 second time step. I have set the Simulation Loop parameters so that it executes every 1 second as well (see Fig. A below). *sorry for the big white gap under the figures..
    The DAQ assistant acquisition mode is set as "1 Sampe (On Demand)".
    However, when I run the VI, the plot seemed to be updated much slower than 1 second rate. To confirm this, I put an "Elapsed Time" block inside the Simulation Loop. The "elapsed time" shows the actual time in seconds while the simulation plot show slower time (see Fig. B below).
    I tried to isolate the problem by removing the block one by one. Finally, I found out that this problem was caused by (at least) the DAQ Assistant which acquires multichannels data of NI 9214. When I remove some channels and leave one or two channels, the VI runs at the actual time (see Fig. C below). But when I added more channels reading, it became slower again. 
    Here is the snippet of the block diagram (after all other blocks were removed):
    What am I doing wrong here? I'm going to use all of NI 9214 channels so how not to have similar problem like this?
    I look forward to hearing any relevant comments from the members. Thanks in advance.
    Tian

    Hi Tian,
    why do you need a Sim loop anyway?
    - When it comes to speed you shouldn't use the DAQAssistent. Use basic DAQmx functions…
    - Use parallel running loops for each task. Put DAQmx functions in their own loop, running in parallel to your Sim loop…
    Best regards,
    GerdW
    CLAD, using 2009SP1 + LV2011SP1 + LV2014SP1 on WinXP+Win7+cRIO
    Kudos are welcome

  • Using timer/counter with PCI-6221/USB-6210 to control timed-loop VI

    Dear all,
    I need to ask about two devices and one of their functionalities, PCI-6221 and USB-6210. For our NI-based system, we need to control some timings in a Timed-Loop vi, for that currently we are using PCI-6221 and we give external TTL signal (at 1 kHz) to it,
    recenntly we need to make some changes and for that we found USB 6210 DAQ to be more suitable, but we need to clear ourselves on some specific things.
    Can the counter/timers functions available in the either PCI 6221 or USB 6210 can be used to control the Timed-loop VI by giving external clock or by using their own internal clock source?
    Although we are using external clock with the PCI 6221 but we want to know about the usage of their internal clock, also are controlling timed-loop also possible for USB-6210
    Also... What if we use the RTOS, are they still able to control the timed-loop VI  without giving any 'EXTERNAL CLOCK' and using the internal clock sources of the DAQs
    Waiting for reply,
    Bests,
    RaJaf
    Solved!
    Go to Solution.

    Ben,
    I having read previous email which I send earlier with general overview, we discussed in more detail within our team and I am giviing the specific answers.
    Please check in RED the most recent answers. Blue are the questions/suggestions by your side.
    1.    Using Internal hardware clock of PCI-6221 would enable us get rid of external clock, but how to divert the internal hardware clock to the current settings. Any idea  (can you provide us with some reference manul for otherwise). I mean is there some flag-bit etc. or VI
    2.       Is it also meant that with the installation of RTOS the timed-loop can directly get the timing source from the internal hardware clock PCI-6221? --- How???
    3.       In order to make desktop to work as RT system, what is the hardware (motherboard, processor, etc..) requirement? What are the LabVIEW modules (specific name) that needed to be installed? Our platform is LabVIEW 8.6. (Currently we have windows-7 with i7 core processor)
    What kind of application are you intending for this system? ---- high-speed laser scanning system.
    Are you most concerned about accuracy, speed, or responsiveness? To control the laser mirror scanner to move at 1 kHz or 2 kHz speed. On the other hands, using PCI-5105 (128 MB memory) as a DAQ for real-time/on-the-fly data processing.
    Bests,
    RAJAF

  • Synchronize Control and Simulation loops

    When simulating control systems with LV Control and Simulation loops, I often have multiple loops running at different rates. For example, I have a PWM loop running at 20 kHz, a data acquisition loop running at 100 kHz, and a control loop running at 10 kHz. How can I synchronize all of these loops so that they stay on the same time base? Obviously the master time base will need to be at least as fast as the fastest simulation loop.
    I've tried synchronizing all loops to the 1 kHz clock (I'm running on Windows), but each loop runs one period per clock tick (e.g. my 20 kHz loop counts up 50us per clock tick, my 100 kHz loop counts up 10us per clock tick, etc). I need all of the loops to be synchronized to one master time base so the simulation time is identical in each loop, but each loop will be executed at a different rate.
    Any thoughts?
    Solved!
    Go to Solution.

    Hello,
    A quick suggestion - why can't you run all three systems in a single simulation loop, but have different sample rates for the blocks for each system ?
    Is your system entirely digital, or a mixture of continuous and digital - it may simplify things if you can convert everything to discrete time.
    Hope this helps,
    Andy Clegg
    Consultant Control Engineer
    www-isc-ltd.com

  • How to use Fuzzy Logic Controller for transfer function in labview control and simulation loop?

    I am facing problem with fuzzy PD logic controller for transfer function in control and simulation loop.
    Plz Help me in this regard...................
    i have attache snapshot of my program
    Attachments:
    fuzzy in simulation loop.JPG ‏52 KB

    Hi Sankhadip,
    Sorry for the late response. I was looking at your code and
    I noticed that the graph scale does not start from zero. That might be the
    reason why you don't see the transient in the simulation. To change the scales
    simply double click on the lower limit and set it to zero. If this is not the
    expected results, can you please post the expected results, so we can see what are the
    differences between the results . Also, you might be using different
    solvers, and that gives different results as well.    
    Thanks and have a great day.
    Esmail Hamdan | Applications Engineering | National
    Instruments

  • How to control DC motor in a simulation loop??

    Hi,
    I am Xiaofei, a beginner of LV. We plan to use feedback control on 2 DC motors using Simulation loop. Now the question is: i am not quite sure if the simulation loop is only a virtual simulation of the system, or it can be used to control the real system. We will use 2 encoders to detect the actual postion of the motor shafts, and the decoding code works well in a while loop, as the attached VI. But we don't know how to make it work in a simulation loop. Whenever we put it in a simulation loop and click "run", there's no response  no matter what we do on the system. So if you know, could you tell me if the simulation loop is suitable for our application and what we can do to run the encoders in it? Thanks a million!! 
    Xiaofei

    Hi Xiaofei,
    Thanks for posting on the NI forums!  Can you tell me a little more about your setup?  What do you mean by Simulation loop?  Do you mean Simulation Module or Simulation Interface Toolkit?  What hardware are you using to control the motors and read the encoder feedback?  What kind of motors do you have?  Can you read the encoder inputs in LabVIEW when you turn the motors by hand?
    Thanks,
    Maclean G.
    National Instruments
    Applications Engineer

  • Resetting Integrator in Control and Simulation Loop

    Hello,
    I am trying to run a real-time simulation in Labview 14. I have prepared front panel controls and data flow such that I can reset the simulation to some preset initialization values upon clicking a button. However, I am not able to figure out how to reset the integrator in the control and simulation loop. Even after reinitialization of all the values, the integrators will overwrite the initialization values with whatever they were holding. Please help me find a way out.
    Thanks

    Please share what code you have so that we can see what you've tried and understand exactly what you're trying to do.

  • How to reset indicators in a control design and simulation loop before each run?

    Hi,
    I am new to Labview. I have tried using property node to reset indicators before each run. But since it is in a simulation loop, it gets resetted many times. I am primarily interested in resetting only before each run. 
    Any hint will be of great help.
    Thank you!
    Regards,
    Divya

    Hi Divya, 
    This KnowledgeBase article describes 2 methods for resetting your Front Panel programmatically:
    http://digital.ni.com/public.nsf/allkb/08E7DDAE66A7D02C86256DDA00630E75
    However if you have tried these methods, and are still not getting the behaviour you want, it would be easier to help if you could post your code (or even a screen shot of the section of code where you're trying to reset your values)

  • Is there a way to run a For Loop independen​tly within a While Loop in LabVIEW 2013?

    In my program I would like to run a For loop inside of a While loop, and have them run independently, at their own execution rates.  As a test, I wrote a simple VI with a While loop with 1 second timing, and into this I inserted a For loop with 3 second timing.  I created indicators for both iteration terminals.  Upon running the VI, I found the While loop waits for the For loop to run N times before the While loop executes again.  I also found that sometimes the first iteration of the For loop will end at 1 second rather than 3 seconds, and the STOP button to terminate execution of the While loop does not always work.
    Solved!
    Go to Solution.

    ksinks wrote:
    Thanks, how would you synchronize the loops?  I have gone through the Getting Started exercises and manual.
    Why would synchronization matter? Did you want them to run independantly at their own speed or not?
    Regardless, there's a synchronization pallette with functions for this, as Occurance.
    Other solutions include a common loop counter and a case structure executing every X'th iteration, or having the faster loop send a queue or event every X'th loop that controls the slower loop.
    /Y
    LabVIEW 8.2 - 2014
    "Only dead fish swim downstream" - "My life for Kudos!" - "Dumb people repeat old mistakes - smart ones create new ones."
    G# - Free award winning reference based OOP for LV

Maybe you are looking for

  • Issue in ERM - GRC AC 10 - Is risk analysis not mandatory

    Hi, We have defined our Role Methodology in 10 as Define Role - Maintain Authorizations - Analyze access risks - Derive role - approval - generation When we defined the role and maintained authorization data and proceeding without running risk analys

  • Webutil reading registry entries.

    I have the following program unit that works in forms 6i using the win_api_environment.read_registry program unit. l_filetype := WIN_API_ENVIRONMENT.Read_Registry ('HKEY_CLASSES_ROOT\'||l_extension, null, TRUE); -- Get associated OPEN command e.g. --

  • Mailboxes not transferred after Mountain Lion upgrade

    I upgraded from Snow Leopard to Mountain Lion and my mailboxes in Apple Mail did not transfer. I was able to locate them in Time Machine and copy them to the Mail Library, but the messages did not show up. When I look into the contents of each mailbo

  • Treo 680 GSM unlocked has no phone, no radio!

    Hello!  I had a treo 680 refurbished last year, and since I had already bought a 755p and switched carriers, I just held onto it... Well, I just tried to give it to a friend of mine, and it the phone won't turn on... After chatting with some foreign

  • Any alternative communication for dblink a 9iR2 and a 10gR2 on same unix?

    I want to access tables of a 9iR2 with a 10gR2 sql function(ora_hash). is there any better alternative for dblink access in performance perspective? or is there any tricks to create the dblink for two instances on the same unix? thank you.