Plateforme I-IoT industrielle de l'Internet des objets Edge

Qu'est-ce que l'I-IoT



Après l'introduction de la machine à vapeur en 1760, la vapeur était utilisée pour tout alimenter, de l'agriculture aux textiles. Cela a déclenché la première révolution industrielle et l'ère de la fabrication mécanique. À la fin du XIXe siècle, l'électricité, de nouvelles façons d'organiser le travail et la production de masse voient le jour, marquant le début de la deuxième révolution industrielle. Dans la seconde moitié du 20e siècle, le développement des semi-conducteurs et l'introduction des contrôleurs électroniques ont donné naissance à l'ère de l'automatisation et à la troisième révolution industrielle. Lors de la Foire de Hanovre 2011, Henning Kagermann, Wolf-Dieter Lucas et Wolfgang Walster ont inventé le terme Industrie 4.0 pour un projet de renouvellement du système de production allemand en utilisant les dernières technologies numériques.



image



L'industrie 4.0 devrait être en mesure de mettre en œuvre les éléments suivants:



  • Combinez la production avec les technologies de l'information et de la communication
  • Combinez les donnĂ©es client avec les donnĂ©es de production
  • Tirez le meilleur parti de la communication machine Ă  machine
  • GĂ©rez la production de manière autonome, flexible et efficace en Ă©conomisant les ressources


Le fondateur et président du Forum économique mondial, Klaus Schwab, estime que l'indépendance de la quatrième révolution industrielle peut être justifiée par trois facteurs.



  • Le rythme du dĂ©veloppement. Contrairement aux prĂ©cĂ©dentes, cette rĂ©volution industrielle ne progresse pas de manière linĂ©aire, mais plutĂ´t exponentielle. C'est un produit du monde multiforme et profondĂ©ment interdĂ©pendant dans lequel nous vivons, ainsi que du fait que la nouvelle technologie elle-mĂŞme synthĂ©tise des technologies de plus en plus avancĂ©es et efficaces.
  • . , , , . , «» «» , , «» .
  • . , , .


Par définition, l'IoT est la clé du développement futur de l'industrie, y compris des technologies telles que l'analyse des mégadonnées, les technologies cloud, la robotique et, surtout, l'intégration et la convergence entre l'informatique et la fabrication.



Le terme I-IoT (Industrial Internet of Things) fait référence au sous-ensemble industriel de l'IoT, qui est la transformation numérique de l'entreprise naturelle. L'I-IoT rend les entreprises plus flexibles, plus rentables, compréhensibles et crée de nouvelles chaînes de valeur numériques.



Les chaînes de production traditionnelles sont des étapes simples et séquentielles telles que le développement de produits, l'approvisionnement et l'approvisionnement en matières premières, ainsi que la fabrication et l'entretien des produits. L'essence de la nouvelle transformation numérique est qu'un écosystème de services et de nouveaux modèles commerciaux se créent autour d'un certain noyau numérique, donnant de nouvelles qualités à la production. Telles que la réduction des coûts entre les différentes étapes de la préparation de la production, de la mise en service et de l'exploitation. Les liens entre les différents départements et étapes se font de plus en plus rapides, ce qui permet de travailler plus efficacement et de manière plus compétitive sur le marché.



image



On s'attend à ce que l'I-IoT crée plus de valeur commerciale et ait un impact si profond sur la société humaine qu'il inaugurera la quatrième révolution industrielle.

Selon Forbes:



  • IoT 157 2016 457 2020 , 28,5%
  • , , IoT 2020 , 40 .


IoT I-IoT –



  • , . , , . , .
  • , , ; .
  • I-IoT , .
  • — , , . I-IoT, , .
  • .
  • , . , , , .
  • . I-IoT .
  • , .




CIM (fabrication intégrée par ordinateur) est un modèle logique pour les systèmes de fabrication développé dans les années 1990 pour intégrer les processus de fabrication, les systèmes d'automatisation et les systèmes de technologie de l'information au niveau de l'entreprise ou de l'entreprise. La CIM ne doit pas être considérée comme une méthode de conception pour la création d'usines automatisées, mais plutôt comme un modèle de référence pour la mise en œuvre de l'automatisation industrielle basée sur la collecte, la coordination, le partage et le transfert de données et d'informations entre différents systèmes et sous-systèmes via des applications logicielles et des réseaux de communication. Le CIM est souvent représenté sous la forme d'une pyramide avec six niveaux fonctionnels, comme illustré dans le diagramme suivant



image



Niveau 1 - Capteurs, transducteurs et actionneurs



Un capteur électronique est un instrument de mesure structurellement complet capable de convertir une ou plusieurs grandeurs physiques en un signal électrique pour des transformations, une transmission, un traitement et un affichage ultérieurs d'informations de mesure. Un actionneur (actionneur) est un dispositif qui convertit une commande de contrôle en un effet physique sur le processus. En fait, sa fonction complète celle du capteur. L'actionneur accepte un signal de commande en tant qu'entrée du système de commande et transmet de l'énergie en tant que sortie au mécanisme.



