L9_BLKT : bloc en table
(Traduction du document original anglais)
Dénomination
Nom dans l'éditeur LL984
Nom du bloc fonction
Nom de l'instruction 984 existante
Nom dans d'autres outils et éditeurs comme :
  • Navigateur bibliothèque de types
  • Editeur de données
  • Tables d'animation
  • Résultats de recherche
Description de la fonction
La procédure L9_BLKT combine la procédure de déplacement de bloc à une procédure d'enregistrement dans une table. En un cycle, elle copie les données d'un bloc source dans un bloc cible d'une table. La longueur du bloc source est fixe.
Le bloc source et la table cible contiennent des tableaux de mots UINT stockés dans la mémoire de %MW ou dans une mémoire non affectée. La valeur de LENGTH détermine le nombre de mots inclus dans le bloc source. Le paramètre SOURCE définit l'emplacement du premier mot dans le bloc source.
Le paramètre DEST définit l'emplacement du mot de pointeur. Ce mot de pointeur contient une valeur entière qui, multipliée par la valeur de LENGTH, pointe vers le premier mot du bloc de mots que la procédure L9_BLKT va remplacer. La valeur initiale du mot de pointeur est 0. Elle pointe vers le mot contigu au mot de pointeur et situé immédiatement après celui-ci. Chaque bloc cible contient le même nombre de mots que le bloc source, tel qu'il est défini par la valeur de LENGTH.
NOTE :
la table cible est segmentée en plusieurs blocs de même longueur que le bloc source.
  • Si la table cible est stockée dans la mémoire de %MW, il n'est pas nécessaire paramétrer la taille de la table cible. Elle n'est limitée que par le nombre de mots mémoire (%MW) dans votre configuration système.
  • Si la table cible est stockée dans une mémoire non affectée, sa longueur doit être définie par la taille du tableau de DEST. La taille du tableau de DEST doit être un multiple de LENGTH + un mot pour le pointeur de table.
L'opération débute lorsque l'entrée de la broche ENABLE est activée. Si les entrées HOLD et RESET restent désactivées durant l'opération, le mot de pointeur s'incrémente de 1 après chaque cycle, entraînant le déplacement vers le bloc adjacent de mots dans la table cible.
L'opération continue de copier la valeur des mots du bloc source dans une suite de blocs cibles contigus jusqu'à ce qu'elle atteigne la fin de la table. Si l'entrée HOLD est activée, le mot de pointeur arrête de s'incrémenter et l'opération continue de remplacer le même bloc cible de mots. Si l'entrée RESET est activée, le mot de pointeur reprend la valeur 0 et l'opération se déplace vers le premier bloc de mots dans la table cible.
La sortie OUT est activée lorsque l'opération aboutit. La sortie ERR indique que la tentative de déplacement est impossible.
L9_BLKT est un puissant bloc fonction capable d'enregistrer dans tous les mots mémoire %MW de votre automate, des données copiées à partir du bloc source.
AVERTISSEMENT
DONNEES ENDOMMAGEES
Utilisez la logique externe conjointement avec l'entrée du milieu ou du bas pour limiter la valeur dans le pointeur à une plage de mots mémoire considérés comme sécurisés dans votre application.
Le non-respect de ces instructions peut provoquer la mort, des blessures graves ou des dommages matériels.
Représentation
Paramètres
Broche d'entrée
Nom
Type de données
Plage d'adresses
Signification
Haute
ENABLE
Le passage de OFF à ON déclenche l'opération.
Milieu
HOLD
BOOL
ON = conserve le pointeur
OFF = incrémente le pointeur
Basse
RESET
BOOL
ON = réinitialise le pointeur à zéro
Noeud
Type de noeud
Nom
Type de données
Plage d'adresses
Signification
Haut
IN
SOURCE
ANY_ARRAY_UINT
%MW
Le bloc source déclaré au format ARRAY[1..x] OF UINT, où x est la valeur de LENGTH.
Milieu
IN/OUT
DEST
ANY_ARRAY_UINT
%MW
Mot de pointeur suivi par une séquence de blocs de même taille que le bloc source. A déclarer au format ARRAY[1..(n*LENGTH)+1] OF UINT, où n est le nombre de blocs dans la table cible et LENGTH est la valeur du paramètre LENGTH. Le résultat de (n*LENGTH)+1 est présenté sous la forme d'une constante.
Bas
IN
LENGTH
UINT
1...100
Nombre de mots à inclure dans l'opération.
Plage valide : 1 à 100.
Broche de sortie
Nom
Type de données
Plage d'adresses
Signification
Haute
OUT
BOOL
La valeur ON indique que l'opération a abouti.
Milieu
ERR
BOOL
La valeur ON indique que l'opération tentée est impossible.
Exemple
Voici un exemple d'utilisation de L9_BLKT.
Le bloc source contient 5 mots (%MW10 à %MW14).
La table cible débute à %MW21 et est segmentée en une chaîne de blocs de 5 mots (%MW21 à %MW25, %MW26 à %MW30, etc.).
Le graphique ci-dessous illustre ce qui se passe lors de la seconde transition de contact de détection de transition positive %I1.
La valeur stockée dans le pointeur (%MW20) s'incrémente de 1 et les données contenues dans les mots du bloc source sont copiées dans le second bloc de la table cible (%MW26 à %MW30).
Le %M1 du bit de sortie est activé à l'issue du déplacement effectué par L9_BLKT.
Le bloc fonction L9_SUB permet de contrôler l'utilisation des mots dans la table cible. Grâce à ce bloc, vous limitez la table à 15 (3*5) mots en réinitialisant la valeur dans le mot de pointeur à 0 après 5 transferts L9_BLKT.