Mécanismes d'échange de messages dans PcVue

La plupart des drivers Equipement sont basés sur le modèle de communication requête/réponse où PcVue est le maître/client qui envoie des requêtes et l'équipement de terrain est l'esclave/serveur qui répond aux requêtes.
Cette rubrique explique comment les échanges de messages sont séquencés, ce qui déclenche des erreurs de communication et ce que vous pouvez faire pour optimiser les flux de requêtes/réponses.

Il y a trois durées utilisées pour contrôler l'envoi de message et la détection des erreurs de communication :

  • Time-out équipement - Configuré au niveau de l'équipement, c'est le temps maximum d'attente par PcVue pour une réponse de l'équipement de terrain après avoir envoyé une demande.
  • Période de scrutation - Configurée au niveau de la trame, c'est l'intervalle auquel PcVue envoie une requête de trame à l'équipement de terrain (à l'exception des trames en écriture).
  • Délai du message - Configuré au niveau de l'équipement, c'est l'intervalle minimum que le logiciel PcVue doit attendre, après avoir reçu une réponse, avant d'envoyer toute autre requête. Ceci n'est pas utilisé pour beaucoup de drivers. Il est défini à 0, à l'exception des drivers sur un média de communication qui nécessite un tel délai entre les requêtes (généralement la radio uniquement).

Gestion des requêtes/réponses et des erreurs

Pour chaque trame configurée, la séquence d'échanges de messages (sans tenir compte du délai du message) est la suivante : FerméVoir l'image

  1. PcVue envoie un message de requête pour la trame et attend une réponse.
  2. Si une réponse est reçue, PcVue attend la période de scrutation et envoie la requête suivante.
  3. Si l'équipement ne répond pas avant la fin du time-out de l'équipement, la demande est retentée jusqu'à trois fois, dans l'espoir d'obtenir une réponse.
  4. Si, après la troisième tentative, il n'y a pas de réponse (ou une réponse invalide), la trame est indiquée en erreur et l'équipement est indiqué en défaut. Les statuts de la trame et de l'équipement sont mis à jour.
  5. Les requêtes suivantes sont envoyées à la période de scrutation de la trame mais seulement une fois. Si aucune réponse n'est reçue (ou n'est pas valide), le compteur d'erreurs est incrémenté.
  6. Lorsqu'une réponse est reçue, la trame est marquée Ok, et l'équipement est marqué comme en état normal. Le statut de la trame et de l'équipement est mis à jour.

Les compteurs d'échanges et d'erreurs ne sont réinitialisés que lorsque la communication est stoppée.

Voir la rubrique Statuts généraux de communication pour plus d'informations sur le statut général et le status spécifique aux drivers.

Les files d'attente de lecture et d'écriture

PcVue traite les trames à l'aide d'un mécanisme de file d'attente. Les requêtes de traitement des trames sont ajoutées à la fin de la file d'attente. Les requêtes de traitement de trames sont exécutées à partir du début de la file d'attente puis traitées dans un ordre strict. Ce mécanisme est appelé first in first out.

Les files d'attente des trames sont organisées par paires, une pour les trames de lecture et une pour les trames d'écriture. Le Gestionnaire de Communication permute entre les files d'attente en exécutant une requête de lecture puis une requête d'écriture. Si l'une ou l'autre des files d'attente est vide, elle n’est pas traitée dans la séquence.

  • Pour un driver série, il y a une file d'attente de lecture et une file d'attente d'écriture pour chaque réseau. Les trames de tous les équipements d'un réseau sont gérées par les deux files d'attente.
  • Pour un protocole TCP/IP, il y a une file d'attente de lecture et une file d'attente d'écriture par équipement.

Les trames ayant la propriété Mode de priorité cochée sont insérées au début de la file d'attente, outrepassant ainsi le mécanisme de mise en file.

La propriété Mode de priorité doit être utilisée avec beaucoup de précautions à cause de l'effet que cela peut produire sur les autres trames. Vous ne devez l'utiliser que si le support technique vous l'a recommandé.

Des moyens d'optimiser la communication

Il est nécessaire de configurer la gestion des trames afin que le flux de données permette un bon fonctionnement du logiciel PcVue. Pour cela, vous pouvez agir sur les paramètres suivants :

  • Périodes de scrutation - Choisissez la bonne période de scrutation dans la configuration des trames pour s'adapter à vos besoins de fraîcheur des données
  • Time-out équipement - Choisissez le bon time-out équipement selon la réactivité de l'équipement (et du réseau)
  • Taille des trames - En général, évitez de nombreuses petites trames, préférez quelques grandes trames

