Custom data type version number conflicts

I am new to Teststand software interface.  While doing my first software release under the guidance of a more experienced colleague, we discovered that Teststand will not run if it detects version number conflicts between custom data types on my machine vs. the production test machine.  I verified differences between all .seq files in my test program directory, but I did not realize that the version number difference exists in the StationGlobals.ini file, which is stored in a different location.  After discovering this, I modified the version number in one of the files.  However, two releases later, I discovered that the version number mismatches in another two files.  This raises several questions for me :
1.  Is there a way in Teststand to view all the .seq files where a custom data type is used and then change its version number in one attempt?
2.  Under what instances does Teststand upgrade the version number of a custom data type?
3.  Are there any tools or scripts within Teststand that can allow the version number of custom data types to be changed in all .ini files when a difference is discovered between the current production test station settings and a new release?
Please help.

You'll probably get better response in the TestStand Forum instead of the LabVIEW forum.
1.  Is there a way in Teststand to view all the .seq files where a custom data type is used and then change its version number in one attempt?
Look at the Types Window (Ctrl-T).  This should show which version of Custom Data Types are loaded for which sequence files.
2.  Under what instances does Teststand upgrade the version number of a custom data type?
As far as I know, anytime you edit a custom datatype which is already in memory, TestStand will update the version of the custom data type for the currently loaded sequences.
3.  Are there any tools or scripts within Teststand that can allow the version number of custom data types to be changed in all .ini files when a difference is discovered between the current production test station settings and a new release?
I think you can use the Types Window to do this but I'm not positive.

