Using Labview VIs without runtime

Hi all,
here we have a quite heavy Labview 2012 application. It consists of several dozens of VIs. One of them is a firmware updater for devices we produce.
The task is to create a standalone firmware updater which shouldn't rely on an installed Labview runtime. So our idea was to create a DLL from this VI which provides the corresponding functions. Then these DLL functions may be called from another application.
The problem is that the produced DLLs rely on an installed Labview runtime. Is there any other way to access VIs (or Labview functions in general) without a dependency on the runtime? I mean besides using Cameyo.

ABachmann wrote:
The problem is that it isn't possible to download a 200+ MB runtime everywhere around the world. If a farmer in the Australian bush only has a 19k modem connection, it is hardly a solution to have him download the hundreds of MB for the runtime for a small updater which is only some hundred KB of size. This is a real world scenario, we had this.
So we had the idea to create a DLL of some VIs and put around some glue code. This would be the fastest solution. But without a way to do this, we have to reimplement these VIs in another language. It is like reinventing the wheel.
I understand your problems but other languages will require specific libraries to exist on the system in order to run. They will be no different in that regard. They may benefit from using the libraries that are included with the OS installation but they are still using those items and if not there, such as the DotNET example listed above they will need to be downloaded as well. NI has made some improvements in LV 2011 that can trim back some of the RTE elements that get installed. As suggested though you can always create two installers. The RTE does not need to be included once they are already on the system.
Mark Yedinak
"Does anyone know where the love of God goes when the waves turn the minutes to hours?"
Wreck of the Edmund Fitzgerald - Gordon Lightfoot

