Elevate Installation
About Elevate
Elevate retrieves data from PI and uploads it to the Azure cloud. Some Elevate components are in the cloud and some run on a VM (or a real on-prem computer). This article provides instruction only for the computer-based components which are installed via a single install executable file.
The install file includes nine components:
- Configuration Console client creates devices and configuration for services in an Elevate instance. Also migrates configuration from older versions.
- Model Reader fetches an asset model from PI, transforms it into something Fusion can understand, and uploads it into Fusion (via a storage account). This happens on a scheduled basis so that any changes to the asset model in PI are automatically reflected in Fusion. Tags are saved to a file that is read by Tags Service.
- Geo SCADA Collector uploads real-time and historical data from Geo SCADA servers into ADX. Short requests are uploaded via Store and Forward (IoT hub); long requests are uploaded as parquet files to a storage account.
- PI Collector uploads historical time series data from PI into ADX. Short requests are uploaded via Store and Forward (IoT hub); long requests are uploaded as parquet files to a storage account.
- PI Data Pipe Collector uploads real-time series data from PI into ADX via Store and Forward (IoT hub).
- PI Event Frames Collector uploads event frame data from PI into ADX via Store and Forward (IoT hub).
- PI Outage Handler fills in any gaps in real-time data that may have been created by an outage of some kind.
- Store and Forward uploads data (received from a collector) to an IoT hub. If the IoT hub is unavailable or unable to handle the current data flow rate, Store and Forward will store the data until it can be uploaded.
- Upload Service uploads files (received from a collector or Model Reader) to an IoT hub. The files are then routed to a storage account for ingestion by ADX.
Software Prerequisites
- .NET Framework 4.8
- .NET 6.0
- For PI: PI client software, e.g. PI system explorer; must be PI 2018 (2.10.8) or later
- For Geo SCADA: DLLs from Geo SCADA Expert 2020
Prerequisites
- A service account that will run the services, and, if applicable, has read access to PI.
- 450 GB of free hard-drive space (though the exact amount will vary depending on the number of tags and the duration of high event rate cycles)
- Fusion has been deployed to Azure (probably via Terraform with the deploymentType set to "Elevate", and tagControllerCount and duplicatorCount both set to 1).
Instructions
Installing Elevate involves first installing the application files (by running Elevate installer), followed by installing and configuring an instance of the Elevate services.
Install Elevate files
- Copy the Elevate install (Elevate.exe) from the nwmfusion storage account to the machine on which it will be installed.
- If upgrading from version 2.5, stop the Elevate services and uninstall Elevate.
- If upgrading from version 3.0:
- Open a command prompt as administrator
- Go to the Elevate\Configuration directory in Program Files
- Run
Configuration.Console.exe uninstall -service TagsService
- If upgrading from version 3.1, proceed to the next step.
- Double-click Elevate.exe.
- Accept the license agreement and click Install.
- In rare circumstances, the
grpc.core.api.dllis not installed. To verify that it is installed:
- Navigate to the Elevate install folder (e.g., C:\Program Files\Elevate).
- Search for
grpc.core.api.dll. - Verify that each sub-folder, except Configuration, contains the dll file (i.e., there should be nine copies of the dll).
- If a copy is missing, try re-running the Elevate installer and selecting the Repair option, or uninstall and re-install, or copy the dll to the missing locations, ensuring that the correct version of the dll is used.
Install a new instance of Elevate
Running the Configuration Console requires a user that has the right to create new devices in the IoT hub, send data to the IoT hub, and modify configuration of existing devices in the IoT hub.
- Open a command prompt as administrator and go to the Elevate\Configuration directory in Program Files.
- Run
Configuration.Console.exe add -host <IoT hub name or hostname>(see Configuration Console authentication)
- For example:
Configuration.Console.exe add -host iot-fusion-acme-prod -browser -tenantId 12345678-1234-1234-1234-123456789abc
Note that in the above example, "-browser" forces Azure authentication through the default web browser
This command creates multiple IoT hub devices, each beginning with “Elevate”. To use a different name, specify -deviceroot <name>. When configuring multiple Elevate instances to push data into a single IoT hub, each instance must use a unique deviceroot.
- For PI, run
Configuration.Console.exe install -user <service user> -password <service user password> -start -service ModelReader,StoreAndForward,PICollector,PipesCollector,PIOutageHandler,EventFramesCollector,UploadService
- For example:
Configuration.Console.exe install -user .\elevateserv -password abc -browser -tenantId 12345678-1234-1234-1234-123456789abc -start -service Model,Store,PICol,PipesCol,PIOut,EventFramesCol,Upload
Note that in the above example, "-browser" forces Azure authentication through the default web browser
Note that if any services fail to start, try starting them from Windows Services or run Configuration.Console.exe start repeatedly
-
For Geo SCADA, run
Configuration.Console.exe install -user <service user> -password <service user password> -start -service ModelReader,StoreAndForward,GeoSCADACollector,UploadService -
Navigate to the storage account, configuration container, and edit the configuration.json blob (see Cloud Configuration). At a minimum, fill in PIServers, PIAFServers, and/or GeoScadaServers and save the blob. For example:
"PIServers": [
{
"Server": "hostname, IP address, or GUID",
"Alias": "PI1"
}
],
"PIAFServers": [
{
"Server": "hostname or IP address",
"PIServer": "hostname, IP address, or GUID of the PI archive server (the same as a PIServers[].Server)"
}
],
"GeoScadaServers": [
{
"Server": "hostname or IP address",
"Alias": "GEO1",
"Username": "user1",
"Password": "password1",
"Roots": [ "$Root" ]
}
],
For more information and configuration options, see Historian Configuration.