[Ecostruxure Control Expert] [Tuto] Réception de valeurs au format MOD10

Forum traitant des automates industriels de marque Schneider - Telemecanique
Répondre
Avatar du membre
itasoft
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 7806
Enregistré le : 20 oct. 2015, 10:15
Localisation : Lyon
Contact :

[Ecostruxure Control Expert] [Tuto] Réception de valeurs au format MOD10

Message par itasoft »

slts,
Certains capteurs délivrent la valeur sur 64 bits soit 4 registres de 16 bits codifiés au format MOD10
chercher sur le Web: convert Mod10 (modulo 10000)
Exemple : Réception sur 4 mots via la communication avec le capteur
%MW0
%MW1
%MW2
%MW3
Calcul de la valeur résultante sur Unity:
UDINT_0:=INT_TO_UDINT(%MW0);
UDINT_1:=INT_TO_UDINT(%MW1)*10000;
UDINT_2:=INT_TO_UDINT(%MW2)*100000000;
UDINT_RESULT:=UDINT_0+UDINT_1+UDINT_2;
(*controle en mode milligrammes *)
DEFAUT_OVERFLOW:=%S18 or %MW3>0 ;
%S18:=false;

Sur Unity, la valeur résultante est limité à 2^32 (4294967296) en cas de DEFAUT_OVERFLOW ne pas prendre en compte le résultat
ps:
Si ça exprime des milligrammes ça nous limite à 4 294 967 296 milligrammes soit 4 294 967 grammes soit 4 294 Kg soit 4, 294 tonnes.
Si c'est pas suffisant, alors travailler en grammes et sauter le %MW0 ça nous fera un maxi de 4294 tonnes (4,294 t * 1000)
ex:
UDINT_1:=INT_TO_UDINT(%MW1)*10;
UDINT_2:=INT_TO_UDINT(%MW2)*100000;
UDINT_3:=INT_TO_UDINT(%MW3)*1000000000;
UDINT_RESULT_gr:=UDINT_1+UDINT_2+UDINT_3;

(*controle en mode grammes*)
DEFAUT_OVERFLOW:=%S18 OR %MW3>4;
%S18:=false;
Automaticien privé (de tout)
itasoft@free.fr
Répondre