Additional NI Software Idea Exchange

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

Powerful of Hierarchical State Machine Handling with GOOP Fully Implementation

https://github.com/saosawas/LabVIEW-Hierarchical-State-Machine-Object 

 

{Feature}

-> Precompile Source Code for maximize performance and Fully OOP Implementation

-> Dual option License mode (Free / Commercial) normally use Free mode , if some time need to protection using Commercial mode the Framework will require Activation Code.

-> All Sub Class(Inheritance) only Call Parent and no need to additional Coding, so It’s improve mistake and reduce Develop time

-> Higher Runtime version support , this framework is able to run with higher Runtime version , no need to re-Compiler on the future

-> Memory Safe and Faster with DVR Encapsulation , All State Object is reserved of independent memory (Crash & Malfunction Guarantee)

-> Terminate Wait Milliseconds or Delay Function with State_Interval Class and State Timeout, So the All Tasking is execution at the same time and monitoring with own clock

-> Light weight and Overhead less

 

HSMO Package Installation.png

 

HSMO Project Demo.png

 

HSMO Multiple Front Panel.png


https://github.com/saosawas/LabVIEW-Hierarchical-State-Machine-Object

 

#HSMO

I'm using Veristand for eVTOL TestCell application.

I would like to have XY graph UI component on screen like which Flexlogger have.

 

Iniesta_Lujn_0-1748063924500.png

 

For many non-trivial system definitions, it is unrealistic to expect users to manually map the 100s or 1000s of required channels so mapping files will be scripted so they can be imported into VeriStand.

 

When using the Import Mapping dialog, it's hard to tell whether the import process really worked. Each channel shows its status individually but it would be helpful if the dialog reported the results at the bottom such as "256 Connections Made, 512 Skipped (Connection Already Exists), 16 Errors".

 

If the destination is already mapped it would also be good to check whether it's mapped to the same channel in the file or a different channel entirely as trying to create the same mapping isn't really an issue while trying to map two channels to the same destination very much is.

 

It would be even more helpful if you could filter these results to only show Errors or Connections Made.

 

10-04 14_10-Import Mappings.png

 

The image above is importing from a file with ~5000 mappings so scrolling through the entire report to see if there were any problems is prone to errors.

s2labs_subkirbycorpcom_0-1724705960030.png

Please add the ability to have the arbitration ID be displayed as Hex like it does in MAX

Hi,

 

NI DAQmx Home Assistant integration would be cool.

 

https://www.home-assistant.io/integrations/

 

BR, Ilkka

Often times, the values of numeric indicators are changing rapidly and it is necessary to create Calculated Channels with Averaging [Smoothing] functions to make it easier for the operator to interpret the data.  When you need to do this for dozens of channels, this is very time consuming for the end user and requires unnecessary resources of the RT controller in performing these calculations.

 

With charts, it is possible to edit the Streaming Rate, but with Numeric Indicators this is not possible.  

 

Request:

 

  • Add an option in the Configuration Pane, for the numeric indicator selected, to Average the channel value by xx points (n)

 

ATarman_0-1701189534025.png

ATarman_1-1701189689183.png

 

 

Request for evaluation by a user group and update of VeriStand System Explorer user interface.  The System Explorer user interface has changed little in several years - small improvements, such as allowing the user to enter formulas using the PC keyboard rather than the interface within the Calculated Channel Configuration Page would be significant.  As an example, the INERTIA Calculation Custom Device is more user friendly and intuitive.  

 

Additionally, the ability to better organize Calculated Channels, Alarms, Aliases, User Channels, etc. after creation would be helpful.  For large projects, where we have dozens of variables and calculated channels, it is a significant amount of work to organize after the variables or calculated channels are created.  Creating folders beforehand to help organize is a workaround, but after the fact, using the Cut and Paste functions are clunky - the ability to drag and drop would be preferred.

 

ATarman_0-1692273223314.png

ATarman_1-1692273239297.png

ATarman_2-1692273514261.png

 

 

 

A NI cDAQ-9172 device transmits the measurement data as part of a complex machine.
The NI MAX programme is functioning successfully during certain visits. The software stopped working after some machine support.

 

In an attempt to resolve the problem, the module was updated to version 16, installing all the necessary drivers.


The Active LED and Ready LED indicate that power is applied, but a USB connection has not been established. (Active LED: amber; Ready LED: off)
In software: The device is not reachable, and red cross icons appear next to the chassis and the modules in NI MAX.

 

