
Communication IDS NXT
Intégrer les caméras IDS NXT dans sa propre automatisation industrielle
Avec IDS NXT, nous avons créé une plateforme pour une nouvelle génération de systèmes de vision destinés aux applications industrielles, qui peuvent être mis en œuvre comme des capteurs de vision performants dans l'automatisation industrielle, par exemple. En association avec IDS NXT Experience Kit, l'utilisation de l'apprentissage profond est également particulièrement simple. La solution tout-en-un fournit tout le nécessaire pour convertir des caméras IDS NXT en de puissantes caméras à inférence, en exécutant des réseaux neuronaux individuels directement sur les caméras (« on the edge »). La procédure, de l'acquisition et la gestion des images à la caméra à inférence prête à fonctionner, en passant par la formation de l'intelligence artificielle, se résume à quelques étapes. Cependant, quelles interfaces intègrent la caméra à inférence dans son environnement propre ?
Cette astuce technique aborde en particulier les possibilités de communication des caméras IDS NXT et montre clairement comment utiliser les résultats d'inférence dans votre propre environnement.
Interfaces IDS NXT
En tant que systèmes de vision embarquée compacts, les caméras IDS NXT effectuent des tâches de traitement d'image directement « on the edge » et peuvent mettre à disposition des résultats sans PC supplémentaire. Elles peuvent donc être utilisées en tant que capteurs de vision autonomes. En termes d'accès et d'échange de données pour des systèmes externes, elles se distinguent nettement des caméras industrielles, qui servent principalement de fournisseurs d'images pour du traitement d'image sur PC. Nous avons donc doté nos caméras IDS NXT d'interfaces qui peuvent être utilisées de manière plus simple et flexible dans des scénarii de type Internet des objets (IdO).
IDS NXT cockpitLe cockpit IDS NXT permet d’accéder à l’ensemble des paramètres et fonctions importants des caméras industrielles IDS NXT et repose entièrement sur l'interface REST. Vous pouvez également y installer ou configurer des applications de vision.
Peu importe l'interface avec laquelle la caméra fonctionnera par la suite, avec le cockpit IDS NXT, vous disposez d'une interface utilisateur graphique simple d'utilisation pour installer sans effort les applications de caméra et pour configurer le mode Runtime.
IO et RS-232
Même à l'époque de l'industrie 4.0, les entrées/sorties numériques et les interfaces série basées sur UART avec les bus de terrain secondaires présentent de nombreux avantages par rapport à leurs successeurs plus modernes. Pour les inspections complexes de pièces et les contrôles s'appuyant sur des images aussi, les résultats IO ou NIO, supposés simples, suffisent généralement pour guider rapidement et simplement des produits dans de grandes zones industrielles modernes. Il n'existe guère d'autre interface aussi simple et économique à implémenter que les entrées ou sorties numériques. La communication série des appareils est similaire avec RS-232. Elle est prise en charge par un grand nombre de fabricants et d'utilisateurs et aucune autre ne présente une offre en accessoires éprouvés aussi vaste. C'est la raison pour laquelle RS-232 figure toujours aujourd'hui parmi les standards de la communication industrielle.
Avec les interfaces IO et RS-232, les caméras IDS NXT complètent beaucoup d'installations existantes avec des solutions de vision embarquée compactes et performantes sans avoir à modifier l'infrastructure déjà présente.
Interface REST IDS NXT

