Tutoriel Straton 2 : Maîtriser la communication MMS dans IEC 61850
Introduction
Bonjour à tous, voici le deuxième tutoriel sur la norme IEC61850. Pour le suivre correctement, je vous conseille vivement de lire le premier car je repars de sa fin pour continuer l'ingénierie.
Lien vers le premier tutoriel : Straton Tutorial 1
Nous ne passerons pas en revue la norme, ce tutoriel s'adresse donc à des personnes qui la connaissent déjà.
Cet article se concentre sur l'un des deux protocoles de communication, le MMS (Manufacturing Message Specification), de cette norme et détaille comment le programmer sur Straton.
Ce protocole est utilisé pour modéliser de vrais dispositifs et fonctions, pour échanger des informations et données de processus en conditions temps réel. Cette communication repose sur le principe client-serveur et se fait verticalement dans une architecture réseau.
Il y a deux mécanismes dans MMS :
- Mécanisme Requête-Réponse : Il se fait au début de la connexion entre client et serveur car le client doit lire les informations avant que la connexion ne soit établie. Le client peut alors lire (par polling) ou écrire (en exécutant une commande sur le serveur).
- Mécanisme de rapport (Reporting) : Le serveur envoie des données seulement quand c'est nécessaire, défini par l'utilisateur selon l'application et la norme IEC61850, fréquemment utilisé pour les applications SCADA.
Tutoriel 2 – Communication MMS
1) Maintenant que l'échange de données est configuré entre PLCNextEngineer et Straton, il est nécessaire d'insérer un serveur IEC61850 dans la configuration du bus de terrain. Cliquez sur "Insert Configuration" et choisissez "IEC 61850 Server incl. GOOSE". La norme définit le port TCP 102 pour le rôle serveur MMS.
2) Nous pouvons maintenant configurer notre Dispositif Électronique Intelligent (IED) via le Langage de Description de Configuration de Poste (SCL). Ouvrez l'éditeur SCL en cliquant sur l'onglet Tools.
3) Double-cliquez sur l'IED pour configurer la partie communication du SCL.
4) Ajoutez les deux nœuds logiques obligatoires, LLN0 et LPHD. Les objets de données par défaut sont déjà sélectionnés, vous êtes libre d'en ajouter plus en cochant les cases.
5) Maintenant, nous pouvons créer notre propre nœud logique qui contiendra les données que nous voulons gérer. Créons un GGIO qui est un nœud logique générique. Comme nous avons importé deux alarmes (BOOL) depuis PLCNextEngineer, commençons par importer deux objets de données SPS (Single Point Status) et profitons-en pour configurer un objet de données SPC (Single Point Controllable) qui nous permettra d'envoyer des commandes depuis un client, prévu pour le 4ème tutoriel.
Comme vous pouvez le voir, nous devons créer notre propre SPS pour la seconde alarme.
Nous devons sélectionner les attributs de données de l'objet de données créé (Ind2) : stVal, q (quality) et t (timestamp).
Maintenant, nous pouvons configurer les attributs de données de notre SPC pour pouvoir l'utiliser dans plusieurs types de commandes.
6) L'étape suivante est d'ajouter un Data Set qui contiendra le groupe ordonné de références aux objets de données et/ou attributs de données contenus dans le modèle de données et qui sera partagé avec un client 61850. Comme spécifié dans la norme, les Data Sets font partie d'un nœud logique et sont très probablement inclus dans LLN0.
Double-cliquez dessus et sélectionnez les données appropriées.
7) Enfin, nous devons ajouter un Report Control Block (RCB), puis le configurer en choisissant son type et en le liant au Data Set, puis sélectionnez les champs optionnels et options de déclenchement appropriés.
8) Cet outil dispose aussi d'un vérificateur de syntaxe. Cliquez dessus et les erreurs apparaîtront dans le log. Cliquez sur ces erreurs et appuyez sur les options par défaut jusqu'à l'apparition du message "Check succeeded". N'oubliez pas de sauvegarder votre fichier pour l'ouvrir plus tard.
9) Notre SCL est maintenant prêt à l'emploi. Nous devons l'importer dans notre projet principal en allant dans la Configuration du Bus de Terrain et clic droit sur IEC61850 Server incl. GOOSE. Sélectionnez "Read variable from SCL file".
Cliquez sur "Insert" et importez le fichier SCL que vous venez de créer, puis sélectionnez les attributs de données de vos objets de données à utiliser comme variables dans le programme. Si vous ne sélectionnez pas le timestamp, la pile du runtime le gérera automatiquement.
10) La dernière étape est de mapper les variables PLCNext importées par MODBUS avec celles créées via le SCL. Pour cela, allez dans l'onglet "Profile" dans l'arborescence du projet, sélectionnez IEC61850S2 et copiez-collez le nom des variables MODBUS dans la colonne "Name" des variables 61850.
11) Maintenant, nous allons lire en ligne les variables du serveur 61850 depuis un client virtuel 61850. L'éditeur Straton a aussi cet outil, très facile à configurer. Vous avez juste à configurer l'adresse IP pour la connexion. Si vous connaissez IEDExplorer, ça fonctionne tout aussi bien.
Maintenant, vous pouvez basculer la variable sur PLCNextEngineer et voir l'effet depuis un client 61850 lisant depuis un serveur 61850.
Merci pour votre lecture, le prochain tutoriel est en cours.
Technologie industrielle
- Comprendre les protocoles réseau : de la couche physique à l'arbitrage avancé
- Pourquoi la mémoire numérique est importante
- Microprocesseurs : l'évolution de l'informatique à programme stocké
- Données Complètes Ampli Op : Fiches Techniques National Semiconductor & CA3130
- acceed série EDAM-4200 : Modules E/S intégrés pour communication de données évolutive et fiable
- Fabrication pilotée par les données : débloquer efficacité, économies et innovation
- Intégration de données de capteurs sur Raspberry Pi : Guide pratique complet
- Maîtriser la programmation C : Tutoriel complet pour débutants
- Maximiser l'avantage de votre organisation : transformer les données en insights stratégiques