Si aucune variable n'est liée à une trame, la scrutation est suspendue automatiquement et la trame est désactivée.

Le module d'exécution des drivers actualise son cache de données au rythme spécifié par la période de scrutation des trames. Les variables sont rafraîchies sur événement, dès qu'une modification des données est détectée.

L'importance d'une configuration correcte des trames

Il est très important de configurer les trames correctement. Des trames mal configurées (adresse ou taille incorrecte etc.) généreront des traitements d'erreur. La communication sera ralentie par le traitement d'erreur et cela aura un impact sur les performances.

  • Lors de l'utilisation d'un driver série, une configuration incorrecte aura un impact sur la totalité du réseau.
  • Lors de l'utilisation d'un driver TCP/IP, une configuration incorrecte aura un impact sur un équipement en particulier.

Ajuster la période de scrutation

Le Gestionnaire de Communication envoie cycliquement des requêtes aux équipements de terrain. La période à laquelle les demandes sont envoyées est spécifiée par la période de scrutation des trames. La valeur par défaut est paramétrée à 1 seconde, mais vous pouvez modifier cette valeur suivant la fréquence à laquelle les données de votre process évoluent. Si par exemple, vous surveillez un paramètre de type température, une période de scrutation d'une seconde est vraisemblablement trop fréquente. Vous pouvez paramétrer la période de scrutation à 1 minute ou plus afin de réduire le trafic des messages sur le réseau. FerméVoir l'image

Le Gestionnaire de Communication : exemple de la définition de la période de scrutation.

Si vous pensez à une trame sur un réseau comme une voiture sur la route, plus vous avez de voitures, plus la route est occupée. Si vous avez trop de voitures, le trafic peut s'arrêter.

Ajuster la taille des trames

Vous devriez minimiser le nombre de trames transférées entre les équipements et PcVue. Il est préférable d'utiliser une grande trame que plusieurs petites, même si toutes les adresses de la trame ne sont pas associées à des variables. FerméVoir l'image

Vous devez également tenir compte de la période de scrutation. Par exemple, si une variable doit être lue à une période d'une seconde et les autres à une période d'une minute, il est préférable d'avoir deux trames, une petite trame scrutant une fois par seconde et une plus grande scrutant toutes les minutes.

Le Gestionnaire de Communication : exemple de taille de trame.

De nouveau l'analogie avec le trafic routier : il y aura moins de trafic sur la route si vous mettez 50 personnes dans un bus au lieu d'une personne par voiture.

Voir Comment mapper une variable sur un sous-élément pour découvrir comment vous pouvez minimiser le nombre de trames dont vous avez besoin en liant des variables sur les sous-adresses d'une trame. Par exemple, comment vous pouvez mapper à la fois des variables mesure et état sur une trame de type Mot ou Double Mot.

Optimisation de la communication avec le SCADA Basic

Lorsque vous développez un script SCADA Basic et que vous voulez envoyer plusieurs valeurs à des variables équipement, vous devez utiliser les instructions SET et SENDLIST plutôt que d'essayer d'écrire les valeurs directement une à une. Donc, au lieu de coder des commandes de cette manière :

Copier
@VAR1 = 10;
@VAR2 = 11;
@VAR3 = 12;

Il est préférable de les coder de cette manière :

Copier
SET("VAR1",10);
SET("VAR2",11);
SET("VAR3",12);

Suivi de la commande SENDLIST :

Copier
SENDLIST("BLOC");

L'utilisation de SET et de SENDLIST ne signifie pas qu'il y aura une seule requête vers l'équipement. Cela ne se produit que dans le meilleur scénario lorsque toutes les variables que vous définissez appartiennent à la même trame et que vous utilisez le mode SENDLIST ("MULTIPLE"). Si toutes les variables n'appartiennent pas à la même trame, il y aura au moins une requête par trame, et si vous utilisez le mode SENDLIST ("BLOC"), le Gestionnaire de Communication peut envoyer une ou plusieurs demandes par trame pour les blocs d'adresses.
Mais dans tous les cas, utiliser SET et SENDLIST est plus efficace que l'affectation directe dès que vous voulez envoyer plus d'une variable.