Intégrer des caméras IDS NXT dans l'automatisation industrielle via OPC UA

Une mise à jour logicielle fournit aux caméras IDS NXT un autre composant tourné vers l'avenir pour une intégration transparente dans l'automatisation industrielle. Un plug-in intègre un serveur OPC UA dans les caméras. Vous pouvez ainsi mettre vos capacités d'IA à disposition sur le réseau via un « livre de recettes » et communiquer les résultats directement du terrain aux machines et aux commandes. Les configurations de caméras et les tâches d'inférence basées sur des application de vision deviennent ainsi accessibles dans l'environnement industriel dans un format compatible et lisible pour tous les clients OPC UA. OPC UA est donc le module complémentaire Industrie 4.0 idéal pour vos caméras IDS NXT.

OPC UA

OPC UA est une technologie clé. Elle unifie la communication entre les clients et les serveurs. Elle définit également comment les dispositifs (serveurs) se décrivent aux clients et quelles informations et services ils offrent. Cet échange uniforme à travers toutes les couches physiques et les bus de terrain basés sur Ethernet simplifie énormément l'effort d'ingénierie si les données n'ont plus à être lues, converties et synchronisées par l'intermédiaire de différents protocoles et passerelles. Cela permet d'économiser du temps et des coûts d'automatisation tout en garantissant une intégration rapide dans les installations industrielles. Avec la spécification OPC Machine Vision Companion, la technologie de communication inter-fabricants et inter-secteurs fournit l'extension d'interface idéale aux caméras IDS NXT pour mettre simplement en œuvre les « recettes » basées sur l'IA dans l'automatisation industrielle.

Plugin de serveur OPC UA IDS NXT

Le plugin de serveur OPC UA transforme les caméras IDS NXT en serveurs OPC UA accessibles par tout client OPC UA. Les tâches de traitement d'image sont encapsulées par le plug-in dans des blocs de fonction appelés « recettes ». Les paramètres de caméra nécessaires et parfois très approfondis pour des applications spéciales sont également résumés et enregistrés dans des jeux de données de configuration. Pour ces mesures, le plugin fournit des fonctions appropriées via l'interface REST. Vous pouvez très facilement les utiliser via l'interface graphique d'IDS NXT Cockpit. Les résultats du traitement d'image peuvent être interrogés par les clients OPC UA via la gestion des résultats ou faire l'objet d'un abonnement en tant qu'événement. Les informations générales sur l'appareil, telles que son nom ou son numéro de série, sont fournies via le modèle d'information de l'appareil. La communication OPC UA fonctionne comme une interface de caméra supplémentaire disponible sur le réseau Ethernet après le démarrage du serveur OPC UA.

Client OPC UA

Les caméras IDS NXT peuvent être connectées à n'importe quel client OPC UA via le plugin OPC UA. Il peut s'agir, par exemple, du logiciel propriétaire d'une commande de machine ou d'un système de gestion. À l'aide des bibliothèques de développement OPC UA pour différents langages de programmation tels que C++, C# ou Python, vous pouvez également implémenter votre propre client OPC UA. Comme nous voulons montrer ici comment intégrer rapidement et facilement la caméra dans les réseaux OPC UA existants, nous utilisons l'illustre client OPC UA « UaExpert® » pour faire la démonstration du plugin OPC UA. Le client complet offre un large éventail de fonctions et une interface graphique qui permet de démontrer facilement les possibilités du serveur OPC UA IDS NXT. Il prend en charge les fonctions OPC UA comme DataAccess, Events et l'appel des méthodes OPC UA.

Utilisation d'IDS NXT comme système de vision OPC UA

Pour montrer la commande de la caméra IDS NXT via OPC UA, cette astuce technique décrit un exemple de flux de traitement d'image basé sur l'IA que vous pouvez facilement reproduire en utilisant votre caméra IDS NXT et quelques objets (stylo, règle, gomme, clé, etc.). Pour ce faire, suivez simplement les instructions ci-dessous, étape par étape.

1) Mettre en place une tâche d'inférence

  • Pour cet exemple, nous utilisons l'application de vision « Classifier » avec le réseau neuronal préinstallé (CNN) « ImageNet1000 ». Installez et démarrez l'application via le gestionnaire des applications de vision « Vapp Manager » dans IDS NXT Cockpit.
  • Classifier reconnaît de nombreux objets, tels que des stylos, des clés, des cartes de visite, grâce au réseau ImageNet1000 pré-entraîné. Placez n'importe quel objet sous votre caméra IDS NXT et réglez l'acquisition d'image en mode ouverture libre afin que vos objets soient entièrement représentés et avec les paramètres appropriés (couleur, netteté, exposition, etc.).
  • Utilisez les ROI pour les objets que vous voulez identifier.
    Les résultats d'inférence de la classification de chaque acquisition d'image sont affichés au niveau des ROI et dans la zone de résultat avec la probabilité correspondante.
    Dans notre cas, le stylo à bille (68 %), le taille-crayon (100 %) et la gomme (98 %) sont reconnus.

