Task out with a shift register using ULx
This post below describes my same problem of passing a task through a case structure but they are using the DAQmx Library and it has a CreateTask.vi which the ULx Library doesn't have.
http://forums.ni.com/t5/LabVIEW/passing-DAQmx-task-out-through-a-shift-register/td-p/410447
Any suggestions as to how to get my task out through the shift register?
Thanks
-CC
Solved!
Go to Solution.
I have never had a problem getting ULx task out of shift register.
This is an action engine that I use to store the ULx tasks ref to use later in the code.
Omar
Similar Messages
-
I am writing a FPGA VI with module cRIO 9104, I need to do a lot of parallel execution of inside a timed loop. In total, I have used 20 pairs of shift registers in the timed loop, which simply means there is 20 parallel exceution across ONE time loop. However, it tells me that there is an over-used of the FPGA resources in the compliation report. One is the Slices and the other is the number 4 of LUTS ( see the attached file), would the compile will be sucessful if I change it to ALL block diagrams cascaded in series without using any shift register accross the timed loop? And do you think that it is reaosnable to have 20 pairs of shift register arranged in parallel inside a timed loop.
Thank you!
Attachments:
afternoon912.jpg 2305 KBYour compilation report has 2 useful numbers to help answer your question, I'll summarize:
Number of Slice Flip Flops = 27%
Number of 4 Input LUT's = 100% *
You are using the Timed Loop Shift registers to pass a value from one iteration of your loop to the next. The LabVIEW FPGA compiler will use Slice Flip Flops to create this behavior in the FPGA fabric. You are only using 27% of the Flip Flops, therefore the 20 Shift Registers are not your problem.
LUT's (Look Up Tables), which are the basic logic building block of an FPGA, are your problem. You are using over 100% of the LUT's in this FPGA. To fit in this FPGA you will have to reduce the amount of logic (and/or gates, additions, comparisons, etc.) in your design.
-RB -
How to find out with my application is using any timezone dependable data
hi guys,
i am going through the notes: Updating the RDBMS DST version in 11g R2 ID 977512.1
Bum into this part where it mention:
Oracle cannot say to what DST version you need to use, this simply depends on if you are using DST information or not in SQL
Please advice what are the ways to find out if application(s) connected to my database is using named timezones.I believe the MOS Doc linked in the sentence immediately after the one you quoted above should help
HTH
Srini -
It seems only read 200 samples and then stop. Shouldn't I get a continuous wave chart after using shift register on a while loop?
Solved!
Go to Solution.
Attachments:
trial 4.vi 21 KBYou must remove Start VI out from the loop...
You cannot 'Start' a task which is already running...
You also remove the Start VI completely from your code... If you do not use Start VI, a measurement task starts automatically when the DAQmx Read VI runs.
Find the attached VI.
I am not allergic to Kudos, in fact I love Kudos.
Make your LabVIEW experience more CONVENIENT.
Attachments:
trial 4 [with START-VI removed].vi 15 KB -
Using a shift register to detect input...
Hi guys,
I'm creating a LabVIEW VI that needs to be able to detect when a user changes an input. I read a previous post that suggested using clusters and shift registers to compare previous data.
My question is how do I use shift registers? I've created a shift register on a for loop, but I'm not sure when to compare the "previous" data to the "new" data. Do I need to add an element to the left side and compare it there? Is the right side the output? I'm just not sure how it works. An uploaded example would be nice. Thanks.
-MikeShift registers are very powerful but difficult to use for the first time.
The shift register you just created has two "arrows", one on either side of the structure. The arrow to the left is the value from the previous (i:th) iteration and the arrow to the right you have to feed with the (i+1)th value.
Now, if you want to compare values and look for a change you can compare your old value (the one coming out from the left) with the new value in your for loop. The feed your new value to the right arrow so that it becomes the old value for the next iteration.
If you have many parameters to compare, clusters are very useful since they make things very compact. If you are comparing clusters, do not forget to change the setting on the comparison to compare aggregates (r
ight click on it and select that option).
Also, in most cases you need to set the initial (start) value for your shift register. This is done by feeding the left arrow with the default value from the outside of your loop.
I attached a simple example, CompareSettings.vi, that shows how it works. Hope this helps. /Mikael"
Attachments:
comparesettings.vi 32 KB -
How to use Shift Register?
Hi
Today I spend hours to ficure out how to use a shift register with labview.
I am going to calculate the acceleration of the wheels of an RC-car.
I want to use the simple function to calculate the acceleration.
a=(v1 -v0)/time
From this it follows that I need two speed (ms) values. I was thinking about including a shiftregister that I made before (attached) into the SpeedAngle.vi
But that doesn't work.
Is there maybe an other way to store two following values of the calculated speed? So that I can use it for further calculations.
Thank you!
Attached the two program files.
Bye
Attachments:
ShiftRegister1.vi 23 KB
SpeedAngleAdvancedEDIT.vi 187 KBHi
Thank you very much. Now it works. Attached you will find the program. Now I need to adjust the car with the program. Hope this also works.
One more question. Why isn't it possible to use a Numeric Control twice?
Because I wanted to use the Numeric Control that I use for the time constant (time) also for the calculation of the acceleration.
That doesn't work. Than I placed a Numeric Indicator to display the value of the time constant. But it just displayed the default value.
Bye
Attachments:
SpeedAngleAdvancedEDIT.vi 214 KB -
Have just migrated from the world of PC's. and I had my mail text typing set up so that when I started a new sentence after a full stop it started with a capital with out me pressing shift. also, i could set up words to self fill like ur would auto correct to your. can this be done with mac
I don't know about the first letter cap but the spelling is simple. Edit - Spelling and Grammar - Select While Typing and Correct Spelling Automatically.
I'd also STRONGLY recommend that you bookmark and use:
Mac 101
Switch 101
Find Out How Video tutorials
List of Useful URLs for switchers
Welcome to the Light side. -
Any way to save data in loop without using shift register or feedback loop
Hello all
I was thinking, is it possible to save data in a loop to next iteration without the use of a shift register or a feedback loop?
I need the possibility to reload data within a loop from a lvm file, but I want to use the same data until i load some new ones.
The reason why I don't want to use the shift register or feedback node is due to speed, even though I am not sure if the shift register
actually moves all the data from one register to another, or if it is stationary until a change in the data occur.
The data I want to reuse is medium-large (6 force measurements, 2 pressure, 1 flow channels)of about 10sec data in each file with samplingsrate of 2kHz..
In my analysis program I have many CPU demanding calculations and 3D graphs, so I just want to minimize the CPU load as much as I can for each part of the
software..
I have attached a small VI to explain what I am talking about.
I now I shouldn't use the express VI, and I am going to change that as well - this is just a proof of concept!
Hope you guys can help me understand this shift register better...
Thanks!
- Tommy
Running LabVIEW 2009 32bit SP1 on Windows 7 64Bit
Solved!
Go to Solution.
Attachments:
visual.vi 34 KBtombech wrote:
[...]The reason why I don't want to use the shift register or feedback node is due to speed[...]
Tommy,
shift register are the fastest you can ever get...........
Norbert
CEO: What exactly is stopping us from doing this?
Expert: Geometry
Marketing Manager: Just ignore it. -
How to use shift register in this structure?
Dear All,
In order to use less variety of graph, I want to use shift register to manage and send data to graph.
But there is not only event structure in my vi, for some reason(because I want to use only one button to control running and stop, and this must do through variety of button, I can't put this loop into the event structure) I must use other while loops, I don't know how to use shift register in this structure.
Please tell me anything helpful.
Thank you!
Attachments:
shift register.vi 26 KBhi there
there are a lot of solutions. my favorite one is the usage of a so called "FGV" (functional global variable). this allows you to strore, manipulate and transport data through your app with a minimum of wires. see attachment.. (other users may have other favorite solutions...)
Best regards
chris
CL(A)Dly bending G-Force with LabVIEW
famous last words: "oh my god, it is full of stars!"
Attachments:
Shift Register 7.1.zip 20 KB -
Problem in using the shift Register
I have a problem regarding shift register when i was using it in my application.
During the runing of the application i found that sometime shift register not pass the value to the case structure. at that time result is not displayed.
i have attached the application in which that problem occur and the process regarding the execution, how bug produce and how to check where the shift register stop. please find the attachment and reply on the same.
Attachments:
Shift Register Checking Application.zip 173 KBI'm sorry but I don't understand your program. I only see one shift register in Result Display.vi.
What I do see is a lot of odd constuctions of while loops that only run once in your Main.VI. Also, a heavy reliance on global and local variables that I suspect are leading to race conditions.
Have you tried using the debugging tools such as probes and highlight execution to see our your application is behaving?
I'd also be concerned about how you have "Lock Front Panel Until Event Completes" in the cases of your event structure. And those event call other subVI's that may take a while to run and rely on user interaction with the front panel. I also don't understand why when I hit "OK", the subVI front panel remains open. It just makes running your application that much more confusing. -
Iterative addition of 2D array using a shift register
Hi
I'm trying to add 2D array iteratively using a shift register.
However, the indicator for the output of 2D addition shows nothing.
Do you know Why? and How to fix this problem?
Thx
hiyangOk, looked at ur attached VI
You are not getting any output because, you are adding an array with an empty/blank array
First, initialise an array of zeroes of required size and pass it to shift register, Initialise your other array which u are adding inside the loop also of similiar dimension, and later, keep changing its elements
Do as shown in modification of your attached VI
Regards
Dev
Attachments:
2DArray_shiftRegister.vi 30 KB -
Problem saving an array using a shift register
In the attached VI I'm building a 1D array of strings, then trying to save it using a shift register. For some reason my data isn't being saved and I dont understand why.
Thank you.
Solved!
Go to Solution.
Attachments:
Shift_Reg.vi 15 KBTry this...
LabVIEW Champion . Do more with less code and in less time .
Attachments:
Shift_RegMOD.vi 10 KB -
How to quickly clear an array used in a shift register?
Hello all,
I'm sure this is a quick one, but I'm missing the concept.
I have an array of boolean in a shift register. I have a case where I need to basically 'reset' the array rather than append to it....what is the best way to do this?
Thank you,
cayenne
Solved!
Go to Solution.stevem181 wrote:
Of course, it is possible that my benchmark program is flawed.
Yup, disable debugging and you will see that the inner FOR loop is folded in both cases and the time drops to about zero.
Testing with debugging enabled is potentially unfair, because the reshaping will have more debugging code because there are more potential places to probe a wire, for example. All that said, I don't really know what's more efficient. That would require much more sophisticated testing. My point was just a reminder that there are always many ways to do things.
(This is under LabVIEW 2012. Constant folding and dead code elimination of course differ between compiler versions)
Granted, I typically don't use any of these two versions: I also omit the diagram constant, set the tunnel to "use default if unwired" and keep in unwired in the "clear" case. Less diagram clutter and quicker coding.
Here's how it would look like.
LabVIEW Champion . Do more with less code and in less time .
Attachments:
Folding.png 13 KB
UseDefault.png 3 KB -
Unxepected behaviour with clusters inside of while loop with shift register
Colleagues,
I just would like to post here small, but important bug (I guess this is the bug), which was found by coworker today morning. Just would like to share knowledge, and probably this will save some debugging time for you...
So, the problem that you can get wrong content of the cluster in some cases. The cluster used inside of while loop with shift register (we using this construction for functional globals), and after bundle operation you can get data, which are not expected:
See also attached code for details (LabVIEW 8.6.1, WinXP Prof SP3).
best regards,
Andrey.
PS
Bug report already sent to NI.
Message Edited by Andrey Dmitriev on 10-16-2008 12:30 PM
Attachments:
BugwithClusters.png 15 KB
BugwithClusters.zip 10 KBThanks Andrey for brining this to our attention!
The "Show Buffer Allocations" reveals that LV is not processing the code in the right order.
Under ideal conditions, all of the data should be manipulated using the buffer "A". But as this demo shows the data is being processed in the wrong order.
The previously posted workaround get around this by forcing the array operation to happen first, but this resluts in two additional buffers "C" and "D" and then copy this back into "B".
Using an "Always Copy" is another workaround that uses a seperate buffer "F" to hold the data being moved from the first cluster to the second inside "E".
I think you won a shinny new CAR* Andrey!
Ben
CAR = Corrective Action Report
Message Edited by Ben on 10-16-2008 08:05 AM
Ben Rayner
I am currently active on.. MainStream Preppers
Rayner's Ridge is under construction
Attachments:
Cluster_Bug.PNG 57 KB -
Use of shift register and similiar C code
Hello LabVIEW Gurus,
I am very new to LabVIEW and I did searched the forum for my short question but the answers were not that clear to me. My question is what is a shift register and could you please give me one similiar C code and where shift register can be used.
Thanks for your time.
Vasuthere is no direct analogous to a c construct to a labview shift register but a shift register is an unnamed temporary variable for use with itterative loop structures (for and while). See the following code
int sum = 0;
for(i=0; i>100: i++)
sum = sum + i;
return sum;
This can be done in LV without naming the variable sum . In addition the shift register can be initialized or not. If you do not register the shift register it will remember the value from call to call (a very cool feature when you learn to utilize it). See below
Paul
Paul Falkenstein
Coleman Technologies Inc.
CLA, CPI, AIA-Vision
Labview 4.0- 2013, RT, Vision, FPGA
Maybe you are looking for
-
Socket, setSoTimeout and SocketTimeoutException
I am experimenting with different Socket.setSoTimeout settings while reading the inputstream with BufferedReader.readLine. I have tried to provoke a SocketTimeoutException while reading a string from the Socket.inputStream. I have noticed that if a t
-
Creating JDBC datasource in Weblogic 10
I have a requirement to create JDBC datasource at runtime if necessary. Weblogic provides JMX services for creating datasource however this required credential of Admin Server (node manager). As my application is deployed in one of the managed node a
-
I paid in advance for a year of photoshop and was able to download lightroom but the photoshop will not download .Any sugessions?
-
Acrobat Reader X with MAC Server based User Profiles
Hello Forum, I'm a bit in trouble with Acrobat Reader X (10.0.0.3) on my Mac. We are using server based user profiles for the whole network. (SL Sever and SL Clients 10.6.7) Installing the Reader X has finished successfully. If I'm starting my Reader
-
Having trouble watching part of a movie and then trying to finish later
I have a 5th generation classic. I watched a movie last night and stopped it in the middle of it. When I cam back this morning, I figured that it would start in same place in the movie but it did not. When I had my 5th gen. nano, I could do that.