Avec un service Web REST (Representational State Transfer), les caméras IDS NXT offrent une interface ouverte standardisée pour la communication machine-machine, qui permet une interconnexion simple. De plus, les paramètres et résultats des caméras peuvent être modifiés ou interrogés. Le service Web REST s'appuie sur le protocole HTTP et est ainsi disponible sur la plupart des réseaux.
En tant qu'interface unique, les méthodes HTTP standard telles que GET, POST, PUT, PATCH, etc. sont utilisées. L'interface REST IDS NXT est donc indépendante de la plateforme, mais aussi très polyvalente, sur des clients très divers (PC, smartphones, tablettes), du fait de la large diffusion des méthodes HTTP. Les applications C++ nécessitent un environnement de développement totalement configuré, tandis que les API REST(ful) de classes d'appareil compatibles Web peuvent être commandées sans logiciel ou passerelle supplémentaire. Cela facilite les débuts, mais permet également d'englober de nombreuses actions de configuration dans des scripts simples.
Pour la communication générique avec des capteurs de vision autonomes, l'interface REST peut donc être mise en œuvre plus simplement et avec moins d'interventions indirectes dans le monde de l'Internet des objets (IdO) tout comme dans l'Internet industriel des objets (IIoT - Industrial Internet of Things) qu'une interface PC comme GenICam. Pour les caméras IDS NXT, REST n'est pas seulement l'interface d'« exécution » pour le transfert des données et des résultats, elle intervient aussi dans la configuration (p .ex. cockpit IDS NXT) de la caméra, de ses applications et des interfaces (IO, RS232).
Pourquoi REST ?
- Pas de statut
Grâce à la communication sans statut, chaque message serveur client est complet et contient toutes les informations nécessaires sur l'état actuel de l'application. Cela signifie que le service REST ne doit rien enregistrer entre les versions. Une gestion des sessions dans le serveur n'est donc pas requise, le service Web pouvant être mis à l'échelle à volonté sur le réseau. L'utilisation de REST dans l'IdO peut ainsi être idéale. - Uniformité et indépendance par rapport à la plateforme
Avec REST, les systèmes proposent une interface ouverte standardisée s'appuyant sur la technologie Web, qui permet une interconnexion simple. Les données et les résultats peuvent être échangés entre tous les appareils (I)IoT sans conversion de protocole, ni passerelle. - Simplicité et préservation des ressources
La structure, la transmission et, le cas échéant, le traitement de résultats d'appels simples d'API REST ne demandent généralement que peu de capacités de calcul. Les conditions techniques nécessaires pour la communication REST peuvent déjà être utilisées sur la plupart des appareils compatibles Web, sans logiciel supplémentaire, du fait de la large diffusion des méthodes HTTP standard. - Indépendance géographique
Clients et serveurs peuvent fonctionner séparés les uns des autres (« système distribué »). Même s'ils sont hébergés par différents serveurs, la communication est cependant possible sur REST. - Compatibilité industrielle et Web
L'accès et le transfert aisé des données sont des composantes essentielles de l'IIoT. De par sa flexibilité et sa capacité à utiliser des ressources largement disponibles, REST peut aussi simplifier l'automatisation industrielle. De nombreux systèmes et appareils peuvent être intégrés simplement et rapidement grâce à la communication sur toutes les applications et tous les appareils. La compatibilité Web ouvre la porte à une stratégie d'intégration plus complète. L'évolution et le développement de l'industrie bénéficient aussi de l'ouverture de nouveaux systèmes et technologies.

Le service Web REST IDS NXT est implémenté avec les caractéristiques suivantes :
- Le service Web REST est actif pendant le fonctionnement régulier.
- La sécurité d'accès est mise en œuvre par l'intermédiaire de l'authentification basique HTTP. Cela signifie qu'avec chaque demande, pour l'authentification, les données d'un utilisateur légitime doivent être saisies. Elles sont ensuite transférées encodées en Base 64.
- Les réponses sont transférées au format JSON ou XML.
Documentation
La documentation de l'interface REST IDS NXTet les informations de connexion aux caméras IDS NXT (documentation du cockpit IDS NXT, chapitre « 3.3 Se connecter à l'appareil ») sont disponibles dans la zone de téléchargement de la page Web IDS relative à votre modèle de caméra IDS NXT.
Communication IDS NXT via I/O et RS-232