Similar Messages

  • Version number conflicts with NI custom data types

    Custom data type version number conflicts
    Options
    Mark as New
    Bookmark
    Subscribe
    Subscribe to RSS Feed
    Highlight
    Print
    Email to a Friend
    Report to a Moderator
    07-11-2011 08:10 AM
    I am new to Teststand software interface.  While doing my first software release under the guidance of a more experienced colleague, we discovered that Teststand will not run if it detects version number conflicts between custom data types on my machine vs. the production test machine.  I verified differences between all .seq files in my test program directory, but I did not realize that the version number difference exists in the StationGlobals.ini file, which is stored in a different location.  After discovering this, I modified the version number in one of the files.  However, two releases later, I discovered that the version number mismatches in another two files.  This raises several questions for me :
    1.  Is there a way in Teststand to view all the .seq files where a custom data type is used and then change its version number in one attempt?
    2.  Under what instances does Teststand upgrade the version number of a custom data type?
    3.  Are there any tools or scripts within Teststand that can allow the version number of custom data types to be changed in all .ini files when a difference is discovered between the current production test station settings and a new release?
    Please help.

    Have you read this?  http://zone.ni.com/devzone/cda/tut/p/id/7060
    I can tell you that your situation is not uncommon with TestStand.  The key is just doing it right the first time.  haha
    #1- I doubt that this is possible because then TestStand would have to know every location of every .seq on the machine.  You will only see it when you open the sequence file.
    #2- TestStand updates the version every time you change it.  You should get a message popup when you try to save that asks if you want to increment the version or not.  There's also a check box that says Remove Modified Mark From Types.  Look under Station Options in the File tab.  There are some settings there about Type conflicts.
    #3- http://zone.ni.com/devzone/cda/tut/p/id/7910
    http://digital.ni.com/public.nsf/allkb/4153576DA04BEB098625743D00704A09
    Hope this helps,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Where to define new custom data type ?

    Hi,
    In the past (TS 3.5) I've created our own custom type palette file which has been used
    to store new data types and then passed the file to other colleagues. The file would be
    stored in the ......\Program Files\.......\User area.
    My question has arose because we are now using TS 4.1/4.2 which no longer has separate
    NI and User directories in \Program Files.
    Because I now want to edit an existing custom data type, I find that our custom type palette has
    fallen by the way side, forgot about.
    Even though I can see the custom data type definitions within sequence files that employ
    the custom data types, which means I can modify them locally, I intend to return to
    a custom type palette, i.e. global definition.
    What is the relationship between data definitions in a custom type palette and the custom data
    type definitions within a sequence file ?
    When does a palette file update a sequence file ?, which takes control in the event of conflicts ?,
    is a palette file actually necessary if separate sequence files using the same custom data type
    can update each other ? What is good practice when defining custom data types ?
    thanks,
    Gary.
    Solved!
    Go to Solution.

    Hey guys, 
    This is an very interesting thread, and I whole heartedly agree with the advice given so far. I simply wanted to offer some additional advice on type conflicts - which with further answer the initial question regarding which type definition takes precedence in the event of a conflict. 
    It is important to note that TestStand uses type Names and version numbers to identify the different types. It is also important to note that when you use a customer type definition within a sequence, the sequence file (.seq) which houses the sequence will retain a copy of the type definition. This makes distributing sequence files much easier. However, it also opens the door to potential type conflicts. 
    TestStand only allows one uniquely named type to be loaded into memory at any given time, so it uses the versions number of the type to attempt to automatically resolve these conflicts. For example, TestStand can be setup to load whichever type has the highest version number (note that this can be changed via the Preferences tab of the Station Options dialog box). 
    All of this information and more can be found in the following tutorials...
    TestStand Type Versioning and Conflicts
    How Do I Make a Custom Step Type?
    Thanks for your time. I hope this has been useful!
    Message Edited by RER on 02-05-2010 07:58 AM
    Rich R
    Applications Engineer
    National Instruments UK & Ireland

  • Designer Custom Data Type

    Hello,
    I've posted a project at some commercial sites to find someone to help me doing it, but couldn't find any. I thought that it might be impossible doing this type of projects. The following is what was posted expecting someone could help/lead me doing it myself or at least providing any valuable hints, Thank you in advance.
    Looking for an Oracle expert to do the software part of a project.
    A data to be populated in Oracle database, but unfortunately Oracle doesn't support the required data type to hold it.
    An expert has to create custom data type with all required procedures/functions to manipulate the data(Read/Update/Insert/Delete), and provide a method to incorporate the solution in Oracle developer suite to model it.(To use it inside designer tools)
    The solution should allow someone to Create a column in a table to hold (for example) three bits in every row(record), mostly used in the project is three bits, but need the solution to be open and customizable to any number from one up to 21. Viewing/entering the data in a record could be as binary string. Saving in a table physically should be in sampling way to save space.
    The functions/procedures for manipulating the data should be based on record level and block level(several records of one column with start/end points). For record manipulations a binary string should be used, and for block manipulations a sampled structure should be used.
    Thank you for your time.
    Platforms:
    Oracle Database 9i and above.
    Oracle Developer Suite 9i and above.
    */

    not sure what exactly do you mean by custom data type in SQL? if you mean if there is a user defined data type in oracle thru PL/SQL yes there is. by using the %Type you need not to declare the variable data type explicitly. all you need to do is associate the variable to the column name of the table and use the %Type. see this example below.
    SQL> declare
      2    vEmpno   emp.empno%Type;
      3  begin
      4    select empno
      5      into vEmpno
      6      from emp
      7     where ename = 'FORD';
      8    dbms_output.put_line('employee no: '||vEmpno);
      9  end;
    10  /
    employee no: 7902
    PL/SQL procedure successfully completed
    SQL> or if you are looking for a collection of data types see this link about OBJECT TYPES

  • How to access the Custom Data type variable given in Expression edit control To and From LabVIEW

    Hello, I would like to know how to access the custom data type variable given in the Espression Edit Control from LabVIEW and vice-versa
    Say, the FileGlobals.Reference_Handle (Custom Data Type Variable) contains the
    VISA I/O session (Which in turn contains VISA_DeviceName: String, Session: Number),
    Channel1: Number and
    Channel2: Number
    I am expecting the user to give FileGlobals.Reference_Handle as the input at the ExpressionEdit Control in the edit screen of the VI Call.
    I would like to know how to get the values of this custom data type to LabVIEW?
    Say, if I have the Cluster in LabVIEW like VISA I/O session (Deive Name and Session Number), Channel1 and Channel2
    how do i need to set this cluster to the Custom Data type variable in TestStand?
    Thanks and Regards
    Prakash 

    Hi,
    TestStand to LabVIEW: i didnt understand what you r trying to achieve. But if you are using references, Use Property nodes and Invoke nodes to achieve what you want in LabVIEW.
     LabVIEW to TestStand: check the image below: You need to click the button next to 'container'. I have used a cluster output in the VI.
    Hope this helps
    .......^___________________^
    ....../ '---_BOT ____________ ]
    ...../_==O;;;;;;;;_______.:/
    Attachments:
    1.JPG ‏187 KB

  • Call Oracle procedure with custom data type within Java and Hibernate

    I have a custom date TYPE in Oracle
    like
    CREATE TYPE DATEARRAY AS TABLE OF DATE;
    and I have a Oracle function also
    like
    CREATE OR REPLACE FUNCTION doesContain (list DATEARRAY, val VARCHAR2) RETURN NUMBER
    IS
    END doesContain;
    In my Java class,
    I have a collection which contain a list of java.util.Date objects
    When I call Oracle function "doesContain", how to pass my java collection to this Oracle function ...
    anyone can provide solutions?
    Please !!!
    Thanks,
    Pulikkottil

    Vu,
    First of all you need to define your types as database types, for example:
    create or replace type T_ID as table of number(5)Then you need to use the "oracle.sql.ARRAY" class. You can search this forum's archives for the term "ARRAY" in order to find more details and you can also find some samples via the JDBC Web page at the OTN Web site.
    Good Luck,
    Avi.

  • Problems with Custom Data Types when converting from TS 1.0 to 3.0.

    I am currently involved in the process of converting a test environment from TestStand 1.0, LabVIEW 5.1, and Windows NT to TestStand 3.0, LabVIEW 7.0, and Windows XP. We use a custom Operator Interface developed in LV. Based on the entered Model and Serial number, the appropriate Test Sequence is called. We also use a custom Process Model. The steps in the Test Sequence are either LV code modules or DLLs created in C++. We have LV SubVIs and C++ API functions that allow the developers of the test steps to add data to various Custom Data Types. For example, a developer may set up a test to add a note (Step.Result.Notes[x].String) when the test fails. Step.Result.Notes is a container for an array of strings. The attempt to set a note first attempts to use SetDimensions to redimension the array, then SetValString to set the value. These notes are added to the report. On the old system, everything worked fine. A note could be added to any result. On the new system, if a note is added to say the 5th result, but results 1-4 do not have a note, the test sequence ends and the Operator Interface returns to waiting for data entry (as if no test ever happened). No report is generated. The LabVIEW libraries have been modified to solve this problem by calling SetDimensions to incrementally increase the array size by one, and populating the unused TestStand array elements with an empty array of LabVIEW strings using the SetValString call . In other words, based on the previous example, if the user wants to set a note for the 5th result, the notes for results 1-4 must first be sent an empty array of strings. The report will only display the note for Result 5 (as desired). In addition to this being cumbersome, attempting to implement the same workaround in the C++ API has been unsuccessful because even though the note arrays for unwanted notes (1-4) is initialized with nothing, it is still displayed as a note (empty) on the report. If anybody knows what is wrong and what the solution is, it will be appreciated.

    Aaron,
    Thanks for your reply. I will attempt to clarify. I am working with a single step. The step calls a DLL. The DLL performs many 'checks' on the UUT (e.g. Model Number Check, Serial Number Check, Calibration Constants Check, etc.). Under the Type Palette - MyTypes.ini, we have a Step Type called TEST_DLL with a container in it called Results. In the Results container are a number of things, but I will only list the important ones:
    Notes (Array of Type 'Notes'; Type 'Notes' is a Custom Data Type (container, Type Definition)containing an array of strings called 'String')
    -Notes are generally set when on of the checks fails, otherwise no Note is set for the check.
    Val (Array of Type 'Val'; Type 'Val' is Custom Data Type (container, Type Definition) containing a Boolean called 'Boolean')
    -Val indicates whether the check passed of failed
    Pseudocode example:
    //Model Number Check
    check# = 0;
    resultBOOL = ModelNumberCheck();
    SetDimensions("Step.Result.Val", 0, "[0]", check#);
    SetValBoolean("Step.Result.Val[check#].Boolean", 0, resultBOOL);
    if(resultBOOL == FAIL)
    Note# = 0;
    SetDimensions("Step.Result.Notes", 0, "[0]", check#);
    SetDimensions(Step.Result.Notes[check#].String, 0, "[0]", Note#);
    SetValString("Step.Result.Notes[check#].String[Note#]", 0, "Model Number Check failed");
    Note# = 1;
    SetDimensions(Step.Result.Notes[check#].String, 0, "[0]", Note#);
    SetValString("Step.Result.Notes[check#].String[Note#]", 0, "Model Number = 1234");
    //Serial Number Check
    check# = 1;
    resultBOOL = SerialNumberCheck();
    SetDimensions("Step.Result.Val", 0, "[0]", check#);
    SetValBoolean("Step.Result.Val[check#].Boolean", 0, resultBOOL);
    if(resultBOOL == FAIL)
    Note# = 0;
    SetDimensions("Step.Result.Notes", 0, "[0]", check#);
    SetDimensions(Step.Result.Notes[check#].String, 0, "[0]", Note#);
    SetValString("Step.Result.Notes[check#].String[Note#]", 0, "Serial Number does not match expected");
    More Checks
    As you can see above, the "Step.Result.Val" array is redimensioned for every check. The "Step.Result.Notes" array is only redimensioned when a note needs to be added for a failing check. If the entire step executes and no check adds a note, the sequence is fine. If every check fails and therefore every check adds a note, the sequence is fine. However, if there are any gaps (e.g. check 0 adds a note, check 1 does not add a note, and check 2 tries to add a note), the sequence will stop. If I add blank notes for every check that would otherwise not have a note, the sequence completes, but the report shows the blank note.
    Also, the exact code that is causing these problems runs fine on our old systems (TestStand 1.0). I hope that I clarified the problem and thanks again for the help.

  • Use of type libraries and custom data types in TestStand 3.1

    Consider the following example in CVI 7.0:
    #include <cvidef.h>
    typedef struct
        int                         t_err;
        unsigned int                err_flags;
        int                         err_code;
        char                        err_msg[1024];
    } TEST_ERROR;
    int DLLEXPORT DLLSTDCALL   NfctConnect  (int iPortType, int iComPort, int iBaudRate, TEST_ERROR * tstError);
    I want to call this function from TestStand 3.1 using the CVI Standard Adapter.
    I created a function panel from the header file then I generated a DLL that contains the type library as an embedded resource. Using OLE/COM object viewer I can confirm that the definitions are correct. In TestStand however, all basic types are recognized but the structure is rejected as not being a TestStand type.
    However, a C structure is supposed to be assimilated as a container in TestStand. Do I have to manually create a custom data type in TestStand to match my C structure or TestStand can automatically create the container based on the information in the type library (because this information is available it won't be difficult for TestStand to do this automatically)?

    Hi Spoli,
    At the current time the only adapter that gives you the option to
    automatically create a container for a given parameter is the LabVIEW
    adapter. In your case you will need to manually create the container
    that matches your C struct. I apologize for the inconvenience.
    One thing you can do to see this feature in future versions is make a Product Suggestion on our website. Our R&D engineers are always looking for good feedback.
    Have a good one Spoli,
    Dan Weiland
    Applications Engineer
    National Instruments
    Dan Weiland

  • How can take a Custom Data Type in TestStand and create a LabVIEW DataType?

    I am using LV 8.2 and TS 3.5.
    I have an existing Custom Data Type in TestStand and I want to make a LabView Type Def.  The TS DataType contains 11 elements: a Visa Resource Container of 2 elements (String, DeviceName and Number, Session), 9 Numerics and 1 String Array.  For Backwards compatability, I cannot modify the TestStand DataType.
    Thanks,
    Jean

    Hi Goldee,
    You should be able to do that. It's a two step procedure.
    1) Creates in LV a custom datatype that maps 1:1 yours TS datatype.
    2) Go in the TypePalette in the properties of yours TS Datatype and check into LV Cluster Passing Menu'. Here you can Connect a specific Field of the TS datatype to a Specific Label of the corresponding LV datatype. Once you've done it the TS datatype will result modified, I mean "starred" but the change you applied should not impact the datatype structure itself only the way you pass it to LV.
    Have a good day
    FiloP
    It doesn't matter how beautiful your theory is, it doesn't matter how smart you are. If it doesn't agree with experiment, it's wrong.
    Richard P. Feynman

  • JBO-27021: Failed to load custom data type value at index 1

    I have an adf table and an adf form in a jspx page. Well, the function of it is pretty basic CRUD. During our testings, we seem to have no problem at all but after deploying it to our remote server, we've been getting this error every time we delete the 'first' record in the table. We tried deleting other records and it worked perfectly fine. This is the first time we've encountered an error like this and we don't really know how to debug this, since it's working fine locally. Any help would be appreciated. Thanks!
    here's the pop-up error after trying to delete the first record
    JBO-27021: Failed to load custom data type value at index 1 with java object of type oracle.jbo.domain.Number due to java.sql.SQLException.
    I'm using jdev 11g and the latest webLogic server

    I have a similar problem,
    I have a VO with a query of the form: "SELECT d.campoUno, d.campoDos, sum(d.campoTres) as campoTres FROM TablaUno d
    WHERE <conditions>
    GROUP BY d.campoUno, d.campoDos",
    to modify the query for "SELECT d.campoUno, d.campoDos, *d.campoCuatro*, sum(d.campoTres) as campoTres FROM TablaUno d
    WHERE <conditions>
    GROUP BY d.campoUno, d.campoDos, *d.campoCuatro*"
    throws an exception: "javax.faces.el.EvaluationException: oracle.jbo.AttributeLoadException: JBO-27021: Failed to load custom data type value at index 16..............Caused by: java.sql.SQLException: Invalid column index
    The attribute was added well in xml definitions.
    I use JDeveloper 11.1.1.4.0
    any suggestions?

  • What's going on with re-ordering custom data types?

    OK, I can't make heads or tails out of this one:
    I've got a bunch of custom data types in my own typedef file (and it's part of my type palettes).
    I open up my types browser, select my type file, go browse to the "custom data types" section.
    I want them in a different order so I can better understand them.
    (actually I select the one below it (TekTimestamp) and try dragging it up and down the list. anywhere I go I get the circle with a cross through it saying I can't drag it here.
    OK, give up on that one.
    Then I'll grab TekSimulateMode typedef
    Try dragging it around, and I get the nice black line saying I can drag it somewhere else -- looks kinda like this:
    Notice I dragged it only one spot down, and the item I dragged it across is used in exactly the usage locations, and neither has any nested typedefs (they are only containers of primitive boolean/string).  Also notice that it and everything I dragged it across is owned by this type file.
    Once I let up on the mouse, I get this warning message popping up:
    What's up?? Why can't I change the location of the first typedef (ordering) within the file, but I can for the second??
    Why do I get this dialog when I move a typedef within a file that already owns it??

    Oop.  My bad.  I was so eager to help you out...
    I know it has to do with the Usage column.  Since you are changing your Station Globals.ini by dragging them around I think the warning is from there.  I know that once you have instances of them then you are now changing that data type for all those locations.  That's why you can't delete them if you have an instance.  It won't (or shouldn't) affect anything by moving them other than you may now have to save your station globals and sequence files again.  Not sure if it revs the version or not, it doesn't look like it did on mine.
    As for the one that won't move?  Not sure on that one.  I've never seen that.  Possible some instance is restricting it.
    Hope this helps some,
    jigg
    CTA, CLA
    teststandhelp.com
    ~Will work for kudos and/or BBQ~

  • Renaming custom data type

    All,
    Is it possible to rename a Custom Data Type (programatically or via a CallBack etc...)? Specifically, the container UUT. I want to call it something else for my program.
    Thanks
    Solved!
    Go to Solution.

    To rename a custom data you must have all files with instances of that type open when you make the change, otherwise they will be considered to have a different type with the old name when they are next opened. Do you mean the UUT process model data type? I would recommend against changing that since you will make your custom version of the process model less compatible with the default version, especially since the end user/operator does not necessarily ever have to see the type name, so it's probably not worth the hassle in that case.
    Hope this helps,
    -Doug

  • Custom data type

    Hi, can anyone help me in creating custom data types in java?
    For example I want a data type to be able to store telephone numbers
    I dont want to use strings as they can also have a-z values and I cant use integers coz telephone numbers start with a 0.

    public class TelephoneNumber {
       private String number;
       public TelephoneNumber(String number) {
          if(number.length() != 10) throw new MonkeyPoo();
          for(char c : number.toCharArray()) {
             if(! Character.isDigit(c)) throw new Something("Blarg");
          this.number = number;
    }

  • Issue with creating array of custom data type - WebLogic Integration

    Hi,
    We are doing WebLogic integration with Siebel for which from Siebel side we have generated java wrapper class which has all the methods, input\outputs defined and in\out params are serialized along with get\set methods. Following are the details of the input\output args.
    Account_EMRIO.java
    public class Account_EMRIO implements Serializable, Cloneable, SiebelHierarchy {
    protected String fIntObjectFormat = null;
    protected String fMessageType = "Integration Object";
    protected String fMessageId = null;
    protected String fIntObjectName = "Account_EMR";
    protected String fOutputIntObjectName = "Account_EMR";
    protected ArrayList <AccountIC> fintObjInst = null;
    Above class also includes constructors\overloaded constructor\getters\setters
    public AccountIC getfintObjInst() {    
    if(fintObjInst != null) {
    return (AccountIC)fintObjInst.clone();
    }else{
    return null;
    public void setfintObjInst(AccountIC val) {
    if(val != null) {
    if(fintObjInst == null) { 
    fintObjInst = new ArrayList<AccountIC>();
    fintObjInst.add(val);
    For the nested user defined data type AccountIC, it is defined in another java class as below
    AccountIC.java
    public class AccountIC implements Serializable, Cloneable, SiebelHierarchy {
    protected String fname = null;
    protected String fParent_Account_Id= null;
    protected String fPrimary_Organization = null;
    With the above, I was able to get all the AccountIC in the wsdl correctly and using this I was able to set the input param in the client
    WSDL:
    <xs:complexType name="accountEMRIO">
    <xs:sequence>
    <xs:element name="fIntObjectFormat" type="xs:string" minOccurs="0"/>
    <xs:element name="fIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageId" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageType" type="xs:string" minOccurs="0"/>
    <xs:element name="fOutputIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fintObjInst" type="tns:accountIC" minOccurs="0"/>
    </xs:sequence>
    <xs:complexType name="accountIC">
    <xs:sequence>
    <xs:element name="fName" type="xs:string" minOccurs="0"/>
    <xs:element name="fParent_Account_Id" type="xs:string" minOccurs="0"/>
    <xs:element name="fPrimary_Organization" type="xs:string" minOccurs="0"/>
    minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    Now, I wanted to make slight difference in getter method of class Account_EMRIO method getfintObjInst so that an array of AccountIC is retured as output.
    public ArrayList<AccountIC> getfintObjInst() {    
    if(fintObjInst != null) {
    return (ArrayList<AccountIC>)fintObjInst.clone();
    }else{
    return null;
    With the above change, once the wsdl is generated, I am no longer getting fintObjInst field for AccountIC due to which I am unable to get the array list of accountIC
    WSDL:
    <xs:complexType name="accountEMRIO">
    <xs:sequence>
    <xs:element name="fIntObjectFormat" type="xs:string" minOccurs="0"/>
    <xs:element name="fIntObjectName" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageId" type="xs:string" minOccurs="0"/>
    <xs:element name="fMessageType" type="xs:string" minOccurs="0"/>
    <xs:element name="fOutputIntObjectName" type="xs:string" minOccurs="0"/>
    </xs:sequence>
    </xs:complexType>
    The issue that I am facing here is, we have a custom data type(AccountIC) which has several fields in it. In the output I need a array of AccountIC. In the java bean, when this type was defined as
    protected ArrayList <AccountIC> fintObjInst = null; I was unable to get a array of AccountIC. this gets complicated as inside a AccountIC there is array of contacts as well and all the time I am getting just the first records and not a array.
    To summarize: How to get xsd:list or maxoccurs property for a field in WSDL for the user defined\custom datatype?
    Can someone help me with this.
    Thanks,
    Sudha.

    can someone help with this??

  • Custom data type causing trouble in deploying shared variable to RT target

    I seem to be having some difficulty in using a network published shared variable created from a custom data type when deployed as an executable on an RT cRIO target.  I'll start by describing why I believe this is where the problem lies.  I created my RT VI in the LabVIEW development environment (LV 2012) and everything works fine.  This VI is pretty simple because it rapidly devolved in to a debug exercise.  The RT VI starts by simply blinking the User LED a couple of times and then starts a simple acquisition loop to read a few values off the hardware using the scan engine (while still blinking the User LED).  After reading the hardware, the values are bundled in to a cluster and written to a network-published shared variable defined by a type def custom control.  The custom control contains five dbl precision floats.  If it matters, the cRIO RT system hosts the shared variable in this case.
    So, I deploy this under the development environment and everything works fine.  The LED blinks merrily along, telling me that the program is running properly.  Running a host VI that reads the network-published shared variable yields the desired result.  All is good.
    Now I want the cRIO system to run this simple program autonomously at startup.  I build it, set it as the startup VI, deploy it and then restart the cRIO target.  The LED never starts blinking... the VI does not seem to run.  I will spare you most of the debugging work and jump to the end.  I basically "Diagram Disabled" various sections of code until the VI started running correctly as an executable.  I kept reducing the size of the disabled code until only one thing was disabled:  the write to the custom data type shared variable.
    So, I guess my question is this:  Are custom data types defined by type def'd custom controls allowed in executable RT programs?  I've read through the cRIO Developers Guide, my NI Real Time Development course book and the Using Shared Variables white paper and I didn't see anything that forbade it.  I know that there are some things not allowed in executables that are allowed in the development environment (front panel property nodes, dialog VIs, OS-specific calls, etc), but no mention of custom data type shared variables.  Any ideas as to why my VI runs in the development environment but fails when compiled unless I remove the write to the network published shared variable?
    Thanks in advance for your help!!
    Solved!
    Go to Solution.

    Paolo,
    So I thought that you meant to disconnect them in the build specification.  Under the Additional Exclusions in the build specification, there is a check box for Disconnect Type Defs.  I checked that box, recompiled, redeployed and it did not work.  At this point I had to give and move forward, so I was going to convert the data typed from a cluster to an array.  When I went in to change the data type in the shared variable pop-up from the project explorer, there was a big button under the variable definition that "Disconnect from Type Def".  Clicked that button, recompiled, redeployed, restarted and everything worked great.  Thank You!!
    I suspect that I'll have to be careful if I change the definition of that data type (add an element, etc) since it is no longer connected to the data type.  We'll cross that bridge when we need to.
    Thanks again

Maybe you are looking for

  • Can I hold my macbook upside down to take a picture w/ the isight camera?

    or will that damage something?  I don't have a camera.

  • Multi-Camera Music Video

    Hi, Thanx in advance for your help. We did a multi-camera shoot of a band.  We ran through the set twice with 4 cameras, thats a total of 8 tracks.  The 2nd run through for the stationary camera on the drummer can be dropped to reduce the count to 7.

  • Pass fail decision for DMM readings

    Hi, Hope you will excuse a newby's ignorance. I have LabVIEW V8.2 with no add on's and a PXI chassis. I want to measure the resistance between about 100 points for pin 1 to pin 2 , then pin 3 etc to pin 100, then pin 2 to pin3, ...pin 100. The only w

  • Aaargh, what am I doing wrong?

    I have been working with iBooks Author and have become extremely frustrated with a few problems. I'd greatly appreciate any help on the following. When previewing my book on my iPad, the book routinely crashes. Not sure why. I am using iOs 5.01, iBoo

  • How to downgrade the Virtualization Software Version for a particular host

    Good morning all: I'm trying to downgrade the Virtualization Software Version of one 2012 R2 host to match the others. One host is at 6.3.9600.16404. This is the correct running version of the cluster. The incorrect version on one host is 6.3.9600.17