Niveau 2 - RTU, microcontrĂ´leurs, CNC, PLC et DCS



  • (Remote terminal unit RTU) — , . , , . , .
  • (Embedded controller), , , . .
  • (CNC) – , . . , - .
  • PLC — , . PLC , , , . , , , . 10 100 .
  • Les DCS sont couramment utilisĂ©s dans les processus continus tels que les raffineries, les centrales Ă©lectriques ou les usines chimiques. Ils combinent Ă  la fois la fonction de contrĂ´le implĂ©mentĂ©e dans l'automate et la fonction de système de contrĂ´le de supervision (SCADA). Alors que l'API et le SCADA sont deux systèmes distincts, chacun avec leurs propres espaces d'adressage, dans DCS, ces systèmes utilisent les mĂŞmes variables et structures de donnĂ©es.


Niveau 3 - SCADA, historien



Le système SCADA est un progiciel permettant de collecter, traiter, afficher et archiver des informations sur un objet de surveillance ou de contrôle en temps réel. Un système de collecte de données (Historian) collecte des informations en temps réel sur l'état de fonctionnement des équipements. Le système SCADA met en œuvre les fonctions principales suivantes:



  • PLC, , RTU , CIM.
  • , .
  • , , .
  • - (HMI).
  • HMI PLC.


4 -MES



MES est un système logiciel situé entre ERP et SCADA ou PLC, conçu pour gérer efficacement le processus de production d'une entreprise. La fonction principale du MES est de synchroniser la gestion de l'entreprise et le système de fabrication en combinant les niveaux de planification et de contrôle pour optimiser les processus et les ressources.



Les principales caractéristiques du système MES sont:



  • Gestion des commandes et planification de la production
  • Gestion des matières premières entrantes et des produits semi-finis
  • Gestion et surveillance des actifs
  • Suivi de production
  • Gestion de la maintenance
  • ContrĂ´le qualitĂ©


Niveau 5 - ERP



L'ERP comprend des progiciels qu'une organisation utilise pour gérer les activités quotidiennes de son entreprise, telles que la comptabilité, les achats, la gestion de projet et la fabrication. ERP intègre et définit un ensemble de processus métiers qui régissent l'échange d'informations et de données entre les systèmes impliqués. ERP collecte et transmet les données de transaction de différents départements de l'organisation, garantissant ainsi l'intégrité des données en agissant comme une source unique.



RĂ©seaux de production



Un système de production intégré nécessite différents types de réseaux de communication, chacun dédié à une tâche spécifique



  • Niveau 1: bus de terrain
  • Niveau 2: rĂ©seau de contrĂ´leurs
  • Niveau 3, 4, 5: rĂ©seau d'entreprise


Des réseaux de terrain ont été introduits pour interfacer les contrôleurs, les capteurs et les actionneurs, réduisant ainsi le besoin de câblage complexe. Dans le bus de terrain, les capteurs et actionneurs sont équipés d'un ensemble minimal de traitements pour assurer le transfert des informations de manière déterministe.



Le réseau du contrôleur doit assurer la communication entre les nœuds API. La transmission des données doit avoir lieu à des intervalles spécifiques. Les réseaux de contrôle et les bus de terrain sont également souvent appelés réseaux en temps réel en raison de la synchronisation de la transmission des données et des informations.



Un réseau d'entreprise est un réseau situé entre les systèmes de gestion et les systèmes de planification et de gestion. Cette couche du réseau doit garantir le traitement d'informations complexes, mais dans des délais plus courts. Par conséquent, il n'est pas nécessaire d'avoir un délai serré pour cette couche réseau.



Serveur OPC



Aucune autre norme de communication industrielle n'a reçu une acceptation aussi répandue parmi de nombreuses industries et fabricants d'équipement que l'OPC. Il est utilisé pour intégrer une grande variété de systèmes industriels et commerciaux. SCADA, les systèmes de sécurité (SIS), les automates programmables (PLC) et les systèmes de contrôle distribués (DCS) utilisent OPC pour communiquer entre eux, ainsi qu'avec les bases de données Historian, les systèmes MES et ERP. La raison du succès d'OPC est très simple: c'est la seule interface véritablement universelle qui peut être utilisée pour communiquer avec divers appareils et applications industriels, quels que soient le fabricant, le logiciel ou les protocoles utilisés dans le système de contrôle. Après l'émergence du standard OPC, presque tous les SCADA ont été repensés en clients OPC,et chaque fabricant de matériel a commencé à fournir à ses contrôleurs, modules d'E / S, capteurs intelligents et actionneurs un serveur OPC standard.



