Procedura dettagliata per la soluzione preconfigurata di connected factoryConnected factory preconfigured solution walkthrough

La soluzione preconfigurata di connected factory di IoT Suite rappresenta l'implementazione di una soluzione industriale end-to-end che:The IoT Suite connected factory preconfigured solution is an implementation of an end-to-end industrial solution that:

  • Si connette sia a dispositivi industriali simulati che eseguono server OPC UA in linee di produzione simulate degli stabilimenti, sia a dispositivi server OPC UA reali.Connects to both simulated industrial devices running OPC UA servers in simulated factory production lines, and real OPC UA server devices. Per altre informazioni su OPC UA, vedere le domande frequenti sulla soluzione di connected factory.For more information about OPC UA, see the Connected factory FAQ.
  • Visualizza KPI e OEE di tali dispositivi e delle linee di produzione.Shows operational KPIs and OEE of those devices and production lines.
  • Dimostra come usare un'applicazione basata sul cloud per interagire con i sistemi server OPC UA.Demonstrates how a cloud-based application could be used to interact with OPC UA server systems.
  • Consente di connettere i propri dispositivi server OPC UA.Enables you to connect your own OPC UA server devices.
  • Consente di esplorare e modificare i dati dei server OPC UA.Enables you to browse and modify the OPC UA server data.
  • Si integra con il servizio Azure Time Series Insights (TSI) per fornire visualizzazioni personalizzate dei dati dei server OPC UA.Integrates with the Azure Time Series Insights (TSI) service to provide customized views of the data from your OPC UA servers.

È possibile usare la soluzione come punto di partenza per l'implementazione e personalizzarla in base ai requisiti aziendali specifici.You can use the solution as a starting point for your own implementation and customize it to meet your own specific business requirements.

Questo articolo illustra alcuni degli elementi principali della soluzione di connected factory per comprenderne il funzionamento.This article walks you through some of the key elements of the connected factory solution to enable you to understand how it works. L'articolo descrive anche come i dati passano attraverso la soluzione.The article also describes how data flows through the solution. Queste informazioni consentono di:This knowledge helps you to:

  • Risolvere i problemi nella soluzione.Troubleshoot issues in the solution.
  • Pianificare come personalizzare la soluzione per soddisfare requisiti specifici.Plan how to customize to the solution to meet your own specific requirements.
  • Progettare la propria soluzione IoT che usa i servizi di Azure.Design your own IoT solution that uses Azure services.

Per altre informazioni, vedere le domande frequenti sulla soluzione di connected factory.For more information, see the Connected factory FAQ.

Architettura logicaLogical architecture

Il diagramma seguente illustra i componenti logici della soluzione preconfigurata:The following diagram outlines the logical components of the preconfigured solution:

Architettura logica di connected factory

Modelli di comunicazioneCommunication patterns

La soluzione usa la specifica OPC UA Pub/Sub per inviare i dati di telemetria OPC UA all'hub IoT in formato JSON.The solution uses the OPC UA Pub/Sub specification to send OPC UA telemetry data to IoT Hub in JSON format. La soluzione usa il modulo di pubblicazione OPC IoT Edge per questo scopo.The solution uses the OPC Publisher IoT Edge module for this purpose.

La soluzione ha anche un client OPC UA integrato in un'applicazione Web che può stabilire connessioni con server OPC UA locali.The solution also has an OPC UA client integrated into a web application that can establish connections with on-premises OPC UA servers. Il client usa un proxy inverso e riceve assistenza dall'hub IoT per stabilire la connessione senza che sia necessario aprire le porte nel firewall locale.The client uses a reverse-proxy and receives help from IoT Hub to make the connection without requiring open ports in the on-premises firewall. Questo modello di comunicazione è denominato modello di comunicazione assistita con servizi.This communication pattern is called service-assisted communication. La soluzione usa il modulo proxy OPC IoT Edge per questo scopo.The solution uses the OPC Proxy IoT Edge module for this purpose.

SimulazioneSimulation

Le postazioni simulate e i sistemi MES (Manufacturing Execution Systems) simulati costituiscono una linea di produzione dello stabilimento.The simulated stations and the simulated manufacturing execution systems (MES) make up a factory production line. I dispositivi simulati e il modulo di pubblicazione OPC si basano sullo standard OPC UA .NET pubblicato dalla OPC Foundation.The simulated devices and the OPC Publisher Module are based on the OPC UA .NET Standard published by the OPC Foundation.

