Historian Data Collector Installation
Installing Historian Data Collectors
You can install the data collectors using the Historian product DVD. Observe the following guidelines when you install Historian Data Collectors:
- You can install only one each of the iFIX, Machine Edition View, OSI PI, Alarm and Event, File, Calculation, Server-to-Server, or Simulation Collectors on a given computer.
- You can install multiple OPC Collectors on a single computer, one for each OPC Server that is installed on the machine.
- Expect an increased processing load if your data source uses iFIX networking.Note: iFIX networking does not provide buffering for data from a remote iFIX node. It is recommended that you install a data collector on each iFIX SCADA node to collect data from that iFIX node. This is both faster and more robust.
Installing Historian data collectors:
- Select Predix Cloud as the destination for the collector to configure bimodal/cloud capable collector.
- The Cloud Information and Configuration screen appears when you select Predix Cloud. All the information provided in this screen will be saved to HISTORIANNODENAME registry for the collector. It is not recommended to manually update this key post install, as certain fields are auto generated during install and cannot be updated once the install is complete. For information about the fields on this screen, refer to Cloud Information and Configuration Fields. See Reconfigure Cloud Information and Configuration for updating the cloud information after the install.
- The Datapoint Attributes screen appears. The use of datapoint attributes is optional. This can be useful in sending additional metadata to the Predix Time Series. Note: If you want to use Datapoint attributes, more information is available on the Predix website, https://www.predix.io/docs - Services > Data Management Services > TimeSeries.If you do not want to set the data point attributes, skip this screen and click Next.
- The Do you want to use an offline configuration? screen appears.
- If you want to install cloud collector using offline configuration, select Offline Configuration. To know more information about Offline Configuration, refer to Offline Configuration for Collectors.
Or
- If you want to install the cloud collector using historian configuration, select Historian Configuration. For this you must provide the machine address where Historian Server or Historian client tools (Historian Administrator) are installed in order to browse and configure tags.
- Click Next and proceed with further installation.
- If you want to install cloud collector using offline configuration, select Offline Configuration. To know more information about Offline Configuration, refer to Offline Configuration for Collectors.
Silent install of Cloud Collectors
For Silent install of Cloud Collectors, see section: Installing a Collector Silently using the Command Line.
Upgrading cloud collector
Upgrading a cloud collector follows the same steps as upgrading the corresponding Historian Data Collector.
Cloud Information Configuration Fields
The following describes the fields on the Cloud Information and Configuration screen.
Field | Description | Contact |
---|---|---|
Cloud Destination Address | The URL of a data streaming endpoint exposed by the Predix Time Series instance to which the data should go. Typically, it starts with wss://. | Your Predix Time Series administrator can provide this URL. |
Identity Issuer | The URL of an authentication endpoint for the collector to authenticate itself and acquire necessary credentials to stream to the Predix Time Series. Typically, it starts with https:// and ends with /oauth/token. | Your Predix Time Series administrator can provide this URL. |
Client ID | This field identifies the collector when interacting with the Predix Time Series. This is equivalent to the User name in many authentication schemes. The client must exist in the UAA identified by the Identity Issuer, and the system requires that the timeseries.zones. {ZoneId}.ingest and timeseries.zones.{ZoneId}.query authorities are granted to the client for the Predix Zone ID specified. | Your Predix Time Series administrator can provide this information. |
Client Secret | This field stores the secret to authenticate the collector. This is equivalent to Password in many authentication schemes. | Your Predix Time Series administrator can provide this information. |
Zone ID | Because the Predix system hosts many instances of the Time Series service, the Zone ID uniquely identifies the one instance to which the collector will stream data. | Your Predix Time Series administrator can provide this information. |
Proxy | If the collector is running on a network where proxy servers are used to access web resources outside of the network, then proxy server settings must be provided. This field identifies the URL of the proxy server to be used for both the authentication process and for streaming data. However, it does not affect the proxy server used by Windows when establishing secure connections. As a result, you should still properly configure the proxy settings for the Windows user account under which the collector service runs. | Your local IT administrator can provide the proxy server information. |
Offline Configuration for Collectors
Offline Configuration helps you to define the configuration properties of a collector (Taglist, Tag properties, and collector interface properties) in XML format. This feature is particularly useful when collectors connect to the Predix Cloud.
When collectors connect to both Historian server and cloud, the Historian Web Admin Console (VB admin or Historian Web admin) provides you the opportunity to add tags, set tag configuration properties, and collector interface properties.
However, when collectors connect to the Predix Cloud, there is no admin console available. Therefore, to add and configure tags when the collector connects to the cloud, you need to use offline configuration.
The path to the Offline Tag ConfigurationFile is provided in the collector registry as: OfflineTagConfigurationFile (Data Type: String). This key contains the path to offline configuration file. For Server to Server Collector the default value is: C:\Program Files (x86)\GE Digital\Historian Server to Server Collector\Config\S2S_Offline_Config.xml
The following tag properties are required for Cloud collector tags:
Mandatory properties for non-historical collector (PI to Cloud, OPCUA to Cloud etc)
Tagname, DataType and Source Address
Mandatory properties for historical collector (Server to Cloud)
Tagname, DataType, Source Address and CalculationDependency
All other properties are not mandatory.
Configuring Collector and Tag Properties
It is recommended that you add the Collector property section above the Tag property section in your configuration XML file.
To enable offline configuration:
Collector Interface Properties
<Import>
<Collectors>
<Collector Name="<Collector Name>">
<InterfaceType>ServerToServer</InterfaceType>
<InterfaceGeneral1>10</InterfaceGeneral1>
......
</Collector>
</Collectors>
</Import>
where <Collector Name> is the collector name found in the ServerToServerCollector.shw file.
You can configure the following properties:
Property Name | Possible Values | Example |
---|---|---|
InterfaceType | ServerToServer, PI, Custom | <InterfaceType>ServerToServer</InterfaceType> |
DefaultTagPrefix | Any tag prefix name | <DefaultTagPrefix>OfflineCloud</DefaultTagPrefix> |
CanBrowseSource | Yes, No | <CanBrowseSource>Yes</CanBrowseSource> |
CanSourceTimestamp | Yes, No | <CanSourceTimestamp>Yes</CanSourceTimestamp> |
MinimumDiskFreeBufferSize | Size in MB | <MinimumDiskFreeBufferSize>150</MinimumDiskFreeBufferSize> |
MaximumMemoryBufferSize | Size in MB | <MaximumMemoryBufferSize>200</MaximumMemoryBufferSize> |
ShouldAdjustTime | Yes, No | <ShouldAdjustTime>Yes</ShouldAdjustTime> |
ShouldQueueWrites | Yes, No | <ShouldQueueWrites>No</ShouldQueueWrites> |
SourceTimeInLocalTime | Yes, No | <SourceTimeInLocalTime>No</SourceTimeInLocalTime> |
CollectionDelay | Time in seconds | <CollectionDelay>2</CollectionDelay> |
DefaultCollectionInterval | Time in milliseconds | <DefaultCollectionInterval>1000</DefaultCollectionInterval> |
DefaultCollectionType | Polled, Unsolicited | <DefaultCollectionType>Unsolicited</DefaultCollectionType> |
DefaultTimeStampType | Source, Collector | <DefaultTimeStampType>Source</DefaultTimeStampType> |
DefaultLoadBalancing | Yes, No | <DefaultLoadBalancing>No</DefaultLoadBalancing> |
DefaultCollectorCompression | Yes, No | <DefaultCollectorCompression>No</DefaultCollectorCompression> |
DefaultCollectorCompressionDeadband | Double type value | <DefaultCollectorCompressionDeadband>0.00000</DefaultCollectorCompressionDeadband> |
DisableOnTheFlyTagChange | Yes, No | <DisableOnTheFlyTagChange>No</DisableOnTheFlyTagChange> |
DefaultCollectorCompressionTimeout | Time in milliseconds | <DefaultCollectorCompressionTimeout>0</DefaultCollectorCompressionTimeout> |
DefaultSpikeLogic | Yes, No | <DefaultSpikeLogic>Yes</DefaultSpikeLogic> |
DefaultSpikeMultiplier | Any numeric value | <DefaultSpikeMultiplier>4</DefaultSpikeMultiplier> |
DefaultSpikeInterval | Any numeric value | <DefaultSpikeInterval>5</DefaultSpikeInterval> |
DataRecoveryQueueEnabled | Yes, No | <DataRecoveryQueueEnabled>No</DataRecoveryQueueEnabled> |
DefaultAbsoluteDeadbanding | Yes, No | <DefaultAbsoluteDeadbanding></DefaultAbsoluteDeadbanding> |
DefaultAbsoluteDeadband | Double type value | <DefaultAbsoluteDeadband>0.00000</DefaultAbsoluteDeadband> |
RedundancyEnabled | Yes, No | <RedundancyEnabled>No</RedundancyEnabled> |
RedundancyPrincipalCollector | <RedundancyPrincipalCollector></RedundancyPrincipalCollector> |
|
RedundancyIsActiveCollector | Yes, No | <RedundancyIsActiveCollector>No</RedundancyIsActiveCollector> |
InterfaceGeneral1 | Customized for each collector | <InterfaceGeneral1>10</InterfaceGeneral1> |
InterfaceGeneral2 | Customized for each collector | <InterfaceGeneral2>4</InterfaceGeneral2> |
InterfaceGeneral3 | Customized for each collector | <InterfaceGeneral3>3.188.87.41</InterfaceGeneral3> |
InterfaceGeneral4 | Customized for each collector | <InterfaceGeneral4></InterfaceGeneral4> |
InterfaceGeneral5 | Customized for each collector | <InterfaceGeneral5></InterfaceGeneral5> |
Tag List and Tag Properties
The format of Source Address for the Server to Cloud Collector is typically of format: Result = CurrentValue("SJC1GEIP05.Simulation00002"). For other collectors the format of the source address should be the value expected by the source server, for example, OPC and PI Collector tags typically use the Tag source item id for the SourceAddress.
Server to Cloud Tag Example:
<Tag>
<Tagname>simCollector2</Tagname>
<SourceAddress>Result = CurrentValue("SJC1GEIP05.Simulation00002")</SourceAddress>
...
</Tag>
OPC Collector Tag Example:
<Tag>
<Tagname>simCollector2</Tagname>
<SourceAddress>Channel1.Device1.Tag1</SourceAddress>
...
</Tag>
Property Name | Possible Values | Example |
---|---|---|
Tagname | Any name | <Tagname>simTag1</Tagname> |
Description | Description of tag | <Description>simTag1</Description> |
EngineeringUnits | Unit of value | <EngineeringUnits>Centigrade</EngineeringUnits> |
Comment | Comment of tag | <Comment>simTag1</Comment> |
DataType | SingleFloat, SingleInteger, DoubleFloat, FixedString, VariableString, Scaled, Byte, Boolean, DoubleInteger, UnsignedSingleInteger, UnsignedDoubleInteger, QuadInteger, UnsignedQuadInteger, Blob, Time, Array, MultiField | <DataType>SingleFloat</DataType> |
FixedStringLength | <FixedStringLength></FixedStringLength> |
|
InterfaceName | <InterfaceName></InterfaceName> |
|
SourceAddress | Tag source address | <SourceAddress>Result = CurrentValue("SJC1GEIP05.Simulation00002")</SourceAddress> |
CollectionType | Polled, Unsolicited | <CollectionType>Unsolicited</CollectionType> |
CollectionInterval | Interval of collection. Unit depends on TimeResolution. | <CollectionInterval>2</CollectionInterval> |
CollectionOffset | Time in seconds | <CollectionOffset>0</CollectionOffset> |
LoadBalancing | Yes, No | <LoadBalancing>No</LoadBalancing> |
TimeStampType | Source, Collector | <TimeStampType>Source</TimeStampType> |
HiEngineeringUnits | Any numeric value | <HiEngineeringUnits>200000.00</HiEngineeringUnits> |
LoEngineeringUnits | Any numeric value | <LoEngineeringUnits>0</LoEngineeringUnits |
InputScaling | Yes, No | <InputScaling>Yes</InputScaling> |
HiScale | Any numeric value | <HiScale>32767.00</HiScale> |
LoScale | Any numeric value | <LoScale>0</LoScale> |
SpikeLogic | Yes, No | <SpikeLogic>Yes</SpikeLogic> |
SpikeLogicOverride | Yes, No | <SpikeLogicOverride>Yes</SpikeLogicOverride> |
InterfaceCompression | Yes, No | <InterfaceCompression>Yes</InterfaceCompression> |
InterfaceDeadbandPercentRange | Any double type value | <InterfaceDeadbandPercentRange>0</InterfaceDeadbandPercentRange> |
InterfaceCompressionTimeout | Time in milliseconds | <InterfaceCompressionTimeout>0</InterfaceCompressionTimeout> |
InterfaceAbsoluteDeadband | Any double type value | <InterfaceAbsoluteDeadband>0</InterfaceAbsoluteDeadband> |
InterfaceAbsoluteDeadbanding | Yes, No | <InterfaceAbsoluteDeadbanding>No</InterfaceAbsoluteDeadbanding> |
ConditionCollectionEnabled | Yes, No | <ConditionCollectionEnabled>No</ConditionCollectionEnabled> |
ConditionCollectionTriggerTag | Name of tag | <ConditionCollectionTriggerTag>simTag1</ConditionCollectionTriggerTag> |
ConditionCollectionComparison | = , EQ , < , LT , <= , LE , > , GT , >= , GE , != , NE | <ConditionCollectionComparison>EQ</ConditionCollectionComparison> |
ConditionCollectionCompareValue | Any numeric value | <ConditionCollectionCompareValue>0</ConditionCollectionCompareValue> |
ConditionCollectionMarkers | Yes, No | <ConditionCollectionMarkers>No</ConditionCollectionMarkers> |
NumberOfElements | <NumberOfElements></NumberOfElements> |
|
UserDefinedTypeName | <UserDefinedTypeName></UserDefinedTypeName> |
|
CalcType | Raw, Analytic, PythonExpr | <CalcType>Raw</CalcType> |
TimeResolution | Seconds, Milliseconds, Microseconds | <TimeResolution>Seconds</TimeResolution> |
InterfaceGeneral1 | Customized for each collector | <InterfaceGeneral1>10</InterfaceGeneral1> |
InterfaceGeneral2 | Customized for each collector | <InterfaceGeneral2>4</InterfaceGeneral2> |
InterfaceGeneral3 | Customized for each collector | <InterfaceGeneral3>3.188.87.41</InterfaceGeneral3> |
InterfaceGeneral4 | Customized for each collector | <InterfaceGeneral4></InterfaceGeneral4> |
InterfaceGeneral5 | Customized for each collector | <InterfaceGeneral5></InterfaceGeneral5> |
Cloud Collector Specific Registry Configuration
Various registry keys are available for modifying the default behavior of cloud collector. These keys can be added to the specific cloud collectors for altering the default behavior.
For ServerToServerCollector, the keys will be added to: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GE Digital\iHistorian\Services\ServerToServerCollector
ZIP compression: Zip compression is available for Cloud collectors so that the JSON Payload can be compressed with a reduced network bandwidth.
Following registry key is available for compression:
JsonPayloadGzipCompression:
Use this registry key to reduce the network usage while the data is transferred from collector to cloud.
Default value: 0, means no compression (if registry key does not exist)
Valid values: 1 to 9. 1 is minimal compression and 9 is maximum compression.
Data Type: DWORD
Registry key for Controlling Max send queue size
CloudMaxOutstandingMsgs
: Use this registry key to configure the maximum send queue size.
Default value: 512
Valid values: 24 to 512
Data Type: DWORD
Registry key to save messages in failed queues
FailedMsgQueueEnabled
: Use this registry key to save messages in failed queues as backup. This is done when any message fails for any unexpected reason.
Default: 0 (Disabled). (if no registry key)
Valid Values: 0 (Disabled) or 1(Enabled)
Data Type: Binary
Install Multiple Data Collectors for Cloud
- Creating the service
- Creating the registry keys
Step-1 Creating the service
Deleting/Uninstalling Multiple Data Collectors for Cloud
Installing a Collector via the Command Line
- Server to Server
- OSI PI Wonderware Data
- File Collector
- Calculation Collector
- iFIX Collector
- iFIX Alarm and Event Collector
Collectors_Install.exe
Argument
-s, -silent
Parameters
<CollectorName>_AddLocal (1=install and 0= uninstall)
<CollectorName>_sourceservername
- For a Historian destination use the machine name.
- For a Predix Cloud destination, use "Cloud"
<CollectorName>_clientid
<CollectorName>_zoneid
<CollectorName>_proxy
<CollectorName>_datapointattributekey1
<CollectorName>_datapointattributevalue1
<CollectorName>_datapointattributekey2
<CollectorName>_datapointattributevalue2
<CollectorName>_datapointattributekey3
<CollectorName>_datapointattributevalue3
<CollectorName>_datapointattributekey4
<CollectorName>_datapointattributevalue4
<CollectorName>_datapointattributekey5
<CollectorName>_datapointattributevalue5
Performing a silent install
Important: Installing a collector can potentially remove a collector that is already installed. For example, if you already installed the OSI PI Collector and then run the silent install for the Server 2 Server Collector, the OSI PI Collector can be uninstalled. If you are installing a new collector on a machine where there is an existing collector that you want to retain, you must use command line parameters for the existing collector as well.
Example 1:
This command installs the Historian Server 2 Server collector and sets the source server to be PC1 and destination server to be PC2.
>Collectors_Install.exe -s HistorianS2SCollector_AddLocal=1 HistorianS2SCollector_sourceservername=PC1 HistorianS2SCollector_destinationservername=PC2
Example 2:
This command installs the Historian File Collector and sets the destination server name to be PC1.
>Collectors_Install.exe -s HistorianFileCollector_AddLocal=1 HistorianFileCollector_destinationservername=PC1
Example 3:
This command installs the Historian Calculation Collector and the File Collector, and sets the destination server name to be PC1 for each collector.
>Collectors_Install.exe -s HistorianCalculationCollector_AddLocal=1 HistorianCalculationCollector_destinationservername=PC1 HistorianFileCollector_AddLocal=1 HistorianFileCollector_destinationservername=PC1
Reconfigure Cloud Information and Configuration
If you want to change or add the cloud parameters after install, then you must run the reconfigure_timeseries.exe available in path: C:\Program Files (x86)\GE Digital\Historian Server to Server Collector\Server.
Please note the path may vary for other collectors. Run the command line under Administrative Privileges to ensure that the registry key is updated. Once the tool is run, it will update the necessary information stored under HISTORIANNODENAME registry key for the specified collector.
Help details are seen when running the tool via command line: reconfigure_timeseries.exe help. Parameters available to reconfigure via the tool:
Parameters | Description |
---|---|
-d, --CloudDestAddress | Cloud Destination Address, the wss endpoint URL of the Time Series instance. |
-g, --ConfigServer | An optional configuration server, typically not needed. |
-i, --IdentityIssuer | Identity issuer URL, typically pointing to an UAA endpoint. |
-c, --ClientId | Client ID for accessing Time Series. |
-s, --ClientSecret | Client secret for accessing Time Series. |
-z, --ZoneId | Zone ID. |
-t, --DatapointAttributes | Datapoint attributes in JSON, if any. |
-p, --Proxy | Proxy server, if any. |
-n, --InstanceName | (Default: ServerToServerCollector) Alternative instance name. |
-m, --SubInstanceName | (Default: ) Alternative sub instance name for same collector multi instances. |
-f, --Force | (Default: False) Force write to registry despite warning. |
-6, --x64 | (Default: False) Set parameter for a x64 collector. |
-y, --DryRun | (Default: False) Only generate and print the string value that would be written into register. |
-o, --Override | (Default: False) overide the user provided setting into register, even if not a cloud collector. |
--help | Display this help screen. |
Example: reconfigure_timeseries.exe -d wss://gateway-predix-data-services.run.aws-xxx-pr.ice.predix.io/v1/stream/messages -g none -i app-client-id -c test -s test -z bf0e881d-548a-493f-b855-xxxxxxxxxx -o true -n PiCollector
Troubleshooting the Cloud Collectors
Cloud collectors generates logs during initialization, configuration, and general operation just like regular Historian Data Collectors. These can be found in the general logging folder C:\Proficy Historian Data\LogFiles.
- Examining the log files for information.
- Examining the Windows Event Viewer for error/warnings. To enable additional logging for troubleshooting:
- From the Start menu, select Run and enter Regedit
- Open the following key folder: HKEY_LOCAL_MACHINE\SOFTWARE\Intellution,Inc.\iHistorian\Services\CloudCollector\<entry>
- Double-click or create DebugMode DWORD key.
- Select Base as Decimal.
- In the Value data field, type 255.
- Click OK.
- Close the Registry Editor.
An ihapi log also should be created in the same LogFiles folder when debug mode is set to 255. If this log is missing, ensure the key exists: Create a string key called LOGFILEPATHin location: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\GE Digital\iHistorian\Services.
Set the value of this key to the LogFiles folder, typically set to C:\Proficy Historian Data\LogFiles
Once a proper connection is established to the cloud, an entry similar to below is added to the collector log:
ConnectionStateChange: [cloud|wss://xx/v1/stream/messages|configServer=xx|identityissuer=xx/oauth/token|clientid=app-client-id|clientsecret=xxxx|zoneid=xxx|dpattributes=|proxy=xx] [Connected]
When debug mode is set, the ihapi log also shows values being sent to cloud in below format:
[** Sending to Cloud:] [{"body":[{"name":"G2UA6021FP7E.Simulation00001","datapoints":[[1532371358000,144468.515625000,3]]},{"name":"G2UA6021FP7E.Simulation00002","datapoints":[[1532371358000,63344.218750000,3]]},{"name":"G2UA6021FP7E.Simulation00003","datapoints":[[1532371358000,193340.859375000,3]]},{"name":"G2UA6021FP7E.Simulation00001","datapoints":[[1532371359000,108999.906250000,3]]},{"name":"G2UA6021FP7E.Simulation00003","datapoints":[[1532371359000,60097.050781250,3]]},{"name":"G2UA6021FP7E.Simulation00002","datapoints":[[1532371359000,48536.636718750,3]]}] ,"messageId":496 ,"statusCode":0}]
This shows the tagname, timestamp, value, and quality of data being sent to cloud.
Acknowledged messages from cloud are reported in the api debug log as below. This entry contains the number of samples sent/acknowledged for the corresponding message id.
In ihAPIServerCloud::ReceivedMsg() MsgNum =[496] status =[202] Samples=[6] Size=[580]. ThreadId =[0x6ca0]
Failed to acknowledge messages are automatically resent to the cloud. Resend is attempted at the most 10 times, once in every 2 minutes. If
FailedMsgQueueEnabled
is set to 0, failed to send message to the cloud may get purged.
Configuring a Data Collector for Automatic Startup
To configure a data collector for automatic startup:
Configuring an OPC Data Collector for Automatic Startup
Historian does not configure OPC Collectors to start automatically as a service as some OPC servers do not support this feature. To find out if your OPC Server supports running as a service, refer to OPC Collector Specific Configuration.
Configuring an iFix Data Collector for Automatic Startup
Configuring an OPCUA Data Collector for Automatic Startup
Historian does not configure OPCUA Collectors to start automatically as a service since some OPCUA servers do not support this feature.
The OPCUA Collector will start successfully only when the OPCUA Server it is trying to connect to is available and is running. If the OPCUA Server is not running on the OPCUA Collector, then you will not be able to start on startup.
Uninstalling a Historian Data Collector
Uninstalling Cloud Collectors
To uninstall the Cloud Collector:
- Navigate from the Control Panel to Programs and Features.
- Click Uninstall or Change a Program.
- Select Historian Collectors.
- Follow the uninstall steps.
Adding an OPC Collector After Install
Running Collectors as Console Applications
Running a collector as a console application can be convenient in some situations, especially during initial configuration, since you can configure all system components and parameters before you start the collector.
Stopping a Collector that is Running as a Console App
s
at the command prompt in the DOS window and press Enter. Adding a Data Collector to a Historian Server
Since most collectors, including the iFIX Collector, automatically create an entry for themselves when they connect to the Historian Server for the first time, it is not necessary to add a collector to the server manually if the collector can connect to the server.
HistorianNodeName
key for the collector in the Windows Registry:HKEY_LOCAL_MACHINE\SOFTWARE\Intellution,Inc.\Historian\Services\CollectorName
CollectorName
is the name of the collector.