Domande frequenti sulla soluzione preconfigurata di connected factory di IoT SuiteFrequently asked questions for IoT Suite connected factory preconfigured solution

Vedere anche le domande frequenti generali su IoT Suite.See also, the general FAQ for IoT Suite.

Dove è possibile visualizzare il codice sorgente per la soluzione preconfigurata?Where can I find the source code for the preconfigured solution?

Il codice sorgente è archiviato nel repository di GitHub seguente:The source code is stored in the following GitHub repository:

Che cos'è OPC UA?What is OPC UA?

OPC Unified Architecture (UA), rilasciato nel 2008, è uno standard di interoperabilità indipendente dalla piattaforma e orientato ai servizi.OPC Unified Architecture (UA), released in 2008, is a platform-independent, service-oriented interoperability standard. OPC UA viene anche usato da svariati sistemi e dispositivi di settore, ad esempio PC, PLC e sensori.OPC UA is used by various industrial systems and devices such as industry PCs, PLCs, and sensors. OPC UA integra la funzionalità delle specifiche OPC Classic in un unico framework estendibile con sicurezza predefinita.OPC UA integrates the functionality of the OPC Classic specifications into one extensible framework with built-in security. È uno standard definito da OPC Foundation.It is a standard that is driven by the OPC Foundation. OPC Foundation è un'organizzazione no profit che conta più di 440 membri.The OPC Foundation is a not-for-profit organization with more than 440 members. L'obiettivo dell'organizzazione è di usare le specifiche OPC per realizzare un'interoperabilità sicura e affidabile multifornitore e multipiattaforma tramite:The goal of the organization is to use OPC specifications to facilitate multi-vendor, multi-platform, secure and reliable interoperability through:

  • InfrastrutturaInfrastructure
  • SpecificheSpecifications
  • TecnologiaTechnology
  • ProcessiProcesses

Perché Microsoft ha scelto OPC UA per la soluzione preconfigurata di connected factory?Why did Microsoft choose OPC UA for the connected factory preconfigured solution?

Microsoft ha scelto OPC UA perché è uno standard aperto, non proprietario, indipendente dalla piattaforma, riconosciuto nel settore e collaudato.Microsoft chose OPC UA because it is an open, non-proprietary, platform independent, industry-recognized, and proven standard. È un requisito per le soluzioni basate sull'architettura di riferimento Industrie 4.0 (RAMI4.0) che assicurano l'interoperabilità tra un'ampia serie di processi e attrezzature di produzione.It is a requirement for Industrie 4.0 (RAMI4.0) reference architecture solutions ensuring interoperability between a broad set of manufacturing processes and equipment. Microsoft assiste alla crescente richiesta da parte dei clienti di creare soluzioni conformi al piano Industria 4.0.Microsoft sees demand from its customers to build Industrie 4.0 solutions. Il supporto per OPC UA consente di agevolare i clienti nel raggiungimento degli obiettivi e offre immediatamente valore aggiunto.Support for OPC UA helps lower the barrier for customers to achieve their goals and provides immediate business value to them.

Come è possibile aggiungere un indirizzo IP pubblico alla macchina virtuale di simulazione?How do I add a public IP address to the simulation VM?

Sono disponibili due opzioni per aggiungere l'indirizzo IP:You have two options to add the IP address:

  • Usare lo script di PowerShell Simulation/Factory/Add-SimulationPublicIp.ps1 nel repository.Use the PowerShell script Simulation/Factory/Add-SimulationPublicIp.ps1 in the repository. Passare il nome della distribuzione come parametro.Pass in your deployment name as a parameter. Per una distribuzione locale, usare <your username>ConnFactoryLocal.For a local deployment, use <your username>ConnFactoryLocal. Lo visualizza l'indirizzo IP della VM.The script prints out the IP address of the VM.

  • Nel portale di Azure individuare il gruppo di risorse della distribuzione.In the Azure portal, locate the resource group of your deployment. Fatta eccezione per una distribuzione locale, il gruppo di risorse ha il nome specificato come nome della soluzione o della distribuzione.Except for a local deployment, the resource group has the name you specified as solution or deployment name. Per una distribuzione locale che usa lo script di compilazione, il nome del gruppo di risorse è <your username>ConnFactoryLocal.For a local deployment using the build script, the name of the resource group is <your username>ConnFactoryLocal. Aggiungere ora una nuova risorsa Indirizzo IP pubblico al gruppo di risorse.Now add a new Public IP address resource to the resource group.