OPC classique (DA d'accès aux données)



En 1995, diverses entreprises ont décidé de créer un groupe de travail pour définir la norme d'interopérabilité. Ces sociétés étaient: Fisher Rosemount, Intellution, Intuitive Technology, Opto22, Rockwell, Siemens AG.



Les membres de Microsoft ont également été invités à fournir le soutien nécessaire. La tâche du groupe de travail était de définir la norme d'accès à l'information dans l'environnement Windows sur la base des technologies modernes de l'époque. La technologie développée a été nommée Object Linking and Embedding (OLE) for Process Control (OPC). En août 1996, la première version de l'OPC a été définie.

Le schéma suivant montre les différentes couches d'OPC Classic avec les principaux protocoles de communication - COM, DCOM et Remote Procedure Call (RPC)
image





image



COM est une architecture logicielle développée par Microsoft pour créer des applications de composants. À l'époque, cela permettait aux programmeurs d'encapsuler des morceaux de code réutilisables de manière à ce que d'autres applications puissent les utiliser sans se soucier des détails de leur implémentation. Les objets COM peuvent être remplacés par des versions plus récentes sans avoir à réécrire les applications qui les utilisent. DCOM sont des versions en réseau de COM. DCOM tente de masquer aux développeurs de logiciels les différences entre les objets COM s'exécutant sur un ordinateur et les objets COM s'exécutant à distance sur un autre ordinateur. Pour cela, tous les paramètres doivent être passés par valeur. Cela signifie que lors de l'appel d'une fonction fournie par un objet COM, l'appelant doit passer les paramètres associés par valeur. D'autre part,L'objet COM répondra à l'appelant en transmettant également les résultats par valeur. Le processus de conversion des paramètres en données transmises sur le réseau est appelé marshalling. Une fois le marshaling terminé, le flux de données est sérialisé, transmis et restauré dans son ordre de données d'origine à l'autre extrémité de la connexion.



DCOM utilise le mécanisme RPC pour transférer et recevoir de manière transparente des informations entre les composants COM sur le même réseau. Le mécanisme RPC a été développé par Microsoft pour permettre aux développeurs système de demander l'exécution de programmes distants sans avoir à développer des procédures spéciales pour le serveur. Le programme client envoie un message au serveur avec les arguments appropriés et le serveur renvoie un message contenant les résultats du programme exécuté.



OPC Classic contient un certain nombre de limitations:



  • disponible uniquement sur les systèmes d'exploitation de la famille Microsoft Windows;
  • connexion avec la technologie DCOM, dont le code source est fermĂ©.
  • problèmes de configuration liĂ©s Ă  DCOM;
  • messages d'interruption de communication DCOM inexacts;
  • l'incapacitĂ© de DCOM Ă  Ă©changer des donnĂ©es sur Internet;
  • l'incapacitĂ© de DCOM Ă  assurer la sĂ©curitĂ© des informations.


Modèle d'acquisition de données OPC Classic



Les objectifs du standard OPC Classic sont les suivants:



  • Structurez les donnĂ©es cĂ´tĂ© serveur pour faciliter la collecte des donnĂ©es cĂ´tĂ© client.
  • DĂ©finir les services de communication et les mĂ©canismes de communication standard


En substance, la norme OPC Classic fonctionne comme suit.



Le serveur gère toutes les données disponibles.



Le serveur envoie des demandes de données à partir d'appareils à la demande et met régulièrement à jour le cache interne. Le serveur initialise et gère le cache pour chaque groupe de variables demandé par le client OPC. La vitesse de scrutation côté client OPC ne peut pas être inférieure à la fréquence de scrutation du serveur OPC pour collecter les données des périphériques et mettre à jour son cache interne. Nous vous recommandons de configurer le client OPC pour lire à partir du cache et de le mettre à jour à deux fois la vitesse à laquelle le serveur OPC recherche les périphériques. Chaque donnée échangée a sa propre signification, indiquée par son horodatage et sa qualité. L'échange de données comprend la lecture, l'écriture et la mise à jour automatique lorsque les valeurs changent. La lecture ou l'interrogation est effectuée par le client OPC, qui envoie régulièrement des demandes de données de groupe.La phase d'enregistrement peut être synchrone ou asynchrone. Les mises à jour automatiques utilisent le taux de demande fourni par le client OPC. Le serveur OPC vérifie chaque mise à jour pour voir si la valeur absolue de la valeur mise en cache moins la valeur actuelle est supérieure à la zone morte spécifiée par le client multipliée par la plage configurée pour cette variable. Cela peut être écrit comme ceci:



if (abs(last_cached_value – current_value) > (PERCENT_DEAD_BAND/100) * range) {
//cache is updated, and the client is notified through a callback mechanism 
}


Les informations du serveur OPC sont organisées en groupes d'éléments connexes pour plus d'efficacité. Il existe deux types de groupes différents:



  • Groupes publics: disponibles pour tous les clients
  • Groupes locaux: disponibles uniquement pour le client qui les a crĂ©Ă©s


OPC UA



La première réponse de la Fondation OPC aux limitations croissantes de l'adoption de COM et DCOM a été le développement d'OPC XML-DA. Il a conservé les caractéristiques d'OPC, mais a adopté une infrastructure de communication qui n'est associée ni au constructeur ni à une plate-forme logicielle spécifique. La conversion des spécifications OPC-DA en versions basées sur les services Web s'est avérée insuffisante pour répondre aux besoins des entreprises qui interagissent et s'intègrent de plus en plus avec le monde de l'entreprise et externe.



Pour plus d'informations sur l'architecture OPC UA, voir opcfoundation.org/developer-tools/specifications-unified-architecture .



Par conséquent, le protocole OPC UA a été développé pour remplacer toutes les versions COM existantes et surmonter les problèmes de sécurité et de performances. La norme répond au besoin d'interfaces indépendantes de la plate-forme et permet la création de modèles de données extensibles pour décrire des systèmes complexes sans perte de fonctionnalité. OPC UA est basé sur l'approche orientée service définie par la norme CEI 62451. Il poursuit les objectifs suivants:



  • Utilisation de composants OPC sur des plates-formes non Windows
  • Permet d'intĂ©grer ses principaux composants dans de petits appareils
  • ImplĂ©mente la communication standard entre les systèmes basĂ©s sur un pare-feu


D'un point de vue technique, OPC UA fonctionne comme suit:



  • L'API isole le code client et serveur de la pile OPC UA
  • UA stack convertit les appels d'API en messages
  • UA stack reçoit les messages en les envoyant au client ou au serveur via l'API


image



Modèle d'information OPC UA



Principes de base de la modélisation de l'information dans OPC UA:



  • Utilisation de mĂ©thodes orientĂ©es objet, y compris la hiĂ©rarchie d'hĂ©ritage.
  • Le mĂŞme mĂ©canisme est utilisĂ© pour accĂ©der aux types et aux instances.
  • Les informations sont rendues disponibles grâce Ă  l'utilisation de nĹ“uds entièrement connectĂ©s dans le rĂ©seau.
  • Les hiĂ©rarchies de types de donnĂ©es et les liens entre les nĹ“uds sont extensibles.
  • Il n'y a aucune restriction sur la façon de modĂ©liser les informations.
  • La modĂ©lisation de l'information est toujours hĂ©bergĂ©e cĂ´tĂ© serveur.


L'ensemble d'objets et d'informations associées que le serveur OPC UA met à disposition des clients est l'espace d'adressage. Vous pouvez considérer l'espace d'adressage comme une implémentation du modèle d'information OPC UA.



Un espace d'adressage OPC UA est un ensemble de nœuds liés par des liens. Chaque nœud a des propriétés appelées attributs. Un certain ensemble d'attributs doit exister sur tous les nœuds. La relation entre les nœuds, les attributs et les liens est illustrée dans le diagramme suivant



image



Les nœuds peuvent appartenir à différentes classes de nœuds, en fonction de leur objectif spécifique. Certains nœuds peuvent représenter des instances, d'autres peuvent représenter des types, etc. OPC UA possède huit classes de nœuds standard: variable, objet, méthode, vue, type de données, type de variable, type d'objet et type de référence. Dans OPC UA, les classes de nœuds les plus importantes sont les objets, les variables et les méthodes.



Sessions OPC UA



OPC UA fournit un modèle de communication client-serveur qui inclut des informations d'état. Ces informations d'état sont liées à la session. Une session est définie comme une connexion logique entre un client et un serveur. Chaque session est indépendante du protocole de communication sous-jacent; tout problème au niveau du protocole ne met pas automatiquement fin à la session. La session se termine après une demande explicite du client ou en raison de l'inactivité du client. Les intervalles d'inactivité sont définis lors de la création de session.



Modèle de sécurité OPC UA



Le modèle de sécurité OPC UA est mis en œuvre en définissant le canal sécurisé sur lequel la session est basée. Le canal sécurisé échange des données comme suit:



  • Assure l'intĂ©gritĂ© des donnĂ©es Ă  l'aide de signatures numĂ©riques.
  • Fournit la confidentialitĂ© grâce au cryptage.
  • Authentifie et autorise les applications Ă  l'aide de certificats X.509.


La figure montre les couches suivantes: couche application, couche session et couche transport.



La couche application est utilisée pour transférer des informations entre les clients et les serveurs qui ont établi une session OPC UA. La session OPC UA est établie sur un canal sécurisé. La couche de transport est la couche responsable de l'envoi et de la réception des données via une connexion socket, à laquelle des mécanismes de gestion des erreurs sont appliqués pour garantir que le système est protégé contre les attaques telles que le déni de service (DoS).



image



Échange de données OPC UA



Le moyen le plus simple d'échanger des données entre un client OPC UA et un serveur consiste à utiliser des services de lecture et d'écriture. Les services de lecture et d'écriture sont optimisés pour transférer un groupe de données, plutôt qu'un seul élément de données ou plusieurs valeurs. Ils vous permettent de lire et d'écrire soit les valeurs, soit les attributs des nœuds. Le service de lecture a les paramètres suivants:

maxAge: Il s'agit du temps maximum nécessaire pour obtenir les valeurs. Ceci est indiqué par le client. Il force le serveur à contacter un périphérique (tel qu'un capteur) si la copie dans son cache est plus ancienne que le paramètre maxAge configuré par le client. Si maxAge est défini sur zéro, le serveur doit fournir la valeur actuelle, en la lisant toujours directement depuis le périphérique.



