Jump to content

hooovahh

Moderators
  • Posts

    3,365
  • Joined

  • Last visited

  • Days Won

    268

Posts posted by hooovahh

  1. <charming music>

    Say you have a generic DAQ system which needs inputs and outputs.

    There's a script for that.

    And say you want to make your programming life easier by adding tools which automate wiring up controls and indicators.

    There's a script for that.

    And say you just want to impress your friends, by writing the fastest 'hello world' program in existance.

    There's even a script for that.

    There's a script for just about any thing.

    Only on LabVIEW

    </charming music>

  2. QUOTE (Jim Kring @ May 29 2009, 01:27 PM)

    Now, what are we going to complain about? ;)

    Oh I'm sure there will be some feature that scripting is missing that we expected to be there. Or possibly there will be a lack of documentation, or lack of support, or numerous bugs. And if there is nothing to complain about, we'll complain about the lack of complaints, thereby making complaints, thus solving out dilemma.

  3. I think you're confused, at least I think so based on this statement.

    QUOTE

    so please can anyone tell me how to make a exe with LabVIEW runtime in it so that my application size is less

    Part of the reason that your installer is 62MB in size is because the LabVIEW runtime is in the installer, and the runtime is kinda big, I would say like 40MB.

    I don't know what version of LabVIEW you have built your application in, but what you can do is host your small exe (850KB) on your website, and then tell people that to run it they will need to download and install the LabVIEW run time for that version of LabVIEW. You can just link to the file at NI's site. Here is the link to the 8.5 run time. ftp://ftp.ni.com/support/labview/windows/...VRunTimeEng.exe

    Or as rolfk said you could try to save the VIs in 7.1, then include the files needed to make a runtimeless executable work. But the download for your website would still be around 11MB for a exe. I think that posting these those files here may be illegal so here is a text file which lists the files I've been using for a 7.1 runtime less setup.

  4. I think the easiest way to find out how much time it takes for a set of operations, is to use a VI global. You write a small VI which just works like a stop watch, with start stop and reset. This VI could have an error clusters in it to preserve data flow. You then put this in before your calculation and tell it to start, it gets the tick count and puts it in a uninitialized shift register. Then you do your calculations, and at the end put down the same VI global with a stop action which gets the tick count and subtracts it from the shift register which contains the original time stamp.

    A quick and dirty way is to use a flat sequence structure, have the first case get the tick count, then the second is the actual work, then the 3rd case is to get the tick count and subtract it from the first.

  5. I haven't dabbled in scripting much, but could you code a VI using scripting? I realize that there are many steps to creating objects on the block diagram, but could I write a VI which makes a VI and runs it?

    It would be confusing to people who have never heard of scripting, they would just see a whole lot of property/invoke nodes and when they run it a whole UI with code would appear.

  6. Go to the link click on the Resources tab, click Evaluation Software, click LabVIEW Evaluation, click Download LabVIEW (you will then be prompted to log into NI's site)

    I didn't download it my self but it appears to redirect to the LabVIEW 8.6.1 install, I'm not sure if the DSC module is included in the download or not.

  7. I think what you are looking for is a running average. I think I found this piece of code on NIs website some time ago and I have found it handy when needing to do a simple quick filter. In the zip is the running average VI, and an example which just shows how to use it. Run the example then move the slider up and down and you'll see the running average on the slider next to it, and in a graph. By default is does a running average of the last 10 values but this can be changed.

    BTW it is saved in 8.0

  8. ...I'm not sure if adding Anna Kournikova to my drink is a good idea but I'm not against trying new things.

    When it comes to LabVIEW marketing, I really don't care too much about the latest slogan. I've also become kinda jaded whenever NI comes out with some cool new toolkit or addon. It seems that alot of the things they make are aimed at beginners and usually aren't the kinds of tools I would use. That's not saying I don't use NI toolkits, I'm just saying that I realize NI would probably rather make things that bring in new customers rather than making tools to help their existing customers.

  9. I sometimes wonder how larger software companies accomplish this. If a piece of software has a 30 day trial and you turn back the clock, some times it will work, but most of the time (not that I've done this alot) it will know you changed the clock.

    Does it check the Windows time against the time that the bios says it is? How does it know you changed the time?

    If you are concerned that users are going to change the system time, you could just make it more complicated. Like every time the program runs write the current time to the registry (but not in an obvious format you could encrypt it with a system string) and if the new time is before the time in the registry then someone changed the system clock, and the software should exit.

  10. On the unbundle of the error cluster check to see what the error code number is. If the error code is equal to the known error code for having no registry key to read, then clear the error and write to the registry the date plus 15 days.

    As for how to calculate what today's date plus 15 days is, take the time stamp and add 1,296,000 to that number (wire the primitive add to the time stamp and add a double with the value of 1,296,000 to it) if you were wondering there are 1,296,000 seconds in 15 days.

  11. QUOTE (jcarmody @ Apr 3 2009, 01:08 PM)

    The shirt from Happy Gilmore, I couldn't hurt a fly.

    guns-shirt.jpg

    I do not remember that shirt in that movie...it has been a while since I've watched it all the way through, I mean its on TBS about every other day.

    That did remind me of this one (the sticker on the right)

    fail-owned-cell-phone-fail.jpg

    As for sequence structures, I only use them for really quick and dirty prototyping and for timing situations. Like I want to know how long it takes for a set of steps to take place so I'll put a stacked structure on it, then take tick count at the beginning and end.

    I know there are better ways to do it (like with OpenG tick count if my code has an error in and out) (or using a functional global that runs at the beginning and end)

  12. QUOTE (alfa @ Mar 31 2009, 06:55 AM)

    I was thinking:

    What the capitalists and the communists do have in common?

    When I'm bored I think about things too, but I don't think I've ever wondered what capitalist and communists have in common.

    "Why is the sky blue?"

    "What are some good birthday gift ideas?"

    "If I had enough money to retire right now would I?"

    "Where in the world is Carmen Sandiego?"

    but not that.

  13. QUOTE (Yair @ Mar 23 2009, 03:09 PM)

    BTW, flarn, are you really 16 years old? What's your involvement with LabVIEW?

    Totally thinking the same thing but didn't want to reply to a legitimate question with just that.

    At work here we had a new hire who was born in 1990. Don't get me wrong I'm not much older than him but that still seemed weird to me.

  14. I haven't worked with FPGA much but the only way I've ever been able to accomplish what you want is using local variables. "In FPGA local variables are your friend" - My boss

    When you want one loop to send some data to another loop you can set a boolean which the second loop is watching. When that boolean is true you can have the second loop grab some data from a local variable. It's not as easy to follow as the state machines we're use to, but it works.

    Take a look at this example (a poorly thought out one, but one none the less)

    lvfpgaexample.jpg

    I realized after making this example it is a poor design of an alarm system. If an alarm happens when the system is handling alarms, it will be cleared. Also Arrays in FPGA are very costly in number of gates and they should be avoided when ever possible. But in any case I hope you get the idea on how I some times pass data from one loop to another.

  15. QUOTE (PaulG. @ Mar 19 2009, 01:37 PM)

    Thread hijack. :ninja: Why would you want to mess around with command lines and a 3rd-party, open source (be afraid be very afraid) program when you can use native LV zip functions?

    Why be afraid of open source? What's there to be afraid of? I don't like the built in LV zip functions, I haven't had much luck with them even on the simplest functions. Also for advanced features...there aren't any. If nothing else use the OpenG ones. But if you want high compression use 7-Zip.

  16. You won't be able to accurately recreate a crank (or cam) shaft signal in real time using a non-real time operating system. Basically if you're going to use the outputted signal on a analog out card I don't think you'll be able to get the data out fast enough. If you have an engine spinning at 7000 RPM and you have 40 teeth (if there were no gaps) that means you'd need to change the voltage over 4000 times a second, that's every 250 microseconds. (all of these numbers are just estimates)

    Also will the engine be changing speeds? If you just need to generate a signal that looks like an engine at one speed you could just multiply the two signals you've generated. The sine one goes on forever, and the signal with no teeth is just a zero or a 1. It should be a 1 when you want there to be teeth, and a 0 when there should be no teeth. When the two signals are multiplied it should be teeth...no teeth...teeth...no teeth.

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.