Quantcast
Channel: DIAdem topics
Viewing all 3198 articles
Browse latest View live

Contour plot (X,Y,Z) when Z is a Matrix in Diadem

$
0
0

I am trying to write a Script to Plot a contour graph x,y,z when every component is a column of a Table except Z, is a matrix ( several Columns)

anyone help me with the script. I tried recording it but it does Not give me enough information. And there is no infos about contour matrix in the Manuel.

Thanks in Advance


VLM 3.1 Not Applying Changes

$
0
0

Has anyone else experienced VLM 3.1 hanging up after accepting permissions from a new user and clicking "Apply Changes"?VLM3.1NotApplyingChanges_180322.png

VLM 3.1 Restrict Number of Seats a User Can Have

$
0
0

Does anyone know how to restrict the number of DIAdem seats a user can simulataneously access through VLM3.1?  We have a couple of users who forget that they are already running DIAdem on their computer, so they open it a second (and sometimes a third) time.  This pulls an additional license for each instance that is running.  Instead of opening additional seats, I would like to have VLM3.1 throw an error message "Sorry, you already have the maximum number of licenses checked out to a single user."

Report.ExportToImage() triggers error

$
0
0

Hi, im trying to export 2DAxis to a png file, but i error, the code is simple like this and the report object exists and has one curve

 

Report.Settings.ImageExport.PNG.BitsPerPixel = ePNGBitsPerPixelRGB24
Report.Settings.ImageExport.PNG.Width = 300
Report.Settings.ImageExport.PNG.UseRatio = True
Call report.ActiveSheet.Objects("2DAxis1").ExportToImage("C:\DEV\axis", eImageExportTypePNG)

I tried it like this without file extension specified like is written in help, and as well with extension. still the same error:

 

exportImageError.png

Diadem 2017 64bit, windows 7

Mark the signal route in 2D-Curve

$
0
0

Hello guys,

 

I'm looking for a way to mark the route of the signal in a curve, where the x-axis is not a time, but another measured channel. The attached picture "initial" shows the actual situation. The start and end points are marked, but the signal route is ambiguous.

 

My first idea is to have something similat to "option A". Though the markers available in Diadem (e.g. triangles) don't change the direction with the curve, so it doesn't help...

 

Another one possibility could be the "mirroring" of the x-axis (see "option B"), but here I cannot imagine how Diadem can handle this...

 

Maybe someone have similar issue and know the solution?

 

Best regards,

dia

Saving R32 data files as csv

$
0
0

Hi,

 

I'm new to DIAdem and VB scripts and want to convert data files automatically to csv. I have a "data.DAT", "data.R32" and "data.TSX" file for multiple "data"s.

 

If I run the following code, only the header information from "data.DAT" is saved in the csv:

ElementList = DataFileLoad("data.DAT", "DAT", "LoadImmediately")
Call DataFileSave("data.CSV", "CSV")

How can I also save the data from "data.R32" in the CSV?

Write channel length to new channel

$
0
0

Would someone please help me get the channel length of Channel 1 and write that property into a new Channel 2? I can get it to come up in a message box but I really want to write it to a new channel.

 

This is what I did to write it to a message box.

A = ChnPropGet("[1]/ChannelA", "length")
Call MsgBoxDisp(A)

 

Seems this should be very easy but for some reason I cannot make it work!

 

Thank you!

Compound Classification - RPM, Load and Fuel Consumption

$
0
0

I have engine data for Speed, Load and Fuel Consumption. I want to create a HIstogram for this data, and plot this in the form of a 3D Characteristic Diagram. With the histogram classes Speed (RPM) and Load (Nm) on the x and y axis and % Fuel Consumption on the x-axis.

 

I have so far used ChnClassXRedXY to create 2D Histograms for Speed and Fuel, and then Load and Fuel, but can not figure out how I do this within the Compound Classification. I have coded up a For Loop but my data sets are large and this is taking a long time to run.

 

This question was asked by Nate back in 2011 but no answer was provided.

https://forums.ni.com/t5/DIAdem/Load-Collective-Duty-Cycle-calculation-in-DIAdem/td-p/1626574

Any help please?

 

Hannah


smoothing a decreasing step function

$
0
0

Hello,

 