Nota

In entrambi i casi, assicurarsi di installare le patch più recenti seguendo le istruzioni del sito Web Ubuntu.In either case, ensure you install the latest patches by following the instructions on the Ubuntu website. Mantenere l'installazione aggiornata finché la VM è accessibile tramite un indirizzo IP pubblico.Keep the installation up to date for as long as your VM is accessible through a public IP address.

Come è possibile rimuovere l'indirizzo IP pubblico alla macchina virtuale di simulazione?How do I remove the public IP address to the simulation VM?

Sono disponibili due opzioni per rimuovere l'indirizzo IP:You have two options to remove the IP address:

  • Usare lo script di PowerShell Simulation/Factory/Remove-SimulationPublicIp.ps1 del repository.Use the PowerShell script Simulation/Factory/Remove-SimulationPublicIp.ps1 of the repository. Passare il nome della distribuzione come parametro.Pass in your deployment name as a parameter. Per una distribuzione locale, usare <your username>ConnFactoryLocal.For a local deployment, use <your username>ConnFactoryLocal. Lo visualizza l'indirizzo IP della VM.The script prints out the IP address of the VM.

  • Nel portale di Azure individuare il gruppo di risorse della distribuzione.In the Azure portal, locate the resource group of your deployment. Fatta eccezione per una distribuzione locale, il gruppo di risorse ha il nome specificato come nome della soluzione o della distribuzione.Except for a local deployment, the resource group has the name you specified as solution or deployment name. Per una distribuzione locale che usa lo script di compilazione, il nome del gruppo di risorse è <your username>ConnFactoryLocal.For a local deployment using the build script, the name of the resource group is <your username>ConnFactoryLocal. Rimuovere ora la risorsa Indirizzo IP pubblico dal gruppo di risorse.Now remove the Public IP address resource from the resource group.

Come è possibile accedere alla VM di simulazione?How do I sign in to the simulation VM?

L'accesso alla VM di simulazione è supportato solo se la soluzione è stata distribuita usando lo script di PowerShell build.ps1 nel repository.Signing in to the simulation VM is only supported if you have deployed your solution using the PowerShell script build.ps1 in the repository.

Se la soluzione è stata distribuita da www.azureiotsuite.com, non è possibile accedere alla VMIf you deployed the solution from www.azureiotsuite.com, you cannot sign in to the VM. perché la password viene generata in modo casuale e non è possibile reimpostarla.You cannot sign in, because the password is generated randomly and you cannot reset it.

  1. Aggiungere un indirizzo IP pubblico alla VM.Add a public IP address to the VM. Vedere Come è possibile aggiungere un indirizzo IP pubblico alla macchina virtuale di simulazione?See How do I add a public IP address to the simulation VM?
  2. Creare una sessione SSH per la macchina virtuale usando l'indirizzo IP della macchina virtuale.Create an SSH session to your VM using the IP address of the VM.
  3. Il nome utente da usare è: docker.The username to use is: docker.
  4. La password da usare dipende dalla versione usata per la distribuzione:The password to use depends on the version you used to deploy:
    • Per le soluzioni distribuite usando lo script build.ps1 prima dell'1 giugno 2017, la password è: Passw0rd.For solutions deployed using the build.ps1 script before 1 June 2017, the password is: Passw0rd.
    • Per le soluzioni distribuite usando lo script build.ps1 dopo l'1 giugno 2017, è possibile trovare la password nel file <name of your deployment>.config.user.For solutions deployed using the build.ps1 script after 1 June 2017, you can find the password in the <name of your deployment>.config.user file. La password viene archiviata nell'impostazione VmAdminPassword.The password is stored in the VmAdminPassword setting. La password viene generata in modo casuale in fase di distribuzione a meno che non la si specifichi usando il parametro -VmAdminPassword dello script build.ps1The password is generated randomly at deployment time unless you specify it using the build.ps1 script parameter -VmAdminPassword

