Décomposition de la fonction BCD_TO_INT

Trucs-Astuces-Micro cours sur les automatismes industriels
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Décomposition de la fonction BCD_TO_INT

Message par itasoft »

Slts,
Décomposition de la fonction BCD_TO_INT ,INT_TO_BCD à quoi ça sert ?
C’est dans les cas ou on à besoin de ces fonctions dans un langage qui n’en possède pas (ex :Script)

(* Valeur en BCD *)
Wbcd:=16#1234;
(* Valeur en binaire (INT) *)
Wint:=(Wbcd/4096)*1000
+((Wbcd REM 4096)/256)*100
+((Wbcd REM 256)/16)*10
+(Wbcd REM 16);


INT_TO_BCD

(* Valeur en INT *)
Wint:=1234;
(* Valeur en BCD *)
Wbcd:=(Wint/1000)*4096
+ ((Wint REM 1000)/100)*256
+ ((Wint REM 100)/10)*16
+ (Wint REM 10);


autres fonctions à faire
Automaticien privé (de tout)
itasoft@free.fr
Avatar de l’utilisateur
Ashkore
Aguerri de l'automation
Aguerri de l'automation
Messages : 77
Inscription : 05 nov. 2015, 11:55
Localisation : Bouches-du-Rhone

Re: Décomposition de la fonction BCD_TO_INT

Message par Ashkore »

Salut,

Je n'ai jamais vu ni entendu parler de ces fonctions, pourrais-tu nous préciser à quoi servent-elle ?
Ou du moins m'expliquer à quoi correspond une valeur en BCD.

Merci d'avance.
"L'échec est le fondement de la réussite."
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Décomposition de la fonction BCD_TO_INT

Message par itasoft »

[attachment=0]__BCD.JPG[/attachment]
cliquer dessus pour agrandir la photo
Pièces jointes
__BCD.JPG
Automaticien privé (de tout)
itasoft@free.fr
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Décomposition de la fonction BCD_TO_INT

Message par itasoft »

suite,
pour faire ça, il faut d'abord convertir le mot en BCD avant de le copier sur les 16 sorties.

EX:
%MW0:=1234;

%Q2.0:16:=INT_TO_BCD(%MW0);
Automaticien privé (de tout)
itasoft@free.fr
DavyQ
Apprend le binaire
Apprend le binaire
Messages : 9
Inscription : 04 mars 2016, 14:15

Re: Décomposition de la fonction BCD_TO_INT

Message par DavyQ »

Bonjour,
aurais tu également la décomposition de la fonction INT_AS_DINT (utilisable sous Unity) ?

Merci d'avance.
philou77
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 2076
Inscription : 21 oct. 2015, 10:00
Localisation : Ile de France

Re: Décomposition de la fonction BCD_TO_INT

Message par philou77 »

Salut !

fonction INT_AS_DINT

C'est utilisé pour obliger UNITY à prendre une variable INT comme DINT
Donc une variable %MW 0 déclarée en INT sera interprétée comme %MW0 et %MW1 en Double INT !
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part ! :D
Avatar de l’utilisateur
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7037
Inscription : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

Re: Décomposition de la fonction BCD_TO_INT

Message par itasoft »

@davy
c'est expliqué sur l'aide en ligne de Unity, je peux pas faire mieux ni plus simple, lol
Automaticien privé (de tout)
itasoft@free.fr
steph68
Codeur fou
Codeur fou
Messages : 268
Inscription : 21 oct. 2015, 08:23

Re: Décomposition de la fonction BCD_TO_INT

Message par steph68 »

pour @ashkore : https://fr.wikipedia.org/wiki/D%C3%A9ci ... A9_binaire
C'est utilisé pour obliger UNITY à prendre une variable INT comme DINT
Ne pas confondre INT_AS_DINT et INT_TO_DINT ...

la première fonction prend 2 INT en entrée (poids faible + poids fort) pour un DINT en sortie (= poids fort * 65536 + poids faible)
la deuxième prend un INT en entrée pour le convertir en DINT (extension du bit de signe)

@+
Répondre