Type d'horodatage: OPC UA définit deux horodatages: l'horodatage source et l'horodatage serveur. L'horodatage d'origine est l'horodatage provenant de l'appareil et l'horodatage du serveur est l'horodatage provenant du système d'exploitation sur lequel le serveur OPC UA s'exécute.



La liste des nœuds et des attributs ressemble à ceci:



  • NodeId
  • AttributeId pour la valeur de l'instance
  • DataEncoding: cela permet au client de choisir un encodage de donnĂ©es appropriĂ©, et les valeurs par dĂ©faut sont XML, UA binary


Caractéristiques du protocole OPC



Le protocole OPC ne peut pas être entièrement appelé libre. Pour développer un logiciel à l'aide du SDK OPC, vous devez être membre de la Fondation OPC. Cependant, il existe maintenant des implémentations gratuites de la bibliothèque client et serveur, par exemple freeopcua.github.io , mais elles n'ont pas encore d'implémentation pub / sub.



Comparé à d'autres protocoles comme MQTT, OPC n'est pas léger.



ContrĂ´leur logique programmable PLC



Le terme PLC (Programmable Logic Controller, PLC) a ensuite été défini dans les normes EN 61131 (CEI 61131). PLC est un système de contrôle électronique numérique unifié spécialement conçu pour une utilisation dans des environnements industriels. L'API surveille en permanence l'état des périphériques d'entrée et prend des décisions basées sur le programme utilisateur pour contrôler l'état des périphériques de sortie.



