RefNum of control in a custom device

I currently develop a device custom Veristand 2011 with Labview 2011.

It is an Inline model.

During initialization (and only in the initialization stage), I'm trying to list recursively all the controls within a Cluster (which represents a data structure).

This does not work when you try to deploy the veristand project. I get the error code 1055:

Error 1055 occurred at a location not identified
Possible reasons:

LabVIEW: Object Reference is not valid.

I tried this simple example, and I can't get the name of the control, or any other prperty.

I tried the same code in a project of labview RT and that works perfectly.

Is there something I missed?

I don't think that code RT when it is run in an exe built as NI VeriStand has a façade. Therefore code like this one will not work. If you build your test vi in an EXE RT you get the same problem?

Why you have this code? Maybe we can find an alternative

Tags: NI Products

Similar Questions

  • Multi-threaded custom device

    Is it possible to create a custom multithreaded device?  I want to create a client-server architecture, somewhat like the http://zone.ni.com/devzone/cda/tut/p/id/3098 example in a custom device.  The only difference would be that I would like to make the series of read/write in the high priority task.

    Thanks for the help!

    -Ryan

    Hi Ryan,

    This should be possible if you use a custom asynchronous device. The curls will then run in their own thread and do not affect the execution of the primary control loop. Make sure that there is enough time sleeping in your loop of high priority. Note, however, that put communication series in the loop of high priority will negatively affect your determinism.

    For more information on the Veristand engine and the custom device types you can choose one, please see the following:

    Understand the VeriStand engine

    Creation of custom devices

  • The value of custom device entry

    Hello

    In fact, I create a custom (asynchronous) device that controls a climate system. It consists in adapting a functional code LabVIEW to create custom device. Unfortunately the LabVIEW code uses a lot of FGVs that act as input and outputs at the same time (this means that the system can change the value of an entry).

    So, I would like to know if there is an easy way to set the value of an entry in the custom device engine code. I tried the following without success:

    • Written in the FIFO of the entrance channel.

    • 'Set channel use value' of the API of NI VeriStand-> I get the error 307970.

    Yes, is there something I can do to facilitate the creation of my custom device? instead of "Rethinking" all the code which is a real pain in the * the complexity of it?

    Thanks in advance.

    Pen

    We solved that by using part of inllne to only update the channel and postponed the real asynchronous threads treatments with exchanges of data through FIFOs.

    ++

  • Get custom device name of in Sub VI

    Hi all

    I write an error handler that creates log files for any errors and warnings that are generated in a custom device fault.  One of the pieces of information that I would like to include in the file is the name of the custom device the error handler is incorporated in (because I run multiple devices customized in the same project).  I tried various classes of property and refnums different nodes, but I was not able to find something that works.  Is the closest I got to get the name of the VI incorporated in my error handler.  It is of course very little use because of custom device file naming structure are always the same, (the error handler is still in the RT pilot VI).

    If anyone has a method to get the name of the Custom device of in a Sub VI of the custom device, your advice would be greatly appreciated.

    Thank you very much

    GSinMN

    the device point reference is passed into the custom device. If you the wiring in the VI, you will get the custom device name

  • Choose CPU Inline Custom Device

    Hello!

    I wonder if it is possible to assign a Custom inline device to a specific processor. I know it's possible to do a custom asynchronous device.

    I developed a custom device inline, calling an asynchronous vi. I can affect the heart for the asynchronous part, but how to choose the kernel for the part online?

    Thank you...

    Hello, I guess that the online part is executed from the thread VeriStand, then the kernel is involved by the call control loop and cannot be changed. But maybe I'm wrong?

  • Write to channel outside custom device

    Hi all

    I am writing a custom device to control some aspects of my definition of system (more specifically another device custom).  I can't solve this problem because I can't find a way to write about a VeriStand channel located outside my custom device.

    Help to get channel reference data (which I usually use to get a data reference so that I could use the channel for the data set Reference.vi) says expressly that I can't get write access to a channel outside of my custom device.

    Is it possible for me to get write access to a channel outside my ring custom?

    I realize I can create system to the output channels of my device custom maps, but I'm not crazy a whole bunch of mappings of system because they are not very visible, and I would like that the user only need to use my configuration pages.  I also realize that it's probably possible to create these custom mappings by my setup of device programming, but I was not brave enough to venture down this road again...

    I use VeriStand 2011 SP1 and LabVIEW 2011 SP1.

    Thank you

    Chris

    Project engineer

    Certified LabVIEW Developer

    BaseNodeType is part of the Assembly SystemStorage, that something is used internally and is not intended for use by the public.  The publicly documented API is the API of ZFS, which has documentation available and a little easier to use.

    In the ZFS API, there is a class called "Utilities" that has a (Source channel, Destination) AddMapping method and a ClearMapping(Channel Destination) method.  These work as expected and disable the mapping entirely (not only the creation of an invalid mapping with value null, like your screenshot).  It would be better to add and remove mappings.

    However, if you want to stay with your existing code, I think you can accomplish what you want by removing the method "SetDataSourceValue" and replaching with a method "RemoveProperty.  The name plugged into "RemoveProperty" will remain the same ("DataSource").  This actually completely erases the mapping of the string instead of remapping it on channel zero.

    Kind regards

    Devin

  • Custom device error VeriStand-307603: no specified main page?

    I get the 307603 error when I try to add a custom device, I developed a VeriStand project on a client computer.  The message error window States:

    «Error 307603 occurred at Custom Devices Storage.lvlib:Initialize New Custom Device.vi > Custom Devices Main Page Data.vi Storage.lvlib:Get.»

    Possible reasons: NI VeriStand: the required custom device doesn't have a specified master page. Contact the creator of custom feature to correct the error. »

    I get this error when you add the device custom VeriStand on my development computer; only on the client computer.  I tried to copy the custom device built on top of the client computer and the custom device of source based on the customer's computer.  I also have three other devices custom that I developed that work fine on the same computer, so I don't know why it does not work.  I checked the specification of the build configuration to ensure that the VI home page is included in the source files, and to generate test preview shows only the custom device LLB and the XML from the file in the build directory, as expected.  The XML file is also oriented the correct path for the homepage VI and the GUID in the XML is the GUID file matches in overall search GUID variable.  I can't think of anything to check.

    Development computer:

    Windows 7, 64-bit

    LabVIEW 2011 SP1

    VeriStand 2011 SP1

    The client computer:

    Windows XP SP3, 32-bit

    LabVIEW 2011 SP1

    VeriStand 2011 SP1

    Everybody knows such a question or give me additional troubleshooting tips?

    I got it to work, but I don't know exactly what the problem was.  I made a copy of the part of the XML file that adds the device custom menu right-click and commented of the original, then edited the part I copied it to give the device custom a different name in the menu.  It worked fine on my development computer at the time I made the change, so I thought it was OK.  I just went and restored the file in the original version and now it works on my customer's computer.

  • I have problems with of the Subvi after the use of customized device model

    I used to start my machine personalized customized device model and I got success in the deployment until I started to do more complicated the Subvi.   I am currently trying to convert low FPGA and high ticks to the duty cycle, but for some reason when I add it to the RT VI "Data read of HW" driver, it seems to cause a downtime... ideas? Is a circuit agree? I have added a time delay but I am still having problems. It is a device online, so I'm suspicious of it hogging resources, but am not sure.

    Attached images are meant to be read like this:

    1. the case of the RT pilot ReadDataFromHW

    2. it's the Subvi calling ToDutyCycle SIMStimPWMSubVI

    3 ShiftRegister.PNG is inside the Subvi.

    As a robotician I celebrate early and often (usually by a failure or two...), but it seems that the answer was to transform fundamentally the While loop for a loop with a count of 1 and then remove the additional elements to ensure that each shift register has that one and then right click on the shift registers and convert at the Feedback node...
    I was able to deploy to VeriStand as a custom device and it runs and calculates the factor of use with no problems. WOOHOO! Where - what is celebrate button!

  • How to integrate model of custom device controller

    Hello

    I now live a labview including 18 sub controller model, and I am trying to run this controller on RTOS VxWorks, through customized device model.

    1. when I tried to run a model simple controller (ex, a controller with 3 ~ 4 void / screw) on RTOS VxWorks, I just put simple controller in RT Driver.vi model, and then the build and deployment succeeded.

    2. then, I did it with my model of labview in the same way above controller, but I couldn't even build my model controller labview. I don't know why, but the build process stops at the initialization stage. I think that this problem will appear when there are more than 3 ~ 4 sub vis are added under the custom device project.

    Any ways to use a model of controller labview instead of just put a model in RT Driver.vi?

    Now, I managed to build my model labivew, I saw the light of the compactRIO blinked, which measn the connection is ok by CAN - Bus.

    But it's still weird and not possible to build my model at a time. In addition, cannot again build the custom devcie just before successfully built after the addition of two functions simply.

    In any case, the solution to my problem is as below.

    For example, my cruise controller written in labview consists of 3 simulation systems arrive.

    Each system to arrive includes several subsystems.

    First, create the model after adding one of 3 major subsystems. (In this case, I never had errors in the construction of models of labview)

    Secondly, if the first step is ok, add one of the other 2 systems come in the custom device and then build again.

    Thirdly, add the remaining subsystem in the custom device and establish the entire model and deploy it to the target.

    With three steps above, I can still build devices customized successfully.

  • Why my custom device break only when VeriStand trying to run it?

    Hello

    I have a custom device, he worked for some time now, today, I made a few changes to add some features more and now VeriStand tells me the RT pilot is more executable.

    I have not change my build configuration or add any functionas that could bring in an external DLL, or something that could link incorrectly.

    Any ideas of how I could go on this shrinking.  The problem is that when running in VeriStand.  Built LLB has no problem, the source of the development has no problem, it's only when VeriStand tries to deploy there is a problem, so there must be something that is not bound correctly Yes?

    The system isn't RT, it's just deploy on Windows using a SMU.

    I am not sure the exact cause, but I ended up simply remove parts of the code piece by piece pilot to refine what was causing the problem. It turned to be a VI of debugging I used several times before in various projects, but which contains the string "call" LabVIEW primitive, but set apart from that, it's just a simple string manipulation.  So I don't know if it was just a few cases of random edge that occurred when running under code basic LabVIEW VeriStand clean, but for some reason, he broke the driver VI.

    So, solved the problem, but the cause, I can't really say.

  • Read VeriStand channel from inside the custom device that are not part of the custom device?

    Is it possible to read VeriStand channels from within a custom device VeriStand (RT Driver) that are not part of this custom device?

    For example, suppose I want to be able to configure a channel in my custom device to always be twice the value of a string of material that my user selects (I know, better/more simple ways to do this, but this is just a simple example ).  Can I do this from the device custom without programmatically create a mapping of the system? (I've done this before and it is messy and VERY prone to error of the user).

    Thank you!

    good point

    the channel ID (U64s) are not the same in the engine config of vs. Instead, you must set 'references to dependent item' in the config and then get these references in the engine.

    See the source jarrod linked, which makes it

  • execution of the RT custom device screw driver

    Hi all

    I'm building a custom device in which I expect a user input. (user provides entries on the home page of the custom device).

    Once the entry is expected on this basis I read the file-specific data and creating channels and article.

    Previously creating channels and article I in the initailiazation code.  But now that I'm waiting for user input I can't create these channels during initialization (reason is before getting the input channels will be created which I don't want. My creation of channel depends on the intervention of the user).

    If this logic of formation of channel I now write in pilot RT VI with my main logic of the reading and writing of the channels. For this I just want to know what exactly is the RT pilot VI begins its execution?

    If the RT Vi driver starts to run after adding the deivce custom veristand and after giving the user input and then my purpose will be resolved.

    I hope I explained my question correctly.

    The pilot begins after the definition of the system is deployed.  I don't think you can add strings in VI driver.  Nor do I think that you want, because you won't have an interface for them in the system definition.  Without a channel interface, i.e. mapping, how do you get data in and out of them?  I think your plan to create channels based on user input and data configuration are fine.  I suggest that you implement in the homepage or pages on the main page.

    -Steve K

  • How to detect the channel delete event in a custom device

    I am creating a custom device and want to detect when you press the button Delete (X) in the system browser.  This is so I can increment or decrement a counter in a folder (where the channel is under).  I saw no option in UserEvent loop options.  How do I detect that a channel is deleted?, I'm sure it's easy, but I can't seem to understand.

    Thank you!

    I recommend usually do not do that... If you can avoid it. For example the parent folder can do if everything is just a child get point-> the size of the array to count channels rather than storing a property that could get out of sync. I always try to design my devices do not store the property values for things I could go get.

    That being said... Sometimes you don't have that. You want an actionviondelete: https://decibel.ni.com/content/docs/DOC-30447

  • Adding custom device VS programmatically

    Hey everybody,

    So I was wondering if there is a way to programmatically add a custom to a homeless GUY in VeriStand device.  I have a program that runs through tricks of calibration and after it's done I want to automatically add a device tailored to the Homeless.  So far I found only a way to get an up-to-date list devices custom - cannot add a.

    Does anyone know how to do this?

    Thank you.

    I assume you are using the definition of system .NET API to change the homeless before deployment.

    In this case, there is a constructor for a custom device that takes the GUID of the homepage. Once that is done, use the AddCustomDevicemethod on the node CustomDevices of the Homeless.

    When you have the custom device reference .NET (the object) you can configure it with calls .NET as add channel/section and set properties. Although, given that most of the custom devices have initialization VI who made the most of it, you can call initialization VI, in fact if you want. To do this, get the NodeIDof the CustomDevice object and passing to the initialization of VI connector pane.

    I hope this helps!

  • create an alias for a custom device page

    Is there a way to create an alias for a custom device page?

    I wish that a button on the home page of my device custom (in solution system Explorer) allow the user to create an alias and linking this alias on a channel of the system. My Vi is the following:

    This VI returns the following error:

    "Error 1172 to error creating instance of aliases in the assembly NationalInstruments.VeriStand.SystemDefinitionAPI.Alias, NationalInstruments.VeriStand.SystemDefinitionAPI, Version = 2012.0.1.0, Culture = neutral, PublicKeyToken is a6d690c380daa308, (System.NullReferenceException: determined reference is not set to an instance of an object.).

    Is there a solution?

    Hmmm... good point. You can change my original solution to configure the alias using the basic underlying storage system node type. It should work regardless of the type of channel. As for your second question, custom devices written for 2012 should be recompiled in 2013 of LabVIEW with the support of 2013 VeriStand installed. You don't have to change your code, but you must recompile the LLBs.

    In this workaround, you start by creating an alias that links to nothing. Then, you update the alias to set the DependentNode property, which connects it to the channel. You should not do it this way, but this will work around the original bug.

Maybe you are looking for