Description détaillée
Traduction de la notice originale
Fonctionnement de la fonction
FIFO est un registre de pile 'premier 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 de données (c'est-à-dire 1 000 INT ou 500 REAL ou 500 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 vidé, lorsque R(eset) = 1.
Les paramètres d'entrée qui gèrent la pile doivent être positionnés dans un ordre précis pour que le bloc fonction soit exécuté de manière cohérente.
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
Le 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, et vous ne pouvez plus enregistrer d'éléments dans le registre de pile. Lorsque le registre de pile est vide (nombre d'éléments dans le registre de pile = 0), EMPTY est mis sur 1. La fonction a une entrée X et une sortie Y pour divers types de données élémentaires.
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 interne, seuls sont acceptés les types d'entrées et de sorties ayant une taille d'élément égale ou inférieure ou égale à 200 octets. Dans le cas contraire, une erreur d'exécution survient et un message d'erreur mettant ENO sur 0 apparaît.