Jump to content

Phillip Brooks

Members
  • Posts

    899
  • Joined

  • Last visited

  • Days Won

    50

Posts posted by Phillip Brooks

  1. THERE IS A MENTION OF AN ATTACHMENT OF EXAMPLE VI, Where is IT?

     

     

    A few years ago the forums experienced a database corruption and many of the attached files were lost or their links to specific posts were lost.

     

    An admin may still have some ability to search for this file, but its been a long time. I checked the OPs status and they haven't logged into LAVA in several years.

     

    :(

  2. Not sure if this is the right discussion, but here goes....

    I too spend lots of time correcting the wire bends, but I find my self scrolling alot to get at those bends. Is there a way to scale down the block diagram so I can move and resize things before I get to the weeds of 1px bends?

     

    If you use the "Clean up Block Diagram Feature", the default spacing can be excessive.

     

    Look under Tools -> Options... Block Diagram and scroll to the bottom of the pane and you can experiment with various types of spacing.

     

    There is an option to adjust spacing to reduce bends in wires; I forget if it defaults to OFF or ON.

     

    If you're scrolling more than one screen up/down or left/right then you may want to consider a state machine or sub-vis.

  3. I remember using a VI Analyzer plug-in years ago to validate my driver. I'm not sure if that is now included with VI Analyzer or maybe its in the Driver Design Studio.

     

    The first thing an NI employee would likely do after receiving a driver for validation would be to test it against the requirements above using VI Analyzer.

     

    No sense submitting a driver for certification if it can't pass the automated test...

  4. LV2011 is not listed as supported with Windows 8.

     

    I know that doesn't mean the code won't run, but the behavior sounds similar to a problem I saw when trying to run LV 8.6 on Windows 7.

     

    Specifically, I had UI code that responded to various events that worked fine under XP, but locked up my app under Windows 7. I think one of the events was "Application Instance Close?"

     

    This specific event might be used as an exploit by some viruses to force the close of antivirus software. Windows changes the interface and your 'unsupported' version of LabVIEW fails the OS call.

  5. You might also want to consider a license server. It seems that you have more licenses and stations than programmers. With a name based licensing setup, you could load LabVIEW on all potential test stations and program anywhere. If you have test equipment that you need to interface to, access to a locally installed LV instance is much easier than using a remote desktop to your dev machine and Remote VISA back to the machine you are working from.

     

    The only limitation is that you can't be logged into multiple LabVIEW instances as the same user name simultaneously.

     

    In an R&D or continuous manufacturing environment, you might need to make an update to a test in situ. That may be why you have local licenses installed. With network licensing, you could log into the network, load LabVIEW, open your source code from a network location (source control assumed), make the change, compile and build. Install the new build, test and leave the station running the newly updated EXE.

     

    If your test stations are "off the network" then you've got other problems...

     

    Just checked the NI site and it looks like LV2011 does not support Windows 8. Windows 7 for business will be supported for a while, but if your company upgrades to Windows 8.x or Windows 10, you might not be able to run your LV programs reliably....

  6. Hi Barlaw,

     

    it is possible in LabVIEW and you do not have to use OO (LabVIEW is not really good at OO). The keyword here is asynchronously calling VIs. It does exactly what you do in your JAVA example:

    • You create a worker class (a LabVIEW VI that does the actual work, e.g. calculations).
    • You start one or more instances of this worker-VI from you main VI (or even from the worker VI itself).

    I use this technology to let my users choose, how many heavy-duty-threads a program should start: only one if they are actively using their computer or up to 8 if they run the program during their lunch break or a meeting and they don't need the computer.

     

    In your JAVA-example, you use the call-and-forget strategy, e.g. the workers do not return anything. In LabVIEW you can also use the call-and-collect strategy. Here every worker returns values that you can receive via the wait-on-asynchronous-call node. This node can be placed anywhere in your program, it does not have to be in the VI that started the worker-VI.

     

    Regards,

     

    Sebastian

     

    I guess I was stuck in 8.6 for so long that I never learned this. Thanks!  :worshippy:

  7. I'm rewriting a test for a family of products that include multiple 10/100/1000-T Ethernet interfaces (2 or 5) built into our system's main board.

     

    The existing test code uses CLI commands to query the operational state, speed and duplex state of the interfaces.

     

    It turns out that the various standard linux style commands don't really return the state of the interfaces; they always appear as UP and 1000 and full. No one performed negative test cases or combinational testing to see if the auto-negotiation was working.  :o

     

    There is a second 'ping' test where the Ethernet ports are assigned IP addresses and a second NIC in the test station is connected to a hub that is in turn powered on and off to see if the ports pass traffic. A bit cludgy, but that seems to work.

     

    I found I can use a REST interface on the UUT to query the current state of the interface, but I need programmatically configurable source ports to 'wiggle' the inputs.

     

    I found this TP-LINK TL-SG3216 managed switch that includes a CLI that can be accessed via telnet, but I am a bit concerned about the long term reliability and repeatability of a consumer grade device being used as test equipment.

     

    I'll be testing a worst case of 50 UUTs a day, and would expect this to be in place for a few years. I'll have between 4 and 8 stations in various locations.

     

    Anyone have any experience with Ethernet interface testing that they would like to share?

  8. My new job has me starting from scratch DB wise. I worked with a homegrown schema for many years, but it doesn't match my needs here and I want to make this supportable log term (next poor soul), so I was thinking of using the out-of-box schema with MySQL.

     

    I've got MyQL 5.1 and TS 2010 installed; the TS 2010 MySQL implementation uses INSERT statements which lack my one pet peeve, a timestamp data type. I think this may be because MySQL at the time 2010 was developed only had a date-time data type.

     

    Does anyone know if a newer version of TestStand includes support for a timestamp data type with the MySQL template?

     

    post-949-0-08719300-1409245816_thumb.jpg

  9. Is there any SSH love added to 2014? The Internet Toolkit went unsupported last year and it's been 4 years of waiting for native SSH.

     

    Something I can actually use would be far better than a new icon or bundling the Report Generation Toolkit ( that my boss just purchased two weeks ago and is now part of Pro; thanks sales rep; we'll have to remember that when SSP renewal comes around ).

    • Like 1
  10. Just be careful with this vi, because it doesn't have an error out.

    If you're passing it an invalid file path or it can't write to the file for some reason, it will pop up an error message blocking everything else, unless you've got automatic error handling disabled, in which case you will never know that things go wrong until you can't find the files.

     

    This is why I sometimes prefer to use a combination of "Array to Spreadsheet String" and "Write to Text File", which allows you to handle the errors.

     

     

    The Robust CSV package from the Code Repository includes error handling and can handle strings containing commas and cr/lf

     

    http://lavag.org/files/file/239-robust-csv/

     

    Finally, something that can manage crlf:P

  11. If you changed that VI, and restarted LabVIEW, and the behavior of the dialog didn't change, then I would say that that VI isn't part of the low level dialog that you see in that control.  That dialog that you see could be buried in the LabVIEW.exe file and there might be no way to edit it.

     

    I couldn't change the original NI dialog back in 2011 (just my own copy). See this Idea Exchange discussion:

     

    http://forums.ni.com/t5/LabVIEW-Idea-Exchange/Calendar-control-that-does-not-block-the-GUI/idc-p/1419606

×
×
  • Create New...

Important Information

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