LabVIEW Idea Exchange

Community Browser
cancel
Showing results for 
Search instead for 
Did you mean: 
Post an idea

NI's code should be excluded! Many VIs are installed as part of LabVIEW in the C:\Program Files (x86)\National Instruments\LabVIEW folder. These should NEVER be modified outside of installs/upgrades. I started a Mass Compile and, whoa, it did much more than I expected! It changed and saved hundreds of files. I let it run for about a minute, got too nervous, and stopped it. I didn’t think to back that up. Now I fear my LabVIEW installation is dirty. NI SR#7722650 says "It does go outside of the specific folder if the VIs in the specific folder depend on another VI outside of the folder. When it goes outside, it is just opening the VI and resaving it in the current version of LabVIEW. Because your VIs depend on some VIs in the ... vi.lib it went and resaved them. But, they are already in LabVIEW 2015 SP1, so it will not change anything in them. It does this to ensure the VI is looking at the current version of LabVIEW and not an older version." If that is true, why would installation of a version of LabVIEW install VIs of older versions? Make sure all vi.lib VIs are already compiled for that version.

 

I found https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Force-Recompile-option-in-Mass-Compile/idi-p/2659839 which discusses whether or not LabVIEW Mass Compile changes files that are already up-to-date.

Mass Compile changes files that do not have a LabVIEW code extension such as ".ctl" and ".vi"! Why is it trying to load, check, and save files with extensions such as ".bak" and “.err”? The following example shows files that a prior mass compile found problems with and I renamed them and removed them from source code control.

 

  ### Bad VI:    "EditString.ctl.err"              Path="C:\cvs\r8000\labview\app\editor\controls\EditString.ctl.err"

  ### Bad VI:    "MCNavigate_old.vi.err" Path="C:\cvs\r8000\labview\app\remote_control\MCNavigate_old.vi.err"

 

Another example of this is described in https://forums.ni.com/t5/LabVIEW-Idea-Exchange/Mass-Compile-should-not-touch-Subversion-files/idi-p/1081483 which says files with ".svn-base" are changes. Yes, there was a specific improvement made to ignore those, but really, that wouldn't be necessary if Mass Compile stuck to known LabVIEW file types.

We can get the top level VI using property nodes / call chain, and we can also determine the running state of any specific VI (given a path).

It would be really useful to know which VI was running as any point in time (without resorting to execution highlighting) - not really applicable to time critical applications of course.

Uses for this include:

1) the abilty to change a VI execution state from Modal to normal with custom created dropins - if required.

2) Automation - it would be really useful to retrofit projects with a tool/dropin for soak testing / debug which detected certain windows - normally these would be modal dialogs and entered data in them to allow the program to continue (I know these features can be built in at the start of a project, but dropping in later would be very powerful for pre-existing ones and allow the use of the NI dialogs.

3) simple debug - code is stuck, exection highlighting is not showing where. This would give the answer.

 

James

What is needed :

A direct property to change the "Enable Aliasing" option (var_params.png). "Use binding" property only allows to user to change it after enable + deploy the shared variable with "Enable Aliasing" option manually checked once.

 

Problem in detail:

When a shared variable is created in a local library file, it is needed to check the "Enable Aliasing" checkbox manually once to connect to an URL of a remote tag / psp URL. 

After that, Enable aliasing parameter can be changed from the program via the parameter "Use binding". If an attempt to connect the variable to an URL is made with "Enable Aliasing" is not changed manually once beforehand, "A value is missing for the Enable Aliasing option" (missenable.png) or "Missing access type" errors occur (mat.png).

 

 

Why is it needed for :

Lack of this property permits the user to create shared variables with an URL connection in a Labview program . You need to create and check "Enable aliasing" manually once each time you need to create a shared variable. 

Download All

It would be possible to add to "Preview Queue Element" a new control indicating the index of the element to be previewed?

Preview Queue Element.png

 

To be able to consult an element other than the first element inserted in the queue, it is necessary to use the function "Get Queue Status" and through "Index Array" to obtain the element you wish to consult. (See example).

 

My proposal is to add a new control to "Preview Queue Element" to indicate the index of the element that you want to preview, and using the 0 for the first element inserted, 1 for the second..., and -1 for the last element inserted.

From LabVIEW Class, If I right click and select "VI from Static Dispatch Template" and "VI from Dynamic Dispatch Template", It always have same connector pane template 4x2x2x4. whereas I have option to change the connector pane of the "New VI" by using the LabVIEW ini.

 

Have an option to change the connector pane for static and dynamic dispatch template.  

Good day forum

 

Upon wiring an error wire to the termination terminal for timed loop, deletion of the error wire will not necessitate the connection of the terminal. 

TL bug.jpg

 

A fix will be appreciated. Thanks in advanced.

 

Regards

CY

Hi,

 

This is probably unfeasible but, as I study online, it could be useful to some? I watch Labview videos on NI site and on Youtube and some movements take a lot of deciphering as the tutor is using shortcuts but not referencing them. As I get more confident with them I try using some shortcuts that I pickup in class, videos or documents like : https://zone.ni.com/reference/en-XX/help/371361H-01/lvhowto/keyboard_shortcuts/

 

But for most online Labview tutors using shortcuts is  second-nature to them and they rarely reference them as they demonstrate. Could Labview include, maybe to the right of the help option, a window displaying shortcuts like 'Ctrl + J' as it is being used. That way a student would no exactly how some actions are done, rather than looking at menu  options unnecessarily, while also getting themselves more familiar with using the shortcuts.

 

