Connecter OPC UA à CODESYS
| Produit | CODESYS |
|---|---|
| Catégorie | PLC |
| Rôle OPC UA | Serveur |
CODESYS fournit un serveur OPC UA dans son runtime, et comme CODESYS est le moteur de nombreuses marques d'automates de petite et moyenne taille, vous le rencontrez souvent sans que le logo sur l'armoire l'indique. Les symboles sont publiés via l'objet Symbol Configuration, et le serveur exige généralement une licence de runtime.
Avant de commencer
- Un runtime qui inclut le composant serveur OPC UA, et la licence qui l'active. La licence est par runtime et relève normalement du fournisseur du matériel plutôt que de CODESYS directement, ce qui est précisément pourquoi on l'oublie.
- Le CODESYS Development System dans une version compatible avec le runtime présent sur l'équipement.
- Un objet Symbol Configuration dans l'application. Sans lui il n'y a rien à publier, et en ajouter un est une modification de code qui exige un chargement.
- Un accès au système de fichiers ou à la configuration du runtime pour la gestion des certificats, et la connaissance de l'endroit où ce fabricant d'équipement précis a placé le répertoire PKI.
Mise en place
- Établissez ce que vous faites réellement tournerIdentifiez le fabricant de l'équipement, la version du runtime CODESYS et si le composant serveur OPC UA est installé et licencié. Sur un automate badgé OEM, cela demande un appel téléphonique, et passer cet appel en premier fait gagner une journée. Le nom que le fabricant donne à l'option ne correspondra pas à la documentation CODESYS.
- Ajoutez une Symbol Configuration et sélectionnez les symbolesAjoutez l'objet Symbol Configuration à l'application, compilez, puis cochez les variables, instances de programme ou listes de variables globales que vous voulez publier, en réglant l'accès en lecture ou en lecture et écriture pour chaque entrée. Sélectionner une GVL entière est le choix pragmatique habituel ; tout sélectionner est le meilleur moyen d'obtenir un espace d'adressage impossible à parcourir sur un petit contrôleur.
- Vérifiez que la configuration des symboles est prévue pour la publication OPC UALa Symbol Configuration comporte des réglages qui contrôlent la façon dont les symboles sont exposés et si le serveur OPC UA les publie. Vérifiez-les au lieu de supposer qu'il suffit de cocher une variable, car le même objet sert aussi d'autres clients.
- Compilez et chargez, puis redémarrez le runtime si nécessaireLes changements de symboles prennent effet au chargement de l'application ; certains runtimes ont besoin d'un redémarrage avant que le serveur ne reconstruise son espace d'adressage. Vérifiez en parcourant, pas en inspectant le projet.
- Parcourez et notez l'URI de namespaceConnectez un client, lisez le NamespaceArray et notez l'URI du namespace de l'application. Stockez l'URI plus l'identifiant dans votre configuration ; l'index, lui, bougera.
- Menez l'échange de confiance à son termeConnectez-vous une fois sur un endpoint sécurisé, laissez l'échec se produire, puis déplacez le certificat de votre client dans le magasin de confiance du runtime et faites confiance au certificat serveur côté client. Lorsque le fabricant de l'équipement expose la gestion des certificats via une interface web ou un outil dédié plutôt que par le système de fichiers, passez par ce chemin.
- Vérifiez les limites du runtime et réglez les intervalles en conséquenceLes petites cibles CODESYS sont souvent les serveurs les plus serrés que vous rencontrerez en nombre de sessions, d'abonnements et de MonitoredItems. Créez l'abonnement que vous comptez exploiter en production, relisez les intervalles d'échantillonnage et de publication révisés, et concevez à partir de ces valeurs.
À quoi ressemble l'espace d'adressage
L'espace d'adressage publié suit la structure de l'application : un espace de noms pour l'application, puis les nœuds de programmes et de listes de variables globales, puis les symboles que vous avez sélectionnés, avec les membres de structures et de tableaux imbriqués en dessous. Les identifiants sont des chaînes dérivées du chemin du symbole, ils se lisent donc comme le code et changent quand le code est renommé. Il n'y a pas de contenu de spécification companion, sauf si le fournisseur du matériel a ajouté un modèle d'information par-dessus, ce que certains font et que la plupart ne font pas. Comme la même Symbol Configuration sert aussi d'autres voies de communication CODESYS, la vue OPC UA n'est pas toujours l'image complète de ce que le runtime expose, et l'arborescence de navigation est le seul énoncé fiable de ce qu'un client peut voir.
Les pièges
- La licence est par runtime et c'est le fabricant de l'équipement qui la contrôle. Un automate qui se parcourt sans problème sur l'établi et refuse sur site parce que sa licence n'a jamais été appliquée est une perte de planning courante et parfaitement évitable. Confirmez la situation de licence auprès du fabricant, pas dans la documentation CODESYS générique.
- Comme CODESYS est un moteur OEM, la dérive documentaire est sévère : le manuel du fournisseur, le manuel CODESYS et le comportement réel du runtime peuvent diverger sur les noms d'options et sur l'emplacement des certificats. Fiez-vous à l'appareil que vous avez devant vous.
- Renommer une variable ou restructurer l'application modifie les identifiants chaîne et casse les clients avec BadNodeIdUnknown. La sélection des symboles est une interface publiée ; versionnez-la.
- Les index d'espace de noms se décalent après un chargement d'application. Résolvez-les depuis le NamespaceArray à chaque connexion.
- La confiance des certificats est le plus gros obstacle de déploiement, et sur du matériel OEM le mécanisme permettant d'installer un certificat de confiance est justement la partie que personne ne documente. Découvrez comment cela fonctionne sur une unité avant d'en déployer cinquante.
- Les symboles publiés en lecture seule acceptent une écriture et renvoient un statut Bad. Relisez et vérifiez le StatusCode.
- Les plafonds de sessions et de monitored items sur les petites cibles sont bas. Un historian, une IHM et un ingénieur avec un navigateur ouvert en même temps peuvent les épuiser, et la défaillance se présente comme un problème de connexion plutôt que comme un message de capacité.
En extraire les données OEE
Ce que vous pouvez obtenir dépend entièrement de ce que calcule l'application, et sur une machine à base CODESYS cela revient généralement à demander au constructeur de publier quatre choses : une variable d'état ou de mode avec une énumération documentée, un compteur de pièces bonnes, un compteur de rebuts, et un code de défaut ou de motif. Les compteurs doivent être tenus dans l'application ; ne détectez pas les fronts d'un bit de marche via un abonnement dont le runtime a pu élargir l'intervalle d'échantillonnage. Ces cibles étant limitées en abonnements, utilisez une seule session, un seul intervalle de publication, une bande morte sur les analogiques et un heartbeat, afin de distinguer une connexion silencieuse d'une machine à l'arrêt. La disponibilité et les comptages sont atteignables, et les motifs le sont si la table de défauts est documentée. Le temps de production planifié, les calendriers d'équipes, le contexte des ordres de fabrication et les temps de cycle standard ne sont pas dans l'automate.
Dernière vérification le 7 septembre 2026 par rapport à OPC UA 1.05.07. OPC UA Connect est une ressource pédagogique et n'est pas affiliée à l'OPC Foundation.