Rubrique : Script
Quelles sont les différences de fonctionnalités entre les différentes fonctions GetTag et SetTag ?

Date: 01.09.2000

L'auteur, ainsi que les membres du Club des Utilisateurs de WinCC® déclinent toute responsabilité sur les scripts, leurs contenus; et plus généralement sur les informations diffusés dans la totalité des pages du site.

Dans le GlobalScript de WinCC vous trouvez plusieurs fonctions pour lire (fonctions GetTag..) et pour écrire les valeurs des fonctions (fonctions SetTag..).
Vous trouverez ici une liste avec les différentes fonctions et leurs fonctionnalités correspondantes :

Fonctions SetTag :

SetTagxxx La fonction lance le contrat pour écrire une valeur et revient aussitôt immédiatement vers la fonction appelante. Il n'y a aucune attente jusqu'à ce que la valeur soit réellement écrite.
L'appel se distingue par les propriétés suivantes :

· L'appel est rapide.
· La fonction appelante ne sait pas quand la valeur est réellement écrite.
· La fonction ne délivre aucune information sur l'état du contrat d'écriture.

SetTagxxxWait

La fonction lance le contrat pour écrire une valeur et revient seulement vers la fonction appelante, lorsque la valeur a été réellement écrite.
L'appel se distingue par les propriétés suivantes :

· L'appel dure plus longtemps en comparaison à SetTagxxx. La durée est dépendante, entre autres, du canal et de l'automate.
· La valeur est écrite après l'appel.
· La fonction ne délivre aucune information sur l'état du contrat d'écriture.

SetTagxxxState

Cette fonction possède les mêmes caractéristiques que SetTagxxx. Mais en plus la fonction SetTagxxxState délivre des informations sur l'état du contrat d'écriture.
Bien que l'état interne y soit toujours inclus, il n'y a aucune différence de performance par rapport à SetTagxxx.

SetTagxxxStateWait

Cette fonction possède les mêmes caractéristiques que SetTagxxxWait. Mais en plus la fonction SetTagxxxStateWait délivre des informations sur l'état du contrat d'écriture.
Bien que l'état interne y soit toujours inclus, il n'y a aucune différence de performance par rapport SetTagxxxWait.
La différence entre la fonction SetTagxxxStateWait et SetTagxxxState est la même qu'entre les fonctions SetTagxxxWait et SetTagxxx.
Il faut faire attention que certains états peuvent être formés en premier, si la procédure d'écriture est terminée.

SetTagMultiWait

Cette fonction possède les mêmes caractéristiques que SetTagxxxWait. Elle offre cependant la possibilité de pouvoir lancer plusieurs contrats d'écriture dans un même contrat.

Fonctions GetTag :

GetTagxxx

La variable est déclarée par l'appel de la fonction. Elle sera demandée cycliquement dans l'automate. Le cycle de lecture est ici dépendant du trigger (voir la description suivante).
Lors de l'appel de GetTagxxx la valeur présente sera délivrée à WinCC. Les variables seront closes lors de fermeture de l'image.
Remarque : Si une variable est demandée dans une action Global Script, alors elle reste déclarée sur l'ensemble du temps d'exécution du Runtime de WinCC.
Dans les fonctions Callback la fonction correspondante GetTagxxxWait doit être utilisée.

· Comportement dans les actions avec le trigger par variable
Toutes les variables contenues dans le trigger sont déjà déclarées lors de l'appel d'image avec le temps de surveillance qui leur est attribué. Si une variable déclarée est contenu dans le trigger, alors la valeur sera déjà disponible et l'appel sera directement transmis.
Remarque : Si une variable déclarée n'est pas contenue dans le trigger par variable, alors elle se comportera comme avec un trigger standard.

· Comportement dans les actions avec le trigger standard Lors du premier appel, la variable sera déclarée comme "sur modification". A chaque autre appel la valeur sera alors déjà existante.

· Comportement dans les actions avec trigger sur évènement Lors du premier appel la variable sera déclarée comme "sur modification ". Les variables process sont dépendantes du réglage du temps de réaction du canal.
Remarque : Si derrière l'évènement d'un clic de souris une valeur est déclarée via GetTagXXX, alors la variable sera déclarée et sera demandée cycliquement à l'automate. La charge en est ainsi augmentée (!). C'est pourquoi il faut peut-être considérer ici que de demander la valeur viaGetTagXXXWait (plus grande charge de la communication une seule fois) permettrait par conséquent de contourner ainsi la déclaration (augmentation permanente de la charge de base).

GetTagxxxWait

La variable ne sera pas déclarée. La valeur ne sera demandée qu'une seule fois à l'automate.
L'appel se distingue par les propriétés suivantes :

· L'appel dure plus longtemps en comparaison à GetTagxxx. La durée est dépendante entre autres du canal et de l'automate.
· La valeur actuelle sera lue dans l'automate.
· La fonction ne délivre aucune information sur l'état du contrat d'écriture

GetTagxxxState

Cette fonction possède les mêmes caractéristiques que GetTagxxx. Mais en plus la fonction GetTagxxxState délivre des informations sur l'état de la variable.
Bien que l'état interne y soit toujours inclus, il n'y a aucune différence de performance par rapport à GetTagxxx.

GetTagxxxStateWait

Cette fonction possède les mêmes caractéristiques que GetTagxxxWait. Mais en plus la fonction GetTagxxxStateWait délivre des informations sur l'état de la variable.
Bien que l'état interne y soit toujours inclus, il n'y a aucune différence de performance par rapport à GetTagxxxWait.
La différence entre la fonction GetTagxxxStateWait et GetTagxxxState est la même qu'entre les fonctions GetTagxxxWait et GetTagxxx..
Il faut faire attention qu'avec des variables process la valeur sera lue dans l'automate et l'état peut être par conséquent plus actuel qu'avec la fonction GetTagxxxState.

GetTagMultiWait

Cette fonction possède les mêmes caractéristiques que GetTagxxxWait. Elle offre cependant la possibilité de pouvoir lire plusieurs variables dans un contrat.

 

Automatismes et Systèmes Industriels

Les membres du Club WinCC sur le Ouebe
José Ros - Edito & Tips - jose.ros@asi-system.com
Benjamin Barletta - Web Designer - benjamin.barletta@asi-system.com
Jean-Louis Marin - Contacts - jean-louis.marin@asi-system.com