Description de la fonction
LIFO est un registre de pile 'dernier entré/premier sorti'.
L'utilisateur ne peut visualiser ni l'indice ni le registre de pile. Le registre de pile fait partie de l'état interne et peut contenir jusqu'à 2 000 octets (c'est-à-dire soit 1 000 éléments INT, soit 500 éléments REAL, soit 500 éléments TIME).
Le bloc fonction a deux entrées booléennes GET et SET, afin de permettre la lecture d'une valeur du registre de pile ou l'écriture d'une valeur dans ce même registre. Lorsque vous activez GET et SET simultanément, SET (écrire) est d'abord exécuté, puis GET (lire).
Le registre de pile est supprimé, si R(eset) = 1.
Les paramètres d'entrée qui vérifient la pile doivent être mis dans un ordre utile pour que le bloc fonction soit exécuté de manière sensée.
Exemple d'ordre cohérent :
Cycle
|
Paramètre
|
Résultat
|
Cycle n
|
R=0, SET=0, GET=0
|
Pile non initialisée
|
Cycle n+1
|
R=1, SET=0, GET=0
|
Pile initialisée
|
Cycle n+2
|
R=0, SET=0, GET=0
|
Quitter l'initialisation
|
Cycle n+3
|
R=0, SET=1, GET=0
|
Charger la pile avec des valeurs x
|
Cycle n+x+1
|
R=0, SET=0, GET=0
|
Quitter le chargement
|
Cycle n+x+2
|
R=0, SET=0, GET=1
|
Extraire les valeurs x
|
Cycle n+x+2+x
|
R=0, SET=0, GET=1
|
Pile non vide
|
Un paramètre N_MAX indique le nombre maximal d'éléments du registre de pile.
Lorsque le registre de pile est plein, (nombre d'éléments du registre de pile = N_MAX <= 2000 / (valeur de (X)), FULL est mis sur 1. Vous ne pouvez plus enregistrer d'éléments dans le registre de pile.
Lorsque le registre de pile est vide (nombre des éléments du registre de pile = 0), EMPTY est mis sur " 1 ".
Ce bloc fonction a une entrée X et une sortie Y pour divers types de données.
X et Y sont de type ANY, ce qui implique une longueur prédéfinie. En raison de la taille limitée du registre de pile, seuls sont autorisés les types de données ayant une taille d'élément inférieure ou égale à 200 octets. Dans le cas contraire, une erreur d'exécution se produit et la sortie ENO est mise sur " 0 ".