[TIA V16] Bits de mots interne WinCC Advanced
[TIA V16] Bits de mots interne WinCC Advanced
Bonjour à tous,
j'ai créé une variable interne de type WORD.
Pour des animations j'ai besoin d'accéder à un bit à une certaine position.
Dois-je passer forcément par 1 script ou il y a une syntaxe pour accéder aux bits de mots internes ?
j'ai créé une variable interne de type WORD.
Pour des animations j'ai besoin d'accéder à un bit à une certaine position.
Dois-je passer forcément par 1 script ou il y a une syntaxe pour accéder aux bits de mots internes ?
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [TIA V16] Bits de mots interne WinCC Advanced
Salut,
variable interne de type word ? tu es sûr de ça ?
bon , je suis qu'en V13, mais j'ai pas de variable interne de type WORD...
Si c'est pour de l'animation.. choisis ton mot et coche bit unique, puis le numéro de bit.
Ensuite renseignes les deux états (0 et 1).
Ca marche aussi avec un INT.
variable interne de type word ? tu es sûr de ça ?
bon , je suis qu'en V13, mais j'ai pas de variable interne de type WORD...
Si c'est pour de l'animation.. choisis ton mot et coche bit unique, puis le numéro de bit.
Ensuite renseignes les deux états (0 et 1).
Ca marche aussi avec un INT.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part !
Re: [TIA V16] Bits de mots interne WinCC Advanced
En fait c'est une variable de type Integer.
J'ai besoin pour gérer l'acquittement des alarmes.
L'animation se fait si l'alarme est acquittée ou pas.
Donc j'ai besoin sur mon faceplate de définir un booléen raison pour laquelle je veux extraire un bit de mot.
J'ai besoin pour gérer l'acquittement des alarmes.
L'animation se fait si l'alarme est acquittée ou pas.
Donc j'ai besoin sur mon faceplate de définir un booléen raison pour laquelle je veux extraire un bit de mot.
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: [TIA V16] Bits de mots interne WinCC Advanced
slts,
Connais pas, mais si on ne peut pas accéder aux bits en lecture, alors par Script
(*Exemple Lire l'état du bit 3 du mot myWORD *)
myBIT:=(myWORD AND SHL(1,3))<>0;
Connais pas, mais si on ne peut pas accéder aux bits en lecture, alors par Script
(*Exemple Lire l'état du bit 3 du mot myWORD *)
myBIT:=(myWORD AND SHL(1,3))<>0;
Dernière modification par itasoft le 24 janv. 2023, 00:17, modifié 5 fois.
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [TIA V16] Bits de mots interne WinCC Advanced
Re,
Tu as besoin de quoi pour gérer l’acquittement ?
Post ton faceplate je comprend pas bien ton problème.
Ce que j'ai écrit précédemment rempli ton problème initial à savoir :
pour l'animation, connaitre l'état d'un bit de mot
petite image
Tu as besoin de quoi pour gérer l’acquittement ?
Post ton faceplate je comprend pas bien ton problème.
Ce que j'ai écrit précédemment rempli ton problème initial à savoir :
pour l'animation, connaitre l'état d'un bit de mot
petite image
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part !
Re: [TIA V16] Bits de mots interne WinCC Advanced
Je posterai mon faceplate.
Le bit se mot à déclarer dans l'animation marche quand c'est toujours a la même position.
Dans mon cas de figure le bit de mot est différent entre deux instances.
Le bit se mot à déclarer dans l'animation marche quand c'est toujours a la même position.
Dans mon cas de figure le bit de mot est différent entre deux instances.
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [TIA V16] Bits de mots interne WinCC Advanced
Ok, je comprend mieux alors.
une solution ici :
https://support.industry.siemens.com/fo ... ble/258864
ou là :
https://support.industry.siemens.com/fo ... its/262384
Je continue de chercher un peu..
une solution ici :
https://support.industry.siemens.com/fo ... ble/258864
ou là :
https://support.industry.siemens.com/fo ... its/262384
Je continue de chercher un peu..
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part !
Re: [TIA V16] Bits de mots interne WinCC Advanced
Apparemment il faut le scriptphilou77 a écrit : ↑23 janv. 2023, 15:13 Ok, je comprend mieux alors.
une solution ici :
https://support.industry.siemens.com/fo ... ble/258864
ou là :
https://support.industry.siemens.com/fo ... its/262384
Je continue de chercher un peu..
- itasoft
- Mi homme - Mi automate
- Messages : 7037
- Inscription : 20 oct. 2015, 10:15
- Localisation : Lyon
- Contact :
Re: [TIA V16] Bits de mots interne WinCC Advanced
slts,
j’ai déjà eu un problème similaire avec le Script sur un IHM.
Sur certains Scripts on as pas d’accès direct à un bit de mot pour le mettre à 1 ou à 0
ci dessous un Script générique exemple à convertir en fonction du langage
(*Exemple SET du bit 3 du mot myWORD *)
IF DEFAUT3 THEN
myWORD:= myWORD OR SHL(1,3);
END_IF ;
(*Exemple RESET du bit 3 du mot myWORD *)
IF BP_Acquit3 THEN
myWORD:= myWORD AND NOT SHL(1,3);
END_IF ;
j’ai déjà eu un problème similaire avec le Script sur un IHM.
Sur certains Scripts on as pas d’accès direct à un bit de mot pour le mettre à 1 ou à 0
ci dessous un Script générique exemple à convertir en fonction du langage
(*Exemple SET du bit 3 du mot myWORD *)
IF DEFAUT3 THEN
myWORD:= myWORD OR SHL(1,3);
END_IF ;
(*Exemple RESET du bit 3 du mot myWORD *)
IF BP_Acquit3 THEN
myWORD:= myWORD AND NOT SHL(1,3);
END_IF ;
Dernière modification par itasoft le 24 janv. 2023, 16:16, modifié 4 fois.
Automaticien privé (de tout)
itasoft@free.fr
itasoft@free.fr
-
- Mi homme - Mi automate
- Messages : 2076
- Inscription : 21 oct. 2015, 10:00
- Localisation : Ile de France
Re: [TIA V16] Bits de mots interne WinCC Advanced
Re !
Si il y a plusieurs instances du faceplate affichées en même temps, qu'est-ce qui déclenche le script ?
Dans l'idée (pour des moteurs ) tu devrais avoir :
-des structures type
MOTEUR
.Marche (BOOL)
.Arrêt (BOOL)
.Status (BOOL)
Une variable DéfautsMoteurs (INT)
et des variables type MOTEUR
MOTEUR1.Marche (Adresse)
MOTEUR1.Arrêt (Adresse)
MOTEUR1.Status (adresse bit 0 de DéfautsMoteurs )
MOTEUR2.Marche ((Adresse)
MOTEUR2.Arrêt (Adresse)
MOTEUR2.Status (BOOL) (adresse bit 1 de DéfautsMoteurs )
Etc
Ces variables de structures sont a lier avec les propriétés de chaque instance de faceplate :
Marche
Arrêt
Status
Donc ton BOOL pour l'animation devrait être dans la structure.
à moins que cela ne sois pas possible, Je me trompe ?
edit :
Oui je me trompe car en variable interne, c'est mort pour donner l'adresse d'un bit de mot.
Si il y a plusieurs instances du faceplate affichées en même temps, qu'est-ce qui déclenche le script ?
Dans l'idée (pour des moteurs ) tu devrais avoir :
-des structures type
MOTEUR
.Marche (BOOL)
.Arrêt (BOOL)
.Status (BOOL)
Une variable DéfautsMoteurs (INT)
et des variables type MOTEUR
MOTEUR1.Marche (Adresse)
MOTEUR1.Arrêt (Adresse)
MOTEUR1.Status (adresse bit 0 de DéfautsMoteurs )
MOTEUR2.Marche ((Adresse)
MOTEUR2.Arrêt (Adresse)
MOTEUR2.Status (BOOL) (adresse bit 1 de DéfautsMoteurs )
Etc
Ces variables de structures sont a lier avec les propriétés de chaque instance de faceplate :
Marche
Arrêt
Status
Donc ton BOOL pour l'animation devrait être dans la structure.
à moins que cela ne sois pas possible, Je me trompe ?
edit :
Oui je me trompe car en variable interne, c'est mort pour donner l'adresse d'un bit de mot.
Si vous avez compris tout ce que je viens d'écrire, c'est que j'ai dû faire une erreur quelque part !