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

  1. Add the following collector interface properties to the top of your configuration XML file.
    The following is an example for the Server to Server Collector interface properties:
    <Import>
    <Collectors>
    <Collector Name="<Collector Name>">
    <InterfaceType>ServerToServer</InterfaceType>
    <InterfaceGeneral1>10</InterfaceGeneral1>
    ......
    </Collector>
    </Collectors>
  2. Add your TagList and Tag properties to your XML file.
    <Collectors>
    ...
    </Collectors>
     
    <TagList Version="1.0.71">
     
    <Tag>
    <Tagname>simCollector1</Tagname>
    <SourceAddress>Result = CurrentValue("SJC1GEIP05.Simulation00002")</SourceAddress>
    ...
    </Tag>
     
    <Tag>
    <Tagname>simCollector2</Tagname>
    <SourceAddress>Result = CurrentValue("SJC1GEIP05.Simulation00002")</SourceAddress>
    ...
    </Tag>
    ...
    </TagList>
    </Import>
  3. Add the closing </Import> tag to the end of your XML file.

Collector Interface Properties

The collector interface properties are written in the following formal in the XML file.
<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 NamePossible ValuesExample
InterfaceTypeServerToServer, PI, Custom<InterfaceType>ServerToServer</InterfaceType>
DefaultTagPrefixAny tag prefix name<DefaultTagPrefix>OfflineCloud</DefaultTagPrefix>
CanBrowseSourceYes, No<CanBrowseSource>Yes</CanBrowseSource>
CanSourceTimestampYes, No<CanSourceTimestamp>Yes</CanSourceTimestamp>
MinimumDiskFreeBufferSizeSize in MB<MinimumDiskFreeBufferSize>150</MinimumDiskFreeBufferSize>
MaximumMemoryBufferSizeSize in MB<MaximumMemoryBufferSize>200</MaximumMemoryBufferSize>
ShouldAdjustTimeYes, No<ShouldAdjustTime>Yes</ShouldAdjustTime>
ShouldQueueWritesYes, No<ShouldQueueWrites>No</ShouldQueueWrites>
SourceTimeInLocalTimeYes, No<SourceTimeInLocalTime>No</SourceTimeInLocalTime>
CollectionDelayTime in seconds<CollectionDelay>2</CollectionDelay>
DefaultCollectionIntervalTime in milliseconds<DefaultCollectionInterval>1000</DefaultCollectionInterval>
DefaultCollectionTypePolled, Unsolicited<DefaultCollectionType>Unsolicited</DefaultCollectionType>
DefaultTimeStampTypeSource, Collector<DefaultTimeStampType>Source</DefaultTimeStampType>
DefaultLoadBalancingYes, No<DefaultLoadBalancing>No</DefaultLoadBalancing>
DefaultCollectorCompressionYes, No<DefaultCollectorCompression>No</DefaultCollectorCompression>
DefaultCollectorCompressionDeadbandDouble type value<DefaultCollectorCompressionDeadband>0.00000</DefaultCollectorCompressionDeadband>
DisableOnTheFlyTagChangeYes, No<DisableOnTheFlyTagChange>No</DisableOnTheFlyTagChange>
DefaultCollectorCompressionTimeoutTime in milliseconds<DefaultCollectorCompressionTimeout>0</DefaultCollectorCompressionTimeout>
DefaultSpikeLogicYes, No<DefaultSpikeLogic>Yes</DefaultSpikeLogic>
DefaultSpikeMultiplierAny numeric value<DefaultSpikeMultiplier>4</DefaultSpikeMultiplier>
DefaultSpikeIntervalAny numeric value<DefaultSpikeInterval>5</DefaultSpikeInterval>
DataRecoveryQueueEnabledYes, No<DataRecoveryQueueEnabled>No</DataRecoveryQueueEnabled>
DefaultAbsoluteDeadbandingYes, No<DefaultAbsoluteDeadbanding></DefaultAbsoluteDeadbanding>
DefaultAbsoluteDeadbandDouble type value<DefaultAbsoluteDeadband>0.00000</DefaultAbsoluteDeadband>
RedundancyEnabledYes, No<RedundancyEnabled>No</RedundancyEnabled>
RedundancyPrincipalCollector <RedundancyPrincipalCollector></RedundancyPrincipalCollector>
RedundancyIsActiveCollectorYes, No<RedundancyIsActiveCollector>No</RedundancyIsActiveCollector>
InterfaceGeneral1Customized for each collector<InterfaceGeneral1>10</InterfaceGeneral1>
InterfaceGeneral2Customized for each collector<InterfaceGeneral2>4</InterfaceGeneral2>
InterfaceGeneral3Customized for each collector<InterfaceGeneral3>3.188.87.41</InterfaceGeneral3>
InterfaceGeneral4Customized for each collector<InterfaceGeneral4></InterfaceGeneral4>
InterfaceGeneral5Customized 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>
You can configure the following properties:
Property NamePossible ValuesExample
TagnameAny name<Tagname>simTag1</Tagname>
DescriptionDescription of tag<Description>simTag1</Description>
EngineeringUnitsUnit of value<EngineeringUnits>Centigrade</EngineeringUnits>
CommentComment of tag<Comment>simTag1</Comment>
DataTypeSingleFloat, 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>
SourceAddressTag source address<SourceAddress>Result = CurrentValue("SJC1GEIP05.Simulation00002")</SourceAddress>
CollectionTypePolled, Unsolicited<CollectionType>Unsolicited</CollectionType>
CollectionIntervalInterval of collection. Unit depends on TimeResolution.<CollectionInterval>2</CollectionInterval>
CollectionOffsetTime in seconds<CollectionOffset>0</CollectionOffset>
LoadBalancingYes, No<LoadBalancing>No</LoadBalancing>
TimeStampTypeSource, Collector<TimeStampType>Source</TimeStampType>
HiEngineeringUnitsAny numeric value<HiEngineeringUnits>200000.00</HiEngineeringUnits>
LoEngineeringUnitsAny numeric value<LoEngineeringUnits>0</LoEngineeringUnits
InputScalingYes, No<InputScaling>Yes</InputScaling>
HiScaleAny numeric value<HiScale>32767.00</HiScale>
LoScaleAny numeric value<LoScale>0</LoScale>
SpikeLogicYes, No<SpikeLogic>Yes</SpikeLogic>
SpikeLogicOverrideYes, No<SpikeLogicOverride>Yes</SpikeLogicOverride>
InterfaceCompressionYes, No<InterfaceCompression>Yes</InterfaceCompression>
InterfaceDeadbandPercentRangeAny double type value<InterfaceDeadbandPercentRange>0</InterfaceDeadbandPercentRange>
InterfaceCompressionTimeoutTime in milliseconds<InterfaceCompressionTimeout>0</InterfaceCompressionTimeout>
InterfaceAbsoluteDeadbandAny double type value<InterfaceAbsoluteDeadband>0</InterfaceAbsoluteDeadband>
InterfaceAbsoluteDeadbandingYes, No<InterfaceAbsoluteDeadbanding>No</InterfaceAbsoluteDeadbanding>
ConditionCollectionEnabledYes, No<ConditionCollectionEnabled>No</ConditionCollectionEnabled>
ConditionCollectionTriggerTagName of tag<ConditionCollectionTriggerTag>simTag1</ConditionCollectionTriggerTag>
ConditionCollectionComparison= , EQ , < , LT , <= , LE , > , GT , >= , GE , != , NE <ConditionCollectionComparison>EQ</ConditionCollectionComparison>
ConditionCollectionCompareValueAny numeric value<ConditionCollectionCompareValue>0</ConditionCollectionCompareValue>
ConditionCollectionMarkersYes, No<ConditionCollectionMarkers>No</ConditionCollectionMarkers>
NumberOfElements <NumberOfElements></NumberOfElements>
UserDefinedTypeName <UserDefinedTypeName></UserDefinedTypeName>
CalcTypeRaw, Analytic, PythonExpr<CalcType>Raw</CalcType>
TimeResolutionSeconds, Milliseconds, Microseconds<TimeResolution>Seconds</TimeResolution>
InterfaceGeneral1Customized for each collector<InterfaceGeneral1>10</InterfaceGeneral1>
InterfaceGeneral2Customized for each collector<InterfaceGeneral2>4</InterfaceGeneral2>
InterfaceGeneral3Customized for each collector<InterfaceGeneral3>3.188.87.41</InterfaceGeneral3>
InterfaceGeneral4Customized for each collector<InterfaceGeneral4></InterfaceGeneral4>
InterfaceGeneral5Customized 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.

The following conditions apply for the changes to reflect automatically:
  • This is applicable only to bi-modal collectors.
  • The changes are reflected in 90 seconds.
Note: If you do not want tag properties to be updated dynamically for a collector, perform the following steps:
  1. 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.
  2. 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