Similar Messages

  • How to read and write data from Excel to TestStand without using LabVIEW VIs

    Hi,
    How can I read in columns of data from Excel into a TestStand array and write columns of data to Excel from TestStand without using LabVIEW VIs?
    I don't think the Property Loader custom step type in TestStand will work because the data I would like to read in from Excel is in a column that is thousands of rows long and the data has to be in the proper format to use the Property Loader to load in an array from Excel.
    Thanks for your help.

    That example does not use LabVIEW and it does about 40% of what you need to do by calling Excel through ActiveX. If you don't know how to use Excel through ActiveX then you'll need to brush up on that.
    http://www.microsoft.com/en-us/download/details.aspx?id=16250
    http://support.microsoft.com/kb/141759
    http://support.microsoft.com/kb/302084
    CTA, CLA, MTFBWY

  • Communicating USB using Labview VISA

    I have a USB RAW device that I am trying to communicate with using labview VISA. I have had success with setting up the driver and I am able to get information from the device such as serial number, etc. When I try to use the VISA read and write commands, I have no success getting the information I want. The commands are simple: R SP<CR><LF> is a read set point command. The only thing I do get back for every command I try, is a 2 byte message "01 60"hex.
    If you have any suggestions, I would appreciate it, thanks!
    [email protected]

    Hello Chris, I do not receive any errors and yes, I am including the termination characters in the string.
    Here is what I get when I use a USB port monitor when I send out this string.
    Thanks!!
    [94] URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER (SUCCESS/0x00000000) 20101119150318.131 (+0)
    Pipe handle: 0x87696D6C
    Transfer flags: 0x00000002 (USBD_SHORT_TRANSFER_OUT, USBD_SHORT_TRANSFER_OK)
    Transfer buffer MDL: 0x88C47208
    Transfer buffer length: 6
    Bytes transferred
    0x0000: 52 20 53 50 0D 0A (R SP.. )
    [94] URB_FUNCTION_BULK_OR_INTERRUPT_TRANSFER (SUCCESS/0x00000000) 20101119150318.147 (+16)
    IRP status: 0x00000000 (STATUS_SUCCESS)
    Pipe handle: 0x87696D6C
    Transfer flags: 0x00000002 (USBD_SHORT_TRANSFER_OUT, USBD_SHORT_TRANSFER_OK)
    Transfer buffer MDL: 0x88C47208

  • Logging data in a file using Labview VIs vs. Mathscript functions.

    Hello,
     I'm working on a data logger at 200 Hz frequency. I wanted to log the data to a file after eace sample received. When I used (fopen,fprintf,....) on Mathscript, the Labview started to log the data at a slower rate. I then used the Labview file VIs and it is working fine up till now.
    My questions are as follows:
    1- Are the file functions in the Mathscript slower than the Labview VIs ?
    2- Is saving the data to a file after each sample is received a good idea or is there a better idea ? I just don't want to keep the data in the memory and after all the data is logged, I flush them to a file ... because, it seems that the PC will run out of memory.
    Thank you,
     Walid

    wfarid wrote:
    Hello,
     I'm working on a data logger at 200 Hz frequency. I wanted to log the data to a file after eace sample received. When I used (fopen,fprintf,....) on Mathscript, the Labview started to log the data at a slower rate. I then used the Labview file VIs and it is working fine up till now.
    My questions are as follows:
    1- Are the file functions in the Mathscript slower than the Labview VIs ?
    Yes. That's because you're going through another layer of software. Why were you trying to use MathScript to log data to file in the first place? Are you a Matlab "aficionado"? 
    2- Is saving the data to a file after each sample is received a good idea or is there a better idea ? I just don't want to keep the data in the memory and after all the data is logged, I flush them to a file ... because, it seems that the PC will run out of memory.
    It doesn't make sense to save data after each sample. File I/O is an expensive operation in terms of time, and you have the operating system to deal with, so while you may be able to keep up the rate for some time, eventually it will be thrown off. You can do as suggested which is to wait until you have a certain amount and then write that to file, or you can set up a producer-consumer or master-slave architecture. Let one process/loop collect the data and put into a buffer, like a queue, and the other process/loop can stream it to disk at a more reasonable rate. You just have to make sure the buffer is large enough so that if the file I/O gets hung up you won't reach the buffer's limit.

  • I can not open Excel (97, 2000, or 2003) spreadshee​t in Win98 OS PC using LabVIEW 7.0 Runtime Engine

    Hi,
    I have a problem opening an Excel spreadsheet by a LabVIEW application that is using Runtime Engine 7.0 in a Windows 98 OS environment .
    I tried LabVIEW 7.1, it will not install on Win98. Meanwhile, I installed  Excel 97 and 2000 (Excel 2003 does not install on Win98) and tried to open the spreadsheet, no luck with any combination.
    Same code can open the spreadsheet in a WinXP OS, RTE 7.0, Excel 2000/2003 environment.
    What can I do? Any advise?
    Regards,
    LVLV

    Hi,
    I did some experiment, I found out that Run-Time Engine 7.0 running executable generated at LabVIEW 7.0 environment (code written in LabVIEW 7.1 but save as 7.0) cannot open Excel 2000 files. If I replace Excel 2000 with Excel 2003 application on my pc, the executable code will open the Excel file (Run-Time Engine 7.0 works with Excel 2003).
    Is the Excel 2003 and higher versions will only work with Run-Time Engine 7.0 and higher code?
    How can I make executables using Run-Time Engine 7.0 work with Excel 2000 (Windows 98 operating system)??? (I cannot change Excel and Run-Time Engine and OS versions due to limitations, how can I work with what I have?).
    Thanks for your help.
    Regards,
    LVLV

  • Using Labview VI as a Matlab function.

    Hi,
    I'm trying to use Labview VIs in a Matlab script. The VI should act as a function with input and output arguments. Tried to compile the VI to a .DLL file, however was unable to read the file using Matlab.
    Any advise?

    What errors did you get? Can you access the DLL from some other application that uses DLLs (i.e. Excel)? Try creating a very simple DLL that just adds two numbers together, does that work?
    Mike...
    Certified Professional Instructor
    Certified LabVIEW Architect
    LabVIEW Champion
    "... after all, He's not a tame lion..."
    Be thinking ahead and mark your dance card for NI Week 2015 now: TS 6139 - Object Oriented First Steps

  • Testing of IC's in a PCB using LabVIEW

    There is a PCB with a lot of IC's. The IC's are mainly buffers,SRAM,PROM, ASIC's, CPLD's and FPGA. None of them are JTAG compatible i.e. no TDI/O pins available. However only one CPLD is JTAG compatible. Is there a way through which I can test the functinality of these IC's using LabVIEW?
    Without the JTAG interface, do I have any other medium through which my VI's can communicate with these memory IC's?
    one more thing is that I cannot remove any of the IC's from the PCB, they have to be tested while they are present in the board itself.

    sumukh wrote:
    There is a PCB with a lot of IC's. The IC's are mainly buffers,SRAM,PROM, ASIC's, CPLD's and FPGA. None of them are JTAG compatible i.e. no TDI/O pins available. However only one CPLD is JTAG compatible. Is there a way through which I can test the functinality of these IC's using LabVIEW?--Yes
    Without the JTAG interface, do I have any other medium through which my VI's can communicate with these memory IC's?  Not directly, of course.  You need to find out how you can communictae to the card.  Is it BDM, serial, USB, Ethernet, PCI, whaterver interface that allows to program PLD's, FLASH memory and can interface to the outside world.  LabVIEW can communicate with all that.  It may require additional hardware (BDM, JTAG, adapters).
    one more thing is that I cannot remove any of the IC's from the PCB, they have to be tested while they are present in the board itself. Of course.. That is usually how they are tested once they are integrated into the board (system)
    It sounds like this is the first time you do this.
    You need help beyond LabVIEW if that is the case.
    You first need to identify how you can interface to the board.  That step is required regardless of what language youuse to develop test software.  The ahrdware designers should be able to help you with that.

  • Creating LabVIEW module adapter TestStand Steps using the API without loading module prototype???

    Is it possible to programatically create a TestStand step (using the API), that calls a LabVIEW module, without loading the prototype of the module to get a reference to the Module Parameters.
    I want to specify a VI Pathname, but I dont want to use that pathname to load the prototype.  I want to programatically specify the name, type, representation etc. of each of the controls and indicators.
    My reason for attempting this is that I only want the VIs called by the steps to exist on the target hardware not on the numerous development machines running my application.
    Any thoughts greatly appreciated.
    Steve  
    https://decibel.ni.com/content/blogs/DailyCLAD

    Hi Steve,
    Unfortunatly it is not possible to do what you want within Test Stand but I am not sure why it is necessary, I think I am understanding your application incorrectly.  The only time you will need to load the prototype is if you are creating the step but if you are creating the step you will need the VI that the step calls so that VI will need to be present on the system.  If you are not calling the step then you shouldn't need to load the VI prototype.  If this is how you program funtions it may be a problem with your architecture but if not please could you correct my misunderstanding so that I can go about finding a suitable solution.
    Regards,
    Tom
    Applications Engineer
    National Instruments UK & Ireland

  • Deploy simple Labview applications without installing the Labview runtime?

    [Labview 8.21 - Windows XP]
    Hello and a happy new year to all !
    I have coded very simple Labview applications that basically read text files (exported from Ms Excel), make some string operations, array sorting and at the end write another text file that is then imported in Ms Access. Now I would like other people from the School parents association to use this application on their own PC but ideally without having to install the Labview run-time;  for various reasons one of them being that they are not administrator of their PC, another reason being that I feel bad to ask them to install 100Mb of programs on their PC to execute my <1Mb applications. All that I can assume is that they have Excel and Access installed on their PC.
    I have read some postings on the Forum and in the Knowledge base from which I understand that the only way to use my application without the Labview runtime is to build a shared library that maybe I could then link via a VBA code from inside Excel or Access. But I cannot find any usable example on how to do that practically. And maybe it is not possible. 
    What is the easiest way to run such very simple Labview compiled applications on a PC that does not have Labview installed? Is Labview not at all built for such use?
    Thanks a lot for your help and ideas.
    Christophe

    You will need to have the runtime installed. There is a lot of other languages that also have the need for there own runtime, but they are commonly installed with the OS, so you don't realize it. Just building a dll won't solve this.
    There might be a hack possible, though. People have managed to strip down the required installation and been able to deploy the required parts of the runtime only. If you want to go this way, search on LAVA. But I'm not sure if it works with LV 8.20, and you will need to invest some time to figure out the minimum requirements. But be aware that it is a hack, so it's on your own risk.
    Felix
    www.aescusoft.de
    My latest community nugget on producer/consumer design
    My current blog: A journey through uml

  • How do I create Labview VISA ports for *individual* GPIB instruments using Prologix USB GPIB controller?

    Hello,
    I'm trying to use a Prologix USB GPIB controller to control GPIB
    instruments, and I would like to have a virtual serial (VISA) port for
    *each instrument*, as is the case with a normal GPIB controller with a
    standard NI driver. However this is not what the Prologix driver
    provides -- it provides a single VISA virtual serial port for the
    entire controller. To address the instrument with GPIB address 11,
    you first send "++addr 11" to the serial port, and then you're talking
    to instrument 11. However, this means I have to change all old
    Labview programs.
    Is it possible to create a "wrapper" function of some kind that will
    define a virtual serial (VISA) port for each *instrument* on the
    controller? For example, to talk to GPIB instrument 11, call it
    ASRL3::11::INSTR, each time it is written to it would have to write to
    the virtual serial port of the controller, say ASRL3::INSTR, first "+
    +addr 11" and then the command that is sent to it.
    A clearer explanation of the difference (i.e. incompatibility), and of
    my objective:
    1) A normal GPIB controller with NI driver: I go to the NI
    Measurement & Instrumentation Panel, under GPIB, and Scan for
    Instruments; all the live instruments show up; subsequently when I
    want to use Labview programs that use VISA ports, the VISA drop boxes
    allow me to choose a different port for each instrument, e.g.
    "GPIB0::11::INSTR", "GPIB0::12::INSTR" would be instruments at
    addresses GPIB 11 and GPIB 12.
    2) The Prologix GPIB controller that plugs into a USB port: In
    Labview you get a *single* VISA virtual serial port, ASRL3::INSTR, for
    the entire GPIB0 controller. Therefore to address GPIB instrument 11,
    you write "++addr 11" to the virtual serial port ASRL3::INSTR, and
    then you are communicating with device 11, so you can write and read
    ASRL3::INSTR to talk to that device. Then to talk to device GPIB 12,
    you write "++addr 12" to the same VISA port, and then you are talking
    to that device. The problem is that this requires recoding all
    Labview code, whereas I would like to be able to use the same program
    either with a normal or with a Prologix GPIB controller. Therefore, I
    would like to create code that scans the controller for all GPIB
    attached devices and creates VISA ports for all. Such ports, when
    written to, would have to first write "++addr DEVICENUM" to
    ASRL3::INSTR (i.e. the port of the GPIB-USB controller) where
    DEVICENUM is the GPIB address of the instrument corresponding to that
    port, and then would have to do a write or read or whatever function
    is being done on that instrument VISA port.
    I haven't figured out if it is possible to do this easily. Help and
    pointers on where to look for hints would be much appreciated. Many
    thanks!
    Milos

    My first impression is that if you don't want to make any changes at all to existing programs is that the wrapper you need is one around VISA. You would need to intercept all of the calls into the NI VISA driver. If you create your own visa32.dll and in there, change the addressing and then call the real VISA driver, you might (repeat, might) get something to work. If this would even work, you still might find that you have to make significant changes anyway. The serial connection is going to be considerably slower, and interface specific functions such as service request handling, bus triggering of multiple instruments, etc., would be difficult to impossible. This would be a lot of work, imho, to just save a couple of hundred dollars over a real GPIB controller. I've seen this Prologix device before and have even used NI's RS-232->GPIB controller. The Prologix intended use to me seems to me more for a hobbyist or very casual user. Of course, I'm used to having multiple GPIB instruments worth 10s/100s of thousands of dollars and the cost of an fully compliant GPIB controller is just lost in the noise.

  • How can i create an apple id without using a visa or credit card

    how can i create an apple id without using a visa or credit card

    Follow the directions here, EXACTLY:
    http://support.apple.com/kb/ht2534

  • What is the best way to organize LabVIEW VIs to be used with TestStand?

    I'm using LabVIEW 8.6 with TestStand 4.1.1 and I'm trying to organize the VIs to later deploy them to a production PC. So, I organized them into a LV project and built a LLB with the "Source Distribution Tool". (Destination type: LLB)
    Some VIs in the LLB use the "Call Library Function" (user32.dll) to simulate keyboard events. But, when any of these VIs is called from TS, LabVIEW is suddenly terminated. When these same VIs are not in the LLB and are called from TS they do not have any problem.
    Is the LLB the best way to organize VIs to be used with TestStand? If so, What could I be doing wrong?
    I appreciate your help.
    H.P.
    Mfg. Test Engineer
    Certified LabVIEW Associate Developer
    Attachments:
    LabVIEW Problem.JPG ‏28 KB

    Hi Ray,
    I really appreciate your intention to help, but I believe I solved the problem already. However I still have some questions.
    The problem was that when I built the LLB the configuration of the "Call Library Function" changed. When the LLB is built it is also created a Support Directory named "data" that contains some dependencies including a new copy of the user32.dll. The "Library name or path" field in the "Call Library Function" changed to be linked to a new Dependency Path. ( ...\data\user32.dll.)
    What I did was select "Specify path on diagram" and create a path-constant ("C:\WINDOWS\system32\user32.dll"), so the "Call Library Function" will be always linked to the original user32.dll.
    I still don't know why the "Call Library Function doesn't work with the user32.dll copy in the New Dependency Path. And I'm not sure if the LLB is the best way to organize VIs to be used with TestStand.
    Do you know why?
    Thank you,
    H.P.
    Mfg. Test Engineer
    Certified LabVIEW Associate Developer

  • Using HTTPS and SSH from LabVIEW VIs

    I am currently using custom VIs, built over the TCP/IP LabVIEW VIs, to access to a distant machine with the TELNET protocol, and to access a HTTP server with the HTTP protocol.
    In a near future, I will have to use more secure protocols such as SSH and HTTPS, that my VIs will no longer support.
    Does the NI Internet toolkit support SSH and HTTPS?
    And if it doesn't, what are the solutions?
    Using PuTTY with a command line for SSH is suggested by NI and I have already tested this successfully.
    Have someone other solutions and an idea for using HTTPS?
    I'm currently using LV 6.1.

    Hello,
    You could find other solutions on this forum thread : http://forums.ni.com/ni/board/message?board.id=170​&message.id=77865&requireLogin=False
    Regards,
    Isabelle
    Ingénieur d'applications
    National Instruments France

  • Using sound VIs in labview 7.0 professional development suite

    hello all
           i hav a built a VI that aquires a thermocouple signal through my daq card....i intend to use sound VIs whenever my temp.exceeds set point..in short sound should b generated whenever temp.exceeds certain limit...... i hav used a "Beep" VI in my code....but no beep occured even if my temp.crossed set point.....is there any other platform required for using sound VIs??....i work on labview 7.0 professional development suite.
    best regards
    Solved!
    Go to Solution.

    hello
           after i posted this msg i heard a beep sound on my  pc speakers by placing only beep vi on block dig...and also with my code running properly.( that when my set point exceeded beep started ringing)......but after that i tried experimenting on many sound VIs.....n now when i place beep vi seperately on a block diagram it is not giving audio signal....same is happening with my code also....i cant here sound.....after successfully hearing  beep sound on my pc speakers now wat suddenly happened with it??......would it b due to opening and closing many sound vis at a time??....like it happens in case of DAQ devices..that wen v use traditional daq devices n try using DAQmx devices after that they don't run unless v reset our traditional daq drivers.....so is it possible in case of sound vis also?...atleast a separate beep vi should run giving sound on speakers if i assume my code is wrong...
    best regards

  • Using LabJack VIs in LabVIEW

    Hi, I'm using LabVIEW with a third party DAQ card, the LabJack U12. I know that its drivers are supported by LabVIEW, but I can't figure out how to add the LabJack VIs to the library. when I added the includes VIs into the user library, then ran LabVIEW, the user library was filled with blocks with question marks in them. Any suggestions on how to fix this?

    You may have to copy the LabJack library file (the folder where that is located) to the addons folder (directory) so the path in Windows Explorer would look like: vi.lib\addons\LabJack. With a new folder containing the LJ library files. I think this is something I had to do on atleast one of the computers I use.
    Or you can ask the LJ support at: [email protected] Or you can post in the LV section of their forum on their website, I'm sure they or someone would be able to help you there as well. It probably wouldn't be a bad idea to e-mail them anyway, they have great tech support.Message Edited by MAH2681 on 03-31-2005 04:54 PM
    Using Labview 7.0 and 2010 SP1 with Windows XP and 7.