2) Démarrer le serveur OPC UA

  • Vous n'avez rien à programmer pour assurer la communication OPC côté caméra. Installez (1) et démarrez (2) simplement le plugin du serveur OPC UA via le gestionnaire des applications de vision « VAPP Manager » dans IDS NXT Cockpit sur votre caméra IDS NXT.
  • Vous pouvez démarrer (1) et arrêter (2) le serveur OPC UA via les actions du plugin. Par défaut, le serveur est démarré automatiquement (3) lorsque le plugin est lancé.

3) Configurer l'OPC UA et créer des recettes

  • La création et l'enregistrement de configurations sur la caméra IDS NXT via le plugin OPC UA s'effectuent facilement dans IDS NXT Cockpit.
  • Il suffit de nommer les paramètres actuels de la caméra (Configuration name) et la tâche d'inférence avec Classifier (Recipe name) et d'enregistrer la configuration et la recette en utilisant les actions correspondantes. Vous avez maintenant terminé la configuration de l'OPC UA de la caméra via le cockpit.

4) Client OPC UA - Établir une connexion au serveur

  • Installez et démarrez le client OPC UA « UaExpert® ».
  • Pour connecter le serveur OPC UA de la caméra, cliquez sur (Add Server/Ajouter un serveur) dans la barre de menu. Accédez à l'onglet « Advanced » (Avancé).
  • Donnez à la connexion un nom de configuration « Configuration Name »
  • Indiquez l'URL du point de terminaison « Endpoint URL » du serveur (par ex. « opc.tcp://169.254.173.231:4840 »)
    • Protocole : opc.tcp
    • Adresse IP de la caméra
    • Port du serveur OPC UA : 4840
  • Sélectionnez la stratégie de sécurité souhaitée « Security Policy » (options prises en charge : None, Basic128Rsa15, Basic256, Basic256Sha256)
  • Sélectionnez le mode de sécurité du message « Message Security Mode » (None, Sign, Sign&Encrypt)
  • Dans les paramètres d'authentification « Authentication Settings », saisissez les données d'accès de votre caméra IDS NXT (p. ex. utilisateur admin ou service)
  • Vous pouvez maintenant vous connecter au serveur OPC UA : « Connect »

5) Demander/modifier des informations sur les appareils

  • Pour tester la connexion au serveur, vous pouvez naviguer dans le modèle d'information de la caméra, dans la fenêtre « Adress Space » (espace adresse). Par exemple, si vous changez le nom de l'appareil dans UaExpert® , il sera également mis à jour dans IDS NXT Cockpit.
  • En outre, vous pouvez vous abonner aux paramètres de statut et de statistiques via « Data Access View » (vue d'accès aux données) pour suivre leurs modifications. Par exemple, si vous glissez-déplacez le compteur d'images « ImageTotal » dans la fenêtre, sa valeur augmentera dynamiquement à chaque nouvelle capture d'image de la caméra.
  • Pour réinitialiser le compteur d'images, exécutez la commande « Call » (appel) dans le menu contextuel des méthodes « ResetAll » (tout réinitialiser). Le compteur d'images souscrit recommence alors à compter à « 0 ».

6) Activer la configuration de la caméra

  • Tout d'abord, utilisez un appel de la fonction GetConfigurationList pour récupérer une liste des configurations enregistrées sur la caméra.
    ResultCount nous montre « 1 » configuration disponible avec l'ID interne « conf_classifier.json ».
  • Utilisez la fonction ActivateConfiguration pour définir la configuration actuellement valide, dont les paramètres enregistrés sont ensuite réglés dans la caméra. Définissez l'ID interne correspondant comme valeur d'entrée (Id) pour l'appel.
  • Vous pouvez contrôler la configuration actuellement active via le nœud Active Configuration. Là, l'ID « conf_classifier.json » doit apparaître dans les attributs.

7) Préparer la tâche (recette)

Nous procédons maintenant de la même manière avec la tâche de traitement d'image pré-enregistrée de la caméra.

  • Un appel de la fonction GetRecipeListFiltered avec la valeur d'entrée IsPrepared = 2 (DONTCARE_2) renvoie « 1 » recette enregistrée comme ResultCount. Dans notre cas, la recette enregistrée avec l'ID « recipe_classifier_imagenet.json »
  • Avec la fonction PrepareRecipe, vous préparez maintenant cette recette comme tâche de traitement d'image active en définissant l'IDprécédemment interrogé comme valeur d'entrée « InternalIdIn ».

8) S'abonner au résultat Événement

La caméra est maintenant entièrement préparée via le client OPC UA. Avant d'exécuter la tâche de caméra, vous devez encore vous abonner au résultat Événement.

  • Pour ce faire, ajoutez une vue événement EventView...
  • et faites glisser le système de vision VisionSystem de la caméra dans cette vue.
  • Cochez les cases SimpleEvents (événements simples) et ConditionTypes (types de condition) pour afficher tous les détails.
  • Confirmez la sélection en cliquant sur le bouton Apply (appliquer).

9) Exécuter la tâche (recette) - Évaluer le résultat Événement

Nous laissons maintenant la caméra faire son travail.

  • Pour ce faire, appelez la méthode StartSingleJob.
  • Dans EventView, un ResultReadyEvent est reçu de la caméra.
  • Dans les détails de l'événement, nous voyons les résultats d'inférence des trois ROI spécifiés (stylo à bille, taille-crayon, gomme/ballpoint, pencil_sharpener, rubber_eraser) avec leurs probabilités respectives de classification.