Page 1 sur 2

Ecriture bit de mot

Posté : 12 févr. 2019, 09:26
par antoinejsle
Bonjour à tous !

Tout d'abord voici la configuration :
Automate Schneider TSX57303A
Supervision InTouch 2014 R2 SP1 (11.1)
Communication en Ethernet grâce à TopServer.

Voici le code quand je clique sur le nom de la vanne (Action):
EE_FOR_VAN.Name = EEVCHACPF03.Name; -> Forçage vanne VCHACPF03
LE_FOR_VAN.Name = LEVCHACPF03.Name; -> Forçage vanne VCHACPF03
EF_FOR_VAN.Name = EFVCHACPF03.Name; -> Auto/manu vanne VCHACPF03
LF_FOR_VAN.Name = LFVCHACPF03.Name; -> Auto/manu vanne VCHACPF03

TITRE_FOR_VAN = StringRight(EEVCHACPF03.Name, (StringLen(EEVCHACPF03.Name) - 2));

Clignotement :
LFVCHACPF03

Désactivation :
CTL_TR5.05

En cliquant sur le nom de la vanne une fenêtre s'ouvre de sorte que l'on puisse piloter cette vanne.
Supposons que cette vanne soit en manu. (CTL_TR5.05 est à 0).
Le bouton me permettant d'ouvrir cette vanne fait passer la variable EE_FOR_VAN à 1.

Ce bouton est désactivable si EF_FOR_VAN==0 ou LF_FOR_VAN==0 (Vanne en auto)

Voici mon problème : Le bouton de pilotage de vanne ne fonctionne pas ni celui pour piloter l'auto/manu.
Ces variables sont des bits de mot. Ex : %MW622:x0
Le forçage de ces bits de mot de la supervision vers l'automate ne fonctionne pas tandis que le forçage de mot fonctionne.

La hotline Wonderware n'en sait rien et ne veut plus nous aider après 4 mois de mintenance...

Je pense avoir tout dit, si vous avez besoin de plus de précisions, demandez moi !

Cordialement

Re: Ecriture bit de mot

Posté : 12 févr. 2019, 09:38
par bipcoyote
Bonjour
Dans ton code intouch, on ne voit que la transmission des noms et la variable de la vanne que tu mets dans la variable interne de pilotage popup ?
+

Re: Ecriture bit de mot

Posté : 12 févr. 2019, 09:47
par antoinejsle
Oui c'est ça.
Le fait de cliquer sur le nom de la vanne transmet à la variable interne les variables à piloter et ouvre la popup de pilotage.
Ensuite le pilotage de la vanne s'effectue à partir de la variable interne.

Re: Ecriture bit de mot

Posté : 12 févr. 2019, 11:42
par bipcoyote
Slt
Re, ce n'étais pas une question, dans ce que tu transmets, tu ne mets que .name et où est le reste ?
Je suppose que ta variable vanne est un mot et là sur celle que l'on discute %MW622 ?
+

Re: Ecriture bit de mot

Posté : 12 févr. 2019, 13:46
par antoinejsle
RE,

Voici toutes les variables :

EE_FOR_VAN -> Indirect discret

EEVCHACPF03 ->%MW143.1 -> E/S discret

LE_FOR_VAN -> Indirect discret

LEVCHACPF03 ->%MW479.1 -> E/S discret

EF_FOR_VAN -> Indirect discret

EFVCHACPF03 ->%MW103.1 -> E/S discret

LF_FOR_VAN -> Indirect discret

LFVCHACPF03 ->%MW439.1 -> E/S discret

Le %MW622 n'était qu'un exemple, nous ne l'utilisons pas.

Je n'ai pas bien compris ta question, qu'attend tu de plus en parlant du reste ?

Re: Ecriture bit de mot

Posté : 12 févr. 2019, 15:19
par bipcoyote
Bonjour,
Voici un exemple de ce que l'on a fait sur une supervision sur des popups indexé sur vanne ou sur pompe.
On a :
- Un mot d'état %MW200 (ETAT_VSTL) qui est découpé en bit , rm, forcage ouverture, forcage fermeture, defaut etc.....
- une variable forcage fermeture FF_VSTL (un bit de l'adresse %MW200)
- une variable forcage ouverture FO_VSTL (un bit de l'adresse %MW200)
Ce qui est dans la vanne
Dans Action d'une vanne
ForceA.Name = FF_VSTL.Name; <= La variable FF_VSTL a en commentaire le nom de la vanne
ForceM.Name = FO_VSTL.Name; <= La variable FO_VSTL a en commentaire la désignation de la vanne
ForceVal.00 = ForceA.Value;
ForceVal.01 = ForceM.Value;
Show "ForçageVanneTor";

Ce qui est dans la popup de "ForcagevanneTor"
Dans action de fermeture => ForceVal=1;
Dans action d ouverture => ForceVal=2;
Dans un BP "VALIDATION" de la popup :
ForceA.Value = ForceVal.00;
ForceM.Value = ForceVal.01;
HideSelf;

Dans cet exemple d'une vanne simple,(il y en a d'autre), il y a transmission entre ta variable vanne et ta popup indexé.

En espérant t'aider.
+

Re: Ecriture bit de mot

Posté : 12 févr. 2019, 15:27
par antoinejsle
Merci beaucoup, je n'avais pas du tout pensé à cette solution !
Je test ça dès que possible !

Re: Ecriture bit de mot

Posté : 15 févr. 2019, 10:02
par antoinejsle
Bonjour !

Alors voilà où j'en suis :
j'ai voulu essayer avec un vanne nommée VISM3. J'ai donc ETAT_VISM3 (%MW1102). C'est une vanne simple effet.
En %MW1102:X0 jai OUV_VISM3.

Dans action de la vanne :

Code : Tout sélectionner

ForceV.Name=OUV_VISM3;
Forceval.00=ForceV.Value;

TITRE_FOR_VAN = StringRight(OUV_VISM3.Name, (StringLen(OUV_VISM3.Name) - 2));
ShowAt( "Forçage vanne", 0 ,  - 20);
Dans la popup :

Code : Tout sélectionner

ForceVal=1;
Tout d'abord est ce que cela fonctionnerait ? De plus je ne sais pas quoi mettre comme type de variable (Indirect discret, Indirect analogique ...)
Enfin dernière question : Mon problème étant l'écriture de bits, cela va quand même fonctionner ?

CDT

Re: Ecriture bit de mot

Posté : 15 févr. 2019, 15:11
par bipcoyote
Slt,
Perso, je ne le pense pas.
Dans ta popup, tu ne mets pas assez d'information
Tu ne retourne pas l'information à ta variable vanne.
Regarde bien, l'exemple fourni ce que la vanne envoi à la popup et ce que la popup renvoi à la variable vanne.
+

Re: Ecriture bit de mot

Posté : 15 févr. 2019, 16:09
par antoinejsle
Re,

J'ai changé de façon de faire :

Code : Tout sélectionner

CDE_OUV_VAN.Name = cde_ouv_vism3.Name;
CDE_M_VAN.Name = cde_m_vism3.Name;
Mais les .Name ne son pas "sauvegardés" dans la popup de pilotage.
CDE_M_Van et CDE_OUV_VAN sont décalrés en indirect discret et les 2 autres en E/S entier, cela a t-il un rapport ?

CDT