Configurazioni e integrazioni avanzate > Connessione degli asset a Edge MicroServer (EMS)
Connessione degli asset a Edge MicroServer (EMS)
Edge MicroServer (EMS) è un'applicazione indipendente che viene installata in un dispositivo remoto e stabilisce comunicazioni bidirezionali sempre attive tra il dispositivo e un host ThingWorx.
La presente sezione illustra come connettere le proprietà degli asset in ThingWorx a un dispositivo mediante Edge MicroServer (EMS) e la risorsa script Lua inclusa con EMS.
Per informazioni sulla connessione delle proprietà degli asset mediante Edge SDK, fare riferimento al ThingWorx Edge Java SDK Help Center.
Prerequisiti
Assicurarsi di disporre di quanto riportato di seguito.
Edge MicroServer (EMS) e la risorsa script Lua inclusa.
ThingWorx Composer 8.2.0 o versione superiore con ThingWorx Apps installato.
ThingWorx WebSocket-based Edge MicroServer (WS EMS) and Lua Script Resource (LSR) Help Center. Queste istruzioni presuppongono che si conosca il contenuto dell'Help Center.
Configurazione di ThingWorx
1. In ThingWorx Composer creare una chiave di accesso da utilizzare in EMS.
a. In Protezione > Chiavi di accesso fare clic su Nuova.
b. Immettere i valori appropriati.
Nome - Questo valore è necessario per la configurazione di EMS.
Riferimento nome utente - Selezionare un utente che deve utilizzare EMS, ad esempio, Amministratore.
Data di scadenza - Impostare una data di scadenza appropriata per la chiave di accesso, in base alle regole aziendali. Se questo campo viene lasciato vuoto, il valore di default è un giorno.
c. Fare clic su Salva.
2. Creare in ThingWorx l'asset (oggetto) a cui si desidera connettere dispositivi remoti. Utilizzare uno dei modelli di oggetto di base elencati di seguito oppure un modello di oggetto che implementi uno di essi.
RemoteThing
RemoteThingWithFileTransfer
RemoteThingWithTunnels
RemoteThingWithTunnelsAndFileTransfer
PTC.ISA95.PhysicalAssetBaseThingTemplate
Indipendentemente dal modello di oggetto di base utilizzato, l'asset deve implementare la thing shape RemoteAccessible.
Come best practice, implementare le thing shape nei modelli di oggetto piuttosto che nei singoli asset.
Configurazione di EMS
1. Scaricare e installare EMS, seguendo le istruzioni riportate in ThingWorx WebSocket-based Edge MicroServer (WS EMS) and Lua Script Resource (LSR) Help Center.
2. Passare al file <posizione installazione EMS>/microserver/etc/config.json.
3. Modificare il file config.json in modo che host, port e appKey specifichino tutti come destinazione il sistema ThingWorx. È possibile utilizzare l'esempio riportato di seguito oppure il file config.json.minimal.
{
"ws_servers": [{
"host": "localhost",
"port": 8080
}],
"appKey": "84fbd93b-1ca5-4057-be39-5a2b3bd1cf9e",
"ws_connection":{
"encryption":"none"
"http_server" : {
"host": "10.232.247.58",
"port": 8000,
"ssl" : false,
"certificate": "<percorso assoluto file certificato>",
"private_key": "<percorso assoluto chiave privata>",
"passphrase": "password"
"authenticate": false,
"user": "johnsmith",
"password": "DP:AQABAKs1GFoUEW1XfDlwab4J4huKthm9GP3seM3PEjOMVoyFD3es2ZDtN2ngA99oLkcODQ",
"content_read_timeout": 20000,
"ports_to_try": 10,
"max_clients": 15,
"enable_csrf_tokens": true,
"csrf_token_rotation_period": 10
},

"logger":{
"level":"WARN",
"publish_directory":"<percorso assoluto \MicroServer\edge\logs>",
"publish_level":"INFO",
"max_file_storage":2000000,
"auto_flush":true
},

"certificates":{
"validate":false,
"allow_self_signed":true
},
"file":{
"buffer_size":32400,
"virtual_dirs":[{
"in":"<percorso assoluto \MicroServer\edge\in>"
}, {
"out":"<percorso assoluto \MicroServer\edge\out>"
},{
"staging":"<percorso assoluto \MicroServer\edge\staging>"
}],
"staging_dir":"staging"
}
}
4. Salvare il file config.json modificato.
5. Eseguire il file <posizione installazione EMS>/microserver/wsems.exe come opzione oppure installarlo come servizio.
Configurazione della risorsa script Lua
1. Individuare il file config.lua.example nella directory <posizione installazione EMS>/microserver/etc.
2. All'interno del file individuare la sezione Connection parameters e modificarla in base alle impostazioni di EMS in uso. Ad esempio:
--
-- Connection parameters
--
scripts.rap_host = "EMS IP Address"
scripts.rap_port = "EMS Port"
scripts.rap_ssl = true
scripts.rap_userid = "EMS HTTP Server User ID"
scripts.rap_password = "password"
scripts.rap_server_authenticate = true
scripts.rap_cert_file = "Path to CA cert file."
scripts.rap_deny_selfsigned = true
scripts.rap_validate = true
3. Individuare la sezione HTTP Server Configuration e configurarla per la risorsa script Lua. Ad esempio:
--
-- HTTP Server Configuration
--
scripts.script_resource_host = "localhost"
scripts.script_resource_port = "8001"
scripts.script_resource_ssl = "false"
scripts.script_resource_certificate_chain = "/path/to/lsr_http_server_certificate_chain/file"
scripts.script_resource_private_key = "/path/to/private/key"
scripts.script_resource_passphrase = "password"
scripts.script_resource_authenticate = "false"
scripts.script_resource_userid = "johnsmith"
scripts.script_resource_password = "AES:EncryptedPassword"
scripts.script_resource_enable_csrf_tokens = true
scripts.script_resource_csrf_token_rotation_period = 10
scripts.script_resource_enable_rest_services = false
4. Identificare l'asset a cui si desidera associare le proprietà. Trovare la sezione riportata di seguito nel file config.lua.example.
scripts.EdgeThing = {
file = "thing.lua",
template = "example",
}
Sostituire EdgeThing con il valore effettivo del Nome dell'asset in ThingWorx.
In alternativa, è possibile specificare qui la proprietà identifier affinché lo script Lua, eseguito più avanti nel processo, crei un identificatore in ThingWorx selezionabile come Identificatore nella pagina Informazioni generali per l'asset in ThingWorx Composer.
* 
Un oggetto remoto può essere associato in base al nome o all'identificatore, ma non in base a entrambi. Quando un oggetto remoto associato in base al nome ha anche un identificatore, l'esecuzione di servizi remoti o il recupero di proprietà remote per l'oggetto non funziona come previsto.
Per associare un oggetto remoto in base al nome, non specificare un identificatore. Se un identificatore è già specificato, rimuoverlo.
La proprietà template rappresenta lo script che identifica le informazioni che si desidera inviare dal dispositivo all'asset, quali proprietà remote o servizi remoti. Nell'esempio di codice precedente, il file example riportato si trova in <posizione installazione EMS>/microserver/etc/custom/templates/example.lua. I file example.lua contengono esempi per la creazione di proprietà e servizi remoti personalizzati.
Esecuzione di EMS e della risorsa script Lua
Dopo aver completato le configurazioni, eseguire EMS come servizio oppure dalla riga di comando, quindi eseguire la risorsa script Lua come servizio o dalla riga di comando. Le immagini riportate di seguito mostrano esempi dell'esecuzione di entrambi dalla riga di comando.
EMS:
Script Lua:
Se nella configurazione è presente un errore, viene segnalato dalla riga di comando.
Associazione di proprietà remote
Al termine dell'esecuzione della risorsa script Lua, le proprietà remote definite nello script specificato come template sono disponibili per l'associazione all'asset in ThingWorx.
1. In ThingWorx Composer aprire l'asset.
2. Nella pagina Proprietà e avvisi fare clic su Gestisci associazioni.
3. Nella finestra Gestisci associazioni fare clic su Remoto. Trascinare le proprietà remote che si desidera associare all'asset dal riquadro di sinistra a quello di destra.
4. Fare clic su Fine.
5. Fare clic su Salva per salvare l'asset.