Exigences pour l'API:



  • Il doit pouvoir fonctionner dans des conditions industrielles difficiles, telles que tempĂ©ratures extrĂŞmes, saletĂ©, rĂ©seau d'alimentation de mauvaise qualitĂ©.
  • Il doit fonctionner avec des signaux d'entrĂ©e et de sortie discrets 24VDC ou 240VAC spĂ©cifiques Ă  l'industrie, ainsi qu'avec des signaux analogiques (± 10V, 4-20mA, etc.)
  • Le langage de programmation doit ĂŞtre compris par les ingĂ©nieurs en automatisation
  • L'automate doit surveiller en permanence le fonctionnement de l'installation industrielle
  • Le système d'exploitation doit ĂŞtre suffisamment rapide pour effectuer un cycle de balayage (20 Ă  100 ms)


La figure suivante montre la structure du mode de fonctionnement de base de l'automate (Ă  l'aide de l'exemple de la CPU Simatic).



image



OPC UA avec SIMATIC S7-1500



Conditions préalables - Simatic TIA Portal V13-16 doit être installé



Pour simuler un automate avec un serveur OPC, SIMATIC S7-PLCSIM Advanced version 2 ou 3 doit être installé et configuré.

Support.industry.siemens.com/cs/document/109772889/trial -download% 3A-simatic-s7-plcsim-advanced-v3-0? dti = 0 & lc = en-WWJ'ai installé la version 3 du simulateur sur un système avec un package Simatic TIA Portal V14 SP1 existant. Avant l'installation, l'installateur a informé que PLCSIM V14 n'est pas compatible avec SIMATIC S7-PLCSIM V3 et doit être supprimé. J'ai suivi ces étapes, après quoi l'installation a été suspendue. Un projet de test a été créé dans le TIA Portal avec la CPU 1512C-1 PN. Une particularité était qu'il devenait impossible d'effectuer une simulation à l'aide du bouton "Démarrer la simulation", mais le bouton "Télécharger vers l'appareil" fonctionne lorsque PLCSIM Advanced est en cours d'exécution.



Pour accéder au simulateur via le réseau, vous devez activer PLCSIM Virtual Eth. Adaptateur, pour lequel vous devez d'abord installer le logiciel WinPcap. Viennent ensuite les paramètres Ethernet standard.

Après avoir appuyé sur le bouton «Démarrer», le simulateur devient actif et visible sur le réseau
image



Ensuite, vous devez cocher la case "Prise en charge de la simulation lors de la compilation de blocs" dans l'onglet "Protection" de la boîte de dialogue pour appeler le menu contextuel "Propriétés" à la racine du projet
image



L'étape suivante consiste à activer le serveur OPC dans le projet et à sélectionner le type de licence (vous pouvez l'ignorer, après quoi le projet ne sera pas compilé)
image





En outre, le processus de téléchargement du logiciel sur PLCSIM Advanced est similaire au téléchargement vers un simulateur standard, à l'exception de celui décrit précédemment.



Dans le projet de test TIA Portal, DB1 a été créé avec une variable «pression» et la sortie numérique «Q0.1 Tag_2» a été affectée.



Pour vous connecter au serveur OPC et surveiller le réseau, les nœuds et les balises, vous pouvez utiliser le client UaExpert OPC, qui peut être téléchargé à partir de www.unified-automation.com/products/development-tools/uaexpert.html .

Pour vous connecter au serveur OPC, vous devez ajouter une nouvelle connexion et enregistrer l'URL du point final, précédemment définie dans les paramètres du projet du serveur OPC dans le TIA Portale, dans mon cas, c'est opc.tcp: //192.168.1.113: 4840
image



Lorsque vous connectez le client OPC au serveur de simulateur, vous pouvez observer les nœuds et les variables créés.
image





Pour implémenter par programme l'interaction du client et du serveur OPC, vous pouvez utiliser l'implémentation opensource de la bibliothèque en Python github.com/FreeOpcUa/python-opcua , il existe également des exemples avec du code. Avant d'utiliser, vous devez installer les dépendances nécessaires:



pip install freeopcua
pip install cryptography


L'exemple le plus simple de création d'un serveur OPC avec trois variables



from opcua import Server
from random import randint
import datetime
import time

class Opc:
    def __init__(self):
        self.server = Server()
        self.url = "opc.tcp://127.0.0.1:4848"
        self.server.set_endpoint(self.url)
        self.namespace_uri = "OPCUA_SIMULATION_SERVER"
        self.namespace = self.server.register_namespace(self.namespace_uri)
        self.root_node = self.server.get_objects_node()
        self.parameters = self.root_node.add_object(self.namespace, "Parameters")

    def create_variable(self, name, initial=0):
        variable = self.parameters.add_variable(self.namespace, name, initial)
        variable.set_writable()
        return variable

def main():

    opc = Opc()
    tag_1 = opc.create_variable("Temperature", 25)
    tag_2 = opc.create_variable("Pressure")
    tag_3 = opc.create_variable("Time")

    opc.server.start()
    print("Server started at {}".format(opc.url))

    while True:
        #tag_1.set_value(randint(10, 50))
        tag_2.set_value(randint(200, 999))
        tag_3.set_value(datetime.datetime.now())

        time.sleep(2)

if __name__ == '__main__':
   main()


Le mĂŞme exemple le plus simple de la partie client



from opcua import Client
import time

url = "opc.tcp://127.0.0.1:4848"

client = Client(url)

client.connect()
print("Client connected")

Temp = client.get_node("ns=2;i=2")
Temp.set_value(25)

if __name__ == '__main__':
    while True:
        temperature = Temp.get_value()
        print(temperature)
        time.sleep(1)


Il est Ă©galement possible d'observer la connexion Ă  l'aide du client UaExpert



image



Concept I-IoT Edge



Edge est la plaque tournante entre l'environnement de production et le monde IoT dans le cloud. Edge peut être décomposé en trois composants macro: Edge Gateway, Edge tools, Edge Computing



image



En 2017, Gartner a annoncé ce qui suit: «The Edge va manger le cloud». Bien que cette déclaration puisse sembler un peu controversée, elle met en évidence le rôle qu'Edge a joué au fil des ans. Les industriels, après une phase de transition vers le cloud, se sont rendu compte qu'il n'est pas toujours possible de tout faire à distance. Les raisons en sont les suivantes:



  • . . , , . .
  • : . , , , , 1 50 .
  • Latence du rĂ©seau: les contrĂ´les ou analyses de processus avancĂ©s associĂ©s aux modifications des donnĂ©es du comportement de l'Ă©quipement de profil dans une petite fenĂŞtre de temps souffrent d'une latence rĂ©seau Ă©levĂ©e et variable. L'optimisation de l'Ă©quipement est nĂ©cessaire pour une exĂ©cution la plus rapide dans un certain intervalle de temps.
  • Connexion de donnĂ©es. Pour optimiser le flux de travail ou pour entretenir l'Ă©quipement, vous devez remplacer des composants sans accès Ă  la connexion Internet.


Passerelle Edge



La passerelle Edge est le cœur du périphérique Edge. La principale fonction de la passerelle de périphérie est de se connecter à une source industrielle pour collecter et envoyer des données au hub I-IoT à l'aide d'un protocole de transmission tel que MQTT, CoAP, HTTPS ou AMQP.



Les composants les plus importants d'une passerelle Edge sont l'adaptateur industriel et l'adaptateur IoT. Un adaptateur industriel s'abonne généralement aux données de la zone Field et les publie sur le bus de données. En règle générale, il implémente le connecteur pour l'appareil sélectionné, agissant en tant que source dans le flux de données I-IoT et le rendant disponible sur le bus de données Edge. Un adaptateur IoT, en revanche, reçoit des valeurs du bus de données et les transmet au hub de données IoT. Une partie importante de Gateway Edge est le composant Store-and-Forward. Il s'agit d'un mécanisme général de stockage des données dans un stockage local temporaire. Il assure la robustesse de la transmission de données contre l'instabilité du réseau. Dans le réseau mondial, l'instabilité et la latence du canal de communication sont très élevées. Le mécanisme de stockage et de transfert peut être le suivant:



  • MĂ©moire tampon limitĂ©e couvrant une courte pĂ©riode d'inactivitĂ©
  • Une zone de stockage dĂ©diĂ©e sur disque pouvant accueillir de longues pĂ©riodes d'inactivitĂ© ou un Ă©norme trafic de donnĂ©es.


La plage de la fenêtre temporelle pendant laquelle le transfert de données doit être assuré dépend des scénarios spécifiques et des ressources physiques de la mémoire périphérique et du stockage.



Utilitaires de configuration (outils Edge)



Les outils Edge doivent avoir les caractéristiques suivantes:



  • La possibilitĂ© de gĂ©rer et de configurer facilement la collecte de donnĂ©es Ă  la fois Ă  distance et localement
  • PossibilitĂ© de s'inscrire pour les correctifs et les mises Ă  jour
  • PossibilitĂ© de journalisation des actions
  • PossibilitĂ© d'afficher et de modifier les donnĂ©es Ă  l'aide de l'interface utilisateur
  • Auto-configuration et auto-enregistrement dans le cloud au dĂ©marrage
  • PossibilitĂ© de recevoir et d'exĂ©cuter des commandes depuis le cloud


Edge Computing



Le Edge computing présente les fonctionnalités suivantes:



  • CapacitĂ© Ă  effectuer des actions Ă  l'aide du logiciel I-IoT (middleware), Ă  ​​la fois hors ligne et en ligne.
  • PossibilitĂ© d'hĂ©berger des applications personnalisĂ©es
  • La possibilitĂ© d'exĂ©cuter des analyses hors ligne, en conjonction avec le middleware I-IoT ou Ă  distance.
  • CapacitĂ© Ă  effectuer des actions ou Ă  charger des analyses Ă  partir du middleware I-IoT
  • PossibilitĂ© d'envoyer des donnĂ©es non structurĂ©es et spĂ©cifiques au middleware I-IoT Ă  la demande ou au dĂ©marrage conditionnel


Implémentations Edge



Les fournisseurs de cloud et les fabricants d'équipement d'origine (OEM) développent diverses solutions basées sur leur propre système d'exploitation ou proposent des kits de développement logiciel (SDK) indépendants du cloud.



Azure IoT Edge



Azure IoT Edge est la solution Edge de Microsoft pour Azure IoT. La plate-forme prend en charge le stockage et le transfert, Edge Analytics et plusieurs adaptateurs pour la conversion de protocoles natifs ou standard en protocoles Internet. Azure IoT Edge prend également en charge OPC Server dans ses implémentations OPC Classic et OPC-UA. Présentation du produit:



  • Fonctionne avec les appareils Linux ou Windows qui prennent en charge les sous-systèmes de conteneurs.
  • Runtime gratuit, open source, sous licence MIT
  • Conteneurs compatibles Docker Ă  partir des services Azure ou de l'interface Cloud des partenaires Microsoft. Vous permet d'administrer et de dĂ©ployer Ă  distance des charges de travail Ă  partir du cloud Ă  l'aide d'IoT Hub


L'herbe verte



Greengrass est la prochaine génération d'IoT Edge d'AWS. AWS fournit le SDK pour la création d'AWS Edge et étend les capacités du cloud aux appareils de périphérie avec Greengrass. Cela permet aux appareils d'agir localement tout en continuant à utiliser le cloud pour la gestion, l'analyse et le stockage persistant. Greengrass prend en charge OPC UA et ne prend pas en charge OPC Classic. Avantages:



  • RĂ©ponse aux Ă©vĂ©nements en temps quasi rĂ©el
  • DĂ©connectĂ© de travail
  • AWS IoT Greengrass authentifie et crypte les donnĂ©es des appareils, Ă  la fois sur le LAN et avec le cloud
  • Programmation d'appareils simplifiĂ©e avec prise en charge des conteneurs


Choses Android



Google fournit un SDK pour le développement Edge. Il sponsorise Android en tant que nouvelle génération d'appareils Edge. Caractéristiques de la plateforme:



  • DĂ©veloppement avec Android SDK et Android Studio
  • Accès au matĂ©riel tel que l'Ă©cran et la camĂ©ra via la plate-forme Android
  • Connecter l'application aux services Google
  • IntĂ©gration de pĂ©riphĂ©riques supplĂ©mentaires via API d'E / S pĂ©riphĂ©riques (GPIO, I2C, SPI, UART, PWM)
  • Utilisation de la console Android Things pour envoyer des mises Ă  jour par liaison radio et des mises Ă  jour de sĂ©curitĂ©


NĹ“ud-RED



Il s'agit d'un outil de programmation visuelle pour l'Internet des objets qui permet aux appareils, aux API et aux services en ligne de se connecter les uns aux autres. Le runtime Node-RED est construit au-dessus de Node.js et tire donc le meilleur parti de son modèle événementiel et non bloquant. Node-RED est un outil de programmation de streaming développé à l'origine par l'équipe IBM Emerging Technology Services et qui fait actuellement partie de la JS Foundation.



Fonctionnalités:



  • CrĂ©er une logique de programme directement dans le navigateur
  • Le runtime Node-RED est construit sur Node.js
  • Les flux (unitĂ©s logiques) crĂ©Ă©s dans Node-RED sont enregistrĂ©s dans des fichiers JSON qui peuvent ĂŞtre facilement exportĂ©s et importĂ©s
  • L'exĂ©cution est possible sur n'importe quel appareil prenant en charge node.js
  • Un grand nombre d'extensions


Passerelle Intel IoT



Fonctionnalités:



  • ConnectivitĂ© cloud et entreprise.
  • Connectable aux capteurs et aux contrĂ´leurs existants.
  • PrĂ©-filtrage des donnĂ©es sĂ©lectionnĂ©es pour la livraison.
  • Prise de dĂ©cision locale pour assurer une connectivitĂ© facile aux systèmes hĂ©ritĂ©s.
  • Cryptage matĂ©riel des donnĂ©es et verrouillage logiciel.
  • Calcul local et analyses sur l'appareil.


Flogo iot



Project Flogo est un écosystème léger et open source basé sur Go pour la création d'applications événementielles. Les déclencheurs et les actions sont utilisés pour traiter les événements entrants. L'interface d'interaction fournit des fonctionnalités clés telles que l'intégration d'applications, le traitement de flux, etc.



  • Moteur d'application Flux d'intĂ©gration avec branchement conditionnel et environnement de dĂ©veloppement visuel
  • Le streaming est une simple action de traitement de flux basĂ©e sur un pipeline avec la possibilitĂ© d'agrĂ©ger des Ă©vĂ©nements sur plusieurs dĂ©clencheurs et de les agrĂ©ger sur des fenĂŞtres temporelles.
  • Règles dĂ©claratives pour les dĂ©cisions contextuelles en temps rĂ©el
  • Modèle Microgateway pour le routage conditionnel basĂ© sur le contenu, la validation JWT, la limitation de dĂ©bit, la coupure de circuit, etc.


