LabVIEW Idea Exchange

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

Hi All,

 

I'd like to put up an idea I had about a 'pass through' node for case structures. I had the idea when working with the in-place element. What I would like is a pair of nodes - like shift register nodes - where the input and output are identical unless the inner loop is wired. In this way it would be like a shift register on a FOR LOOP when the index is wired to zero.

 

The idea of this would be to clean up case structures - in particular where you might have 3 or 4 wires going through multiple cases in a state machine. You have to make sure they are all wired up and they clutter up your block diagram. With these nodes you only have to work on the wire you are actually changing in a particular case and then ignore the rest of them.

 

I also though that if you wire a cluster to a 'pass through' node you could have the option to 'Unbundle/Bundle Elements' similar to the option in the InPlace Element Structure. Please note this change I'm suggesting is cosmetic/useability - I don't think this should have inplaceness associated with it. I reused the nodes because they were easy to copy and paste.

 

I've added an example of what it could look like - this is a simple case structure to initialise a cluster, increment it and exit the state machine. In the initialise state the inside of the 'pass through node' is wired and then goes into the shift register. For the increment case it is unbundled, incremented, rebundled and passed back out. Note that for both these cases the False boolean is passed through the shift register - without a wire - and then enters the stop node. In the exit case the cluster data is passed through the case without a wire and could be read outside the loop by wiring to the shift register (if I'd thought to draw it) whlie in this case the boolean now reads true and the loop is stopped.

 

LV_Case_Structure.png

 

 The second change I'd like to suggest is to allow a case structure node to be associated with a specific element in a cluster. Allow us to wire a cluster - which contains at least one string, enum, boolean etc - straight to the case structure node and out the other side. Then right click on the case structure node to choose which element the case structure reads!

 

LV_Case02.png

 

 And of course allow the 'case structure node' to double as a 'pass through node' also and I would be very happy programmer! 

 

I look forward to your comments - and Kudos,

 

Thanks,

Dave

 

 

 

 

PS if anyone has a better name than 'pass though node' please holler - it sounds worrying like a laxative;-)

Some times I have parallel while loops. In this case, it would be useful if I could switch between the different loops, as in a case loop, without the program code changes.

This would be much easier than the endless down- and upscroll...

 

Loop struct.JPG

 

Thanks!

 

Present commenting.PNG

 

Commenting like this needs more effort(Drawing arrow etc).

 

How about giving options like this??

 

1.PNG 

 

 

 

 

2.PNG

Hi,

 

I think it'd be better if NI would allow some ordinary VIs (the good group for example is the 'triangle VIs) to be verically orientated like this:

 

new.png

or like this:

 

new1.png

 

Of course the symbol of the operation needed to be not rotated for securing easy readibility.

 

Main advantage: saving the development space in horizontal dimension.

Other advantage: better visibility.

 

No disadvanteges in my opinion

The sequence locals in a stacked sequence structure appears on the right side, both in the parent frame and in the other frames. It'll be nice to read from the sequence locals if it appears on the left side in the frames which reads values from it and right side in the frame which write to it.

Sorting on array of clusters should have options for selecting which element to sort on.

Its doable now but requires extra codes and wastes development time because at present you have to unbundle the cluster,

make the sort order element the first element, re-bundle, do the sort and then re-cluster again.

It would  be much simpler if you could just select the element you want to select for sorting array of clusters by right clicking on the sort icon

after wiring the array of clusters to the sort icon.

Das Markieren von Objekten sollte auf zwei verschiedene Arten erfolgen:

 

  • Wird das Markierungsfenster z.B. von links nach rechts aufgezogen, so werden alle Objekte markiert, die von diesem Fenster geschnitten werden, auch wenn es nur ein Pixel ist.
  • Wird das Fenster dagegen von rechts nach links aufgezogen, so werden nur die Objekt markiert, die vollständig innerhalb des Fensters liegen.

I'd be nice to have a conditional disable (CD) for typedefs:

 

I sometimes use CDs to disable code which calls e.g. instrument drivers which are only installed on a lab PC, but not on the office PC where I also do code development. I can then at least load the code without broken arrow and develop those parts which do not use the drivers.

However, when the instr drivers make use of typedefs, these occur on the front panel. A CD on the front panel would therefore be helpful.

 

 

Hi,

 

I would like to have a native error cluster connection on timer VIs so that I'm able to use the error cluster to make sure that the VI is executed at the right moment without using sequence structures.

 

Here is an example of how this feature could be used to avoid sequence structures.

 

[img]http://forums.ni.com/ni/attachments/ni/labviewideas/15500/1/Timestamp_Errorcluster1.png[/img]

 

