Souscriptions

Au lieu d'une lecture continue des informations par interrogation, le protocole OPC UA inclut une fonction de souscription. Cette fonction permet à la pile hautes performances OPC UA intégrée au module BMENUA0100 de fournir des services de publication/souscription qui sont utilisés lors de la connexion du module aux équipements distants.

Un client OPC UA peut s'inscrire à un ou plusieurs noeuds sélectionnés et laisser le serveur surveiller ces éléments. En cas d'événement de changement, par exemple un changement de valeur, le serveur informe le client du changement. Ce mécanisme réduit notablement la quantité de données transférées. Il s'ensuit une réduction de la consommation de bande passante et cette méthode est recommandée pour la lecture des informations d'un serveur OPC UA.

Un client OPC UA peut souscrire à un ou plusieurs types d'informations fournies par un serveur OPC UA. La souscription regroupe ces types de données, appelés éléments surveillés, pour constituer un ensemble de données appelées Notification.

Conditions requises pour une souscription :

  • Elle doit inclure au moins un élément surveillé.

  • Elle doit être créée dans le contexte d'une Session, laquelle est créée dans le contexte d'un canal sécurisé.

NOTE : La souscription peut être transférée à une autre session.

Les ensembles de services impliqués dans une souscription de client sont décrits ci-dessous :

Souscriptions et dépassements

Dans certains cas, lorsqu'il existe un grand nombre de demandes de souscription, le serveur OPC UA tente d'obtenir de la CPU une quantité de données supérieure à ce que la CPU ou le module BMENUA0100 peut traiter dans l'intervalle de publication spécifié. Dans ce cas, le temps d'exécution des demandes d'abonnement est automatiquement prolongé (et l'exécution de la souscription suivante reportée) jusqu'à ce que toutes les demandes soient traitées.

Lorsque vous définissez un intervalle de publication, tenez compte du nombre de clients et de requêtes client que le serveur doit gérer. Lorsque vous déterminez le nombre de requêtes client, vérifiez que tous les clients fonctionnent en ligne. A cet égard, notez que certains clients peuvent prendre 2 minutes ou plus pour se connecter après le démarrage.

NOTE : Un intervalle de publication égal à deux fois l'intervalle d'échantillonnage est recommandé.

Événements de changement

Un client peut s'inscrire à un événement de changement de données, qui est déclenché par un changement de la valeur de l'attribut d'une variable, en tant qu'élément surveillé.

Les paramètres configurables de la souscription, leur ordre et leurs rôles, sont décrits ci-dessous :

