Découverte locale OPC UA
Les serveurs de découverte permettent aux clients OPC UA d'obtenir des détails sur un ou plusieurs serveurs OPC UA, à partir d'un point unique.
Il existe deux types de serveurs de découverte OPC UA :
- Serveurs de découverte locaux (LDS)
- Serveurs de découverte mondiaux (GDS)
Cet article explique comment enregistrer un serveur OPC UA auprès d'un LDS et comment un client OPC UA peut utiliser ce LDS pour se connecter au serveur OPC UA.
Présentation
Comme son nom l'indique, un Local Discovery Server (LDS) peut être exécuté sur le même appareil qu'un ou plusieurs serveurs OPC UA. Par exemple, il est possible d'installer un ou plusieurs serveurs OPC UA sur un équipement PLCnext Control, à côté du serveur OPC UA qui est inclus avec PLCnext Runtime. Si un LDS est également installé sur cet équipement PLCnext Control, tous les serveurs OPC UA de cet équipement peuvent s'enregistrer auprès du LDS. Ensuite, un client OPC UA distant peut simplement interroger le LDS pour obtenir les détails de tous les serveurs OPC UA exécutés sur cet appareil PLCnext Control, et utiliser ces détails pour se connecter directement à un ou plusieurs de ces serveurs OPC UA.
Un peu déroutant, il est également possible pour un serveur OPC UA de s'enregistrer auprès d'un LDS qui s'exécute sur un distant machine. De cette manière, un seul LDS peut être utilisé par un client OPC UA pour découvrir tous les serveurs OPC UA exécutés sur l'ensemble d'un réseau d'appareils.
Il y a une bonne introduction aux serveurs de découverte OPC UA dans cet article de Unified Automation :
https://documentation.unified-automation.com/uasdkdotnet/2.5.2/html/L2UaDiscoveryConnect.html
Contexte
Avant de suivre les étapes décrites dans cet article, vous devez comprendre :
- Configuration de base du serveur OPC UA.
- Comment connecter un client au serveur OPC UA sur un équipement PLCnext Control.
- Comment les certificats de sécurité sont stockés et gérés sur un appareil PLCnext Control.
Procédure
Pour cet exemple, la configuration réseau est la suivante :
OPC UA Server: AXC F 2152 FW 2020.6.1
IP address: 192.168.1.10
DNS name: axc-f-2152-1
Local Discovery Server: Windows 10 PC
IP address: 192.168.1.42
DNS name: mypc.mycompany.com
OPC UA Client: Debian 10 PC
IP address: 192.168.1.3
Ces adresses IP et noms DNS seront utilisés tout au long de cet article, mais vous devez bien sûr les modifier pour votre propre application.
Configurer les noms DNS
Si votre réseau ne comprend pas de serveur DNS, éditez le hosts
fichier sur chaque appareil.
Le fichier hosts se trouve dans le répertoire suivant :
- Windows :
C:\Windows\System32\drivers\etc\
- Linux :
/etc/
Ajoutez les nouvelles entrées DNS suivantes (en remplaçant les adresses IP et les noms DNS de votre application) :
Sur l'automate, ajoutez le LDS :
192.168.1.42 mypc.mycompany.com
Sur la machine LDS, ajoutez l'automate :
192.168.1.10 axc-f-2152-1
Sur la machine client OPC UA, ajoutez à la fois le LDS et l'automate :
192.168.1.42 mypc.mycompany.com
192.168.1.10 axc-f-2152-1
Vérifiez que toutes les entrées sont correctes en envoyant un ping aux noms DNS (pas les adresses IP) que vous avez configurées sur chaque appareil.
Installer le serveur de découverte local
La Fondation OPC fournit un Local Discovery Server sous la forme d'un exécutable basé sur Windows. Celui-ci peut être téléchargé gratuitement (après inscription) à partir de cette page :
https://opcfoundation.org/developer-tools/samples-and-tools-unified-architecture/local-discovery-server-lds/
Téléchargez et installez ce LDS sur la machine Windows.
Installer le client OPC UA
Cet exemple utilise UaExpert de Unified Automation :
https://www.unified-automation.com/products/development-tools/uaexpert.html
Téléchargez et installez UaExpert sur la machine cliente OPC UA.
Rechercher les certificats
Les différents composants OPC UA – Serveur, Client et LDS – doivent se faire confiance pour assurer des communications sécurisées. La confiance peut être obtenue en échangeant des certificats publics, c'est-à-dire en plaçant le certificat public de chaque composant dans le "magasin de confiance" pour les composants qui doivent lui faire confiance.
Vous pouvez trouver le certificat public pour chaque composant comme suit :
Serveur OPC UA
Le certificat de l'appareil se trouve par défaut dans le magasin d'identités "OPC UA-self-signed". Ce sera différent si vous utilisez votre propre certificat.
Le certificat du serveur OPC UA peut être téléchargé à partir de la page Web Based Management de l'automate. Le certificat doit ensuite être converti du format PEM au format DER afin d'être utilisé par les autres composants. Il existe un grand nombre d'outils gratuits qui peuvent être utilisés pour cette conversion, y compris le openssl
outil de ligne de commande Linux. Un exemple de la commande bash que vous pourriez utiliser est :
openssl x509 -outform der -in OPC\ UA-self-signed_certificate.crt -out uaserver.der
Serveur LDS
Par défaut, le certificat pour le LDS se trouve ici :
C:\ProgramData\OPC Foundation\UA\pki\own\certs\ualdscert.der
Client OPC UA
- Dans UaExpert, sélectionnez l'élément de menu Paramètres -> Gérer les certificats.
- Cliquez sur le bouton "Copier le certificat d'application vers…".
- Enregistrez le certificat dans un endroit pratique.
Copier les certificats dans Trust Stores
Copiez chaque certificat (au format .der) dans les magasins de confiance pour les deux autres composants.
Le magasin de confiance pour chaque composant peut être situé comme suit :
Serveur OPC UA (PLC)
Le magasin de confiance est le dossier /opt/plcnext/Security/TrustStores/Empty/trusted
LDS
Le magasin de confiance est le dossier C:\ProgramData\OPC Foundation\UA\pki\trusted\certs
Client OPC UA (UaExpert)
- Dans UaExpert, sélectionnez l'élément de menu Paramètres -> Gérer les certificats.
- Cliquez sur le bouton "Ouvrir l'emplacement du certificat". Ceci est le magasin de confiance pour UaExpert.
Vérifier tous les pare-feu
Au minimum, vérifiez que le pare-feu sur le serveur LDS autorise le trafic sur le port 4840.
Configurer le serveur OPC UA dans PLCnext Engineer
Dans PLCnext Engineer, dans la fenêtre de configuration OPC UA :
- Vérifiez que :
- Le nom DNS est le même que celui configuré précédemment.
- La "visibilité des variables" n'est pas "Aucun".
- Activer l'enregistrement de découverte
- Définissez l'URL du serveur sur
opc.tcp://mypc.mycompany.com:4840
(en remplaçant le nom DNS de votre machine LDS)
Ecrire le projet PLCnext Engineer dans l'automate.
L'automate tentera alors automatiquement d'enregistrer le serveur OPC UA auprès du LDS.
Découvrir et se connecter au serveur OPC UA
- Dans UaExpert, cliquez sur le bouton + (plus) dans la barre d'outils.
- Cliquez avec le bouton droit de la souris sur la branche "Local" de l'arborescence et sélectionnez "Modifier l'URL de découverte".
- Dans la zone de texte, saisissez
opc.tcp://mypc.mycompany.com:4840
(en remplaçant le nom DNS de votre machine LDS), puis cliquez sur OK.
Le serveur OPC UA doit apparaître dans la branche Local de l'arborescence. Vous pouvez maintenant utiliser ces informations pour vous connecter au serveur OPC UA de la manière habituelle.
Dépannage
- Le fichier journal LDS se trouve ici :
C:\ProgramData\OPC Foundation\UA\Discovery\opcualds.log
Il est possible de modifier le LogLevel (et bien d'autres paramètres) dans le fichier suivant :C:\ProgramData\OPC Foundation\UA\Discovery\ualds.ini
LogLevel = debug
donne les informations de journalisation les plus détaillées. Après avoir modifié les paramètres LDS, il peut être nécessaire de redémarrer le LDS via la console « Services » de Windows. Le nom d'affichage du LDS est "OPC UA Local Discovery Server". - Notez que le LDS peut renvoyer l'URL du serveur OPC UA avec
.local.
ajouté au nom DNS. Ce nom DNS doit pouvoir être résolu par un serveur mDNS multidiffusion. Si ce nom DNS ne peut pas être résolu, un message d'erreur contenant l'URL apparaîtra dans la fenêtre du journal UaExpert. Il n'entre pas dans le cadre de ce didacticiel de décrire comment installer et configurer un serveur DNS multidiffusion pour résoudre les noms DNS avec un.local.
suffixe.
Conclusion
Évidemment, il n'y a pas beaucoup d'avantages à utiliser un LDS lorsqu'il n'y a qu'un seul serveur OPC UA sur un réseau. Mais pour les réseaux qui incluent un grand nombre de serveurs OPC UA, un LDS offre un moyen pratique de parcourir et de se connecter à ces serveurs.
Technologie industrielle
- Variables Python globales, locales et non locales
- La réponse de Discovery aux défis de la chaîne d'approvisionnement
- Portée des variables en C++
- Java 10 - Inférence de type de variable locale
- Quels sont les avantages de travailler avec un fabricant de métal local ?
- Le processus de découverte et pourquoi est-il important pour vos projets de développement ?
- Systèmes locaux vs globaux pour le contrôle de la production
- Comment les entreprises B2B peuvent booster leur référencement
- Certificat OPC UA "Push Management"