DIAdem

cancel
Showing results for 
Search instead for 
Did you mean: 

Balkendiagramm mit einzelnen Werten aus verschiedenen Kanälen

Solved!
Go to solution

Hallo Leute,

 

ich bräuchte dringend Hilfe.

Ich möchte in einem Balkendiagramm bei Reports einzelne Werte (z.B. Maximum eines Kanals) miteinander vergleichen. Das ganze sollte dann automatisiert mit einem Python-Skript laufen. Hat da jemand eine Idee? Ich kann immer nur ein Signal über die Zeit oder andere Kanäle darstellen. Dabei sollte in der X-Achse einfach Messung 1,2,3,... stehen, und in der y-Achse der jeweilige Maximalwert eines Kanals.

 

Bin dankbar über jede Hilfe!

 

LG Paul

0 Kudos
Message 1 of 3
(823 Views)
Solution
Accepted by topic author straupa

Hallo Paul,

 

was ist genau die Aufgabe und was soll per Script automatisiert werden? Soll das Script lediglich die Kanäle anlegen, die später als Kurve bzw. Balken dargestellt werden sollen, oder soll es auch die Achsensysteme in REPORT anlegen und mit Kurven füllen? Beides ist in DIAdem möglich. Die Daten und das Layout können komplett per Script angelegt und parametriert werden.

 

Wenn es ein vorbereitetes Layout gibt, das bereits eine Kurve enthält, die die Balken darstellt, können mit folgendem Python-Script die Maxima von mehreren Kanälen als Balken angezeigt werden. Dazu läuft das Script über eine bestimmte Auswahl an Kanälen, die ich beispielhaft mit

dd.Data.GetChannels("[5]/Test_*")

bestimme, so dass alle Kanäle, die mit Test_ beginnen, verwendet werden. Anschließend wird der neue Kanal mit dem Namen "Maxima" angelegt und mit den Maximum-Werten der Kanäle gefüllt. Diesen Kanal habe ich bereits im REPORT-Layout als Balken-Kurve eingetragen. Das könnte aber auch per Script erfolgen.

 

 

def CreateMaximaChannel():
    maxima = []   
    input_channels = dd.Data.GetChannels("[5]/Test_*")
    for chn in input_channels:
        maxima.append(chn.Maximum)
    maxima_chn_name = "Maxima"
    group_channels = dd.Data.Root.ActiveChannelGroup.Channels
    if group_channels.Exists(maxima_chn_name):
        chn_maxima = group_channels(maxima_chn_name)
    else:
        chn_maxima = group_channels.Add(maxima_chn_name, dd.DataTypeChnFloat64)
    chn_maxima.SetValuesBlock(maxima)

# Load data and REPORT layout
dd.Data.Root.Clear()
dd.DataFileLoad("EXAMPLE.TDM", "", "Load|ChnXYRelation")
dd.Report.LoadLayout(dd.CurrentScriptPath + "Maxima_Bar.TDR")

# Create channel with maxima values
CreateMaximaChannel()

 

 

Wenn keine neuen Kanäle angelegt werden sollen, können Sie auch mit der Kuventransformation arbeiten, die einen temporären Kanal zum Zeichnen anlegt, der nicht im Datenportal sichtbar ist. Weitere Informationen finden Sie in der Hilfe.

 

Viele Grüße

AnJalpaka

Message 2 of 3
(797 Views)

..

0 Kudos
Message 3 of 3
(781 Views)