Regards,

 

Tony

 

 

When we try to move a "Shift Register" it moves both ends, would it be posible to unlock the "Shift Register" and move them separately?

 shiftregister.png

 We believe that it can be a good option to perform pipelining configurations.

 

Class properties include section "Item Settins". One could set there Access Scope to item, and two more options (see picture).

prop.PNG

But, access scope could be set also from right-click menu in project tree. It could be nice also to have there available remaining two options (for required override, and call parent node) - so then these properties also could be set from project tree right-click menu.

 

I know that it is possible to implement own project providers, and this functionality could be implemented there. But, maybe NI could prepare also such project provider plugins, which will do similar stuff - for example, move all reasonable menu options from property window, to right-click menu level.
On the other hand, similar functionality could be implemented by plugin for "G Code Manager" from Piotr... But let me leave this idea anyway here.

It would be very helpful if I could search for all VI's in project that uses a specific Conditional Disable symbol.

When a client performs an HTTP request to a LabVIEW WebService, if the resource exists but the method is not supported (e.g. PUT instead of GET), the WebService responds with a 404-Not Found status code, giving the (wrong) impression that the resource name is wrong or non-existent. It would be better to have the service respond with a more informative 405-Method Not Allowed or 501-Not Implemented.

Originally, I asked this query on NI discussion forum Retain Default Data Type of Input Terminal in VI . Thanks @GerdW and @crossrulz to encourage me to share this on IdeaExchange. I need such functionality in one of my project.  


Hello,

When I take Open VI Reference function and create a constant for Option input terminal it shows Numeric constant with HEX radix (Default). So to add same functionality in TEST.vi I put numeric control on front panel with display format set to HEX. But when creating a constant to this input terminal the default data type is DEC and does not show HEX radix likewise in Open VI Reference function. I also tried by making Numeric control strict typedef but didn't work. So how to do this?

Below are the screenshots for same.

MAIN_VI.png

 

SubVI_Test.png

 

 

Currently, if one has cluster inside of the cluster, and wants to unbundle complete cluster, he needs to select "All Elements".

2018-05-03 10_47_28.png

But it would be nice to do it, while double-click directly on cluster name in the unbundle node (highlighted on the screenshot). It would be faster a bit, and no need to move mouse right-left all the time, while selecting a lot of subclusters from the cluster.

 

I recently built an application using code developed by someone else that had a server VI in it.  I didn't realize this and therefore failed to include the file in the application build.  Naturally the built application did not work and had to do some troubleshooting. 

It may be too simpleton, but it seems server VI’s should have a file extension other than .vi so that the project will see the file as being missing when referenced in the code.  In other words, referencing server VI’s should be more formal; like referencing shared variables.

 

I'd like to get an Malleable VI's input wire label from within the .vim.

 

It's convenient to use a wire's label in a sub VI, for instance to get a value from a file:

Example.PNG

If the input is a variant, I can get this label from it. However, I like to return the same type that I wire to the input... A .vim can be used to make the output the same type as the input. However a .vim will fail with the label part:

Vim (not working).PNG

The type info's label will always be "Numeric". The type adapts to the wire, but the label does not.

 

It would be really useful to me if the label of the .vim's input would change with the type, to the label of the wire that's wired to it. I'd think other would find this useful as well.

 

 

I tried to implement a VI which is part of a class and should access the private data after an asynchronous call. This is not possible, because, when I wire an object to a VI it is call by value and not call by reference. What I would like to have is something like this:Unbenannt.png

 

See the little key for referencing the private data. Just like a global one. I'm totally aware that this may cause side effects, but by this I could easily create a actor model OOP based. This would mean better encapsulation than other approaches.

 

In my example I wanted to create a control system for an oscilloscope. All settings should be stored in the object. For each oscilloscope there should be an object. Unfortunately, there is the need of running a while loop in the background. This needs an asynchronous call. But as the background loop is running, changes in the setting should immediately impact the behaviour. If I wire the object to the asynchronous call, a copy is made and changes in the object wont affect the behaviour. Therefore, I would need life access to the private data. 

 

I hope it is clear, what I want and why I want it.

It would be necessary to insert an alert when opening .vis made with different versions of LabVIEW than the latest used. "This file has been created with LabVIEW 13. Current version is LabVIEW 15. Do you want to open?" Y/N I work with at least 4 different versions of LabVIEW and sometimes happens to open a project (and to work on it for hours....) with another LabVIEW version, without noticing the automatic upgrade. Then time for downgrading again. Thanks

When we have to debugging a code where we use "Class", "Actor",... and we defined VI as "Shared clone reentrant execution" or "Preallocated clone reentrant execution" and we put the breakpoint, and the code is used by many instances, many pop-up windows will start to appear, which causes the execution flow to be stopped at several points.

 

 

 breakpointmanager.png

 

LabVIEW has two useful tools to debugging errors such as "Desktop Execution Trace Toolkit" and "Monitored Actor Toolkit" for Actor, but in this case, our proposal consists of providing some functionality to "Breakpoint Manager", for example: the last time it was executed, if vi is paused,... 

 

 blockdiagram.png

 

 

 

Only thing we intend is to avoid having to go through the windows until we find the windows that are blinking through a breakpoint and we can identify them in a simpler way.

 

 

It would be helpful to be able to select block diagram parts with a free-drawn closed line rather that only a rectangular one.