Il proxy OPC e il modulo di pubblicazione OPC vengono implementati come moduli basati su Azure IoT Edge.The OPC Proxy and OPC Publisher are implemented as modules based on Azure IoT Edge. Ogni linea di produzione simulata ha un gateway designato collegato.Each simulated production line has a designated gateway attached.

Tutti i componenti di simulazione vengono eseguiti in contenitori Docker ospitati in una macchina virtuale Linux di Azure.All simulation components run in Docker containers hosted in an Azure Linux VM. Per impostazione predefinita, la simulazione è configurata per l'esecuzione di otto linee di produzione simulate.The simulation is configured to run eight simulated production lines by default.

Linea di produzione simulataSimulated production line

Una linea di produzione produce parti.A production line manufactures parts. È composta da postazioni diverse, ovvero montaggio, collaudo e imballaggio.It is composed of different stations: an assembly station, a test station, and a packaging station.

La simulazione viene eseguita e aggiorna i dati esposti tramite i nodi OPC UA.The simulation runs and updates the data that is exposed through the OPC UA nodes. Tutte le postazioni della linea di produzione simulata sono coordinate dal sistema MES tramite OPC UA.All simulated production line stations are orchestrated by the MES through OPC UA.

MES (Manufacturing Execution System) simulatoSimulated manufacturing execution system

Il MES monitora ogni postazione nella linea di produzione tramite OPC UA per rilevare le modifiche di stato della postazione stessa.The MES monitors each station in the production line through OPC UA to detect station status changes. Chiama metodi OPC UA per controllare le postazioni e trasferisce un prodotto da una postazione all'altra finché non è completo.It calls OPC UA methods to control the stations and passes a product from one station to the next until it is complete.

Modulo di pubblicazione OPC del gatewayGateway OPC publisher module

Il modulo di pubblicazione OPC si connette ai server OPC UA della postazione ed effettua la sottoscrizione ai nodi OPC da pubblicare.OPC Publisher Module connects to the station OPC UA servers and subscribes to the OPC nodes to be published. Il modulo converte i dati del nodo in formato JSON, li crittografa e li invia all'hub IoT come messaggi di pubblicazione/sottoscrizione OPC UA.The module converts the node data into JSON format, encrypts it, and sends it to IoT Hub as OPC UA Pub/Sub messages.

Il modulo di pubblicazione OPC richiede solo una porta HTTPS in uscita (443) e può funzionare con l'infrastruttura aziendale esistente.The OPC Publisher module only requires an outbound https port (443) and can work with existing enterprise infrastructure.

Modulo proxy OPC del gatewayGateway OPC proxy module

Il modulo proxy OPC UA del gateway effettua il tunnel dei messaggi di comando e controllo OPC UA binari e richiede solo una porta HTTPS in uscita (443).The Gateway OPC UA Proxy Module tunnels binary OPC UA command and control messages and only requires an outbound https port (443). Può funzionare con l'infrastruttura aziendale esistente, inclusi i proxy Web.It can work with existing enterprise infrastructure, including Web Proxies.

Usa metodi di dispositivo hub IoT per trasferire pacchetti di dati TCP/IP a livello di applicazione e garantisce quindi l'attendibilità degli endpoint, la crittografia dei dati e l'integrità tramite SSL/TLS.It uses IoT Hub Device methods to transfer packetized TCP/IP data at the application layer and thus ensures endpoint trust, data encryption, and integrity using SSL/TLS.

Il protocollo binario OPC UA inoltrato attraverso il proxy stesso usa la crittografia e l'autenticazione UA.The OPC UA binary protocol relayed through the proxy itself uses UA authentication and encryption.

Azure Time Series InsightsAzure Time Series Insights

Il modulo di pubblicazione OPC del gateway effettua la sottoscrizione ai nodi del server OPC UA per rilevare le modifiche ai valori dei dati.The Gateway OPC Publisher Module subscribes to OPC UA server nodes to detect change in the data values. Se viene rilevata una modifica dei dati in uno dei nodi, questo modulo invia messaggi all'hub IoT di Azure.If a data change is detected in one of the nodes, this module then sends messages to Azure IoT Hub.

L'hub IoT fornisce un'origine evento ad Azure Time Series Insights.IoT Hub provides an event source to Azure TSI. Time Series Insights archivia i dati per 30 giorni in base ai timestamp associati ai messaggi.TSI stores data for 30 days based on timestamps attached to the messages. Questi dati includono:This data includes:

  • ApplicationUri OPC UAOPC UA ApplicationUri
  • NodeId OPC UAOPC UA NodeId
  • Valore del nodoValue of the node
  • Timestamp di origineSource timestamp
  • DisplayName OPC UAOPC UA DisplayName

