Offline Collector Configuration
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, Data Type and Source Address
Mandatory properties for historical collector (Server to Cloud)
Tagname, Data Type, Source Address and CalculationDependency
All other properties are not mandatory.
Creating Offline Configuration XML file
About this task
It is recommended that you add the Collector property section above the Tag property section in your offline configuration XML file.
Procedure
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> |
About Updating Tag Properties Dynamically
When you add or delete tags for a collector, or when you modify the properties of the tags or the collector using the offline configuration file, the changes are reflected without the need to restart the collector.
- This is applicable only to bi-modal collectors.
- The changes are reflected in 90 seconds.
- Access the offline configuration file for the collector. By default, this file is available in the following location: <installation folder of Historian>\GE Digital\<collector name>. For example, for the simulation collector, the path to the file is C:\Program Files (x86)\GE Digital\Historian Simulation Collector\Config\Sim_Offline_Config.xml.
- Inside the
<collector>
element, for the<DisableOnTheFlyTagChanges>
parameter, enter Yes, and save the file. By default, the value is No.Tip: To verify that the changes are saved, verify the .shw file for the collector.
Troubleshooting
By default, the offline configuration file is continuously monitored for any changes in the tag names and/or properties, and the changes are reflected dynamically. If, however, the changes are not reflected, you can create the following registry key to fix the issue: OfflineTagForceCheckDuration
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 a Server-to-Server collector, 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