Jump to content

Michael Aivaliotis

Administrators
  • Posts

    6,196
  • Joined

  • Last visited

  • Days Won

    104

Posts posted by Michael Aivaliotis

  1. I should also mention that I have 2 objects I would like to be resizable.  I grouped the 2 together before setting it as resizable.  Would this be the cause for the behavior I'm seeing?

    This can't be done. The resize object only works for a single object. Grouping them doesn't work... sorry.

    Finally, is there a way to force objects to resize vertically, but not horizontally (and vice versa) with the panel.  Sort of like locking it's "resizability" in one axis. 

    I'm probably looking at doing some things that LabVIEW doesn't yet have the ability to do.

    5945[/snapback]

    Well, the instructions mentioned give you some capabilities with zero programming. Of course if you tap into the panel resize event and want to do some programming then you can do whatever you want. Anything is possible in LabVIEW once you use this event.

  2. Could you make a version of that attachment in LV 6.1? (or is it a LV 7 feature only?)

    This is a topic is of some value to me.  The old Eval methode is too slow (and ugly).

    5981[/snapback]

    This will not help you. The Eval Formula VI works at run-time allowing formula parsing and evaluation. The Scripting VI indicated above is a development tool that creates a formula node during edit time. Here is a picture of the code so you can create it yourself in 6.1

    post-2-1125800145.gif?width=400

  3.  

    If you only need a reference to a few, static items 

    just right click on the item and create a reference. 

    This reference can be saved in a global varaible and acesses 

    by any vi. 

    5980[/snapback]

     

    Oh no. Please don't use global variables of ctrl references. If you absolutely must store the reference somewhere, use a functional global (while loop with shift register). Also, I'm NOT a proponent of writing directly to front panel controls from one VI to another because it makes code unnecessarily obfuscated. When debugging problems, it's hard to know what is coming from where.

  4. Sometime when I open some VIs for the first time a dialog box saying "Cannot find the file'//opened.vi'(or one of its components). Make sure the path and file name are correct and that all required libraries are available." is displayed. But still the VI opens and runs without any problem... Don't know whats happening.. Don't remember seeing this thing in LV 6.1..Anyone know what exactly is the cause for this.

    5972[/snapback]

    This error message is comming from Windows, not LabVIEW. It happens when you double-click a VI to launch it from file explorer. LabVIEW 7.1 takes very long to load (longer than previous versions). This triggers some sort of timeout in Windows because the associated application (LabVIEW) has not launched yet.

  5. Today I made a very simple .exe in Linux and tried running it on a Windows box.  A command window came up with an error and the program would not run.  That was only my first try though.

    5955[/snapback]

    I may be wrong, but my understanding is that you can only run a LabVIEW EXE on the platform for which it was built on.

  6. Interesting to note, thank you. I also came across another interesting deviance. The  Formula Parsing requires ^ for exponent while the Formula Node requires **.

    5953[/snapback]

    This is a bug. Originaly (pre-LV6i), the formula node used ^ for exponent. I think in LabVIEW 6i they changed the exponent to ** for the formula node. They forgot to change the Eval node. See attached image of the formula node online help for LabVIEW 51 showing the exponent notation used.

    post-2-1125628486.png?width=400

  7. Are s-parameters actually patent protected? Blame it on the 60's. :D And NI is too cheap to pay those royaltys?

    5952[/snapback]

    No, S-parameters are NOT patented, I was talking about the calibration algorithms. As far as LabVIEW's capabilities, I have yet to find any limitations. Even in the RF\Microwave field. Are you using any automation at the moment? If so, what software are you using?

    Another thing to look at is NI's add-on RF Software tools for your industry.

    Perhaps if you explain what specific problem you are trying to solve then I can guide in the right direction.

  8. But how is the lady cut in half?

    5918[/snapback]

    Well, since you asked...

    When the person is placed in the box, her head sticks out one end and her feet stick out the other. The magician then spins the box, and when the feet are pointed away from the audience the assistant retracts her real feet and replaces them with a pair of fake feet. The lady is a contortionist, so she folds her legs into the upper part of the box and the magician "saws her in half." Because we saw the lady stick her feet through the holes, we assume they must be her feet the entire time, and the illusion is completely baffling!

  9. The smith chart is a typical display function for s and t parameter arrays, but it does not imply any specific format for representing logical groups of s parameters such as the typical multiport s parameters, it just displays complex arrays. I already measure, read in, and manipulate large groups of s parameters from Network Analyzers although up until now these are mearly a collection of arrays, in some cases multidimensional arrays that are formed in an s parameter layout.

    The newer analyzers like the Agilent E5071B naturally operate on multiport s parameters and t parameters, so I started looking into how Labview would represent such data, and was surprized to find nothing. It is clear that direct matrix multiplication and the other matrix operations can be used on 2 dimensional complex arrays, thus implying the correct form for a multiport s parameter data structure, however Labview has no support for typical things like impedance transformation and t parameter conversion.

    They certainly have quite a few complex matrix math functions, but I was very surprised to see that it (at least Labview 6i) is virtually mute on the whole issue of s parameters. I don't mind cooking my own, but I think it is always better to work as a community. I was also surprised to find nothing about this in LAVA.

    :unsure:

    5924[/snapback]

    I misunderstood. I thought you were interested in the display aspects of S-par values. This is why the post was moved to the user interface forum. Perhaps another move is necessary. :(

    In any case, I assume you've seen the complex palette?

    post-2-1125526155.gif?width=400

    PJM always calls me a master of the obvious but I'm always surprised by how many people miss this palette.

    No, LabVIEW does not have functions to operate on multiport S-parameters. On the other hand, why should it? Are you trying to perform correction on the measurements based on calibration data taken for the multiple ports? To do this you need to apply the formulas required based on your calibration method. Most of these correction formulas are public knowledge and can be easily implemented using basic math primitives. All the primitives (+,-,/,etc) work natively on complex numbers so no special transformation is required.

    Some calibration methodologies are patented and can only be used after paying royalties to third parties, however those are not always necessary. BTW, are you doing a full 12-term 2 port calibration on the analyzer ports? I assume you are using some sort of switch matrix to automate the calibration and measurement process, right?

  10. I started looking for program examples of how best to represent multiport s-parameters and t-parameters in Labview and was surprised to find only the definitions in the NI dictionary. I expected to at least see some common 2-port s-parameter programs, but couldn't even find any of these. Is no one doing any of this, or maybe I'm just using outdated terminology?

    :headbang:

    5909[/snapback]

    Are you talking graph displays like Smith Plots? Look under the Graph palette.

    post-2-1125453522.gif?width=400

  11. I never noticed that option before. I always thought that you had to apply it to all items on the panel, except those that are locked.

    I noticed that some objects move with the window size, but don't scale with it. Is this done with a tricky combination of locks and scaling?

    5904[/snapback]

    Damn! my secret has been revealed. PJM, you know better than to reveal a magicians secrets. If you're told how the lady is cut in half, it's not so exciting.

    Yes, well, a few years ago and with lot's of experimentation time on my hands, I discovered the secret to cool panel behaviors. The Window Size settings in the VI properties that allow you to scale all objects as the window resizes is CRAP. Don't ever use that, you will only end up with distorted overlapping front panel controls everytime you resize your panel.

    The key to the fancy autosizing panel stuff is using the Scale Object with Panel option from the Edit menu. Actually this setting has been there since LV5.1 but few people ever use it. Perhaps because nobody ever explained its usage.

    post-2-1125448653.gif?width=400

    You can only use this setting for one object at a time. However this is enough for most situations. The key is to focus attention on one central object that is important to you. In the case of Commander, It's the multicolumn listbox. In your case it may be a text box or even more exciting: a picture control.

    You will notice that once it's enabled, the object will always size towards the bottom and to the right. This means you need to anchor your panel to the topleft origin. This can be easily done with a property node upon startup. This isn't critical but will make editing easier. Also, make sure to limit the minimum size of your panel. This will give you a stable size from where your panel can grow. When you edit the panel you should save it to this minimum size so all future edits start from this reference.

    post-2-1125449343.gif?width=400

    Once this basic setting is defined and you central resizable object is set, you can then go crazy with the surrounding buttons and other objects. The trick to using that is knowing how the scalable oobject affects its surroundings. The objects stretch and move along with the resizable object. Here's a video that shows how 3 buttons re-position themselves as the panel resizes, very annoying eh?

    You need to group all the buttons together but that is not enough. You must anchor them to the left or to the right of the resizable object by grouping them with a dummy object. This can be done with a decoration as shown in the video below (zipped for size):

    As you can see, this can now be a powerfull tool once you understand the behavior of the resizable object and how the surrounding objects relate to it. If you want to elaborate on the above technique you can group some objects to the left and some to the right depending on how you want things to move related to your central object. Another good idea is to lock your central resizable object to your panel because this will prevent it from sliding around.

  12. The one case bug with only "False".  :oops:

    5803[/snapback]

    It's interesting how this bug only appears when you delete the TRUE case. If you remove the FALSE case and leave only a TRUE then you get a broken VI which is the expected behavior.

  13. Thanks for your answer, this will work i am sure.

    My concern is if the data block is large (10 Mbyte onwards), that the overhead will be time consuming ?

    It's difficult to imagine what the data conversion is adding (my previous saving in Ascii format cost a lot time converting from double -> Ascii and from Ascii -> double in Matlab and i lost resolution)....?

    5873[/snapback]

    I don't see a lot of problem with overhead. Are you saving all the data at one time? Perhaps you want to change to saving line by line if using ASCII. The input to you VI can be variant, but the file save format can be something else. If you're saving as an ASCII then you will be limited to the resolution of the precision you picked in your format to string function. I would recommend using exponential notation in addition to high precision. This way you get the highest precision for the units you are using. Also, what is a MATLAB format?

  14. I do agree that an LV diagram is not automatically self documenting and that experience and style counts a lot. In my opinion, a diagram is much easier to grasp in a single look than a block of text (even one with indentation)

    5791[/snapback]

    Oh god, if only I could post the diagram of some code I had to review and evaluate lately. It made me want to take a hammer to my laptop (it's a very nice laptop, btw). The chaotic mess was burned into my retina. I had to watch Britney Spears videos for hours just to wipe away the images from my brain. I thought to myself, God almighty! Is it really possible that there are such bad LV programmers out there?

    Picture this... Suppose someone asked you to write LV program, and the only way you could pass data around was via the "value" property and using ctrl references. Now you get the picture.

    So when you say you can easily figure out LV code quicker than C code, think again. You'd be surprised.

  15. The right kind of man asks the right kind of questions :thumbup: 

    1) DAQ & GPIB mainly NI. Vector network analyzer, power meter and sweep synthesizers are mainly HP. Source meters & switch box mainly Keithly.

    2) Post processing imported from network analyzer or DAQ to further processed in PC, typical parameters in data sheet such as IP3, noise figure etc

    3) The most common task we encounter is device characterization and it covers broad spectrum of ICs. The test operators have minimum knowledge of everything, except push the button, or click the mouse to be exact.

    4) We have few software engineers in house and are strongly C & C++ oriented. I have 20 plus years in C programming and assembly language, in embedded system, test and measurement lately. Since I am also the hardware guy, if the load is too much to for me to handle, subcontract is also another option.

    My concern is this: ease in programming with relative low learning curve and the ability to adapt to 3rd party developer, especially in DSP areas and RF which have intensive mathlab applications. Consider our background, it's a natural tendency to lean toward LabWindows but Josep Travis's ATE implementation in Labview just piques my curiosity.

    5789[/snapback]

    Yes, this is good. Just to be blunt about it, I would recommend LabWindows. I've developed my own test executive to handle various RF measurements in LV and it wasn't easy. I only manged it because I had 10 years of LV and RF testing experience under my belt. BTW, RF formulas don't translate well to LV primitives. The nice thing though is that all the LV primitives work on complex numbers. They're polymorphic that way. I even managed to build a full 12-term 2port calibration routine in pure G.

    In any case, it sounds like C is your forte so stick with it. With LabWindows, you get the nice compatibility with the NI hardware, the many GPIB IVI drivers and the user interface tools which give you graphs and other instrumentation type goodies. Have you considered test-stand? It will help get you started on the test executive which you won't have to build from scratch.

    The only bad thing about going with LabWindows is we won't get to see you on the forums. :(

  16. Hi all,

    Sometimes I have this annoying bug concerning the scrollbars of elements. See attachment, the vertical scrollbar has a black line with what looks like arrow heads or something.

    I found this problem with all sorts of controls, tables, IMAQ-indicators and so on.

    Does anybody know how to fix this??

    Greetings,

    VDB

    post-397-1123499634.jpg?width=400

    5574[/snapback]

    Wow, this is one for the record books. Strange. Try turning video acceleration OFF in your video driver.

  17. Hi,

    I have the multiple Analog Output circuit as you can see in the picture. The strange thing about is that I have around every 2 sec a cpu usage of 99%. The paradoxically thing is that the system thread uses that and not labview. But as soon as I stop the vi the cpu usage is 0%. And that doesn't happen with other VI's running, so it seems to be a problem of my programming.

    But what's the problem ??

    I also tried other VI's with Analog Output. No problem.

    5571[/snapback]

    I don't really see the connection between the displayed code and the 99% CPU usage every 2 seconds. What else is happening in this VI? I notice you are using Matlab somewhere. Is it in this VI?

  18. Hello,

    I was wondering whether it is possible to allow the icon in the upper-right hand corner of LV to be displayed in windows prior to opening.  I already have an icon designed for my program and it would draw the user's attention much faster if it were visible prior to running.  Any help on this would be much appreciated.

    5580[/snapback]

    Why not just create a shortcut the VI you want the user to run? Shortcuts in Windows can be assigned any icon you wish. If you play with the basic icon defaults of ALL vi's in your system then this can get confusing since ALL VI's will show this new icon. Not a good thing to do. This is the primary use-case for shortcuts. To create custom icons for launching specific files.

×
×
  • Create New...

Important Information

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