Time Series Insights non consente attualmente ai clienti di definire il periodo di conservazione dei dati.Currently, TSI does not allow customers to customize how long they wish to keep the data for.

Time Series Insights esegue query sui dati del nodo usando una funzione SearchSpan (Time.From, Time.To) ed esegue l'aggregazione in base ad ApplicationUri OPC UA, NodeId OPC UA o DisplayName OPC UA.TSI queries against node data using a SearchSpan (Time.From, Time.To) and aggregates by OPC UA ApplicationUri or OPC UA NodeId or OPC UA DisplayName.

Per recuperare i dati per i misuratori OEE e KPI e i grafici di serie temporali, i dati vengono aggregati per numero di eventi, Sum, Avg, Min e Max.To retrieve the data for the OEE and KPI gauges, and the time series charts, data is aggregated by count of events, Sum, Avg, Min, and Max.

Le serie temporali vengono compilate usando un processo differente.The time series are built using a different process. OEE e KPI vengono calcolati dai dati di base della postazione e propagati alla topologia (linee di produzione, stabilimento, azienda) nell'applicazione.OEE and KPIs are calculated from station base data and bubbled up for the topology (production lines, factories, enterprise) in the application.

La serie temporale per la topologia OEE e KPI viene calcolata nell'app ogni volta che un intervallo di tempo visualizzato è pronto,Additionally, time series for OEE and KPI topology is calculated in the app, whenever a displayed timespan is ready. ad esempio la visualizzazione giornaliera viene aggiornata ogni ora.For example, the day view is updated every full hour.

La visualizzazione della serie temporale dei dati del nodo proviene direttamente da Time Series Insights tramite un'aggregazione per timespan.The time series view of node data comes directly from TSI using an aggregation for timespan.

Hub IoTIoT Hub

L'hub IoT riceve i dati inviati dal modulo di pubblicazione OPC nel cloud e li mette a disposizione del servizio di Azure Time Series Insights.The IoT hub receives data sent from the OPC Publisher Module into the cloud and makes it available to the Azure TSI service.

L'hub IoT nella soluzione esegue anche le operazioni seguenti:The IoT Hub in the solution also:

  • Gestisce un registro delle identità che archivia gli ID per tutti i moduli di pubblicazione OPC e tutti i moduli proxy OPC.Maintains an identity registry that stores the IDs for all OPC Publisher Module and all OPC Proxy Modules.
  • Viene usato come canale di trasporto per la comunicazione bidirezionale del modulo proxy OPC.Is used as transport channel for bidirectional communication of the OPC Proxy Module.

Archiviazione di AzureAzure Storage

La soluzione usa Archiviazione BLOB di Azure come spazio di archiviazione su disco per la macchina virtuale e per i dati di distribuzione.The solution uses Azure blob storage as disk storage for the VM and to store deployment data.

App WebWeb app

L'app Web distribuita nell'ambito della soluzione preconfigurata è costituita da un client OPC UA integrato, elaborazione degli avvisi e visualizzazione dei dati di telemetria.The web app deployed as part of the preconfigured solution comprises of an integrated OPC UA client, alerts processing and telemetry visualization.

Flusso di dati di telemetriaTelemetry data flow

Flusso di dati di telemetria

