LabVIEW

cancel
Showing results for 
Search instead for 
Did you mean: 

Application file does not run on user-end system

Dear Friends,
                      I just finished preparing a DAQ VI for measuring reed switch parameters and tested it many times on my system with Labview 8.5 prof edition and DAQmx8.6.1. The program runs excellently on my system. Now when I build the application(.exe file) and try to test it on a fresh system without Labview, my program is not running and the "Active" yellow LED on my USB 6221 keeps on blinking every 3 Seconds. I have no error message displayed because I have not done anything exclusively to show error messages. I have installed only DAQmx8.5 and Labview runtime engine on that system. I herewith attach my VI. Please guide me through in overcoming this problem and also brief me on how to display error message on the front panel to the user during runtime.
0 Kudos
Message 1 of 18
(3,524 Views)

Hi JPrakash,

i don´t understand the error loop in your vi, because the program run only once. I think you should clean up your code. I start it for you and attach an example of it. I hope it helps you.

Mike



Message Edited by MikeS81 on 01-25-2008 06:05 AM
0 Kudos
Message 2 of 18
(3,518 Views)

Hi again,

do you create the used tasks on the new blanc target system? You have to create them (DAQD, DAQW, DAQR), because in your vi there no function which do that.

Mike

0 Kudos
Message 3 of 18
(3,511 Views)
            Thank you very much Mike. Do you mean to say that I must exclusively include "Create DAQmx channel subVI" wherever I use the DAQmx Read/Write ? The problem I faced was that when I used subVIs, the program execution slowed down considerably.
             One more thing is that when I go on to test the working without creating the tasks in that system, I find it working sometimes and not working sometimes. I would like to know if the technique of using task constant as I had posted, is wrong or should it be modified in any way. The reason is that since I have used the most of the DAQmx subVIs in repetitive loops, the execution time gets increased too much. That's why I was particular in using the constants. Please explain.

Thanks,

Jprakash
0 Kudos
Message 4 of 18
(3,480 Views)

Hi JPrakash

as far as i know you have to create a task with channels if you want to read and write data. You can create them in MAX or in your program. If you do it in your program, you should avoid create the task in a loop. Just crate the task, then read and write your values and if your are ready you destroy your task.

Mike

0 Kudos
Message 5 of 18
(3,475 Views)
        Thanks again mike. I removed creation from within my loops as you advised.
       
        My point is that I want to program, build the exe file and ship it to the client through a CD or so. the client will install the DAQmx and LV runtime engine on his machine and run my exe file straight-away. There is no possibility of expecting him to create channels or tasks in MAX on his end. Hence I have to create them strictly in the program. Now, should I use whether 'create channel' or 'create task' ? Which one is more liable and easier in my case ?
      
        The reason for my asking this doubt is that to create a task at runtime, I need to give a global virtual channel input which would not be available in my case (because I have no access to the client's MAX channel creation). Please advise.

Many thanks in advance.
0 Kudos
Message 6 of 18
(3,445 Views)
Hi JPrakash,
 
As far as i know you need a task for a channel or a group of channels. So in your situation you need one task to read data and one to write. Both tasks have one channel. before creating the tasks and the channels a think you should check the available hardware. I create an example for you. Please see the attachment. Hope it helps you
 
Mike


Message Edited by MikeS81 on 01-31-2008 06:19 AM
0 Kudos
Message 7 of 18
(3,431 Views)
Hi Mike,
            Thanks for your ideas. I incorporated create task-create channel-start task-clear task methodology in my VI and could experience a lot of improvement in  the execution speed too.  I attach my VI for your viewing and comments.
             I would like to add some more finishing to the executable. I want to display any error messages to the user on a separate tab on the front panel which need not be always visible to the user. I also need to disable the "Maximize" button on the front panel so that the user cannot maximize the executable window. I also need to hide and show a numerical indicator  programmatically. Is it possible ? I also need to disable the "Test" pushbutton, once it is clicked till one entire cycle gets over.
0 Kudos
Message 8 of 18
(3,396 Views)
Hi Mike,
            Thanks for your ideas. I incorporated create task-create channel-start task-clear task methodology in my VI and could experience a lot of improvement in  the execution speed too.  I attach my VI for your viewing and comments.
             I would like to add some more finishing to the executable. I want to display any error messages to the user on a separate tab on the front panel which need not be always visible to the user. I also need to disable the "Maximize" button on the front panel so that the user cannot maximize the executable window. I also need to hide and show a numerical indicator  programmatically. Is it possible ? I also need to disable the "Test" pushbutton, once it is clicked till one entire cycle gets over.
0 Kudos
Message 9 of 18
(3,395 Views)
JPrakash,

You can use a Tab Control on the front panel and place the error indicator on the second, or any subsequent, page.  The user will be allowed to toggle back and forth between the different pages during run-time.  To disable the "Maximize" button, go to File->VI Properties, select Window Appearance, and then Customize.  Here you can edit the front panel display and other window options.  In order to hide an indicator or disable a button, you can make use of Property Nodes.  To do this, go to the block diagram and right-click on the object you would like to edit a property for, and select Create->Property Node and whichever property you wish to access.  To hide or show an indicator, use the Visible property.  To disable a button, use the Disabled property.  Hope this helps!

Brian T
Applications Engineer
0 Kudos
Message 10 of 18
(3,367 Views)