L9_TBLK : table vers bloc
(Traduction du document original anglais)
Nommage
Nom dans l'éditeur LL984
Nom du bloc fonction
Nom de l'instruction 984 propriétaire
Nom dans d'autres outils et éditeurs, comme :
  • Navigateur bibliothèque de types
  • Editeur de données
  • Tables d'animation
  • Résultat de la recherche
Description de la fonction
La procédure table vers bloc L9_TBLK combine les fonctionnalités d'une procédure table vers registre à celles d'une procédure de déplacement de bloc. Lors d'une scrutation simple, elle peut copier un bloc de 100 mots contigus d'une table source vers un bloc de mots cible. La longueur du bloc de mots cible est fixe. Chaque bloc de mots copié dans la table source possède la même longueur que le bloc cible.
La valeur LENGTH détermine le nombre de mots inclus dans le bloc cible. Le paramètre SOURCE définit l'emplacement du premier mot dans la table source.
Le paramètre DEST définit l'emplacement du pointeur. Le pointeur contient une valeur d'entier, qui lorsqu'elle est multipliée par la valeur LENGTH, pointe vers le premier mot du bloc dans la table source qui est copiée et écrire dans le bloc cible dans la scrutation active. La valeur initiale du pointeur est 0 et pointe vers le premier mot dans la table source. Le mot contigu au pointeur et situé immédiatement après est le premier mot du bloc cible.
NOTE :
La table source est segmentée dans une série de blocs, possédant chacun la même longueur que le bloc cible.
  • Si la table source se trouve dans la mémoire %MW, la taille de la table source n'a pas besoin d'être paramétrée. Elle est simplement limitée par le nombre de mots mémoire (%MW) dans la configuration du système.
  • Si la table source se trouve dans la mémoire non localisée, la longueur de la table source doit être définie par la taille du tableau de SOURCE. La taille du tableau de SOURCE doit être un multiple de LENGTH.
L'opération commence lorsque l'entrée de la broche ENABLE est activée. Si les entrées HOLD et RESET restent désactivés lors de l'opération, le pointeur est incrémenté de 1 unité après chaque scrutation, ce qui entraîne un déplacement de l'opération jusqu'au bloc de mots adjacent suivant dans la table source.
L'opération continue à copier des données d'une série de blocs de mots dans la table source vers des blocs cible jusqu'à ce que l'opération atteigne la fin de la table ou jusqu'à ce que l'un des événements ci-dessous se produise. Si l'entrée HOLD est activée, le pointeur n'est plus incrémenté et l'opération continue à copier à partir du même boc de mots dans la table source. Si l'entrée RESET est activée, le pointeur est remis à 0 et l'opération copie à partir du premier bloc de mots dans la table source.
La sortie OUT est activée lorsque l'opération aboutit. La sortie ERR indique que la tentative de déplacement est impossible.
Représentation
Paramètres
Broche d'entrée
Nom
Type de données
Plage d'adresses
Signification
Haut
ENABLE
Opération lancée lorsque l'état passe de Désactivé à Activé.
Milieu
HOLD
BOOL
Activé = pointeur suspendu
Désactivé = pointeur incrémenté
Bas
RESET
BOOL
Activé = pointeur remis à 0
NOTE : Vous devez utiliser la logique externe conjointement aux entrées du milieu et du bas afin de limiter la valeur du pointeur cible à une plage réservée spéciale.
Nœud
Type de nœud
Nom
Type de données
Plage d'adresses
Signification
Haut
Entrée
SOURCE
ANY_ARRAY_UINT
%MW
Table source en tant que séquence de blocs, possédant chacune la longueur indiquée par la valeur du paramètre LENGTH, déclarée sous la forme ARRAY[1..LENGTH*n] OF_UINT, où n correspond à la taille de la table arbitraire.
Le résultat de LENGTH*n est représenté sous forme de constante.
Milieu
Entrée/Sortie
DEST
ANY_ARRAY_UINT
%MW
Pointeur vers la table source suivi du bloc cible déclaré sous la forme ARRAY[1+LENGTH] OF UINT.
Bas
Entrée
LENGTH
UINT
1...100
Nombre de mots dans le bloc cible.
Plage valide : 1 à 100.
Broche de sortie
Nom
Type de données
Plage d'adresses
Signification
Haut
OUT
BOOL
Activé = indique que l'opération a réussi.
Milieu
ERR
BOOL
Activé = indique que l'opération tentée est impossible.
Exemple
Reportez-vous à l'exemple d'utilisation de L9_TBLK ci-dessous.
Le bloc cible comporte 5 mots (%MW11...%MW15).
La table source démarre au mot %MW20 et est segmentée en une chaîne de blocs source de 5 mots (%MW20...%MW24, %MW25...%MW29, etc.).
Sur le schéma ci-dessous, vous constatez ce qui se produit sur la seconde transition du contact de transition positive %I1.
La valeur du pointeur (%MW10) est incrémentée de 1 unité et les données contenues dans le second bloc source (%MW25...%MW29) sont copiées dans le bloc cible de 5 mots (%MW11...%MW15).
Le bit de sortie %M1 est activé lorsque le déplacement de L9_TBLK est terminé.
Le bloc fonction L9_SUB est utilisé pour contrôler l'utilisation des mots dans la table source. Elle permet de limiter la table à 15 (3*5) mots en mettant la valeur du moteur à 0 après cinq transferts de L9_BLKT.