Come è possibile arrestare e avviare tutti i processi docker nella VM di simulazione?How do I stop and start all docker processes in the simulation VM?

  1. Accedere alla VM di simulazione.Sign in to the simulation VM. Vedere Come è possibile accedere alla VM di simulazione?See How do I sign in to the simulation VM?
  2. Per controllare quali sono i contenitori attivi, eseguire: docker ps.To check which containers are active, run: docker ps.
  3. Per arrestare tutti i contenitori della simulazione, eseguire: ./stopsimulation.To stop all simulation containers, run: ./stopsimulation.
  4. Per avviare tutti i contenitori della simulazione:To start all simulation containers:

    • Esportare una variabile della shell con il nome IOTHUB_CONNECTIONSTRING.Export a shell variable with the name IOTHUB_CONNECTIONSTRING. Usare il valore dell'impostazione IotHubOwnerConnectionString nel file <name of your deployment>.config.user.Use the value of the IotHubOwnerConnectionString setting in the <name of your deployment>.config.user file. Ad esempio: For example:

      export IOTHUB_CONNECTIONSTRING="HostName={yourdeployment}.azure-devices.net;SharedAccessKeyName=iothubowner;SharedAccessKey={your key}"
      
    • Eseguire ./startsimulation.Run ./startsimulation.

Come è possibile aggiornare la simulazione nella VM?How do I update the simulation in the VM?

Se sono state apportate modifiche alla simulazione, è possibile usare lo script di PowerShell build.ps1 nel repository eseguendo il comando updatedimulation.If you have made any changes to the simulation, you can use the PowerShell script build.ps1 in the repository using the updatedimulation command. Questo script compila tutti i componenti della simulazione, arresta la simulazione nella VM, li carica, li installa e li avvia.This script builds all the simulation components, stops the simulation in the VM, uploads, installs, and starts them.

Come è possibile trovare la stringa di connessione dell'hub IoT usato dalla soluzione?How do I find out the connection string of the IoT hub used by my solution?

Se la soluzione è stata distribuita con lo script build.ps1 nel repository, la stringa di connessione è il valore di IotHubOwnerConnectionString nel file <name of your deployment>.config.user.If you deployed your solution with the build.ps1 script in the repository, the connection string is the value of IotHubOwnerConnectionString in the <name of your deployment>.config.user file.

Per trovare la stringa di connessione, è anche possibile usare il portale di Azure.You can also find the connection string using the Azure portal. Nella risorsa Hub IoT del gruppo di risorse della distribuzione individuare le impostazioni della stringa di connessione.In the IoT Hub resource in the resource group of your deployment, locate the connection string settings.

Quali dispositivi dell'hub IoT usa la simulazione di connected factory?Which IoT Hub devices does the Connected factory simulation use?

La simulazione registra automaticamente i dispositivi seguenti:The simulation self registers the following devices:

  • proxy.beijing.corp.contosoproxy.beijing.corp.contoso
  • proxy.capetown.corp.contosoproxy.capetown.corp.contoso
  • proxy.mumbai.corp.contosoproxy.mumbai.corp.contoso
  • proxy.munich0.corp.contosoproxy.munich0.corp.contoso
  • proxy.rio.corp.contosoproxy.rio.corp.contoso
  • proxy.seattle.corp.contosoproxy.seattle.corp.contoso
  • publisher.beijing.corp.contosopublisher.beijing.corp.contoso
  • publisher.capetown.corp.contosopublisher.capetown.corp.contoso
  • publisher.mumbai.corp.contosopublisher.mumbai.corp.contoso
  • publisher.munich0.corp.contosopublisher.munich0.corp.contoso
  • publisher.rio.corp.contosopublisher.rio.corp.contoso
  • publisher.seattle.corp.contosopublisher.seattle.corp.contoso

Con lo strumento Device Explorer o con l'estensione IoT dell'interfaccia della riga di comando di Azure 2.0 è possibile controllare quali dispositivi sono registrati nell'hub IoT usato dalla soluzione.Using the DeviceExplorer or the IoT extension for Azure CLI 2.0 tool, you can check which devices are registered with the IoT hub your solution is using. Per usare Device Explorer, è necessaria la stringa di connessione per l'hub IoT della distribuzione.To use device explorer, you need the connection string for the IoT hub in your deployment. Per usare l'estensione IoT dell'interfaccia della riga di comando di Azure 2.0, è necessario il nome dell'hub IoT.To use the IoT extension for Azure CLI 2.0, you need your IoT Hub name.

Come è possibile ottenere i dati dei log dai componenti della simulazione?How can I get log data from the simulation components?

Tutti i componenti della simulazione registrano informazioni nei file di log,All components in the simulation log information in to log files. disponibili nella cartella home/docker/Logs della VM.These files can be found in the VM in the folder home/docker/Logs. Per recuperare i log, è possibile usare lo script di PowerShell Simulation/Factory/Get-SimulationLogs.ps1 nel repository.To retrieve the logs, you can use the PowerShell script Simulation/Factory/Get-SimulationLogs.ps1 in the repository.

È necessario che questo script acceda alla VM.This script needs to sign in to the VM. Potrebbe essere necessario specificare le credenziali per l'accesso.You may need to provide credentials for the sign-in. Vedere Come è possibile accedere alla VM di simulazione? per trovare le credenziali.See How do I sign in to the simulation VM? to find the credentials.

Lo script aggiunge/rimuove un indirizzo IP pubblico nella VM, se non ne è già presente uno che viene rimosso.The script adds/removes a public IP address to the VM, if it does not yet have one and removes it. Lo script inserisce tutti i file di log in un archivio che scarica nella workstation di sviluppo.The script puts all log files in an archive and downloads the archive to your development workstation.

In alternativa, accedere alla VM tramite SSH ed esaminare i file di log in fase di esecuzione.Alternatively log in to the VM via SSH and inspect the log files at runtime.

Come è possibile controllare se la simulazione sta inviando dati al cloud?How can I check if the simulation is sending data to the cloud?

Con lo strumento DeviceExplorer o iothub-explorer, è possibile controllare i dati inviati all'hub IoT da determinati dispositivi.With the DeviceExplorer or the iothub-explorer tool, you can inspect the data sent to IoT Hub from certain devices. Per usare questi strumenti, è necessario conoscere la stringa di connessione per l'hub IoT della distribuzione.To use these tools, you need to know the connection string for the IoT hub in your deployment. Vedere Come è possibile trovare la stringa di connessione dell'hub IoT usato dalla soluzione?See How do I find out the connection string of the IoT hub used by my solution?

Esaminare i dati inviati da uno dei dispositivi di pubblicazione:Inspect the data sent by one of the publisher devices:

  • publisher.beijing.corp.contosopublisher.beijing.corp.contoso
  • publisher.capetown.corp.contosopublisher.capetown.corp.contoso
  • publisher.mumbai.corp.contosopublisher.mumbai.corp.contoso
  • publisher.munich0.corp.contosopublisher.munich0.corp.contoso
  • publisher.rio.corp.contosopublisher.rio.corp.contoso
  • publisher.seattle.corp.contosopublisher.seattle.corp.contoso

Se non vengono visualizzati dati inviati all'hub IoT, si è verificato un problema con la simulazione.If you see no data sent to IoT Hub, then there is an issue with the simulation. Come primo passaggio è consigliabile analizzare i file di log dei componenti della simulazione.As a first analysis step you should analyze the log files of the simulation components. Vedere Come è possibile ottenere i dati dei log dai componenti della simulazione?See How can I get log data from the simulation components? Provare quindi ad arrestare e avviare la simulazione e, se non sono ancora presenti dati inviati, aggiornare la simulazione completamente.Next, try to stop and start the simulation and if there's still no data sent, update the simulation completely. Vedere Come è possibile aggiornare la simulazione nella VM?See How do I update the simulation in the VM?

Come è possibile abilitare una mappa interattiva nella soluzione di fabbrica connessa?How do I enable an interactive map in my Connected factory solution?

Per abilitare una mappa interattiva nella soluzione di fabbrica connessa, è necessario avere un piano API di Bing Maps per aziende esistente.To enable an interactive map in your Connected factory solution, you must have an existing Bing Maps API for Enterprise plan.

Durante la distribuzione da www.azureiotsuite.com, il processo verifica che la sottoscrizione includa un piano API di Bing Maps per aziende abilitato e distribuisce automaticamente una mappa interattiva nella soluzione di fabbrica connessa.When deploying from www.azureiotsuite.com, the deployment process verifies that your subscription has an enabled Bing Maps API for Enterprise plan and automatically deploys an interactive map into Connected factory. In caso contrario, è possibile comunque abilitare una mappa interattiva nella distribuzione seguendo questa procedura:If this is not the case, you can still enable an interactive map in your deployment as follows:

Quando si esegue la distribuzione usando lo script build.ps1 disponibile nel repository GitHub della soluzione di fabbrica connessa e si dispone di un piano API di Bing Maps per aziende, impostare la variabile di ambiente $env:MapApiQueryKey nella finestra di compilazione sulla chiave di query del piano.When you deploy using the build.ps1 script in the Connected factory GitHub repository and you have a Bing Maps API for Enterprise plan, set the environment variable $env:MapApiQueryKey in the build window to the query key of your plan. La mappa interattiva viene quindi abilitata automaticamente.The interactive map is then enabled automatically.

Se non si dispone di un piano API di Bing Maps per aziende, distribuire la soluzione di fabbrica connessa da www.azureiotsuite.com o usando lo script build.ps1.If you don't have a Bing Maps API for Enterprise plan, deploy the Connected factory solution from www.azureiotsuite.com or using the build.ps1 script. Aggiungere quindi un piano API di Bing Maps per aziende alla sottoscrizione, come illustrato nella sezione Come è possibile creare un account API di Bing Maps per aziende?.Then add a Bing Maps API for Enterprise plan to your subscription as explained in How do I create a Bing Maps API for Enterprise account?. Cercare la chiave di query di questo account come illustrato nella sezione Come è possibile ottenere la chiave di query dell'API di Bing Maps per aziende? e salvarla.Look up the query key of this account as explained in How to obtain your Bing Maps API for Enterprise QueryKey and save this key. Passare al portale di Azure e accedere alla risorsa Servizio app nella distribuzione della soluzione di fabbrica connessa.Navigate to the Azure portal and access the App Service resource in your Connected factory deployment. Passare a Impostazioni dell'applicazione, in cui si trova una sezione Impostazioni app.Navigate to Application settings, where you find a section App settings. Impostare MapApiQueryKey sulla chiave di query ottenuta.Set the MapApiQueryKey to the query key you obtained. Salvare le impostazioni e quindi passare a Panoramica e riavviare il servizio app.Save the settings and then navigate to Overview and restart the App Service.

Come è possibile creare un account API di Bing Maps per aziende?How do I create a Bing Maps API for Enterprise account

È possibile ottenere una piano API di Bing Maps per aziende - Transazioni interne Livello 1 gratuito.You can get a free Internal Transactions Level 1 Bing Maps for Enterprise plan. È tuttavia possibile aggiungere solo due piani di questo tipo in una sottoscrizione di Azure.However, you can only add two of these plans to an Azure subscription. Se non si dispone di un account API di Bing Maps per aziende, crearne uno nel portale di Azure facendo clic su + Crea una risorsa.If you don't have a Bing Maps API for Enterprise account, create one in the Azure portal by clicking + Create a resource. Cercare quindi API di Bing Maps per aziende e seguire le istruzioni per creare l'account.Then search for Bing Maps API for Enterprise and follow the prompts to create it.

Chiave di Bing

Come è possibile ottenere la chiave di query di API di Bing Maps per aziende?How to obtain your Bing Maps API for Enterprise QueryKey

