Client OPC UA avec Node-RED

Node-RED est un outil de programmation permettant de relier des périphériques matériels, des API et des services en ligne de manière nouvelle et intéressante. Grâce à un éditeur basé sur un navigateur, il est possible de connecter des objets (Flows) en utilisant le large éventail d'objets disponibles.

J'ai déjà expliqué dans cet article Comment installer Node-RED sur nos systèmes basés sur Raspberry, nous allons maintenant voir comment utiliser Node-RED pour communiquer avec d'autres systèmes en utilisant le protocole OPC UA (Open Platform Communications Unified Architecture), un protocole de communication unifié pour l'automatisation industrielle.

Installation du noeud UA OPC

Dans l'installation standard Node-RED, une base de nœuds est installée, les plus couramment utilisés, mais il existe une énorme bibliothèque de nœuds utilisables. Pour utiliser le protocole OPC UA, installez les nœuds fournis avec node-rouge-contrib-opcua. L'installation peut être effectuée à partir de la ligne de commande avec (npm) Node Package Manager, ou plus simplement à partir d'un navigateur.

Dans le menu choisissez Manage palettepuis cherchez le formulaire node-red-contrib-opcua et pour procéder à l'installation, pour tester l'exemple, il est également nécessaire d'installer le module node-red-dashboard.

Voici le programme

Ci-dessous, vous pouvez voir le programme dans Node-RED avec le tableau de bord relatif qui se connecte au programme. SimpleOPCUA développé avec CODESYS, les deux programmes sont exécutés à partir du même module Processeur SlimLine Framboise.

La communication avec le serveur CODESYS OPC UA est effectuée par le noeud. OpcUa Client dans lequel il est défini comme Endpoint l'adresse et le port du serveur UA OPC (dans l'exemple, il s'agit de opc.tcp: // 192.168.0.180: 4840). Bien sûr, en tournant les deux programmes sur le même processeur, je pourrais définir opc.tcp: // localhost: 4840. En lecture (Variables DIStatus e Counter) sera défini Action READ, en écriture (Variable DOCommand) sera défini Action WRITE.

L'objet est situé sur le client OpcUa OpcUa Item qui spécifie NodeId de la variable à consulter à déclarer sur le terrain Item, pour identifier la valeur à écrire, utilisez le programme comme UaExpert montré ici. Dans l'exemple, nous aurons:

DIStatus: ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.PLC_PRG.DIStatus
DOCommand: ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.PLC_PRG.DOCommand
Counter: ns=4;s=|var|CODESYS Control for Raspberry Pi SL.Application.PLC_PRG.Counter

Dans le champ Type, le type de la variable doit être défini:

DIStatus: Boolean
DOCommand: Boolean
Counter: UInt32

Tous les autres nœuds sont utilisés pour activer les nœuds UA OPC à la fois et pour afficher les données sur le tableau de bord.

Cet article a-t-il été utile?