i have a step function (red graph) which I want to smooth. The smooth function should proceed through the middle of the step (black graph). How can I do this in Diadem?

DIAdem - Default Plot Curve Colors

$
0
0

Hello Everybody,

I'm using DIAdem to evaluate my measurement data.

So if i want to plot a curve in a graph, the first curve default line-color is always red, the second green, the third blue and so on... It seems to be the sequence of the color palette in the adjustments.

Is there a opportunity to change the default sequence? e.g. that the first color is blue, the second color is green...

 

Thanks for the effort,

chrischros

 

Student version activation

$
0
0

Hi,

I have succesfully installed and activated Labview 2017 Student edition on my computer, but nevertheless my efforts, I am yet to be able to activate DIAdem student version.

I have tried it in the program (as it is requires me to activate before running) and also on ni.com/activate but it kept sending me "technical error."

 

I would like to ask if anyone could help me about this one.

 

Thanks

ChnPeakFind error

$
0
0

I'm using ChnPeakFind in a script.  The script completes without error, but fails to calculate for all the channels.  The script loops through 56 channels, designed to find min and max.  All but two of the channels calculates just fine.  2 of the last 4 channles don't calculate.  No messages.  When I use the "Peaks Find..." in the ANALYSIS menu on those 2 channels, it warns me "Preview aborted due to general error.".  But, i have no idea what the error is. 

 

So my question is, "What can cause this general error message knowing that it works for 54 channels, but fails for 2?"

 