Maybe you are looking for

  • How to enable note names in piano roll in Logic Pro X?

    Hello, I am trying to understand how to enable the note names in the piano roll editor, according to some posts it should works creating a mapped instrument, I follow up each step but for me this solution does not work. Basically I have created a sof

  • Upgraded to snow leopard and my protools LE 7.1.1 wont open, quits unexpect

    This is the report. Any suggestions? Process: Pro Tools LE [199] Path: /Applications/Digidesign/Pro Tools/Pro Tools LE.app/Contents/MacOS/Pro Tools LE Identifier: com.digidesign.ProToolsLE Version: 7.1.1cs2 (7.1.1f90) Code Type: X86 (Native) Parent P

  • Need Help with Contact Book to Mysql in Flash

    Hi... this is a lil over my head. If you go to www.rampagesoundstudios.com and click on the contacts tab, there is a guestbook. I am not that experienced in flash to get this to work with the mysql databases on the webserver. What I need to have done

  • IMac i3 Shutting Down Unexpectadley

    I have a new iMac 3.2Ghz i3 machine. Love it. It worked well, but as soon as I increased the RAM ot 16Gb it inadvertently shuts down. Its just goes black and everything is off. Is anyone else having this problem. There is no one application that is c

  • Put certain elements of an arraylist of arrays into a hashset

    I have an arraylist of arrays. I now need to create a separate list that contains unique combinations of only 3 values contained in the underlying array in the arraylist. I think I can use a HashSet. I am just not sure how to create the HashSet? I co