Passaggi del flussoFlow steps

  1. Il modulo di pubblicazione OPC legge i certificati OPC UA X509 necessari e le credenziali di sicurezza dell'hub IoT dall'archivio certificati locale.OPC Publisher reads the required OPC UA X509 certificates and IoT Hub security credentials from the local certificate store.

    • Se necessario, il modulo di pubblicazione OPC crea e archivia i certificati o le credenziali mancanti nell'archivio certificati.If necessary, OPC Publisher creates and stores any missing certificates or credentials in the certificate store.
  2. Il modulo di pubblicazione OPC si registra con l'hub IoT.OPC Publisher registers itself with IoT Hub.

    • Usa il protocollo configurato.Uses the configured protocol. Può usare qualsiasi protocollo supportato dall'SDK client per l'hub IoT.Can use any IoT Hub client SDK supported protocol. Il protocollo predefinito è MQTT.The default is MQTT.
    • La comunicazione del protocollo è protetta da TLS.Protocol communication is secured by TLS.
  3. Il modulo di pubblicazione OPC legge il file di configurazione.OPC Publisher reads configuration file.

  4. Il modulo di pubblicazione OPC crea una sessione OPC con ogni server OPC UA configurato.OPC Publisher creates an OPC Session with each configured OPC UA Server.

    • Usa la connessione TCP.Uses TCP connection.
    • Il modulo di pubblicazione e il server OPC UA si autenticano reciprocamente usando i certificati X509.OPC Publisher and OPC UA Server authenticate each other using X509 certificates.
    • Tutto il traffico OPC UA successivo viene crittografato dal meccanismo di crittografia OPC UA configurato.All further OPC UA traffic is encrypted by the configured OPC UA encryption mechanism.
    • Il modulo di pubblicazione OPC crea una sottoscrizione OPC nella sessione OPC per ogni intervallo di pubblicazione configurato.OPC Publisher creates, in the OPC Session for each configured publishing interval, an OPC Subscription.
    • Crea elementi OPC monitorati per i nodi OPC da pubblicare nella sottoscrizione OPC.Creates OPC Monitored items for the OPC Nodes to publish in the OPC Subscription.
  5. Se il valore di un nodo OPC monitorato cambia, il server OPC UA invia gli aggiornamenti al modulo di pubblicazione OPC.If a monitored OPC Node value changes, OPC UA Server sends updates to OPC Publisher.

  6. Il modulo di pubblicazione OPC transcodifica il nuovo valore.OPC Publisher transcodes the new value.

    • Invia più modifiche in batch se l'invio in batch è abilitato.Batches multiple changes if batching is enabled.
    • Crea un messaggio dell'hub IoT.Creates an IoT Hub message.
  7. Il modulo di pubblicazione OPC invia un messaggio all'hub IoT.OPC Publisher sends a message to IoT Hub.

    • Usare il protocollo configurato.Use the configured protocol.
    • La comunicazione è protetta da TLS.Communication is secured by TLS.
  8. Time Series Insights (TSI) legge i messaggi dall'hub IoT.Time Series Insights (TSI) reads the messages from IoT Hub.

    • Usa AMQP su TCP/TLS.Uses AMQP over TCP/TLS.
    • Questo passaggio è interno al data center.This step is internal to the datacenter.
  9. Dati inattivi in TSI.Data at rest in TSI.

  10. L'app Web della fabbrica connessa in Servizio app di Azure esegue una query dei dati necessari da TSI.Connected factory WebApp in Azure AppService queries required data from TSI.

    • Usa la comunicazione protetta TCP/TLS.Uses TCP/TLS secured communication.
    • Questo passaggio è interno al data center.This step is internal to the datacenter.
  11. Il Web browser si connette all'app Web della fabbrica connessa.Web browser connects to the connected factory WebApp.

    • Esegue il rendering del dashboard della fabbrica connessa.Renders the connected factory dashboard.
    • Si connette tramite HTTPS.Connects over HTTPS.
    • Per accedere all'app della fabbrica connessa, è necessaria l'autenticazione dell'utente tramite Azure Active Directory.Access to the connected factory App requires authentication of the user via Azure Active Directory.
    • Le chiamate API Web all'app della fabbrica connessa sono protette da token antifalsificazione.Any WebApi calls into connected factory app are secured by Anti-Forgery-Tokens.
  12. Quando i dati vengono aggiornati, l'app Web della fabbrica connessa li invia al Web browser.On data updates, the Connected factory WebApp sends updated data to the web browser.

    • Usa il protocollo SignalR.Uses the SignalR protocol.
    • Applica la protezione TCP/TLS.Secured by TCP/TLS.

Esplorazione del flusso di datiBrowsing data flow

Esplorazione del flusso di dati