and an error appears: (Status Code: -88705) The specified device is not present or is not active in the system. The device may not be installed on this system, may have been unplugged, or may not be installed correctly.
Status: not present

 

In the NI device monitor, no NI devices were detected.

 

 

How can I get the USB connection established?

 

 

 

The way we use VeriStand [currently 2019 SP1] and the INERTIA custom device for drivetrain testing, we work off a project template that may be reused for new tests, but a great deal of editing must be made to the system definition file for each project.  

While starting up a new test fixture, I am undeploying the VeriStand project multiple times per day to make edits to the system definition file procedures, alarms, calculated channels, etc.....items that can not be edited [or at least retained after undeployment, such as alarm and user channel variables].  

I would like the opportunity to edit a system definition file while the project is deployed so I do not lose downtime on test run time.  Would it be possible to, similar to SharePoint, "check out" a system definition file to edit it while the project is deployed, and after the edits are completed, undeploy and then "check in" the new system definition file.  

This feature could be integrated with a versioning feature to retain a specific number of revisions of the system definition file - say a preference that specifies to retain 15 prior versions of the system definition file.  

NI TSM installs the attached code for simulating chassis and modular instruments that don't already have simulation plugins to MAX provided with their drivers.  There's no reason I can tell that this functionality should be limited to NI TSM given that modular instruments are used outside of TSM (and TestStand) all the time.  Please add this simulation capability to NI MAX!

Download All

I have been using Flexlogger for about 6 months now. 

 

Few issues I would appreciate if could be addressed. 

 

I would highly appreciate if Accelerometer channels can also calculate velocity and displacement. ( Read Dewesoft X another platform that does the same)

 

It would help greatly either if we could move out screens tabs independently out of the window like a web browser or some type of multi-monitor support for display screens

 

We can change background colors or set the system as transparent, it would be good if we could change the transparency value for UI indicators. 

 

It would also be a great feature if we could get configure display settings on the graphs to a higher degree. Graphs could use an aesthetic overhaul. 

 

It would be great to have some graphics feature for P&I which are interactive based on the unit values that are linked. 

 

Few more dial options, and maybe some design resources on the training pages for building better looking dashboards. 

 

Regards

Sandeep Ghosh

Quality Engineer III

101 William White Blvd.

Pueblo, CO, 81001

Phone: +1.719.585.3926

Mobile: +1.719.289.6535
Email: sandeep.ghosh@trane.com
Website: www.trane.com


 

WD HMI.JPG

 

Motor Vibration.JPG

 

In the everyday life of a SW developer, it comes again and again to the fact that problems arise, and must be solved.

 

It must be weighed again and again whether a problem resulted from own errors or whether the cause of a problem is to be found by errors in the development environment or in used modules such as xNET, DAQmx etc.

 

It happened to me several times in the past that I looked for errors in my own LabVIEW source code, but afterwards I realized that the cause of the problem was a malfunction in LabVIEW or in one of the used drivers.

 

In order to become aware of possible problems as early as possible during this troubleshooting process, it is important to be actively informed about possible problems inside of the NI Modules.

 

For example, it would be helpful to be notified with an email in the following cases.

- A new entry in the Known Issues and Bugs list

- The new possibility of a workaround

- Availability of a bugfix in a new LabVIEW or driver version

 

My suggestion would be the following:

Would it be possible to provide within the NI account settings a list of modules in which you can choose the notifications for the different Modules?

 

John_Wire_1-1654263264557.png

Whenever something in the known issues has changed the NI account member would get a notification via E-Mail.

 

It would also be possible to make entire subgroups or subject areas selectable.

The technical implementation is certainly possible in different ways. Crucial is that there is the possibility of an active notification for changes in the different known issue lists.

 

Hi,

We try to connect on "EXTERNAL" opc ua server (like injection press, data acquisition systems, ..) that generate custom notifiers.

The weakness on OPC UA toolkit is that it is a closed environment.

I am able to connect the toolkit on the notifier and catch the event with actual tool, but all data of the event (plots, values, ...) are unreachable (UA expert show them).

A very simple Python code is able to retrieve these data, but there are out of the labview environment, and as it has to create a thread on the notifier, I am unable to run such structure through the Python tools in LabView.

 

Some example:

daniel_rudaz_0-1637852870896.png

A shortcut of ENGEL structure

daniel_rudaz_1-1637853101303.png

Event registration need filtering, ENGEL

daniel_rudaz_2-1637853224845.png

Event registration need filtering, Kistler COMO Neo

daniel_rudaz_3-1637853400030.png

 

Data in each event, Kistler COMO Neo

 

Thanks in advance.

Download All

When testing, the beauty of automation is, that we can do the same test on many instances just by copy & pasting the code and modify the in-/outputs. Unfortunately, the stimulus profile editor is not know for it's usability when it comes to copy & paste or even applying changes to multiple lines at once.

 

Now what would be a great addition here, would be to actually rely on the hierarchy of channels (the prime example are CAN Frames). I want to perform the same test, using different CAN Frames that contain some signals for a motor.

MotorLeft_Status/Position

MotorLeft_Status/Speed

MotorLeft_Status/ErrorBit

 

MotorRight_Status/Position

MotorRight_Status/Speed

MotorRight_Status/ErrorBit

 

To perform the same test on these signals, I'd have to call a realtime sequence with all of the above as parameters. What I want to do, is just give the Top-Level Path (MotorRight_Status and on the next call MotorLeft_Status) to the sequence and then within the sequence, read the actual signals that I need from this CAN Frame.

 

The same could be done for the physical signals of the motor if they're organised nicely.

RT time is not the same as PC time unless you:

 

1) manually set PC and RT time so the y match

2) configuring the PC and RT Linux to sync to an internet NTP time server (requires a special configuration on the RT target)

3) configuring the PC and RT Linux to sync to a NTP time server on the local LAN (requires a special configuration on the RT target)

 

Why is it important for the computer time to match or at least be within a few seconds? Because the logfile name is based off of PC time and the data timestamps are based off of RT time.  If the time between the computers don't match, confusion exists as to why there are different times.

 

A very simple solution is to sync the PXI time clock to the PC time when the Veristand project is deployed.  At least for a few days the timestamps will be within a few seconds of each other.

In a database (DBC or xml), signal could have a long name property. This property is not avaible in Xnet databse editor or in LabVIEW. That could be a probleme when several signal have the same first 32 character.

Always with Xnet, when reading signal value (or reading frame and convert frame to signals), the result is always a number. In database, some signal have a convertion table to string for a better understading

Download All

For the AK protocol (probably for any of the protocols supported by the add-on), the add-on expects numbers (represented as strings) for each returned parameter in the device response, but, if there is an error converting the string to a number, all further processing of the response is stopped and 0's are returned for their values

.

Suggestion: continue processing/parsing the remaining parameters. The final overall error code could be bit-mapped to indicate which parameter(s) has an error and use a base error-code of 0x80000 with bits 0 thru 14 to indicate which parameter(s) had the decode error and bit 15 to indicate parameter 16 or above had an error (or something like that). And the value for the parameter(s) that had the conversation error would return a globally user-defined value (for the driver) such as -999.999 so data being collected or displayed in Veristand can show the data is not available or in an error state.

Would like XNET session to filter source addresses at the session level based on source address(es) specified in the dbc file.  Currently only way to filter is apparently to specify each individual frame to be filtered.  See screenshots of sample dbc and code required to filter multiple frames below.

Powertrain_0-1617281888294.png

 

Powertrain_1-1617281900942.png

 

All,

I'm looking at the Channel Settings area in the Configuration tab within a task...

1) Why is the tab window area locked to one size?  Shouldn't this be maximized to fit the window area available?  I've got probably 3-4x as much dead space around the window as I do actual window I can work in...   

2) Why not show the Channel Settings area as a spreadsheet type interface? 

3) Maybe have the Connection Diagram as a separate popup window when needed.

 

Thoughts?

 

Thanks,

CH

The aim here is be able able to communicate with several Ethercat slaves, and to be able to disconnect and reconnect some of them without affecting communication with orthers. 

 

 There is already a Refresh module vi which is refresh the global system state containing all slaves. The problem with this vi is as follow :

 

- Let's assume we are using 5 Ethercat slaves. If i disconnect 2 of them while program is running, it doesn't affect communication with others. Now if want to reconnect just one of the two i just disconnect (must be as the same place as before), if i use the vi refresh module, it will raise an error because labview won't find the last slave which is still not disconnected so the 4th slave reconnect won't be able to switch to operationnal mode.

 

- If we use the method node which enables to switch Ethercat slave state to operationnal mode, we will be able to switch the reconnected slave to operationnal mode and communicate again with him without an error. This method will raise an error when trying to sitch the 5th slave which is still not connected but you juste have to erase this error.

 

Now you can communicate with the 4 Ethercat slaves without error ( 3 + 1 reconnected).