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.
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é.
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
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)
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
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
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).
É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).
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
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
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é)
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
Lorsque vous connectez le client OPC au serveur de simulateur, vous pouvez observer les nœuds et les variables créés.
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
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
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.
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.
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.
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
- Plateforme de transformation numérique
- Spécification de l'architecture unifiée OPC
- Encyclopédie d'ACS TP
- FreeOpcUa est un projet d'implémentation d'une pile OPC-UA open-source (LGPL) et des outils associés.
- GR Kanagachidambaresan Internet des objets pour l'industrie 4.0
- Agents intelligents Max Hoffmann pour l'industrie 4.0
- Architecture unifiée OPC de Wolfgang Mahnke
- Klaus Schwab, quatrième révolution industrielle
- Architecture de l'Internet des objets de Perry Lee
- Ismail Butun Industrial IoT
- Spécifications MQTT