Pour communiquer les résultats du traitement d'image de la caméra via les entrées/sorties numériques ou l'interface série, vous devez simplement démarrer les deux applications de vision IDS NXT « GPIO Gateway » et « RS-232 Gateway » via le cockpit IDS NXT et définir l'application de vision pour laquelle vous souhaitez émettre des résultats spécifiques. Pour cela, vous n'avez rien à programmer. Tous les réglages peuvent être effectués via l'interface utilisateur graphique du cockpit IDS NXT.
À titre d'exemple, vous pouvez configurer les sorties numériques de sorte qu'elles soient actives pendant un certain temps lorsque l'IA de la caméra (CNN manager avec « ImageNet1000 ») a classifié certains objets (p. ex. « Bon » ou « Mauvais ») Ou vous communiquez la classe d'objet identifiée et la probabilité de l'inférence comme valeurs de résultat sur la connexion série.
Documentation
Une description détaillée des deux applications de vision et de leur configuration sont disponibles dans la zone de téléchargement relative à votre caméra IDS NXT sur la page Web IDS. Télécharger la documentation "GPIO Gateway" documentation (EN)
Télécharger la documentation "RS-232 Gateway" documentation (EN)
Communication REST IDS NXT
Le gros avantage de REST pour le développeur réside dans la compatibilité Web et donc dans la simplicité des outils requis. C'est pourquoi nous vous présentons des exemples d'utilisation des méthodes HTTP GET, POST, PUT et DELETE avec des moyens simples pour accéder aux données d'une caméra IDS NXT.
Notez que cette astuce technique n'est pas pensée comme une documentation complète d'utilisation de l'API REST. Nous souhaitons plutôt vous fournir des conseils de base pour faciliter vos débuts. Le « reste » vous regarde !
Pour bien comprendre les exemples suivants, vous avez besoin d'une caméra IDS NXT avec un accès sur un PC Windows du même réseau. Pour ne pas accéder uniquement à des paramètres stupides, nous laissons aussi la caméra faire quelque chose de pertinent. Nous utilisons l'IA de la caméra et le réseau neuronal (CNN) pré-installé « KritzelNN ». L'IA de la caméra reconnaît ainsi les dessins de personnes, de chiens, de chats et de caméras. Nous demandons via l'API REST ce qu'elle identifie sur un dessin peint par elle-même.
Scénario test « Je vois quelque chose que tu ne vois pas » :
- Réseau avec caméra IDS NXT rio ou rome et un PC Windows
- L'application de vision « CNN-Manager » fonctionne avec le réseau neuronal pré-installé « KritzelNN ».
- Divers dessins d'une personne, d'une caméra, d'un chat ou d'un chien.
Documentation
Vous trouverez une documentation sur l'utilisation de CNN-Manager avec les URL REST nécessaires et le démarrage du réseau « KritzelNet » dans la zone de téléchargement relative à votre caméra IDS NXT sur la page Web IDS. Télécharger la documentation "CNN manager" documentation (EN)
Appel REST avec « cURL » (ligne de commande)
cURL est un outil de lignes de commande pour transférer des données sur des URL, que vous pouvez exécuter simplement dans l'invite de commande (également cmd.exe). Pour accéder au résultat d'inférence (KritzelNN) de la dernière image de caméra, nous envoyons une requête 'GET' avec la ressource souhaitée '/vapps/cnnmanager/resultsources/last'.
Image de caméra :
C:\Users\ids>curl -sX GET http://192.168.2.102/vapps/cnnmanager/resultsources/last --user admin:ids
{
"inference": {
"Top1": "person",
"Top2": "camera",
"Top3": "cat",
"Top4": "dog"
},
"inference_propability": {
"Top1": "0.99",
"Top2": "0.01",
"Top3": "0.00",
"Top4": "0.00"
},
"inferencetime": {
"Content": "43"
}
}
Si vous souhaitez filtrer les données de réponse JSON, vous pouvez utiliser un outil supplémentaire tel que 'jq'. Le processeur de lignes de commande JSON, simple et flexible, ne nécessite aucune autre dépendance. Pour émettre uniquement le résultat d'inférence Top1 et sa probabilité, étendez la requête à :
| jq ".inference.Top1, .inference_propability.Top1, .inferencetime.Content"
C:\Users\ids>curl -sX GET http://192.168.2.102/vapps/cnnmanager/resultsources/last --user admin:ids | jq ".inference.Top1, .inference_propability.Top1"
"person"
"0.95"
À des fins de test, présentez maintenant devant l'objectif de la caméra différents dessins et accédez aux résultats d'inférence correspondants.
Appel REST dans le navigateur
Directement via la barre d'adresse
La requête d'inférence est accessible très aisément avec le navigateur Web (p. ex. Firefox ou Google Chrome). Saisissez pour cela l'URL suivante dans la barre d'adresse:http://admin:ids@192.168.188.21/vapps/cnnmanager/resultsources/last
Les informations de connexion sont transférées dans l'en-tête d'autorisation HTTP standard.
Malheureusement, pour des questions de sécurité, les navigateurs (p. ex. IE) ne prennent plus tous en charge les informations de connexion intégrées à l'URL !
Avec plugins de navigateur
Plugins de navigateur d'API Rest
Il existe également une série de très bons plugins de navigateur qui vous aide avec des interfaces utilisateur graphiques très claires lors des tests des appels REST.
Nous testons notre demande de résultat d'inférence avec le navigateur Google Chrome et l'extension « YuiAPI ».
Appel REST dans un client spécial
La possibilité certainement la plus confortable pour communiquer avec un service Web REST sont les clients comme « Postman ». Avec l'interface utilisateur graphique claire et une grande aide avec les codes d'état, les temps de réponse, une détection automatique de la langue ainsi que la mise en évidence des liens et de la syntaxe lors de la création d'appels REST, les novices trouvent aussi rapidement un accès à REST. L'analyse et le filtrage des données de réponse aussi en sont simplifiés. Un autre avantage réside dans la possibilité d'importer ou de créer soi-même des descriptions API complètes, dans lesquelles une spécification de l'API connue, telle que RAML, WADL ou OpenAPI est utilisée.
Postman est un environnement de développement visuel pour la communication avec le service Web REST des caméras IDS NXT. Les appels REST peuvent ainsi être créés, mais aussi enregistrés et réutilisés.

Les données que vous réutilisez sans cesse peuvent ainsi être mises à votre disposition confortablement dans des variables. Mais la fonction sans doute la plus importante de Postman est la création de code. D'une pression de bouton, le client crée à partir de vos appels REST testés et enregistrés des codes snippets entièrement exploitables pour de nombreux langages de programmation courants et d'autres clients, tels que cURL, C, C#, Python, Java ou Swift.

Les codes snippets de Postman vous fournissent une bonne base pour intégrer des caméras IDS NXT dans des applications programmées par vos soins.
Intégration d'API REST dans des applications programmées
Bien que pour les caméras IDS NXT, aucun kit de développement logiciel ne soit fourni, pour des applications C++ par exemple, cela ne signifie pas qu'une intégration programmatique des caméras ne soit pas possible. Dans la plupart des langages de programmation, l'utilisation des connexions REST ou HTTP est possible sans logiciel supplémentaire de l'éditeur. C'est la raison pour laquelle, pour un client REST comme Postman, il est même possible de vous fournir des codes snippets entièrement fonctionnels que vous pouvez utiliser directement.
À l'exemple de notre résultat de caméra à IA, nous vous montrons ici à titre indicatif pour Python comment programmer l'appel REST.
Appel REST avec Python
import http.client
import mimetypes
conn = http.client.HTTPSConnection("192.168.188.21")
payload = ''
headers = {
'Authorization': 'Basic YWRtaW46aWRz'
}
conn.request("GET", "/vapps/cnnmanager/resultsources/last", payload, headers)
res = conn.getresponse()
data = res.read()
# output camera response
print(data.decode("utf-8"))
Python constitue un langage de programmation très usuel dans l'IdO. Voilà pourquoi nous souhaitons vous expliquer plus en détail l'intégration de nos caméras IDS NXT dans l'automatisation industrielle.
Développement interactif avec Python
Avec l'astuce technique, nous mettons à votre disposition avec un ensemble logiciel d'autres codes snippets Python qui présentent le maniement élémentaire avec les caméras IDS NXT et vos interfaces.
Grâce aux carnets Jupyter inclus, vous pouvez tester en direct avec votre caméra IDS NXT, dans une application Web Open Source, les exemples Python ainsi que l'échange de données et les reproduire.
1. Connexion et transfert d'image (connect_and_get_image.ipynb)
Dans le premier exemple, vous apprendrez comment utiliser la commande GET pour vous accorder une autorisation et appeler une image de votre caméra IDS NXT.
2. Modification du temps d'exposition (change_exposure.ipynb)
Le deuxième exemple montre comment interroger des paramètres de caméra et les modifier. Pour cela, nous modifierons la valeur d'exposition avec l'aide de la commande PATCH.
3. Déclenchement de prise de vue (trigger_image_acquisition.ipynb)
Avec la commande POST, nous montrerons dans le troisième exemple comment déclencher une acquisition d'image pour accéder au contenu de l'image d'une scène modifiée.
4. Configuration d'une passerelle d'E/S (set_gpio_gateway.ipynb)
Dans le quatrième exemple, nous vous montrerons comment basculer les sorties numériques de la caméra en fonction des résultats de l'application de vision CNN manager.
Les exemples de code Python Télécharger les exemples de code Python sous forme de carnets Jupyter
Comment utiliser les carnets Jupyter et tester les exemples : vous trouverez l'explication dans l'annexe « Talking to the IDS NXT with Python ».
Résumé
Avec les entrée et sorties numériques, RS-232 et un service Web REST, les caméras IDS NXT mettent à disposition des interfaces standard qui permettent de les mettre en œuvre de manière très flexible. Les appareils de vision embarquée, qui réalisent des tâches de traitement d'image en toute autonomie sans PC hôte, ne nécessitent pas non plus l'assistance d'un PC pour la communication avec les postes distants. L'interface REST sans statut permet de se connecter à tous les appareils compatibles Web, les caméras sont alors placées de manière optimale pour une structure réseau d'IdO. Avec des clients REST adaptés (comme Postman), il est également possible de créer d'une simple pression sur un bouton des wrapper logiciels pour un grand nombre de langages de programmation usuels.
Avec les outils et interfaces existants de la plateforme de caméra à inférence IDS NXT, l'intégration dans des installations déjà présentes avec une technique éprouvée est aussi simple que dans des installations futures avec une structure IdO compatible Web. Pour un complément d'informations sur IDS NXT oi son intégration, consultez la base de connaissances de notre page Web ou prenez contact avec notre équipe de conseil système.
Astuce : Vidéo Webinaire IDS NXT
Notre vidéo webinaire « Intégration d’IDS NXT dans une usine d'automatisation » présente la communication via les interfaces de la caméra IDS NXT en utilisant des codes d'échantillonnage Python et des "notebooks" Jupiter.
Suite de l'astuce : intégrer des caméras IDS NXT dans l'automatisation industrielle via OPC UA
Dans la suite de « Communication OPC UA IDS NXT », nous allons nous concentrer en particulier sur les nouvelles possibilités de communication des caméras IDS NXT à travers leur serveur intégré OPC UA. À l'aide d'un exemple de flux de travail d'IA, nous allons montrer comment activer les paramètres enregistrés de la caméra, démarrer une tâche d'inférence et interroger les résultats via un client OPC UA. Vous pouvez ainsi intégrer encore plus facilement les caméras IDS NXT dans les systèmes industriels basés sur OPC UA.