Passaggi del flussoFlow steps

  1. Il proxy OPC (componente server) viene avviato.OPC Proxy (server component) starts up.

    • Legge le chiavi di accesso condiviso da un archivio locale.Reads the shared access keys from a local store.
    • Se necessario, salva le chiavi di accesso mancanti nell'archivio.If necessary, stores missing access keys in the store.
  2. Il proxy OPC (componente server)si registra con l'hub IoT.OPC Proxy (server component) registers itself with IoT Hub.

    • Legge tutti i dispositivi noti dall'hub IoT.Reads all it's known devices from IoT Hub.
    • Usa MQTT su TLS su socket o WebSocket sicuro.Uses MQTT over TLS over Socket or Secure Websocket.
  3. Il Web browser si connette all'app Web della fabbrica connessa ed esegue il rendering del dashboard della fabbrica connessa.Web browser connects to the connected factory WebApp and renders the connected factory dashboard.

    • Usa HTTPS.Uses HTTPS.
    • Un utente seleziona un server OPC UA a cui connettersi.A user selects an OPC UA server to connect to.
  4. L'app Web della fabbrica connessa stabilisce una sessione OPC UA con il server OPC UA selezionato.Connected factory WebApp establishes an OPC UA Session to the selected OPC UA server.

    • Usa lo stack OPC UA.Uses OPC UA stack.
  5. Il trasporto proxy OPC riceve una richiesta dallo stack OPC UA per stabilire una connessione socket TCP al server OPC UA.OPC Proxy transport receives a request from the OPC UA stack to establish a TCP socket connection to OPC UA server.

    • Recupera solo il payload TCP e lo usa senza modificarlo.It just retrieves the TCP payload and uses it unchanged.
    • Questo passaggio è interno all'app Web della fabbrica connessa.This step is internal to the connected factory WebApp.
  6. Il proxy OPC (componente client) cerca il dispositivo proxy OPC (componente server) nel Registro di sistema del dispositivo hub IoT.OPC Proxy (client component) looks up OPC Proxy (server component) device in the IoT Hub device registry. Chiama quindi un metodo del dispositivo proxy OPC (componente server) nell'hub IoT.Then calls a device method of the OPC Proxy (server component) device in IoT Hub.

    • Usa HTTPS su TCP/TLS per cercare il proxy OPC.Uses HTTPS over TCP/TLS to look up OPC Proxy.
    • Usa HTTPS su TCP/TLS per stabilire una connessione socket TCP al server OPC UA.Uses using HTTPS over TCP/TLS to establish a TCP socket connection to the OPC UA server.
    • Questo passaggio è interno al data center.This step is internal to the datacenter.
  7. L'hub IoT chiama quindi un metodo nel dispositivo proxy OPC (componente server).IoT Hub calls a device method in the OPC Proxy (server component) device.

    • Usa una connessione MQTT su TLS su socket o Websocket sicuro stabilita per stabilire una connessione socket TCP al server OPC UA.Uses an established MQTT over TLS over Socket or Secure Websocket connection to establish a TCP socket connection to the OPC UA server.
  8. Il proxy OPC (componente server) invia il payload TCP alla rete di produzione.OPC Proxy (server component) sends the TCP payload on to the shopfloor network.

  9. Il server OPC UA elabora il payload e invia la risposta.The OPC UA server processes the payload and sends back the response.

  10. La risposta viene ricevuta dal socket del proxy OPC (componente server).The response is received by the socket of the OPC Proxy (server component).

    • Il proxy OPC invia i dati come valore restituito del metodo del dispositivo all'hub IoT e al proxy OPC (componente client).OPC Proxy sends the data as return value of the device method to IoT Hub and the OPC Proxy (client component).
    • Questi dati vengono inviati allo stack OPC UA nell'app della fabbrica connessa.This data is delivered to the OPC UA stack in the connected factory app.
  11. L'app Web della fabbrica connessa restituisce l'esperienza utente del browser OPC arricchita con le informazioni specifiche di OPC UA ricevute dal server OPC UA al Web browser per eseguirne il rendering.Connected factory WebApp returns OPC Browser UX enriched with the OPC UA-specific information it received from the OPC UA server to the Web Browser to render it.

    • Durante l'esplorazione tramite lo spazio indirizzi OPC e l'applicazione delle funzioni ai nodi nello spazio indirizzi OPC, la parte client dell'esperienza utente del browser OPC usa le chiamate AJAX su HTTPS protette con i token antifalsificazione per ottenere i dati dall'app Web della fabbrica connessa.While browsing through the OPC address-space and applying functions to nodes in the OPC address-space, the OPC Browser UX client part uses AJAX calls over HTTPS secured with Anti-Forgery Tokens to get data from the Connected factory WebApp.
    • Se necessario, il client usa la comunicazione illustrata nei passaggi da 4 a 10 per scambiare informazioni con il server OPC UA.If necessary, the client uses the communication explained in steps 4 through to 10 to exchange information with the OPC UA server.

Nota

Il proxy OPC (componente server) e il componente proxy OPC (client) completano i passaggi da 4 a 10 per tutto il traffico TCP correlato alla comunicazione OPC UA.The OPC Proxy (server component) and OPC Proxy (client) component complete steps #4 through #10 for all TCP traffic related to the OPC UA communication.

Nota

Per il server OPC UA e lo stack OPC UA nell'app Web della fabbrica connessa, la comunicazione del proxy OPC è trasparente e vengono applicate tutte le funzionalità di sicurezza OPC UA per l'autenticazione e la crittografia.For the OPC UA server and the OPC UA stack within the connected factory WebApp, the OPC Proxy communication is transparent and all OPC UA security features for authentication and encryption apply.

Passaggi successiviNext steps

È possibile proseguire con l'introduzione a IoT Suite vedendo gli articoli seguenti:You can continue getting started with IoT Suite by reading the following articles: