Instruction redondante
Instruction redondante remplacée par : FP_ASCII_TO_BCD
Cette fonction convertit les codes ASCII exprimant des caractères décimaux, à partir de la zone de 16 bits désignée par s1 en données BCD lorsque le déclencheur EN est TRUE. s2 indique le nombre d’octets des données sources et le sens dans lequel les données sources sont converties.
Entrée
Zone de départ de 16 bits pour sauvegarder le code ASCII (source)
Indique le nombre d’octets des données sources à convertir et comment elles doivent être disposées
Sortie
Zone de départ de 16 bits pour sauvegarder le résultat de la conversion (destination)
Au lieu d’utiliser cette instruction F, nous recommandons d’utiliser l’instruction FP7 correspondante : FP_ASCII_TO_BCD
Indiquer s2_Number (direction et nombre)
Quatre caractères sont convertis en un segment de données :
Le résultat de la conversion est sauvegardé en octets dans la zone à partir de la zone de 16 bits désignée par d. Le code ASCII requiert 8 bits (un octet) pour exprimer un caractère BCD. En raison de la conversion en nombre BCD, les données converties seront deux fois moins longues que les données sources du code ASCII.
Si un nombre impair de caractères est converti, "0" sera entré pour les positions de bits 0 à 3 des données finales (octet) des résultats de la conversion si les données sont disposées dans le sens normal et "0" sera entré pour les positions de bits 4 à 7 si les données sont disposées dans le sens inverse :
Code HEX ASCII exprimant des caractères BCD :
Caractère BCD |
Code HEX ASCII |
---|---|
0 1 2 3 4 5 6 7 8 9 |
H30 H31 H32 H33 H34 H35 H36 H37 H38 H39 |
Si un code ASCII ne correspondant pas à des nombres décimaux (0 à 9) est indiqué.
Si le nombre d’octets désigné par s2_Number est supérieur à la zone spécifiée par s1_Start.
Si le résultat de la conversion est supérieur à la zone désignée par d_Start.
Si la valeur désignée par s2_Number est identifiée comme étant "0".
Si le nombre d’octets pour les caractères ASCII dans s2_Number est supérieur à 16#8.
Si un code ASCII ne correspondant pas à des nombres décimaux (0 à 9) est indiqué.
Si le nombre d’octets désigné par s2_Number est supérieur à la zone spécifiée par s1_Start.
Si le résultat de la conversion est supérieur à la zone désignée par d_Start.
Si la valeur désignée par s2_Number est identifiée comme étant "0".
Si le nombre d’octets pour les caractères ASCII dans s2_Number est supérieur à 16#8.