FlexPro
HistoryBase
Engineering
Training
Downloads
FlexPro-Support
Wissen
Community
Über Uns
Referenzen
Jobs
Allgemeiner Kontakt
Händlerverzeichnis
FlexPro-Support
DE
EN
FR
Placeholder

FlexPro Dokumentation 2025

Python

Python ist eine leicht zu erlernende, quelloffene Interpretersprache, für die eine Vielzahl von Bibliotheken zu Themengebieten, wie künstliche Intelligenz, Statistik, Numerik und vieles mehr verfügbar ist. Eine Einführung in die Programmiersprache Python ist nicht Gegenstand dieser Dokumentation. Diese finden Sie z. B. auf https://www.python.org/doc/.

Python ist sehr flexibel erweiterbar, was eine elegante Integration in FlexPro ermöglichte. Die für die Verarbeitung von Messdaten benötigten Array-Datentypen stellt die bekannte Python Bibliothek NumPy zur Verfügung. Diese sind Basis für den Datenaustausch mit FlexPro, weshalb NumPy bei der Installation von FlexPro mit installiert wird. Informationen zu NumPy finden Sie auf https://numpy.org/doc/stable/.

Das flexpro-Modul

Bei der Initalisierung von Python in FlexPro wird das Python-Modul flexpro registriert, welches die Schnittstelle zu FlexPro darstellt.

Die Python-Klassen flexpro.DataObject und flexpro.Object repräsentieren FlexPro Datenobjekte und sonstige FlexPro-Objekte, sodass Sie auf deren Eigenschaften zugreifen können. Objekte dieser Klassen erstellen Sie mit der Funktion flexpro.object(), welcher Sie als Argument den Pfad und den Namen in der Objektdatenbank des Objekts übergeben, auf das Sie zugreifen möchten.

o = flexpro.object(r'\Data\Dataset1') erstellt ein DataObject, das den Datensatz "\Data\Dataset1" repräsentiert.

Die Variable this ist in jeder Python-Formel bereits initialisiert und enthält das DataObject, dass die Python-Formel selbst repräsentiert.

this.name liefert den Namen der Python-Formel als Zeichenkette.

this.data = np.linspace(0, 10, 100) gibt eine lineare Datenreihe als Ergebnis der Formel zurück.

Hinweis   In FPScript liefert jede Anweisung ein Ergebnis, das automatisch der Formel als Ergebnis zugewiesen wird. In Python ist das nicht so und Sie müssen eine explizite Zuweisung this.data = ... verwenden. Dies gilt auch für Zwischenergebnisse, die Sie während der Fehlersuche mit dem Debugger im Überwachenfenster als Ergebnis der Formel sehen möchten.

Die Daten von FlexPro unterscheiden sich dahingehend von Python bzw. NumPy Daten, dass diese einheitenbehaftet sein können und zusammengesetzte Datenstrukturen mit Y-, X- und Z-Komponente haben können. Listen gibt es zwar auch in Python, diese unterstützen aber keine benannten Listenelemente. Deshalb stellt das flexpro-Modul den Typ flexpro.Data zur Verfügung, der FlexPro Daten mit allen Eigenschaften repräsentieren kann.

Ein flexpro.Data-Objekt mit einfachen oder zusammengesetzten FlexPro-Daten erstellen Sie mit dem Konstruktor flexpro.Data().

flexpro.Data(80.3, "dB") erstellt einen skalaren Fließkommawert mit der Einheit "dB".

Dieses Beispiel erstellt ein Sinus-Signal mit einheitenbehafteter Y- und X-Komponente und gibt es als Ergebnis der Formel zurück:

x = np.linspace(0, 10, 100)
y = np.sin(x)
this.data = flexpro.Data( y, "V", x, "s")

Wenn Sie die Einheiten weglassen möchten, z. B. weil Sie diese im Eigenschaften-Dialogfeld der Formel bereits eingetragen haben, müssen Sie die Argumente benennen:

this.data = flexpro.Data( value_y = y, value_x = x)

Eine FlexPro Liste mit zwei benannten Listenelementen erstellen Sie z. B. wie folgt:

list = flexpro.named_list("Signal1", s1, "Signal2", s2)

Auch Anhängen an eine solche Liste wird unterstützt:

list += flexpro.named_list("Signal3", s3)

Listen ohne Elementnamen können Sie entweder mit dem Python-Operator [ ... ] erstellen oder mit der Funktion flexpro.list(). Letzteres ist etwas effizienter, weil keine Umwandlung ins FlexPro-Datenformat bei der Übergabe an FlexPro nötig ist.

Die Eigenschaft data der Klasse flexpro.DataObject liefert die Daten des Datenobjekts als flexpro.Data Objekt.

data = flexpro.object(r'\Data Set').data

Wenn Sie direkt auf die Daten zugreifen möchten, verwenden Sie die Funktion call:

data = flexpro.call(r'\Data Set')

Eine FPScript- oder Python-Funktion rufen Sie auf, indem Sie call die Argumente mitgeben:

data = flexpro.call(r'\MyFunction', flexpro.call(r'\Data Set'), flexpro.Data(5, 'V'))

Die Klasse flexPro.Data verfügt über die Eigenschaften value und unit. value liefert die numerischen Daten als Python- oder NumPy Array-Datentyp und unit die Einheit als Zeichenkette.

flexpro.Data(1.3, "V").value liefert 1.3 als Fließkommazahl.

flexpro.Data(1.3, "V").unit liefert "V" als Zeichenkette.

Bei einer zusammengesetzten Datenstruktur wählen Sie zunächst die Komponente aus:

signal = flexpro.call(r'\Data\Signal1')

signal.y liefert ein flexpro.Data-Objekt, welches die Y-Komponente mit Einheit repräsentiert.

signal.y.value liefert die Daten der Y-Komponente als NumPy Array.

signal.y.unit liefert "V" als Zeichenkette.

Wenn eine Liste vorliegt, wählen Sie zunächst das Element aus:

list["Signal1"] liefert ein flexpro.Data-Objekt, welches die Daten des Listenelements "Signal1" repräsentiert.

Bei unbenannten Listen oder nicht eindeutigen Namen müssen Sie einen numerischen Index verwenden:

list[0]

Einem flexpro.Data-Objekt, dass von einem Datenobjekt stammt, hängt FlexPro die Kopfinformationen dieses Datenobjekts an. Dies sind im Wesentlichen die Eigenschaften, die Sie auf der Registerkarte Allgemein des Datenobjektes angeben können.

Auf diese Eigenschaften können Sie lesend und schreibend zugreifen:

data = flexpro.call(r'\Signal')

data.unit_y liefert die Y-Einheit des Datenobjektes, von dem der Wert stammt, d. h. von "Signal".

data.comments_x = "Zeit"        Weist den Daten einen X-Kommentar zu. Der Schreibzugriff erfolgt jedoch nicht auf das Datenobjekt "Signal" von dem data stammt, sondern auf eine dem Data-Objekt zugeordnete, lokale Kopie dieses Attributes.

Siehe auch

Python-Funktionen

Python-Eigenschaften