Instruction redondante
Instruction redondante remplacée par : FP_ASCII_TO_HEX
Cette fonction convertit les codes ASCII exprimant des caractères hexadécimaux, à partir de la zone de 16 bits, désignée par s1 en nombres hexadécimaux, lorsque le déclencheur EN est TRUE. s2 indique le nombre de caractères ASCII qui doivent être convertis. Le résultat de la conversion est sauvegardé 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 hexadécimal. En raison de la conversion en nombre hexadécimal, les données converties seront deux fois moins longues que les données sources du code ASCII.
Entrée
Zone de départ de 16 bits pour le code ASCII (source)
Indique le nombre d’octets de la zone de données sources à convertir
Sortie
Zone de départ de 16 bits pour sauvegarder les données converties (destination)
Au lieu d’utiliser cette instruction F, nous recommandons d’utiliser l’instruction FP7 correspondante : FP_ASCII_TO_HEX
Les données de deux caractères d’un code ASCII sont converties en deux chiffres numériques pour un mot. Dans ce cas, les caractères des octets de poid fort et de poid faible sont interchangés. Quatre caractères sont convertis en un segment de données.
Les résultats de la conversion sont sauvegardés en octets. Si un nombre impair de caractères est converti, "0" sera entré pour les bits 0 à 3 des données finales (octet) des résultats de la conversion. Conversion d’un nombre impair d’octets de données sources :
Caractères hexadécimaux et codes ASCII :
Code HEX ASCII |
Nombre hexadécimal |
---|---|
16#30 16#31 16#32 16#33 16#34 16#35 16#36 16#37 16#38 16#39 16#41 16#42 16#43 16#44 16#45 16#46 |
0 1 2 3 4 5 6 7 8 9 A B C D E F |
Si le nombre d’octets désigné par s2 est supérieur à la zone spécifiée par s1.
Si le résultat de la conversion est supérieur à la zone désignée par d.
Si la valeur désignée par s2 est identifiée comme étant "0".
Si un code ASCII ne correspondant pas à un nombre hexadécimal (0 à F) est indiqué.
Si le nombre d’octets désigné par s2 est supérieur à la zone spécifiée par s1.
Si le résultat de la conversion est supérieur à la zone désignée par d.
Si la valeur désignée par s2 est identifiée comme étant "0".
Si un code ASCII ne correspondant pas à un nombre hexadécimal (0 à F) est indiqué.