Page 1 sur 3

Mise à échelle

Posté : 24 juil. 2020, 18:53
par Lancelot
Bonjour à tous !

Actuellement, je travaille sur un s7-1200. Le but du projet est de récupérer une information de débit 4-20 mA d'un transmetteur et de le récupérer sur l'automate. Pour pouvoir récupérer l'information analogie j'ai pris une signal board avec une entrée analogie 0-20 mA.

Dans mon programme, j'ai fait une conversion de la valeur récupérer de "int" en "real" et suite à cela, une mise à échelle sur du 4-20 mA. Comme cela :

//conversion valeur de "int" en "real"// //"Val_1" = "REAL", "DEBIT" = "INT" = Valeur analogique reçut par l'automate et envoyé par le transmetteur
"Val_1" := INT_TO_REAL("DEBIT");

//mise à échelle en 4-20 mA de la valeur "Val_1"// //"Val_2" = "REAL", "Val_1" = "REAL"
"Val_2" := 4.0 + ((( 20.0 - 0.0) / 27648.0) * Val_1);

//mise à échelle de la variable "Val_2" sur une échelle 0.7 à 1.767 l/s// //"Val_3" = "REAL", "Val_2" = "REAL"
"Val_3" := 0.7 + (((1.767 - 0.7) / 20.0) * "Val_2");

Mon problème c'est qu'avec la dernière mise à échelle, la mise à échelle se fait mal car par exemple pour 4 mA j'ai 0.9134 au lieu d'avoir 0.7 mais à 20 mA j'ai bien 1.767.

Pouvez-vous me dire qu'elle erreur ai-je faite pour pouvoir faire une mise à échelle de 0.7 à 1.767.

N’hésiter par à me poser des questions sur des points où je n'étais pas claire.

Merci d'avance

Cordialement,

Re: Mise à échelle

Posté : 24 juil. 2020, 20:54
par itasoft
Slts,
Si le capteur délivre du 4..20 mA pour quelle raisons tu utilise une entrée ana. en 0..20 mA ? comprends pas ?

Re: Mise à échelle

Posté : 24 juil. 2020, 21:01
par Lancelot
itasoft a écrit : 24 juil. 2020, 20:54 Slts,
Si le capteur délivre du 4..20 mA pour quelle raisons tu utilise une entrée ana. en 0..20 mA ? comprends pas ?
Bonjour,

Déjà premièrement, j ai une petite armoire électrique que je ne peux pas rajouter de carte entrée analogique 4-20 mA donc j ai pris pour cela une signal board. La seule que j ai trouvé était en 0-20 mA.

Deuxièmement, on m'a dit que c'était possible d'envoyer du 4-20 mA sur une entrée 0-20 mA et de faire une mise à l'échelle dans l'automate.

Re: Mise à échelle

Posté : 24 juil. 2020, 22:04
par itasoft
slts,
Ok compris, oui c'est possible si on as pas d'autres choix.

Re: Mise à échelle

Posté : 24 juil. 2020, 22:25
par Lancelot
Merci,

Pouvez-vous me dire aussi pourquoi j ai un soucis sur la mise à l'échelle dans le bout de programme svp ?

Merci d'avance,

Re: Mise à échelle

Posté : 24 juil. 2020, 22:32
par itasoft
slts,
la mise à l'échelle se fait dans la configuration de l'entrée ana. sur cette entrée ana. on peut pas y configurer une valeur physique ?

Re: Mise à échelle

Posté : 24 juil. 2020, 22:41
par Lancelot
Je vais voir si c'est possible mais pas sûr.

Tous ce que je sais c'est qu'on peut changer l'entrée de la carte soit en tension soit en courant.

Merci.

Re: Mise à échelle

Posté : 24 juil. 2020, 22:57
par itasoft
slts,
quel est la plage physique du signal ana. 4/20 mA
exemple: 4 mA = 0°C 20 mA = 60 °C

Re: Mise à échelle

Posté : 24 juil. 2020, 23:01
par Lancelot
La plage physique est de 4 ma = 0,7 l/s à 1,767 l/s pour du 20 mA

Re: Mise à échelle

Posté : 24 juil. 2020, 23:41
par Bruce33
Bonjour,

Il me semble que ce serait plutôt :

//mise à échelle en 4-20 mA de la valeur "Val_1"// //"Val_2" = "REAL", "Val_1" = "REAL"
"Val_2" := ((( 20.0 - 0.0) / 27648.0) * Val_1) - 4.0;

//mise à échelle de la variable "Val_2" sur une échelle 0.7 à 1.767 l/s// //"Val_3" = "REAL", "Val_2" = "REAL"
"Val_3" := (((1.767 - 0.7) / (20.0 - 4.0)) * "Val_2") + 0.7;

Mais c'est un peu lourd comme écriture...

Je ne suis pas spécialiste de S7-1200 mais il me semble qu'il existe une fonction SCALE (ou RESCALE en valeur REAL) pour la mise à l'échelle. Il existe aussi des fonctions NORM_X et SCALE_X... mais je n'ai pas le logiciel pour vérifier tout ça.