Business Structure - timer / controlled waveform

Hello world

I am building a waveform of controlled time/switch. I have three different parts of waveform to 8192 samples each. I have a case of Structure inside the While loop.

Structure of the case must have the following properties:

-1st line (from above) on the output until what you press Start. This is the first part of waveform (normal state of the signal) so I can write these data several times.

-When you press Start, the current examples are written after that write data of 2nd line exactly once (it's a transitional part of waveform)

-end of the transient wave, write the fixed part of the signal (3rd line)

- and finally, return to the 1st line of entry.

Switch box must be done after prior data wrote because I need to synchronize the start of a signal which ends on the other.

Any help would be greatly appreciated.

Thomas,

I did something like this before.  I've handled by putting the waveforme write and play in a loop (with a case defining structure that array to write to the data acquisition card).  In this way, if there is no action from the user, a default waveform is always written on the card and played.  When the user presses a button, a Boolean value has triggered another round of case (you will use the Boolean value to trigger a simple state machine that determines what table to write).  The final value of the state machine to go back to your original state.

Example:

State 00: Normal default waveform running

State 01: User Action to start-> tracks 'line 2'-> change boolean to go to State 10

State 10: series 'line 3'-> change to 00 status boolean

State 11: {unused condition}

The only part that this should affect is the writing of the real array to the data acquisition card (i.e. keep the rest of the code out of the apparatus of State, but within the main loop)

I hope this helps,

Sean

Tags: NI Software

Similar Questions

  • Event structure vs business structure?

    I'm developing an application that can be fairly entered user based... a lot of command buttons Boolean to do different things.

    In the past, I was able to avoid the event structures "change value" and went instead with a while loop, stacked sequence and series of structures of the case. After, I decided that it was a terrible idea. This time, I intend to build an array from a Boolean, convert it to a number and feed it in to a unique business structure. This will give me the ability to add cases for different combinations of the Boolean being pressed.

    I guess the question is: what is the best way to do something like that?  Does have advantages over the other?

    Edit: I was not clear.  I would like to a comparison between the method of structure of event 'change of value', and just feeding into a table-> structure of the case.  I also fear that with the bool-> structure table affair I'll run problems where I find myself with too much control variable and the value of the resultant becomes ugly number very quickly. The application has several buttons... then, finally, save, load, several different configure configuration buttons etc.

    Thank you!

    Aalenox wrote:

    I guess I could do two separate loops running simultaneously.

    ^ ^ ^ THIS!

    Search for architecture producer consumer

  • In the attached VI I do not understand why given domestic business structures are not transferred in the table.

    In the attached VI I do not understand why given domestic business structures are not transferred in the table.

    Thank you.

    The VI has yet InfoCluster.ctl.

    If you don't bring anything in the cluster, you should always pass the cluster via.  You run the same question ' use default if Unwired "as before.  The presence of these "case bundleless" begs the question why you have these States because they do nothing.

  • PDA time control is not editable

    I have a PDA LV8.6 application installed on an iPAQ hx2490c running Windows Mobile 5.0.  On the front is a cluster that contains a DateTime control and a control chain.  Date/time control cannot be changed by using one of the functions available on the local keypad.  The control of the chain changes very well.

    The components of the date and time can be selected, and the cursor moves between the numbers correctly, but back on the elements have an effect on the values or type a new value.  This seems to be a problem with the control of time.

    Hi Michael,

    I gave it a try and I've seen the same behavior as you. It seems that direct input is not supported (I tried other versions as well) and is unfortunately not documented. I'll make a point report to R & D as something that we must fix, or document. There are often cases like this, that just needs to be better documented with the Mobile Module (because of the process of compilation involved), and that we just need to find a way around.

    The options seem to be to use the up/down keys, or the browser popup. The browser allows you to enter the date and time via the on-screen keyboard. Otherwise, you can also try to manipulate digital and string entries in the timestamps (there are screws that do).

    Thank you for reporting this issue. We appreciate any comment like this, we can get!

    see you soon,

  • Case of Structure / timer

    Hello

    I have attached a sample vi to control a serial device that takes input from 40 to turn the unit on and 41 to turn off the unit.

    I want to do is when I press start I want a 40 to send to the appliance and activate the timestamp of loop.

    Then, once the time is over, I want to end the timer to send a 41 to power off and stop the two loops.

    I think I need to add a case structure to the timing loop, but do not know how to do in this regard.

    Any suggestion would be great.

    Thank you


  • Best way to code structure to control several instruments

    Hello

    I am a novice but not inexperienced labview programmer. I'm writing a labview code to control a physical optical experiement. This involves writing a GUI which of your interfaces then with a variety of instruments (such as motorized turntables, lock-in amplifiers, power supplies, Renault, etc...) all connected to the computer through various means. All the instruments are delivered with their own labview drivers to complete their most important functions. Essentially, the instruments will operate independently, but occasionally, will be a set of steps involving several instruments (such as move, take a step, move again,...)

    My question is what is the best way to structure the top level VI where all GUI controls? I have currently the code structured so that each instrument has an event structure that manages keys and commands for it. Simple events like the movement are dealt with in the cases where structures themselves while queues and occurrences are then used to handle more complicated events in external loops. It is an appropriate way to handle this scenario, or is it that most commonly architecture?

    Thank you for the help

    You play with fire when using several structures of the event. My preferred method for executing an instrument that has a 'stream' mode (example: a spectrometer where you always see the spectrum), is to provide that it is a clean line, with a dequeue item. The 'element' may have a message part (or State) in the form of an enum or string, as well as some data in the form of a Variant. You want to set a parameter, you could send a cluster containing the enum "Set the parameter" as well as the value of the parameter in the form of a Variant. The default case would be to get a spectrum and update a graph (or send another message to a user interface management loop that updates the chart).

    You can open the project template QMH who comes with LabVIEW to see how a line would work, and then you can add multiple queues for different instruments. I keep the new loops in their own SubVIs and reference to the queue in a global functional to clean the main schema.

    Here is an example of what your data of the module flow record might look like (the string constant empty considered double quotes is by default to expire the message dequeue)

  • Suggestion to turn this into a business structure

    This is an excerpt from an existing code that we were committed to change/clean. I have to assume there is some way I can reduce this to have only a business, maybe with a not - or not - or structure. Or maybe I'm overthinking cela. Basically I confusion to keep me in the code relatively simple when thinking about Boolean values compared. Any help is appreciated.

    This seems to be just a NAND, pure and simple.

    I came with the truth table was:

    old new write to the world

    0      0         1 (< is="" false,="" new="" is="">

    0      1         1 (< is="">

    1      0         1 (< is="" false,="" new="" is="">

    1      1         0 (< is="" false,="" new="" is="">

    Isn't classic - and.

  • Child model LVOOP with class factory problem change out business structure

    I must do something wrong, but cannot escape.

    I'm trying to create a child object (see the bottom row of the class hierarchy) by using a case based on an enum variable structure.

    When I trace the code I have the 'ssh' Connection Type and it executes the appropriate case, and I can see that the SSH.lvclass has been created, but when it happens outside the Structure box case it suddenly is a SFTP.lvclass object. The real wire when I click on it in the diagram also shows as SFTP.lvclass wven if the VI it will is certainly the ultimate parent of UserInterface object - all.lvclass.

    I tried to remove the wire and put new but it always come back to SFTP.lvclass.

    What Miss me?

    My class structure is

    Actual code

    Thank you very much, David

    dpnsw wrote:

    I've rechecked everything and if I remove the wire from the SFTP focus out of the structure of matter, then suddenly becomes the object off structure business wire and SCP.lvclass object. If I delete this thread then becomes an object of Portforwarding, then an object netConf and if I delete it finally becomes an object of ssh.

    I think you may be confusing the thread name (taken from the names on one of the constants) with the type of yarn (which will be the common parent of all the constants).  Rename your constants, as anything other than their class name, and you will see.

  • 9 of LabVIEW with GPIB-RS232 for shutter at fixed intervals of time control

    Hello

    I want to order my pane using LabView. I have a program for that from where I can see this shutter is controlled. But I don't know how can I integrate this conditional opening and closing the shutter. For example, I want to shutter to be close for first "t1" dry and open for the next dry "t2" and again close to the "t1" and he repeated that if arrested. "."

    I am attaching the file also, can someone explain to me how I can do?

    Thank you and best regards.

    Hello

    What you need is two tables with in the first and in the second time, downtime.

    Then in a for loop switch, element of waiting on, turn off wait element.

    Use autoindexing and make sure that the two arrays have the same length in the case against the shorter table will determine the final stages.

  • PROGRAM SLOWS DOWN WHEN IT ENTERS A BUSINESS STRUCTURE

    OK, so here is the problem I have do this output pid controller is between 0-100 in this program, I'm just trying to make it work so I made a function to compare that when the controller output is 0 and the constant 0 I'm starting a business loop which transform the output for a second and turn off for a second.   When I go into the structure of the case, the rest of my program slows down

    I don't know why, I tried to do a while loop and a structure outside my main loop but I can't get my signal of my statement to compare to enter the second loop where I get my output to bike in 1 second intervals

    This is the VI please help

    I'm still learning how to use labview in passing

    Thank you

    Gary

    Gary,

    The next thing you want to learn more about LabVIEW dataflow. This is the fundamental paradigm of LV and explain your slowdown problems.

    The basic concept of data flow is any node (node = function, Subvi, structure) can begin to run when the data is present on all its entries and no data will be present at its outputs to execution comopletes of knot.

    How will this affect your VI? The real deal has a wait 1000 ms (actually two, one in each case of the internal structure of the housing = redundant code). The structure of the case will not complete execution until the wait ends. And the while loop does not complete its repetition until the end of the structure of the case. The result: at the exit of the PID.vi = 0, the loop runs at 1 second per iteration.

    What is the solution? Continue execution of the loop at intervals of 100 ms. sure in the structure of matter (true case) and another register to shift of how number of intervals of 100 ms is passed. When the count reaches ten, toggle the output line.  Do not use the 1000 ms of waiting.

    All the code in your internal structure is not necessary. Connect the output remains directly to the digital Arduino write VI.

    Be careful with the comparison to zero with floating point data. If the calculation which produces data has round off errors you could get a value such as 0.573E - 15, but which is not equal to zero. It is better to compare to a small range of values above and below zero.

    Right to left wiring is much easier to follow in trying to understand what makes a program. Using the tool to clean occasionally will help (although he eventually frustrate you also).

    Lynn

  • Default value of the string at run time control

    Hello world

    When I'm editing mode, I can click with the right button on a control of the chain and go under "Information Operations" and select "Make default value"... I need to do in run mode, but I can't find a property that gets the job done.

    Any suggestions?

    Thank you

    LoBa

    Hi love,

    My advice is to init the checkpoints of your application with the ini files. Do you have an API for the name VI configuration file. That way, you can change the default between every time the application runs.

    Explain here.

    Concerning

  • relative times of waveform

    In Labview 8.5, I want the x axis to display the time elapsed the data collection relating to when the data collection was started.  When I put the property at the time of parent, it shows a large number of seconds (see attached jpg)?

    Thank you

    Azim

    As mentioned, Kiki

    Use "Build Waveform.vi" and set the property to "t0" to zero.  If you have a table of waveforms, pass it in automatic indexing of loop for so you can do it at each waveform in the table.

  • How to use a signal of true/false dynamics with a business structure?

    Hey everybody-

    Is it possible to enter a case structure dynamic data of true/false?  We try to generate a waveform and want our structure case to run when the wave exceeds a certain threshold value and freeze execution when it drops below the threshold (If false).  However, we want the case structure to run continuous - i.e. If the structure of the deal for the 'real' case running while the waveform is above the threshold, we next want to deal for 'false' structure to run when the wave goes below the threshold, and so on until we stop our program.

    Any suggestions would be much appreciated!

    Rachel

    Remove the loop around your DAQ Assistant vi express (I hate express screws).  There is already a big loop around all of the code in the lower part.  As has been pointed out by Ravens Fan, don't assign continuous acquisition.  Set a finite number of acquisitions.  Then the rest of the code can run and the loop can travel again.

    Get rid of the stop sign at the top.  When the code is finished, Labview will stop on its own.

    You have two stop buttons.  Only one is necessary.  Look at my example posted a few messages back.  A STOP with local variables.

    Shrink your block diagram.  It takes more than one monitor space.  It is difficult to read when you have to scroll all over the place.

  • get the time of waveform - increase accuracy?

    Hi I am trying to measure a voltage and take the voltage and time to specific blood pressure and place everything in a pure and simple to read the file.  I had success with the foregoing, however, when we look at the data, the timestamps are not precise enough.  It's mapped data that appear to show only the 1 significant digit, and I need a lot more specific than that.

    Is it possible to use the "get Waveform time Array.vi ' which will appear more precision when obtaining these components?

    Version is 8.6

    For those who are not idiots and care to know the solution, the drafting of a worksheet, Excel truncates data.  I don't know why the data has been lost, but there is no way to recover it in Excel.  In my case, the resolution of valuable time has been lost.  However, writes to a text file can address this problem.

  • A pump for connections rs232 for real-time control

    I have a genius pump more syringe (manual attached) and I need to be able to control the flow of the pump in real time of the computer, using a dial to to the top or the bottom rate as I see climb. I used the basic series vi in read/write of the examples just mentioned another detachment and he contacted the unit very well using the commands contained in the manual. My question is how I change this option or what do I have to do the program I need? I'm barely a beginner still labview but tells me it can be a very useful program for this and other future applications that I will meet you. all the advice, it's that very much appreciated, thank you!


Maybe you are looking for

  • Reader superDrive eject a CD

    My SuperDrive reads all my CDs very well except one, which it ejects that during some songs. The CD plays fine on my other CD drive so what would be the problem? Thank you.

  • Portege M300 & Dock display probs

    I have a Portege M300 in a Port Replicator III with keyboard, mouse, network and external screen, but cannot automatically do the output to the external screen after being away with the laptop. I have to lift the lid on the laptop, login and him then

  • Y500 two-finger-tap touchpad not working not

    Hi I bought my Y500 a few happy days with her and there are in general. However, one day the two le deux-doigt-tap (par clic droit) sur le pave tactile - finger - tap (by right-clicking) on the touchpad stopped working. Here is a description. Everyth

  • Cannot download Microsoft SQL Server 2005 Express Edition Service Pack 4 (KB2463332) ___Download size: 55.8 MB___error type 41D___Update code: Important___

    I tried to download Microsoft SQL Server 2005 Express Edition Service Pack 4 (KB2463332) Download size: 55.8 MB You may have to restart your computer for this update is taken into account. Update type: Important This service pack upgrades all compone

  • Updates dropped installation

    I'm having a problem installing to I-tunes and it seems that it's because of my updates do not install it.  When I try to go and install the updates manually it gives me an error code 800736B 1 and when I try to click on help it won't do anything.  I