FlexPro
HistoryBase
Ingénierie
Formation
Téléchargements
Assistance FlexPro
Connaissance
Communauté
À propos de nous
Références
Emplois
Contact général
Liste des revendeurs
Assistance FlexPro
FR
DE
EN
Porte-plaquette

Documentation FlexPro 2025

Python

Python est un langage d'interprétation open source facile à apprendre, pour lequel de nombreuses bibliothèques sont disponibles dans des domaines tels que l'intelligence artificielle, les statistiques, le numérique et bien d'autres encore. Une introduction au langage de programmation Python n'est pas l'objet de cette documentation. Vous les trouverez par exemple sur https://www.python.org/doc/.

Python est très flexible en termes d'extension, ce qui a permis une intégration élégante dans FlexPro. Les types de données de tableau nécessaires au traitement des données de mesure sont mis à disposition par la célèbre bibliothèque Python NumPy. Celles-ci constituent la base de l'échange de données avec FlexPro, raison pour laquelle NumPy est également installé lors de l'installation de FlexPro. Vous trouverez des informations sur NumPy sur https://numpy.org/doc/stable/.

Le module flexpro

Lors de l'initialisation de Python dans FlexPro, le module Python flexpro est enregistré et représente l'interface avec FlexPro.

Les classes Python flexpro.DataObject et flexpro.Object représentent des objets de données FlexPro et d'autres objets FlexPro, ce qui vous permet d'accéder à leurs propriétés. Vous créez des objets de ces classes avec la fonction flexpro.object(), à laquelle vous passez en argument le chemin et le nom dans la base de données des objets auxquels vous souhaitez accéder.

o = flexpro.object(r'\Data\Dataset1') crée un DataObject qui représente l'ensemble de données "\Data\Dataset1".

La variable this est déjà initialisée dans chaque formule Python et contient le DataObject qui représente la formule Python elle-même.

this.name renvoie le nom de la formule Python sous forme de chaîne de caractères.

this.data = np.linspace(0, 10, 100) renvoie une série de données linéaires comme résultat de la formule.

Remarque  Dans FPScript, chaque instruction fournit un résultat qui est automatiquement attribué à la formule comme résultat. En Python, ce n'est pas le cas et vous devez utiliser une affectation explicite this.data = ... utiliser. Cela vaut également pour les résultats intermédiaires que vous souhaitez voir apparaître dans la fenêtre de surveillance comme résultat de la formule pendant le débogage avec le débogueur.

Les données de FlexPro se distinguent des données de Python ou de NumPy en ce sens qu'elles peuvent avoir des unités et des structures de données composées avec des composantes Y, X et Z. Les données de FlexPro ne sont pas des données de base. Les listes existent aussi en Python, mais elles ne supportent pas les éléments de liste nommés. C'est pourquoi le module flexpro met à disposition le type flexpro.Data, qui peut représenter les données FlexPro avec toutes leurs propriétés.

Vous créez un objet flexpro.Data avec des données FlexPro simples ou composées à l'aide du constructeur flexpro.Data().

flexpro.Data(80.3, "dB") crée une valeur scalaire en virgule flottante avec l'unité "dB".

Cet exemple génère un signal sinusoïdal avec des composantes Y et X à l'unité et le renvoie comme résultat de la formule :

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

Si vous souhaitez omettre les unités, par exemple parce que vous les avez déjà saisies dans la boîte de dialogue des propriétés de la formule, vous devez nommer les arguments :

this.data = flexpro.Data( valeur_y = y, valeur_x = x)

Vous créez par exemple comme suit une liste FlexPro avec deux éléments de liste nommés :

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

Les pièces jointes à une telle liste sont également prises en charge :

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

Vous pouvez créer des listes sans nom d'élément soit avec l'opérateur Python [ ... ], soit avec la fonction flexpro.list(). Cette dernière solution est un peu plus efficace, car aucune conversion au format de données FlexPro n'est nécessaire lors du transfert vers FlexPro.

La propriété data de la classe flexpro.DataObject fournit les données de l'objet de données en tant qu'objet flexpro.Data.

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

Si vous souhaitez accéder directement aux données, utilisez la fonction call:

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

Pour appeler une fonction FPScript ou Python, il suffit de donner les arguments à call:

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

La classe flexPro.Data dispose des propriétés value et unit. value fournit les données numériques comme type de données Python ou NumPy Array et unit l'unité comme chaîne de caractères.

flexpro.Data(1.3, "V").value renvoie 1.3 sous forme de nombre à virgule flottante.

flexpro.Data(1.3, "V").unit renvoie "V" sous forme de chaîne de caractères.

Dans le cas d'une structure de données composée, vous sélectionnez d'abord le composant :

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

signal.y fournit un objet flexpro.Data qui représente la composante Y avec unité.

signal.y.value fournit les données du composant Y sous forme de tableau NumPy.

signal.y.unit fournit "V" comme chaîne de caractères.

Si une liste est disponible, commencez par sélectionner l'élément :

list["Signal1"] fournit un objet flexpro.Data qui représente les données de l'élément de liste "Signal1".

Pour les listes sans nom ou les noms non uniques, vous devez utiliser un index numérique :

list[0]

A un objet flexpro.Data qui provient d'un objet de données, FlexPro attache les informations d'en-tête de cet objet de données. Il s'agit essentiellement des propriétés que vous pouvez indiquer dans l'onglet Général de l'objet de données.

Vous pouvez accéder à ces propriétés en lecture et en écriture :

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

data.unit_y fournit l'unité Y de l'objet de données dont provient la valeur, c'est-à-dire de "Signal".

data.comments_x = "heure"        Affecte un commentaire X aux données. L'accès en écriture ne se fait toutefois pas sur l'objet de données "Signal" dont provient data, mais sur une copie locale de cet attribut affectée à l'objet Data.

Voir aussi

Fonctions Python

Propriétés de Python