Les trois paramètres suivants déterminent comment les éléments surveillés sont ajoutés à une souscription :

  • Intervalle d'échantillonnage : intervalle de temps d'échantillonnage défini pour chaque élément surveillé de la souscription. Il s'agit de la fréquence à laquelle le serveur vérifie si la source de données a été modifiée. Pour un élément de variable, l'intervalle d'échantillonnage peut être inférieur (plus rapide) que la période entre les notifications au client. Dans ce cas, le serveur OPC UA peut mettre en file d'attente les échantillons et publier la file complète. Dans des cas extrêmes, le serveur corrige (ralentit) l'intervalle d'échantillonnage pour que la source de données ne subisse pas de charge excessive en file d'attente pouvant être causée par l'échantillonnage.

    NOTE : Si la mise en file d'attente OPC UA des échantillons de données est prise en charge, la taille de la file d'attente (nombre maximal de valeurs à mettre en file d'attente) peut être configurée pour chaque élément surveillé (Monitored Item). Si les données sont fournies (publiées) au client, la file d'attente est vidée. En cas de débordement de la file d'attente, les données les plus anciennes sont supprimées et remplacées par les nouvelles données.
  • Filtre : ensemble de critères appliqués pour identifier les événements ou changements de données à signaler, et lesquels doivent être bloqués.

  • Mode de surveillance : permet d'activer ou de désactiver l'échantillonnage et les comptes-rendus.

Les deux paramètres suivants s'appliquent à la souscription :

  • Intervalle de publication : Période au bout de laquelle les notifications collectées dans les files d'attente sont transmises au client dans un message de notification (réponse de publication). Le client OPC UA doit confirmer que le serveur OPC UA a reçu assez de jetons de publication (requêtes de publication), de sorte que si l'intervalle de publication est écoulé et qu'une notification est prête à être envoyée, le serveur utilise un jeton et envoie les données dans une réponse de publication. S'il n'y a rien à signaler (par exemple aucun changement de valeur) le serveur envoie une notification KeepAlive au client, qui est une publication vide indiquant que le serveur est actif.

  • Activation publication : Active et désactive l'envoi du message de notification.

Facette de serveur de souscription à modifications de données (intégrée)

La facette de serveur de souscription à modifications de données intégrée définit le niveau minimal de prise en charge des notifications de changement de données dans les souscriptions. Inclut les limites qui réduisent l'utilisation de mémoire et de temps système nécessaire pour implémenter la facette. Cette facette inclut des fonctions pour créer, modifier et supprimer des souscriptions et pour créer, modifier et supprimer des éléments surveillés. Pour chaque Session, les serveurs doivent prendre en charge au moins une souscription incluant jusqu'à deux éléments. De plus, la prise en charge de deux requêtes de publication parallèles est nécessaire. Cette facette est conçue pour une plateforme tel que celle que fournit le profil de serveur d'équipements intégré Micro où la mémoire est limitée et doit être gérée. Pour la description complète de cette facette, consultez http://opcfoundation.org/UA-Profile/Server/EmbeddedDataChangeSubscription.

Cette facette prend en charge les services suivants :

  • Ensemble de services Monitored Item

  • Ensemble de services Subscription

Ensemble de services Monitored Item

L'ensemble de services Monitored Item prend en charge les services suivants :

  • CreateMonitoredItems : appel asynchrone qui permet de créer et d'ajouter un ou plusieurs éléments surveillés (MonitoredItems) à une souscription.

  • ModifyMonitoredItems : appel asynchrone qui permet de modifier des éléments surveillés. Ce service permet de modifier les MonitoredItems d'une souscription. La modification des paramètres MonitoredItem doivent être appliqués immédiatement par le serveur. Ces modifications sont appliquées dès que possible.

  • DeleteMonitoredItems : appel asynchrone qui permet de supprimer des éléments surveillés. Ce service permet de supprimer un ou plusieurs MonitoredItems d'une souscription. Si un MonitoredItem est supprimé, les liens déclenchés par l'élément sont également supprimés.

  • SetMonitoringMode : appel asynchrone qui permet de définir le mode de surveillance d'une liste d'éléments surveillés. Ce service permet de définir le mode de surveillance d'un ou plusieurs MonitoredItems d'une souscription. La sélection du mode DISABLED entraîne la suppression de toutes les notification en file d'attente.

Ensemble de services Subscription

L'ensemble de services Subscription prend en charge les services suivants :

  • CreateSubscription : appel asynchrone pour créer une souscription.

  • ModifySubscription : appel asynchrone pour modifier une souscription. Le serveur applique immédiatement les modifications à la souscription, et les modifications sont appliquées dès que possible.

  • DeleteSubscription: appel asynchrone pour supprimer une ou plusieurs souscriptions appartenant à la session client. L'exécution de ce service entraîne la suppression de tous les Monitored Items associés à la souscription.

  • Publish : ce service est utilisé dans deux buts : acquitter la réception des NotificationMessages pour une ou plusieurs souscriptions, et demander au serveur de renvoyer un message de notification ou un message keep-alive.

  • Republish : un appel asynchrone de republication pour obtenir les notifications perdues. Ce service demande à la souscription de republier un message de notification de la file d'attente de retransmission. Si le serveur n'a pas le message demandé dans sa file d'attente de retransmission, il renvoie une réponse d'erreur.

  • SetPublishingMode : appel asynchrone pour activer l'envoi de notifications sur une ou plusieurs souscriptions.