Dopo aver creato il piano API di Bing Maps per aziende, aggiungere una risorsa API di Bing Maps per aziende al gruppo di risorse della soluzione di fabbrica connessa nel portale di Azure.Once you have created your Bing Maps API for Enterprise plan, add a Bing Maps for Enterprise resource to the resource group of your Connected factory solution in the Azure portal.

  1. Nel portale di Azure passare al gruppo di risorse contenente il piano API di Bing Maps per aziende.In the Azure portal, navigate to the resource group that contains your Bing Maps API for Enterprise plan.

  2. Fare clic su All Settings (Tutte le impostazioni) e quindi su Key Management (Gestione chiavi).Click All Settings, then Key Management.

  3. Sono disponibili due chiavi: MasterKey e QueryKey.There are two keys: MasterKey and QueryKey. Copiare il valore QueryKey.Copy the QueryKey value.

  4. Per consentire allo script build.ps1 di prelevare la chiave, impostare la variabile di ambiente $env:MapApiQueryKey dell'ambiente PowerShell sul valore QueryKey del piano.To have the key picked up by the build.ps1 script, set the environment variable $env:MapApiQueryKey in your PowerShell environment to the QueryKey of your plan. Lo script di compilazione aggiunge quindi automaticamente il valore alle impostazioni del servizio app.The build script then automatically adds the value to the settings of the App Service.

  5. Eseguire una distribuzione locale o cloud usando lo script build.ps1.Run a local or cloud deployment using the build.ps1 script.

Come è possibile abilitare la mappa interattiva durante il debug in locale?How do enable the interactive map while debugging locally?

Per abilitare la mappa interattiva durante il debug in locale, impostare il valore di MapApiQueryKey nei file local.user.config e <yourdeploymentname>.user.config della radice della distribuzione sul valore di QueryKey copiato in precedenza.To enable the interactive map while you are debugging locally, set the value of the setting MapApiQueryKey in the files local.user.config and <yourdeploymentname>.user.config in the root of your deployment to the value of the QueryKey you copied previously.

Come è possibile impostare un'immagine diversa nella home page del dashboard?How do I use a different image at the home page of my dashboard?

Per cambiare l'immagine statica visualizzata nella home page del dashboard, sostituire l'immagine WebApp\Content\img\world.jpgTo change the static image shown io the home page of the dashboard, replace the image WebApp\Content\img\world.jpg. e quindi ricompilare e ridistribuire l'app Web.Then rebuild and redeploy the WebApp.

Come è possibile usare dispositivi non OPC UA con la soluzione di fabbrica connessa?How do I use non OPC UA devices with Connected factory?

Per inviare dati di telemetria da dispositivi non OPC UA alla soluzione di fabbrica connessa:To send telemetry data from non OPC UA devices to Connected factory:

  1. Configurare una nuova stazione nella topologia di fabbrica connessa nel file ContosoTopologyDescription.json.Configure a new station in the Connected factory topology in the ContosoTopologyDescription.json file.

  2. Inserire i dati di telemetria in formato JSON compatibile con la soluzione di fabbrica connessa:Ingest the telemetry data in Connected factory compatible JSON format:

    [
      {
        "ApplicationUri": "<the_value_of_OpcUri_of_your_station",
        "DisplayName": "<name_of_the_datapoint>",
        "NodeId": "value_of_NodeId_of_your_datapoint_in_the_station",
        "Value": {
          "Value": <datapoint_value>,
          "SourceTimestamp": "<timestamp>"
        }
      }
    ]
    
  3. Il formato di <timestamp> è: 2017-12-08T19:24:51.886753ZThe format of <timestamp> is: 2017-12-08T19:24:51.886753Z

  4. Riavviare il servizio app della soluzione di fabbrica connessa.Restart the Connected factory App Service.

Passaggi successiviNext steps

È anche possibile esplorare alcune altre funzionalità delle soluzioni preconfigurate di IoT Suite:You can also explore some of the other features and capabilities of the IoT Suite preconfigured solutions: