DESCRIPTION :
Vous avez écrit par ex. les lignes de code suivantes dans un VBS, qui ne fonctionnent pas toujours.
HMIRuntime.Tags("NewTag_2").Write HMIRuntime.Tags("NewTag_1").Read
HMIRuntime.Tags("NewTag_3").Write HMIRuntime.Tags("NewTag_2").Read
HMIRuntime.Tags("NewTag_4").Write HMIRuntime.Tags("NewTag_3").Read
HMIRuntime.Tags("NewTag_5").Write HMIRuntime.Tags("NewTag_4").Read
Dans le cas montré ci-dessus, les valeurs sont lues et écrites par la mémoire image des variables. Pour s'assurer que la variable a bien été lue avant de l'écrire, vous pouvez utiliser une fonction de lecture et d'écriture synchrone. Modifiez ainsi la fonction de lecture de "Read" en "Read(1),1" - comme dans l'exemple suivant :
HMIRuntime.Tags("NewTag_2").Write HMIRuntime.Tags("NewTag_1").Read(1) ,1
HMIRuntime.Tags("NewTag_3").Write HMIRuntime.Tags("NewTag_2").Read(1) ,1
HMIRuntime.Tags("NewTag_4").Write HMIRuntime.Tags("NewTag_3").Read(1) ,1
HMIRuntime.Tags("NewTag_5").Write HMIRuntime.Tags("NewTag_4").Read(1) ,1
Remarque : Les fonctions de lecture et d'écriture synchrones correspondent aux GetTagxxxWait et SetTagxxxWait dans le monde ANSI C. Ces fonctions ont l'inconvénient de durer plus longtemps, car elles sont dépendantes du couplage et de l'API. La suite du traitement du script est arrêtée tant qu'une réponse de l'API n'est pas arrivée. Ces fonctions peuvent conduire à une perte de performance, et elles ne doivent donc être utilisées qu'à titre exceptionnel. Les fonctions de lecture et d'écriture asynchrone sont nettement plus performantes car elles travaillent avec la mémoire image des variables. Ici la lecture et l'actualisation des variables sont deux fonctions séparées l'une de l'autre dans le processus.
Les fonctions synchrones ne doivent être utilisées que lorsqu'il faut s'assurer que la variable a bien été lue ou écrite avant de traiter la suite du Script.
Note : Se référer aux descriptions de GetTag et de GetTagWait notées dans le Système d'Information WinCC sous :
- WinCC V6.0 - "Travailler avec WinCC > ANSI-C pour la création de fonctions et d'actions > Description de fonction > Fonction Interne > tag > get > GetTagBit > Comment travaille les fonctions GetTag"
- WinCC >= V6.2 -"Travailler avec WinCC > ANSI-C pour la création de fonctions et d'actions > Fonction Interne > tag > Comment travaille les fonctions GetTag"
|