Here's the loop

 

 for each oGroup in oMyGrps
      if oGroup.Properties.Exists("Include") then exit for
      'if oGroup.Channels.Exists(oMyGrps(1).Channels(i).Name) then
      if oGroup.Channels.Exists(sChnNames(i)) then
         j = oGroup.Properties("Index").Value

         iStartRow = ChnFind("Ch(""[" &j& "]/Time "") >= " & iLowTrim)  
         if iStartRow < 1 then iStartRow = 1
         if (oGroup.Channels("Time").Size - iStartRow) < iTotalPoints(j) then iTotalPoints(j) = (oGroup.Channels("Time").Size - iStartRow)
         if oGroup.Channels("Time").Size > oGroup.Channels(i).Size then iTotalPoints(j) = (oGroup.Channels(i).Size - iStartRow)
         if iTotalPoints(j) < 1 then exit for

         'Move time and data to temp channels (so you don't damage existing data)
         Call DataBlCopy("'[" & j & "]/Time'",iStartRow,iTotalPoints(j),"'Temp/Time'",1)

         Set oTempChn(1) = oTempGrp.Channels.add(oMyGrps(j).Name,DataTypeFloat64)
         Call DataBlCopy("'[" & j & "]/" & sChnNames(i) & "'",iStartRow,iTotalPoints(j),"'Temp/" & oTempChn(1).Name & "'",1)
      
         ''''''''''''''''''''''''''''''''''''      
         'Find min and max of curve
         '''''''''''''''''''''''''''''''''''
         Call ChnPeakFind("Temp/time", "Temp/" & oTempChn(1).Name, "Temp/TimeatPeak", "Temp/Peak", 1, "Min.Peaks", "Amplitude" )
         CHD(j,sStatsChnMin(0)) = CHV(1,"Temp/Peak")
         CHD(j,sStatsChnTimeMin(0)) = CHV(1,"Temp/TimeatPeak")
         Call ChnPeakFind("Temp/time", "Temp/" & oTempChn(1).Name, "Temp/TimeatPeak", "Temp/Peak", 1, "Max.Peaks", "Amplitude" )
         CHD(j,sStatsChnMax(0)) = CHV(1,"Temp/Peak")
         CHD(j,sStatsChnTimeMax(0)) = CHV(1,"Temp/TimeatPeak")
         CHT(j,sStatsChnName2(0)) = oMyGrps(j).Name  ' & "-" & sChnNames(i)
   
      end if
   next

 

ChnEventFind could not find timestamp

$
0
0

I have a timestamp channel as

oGrp.Channels("CorrectedDateTime")

I would like to find index where the timestamp is larger than "06/01/2017" and remove data of all channels at index before this timestamps I can successfully use ChnFind to and DataBlDel to do it as:

 

index = ChnFind("ValEqualGT(A,B)", 1, array("A", "B"), array(oGrp.Channels("CorrectedDateTime"), CDate("06/01/2017")))
Call DataBlDel(oGrp.Channels,1,index-1)

However, it takes long for ChnFind function to find the index.

 

 

Is it possible to use ChnEventFind to achieve same result? Here is what I tried but the ChnEventDuration gave 0.

ChnEventResultList = ChnEventFind("(A > B)", array("A","B"),array(Data.GetChannel("[1]/CorrectedDateTime"), CDate("06/01/2017")))
msgbox(ChnEventDuration(ChnEventResultList))

Also, in ChnEventFind, why did it fail when I use oGrp.Channels("CorrectedDateTime") instead of Data.GetChannel("[1]/CorrectedDateTime") ?

Thanks

REPORT - n systems plots - Curve Related - Sub systems

$
0
0

Hi,

When I create a graph in VIEW, I can plot several channels in the same subsystem using the "curve related" option. However when I transfer to REPORT, all the curves are in different systems and I can't find a way to put them together again.

Is there a way (with a script?) to create display options to add subsystems (in the 'Axis Position' tab) and then select the right system for each curve (in the 'Curve List' tab)?

 

Any help is appreciated.

Thanks

Pierre

3D table method

$
0
0

Hi. I am sungbae chi
AE from NI korea.

 

I want to make 3d table from my raw data.xls attached.  Then I don't know how to arrange to report.xls attached.
I've tried to use '3D table with Labels' in 'REPORT'. But, there is no option  to build what I want to. 

for example, I just want plot 10 Points(x,y,z) [In excel, 3*10 array]. but, In DIAdem report, There should be '10*10*10' points made. 
Is there anyone knows how to?
1.PNG


recognizing probable candidate mathematical models

$
0
0

I'm in search of data sets that I can analyze with our new math recognizer software. The software

  • uses artificial intelligence to recognize probable candidate mathematical models for the data
  • perform standard mathematical model fits for the best candidate models found
  • compute the standard statistical goodness of fit and statistical power statistics
  • compute and report a quantitative measure of the "falsifiability" of the mathematical model
  • generate code for verification

We've done some testing on simple data sets but need to expand our view. Please send me a message to see if we can help fitting your model data.

Report Comparisson between 2 .dat or .tdm files in one single report (.pdf/.ppt)

$
0
0

Can DIAdem load 2 .dat or .tdm files at the same time and make a report , for example saving the report as a .pdf and having all the signals on half screen, half screen first .dat/.tdm recording, half screen the other recording?

The 2 files contain the same channels, the signals are grouped in more than one group due to speed of recording of certain labels.

 

Thank you.

USI API Specification - DataPlugin in LabVIEW

$
0
0

Hi,

I'm developing my first DIAdem data plugin and I decide to choose LabVIEW to do this. There are couple of examples but they do not specify USI interface arguments such as: _ni_lv_usi_plugin_length, _ni_lv_usi_plugin_index, _ni_lv_usi_plugin_cacheId, _ni_lv_usi_environmentId, _ni_lv_usi_plugin_channelid, _ni_lv_usi_filename. The argument called Parameters is also quite enigmatic. The way these plugins works is also poorly described in LV_DataPlugin_SDK.pdf, so any additional info about the mechanism will be appreciated.

 

I would like to know what are these arguments for.

 

My final purpose is to create data plugin for Keithley 2701 which collects temperature on 80 channels. The data in DIAdem should have separate group channel for each DAQ channel since each DAQ channel measures temperature with a separate timestamp (samples are not at the same time so the data can't have single x-axis channel). Example data file in the attachment (item column should be skipped).

 

Thanks for your help in advance Smiley Happy

Drag and drop multiple groups to the VIEW 2D axis system

$
0
0

How to drag and drop multiple groups to the VIEW 2D axis system? I have an internal data with 80 groups, each has two channels: time (x-axis) and temperature (y-axis). I can drag and drop them one by one but can't in a batch :/

CSV import data to channel in DIAdem

$
0
0

Hi,

 

Due to limitations of VBScript language, after much digging, I figured out how to write some channel data to what I will call an 'Excel CSV'. This contains CSV lists as a 'row' and newlines at the end to signify the next row. So it has rows and columns, but does not adhere to the official CSV rfc 4180 so I call it Excel CSV since this is how Excel exports a spreadsheet when saved as CSV.

 

1,2,3,4\n

1,2,3,4\n

etc

 

Achieved like so:

 

Dim oMyChannelList
Set oMyChannelList = Data.GetChannels("*regex-like*_otherID/someChannel_*")
'Call oMyChannelList.Add(Data.Root.ChannelGroups("SomeIDentifier") ' for all channels in group
Call DataFileSaveSel("<filename>" & RootPathName & tmpDir & outputFile & "</filename><delimiter>,</delimiter>", "CSV", oMyChannelList)
' https://forums.ni.com/t5/DIAdem/comma-as-decimal-separator/m-p/726321?query.id=146775#M8851
' ^^ This fails if tmp folder not created.. so we use names #VBSprobs

Which exports to CSV (with commas as delimiters).

 

The importing into channels has been a major headache, however.

 

I would like to create channels within a pre-existing channel group. After setting the channelgroup as oGroupChns = Data.Root.ChannelGroups("thenameofchannelgroup").Channels

 I have tried to import from CSV in the same format it was exported ('Excel CSV') using all of the following, separately, at one point:

 

'Call DataFileLoadSel(RootPathName & "\test\tmp\channels_out.csv", "CSV", ImportSelection, [ImportAction])
' ^^ test row to serve as a template with fields filled in
Call DataFileLoadSel(RootPathName & "\test\tmp\channels_out.csv", "CSV", oGroupChns & "/channelNum*", "Load")
 Call DataFileLoadSel(RootPathName & "\test\tmp\channels_out.csv", "CSV", "[12]/channelNum1", "Load")
Call DataFileLoadSel(RootPathName & "\test\tmp\channels_out.csv", "CSV", "*", "Load")
 Call DataFileLoad(RootPathName & "\test\tmp\stuff.csv", "CSV", "Load")
' ^^ A simple one line test CSV, works but creates its own group, and is test data not real data

It throws an error for an exception, but leaves no clues as to what the exception is for! Not even a name. I cannot seem to reproduce this today, it just doesn't import the data into the created channels: channelNum1 through 9. There are 9 columns in the csv to represent the 9 channels.

 

I poured over the forums and found some code similar to this:

Dim ch0: set ch0 = DataFileLoadSel(RootPathName & "\test\tmp\test.csv", "CSV", oGroupChns & "/testNum1", "Load")(1)
ch0.Name = "one"
ch0.properties("description").value = "OVER 9000!!!"
call DataFileSelDlg(RootPathName & "\test\tmp\channels_out.csv", "CSV") 
' ^^  Works! but not automatic enough

Call DataFileLoadSel(RootPathName & "\test\tmp\channels_out.csv", "CSV", "[12]/[354]", "Register")
 Dim oMyElementList
 Set oMyElementList = DataFileLoadSel(RootPathName & "\test\tmp\channels_out.csv", "CSV", , "Load")
call ChnSum(oMyElementList, "ChannelStuff")

The DataFileSelDlg, works exactly how I expect my code to work (except that it creates a new ChannelGroup) so I am confident my CSV is ok, but it requires user intervention which is not desireable. I have tried both Load and Register ImportActions, which both seem to do the same thing in the DataFileSelDlg when pushing appropriate buttons. I don't see very many examples of CSV importing out there, and I have been looking for many hours to accomplish a task which is trivial (< 5 min) in a better documented and supported language like Python. Any help is appreciated.

 

TL;DR

 

I want to read my CSV data into an existing channelgroup and none of the above that I've tried has worked, and root causing the source of error has been challenging.

 

 Edit: I have tried DataFileLoad, similar to above:

Call DataFileLoad(RootPathName & "\test\tmp\stuff.csv", "CSV", "Load")

but with my actual data and it works, but creates its own channelgroup. I can copy/rename these in a very convoluted way, but programatically.  I am seeking a more simple solution to read from CSV and write directly into the channels I have created in my oGroupChns ChannelGroup object.

 

Also, here is a useful link for attempts at error resolution in VBScript&colon;

http://zone.ni.com/reference/en-XX/help/370859J-01/vbs/general/vbs_onerror/

But was not useful in finding my unknown exception described earlier, and is nowhere near as specific or nice as Python.

Viewing all 3198 articles
Browse latest View live