[img]http://forums.ni.com/ni/attachments/ni/labviewideas/15500/2/Timestamp_Errorcluster2.png[/img]

 

The VI 😉

 

[img]http://forums.ni.com/ni/attachments/ni/labviewideas/15500/3/Timestamp_Errorcluster3.png[/img]

 

 

I've built the VI for my own purposes, but I think this might come handy to other LabVIEW users, too. Simple, but useful. 🙂

 

Regards

Manuel

 

 

 

 

 

Download All

Sometimes a change can break many wires all over the code. A structural change in a "Type Def." is a typical case. Hidden wires in Cases, Stacked Sequence or just out of the window, can make the use of "Remove Broken Wires" (Ctrl+B) a nightmare, since it removes all broken wires.

The idea is to allow user to select part of the code, including broken wires, in order to restrict the action of the  "Remove Broken Wires" command only the selected broken wires will be removed.

It would be convenient if the right click menu for a front panel decoration included a function for placing on the diagram a reference to that decoration.

I would like to be able to right-click on a front panel control and on the pull-down it would give me the option to go directly to the event case for that control.

Moved idea to LabVIEW Real-Time Idea Exchange.

Before I make My suggestion I would like to say that Objects in labview have been my savior. My code complexity and reusability have improved ten fold.  It has allowed me to integrate templates including glyphs and artwork into base classes which greatly speeds coding.

In recent times, LV has allowed auto-coersion of references to objects to a lower, common class - yey!.

 

I would like to see polymorphism/function override support "ByRef" dynamic dispatch as well.

 

Class Byref.png

 

Right now I have to create a base class byRef function to access the object and then call a polymorphic VI to execute it.

This forces the creation of an extra vi per function call when I use objects byref.

 

Just seen a demo of LV2011 where the connection pane is automatically wired for created subvis (diagram->selet some stuff->right mouseclick->create subvi).

 

It would be great if there would be a similar function for new created vi's. When you create a front panel, common sense will let you put the indicators and controls in a way you will wire them to the pane. Controls to the left, indicators to the right. Additional parameters in between. And of course only the 4-2-2-4 pane should be used Smiley Wink .

 

The left/right bottom points are only to be used by the error in/out or left empty since at some time they will become error in/out (if you do not already have a quickdrop template for dropping this structure the first thing after clicking 'new vi')

 

 

 

 

autopane.PNG

Say you have an application that needs to be compiled into multiple different variants, say a internal debug version with extra logging, or a version with customer specific functionality.  You can use the Conditional disables structure to ensure that  only required correct code is compiled into the EXE. By limiting what is compiled into the EXE,  DLL dependencies can be removed, avoiding the need to ship internal only/customer specific DLLs or libraries with every version of the software.

 

Conditional build symbols are currently defined at the Project level in LabVIEW, and apply to all build specifications in that project.  This means that you can't have two separate build specs for the 'standard' and debug/customer specific versions of the software, and instead have to manually change the settings between builds, introducing the possibility for human error, and making it difficult to automate all builds.

 

Any symbol defined in the Conditional Disable Symbols section in the Build spec would replace any symbol with the same name defined at the Project level.  If a symbol wasn't defined at the Build Spec Level, but at the Project Level, the Project one would be used.  When viewing the Conditional symbols for a build spec it would be useful to also show the symbols already defined at the project level, so that it's clear what is different and what is being redefined.

Hello,

I suggest that the "search result" windows use a different icon, so it will be easier to found it in the windows task manager. This could a simple enhancement, but really helpful when we work with a large project with a lot of VI opened.

The same could be done with Projects windows.

For Diagram and Front, the use of 2 different icon could be a good idea too.

The global idea is to quickly found the right windows in the task manager....

 

When I place several frontpanel elements, I have to change the state of "Show as symbol" for every element seperately. It would be much more efficient, if I was able to do this for selected elements.

How about adding two error connectors at the left and right bottom corners for some nodes such as those in the time pallet (e.g., "wait until next ms multiple" so that the user can have more control on when these nodes are executed?

 

This surely will reduce the use of sequence structures (which is one of my favorites but I have been told not to use if possibleSmiley Very Happy) and make the BD a bit cleaner too.   

To compress the BD add a vertical sequence like structure where all frames run independently and in parallel.  As soon as inputs being used for a given frame are present, that frame executes.  I foresee some input tunnel properties where a tunnel could be assigned to one or multiple frames. Tunnel props could authorize a frame to start execution even though all data hasn't arrived at the structure.  This structure is just for visual compression in the BD.