L9_DV16 : division 16 bits
(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_DV16 effectue une division 16 bits signée ou non signée en divisant VALUE1 par VALUE2, puis mémorise le quotient dans le mot RESULT et le reste dans le mot implicite RESULT+1.
L'opération de division débute lorsque l'entrée de la broche ENABLE est activée. L'entrée REM indique si le reste sera exprimé au format décimal (ON) ou fractionnel (OFF). L'entrée SIGNED indique si la division est une opération signée (ON) ou non signée (OFF).
L9_DV16 peut activer 1 des 3 sorties. La sortie OUT est activée lorsque l'opération aboutit. La sortie OVERFL est activée en cas de dépassement dans SUM. La sortie DIVBY0 est activée si VALUE2 est égal à 0.
Formule
RESULT[1] = VALUE1 / VALUE2
RESULT[2] = VALUE1 MOD VALUE2 (fraction) ou
RESULT[2] = (VALUE1 MOD VALUE2)*(10000 / VALUE2) (décimal)
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
REM
BOOL
Indique le format de présentation du reste : ON = décimal ; OFF = fractionnel.
Basse
SIGNED
BOOL
La valeur ON indique une opération signée, tandis que la valeur OFF indique une opération non signée.
Noeud
Type de noeud
Nom
Type de données
Plage d'adresses
Signification
Haut
IN
VALUE1
ArrUInt2
%IW, %MW
Dividende. Peut être affiché sous la forme d'une constante entière dans une variable affectée à un mot d'entrée %IW, un mot mémoire %MW ou stocké dans un mot non affecté. S'il est situé dans une entrée %IW ou un mot mémoire %MW, 2 mots sont utilisés.
Plage valide pour une valeur constante :
  • 0 à 65 535 (valeur non signée)
  • -32 768 à 32 767 (valeur signée)
Plage valide pour %MW et %IW :
  • 0 à 4 294 967 295 (valeur non signée)
  • -2 147 483 648 à 2 147 483 647 (valeur signée)
Milieu
IN
VALUE2
UINT
%IW, %MW
Le diviseur peut être affiché sous la forme d'une constante entière ou stocké dans une variable affectée à un mot d'entrée %IW, un mot mémoire %MW ou un mot non affecté.
Plage valide :
-32 768 à 32 767 (valeur signée)
0 à 65 535 (valeur non signée)
Bas
IN/OUT
RESULT
ArrUInt2
%MW
Le quotient et le reste doivent être stockés dans deux mots mémoire %MW ou deux mots UINT non affectés. Le premier mot stocke le quotient, tandis que le second stocke le reste. Par exemple, si VALUE1 = 8 et VALUE2 = 3 :
  • la valeur du quotient dans le premier mot est de 2 ;
  • la valeur du reste dans le second mot peut être exprimée au format décimal (6 666) ou fractionnel (2).
Broche de sortie
Nom
Type de données
Plage d'adresses
Signification
Haute
OUT
BOOL
La valeur ON indique que l'opération de division 16 bits a abouti. (Renvoie l'état de l'entrée ENABLE.)
Milieu
OVERFL
BOOL
La valeur ON indique un dépassement : la valeur dans le premier mot RESULT est supérieure à 65 535 (valeur non signée), la valeur dans le premier mot RESULT est inférieure à -32 768 (valeur signée) ou la valeur dans le premier mot RESULT est supérieure à +32 767 (valeur signée).
Basse
DIVBY0
BOOL
La valeur ON indique que VALUE2 est égal à 0, ce qui revient à essayer une division par 0.