Method Reference Q-T
Q
QueryArray Method (Archives Object)
This function returns a list of properties of an Archive found on the Historian server.
Syntax
object.QueryArray(ArchiveName, Params, SortAscending, ArrayOrientation, ArraySize, ReturnCount, ReturnArray)
Name | Data Type | Description |
---|---|---|
ArchiveName | String | Name of the Archive to return information on. |
Params | Variant | A list of the parameters to retrieve on the specified Archive. |
SortAscending | Boolean | Sorting preference for the returned list of properties. |
ArrayOrientation | Integer | The desired orientation of the returned array. |
ArraySize | Long | The desired size of the returned array. |
ReturnCount | Long | The number of rows returned in ReturnArray |
ReturnArray | Variant | A returned array which contains the requested properties. |
Returns
Boolean. Success/Failure.
QueryArray Method (Collectors Object)
This function returns a list of properties for a set of Collectors.
Syntax
object.QueryArray(CollectorName, Params, SortAscending, ArrayOrientation, ArraySize, ReturnCount, ReturnArray)
Name | Data Type | Description |
---|---|---|
CollectorName | String | Name of the Collector to return information on. |
Params | Variant | A list of the parameters to retrieve from the Collectors. |
SortAscending | Boolean | Sorting preference for the returned list of properties. |
ArrayOrientation | Integer | The desired orientation of the returned array. |
ArraySize | Long | The desired size of the returned array. |
ReturnCount | Long | The number of rows returned in ReturnArray |
ReturnArray | Variant | A returned array which contains the requested properties. |
Returns
Boolean. Success/Failure.
QueryArray Method (DataRecordset Object)
This function returns an array of data records from the Historian server.
Syntax
object.QueryArray(Params, SortAscending, ArrayOrientation, ArraySize, ReturnCount, ReturnArray)
Name | Data Type | Description |
---|---|---|
Params | Variant | A list of the parameters to retrieve. |
SortAscending | Boolean | Sorting preference for the returned list of properties. |
ArrayOrientation | Integer | The desired orientation of the returned array. |
ArraySize | Long | The desired size of the returned array. |
ReturnCount | Long | The number of rows returned in ReturnArray |
ReturnArray | Variant | A returned array which contains the requested properties. |
Returns
Boolean. Success/Failure.
QueryArray Method (MessageRecordset Object)
This function returns an array of Messages from the Historian server.
Syntax
object.QueryArray(Params, SortAscending, ArrayOrientation, ArraySize, ReturnCount, ReturnArray)
Name | Data Type | Description |
---|---|---|
Params | Variant | A list of the parameters to retrieve. |
SortAscending | Boolean | Sorting preference for the returned list of properties. |
ArrayOrientation | Integer | The desired orientation of the returned array. |
ArraySize | Long | The desired size of the returned array. |
ReturnCount | Long | The number of rows returned in ReturnArray |
ReturnArray | Variant | A returned array which contains the requested properties. |
Returns
Boolean. Success/Failure.
QueryArray Method (TagRecordset Object)
This function returns an array of Tags from the Historian server.
Syntax
object.QueryArray(Params, SortAscending, ArrayOrientation, ArraySize, ReturnCount, ReturnArray)
Name | Data Type | Description |
---|---|---|
Params | Variant | A list of the parameters to retrieve. |
SortAscending | Boolean | Sorting preference for the returned list of properties. |
ArrayOrientation | Integer | The desired orientation of the returned array. |
ArraySize | Long | The desired size of the returned array. |
ReturnCount | Long | The number of rows returned in ReturnArray. |
ReturnArray | Variant | A returned array which contains the requested properties. |
Returns
Boolean. Success/Failure
QueryRecordset Method (DataRecordset Object)
Executes the DataValue query based on the fields and criteria specified.
Syntax
object.QueryRecordset
Parameters
None
Returns
Boolean. Returns whether or not the QueryRecordset operation succeeded.
Example
Dim I As Integer
Dim J As Integer
Dim K As Integer
Dim strComment$
Dim lngInterval As Long
Dim TagCount As Integer
Dim strDataQuality As String
Dim iDataRecordset As iHistorian_SDK.DataRecordset
Dim iDataValue As iHistorian_SDK.DataValue
Dim lEndTime&, lStartTime&, lNumSamples&
Dim lNumSeconds, lNumSamplesPerSecond
On Error GoTo Error_Handle
If CheckConnection = True Then
If lbTags.Text = "" Then
MsgBox "No Tag Selected", vbOKOnly, "SDK Sample" Exit Sub
End If
Set iDataRecordset = ConnectedServer.Data.NewRecordset
'reset lstValues.Clear
'build query
With iDataRecordset
'filter code
If txtFilterTag.Text <> "" Then
.Criteria.FilterTagSet = True
.Criteria.FilterTag = txtFilterTag.Text
.Criteria.FilterComparisonModeSet = True
'comparison mode
Select Case cboComparisonMode.Text
Case Is = "Equal"
.Criteria.FilterComparisonMode = 1
Case Is = "NotEqual "
.Criteria.FilterComparisonMode = 2
Case Is = "LessThan"
.Criteria.FilterComparisonMode = 3
Case Is = "GreaterThan"
.Criteria.FilterComparisonMode = 4
Case Is = "LessThanEqual"
.Criteria.FilterComparisonMode = 5
Case Is = "GreaterThanEqual"
.Criteria.FilterComparisonMode = 6
End Select
.Criteria.FilterModeSet = True
'filter mode
Select Case cboFilterMode.Text
Case Is = "ExactTime"
.Criteria.FilterMode = 1
Case Is = "BeforeTime"
.Criteria.FilterMode = 2
Case Is = "AfterTime"
.Criteria.FilterMode = 3
Case Is = "BeforeAndAfterTime"
.Criteria.FilterMode = 4
End Select
.Criteria.FilterComparisonValue = txtFilterValue.Text
End If
.Criteria.Tagmask = lbTags.Text
.Criteria.StartTime = dtStartTime.Value
.Criteria.EndTime = dtEndTime.Value
'get sample mode
Select Case cboSampleMode.Text
Case Is = "Interpolated"
.Criteria.SamplingMode = 2 'interpolated
Case Is = "Raw By Number"
.Criteria.SamplingMode = 5 'raw by number
Case Is = "Raw By Time"
.Criteria.SamplingMode = 4 'raw by time
Case Is = "Current Value"
.Criteria.SamplingMode = 1 'current value
Case Is = "Calculated"
.Criteria.SamplingMode = 6 'calculation
Case Is = "Trend"
.Criteria.SamplingMode = 3 'trend
End Select
If .Criteria.SamplingMode = 5 Then
'if raw by number get direction
If optDirectionForward.Value = True Then
.Criteria.Direction = 1 'forward
Else
.Criteria.Direction = 2 'backward
End If
End If
'if calculation get calc mode
If .Criteria.SamplingMode = 6 Then
Select Case cboCalculationMode.Text
Case Is = "Average"
.Criteria.CalculationMode = 1 'average
Case Is = "Standard Deviation"
.Criteria.CalculationMode = 2 'standard deviation
Case Is = "Total"
.Criteria.CalculationMode = 3 'total
Case Is = "Minimum"
.Criteria.CalculationMode = 4 'minimum
Case Is = "Maximum"
.Criteria.CalculationMode = 5 'maximum
Case Is = "Count"
.Criteria.CalculationMode = 6 'count
Case Is = "Raw Average"
.Criteria.CalculationMode = 7 'raw average
Case Is = "Raw Standard Deviation"
.Criteria.CalculationMode = 8 'raw standard deviation
Case Is = "Raw Total"
.Criteria.CalculationMode = 9 'raw total
Case Is = "Minimum Time"
.Criteria.CalculationMode = 10 'minimum time
Case Is = "Maximum Time"
.Criteria.CalculationMode = 11 'maximum time
Case Is = "Time Good"
.Criteria.CalculationMode = 12 'time good
End Select
End If
If optSamplingByNumber.Value = True Then
.Criteria.NumberOfSamples = Int(txtNumSamples.Text) Else
Select Case cboTimeUnits.Text
Case Is = "Milliseconds"
.Criteria.SamplingInterval = Int(txtInterval.Text) Case Is = "Seconds"
.Criteria.SamplingInterval = Int(txtInterval.Text) * 1000
Case Is = "Minutes"
.Criteria.SamplingInterval = Int(txtInterval.Text) * 60000
Case Is = "Hours"
.Criteria.SamplingInterval = Int(txtInterval.Text) * 3600000
Case Is = "Days"
.Criteria.SamplingInterval = Int(txtInterval.Text) * 86400000
End Select
End If
.Fields.AllFields
VB.Screen.MousePointer = vbHourglass 'wait wait wait lStartTime = Timer
'do query
If Not .QueryRecordset Then lEndTime = Timer
MsgBox "Query Failed..." & Chr(13) & iDataRecordset.LastError
VB.Screen.MousePointer = vbDefault
Exit Sub
End If
lEndTime = Timer VB.Screen.MousePointer = vbDefault lNumSamples = 0
TagCount = iDataRecordset.Item(1).Count
For I = 1 To iDataRecordset.Tags.Count
For J = 1 To iDataRecordset.Item(I).Count
Set iDataValue = iDataRecordset.Item(I).Item(J) Select Case iDataValue.DataQuality
Case Is = 1
strDataQuality = "Good" Case Is = 2
strDataQuality = "Bad" Case Is = 3
strDataQuality = "Unknown"
Case Else
strDataQuality = "ERROR" End Select
strComment = ""
For K = 1 To iDataValue.Comments.Count
strComment = strComment & " " & iDataValue.Comments(K).Comment
Next K
lstValues.AddItem Format(iDataValue.TimeStamp, "MM/dd/yyyy hh:mm:ss") & _
Space(10) & CStr(iDataValue.Value) & vbTab & strDataQuality & vbTab & strComment lNumSamples = lNumSamples + 1
Next J
Next I
End With
lNumSeconds = lEndTime - lStartTime lNumSamplesPerSecond = lNumSamples If lNumSeconds > 0 Then
lNumSamplesPerSecond = lNumSamples / lNumSeconds
End If
txtReadTime.Caption = lNumSamples & " returned in " & lEndTime - lStartTime & " seconds (" & lNumSamplesPerSec
Caption = "Output values for " & lbTags.Text & " (" & TagCount & ")" VB.Screen.MousePointer = vbDefault 'done
Else
MsgBox "Not Connected"
End If
Exit Sub
Error_Handle:
VB.Screen.MousePointer = vbDefault
Select Case Err.Number
Case Is = 6 'overflow
MsgBox "Error Number: " & Err.Number & Chr(13) & "Description: " & Err.Description & Chr(13) & "Check numb
Case Is = 13 'type mismatch
MsgBox "Error Number: " & Err.Number & Chr(13) & "Description: " & Err.Description & Chr(13) & "Check numb
Case Is = 91
MsgBox "Error Number: " & Err.Number & Chr(13) & "Check connection to server"
Case Else
MsgBox "Error Number: " & Err.Number & Chr(13) & Err.Description, vbOKOnly, "Error"
End Select
QueryRecordset Method (MessageRecordset Object)
Executes the message query based on the fields and criteria specified.
Syntax
object.QueryRecordset
Parameters
None
Returns
Boolean. Success/Failure.
Example
Dim MyRecordset As iHistorian_SDK.MessageRecordset
Dim I As Integer
Dim J As Integer
Dim lEndTime&, lStartTime&, lNumMessages& Dim lNumSeconds&, lNumMessagesPerSecond&
If CheckConnection = True Then
' Get A New Recordset
Set MyRecordset = ConnectedServer.Messages.NewRecordset
' Return Timestamp, Message Number, and Message String Fields In Query
With MyRecordset.Fields
.TimeStamp = True
.MessageNumber = True
.MessageString = True
End With
' Query messages for given start and end time
With MyRecordset.Criteria
.Clear
.StartTime = dtMessageStart.Value
.EndTime = dtMessageEnd.Value
If txtMessageContains.Text <> "" Then
.MessageString = txtMessageContains.Text
End If
End With
VB.Screen.MousePointer = vbHourglass ' wait wait wait
' Run Query lStartTime = Timer
If Not MyRecordset.QueryRecordset Then lEndTime = Timer
MsgBox "Query Failed..." & Chr(13) & MyRecordset.LastError
VB.Screen.MousePointer = vbDefault
Exit Sub
End If
lEndTime = Timer
' reset output list lstRetrievedMessages.Clear
' display all messages lNumMessages = 0
For J = 1 To MyRecordset.Item.Count
lstRetrievedMessages.AddItem Format(MyRecordset.Item(J).TimeStamp, "MM/dd/yyyy hh:mm:ss") & _
vbTab & MyRecordset.Item(J).MessageString lNumMessages = lNumMessages + 1
Next J
' calculate performance statistics lNumSeconds = lEndTime - lStartTime lNumMessagesPerSecond = lNumMessages If lNumSeconds > 0 Then
lNumMessagesPerSecond = lNumMessages / lNumSeconds
End If
VB.Screen.MousePointer = vbDefault
txtReadTime.Caption = lNumMessages & " returned in " & lEndTime - lStartTime & " seconds (" & lNumMessagesP
End If
QueryRecordset Method (TagRecordset Object)
Executes the tag query based on the fields and criteria specified.
Syntax
object.QueryRecordsetParameters
None.Returns
Boolean. Returns whether the QueryRecordset operation succeeded.Example
Dim MyTags As iHistorian_SDK.Tags
Dim MyRecordset As iHistorian_SDK.TagRecordset
Dim lStartTime&, lEndTime&, lNumSeconds&, lNumTagsPerSecond& Dim I As Integer
On Error GoTo errc lbTags.Clear
' If we are connected to server
If CheckConnection = True Then
' Query all the tagnames
Set MyTags = ConnectedServer.Tags
Set MyRecordset = MyTags.NewRecordset
MyRecordset.Criteria.Tagname = txtTagMask.Text
If txtDescriptionMask.Text <> "" Then
MyRecordset.Criteria.Description = txtDescriptionMask.Text
End If MyRecordset.Fields.Clear
MyRecordset.Fields.Tagname = True
VB.Screen.MousePointer = vbHourglass
lStartTime = Timer
If Not MyRecordset.QueryRecordset Then Err.Raise 1, , "Tag Query Failed: " + MyRecordset.LastError
lEndTime = Timer
For I = 1 To MyRecordset.Item.Count
lbTags.AddItem MyRecordset.Item(I).Tagname
Next I
VB.Screen.MousePointer = vbDefault
' Calculate performance statistics
lNumSeconds = lEndTime - lStartTime
lNumTagsPerSecond = MyRecordset.Item.Count
If lNumSeconds > 0 Then
lNumTagsPerSecond = MyRecordset.Item.Count / lNumSeconds
End If
lblAddTime.Caption = MyRecordset.Item.Count & " tags returned in " & lEndTime - lStartTime & " seconds (" & lN MyRecordset.ClearRecordset
Set MyRecordset = Nothing
Else
MsgBox "Not connected"
End If
Exit Sub errc:
MsgBox "TestBrowseTags >> " + Err.Description
QueryTagAlias Method (TagRecordset Object )
This function returns a list of tag aliases for the tag name passed in. Pass in the current name of the tag and this function will return if there are any previous names for the tag due to tag rename.
Syntax object.QueryTagAlias(TagNames(), NumberofTags, TagAlias(), NoOfAliases)
Name | Data Type | Description |
---|---|---|
TagNames() | String | Name of the tags to return information on. |
NumberofTags | Long | Total count of tag names passed in. This must be equal to 1. |
TagAlias() | String | List of 0 or more tag aliases. |
NoOfAliases | Integer | The number of tag aliases returned. |
Returns
Boolean. TRUE if successful. FALSE otherwise.
QueryUserDefinedType Method (UserDefinedType Object)
Queries the Historian Server and loads all the User Defined Types that match the query mask.
Syntax
Name | Data Type | Description |
---|---|---|
Server | Server | The reference to the Historian Server object. |
QueryMask | String | A mask string that can be used to search for UserDefinedType on the Historian Server. The string can include wild-card characters like "*" and "?". |
Returns
Boolean. Indicates whether the query was successful.
R
Reload Method (Collector Object)
Syntax
object.Reload(StartTime, EndTime, [Tags])
Name | Data Type | Description |
---|---|---|
StartTime | Date | The time that you want the reload to begin at (read-only). |
EndTime | Date | The time that you want the reload to end at (read-only). |
Tags | Variant | The specified tag names either in an array of tag names, or in a tagRecordset object for tags that you want to reload (optional). |
Returns
Boolean. Returns whether or not the Reload operation succeeded.
Remove Method (TagDependencies Object)
Syntax
object.Remove([Tagname])
Name | Data Type | Description |
---|---|---|
Tagname | Variant | Name of the tag to remove (optional), default = ""). |
Returns
Boolean. Whether the Remove operation succeeded.
RemoveServer Method (ServerManager Object)
Removes the specified server from the list of registered servers on the client.
Syntax
object.RemoveServer(ServerName)
Name | Data Type | Description |
---|---|---|
ServerName | String | Computer name of the Historian server (read/write). |
Returns
Boolean. Whether the server was successfully removed from the list.
Rename Method (Tags Object)
Syntax
object.Rename(newTagName, (Optional) RenamePermanent)
Name | Data Type | Description |
---|---|---|
newTagName | String | Name of the new tag to rename. |
RenamePermanent (Optional) | Boolean | Pass TRUE to permanently rename a tag. |
Returns
Boolean. Returns whether or not the Rename operation succeeded.
Restore Alarms Method
Restores the alarms.
Syntax
object.RestoreAlarms
Name | Data Type | Description |
---|---|---|
RestoreFileName | String | The name of the file to be restored to the absolute path. |
Returns
Boolean. Returns TRUE if the alarms have been restored.
Example
Dim Status As ihStatus
Dim ReturnStatus As Boolean Status = ihSTATUS_FAILED ReturnStatus = False
On Error GoTo errc
Status = ihRestoreAlarms(MyServer.Handle, RestoreFileName, 0)
If Status <> ihSTATUS_OK Then err.Raise 1, , "Error in restoring the alarms [" + ErrorDescription(Status) + "," ReturnStatus = True
RestoreAlarms = ReturnStatus errc:
zLastError = "Purge Alarms>> " + err.Description
RestoreAlarms = ReturnStatus
End Function
S
SaveSet Method (EnumeratedSets Object)
Saves the Enumerated Set that has been passed into the Historian Server.
Syntax
object.SaveSet(SetTosave)
Name | Data Type | Description |
---|---|---|
SetToSave | EnumeratedSet | The set that is passed in to be saved. |
Returns
None.
SaveSet Method (UserDefinedType Object)
Saves the UserDefinedType that has been passed into the Historian Server.
Syntax
Name | Data Type | Description |
---|---|---|
Handle | Long | Server handle. |
MySet | UserDefinedType | The UserDefinedType to be saved. |
DataType | ihDatatype | The data type of the UserDefinedType |
Returns
Boolean. Returns TRUE if the UserDefinedType is saved.
SaveToCollectorProperty Method (OPCFilters Object)
Saves the current filter configuration in the Collector object.
Syntax
object.SaveToCollectorProperty(Collector)
Name | Data Type | Description |
---|---|---|
Collector | Variant | The Collector object in which to save the filtering information. |
Returns
Boolean true on success, false otherwise.
SaveUserCalcLibrary Method (Server Object)
Saves the given user calculation library to the Server object. This will update the set of user-created functions and subroutines available for calculations on this Server. The new calculation library must be passed in as an array of UserCalcFunctions.
This list of functions will replace any existing user calculation library on the Server. To save an empty calculation library, pass a non-array value such as Empty.
Syntax
object.SaveUserCalcLibrary(UserCalcFunctions)
Name | Data Type | Description |
---|---|---|
UserCalcFunctions | Variant | Array of UserCalcFunction objects. |
Returns
Boolean. Returns whether or not the calculation library was saved successfully.
Example
Dim MyServer As New iHistorian_SDK.Server
Dim MyUserCalcFunctions() As iHistorian_SDK.UserCalcFunction
Dim MyNewFunction As New iHistorian_SDK.UserCalcFunction
' Connect to the local server
If Not MyServer.Connect("", "", "") Then
err.Raise 1, , "Failed to connect to the local server" End If
' Load the calculation library
MyServer.LoadUserCalcLibrary MyUserCalcFunctions
' Create a new function
MyNewFunction.Name = "Sum"
MyNewFunction.Definition = "Function Sum(a, b)" & vbCrLf & "Sum = a + b" & vbCrLf & "End Function"
' Add it to the loaded library
If IsArray(MyUserCalcFunctions) Then
ReDim Preserve MyUserCalcFunctions(UBound(MyUserCalcFunctions) + 1) Else
ReDim MyUserCalcFunctions(0) End If
Set MyUserCalcFunctions(UBound(MyUserCalcFunctions)) = MyNewFunction
' Save the changes to the calculation library
If Not MyServer.SaveUserCalcLibrary(MyUserCalcFunctions) Then err.Raise 1, , "Failed to save the calculation library"
End If
SelectAll Method (TagRecordset Object)
Selects each tag in the current TagRecordset. Use in conjunction with the Master tag to perform bulk update operations on the selected tags of the TagRecordset.
Syntax
object.SelectAll
Parameters
None.
Returns
None.
Example
' Query for tags
Set MyRecordset = MyServer.Tags.NewRecordset
MyRecordset.QueryRecordset
' Select all tags
MyRecordset.SelectAll
' Update the HiEngineeringUnits for all tags
MyRecordset.Master.HiEngineeringUnits = 300
' Commit changes
MyRecordset.WriteRecordset
SetFields Method (DataRecordset Object)
Sets the DataValue fields to return from the Historian server when a DataRecordset query is executed.
Syntax
object.SetFields(Params)
Name | Data Type | Description |
---|---|---|
Params | Variant | Array of DataValue fields to set. |
Returns
Boolean. Success / Failure
SetFields Method (MessageRecordset Object)
Set a list of desired Fields to be returned for the messages.
Syntax
object.SetFields(Params)
Name | Data Type | Description |
---|---|---|
Params | Variant | Array of Message fields |
Returns
Boolean. Success / Failure
SetFields Method (TagRecordset Object)
Sets the Fields to retrieve in the TagRecordSet.
Syntax
object.SetFields(Params)
Name | Data Type | Description |
---|---|---|
Params | Variant | The array of field values to set. |
Returns
Boolean. Success / failure.
SetNames Method (EnumeratedSets Object)
This function returns an array of names of all the loaded Enumerated Sets within the Historian server object.
Syntax
object.SetNames()
Parameters
None.
Returns
String Array.
ShowErrorListDialog Method (Server Object)
Displays a dialog box that details errors messages accumulated during the current session of the Server object. Each message is timestamped at the time the error generated and includes an error message translated into the locale of the client when possible.
Syntax
object.ShowErrorListDialog
Parameters
None.
Returns
None
Example
ErrorTrap:
' On error display the error list dialog
If MyServer.ErrorList.count > 0 Then
MyServer.ShowErrorListDialog
End If
SubscribeAlerts Method (Messages Object)
- To subscribe to messages of specific types, supply a topic.
- To subscribe to all topics, do not supply a topic. Subscribe all is the default.
- Subscribe to individual topics by making multiple calls to the SubscribeAlerts with different topics.
- To subscribe to all topics, call SubscribeAlerts and pass 0.
- To unsubscribe to a specific topic or all topics, call SubscribeAlerts and supply the Subscribe parameter set to False.
The Alert_Received event of the Messages object reports alert messages to the client asynchronously.
Syntax
object.SubscribeAlerts(Topic, Subscribe)
Name | Data Type | Description |
---|---|---|
Topic | ihMessageTopic | Topics of Alerts to subscribe to (optional, default = All). |
Subscribe | Boolean | Flag to subscribe / unsubscribe to alerts (optional, default = True). Set to False to unsubscribe. |
Returns
Boolean. Returns whether or not the SubscribeAlerts operation succeeded.
SubscribeChanges Method (Tags Object)
Subscribes to changes in tag configuration. The Historian server publishes messages to any client signed up for tag configuration changes as modifications are saved to the tag database.
The system reports tag configuration messages asynchronously to the client through the ChangeReceived event of the Tags Object.
To unsubscribe to a specific tag, or all tags, call SubscribeChanges and supply the Subscribe parameter set to False.
Syntax
object.SubscribeChanges(Tagname, Subscribe)
Name | Data Type | Description |
---|---|---|
Tagname | String | Name of tag to Subscribe for configuration changes (read-only). |
Subscribe | Boolean | Flag to Subscribe/Unsubscribe to tag changes (default = True). |
Returns
Boolean. Returns whether or not the SubscribeChanges operation succeeded.
SubscribeData Method (Data Object)
Subscribes to changes in the current value of a specific tag. The Historian server publishes messages as new values are received to any client signed up for current value changes. To qualify as a new current value, any new data point must have a newer timestamp than the previously established current value. Values received by the Historian server have passed a deadband check by the collector reporting the data. Since new current values have not been compressed, however, values reported as current may not exactly match those that reach the archive.
You can use the MinimumElapsedTime, in milliseconds, to throttle the rate at which current values are reported to a specific server connection. If the same tag is subscribed twice, the last supplied MinimumElapsedTime is used. If MinimumElapsedTime is not supplied, or is zero, the system reports all current values.
The system reports current values asynchronously to the client through the DataReceived event of the Data object.
To unsubscribe to a specific tag, or all tags, call SubscribeData and set the Subscribe parameter to False.
Syntax
object.SubscribeData(Tagname, MinimumElapsedTime, Subscribe)
Name | Data Type | Description |
---|---|---|
Tagname | String | Name of the tag to Subscribe for current values (read-only). |
MinimumElapsedTime | MinimumElapsedTime | Minimum elapsed time (ms) between values (read-only). |
Subscribe | Boolean | Flag to subscribe/unsubscribe to current values (read-only). |
Returns
Boolean. Operation success / fail
SubscribeMessages Method (Messages Object)
Subscribes to messages reported by the Historian Server. The Historian Server publishes messages as messages are received to any client signed up for messages. As an option, you may supply a topic to subscribe only to messages of specific types. If you do not supply a topic, all topics are subscribed. You can subscribe to individual topics by making multiple calls to the SubscribeMessages method with different topics, or pass 0 to subscribe to all topics.
The system reports alert messages asynchronously to the client through the Message_Received event of the Messages object.
To unsubscribe to a specific topic, or all topics, call SubscribeMessages and set the Subscribe parameter to False.
Syntax
object.SubscribeMessages(Topic, Subscribe)
Name | Data Type | Description |
---|---|---|
Topic | ihMessageTopic | Topics of messages to Subscribe to (optional, default = True). |
Subscribe | Boolean | Flag to un/subscribe to a specific topic (optional, default = True). |
Returns
Boolean. Operation success / fail
Substitutions Method (MessageFields Object)
Determines whether the Substitutions should be returned in the MessageRecordset query.
Syntax
object.Substitutions
Parameters
None
Returns
None
Example
Dim maMyMessages As iHistorian_SDK.MessageRecordset
Set MyMessages = GetServer.Messages.NewRecordset With MyMessages.Fields
.Topic = True
.TimeStamp = True
.MessageString = True
.Substitutions = True
End With
T
TestCalculation Method (Tag Object)
Runs the calculation currently stored in the Calculation property. This calculation will be run with a current time of "Now". The results of the calculation will be stored in the Value and DataQuality parameters.
If an error occurs during the test, a description of the error will be stored in the ErrorMessage parameter.Syntax
object.TestCalculation(Value, DataQuality, ErrorMessage)
Name | Data Type | Description |
---|---|---|
Value | Variant | Value of the calculation result. |
DataQuality | String | Quality of the calculation result. |
ErrorMessage | String | Description of any error that occurred during the test. |
Returns
Boolean. Operation success / fail
TranslateMessage Method (Server Object)
Returns a translated message or prompt based on the current locale and the MessageNumber specified. If no translation is available for the current locale, the method uses the default message.
Connection To Server:[1]
Failed With Error Number: [2]
requires two substitutions, the first being the server, and the second being the error number. Connection To Server: USGB014
Failed With Error Number: 65535.
Syntax
object.TranslateMessage(MessageNumber, DefaultMessage, Substitutions)Name | Data Type | Description |
---|---|---|
MessageNumber | Long | Message or prompt number to translate (read-only). |
DefaultMessage | String | Default message to translate (optional, read-only). |
Substitutions | ParamArray | Ordered substitutions into message (optional, read-only). |
Returns
String. The translated message text.
Example
Dim MyServer As New iHistorian_SDK.Server
Dim MyPrompt As String
' Connect to the default server
If Not MyServer.Connect Then
err.Raise 1, , "Failed to authenticate on server " + MyServer.ServerName
End If
' Translate the prompt from the connected server
MyPrompt = MyServer.TranslateMessage(549, "User: [1]", MyServer.Username)
' Prompt is translated to "User: Fred"