Générateur de fonction (FGEN)
Ces informations s’appliquent aux automates
CompactLogix
5370, ControlLogix
5570, Compact GuardLogix
5370, GuardLogix
5570, Compact GuardLogix
5380, CompactLogix
5380, ControlLogix
5580, GuardLogix
5580 et ControlLogix 5590.L'instruction Générateur de fonction (Function Generator, FGEN) convertit une entrée à partir d'une fonction linéaire par morceaux.
Langues disponibles
Diagramme à relais

Bloc fonctionnel

Texte structuré
FGEN(FGEN_tag,X1,Y1,X2,Y2);
Opérandes
Diagramme à relais
Opérande | Type | Format | Description |
|---|---|---|---|
FGEN tag | FUNCTION_ GENERATOR | structure | Structure FGEN |
In | REAL | balise / immédiat | Entrée du signal analogique dans l’instruction. Valide = tout flottant |
X1 | REAL | tableau | Tableau axe des X, table 1. Combiner au tableau de l’axe des Y, table 1, pour définir les points de la première courbe linéaire par morceaux. Valide = tout flottant |
Y1 | REAL | tableau | Tableau axe des Y, table 1. Combiner au tableau de l’axe des X, table 1, pour définir les points de la première courbe linéaire par morceaux. Valide = tout flottant |
X2 | REAL | tableau | (facultatif) Tableau de l’axe des X, table 2. Combiner au tableau de l’axe des Y, table 2, pour définir les points de la deuxième courbe linéaire par morceaux. Valide = tout flottant |
Y2 | REAL | tableau | (facultatif) Tableau de l’axe des Y, table 2. Combiner au tableau de l’axe des X, table 2, pour définir les points de la deuxième courbe linéaire par morceaux. Valide = tout flottant |
Bloc fonctionnel
Opérande | Type | Format | Description |
|---|---|---|---|
FGEN tag | FUNCTION_ GENERATOR | structure | Structure FGEN |
X1 | REAL | tableau | Tableau axe des X, table 1. Combiner au tableau de l’axe des Y, table 1, pour définir les points de la première courbe linéaire par morceaux. Valide = tout flottant |
Y1 | REAL | tableau | Tableau axe des Y, table 1. Combiner au tableau de l’axe des X, table 1, pour définir les points de la première courbe linéaire par morceaux. Valide = tout flottant |
X2 | REAL | tableau | (facultatif) Tableau de l’axe des X, table 2. Combiner au tableau de l’axe des Y, table 2, pour définir les points de la deuxième courbe linéaire par morceaux. Valide = tout flottant |
Y2 | REAL | tableau | (facultatif) Tableau de l’axe des Y, table 2. Combiner au tableau de l’axe des X, table 2, pour définir les points de la deuxième courbe linéaire par morceaux. Valide = tout flottant |
Texte structuré
Opérande | Type | Format | Description |
|---|---|---|---|
FGEN tag | FUNCTION_ GENERATOR | structure | Structure FGEN |
X1 | REAL | tableau | Tableau axe des X, table 1. Combiner au tableau de l’axe des Y, table 1, pour définir les points de la première courbe linéaire par morceaux. Valide = tout flottant |
Y1 | REAL | tableau | Tableau axe des Y, table 1. Combiner au tableau de l’axe des X, table 1, pour définir les points de la première courbe linéaire par morceaux. Valide = tout flottant |
X2 | REAL | tableau | (facultatif) Tableau de l’axe des X, table 2. Combiner au tableau de l’axe des Y, table 2, pour définir les points de la deuxième courbe linéaire par morceaux. Valide = tout flottant |
Y2 | REAL | tableau | (facultatif) Tableau de l’axe des Y, table 2. Combiner au tableau de l’axe des X, table 2, pour définir les points de la deuxième courbe linéaire par morceaux. Valide = tout flottant |
Reportez-vous à
Syntaxe du texte structuré
pour plus d'informations concernant la syntaxe des expressions dans le texte structuré.Structure de FUNCTION_GENERATOR
Paramètre d’entrée | Type de données | Description |
|---|---|---|
EnableIn | BOOL | Activez l'entrée. Si défini sur faux, l’instruction n’est pas exécutée et les sorties ne sont pas mises à jour. La valeur par défaut est définie sur vrai. |
In | REAL | Entrée du signal analogique dans l’instruction. Valide = tout flottant Par défaut = 0,0 |
XY1Size | DINT | Nombre de points de la courbe linéaire par morceaux à utiliser issus de la table 1. Si la valeur est inférieure à un et que Select est mis à zéro, l’instruction définit le bit approprié dans Status, et la sortie reste inchangée. Valide = de 1 à (tailles de tableau les plus petites de X1 et Y1) Par défaut = 1 |
XY2Size | DINT | Nombre de points de la courbe linéaire par morceaux à utiliser issus de la table 2. Si la valeur est inférieure à un et que Select est défini, l’instruction définit le bit approprié dans Status, et la sortie reste inchangée. Valide = de 0 à (tailles de tableau les plus petites de X2 et Y2) Par défaut = 0 |
Select | BOOL | Cette entrée détermine la table à utiliser. Si elle est mise à zéro, l’instruction utilise la table 1 ; si elle est définie, l’instruction utilise la table 2. La valeur par défaut est mise à zéro. |
Paramètre de sortie | Type de données | Description |
|---|---|---|
EnableOut | BOOL | Indique si l'instruction est activée. Défini sur faux en cas de débordement |
Out | REAL | Sortie de l’instruction. |
Status | DINT | État du bloc fonctionnel. |
InstructFault (Status.0) | BOOL | L'instruction a généré un défaut. |
XY1SizeInv (Status.1) | BOOL | La taille de la table 1 n’est pas valide ou n’est pas compatible avec la taille du tableau. |
XY2SizeInv (Status.2) | BOOL | La taille de la table 2 n’est pas valide ou n’est pas compatible avec la taille du tableau. |
XisOutofOrder (Status.3) | BOOL | Les paramètres X ne sont pas triés. |
Description
L’illustration suivante montre comment l’instruction FGEN convertit une courbe à douze segments.

