PCVue décomposer un mot en booléen

Partie du forum pour tout ce qui concerne la supervision industrielle. Forum, conseil, astuce et entraide sur les logiciels de supervision tels que PC Vue, Vijeo designer, WinCC, win cc, monitor pro, so machine, Citect, Intouch .
Répondre
MathieuDG2R
Apprend le binaire
Apprend le binaire
Messages : 5
Enregistré le : 28 nov. 2023, 14:35

PCVue décomposer un mot en booléen

Message par MathieuDG2R »

Bonjour

Je suis sur un projet PCvue, et dans un soucis d'économie de variables, je voudrais importer un mot depuis un automate en Modbus IP et ensuite décomposer ce mot en bits en mettant chaque bit dans une variable booléenne, chacun de ces booléens correspondant à un état d'entrée ToR

Cordialement

Mathieu
dpo
Créateur de langage
Créateur de langage
Messages : 731
Enregistré le : 27 nov. 2015, 20:03

Re: PCVue décomposer un mot en booléen

Message par dpo »

déjà fait il y 'a longtemps pour une démo à un client
en scada sur changement de la valeur du mot, la variable EW0 est une image d'entrées TOR siemens dans un mot et les variables E0_0.ETAT... sont les bits du mot
attention en siemens les octets faible et fort sont inversés, en modbus il faudra adapter...
tu peux peut être pouvoir écrire plus simplement
@E0_0.ETAT=(LOGICAL("AND",@EW0,256)==256);

Avec cette méthode j'avais utilisé le pcvue en mode démo 25 variables en com mais environ 200 variables au total.
quelques semaines pour que le client voit l'intérêt de mettre une supervision pour les histo,alarmes,courbes, recettes,consignes pour optimiser le fonctionnement d'un automate qui n'avait aucune visu. Comme la com ne fonctionnait qu'une heure, pcvue se suicidait au bout de 59mn et se relançait.
C'était vraiment de la bricole mais ça a abouti avec une licence et un vrai projet. Malgré tout c'est vraiment chercher de petites économies...
si c'est juste pour une animatio simple, par exemple visu des cartes d'entrées, tu as une animation de bits de mot...

Version barbare
if (LOGICAL("AND",@EW0,256)==256) then @E0_0.ETAT=1; else @E0_0.ETAT=0; end if
if (LOGICAL("AND",@EW0,512)==512) then @E0_1.ETAT=1; else @E0_1.ETAT=0; end if
if (LOGICAL("AND",@EW0,1024)==1024) then @E0_2.ETAT=1; else @E0_2.ETAT=0; end if
if (LOGICAL("AND",@EW0,2048)==2048) then @E0_3.ETAT=1; else @E0_3.ETAT=0; end if
if (LOGICAL("AND",@EW0,4096)==4096) then @E0_4.ETAT=1; else @E0_4.ETAT=0; end if
if (LOGICAL("AND",@EW0,8192)==8192) then @E0_5.ETAT=1; else @E0_5.ETAT=0; end if
if (LOGICAL("AND",@EW0,16384)==16384) then @E0_6.ETAT=1; else @E0_6.ETAT=0; end if
if (LOGICAL("AND",@EW0,32768)==32768) then @E0_7.ETAT=1; else @E0_7.ETAT=0; end if

if (LOGICAL("AND",@EW0,1)==1) then @E1_0.ETAT=1; else @E1_0.ETAT=0; end if
if (LOGICAL("AND",@EW0,2)==2) then @E1_1.ETAT=1; else @E1_1.ETAT=0; end if
if (LOGICAL("AND",@EW0,4)==4) then @E1_2.ETAT=1; else @E1_2.ETAT=0; end if
if (LOGICAL("AND",@EW0,8)==8) then @E1_3.ETAT=1; else @E1_3.ETAT=0; end if
if (LOGICAL("AND",@EW0,16)==16) then @E1_4.ETAT=1; else @E1_4.ETAT=0; end if
if (LOGICAL("AND",@EW0,32)==32) then @E1_5.ETAT=1; else @E1_5.ETAT=0; end if
if (LOGICAL("AND",@EW0,64)==64) then @E1_6.ETAT=1; else @E1_6.ETAT=0; end if
if (LOGICAL("AND",@EW0,128)==128) then @E1_7.ETAT=1; else @E1_7.ETAT=0; end if
Cedric39
Générateur de blocs fonctions
Générateur de blocs fonctions
Messages : 117
Enregistré le : 05 déc. 2015, 09:47

Re: PCVue décomposer un mot en booléen

Message par Cedric39 »

C'est vrai que moi aussi ca me manque les bit de mot pour la définition des alarmes surtout.
MiGaNuTs
Mi homme - Mi automate
Mi homme - Mi automate
Messages : 1042
Enregistré le : 12 nov. 2015, 21:02
Localisation : 45 - Loiret
Contact :

Re: PCVue décomposer un mot en booléen

Message par MiGaNuTs »

Bonjour,

si je me rappelle bien je faisait des trucs encore plus barbare, du genre :

Code : Tout sélectionner

E0_0.ETAT==(LOGICAL("AND",@EW0,1)>0);
E0_1.ETAT==(LOGICAL("AND",@EW0,2)>0);
E0_2.ETAT==(LOGICAL("AND",@EW0,4)>0);
Évidement, c’était Excel qui écrivait le code a ma place ...
MathieuDG2R
Apprend le binaire
Apprend le binaire
Messages : 5
Enregistré le : 28 nov. 2023, 14:35

Re: PCVue décomposer un mot en booléen

Message par MathieuDG2R »

Merci pour vos réponses

Par contre, je ne trouve pas comment créer un programme
dpo
Créateur de langage
Créateur de langage
Messages : 731
Enregistré le : 27 nov. 2015, 20:03

Re: PCVue décomposer un mot en booléen

Message par dpo »

ah oui mais non ! on ne va pas tout te faire , ne pas confondre entraide et faitesmonprojet
Pcvue est bien documenté
touche F9 ou action/programmes

créer un programme global (obligatoire)
créer un programme init (par exemple) qui s'execute au lancement de pcvue pour "charger" tous les autres programmes = charger "marcel"
créer un programme Marcel (c'est plus rigolo) qui met à jour tous les bits en fonction des valeurs de mots, comme indiqué précédemment
créer une action événementielle sur changement de mot qui lance Marcel (autant d'actions que de mots)
Répondre