LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

ActiveX creatable objects

Jared,

The issue that I believe that you are having is that the Run-Time Engine (RTE).  The LabVIEW 7.1 RTE is only compatible on Windows operating systems XP/NT/2000, so an application built with LabVIEW with this version of LabVIEW will only run on those machines.  If you have access to LabVIEW 7.0 you should be able to build an EXE for Windows 98 and previous.  LabVIEW 6.1 goes all the way back to Windows 95.  Do you have access to any previous versions of LabVIEW that you could use to build you application?

Hope this helps!
Andy F.
-----------------------------------------------------------------
National Instruments
0 Kudos
Message 11 of 19
(1,590 Views)

Hi Andy

The target macnine is Windows 2000, and my development machine is WinXP.

The first build I tried prompted the RTE to be installed. I installed 7.1 from the cd. Still did not work. I looked up my machine and discovered that my DAQPAD disc must have upgraded it, so I downloaded v8 from ni.com and installed that on the target machine. No joy. I then ticked all the RTE boxes for the installer/builder and ran it again. Upon trying to install it again, I again discovered it didnt work successfully.

However the app appears and looks like it is running, yet the file values are not getting displayed on the limit test (I checked it was there and being actively created). Is there something I need to do to build in an express vi??

Rgds

Jared "ever puzzled"

 

 

0 Kudos
Message 12 of 19
(1,587 Views)
Jared,

Are the EXEs that you are working with on a remote machine?  Does any of this work on the development machine?  Just to make sure we are on the same page, you are able to build an EXE out of a VI that you created that contains an express VI.  Once you have built that VI you then deploy that EXE to a computer, where everything runs but you aren't returning the correct values.  Is that correct?  I might suggest testing to see if it is the Express VI that is causing the problems by including it in a separate VI and using a data set that you know will give correct results.  Does that still not work as an EXE.  If so, if you could post that VI then I could take a look at it. 

Let me know!
Andy F.
-----------------------------------------------------------------
National Instruments
0 Kudos
Message 13 of 19
(1,579 Views)
Hi Andy,
 
The exe files work on development machine (XP) and with the build and installer seem to work on any machine that has XP on it (I tried 3 XP machines - all work fine; tried one Win2K machine - 100% failure).
 
I couldnt find any more options in the build dialog that I hadnt tried so I installed Labview on the win2k machine. I tried to run the vi from within Labview and was getting 488 (GPIB) error messages and execution was having a fit with the file access stuff.
I was scratching my head as to what the **** GPIB had to do with file access, when I remembered that I had also installed the drivers (from the two cds) and the DAQmx stuff. When I had installed the drivers and the DAQmx stuff (to mirror my development machine) the vi was able to run under the development environment. I then created a build from this on the win2k machine.
 
I am in the process of removing Labview from the win2k laptop (so I dont breach any licensing laws too badly) and once this is done I will install the vi/exe/app again to see if this solves the problem.
 
So to summarise your questions -
 
Are the EXEs that you are working with on a remote machine?
    Remote insofar as not networked, not the development machine and sitting on another desk...
 
Does any of this work on the development machine? 
    Yes. Works fine.
 
...you are able to build an EXE out of a VI that you created that contains an express VI.  Once you have built that VI you then deploy that EXE to a computer, where everything runs but you aren't returning the correct values.  Is that correct?
    Yes, it doesnt display anything on the Limit Testing waveform graph (from tested signals node) or any subsequent parts in the app/vi.
 
If so, if you could post that VI then I could take a look at it. 
    I might just do that... will keep you posted on the success/failure of the latest rounds...
 
Jared
0 Kudos
Message 14 of 19
(1,572 Views)
Jared,

Certainly keep me updated on the progress of this issue.  I don't have any reason why it would not work on a Windows 2000 machine.  To comment a little on the GPIB/file IO issues, they share some error codes so sometimes the errors can be a bit cryptic.  Please let me know if you make any progress!

Andy F.
-----------------------------------------------------------------
National Instruments
0 Kudos
Message 15 of 19
(1,563 Views)

Hi,

I have managed to get the communications over USB working - sort of. Allow me to explain. 

I request a waveform databurst from our system. Our device then packages up the data and sends it in 64byte packets. The 512 bytes of actual data is split across multiple packets and each time the device sends USB data it generates an OnRead event from the OCX. The OnRead RegEventCallback and VI then runs sending the data out to the user parameter of the callback block.

Unfortunately my initial "its working" thought was proved wrong. I tried doing the reconstruction of the 512bytes of data from the packets inside the OnRead Event VI however this is not getting done fast enough and the various parts are being updated in a random way. Basically a synchronisation problem.

I need a buffer to store the sequence of packets the device sends following a request, and then extract the packaging info and reconstruct the data. Can Queue's be used to do this? Create a queue in the main VI, then in the OnRead event VI, just fill the queue, and read the lot out back in the main?

How do you do this??

 

 

0 Kudos
Message 16 of 19
(1,480 Views)
Hello,
 
You could use a queue to do this - basically you would (in LabVIEW)
 
1. Use the Obtain Queue function to "define the queue" - the datatype you wire here should be the datatype of the data you'd like to store
2. Use Enqueue and Dequeue function to insert and take out elements respectively
3. At the end of your program, use the Release Queue function.
 
On the other hand, you could just use the initialize array function to define a "buffer" and fill it in as you go using the replace array subset function. You would just have to keep track of the "current index" in your array, so you know where to write the next data point you want to store.
 
Best Regards,
 
JLS 
Best,
JLS
Sixclear
0 Kudos
Message 17 of 19
(1,466 Views)
Hi JLS,
 
Thanks for your suggestions.
 
I tried the queue method, however I could not get it to work, probably because I am not that good with Labview yet, and I couldnt figure out the 'queue id' passing between vis. I also tried the array method initially which sort of works but just isnt fast enough.
 
The request for the package goes out, then (in quick succession) the reply events and packets come back in. I tried to do all the reconstruction in the event handler, however the interval between events is not long enough. So I am just trying to get each of the messages stored so I can then pass it into the main routine for decomposition and reconstruction. The packet header contains various information about where the packet sits in the package.
 
i.e. request : packet1 (64bytes) saved at array row 0, packet2 (64bytes) saved at array row 1, etc. : pass the 2D array back to the main and do the header stripping and reconstruction. Yeah, I know, a queue...
 
But how?
 
 
 
 
0 Kudos
Message 18 of 19
(1,453 Views)

You can find lots of good examples for how to use queues if you go into the example finder (Help->Find Examples) and then search for "queues".

Justin D

0 Kudos
Message 19 of 19
(1,434 Views)