Ce dépôt contient tout le nécessaire pour installer l'ensemble de containers suivant l'architecture suivante :
Des variables sont collectées au sein du serveur OPC UA au travers d'une connexion sécurisée (TLS) via l'applicatif Telegraf. Ce dernier poste les informations dans une base InfluxDB dans un container dédié. Enfin les données sont affichées via l'outil de visualisation Grafana. Le serveur OPC UA peut aussi bien être interne que distant. L'outil de gestion de containers Portainer est également installé pour faciliter la maintenance des containers.
Le script bash permet d'automatiser l'installation de Docker sur la carte SD, le téléchargement des images Docker, fichiers de configuration et package nécessaires et leurs installations. Le script génère également les certificats et clés nécessaires pour l'échange OPC UA sécurisé (TLS).
Ce script fonctionne sur les plateformes suivantes :
- PFC200 G2
- Touch Panels 600
- Edge Controller
Le contrôleur doit être démarré depuis la flash interne, pas depuis une image bootable sur la carte SD. Une carte SD (/media/sd) doit être insérée et préalablement formatée en ext4 via le WBM (Docker sera installé sur la carte SD).
Le PFC, Edge Controller ou TP600 doit disposer d'un accès à Internet (penser à renseigner DNS et Gateway).
La date et heure du contrôleur doivent impérativement être mises à jour pour éviter des erreurs lors de l'échange TLS! Dans le WBM, mettre à jour l'heure dans Configuration / Clock ou spécifier un serveur de temps dans Ports and service / NTP Client
Se connecter en SSH au contrôleur via PuTTy par exemple, en tant que super utilisateur (root / wago par défaut, penser à le modifier).
Exécuter la commande suivante qui permet le téléchargement de ce script, lui donne les droits d'exécution et l'exécute.
wget https://raw.githubusercontent.com/quenorha/opcua_tig/main/install.sh -O /media/sd/install.sh && chmod +x /media/sd/install.sh && /media/sd/install.sh
Lors de l'exécution du script, les informations du certificat sont à renseigner. / Pour les modifier a posteriori,il faut regénérer les clés et certificats via la commande suivante :
openssl req -x509 -days 365 -new -out /root/certs/certificate.pem -key /root/certs/key.pem -config /root/config/ssl.conf
Se référer au manuel du serveur OPC UA WAGO.
Par défaut le serveur OPC UA WAGO est activé. Dans e!COCKPIT, il suffit de créer des variables, d'ajouter une configuration de symbole dans l'application et choisir les variables à partager. / Dans le WBM, la case Trust All clients doit être désactivée.
Un certificat doit être généré pour UAExpert dans un premier temps (se référer au manuel). / A la première connexion de Telegraf, le certificat généré par le script (via openssl) est rejeté. Pour l'autoriser, il faut utiliser le mécanisme GDS Push. Se connecter avec le client UAExpert (en mode sécurisé). / Aller dans Document / Add, sélectionner GDS Push View puis cliquer sur Add. / Au niveau de Server Certificate Groups, le certificat généré précédemment doit apparaître, accompagné d'une croix rouge. Cliquer droit dessus puis sur Trust. / La communication OPC UA devrait fonctionner.
Le fichier /root/config/telegraf.conf (dans le dossier /root/config) doit être adapté pour renseigner l'adresse IP du serveur OPC UA, ainsi que les variables à lire. Pour obtenir l'identifiant de la variable OPC UA, se connecter avec le client UAExpert au contrôleur, puis cocher la vue View / Attributes. Naviguer jusqu'aux variables, l'identifiant apparaît à droite au niveau de Identifier, copier la valeur. Saisir les variables au niveau de la configuration OPC UA dans le fichier de configuration :
nodes = [
{name="Var1", namespace="4", identifier_type="s", identifier="|var|WAGO 750-8210 PFC200 G2 4ETH.Application.PLC_PRG.iTest001"},
{name="Var2", namespace="4", identifier_type="s", identifier="|var|WAGO 750-8210 PFC200 G2 4ETH.Application.PLC_PRG.iTest002"},
]
Une fois la configuration modifiée, redémarrer le container Telegraf.
docker restart c_telegraf
Consulter les logs pour vérifier le bon fonctionnement (également possible depuis Portainer)
docker logs c_telegraf
La première connexion peut prendre plus de temps en raison de l'échange TLS, il est donc normal que ce message d'erreur apparaîssent dans le logs du container Telegraf :
W! [inputs.opcua] Collection took longer than expected; not complete after interval of 1s
Se connecter à la page http://[adresseIPduContrôleur]:3000.
S'authentifier via admin / admin.
Le mot de passe doit être modifié à la première connexion.
Aller dans Configuration / Data sources puis cliquer sur Add data source.
Sélectionner InfluxDB.
Au niveau de l'URL, renseigner http://c_influxdb:8086
Au niveau de Database, renseigner telegraf. Cette base est créée automatiquement par Telegraf.
Cliquer sur Save And Test, Data source is working doit s'afficher en vert.