Les paramètres de l’axe des X doivent suivre la relation suivante :
X[1] < X[2] < X[3] < ... < X[XY<n>Size],
où XY<n>Size > 1, et est un nombre de points dans la courbe linéaire par morceaux, et où n est 1 ou 2, en fonction de la table sélectionnée. Vous devez créer des éléments triés de l’axe des X dans les tableaux X.
L’entrée Select détermine la table à utiliser pour l’instruction. Pendant que l’instruction s’exécute sur une table, vous pouvez modifier les valeurs de l’autre table. Changez l’état de l’entrée Select à exécuter avec l’autre table.
Avant de calculer Out, les paramètres de l’axe des X sont scrutés. S’ils ne sont pas classés dans l’ordre croissant, le bit approprié dans Status est défini et Out reste inchangé. De plus, si XY1Size ou XY2Size n’est pas valide, l’instruction définit le bit approprié dans Status et laisse Out tel quel.
L’instruction utilise cet algorithme pour calculer Out en fonction de In :
- Quand In
X[1], définir Out = Y[1] - Quand In > X[XY<n>Size], définir Out = Y[XY<n>Size]
- Quand X[n] < In
X[n+1], calculer Out = ((Y[n+1]-Yn)/ (X[n+1]-Xn))*(In-Xn)+Yn
Affecte les indicateurs d'état mathématique
Non
Défaut majeur/mineur
Aucun spécifique à cette instruction. Reportez-vous à la section Attributs communs pour plus d’informations sur les défauts liés aux opérandes.
Exécution
Diagramme à relais
Condition | Action du bloc fonctionnel |
|---|---|
Préscrutation | La condition de sortie d'échelon est définie sur faux. |
La condition d'entrée d'échelon est égale à faux | Définir la condition de sortie d’échelon sur la condition d’entrée d’échelon. |
La condition d'entrée d'échelon est égale à vrai | Définir la condition de sortie d’échelon sur la condition d’entrée d’échelon. |
Post-scrutation | La condition de sortie d'échelon est définie sur faux. |
Diagramme de bloc fonctionnel
Condition | Action du bloc fonctionnel |
|---|---|
Préscrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
EnableIn est faux | Les bits EnableIn et EnableOut sont définis sur faux. |
EnableIn est vrai | Les bits EnableIn et EnableOut sont définis sur vrai. Exécutez l’algorithme FGEN. |
Première exécution de l'instruction | N/A |
Première scrutation de l'instruction | Définir la valeur Out interne sur 0,0 Exécutez l’algorithme FGEN. |
Post-scrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
Texte structuré
Condition/état | Action entreprise |
|---|---|
Préscrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
Exécution normale | Les bits EnableIn et EnableOut sont définis sur vrai. Exécutez l’algorithme FGEN. |
Post-scrutation | Les bits EnableIn et EnableOut sont définis sur faux. |
Exemples
Exemple 1
Dans cet exemple, l’instruction FGEN caractérise un signal de débit qui est ensuite totalisé à l’aide de l’instruction TOT. Les tableaux FGEN_01X1 et FGEN_01Y1 sont des tableaux REAL de 10 éléments chacun, pour prendre en charge une courbe jusqu'à 9 segments. Vous pouvez utiliser des tableaux de n'importe quelle taille pour prendre en charge une courbe de n'importe quel nombre de segments souhaités.
Bloc fonctionnel

Diagramme à relais

Exemple 2
Dans cet exemple, les paramètres facultatifs sont transférés à l’instruction FGEN.
Bloc fonctionnel

Diagramme à relais

Fournir une réponse