Multifunction DAQ

cancel
Showing results for 
Search instead for 
Did you mean: 

Cannot build an installer for my application - however, I can can build an application.exe

At the completion of the installation builder process I get a message saying that the installeer build was unsuccessful, with the following possible reasons:
 
CDK_Item_OnDoProperties.vi.ProxyCaller >>
CDK_Item_OnDoProperties.vi >>
CDK_InstallerConfiguration_Editor.vi >>
CDK_Build_Invoke.vi >>
CDK_Engine_Main.vi >>
CDK_Engine_Build.vi >> NI_MDF.lvlib:MDFBuildDist_Build.vi
 
Cheers
 
Frank
0 Kudos
Message 1 of 12
(7,325 Views)

Hi Frank,

These errors will commonly come up when an installer is looking for a version of a driver that has been overwritten with a newer version. 

The problem is often fixed by installing the newest version of which ever drivers your installer is looking for.  Check that you have not selected any unnecessary “additional installers” (such as the LabVIEW 7 run-time engine) in the installer build specifications.

Luke
Applications Engineer
National Instruments
Message 2 of 12
(7,305 Views)

Hi Luke,

Thank you for your reply.  I have installed on my computer the latest upgrades for LV8.2 (I have not yet got 8.21) that came to me as part of the SSP package earlier in the year, and I carried out the install as per the instructions, including doing all the installs for the device driver disks, etc.  So theorectically I should have all the latest drivers etc installed...

During my (many) attempts to build an install package, I tried a number of combinations of adding additional packages (eg NI DAQmx 8.3, NI Visa 4.0) etc as I thought that may be the source of the error messages, but I still got the same error messages regardless of any combinations or even if I accepted the default selections for the installer build (just installing the LV runtime engine 8.2).  So I am at a loss to know how to progress this further...I will attempt to reinstall the latest devide drivers again to see if that makes a difference - will keep you posted.

Cheers

Frank

0 Kudos
Message 3 of 12
(7,300 Views)

Hi Frank,

I should point out that there is a newer version of DAQmx since the last SSP distribution.  This may be a good time to install LabVIEW 8.2.1 and then DAQmx 8.5. Both are available for download from ni.com.

 

Your issue sounds very similar to a previous forum post.  I suggest that you look at this conversation.

 

Rudi makes a valid point about running the installer on your development computer.  Naru’s solution is interesting, and it may provide a solution for your problem.

Message Edited by Luke G on 05-02-2007 02:46 PM

Luke
Applications Engineer
National Instruments
0 Kudos
Message 4 of 12
(7,285 Views)

Hi Luke,

The VI  I was compiling as an executable, and then trying to create an executable for was resident on the corporate fileshare.  Once I transferred the project (including all the source VIs onto my own computor, there was no difficulty in creating the installer. 

However, I did have a devil of a time in installing the application on another computor.  I ended up ensuring that all the options in the 'Advanced' setting page were ticked, and making sure that all the additional installers that I could think of were ticked as well. 

According to the 'Application builder readme' that comes with version 8.2:

  • "To build an application, shared library, or source distribution that uses type definitions in the private data control of a LabVIEW class, select either Remove unreferenced project library members or Do not disconnect type definitions or remove unreferenced members on the Additional Exclusions page of the Application Properties dialog box. If you use the default setting, Remove as much as possible, and use a type definition in the private data control of a LabVIEW class, the Application Builder disconnects the type definition and the build fails. "
  •  I did this, and the application eventually worked.

    However, there is a monor bug that still occurs - the application tries to load a vi called 'Xdata_something.vi'.  If I cancel the search for the vi, the application continues to load, and appears to run OK.  On closing, the application tries to save changes. 

    The above is more annoying than anything else, and ideally I would like to remove the problem so that other people are not confused or worried about the application.  The 'Application builder readme' says to:

    "

  • If you select Do not disconnect type definitions or remove unreferenced members on the Additional Exclusions page of the Application Properties dialog box, LabVIEW might return the following error when you build an application, shared library, or source distribution that includes a library:

    An included VI or one of its dependencies does not exist.

    The library might contain broken or missing components. To try to determine the problem, mass compile the VIs in the library. "
  • I have not done so, mainly because the reference is a bit vague - do I need to find the source library, or can I use the library in the 'dependancies'?

     

    Cheers - have a good weekend,

    Frank

    0 Kudos
    Message 5 of 12
    (7,272 Views)
    Hi Frank,

    First of all, what exactly is Xdata_something.vi' , and how is it called in your application? Perhaps this is a subVI whose location has changed?

    Does your application request this VI when you click the run arrow from the devleopment environment?

    Mass compiling the VIs in your project may resolve this as well. For more information on this, please see this knowledgebase article.

    Best regards,
    -Sam F, DAQ Marketing Manager
    0 Kudos
    Message 6 of 12
    (7,251 Views)

    G'day Sam/Luke,

    I apologise for being vague - I will start at the beginning:

    I have to create an application to simulate the operation of a hydraulic tubine, using the actual servomotor position as an input (this is to be set up with the actual oil pumps etc and control valves), and feedback the simulated frequency and power output of the tubine into a 'governor' controller (this controller is based on an AB contollogix PLC - the output of the governor will drive the servomotor position, thus 'closing the loop').  I believe that I have this part of the application under control.  I can, on my own computer, run this program, and 'see' the required variables in the variable monitor program successfully. 

    I also want to log the operation of the simulation program, that is monitor paramters in the simualtion program, where these items are created through Labview, using the 'binding' facility in the 'properties' of controls/indicators and the tag engine editor.  In addition I want to log some of the parameters in the governor and also in the machine unit controller (this is based on another AB controllogix PLC).  So, I want a logger to work on another computer (ideally) to log quantities on my computer, and also on two other PLC's.

    I have created a logger program that I can run on my computer, and can log the governor simulation items sucessfully.  But I cannot see the items on the other PLC's in the network.

    As a work around, and to maybe try and identify if there were access problems with the ethernet communications between my computor and the unit PLC, I was trying to build an executable to install the logger program on the same computer that is building the PLC software.  Ideally in the running of the test (which is to be conducted in a couple of weeks) I would like to run the logger on another computer anyway, so as to ensure that there are no poblems (resources/timing/ other conflicts) with the simulation running on my computer.  This is where I am running into problems with the logger install, and/or my application.

    So far, I am able to create an installer that puts the program onto another computer, BUT when the program is loaded a pop up asks for 'xDataNode.xnode'.  (This is what I mistakenly called 'xsomething.vi.)  When I cancel the pop up, my application logger VI continues to load, and appears to run successfully (ie no broken arrow).

    When running the program, the 1st thing that must happen is the selection of items to monitor, and/or trend, and/or record.  When my 'select items' control is pressed, the program calls the 'DataSocket Select URL.vi', which opens a pop up,  that shows the OPC servers on the computer (including RSLinx, and Remote RSLinx and the various NI servers (OPC Demo, etc).  So far so good - but:

    I cannot open items on other computers (when running the executable on other computers, I can 'see' my computer on the network, but cannot open any other than a datasocket server that has no itesm attached to it - I cannot see any of the servers that I know that I have on my computer, including the items that I have 'bound' to network published variables); and

    If I am running the executable and installed logger on the AB development computer, I cannot see past the server names in the RSLinx server.

    Could you shed some light on this xDataNode.xnode??!!

     

    Cheers

     

    Frank

     

    0 Kudos
    Message 7 of 12
    (7,248 Views)
    Hi Frank,

    Thank you for posting the additional information. You mentioned a couple of things that caught my eye, namely the data binding of controls and communication with PLCs in general.

    1) For the controls, are you binding with datasocket or with the Shared Variable Engine?
    2) For communicating with your PLCs, are you using the DSC module and have set up an I/O server for OPC communication? This is what it sounds like, and if this is the case, there are some considerations for building an exe and distributing it to another PC.

    If this isn't OPC or if you're using something else (like plain datasocket VIs), please let me know.

    Please answer these for me to get a better picture of your setup.

    Best regards,
    -Sam F, DAQ Marketing Manager
    0 Kudos
    Message 8 of 12
    (7,232 Views)

    Hello Sam,

    With regard to your previous post:

    1) For the controls, are you binding with datasocket or with the Shared Variable Engine?

    I have bound the controls of my simulation program using the shared variable engine.  I created a process called 'governor simulation', then added new variables, all through the Variable Manager.  I then bound these variables to the controls in the governor simulation program.  When I run my simulation program on my own computer, and then run my logger program on the same computer, and then look to select the variables I wish to monitor, the pop up (that comes with the Datasocket VI 'select URL' shows the various OPC servers on my machine, including one called 'governor simulation' that allows me to expand and to see and select the variables that I had previousl created and bound.  The logger can see and monitor everything OK.  However, when I run the exectuable on another machine connected to the same network, while I can detect my machine (running the governor simulation program) I cannot open and see the OPC servers.  However, I can see a drop down to an item called 'datasocket server', but there is nothing there. 

    2) For communicating with your PLCs, are you using the DSC module and have set up an I/O server for OPC communication? This is what it sounds like, and if this is the case, there are some considerations for building an exe and distributing it to another PC.

    If this isn't OPC or if you're using something else (like plain datasocket VIs), please let me know.

    My purpose is to log variables on OPC servers.  The required servers are set up via RSlinx (or whatever), and the computer can see these on the computer the logger program is installed on (that is, if the executable is running on another machine, I can see an item called 'RSLinx server' with a drop down to items that have been created through the RSLinx software). 

    I am using the VIs that are part of the 'data communication' palette, including the 'open', 'read', and 'close' VI's in addition to the select URL VI (LV8.2) - I asume that these are plain datasocket VIs.  As I have said, I would like to see the OPC server on the machine running the governor simulation program from another machine doing the logging.  Due to the nature of the testing to be performed (primarily the cost of the exercise), I don't want any crashes occuring on any machine running the simulation due maybe to the machine becoming overloaded.

    Hoping you're having a nice day, cheers

    Frank

    0 Kudos
    Message 9 of 12
    (7,226 Views)
    Hi Frank,
     
    To summarize this issue, it seems

    (1) you are unable to access remote OPC server and
    (2) unable to access shared variables from remote machine.
     
    In order for you to access the shared variables from the remote computer, you will have to manually deploy the shared variable library on the local machine. This can be done by right clicking on the library in the project and selecting "deploy all".
     
    Accessing OPC server from a remote machine requires using DCOM. I will suggest you take a look at this knowledge base entry and related links for further information.
    Tunde
    0 Kudos
    Message 10 of 12
    (7,184 Views)