afficher la liste des articles
WinCC -- Création d'un projet HMI -- Utilisation des variables
Comment peut-on partager une variable process (16 bits) en deux variables internes de 8 bits chacune ?
Comment peut-on adresser indirectement une variable à l'aide d'un script C?
Comment peut-on adresser un bit dans un automate avec une liaison FMS de WinCC vers cet automate ?
Conversion d'une variable INT en une variable ASCII avec WinCC
Pourquoi, dans WinCC, des espaces sont-ils affichés au début d'une variable associée de procédé (Text) et qu'à la fin de cette variable, les caractères sont tronqués ?
Comment accélérer lepremier appel d'une fonction GetTag ou SetTag ?
Quelles sont les opérations logiques possibles avec les variables dans les scripts en C ?
Comment utilise-t-on les fonctions GetTagMultiWait et SetTagMultiWait avec le format String ?
Quelles sont les particularités dans un VBScript concernant les opérations sur bit de variables et comment positionner le bit de poids fort (Bit-31/Bit-32) dans WinCC avec VBS ?
Comment utiliser la fonction "SetTagMultiWait()"-pour écrire plusieurs variables WinCC?
Comment utiliser la fonction "GetTagMulti()"-pour lire plusieurs variables WinCC?
Pourquoi l'accès à des variables -avec indication du préfixe de variable dans le nom de la variable- provoque des erreurs d'accès à l'intérieur d'une fenêtre de vue ?
Comment basculer/commuter une variable WinCC de type de données "binaire" en utilisant VBS (Visual Basic Scripting) ?
Pourquoi la valeur n'est-elle pas affichée correctement lorsque l'on pointe une variable avec un VBS et qu'on la lit dans la foulée ?
Comment définir la taille mémoire pour les types de données en C ou les variables C?
Pourquoi la valeur n'est-elle pas affichée correctement lorsque l'on pointe une variable avec un VBS et qu'on la lit dans la foulée ?
Nº de référence:


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"

 ID contribution:18943009   Date:2010-11-04 
Cette contribution...m´a aidéne m´a pas aidé                                 
mySupport
My Documentation Manager 
Lettre d'information 
CAx-Download-Manager 
Demande d'assistance technique
A propos de cet article
Imprimer
Créer PDF 
Envoyer l'article
QuickLinks
Outil de compatibilité 
Aide
Aide en ligne
Guided Tour