Method Reference A-B
APIStatusToString Method (Server Object)
Converts a status ID into a string.
Syntax
object.APIStatusToString(nStatus, bHRESULT)
Name | Data Type | Description |
---|---|---|
nStatus | Long | The status ID to be converted. |
bHRESULT | Boolean | If true, then the status ID is an HRESULT; otherwise, it is an APIStatus. |
Returns
String. The translation of the status code.
Add Method (Archives Object)
Adds a new archive with the specified characteristics to the Historian server. You can also use this method to add an existing archive file to the archives collection to restore an archive.
Specify the FileLocation in the context of the Historian server machine drive and directory structure. If the specified FileLocation points to an existing valid Historian archive, the method effectively re-registers this archive and automatically loads it. Use this method when you return a previously unloaded archive to the system.
Since the Add request is synchronous, it immediately creates a new Archive object on the Historian server and another one in the Archives collection on the client.
Syntax
object.Add(ArchiveName As String, FileLocation As String, FileSize As Long, ArchiveDataStoreName As String)
Name | Data Type | Description |
---|---|---|
ArchiveName | String | Name of the archive to add (Read-Only). |
FileLocation | String | Fully qualified name of the archive file (Read-Only). |
FileSize | Long | Size of archive in MB (Read-Only). |
ArchiveDataStoreName | String | Name of the archive data store the archive belongs to. This is an optional parameter. |
Returns
Archive. The newly added Archive object or Nothing.
Add Method (Collectors Object)
Adds a new collector with the specified name to the Historian server. The collector name must be unique in a given Historian server.
Since the Add request is synchronous, it immediately creates a new Collector Object on the Historian server and another one in the Collectors collection on the client.
Syntax
object.Add(CollectorName)
Name | Data Type | |
---|---|---|
CollectorName | String | Name of the new collector to add. (Read-only) |
Returns
Collector. Returns a reference to the newly created Collector object.
Add Method (DataRecordset Object)
Adds a new blank DataValue record to the current DataRecordset for the specified tag. The DataValue is written to the server when the WriteRecordset method of the DataRecordset object is called. You can optionally specify the value of the record or specify it after creation by operating on the DataValue object.
Syntax
object.Add(Tagname, TimeStamp, [InValue])
Name | Data Type | Definition |
---|---|---|
Tagname | String | Tag to which you are adding a new data value (read-only). |
TimeStamp | Date | Timestamp to add value at (read-only). |
InValue | DataValue | New value (optional). |
Returns
DataValue. Returns a reference to the newly created data value.
Add Method (DataStores Object)
Adds a data store.
Syntax
object.Add(MyDataStoreName,MyDefaultDS, MyDataStoreType, MyDataStoreDescription)
Name | Data Type | |
---|---|---|
DataStoreName | String | Indicates the name of the data store. |
IsDefault | Boolean | Indicates whether the data store is the default data store. |
DataStoreType | String | Indicates the type of the data store: Historical, User, or SCADA buffer. |
Description | String | The description provided for the data store. |
Returns
DataStore.
Add Method (EnumeratedSets Object)
Adds an enumerated set to the Enumerated Sets collection. The enumerated set is not added to the Historian Server until the SaveSet Method is called.
Syntax
object.Add(MySet)
Name | Data Type | Description |
---|---|---|
MySet | EnumeratedSet | The set that has to be added. |
Returns
None.
Add Method (EnumeratedStates Object)
Adds an enumerated state to the enumerated set collection. The enumerated state is not added to the Historian Server until the SaveSet Method is called.
Syntax
Object.Add(MyState)
Name | Data Type | Description |
---|---|---|
MyState | EnumeratedState | The state that has to be added. |
Returns
None.
Add Method (MessageRecordset Object)
Adds a new blank message record to the current MessageRecordset. The message is written to the server when the WriteRecordset method of the MessageRecordset object is called.
Syntax
object.Add
Parameters
None
Returns
The empty message that was added.
Add Method (TagDependencies Object)
Adds a dependent Tag to the current calculation. The calculation will be triggered when the value of this tag changes.
Syntax
object.Add(Tagname)
Name | Data Type | Description |
---|---|---|
Tagname | String | Name of the tag to add |
Returns
Boolean. Whether the Add operation succeeded.
Add Method (TagRecordset Object)
Adds a new blank tag record to the current TagRecordset. The tag is written to the server when the WriteRecordset method of the TagRecordset object is called.Syntax
object.Add(Tagname)
Name | Data Type | Description |
---|---|---|
Tagname | String | Name of the tag to add |
Returns
Returns a reference to the newly created tag.
Add Method (UserDefinedtypeFields Object)
Adds multiple fields to the User Defined Type. The User Defined Type is not added to the Historian Server until the SaveSet Method is called.
Syntax
object.Add(MyField)
Name | Data Type | Description |
---|---|---|
MyField | UserDefinedTypeField | The field to be added. |
Returns
None.
AddComment Method (DataValue Object)
Adds a comment to the current DataValue. If you supply a secondary username and password, the SDK authenticates the username and password before the committing the comment.
Syntax
object.AddComment(Comment, [DataTypeHint], [SecondaryUser], [SecondaryPassword])
Name | Data Type | Description |
---|---|---|
Comment | Variant | The comment to add. |
DataTypeHint | String | The name of the data type for the comment (optional, read-only). |
SecondaryUser | String | Supervisor's username to sign comment (optional, read-only). |
SecondaryPassword | String | Supervisor's password to sign comment (optional, read-only). |
Returns
Boolean. Returns True if the AddComment Method operation succeeded.
AddEx Method (Archives Object)
Adds a new archive with the specified characteristics to the Historian server. You can also use this method to add an existing archive file to the archives collection to restore an archive.
Specify the FileLocation in the context of the Historian server machine drive and directory structure. If the specified FileLocation points to an existing valid Historian archive, the method effectively re-registers this archive and automatically loads it. Use this method when you return a previously unloaded archive to the system.
Since the Add request is synchronous, it immediately creates a new Archive object on the Historian server and another one in the Archives collection on the client.
The window pointed to by hWnd is kept alive (messages processed) while the archive is being added.
Syntax
object.AddEx(ArchiveName As String, FileLocation As String, FileSize As Long, hWnd As Long, ArchiveDataStoreName As String)
Name | Data Type | Description |
---|---|---|
ArchiveName | String | Name of the archive to add (Read-Only). |
FileLocation | String | Fully qualified name of the archive file (Read-Only). |
FileSize | Long | Size of archive in MB (Read-Only). |
hWnd | Long | The window handle to keep alive. |
ArchiveDataStoreName | String | Name of the archive data store the archive belongs to. This is an optional parameter. |
Returns
Archive. The newly added Archive object or Nothing.
AddServer Method (ServerManager Object)
Registers a new server to the list of registered servers on the client. It makes an attempt to authenticate the connection based on the username and password supplied. If a username and password are not supplied, it assumes the user to be the currently authenticated domain user.
If it cannot authenticate the connection, because of incorrect user information or an invalid ServerName, the AddServer method returns False and does not register the supplied ServerName on the client.
Syntax
object.AddServer(ServerName, [UserName], [Password], [ConnectionTimeout])
Name | Data Type | Description |
---|---|---|
ServerName | String | Computer name of the Historian server (read-only). |
UserName | String | Username to authenticate (optional, read-only). |
Password | String | Password to authenticate (optional, read-only). |
ConnectionTimeout | Long | The maximum length of time clients should wait for messages from the server before concluding the server is unavailable (optional, read-only). |
Returns
Boolean. Returns True if the AddServer operation succeeded.
Example
Dim MyManager As New iHistorian_SDK.ServerManager
Dim MyServer As iHistorian_SDK.Server
' Try to add the new server
If MyManager.AddServer("USGB014") Then
Set MyServer = MyManager.Servers("USGB014") Else
err.Raise 1, , "Failed to authenticate new server" End If
AlarmAttributesRecordSet Method (Alarms Object)
This function returns a list of all the Vendor Attributes in the Alarm Archiver.
Syntax
object.AlarmAttributesRecordSet
Parameters
None.
ReturnsAlarmAttributes. The AlarmAttributes object contains the list of vendor attributes.
AlarmRecordSet Method (Alarms Object)
This function is used to query alarms or events from the archiver. This function takes one parameter, an AlarmOpenRecordSetInfo object, which specifies the query. The following sections describe how to populate this object to perform an Alarm or Event query.
AlarmOpenRecordSetInfo Parameter
This object contains details on what to select, and any filters for the query. After creating the object, you first specify which fields to select, and which fields to sort (SelectFields), and then specify any criteria/filter to apply (AlarmCriteria).
Create the object: Dim myAlarmOpenRecordSetInfo As New AlarmOpenRecordSetInfo
Alarm Fields
The following is a list of the alarm fields that can be returned in the recordset, or used to sort or filter the recordset. These are used in the SelectFields and AlarmCriteria object (see below for more details).
Option | Data Type | Description |
---|---|---|
AlarmID | Long | The unique ID of the alarm or event in the Historian alarm database. |
ItemID | String | The OPC ItemID of the alarm. This contains the source address of the data access tag the alarm is associated with. This could contain a NULL value if the alarm is not associated with a tag. |
Source | String | This is the unique identifier used by the OPC AE Collector for the alarm or event. |
DataSource | String | The collector interface name associated with the alarm or event. |
Tagname | String | The Historian Tag Name associated with the alarm. The tag name will be NULL unless the tag is also collected by Historian. |
EventCategory | String | The OPC event category of the alarm or event. |
ConditionName | String | The OPC condition of the alarm. This does not apply to event data. This, combined with the Source, comprises an alarm. |
SubConditionName | String | The OPC sub-condition of the alarm. This does not apply to event data. This is the state of the alarm. |
StartTime | Date | The start time or time stamp of the alarm or event. |
EndTime | Date | The end time of the alarm. This does not apply to event data. |
AckTime | Date | The time the alarm was acknowledged. This does not apply to event data. |
Timestamp | Date | The time stamp of the alarm or event. |
Message | String | The message attached to the alarm or event. |
Acked | Boolean | Stores the acknowledgement status of the alarm. If the alarm is acknowledged, this will be set to TRUE. |
Severity | Long | The severity of the alarm or event. This is stored as an integer value with a range of 1-1000. |
Actor | String | The operator who acknowledged the alarm, or caused the tracking event. |
Quality | String | The quality of the alarm or event. |
AlarmOpenRecordSetInfo.SelectFields
Each of the fields above can be selected, or used to sort the alarm recordset. Fill in the AlarmOpenRecordSetInfo.SelectFields for each field, according to the following table.
Option | Data Type | Description |
---|---|---|
Select | Boolean | True to select the field. |
OrderBy | Boolean | True to order by the field. |
OrderPriority | Integer | Relative priority compared to other field order priorities. Highest first. Ties are random. |
Descending | Boolean | True to sort descending. OrderBy must also be True. |
Example
myAlarmOpenRecordSetInfo.SelectFields.AlarmId.Select = TRUE
myAlarmOpenRecordSetInfo.SelectFields.AlarmId.OrderBy = TRUE
myAlarmOpenRecordSetInfo.SelectFields.AlarmId.OrderPriority = 10
myAlarmOpenRecordSetInfo.SelectFields.ItemId.Select = TRUE
myAlarmOpenRecordSetInfo.SelectFields.ItemId.OrderBy = TRUE
myAlarmOpenRecordSetInfo.SelectFields.ItemId.OrderPriority = 20
SelectFields.AllFields = TRUE
Choose Query Type
Query Alarms: myAlarmOpenRecordSetInfo.AlarmType = ihALARM_CONDITION
Query Events: myAlarmOpenRecordSetInfo.AlarmType = ihALARM_TRACKING
Query Historical Alarm Transitions: myAlarmOpenRecordSetInfo.AlarmType = ihALARM_CONDITION_HIST
Add filters
Field Data Type | Criteria Types |
---|---|
Integer/Long | Min, Max, Equal, NotEqual |
Float | Min, Max, Equal, NotEqual |
String | StringMask |
Quality | Min, Max, Equal, NotEqual |
myAlarmOpenRecordSetInfo.AlarmCriteria.SeverityCriteria.Min = 500
Specify Max Records
An optional criteria, MaxRecords, can be set to set the upper limit size of the recordset.
myAlarmOpenRecordSetInfo.AlarmCriteria.MaxRecords = 10
Syntax
object.AlarmRecordSet(theAlarmOpenRecordSetInfo)
Name | Data Type | Description |
---|---|---|
theAlarmOpenRecordSetInfo | Variant | See above for details. |
AlarmRecordset. An AlarmRecordset object, populated according the details specified in the AlarmOpenRecordSetInfo parameter.
Example
Dim MyServer As iHistorian_SDK.Server
Set MyServer = GetServer
Dim myAlarmOpenRecordSetInfo As AlarmOpenRecordSetInfo
' Select the last 100 alarms in the alarm history table
myAlarmOpenRecordSetInfo.SelectFields.AllFields = True
myAlarmOpenRecordSetInfo.SelectFields.Timestamp.OrderBy = True
myAlarmOpenRecordSetInfo.SelectFields.Timestamp.Descending = True
myAlarmOpenRecordSetInfo.AlarmCriteria.AlarmType = ihALARM_CONDITION_HIST
myAlarmOpenRecordSetInfo.AlarmCriteria.MaxRecords = 100
Dim myAlarmRecordSet As AlarmRecordSet
Set myAlarmRecordSet = MyServer.Alarms.AlarmRecordSet(myAlarmOpenRecordSetInfo)
AllFields Method (DataFields Object)
Specifies that all DataFields should be returned in the DataRecordset query.
Syntax
Syntax object.AllFields
Parameters
None.
Returns
None.
AllFields Method (MessageFields Object)
Specifies that all MessageFields should be returned in the MessageRecordset query.
Syntax
object.AllFields
Parameters
None.
Returns
None.
AllFields Method (TagFields Object)
Sets all fields for retrieval in the TagRecordset query.
Syntax
object.AllFields
Parameters
None.
Returns
None.
Backup Alarms Method
Backs up or saves a copy of the alarms to an offline file.
Syntax
object.BackupAlarms
Name | Data Type | Description |
---|---|---|
BackupFile | String | The file that stores the backup alarm data. |
StartTime | Date | Start time of the alarm data. |
EndTime | Date | End time of the alarm data. |
Returns
Boolean. Returns TRUE if the alarms are backed up.
Dim Status As ihStatus
Dim ReturnStatus As Boolean
Dim AlarmsStartTime As ihTimeStruct
Dim AlarmsEndTime As ihTimeStruct Status = ihSTATUS_FAILED ReturnStatus = False
AlarmsStartTime = Date_To_UTC(StartTime) AlarmsEndTime = Date_To_UTC(EndTime)
On Error GoTo errc
Status = ihBackupAlarms(MyServer.Handle, BackupFile, AlarmsStartTime, AlarmsEndTime, 0)
If Status <> ihSTATUS_OK Then err.Raise 1, , "Error while performing Backup alarms [" + ErrorDescription(Status) ReturnStatus = True
BackupAlarms = ReturnStatus errc:
zLastError = "Backup Alarms >> " + err.Description
BackupAlarms = ReturnStatusEnd Function
Backup Method (Archive Object)
Performs an online backup of the specified archive by stopping inbound data flow and copying an image of the specified archive into the file identified by the BackupFileName parameter.
When the online backup operation completes, the archive returns to normal operation and accepts inbound data flow.
Syntax
object.Backup(BackupFileName As String, Optional DataStoreName As String)
Name | Data Type | Description |
---|---|---|
BackupFileName | String | Fully qualified name of the backup file (read-only). |
DataStoreName | String | Name of the data store to which the backup file belongs. This is an optional parameter. |
Returns
Boolean. Returns whether or not the BackupFile operation succeeded.
Dim BackupFilename As String
BackupFilename = ArchiverLauncher.Archives & "\TheCurrentArchive.ZIP"
Set MyArchives = GetServer.Archives
' Find The Current Archive, Then Initiate A Backup
With MyArchives
For I = 1 To .Item.count
If .Item(I).IsCurrent Then
If Not .Item(I).Backup(BackupFilename) Then
err.Raise 1, "Backup", "Backup Failed"
End If
End If
Next I
End With
BackupEx Method (Archive Object)
Performs an online backup of the specified archive by stopping inbound data flow and copying an image of the specified archive into the file identified by the BackupFileName parameter.
When the online backup operation completes, the archive returns to normal operation and accepts inbound data flow.
The Ex method will process messages for a client window while waiting for the backup to complete (so clients do not appear to be frozen.
Syntax
object.BackupEx(BackupFileName As String, hWnd As Long, DataStoreName As String)
Name | Data Type | Description |
---|---|---|
BackupFileName | String | Fully qualified name of the backup file (read-only) |
hWnd | Long | The handle of the window to keep alive. |
DataStoreName | String | Name of the data store. This is an optional parameter. |
Returns
Boolean. Returns whether or not the BackupFile operation succeeded.
Dim BackupFilename As String
BackupFilename = ArchiverLauncher.Archives & "\TheCurrentArchive.ZIP" Set MyArchives = GetServer.Archives
' Find The Current Archive, Then Initiate A Backup
With MyArchives
For I = 1 To .Item.count
If .Item(I).IsCurrent Then
If Not .Item(I).Backup(BackupFilename)
Then err.Raise 1, "Backup", "Backup Failed"
End If
End If
Next I
End With
Browse Method (OPCBrowse Object)
Populates the Browse Object with sources and areas for the current browse position.
Syntax
object.Browse(theServer, theCollector)
Name | Data Type | Description |
---|---|---|
theServer | Variant | The Server Object for the Historian Server. |
theCollector | Variant | The Collector Object for the Collector to Browse. |
Returns
Boolean. Returns whether or not the Browse operation succeeded.
BrowseCollector Method (TagRecordset Object)
Browses a collector for its available tags.
Syntax
object.BrowseCollector(CollectorName, AdditionsOnly, SourceFilter, DescriptionFilter, [BrowsePosition], [Recursive])
Name | Data Type | Description |
---|---|---|
CollectorName | String | The name of the collector to browse. |
AdditionsOnly | Boolean | Browse only tags that are additions to the Historian server. |
SourceFilter | String | The tag source address filter. |
DescriptionFilter | String | The tag description filter. |
BrowsePosition | String | The browse position when performing an OPC hierarchical browse (optional, default = ""). |
Recursive | Boolean | Whether to perform an OPC hierarchical browse (optional, default = False). |
Returns
Boolean. Success/Failure.
BrowseTags Method (Collector Object)
BrowseTags is available for collection in the data source. The tags can then be added to the archiver using the WriteRecordSet Method.
Syntax
object.BrowseTags([AdditionsOnly], [SourceFilter], [DescriptionFilter], [BrowsePosition], [Recursive])
Name | Data Type | Description |
---|---|---|
AdditionsOnly | Boolean | Browse only tags that are additions to the Historian server (optional, default = True). |
SourceFilter | String | The tag source address filter (optional, default = ""). |
DescriptionFilter | String | The tag description filter (optional, default = ""). |
BrowsePosition | String | The browse position when performing an OPC hierarchical browse (optional, default = ""). |
Recursive | Boolean | Whether to perform an OPC hierarchical browse (optional, default = False). |
Returns
TagRecordset. Returns a reference to the tag record that resulted from browsing the selected collector.
Dim MyNewTags As iHistorian_SDK.TagRecordset
' Request The Collector To Browse Its Tag Source
Set MyNewTags = MyCollectors.Item("USIM031_OPC1").BrowseTags
' Modify Tag Records In Recordset To Add Additional Configuration Information
' Go Ahead And Add New Tags To System
If Not MyNewTags.WriteRecordset Then
err.Raise 1, , "TagRecordset.WriteRecord failed: " + MyNewTags.LastError
End If