Eclipse kura



Eclipse Kura est un framework IoT Edge extensible open source basé sur Java / OSGi. Kura offre un accès API aux interfaces matérielles de la passerelle IoT (ports série, GPS, horloge de surveillance, GPIO, I2C, etc.). Il comprend des protocoles de terrain prêts à l'emploi (y compris Modbus, OPC-UA, S7), un conteneur d'applications et une programmation visuelle Web pour l'acquisition, le traitement et la publication de données sur des plates-formes cloud.



Fonderie EdgeX



EdgeX FoundryTM est un projet open source indépendant du fournisseur pris en charge par la Linux Foundation qui crée un environnement ouvert commun pour l'informatique de périphérie IoT. Au cœur du projet se trouve une infrastructure d'interopérabilité hébergée sur une plate-forme logicielle de référence complète indépendante du système d'exploitation pour créer un écosystème plug-and-play qui unifie le marché et accélère le déploiement des solutions IoT.



Options de connectivité Edge pour les sources de données industrielles



  • Bord sur bus de terrain
  • Edge sur OPC DCOM
  • Edge sur le proxy OPC
  • Edge sur OPC UA
  • OPC UA sur le contrĂ´leur


Edge sur OPC UA et sur le contrĂ´leur



La connexion à un serveur OPC UA est le scénario préféré car elle optimise les capacités d'OPC UA. La connexion au serveur OPC peut être déployée de deux manières différentes. Dans le premier cas, Edge se connecte au serveur OPC UA via son interface client OPC UA. La source de données peut être l'une des suivantes: PLC, DCS, SCADA ou Historian.



image



Dans le second cas, l'Edge se connecte au serveur OPC installé directement sur l'automate, comme indiqué précédemment avec le Simatic CPU 1500.



image



Protocole MQTT



Pub / sub est un moyen de séparer un client envoyant un message d'un autre client recevant un message. Contrairement au modèle client-serveur, les clients ne connaissent aucun identifiant physique tel qu'une adresse IP ou un port. MQTT est une architecture pub / sub, pas une file d'attente de messages. Les files d'attente de messages, de par leur nature même, stockent les messages, contrairement à MQTT. Dans MQTT, si personne ne s'abonne (ou n'écoute) un sujet, il est simplement ignoré et perdu.



image



Le client qui envoie le message est appelé l'éditeur; le client recevant le message est appelé l'abonné. Au centre se trouve le courtier MQTT, qui est responsable de la connexion des clients et du filtrage des données. Ces filtres fournissent:



  • filtrage par sujets - de par leur conception, les clients s'abonnent Ă  des sujets et Ă  certaines branches de sujets et ne reçoivent pas plus de donnĂ©es qu'ils ne le souhaitent. Chaque message publiĂ© doit contenir un sujet et le courtier est responsable de retransmettre ce message aux abonnĂ©s ou de l'ignorer;
  • filtrage de contenu - les courtiers ont la possibilitĂ© de vĂ©rifier et de filtrer les donnĂ©es publiĂ©es. Ainsi, toutes les donnĂ©es non chiffrĂ©es peuvent ĂŞtre gĂ©rĂ©es par le courtier avant d'ĂŞtre stockĂ©es ou transfĂ©rĂ©es Ă  d'autres clients;
  • filtrage par type - un client Ă©coutant un flux de donnĂ©es auquel il est abonnĂ© peut Ă©galement appliquer ses propres filtres. Les donnĂ©es entrantes peuvent ĂŞtre analysĂ©es et, en fonction de cela, le flux de donnĂ©es est traitĂ© davantage ou ignorĂ©.


Il existe trois niveaux de qualité de service dans MQTT:



  • QoS-0 ( ) – QoS. « », . ;
  • QoS-1 ( ) – . , PUBACK;
  • QoS-2 ( ) – QoS, , . - . QoS-2, PUBREC. , PUBREL. PUBREL . PUBREL PUBCOMP. PUBCOMP , .


Pour le moment, il existe deux versions de la spécification du protocole MQTT: 3.1.1 et 5.0 . Une description plus détaillée du protocole peut être trouvée ici ou un enregistrement de ma présentation github.com/vladipirogov/Message-Queue-Telemetry-Transport , www.youtube.com/watch?v=fYoGubQFz5c&t=5s et www.youtube.com/watch?v=8mupuCjedlc .



Dans le prochain article, je vais essayer de montrer un exemple de mise en œuvre d'une plate-forme Edge I-IoT personnalisée utilisant Node-red comme passerelle Edge, Apache Kafka comme gestionnaire de données et stockage temporaire, Kafka Streams comme moteur de règles, Mosquitto (une autre implémentation est possible) comme connecteur MQTT ... Les technologies InfluxData seront utilisées pour stocker des données de séries chronologiques.

Lien vers la vidéo du meetup.



Sources d'information






All Articles