Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- Public connectedServer As Object
- Public myServerManager As Object
- Private Sub TestBrowseFunction()
- Call BrowseTagsFromHistorianCollector("SVNF-IFIX-HIS01", "SVNF-IFIX-SCA01_iFIX")
- End Sub
- Public Function BrowseTagsFromHistorianCollector(ByVal HistServer As String, ByVal HistCollector As String, Optional AdditionsOnly As Boolean = False, Optional SourceFilter As String = "*", Optional DescriptionFilter As String = "*")
- On Error Resume Next
- Dim MyTags As Variant
- Dim Tag As Variant
- Set connectedServer = Nothing
- Set MyServerManager = CreateObject("iHistorian_SDK.ServerManager")
- DoEvents
- 'Make sure Historian is installed correctly'
- If MyServerManager Is Nothing Then
- Err.Raise 0, , "Error Creating iHistorian Server Manager - please check to see if Historain Client is correctly installed on your system", vbOKOnly, "test"
- Exit Function
- End If
- 'Create iHistorian server object'
- Set connectedServer = CreateObject("iHistorian_SDK.Server")
- 'Check to see if the connection is established, else connect.'
- If CheckConnection = False Then connectedServer.Connect (HistServer)
- If CheckConnection = True Then
- 'Browse the collector for tags.'
- Set MyTags = connectedServer.collectors.Item(HistCollector).BrowseTags(AdditionsOnly, SourceFilter, DescriptionFilter)
- 'Loop all the tags from the collector'
- For Each Tag In MyTags.Item
- 'INSERT CODE TO DO FOR EACH TAG HERE!'
- Debug.Print Tag.tagName
- Next
- End If
- End Function
- ' make sure that we are connected to a server'
- Public Function CheckConnection() As Boolean
- On Error GoTo errc
- If connectedServer Is Nothing Then
- CheckConnection = False
- Exit Function
- End If
- If Not connectedServer.Connected Then
- CheckConnection = False
- Exit Function
- End If
- If connectedServer.ServerTime < CDate("1/1/1970") Then
- CheckConnection = False
- Exit Function
- End If
- CheckConnection = True
- Exit Function
- errc:
- CheckConnection = False
- End Function
- tsStatus.Text = "Connecting to " + HistServer;
- try
- {
- connectedServer = new iHistorian_SDK.Server();
- connectedServer.Connect(HistServer);
- tsStatus.Text = "Connected to " + HistServer;
- }
- catch (Exception ex)
- {
- Debug.Print("Server connection threw exception: " + ex);
- tsStatus.Text = "Failed connecting to " + HistServer;
- }
- Set MyTags = connectedServer.collectors.Item(HistCollector).BrowseTags(AdditionsOnly, SourceFilter, DescriptionFilter)
- iHistorian_SDK.TagRecordset MyTags;
- MyTags = new iHistorian_SDK.TagRecordset();
- MyTags = connectedServer.Collectors.Item("SVNF-IFIX-SCA01_iFIX").BrowseTags(false, "*", "*");
- TagQueryParams query = new TagQueryParams();
- List<Tag> list = new List<Tag>(), temp = null;
- query.Criteria.TagnameMask = "*";
- // simple query
- connection.ITags.Query(ref query, out list);
- // paged query
- list.Clear();
- query.PageSize = 100; // return at most 100 results per request
- while (connection.ITags.Query(ref query, out temp))
- list.AddRange(temp);
- list.AddRange(temp);
- ServerConnection serverConnection = new ServerConnection(
- new ConnectionProperties
- {
- ServerHostName = "MyHistorianHostName",
- Username = "MyUserName",
- Password = "MyPassword",
- ServerCertificateValidationMode = CertificateValidationMode.None
- });
- serverConnection.Connect();
- List<Tag> tagList = new List<Tag>();
- TagQueryParams tagQueryParams = new TagQueryParams
- {
- Criteria = new TagCriteria { TagnameMask = "*" }, // Wilcard, get all tags.
- Categories = Tag.Categories.All, // Change this to Basic fo mimimal info.
- PageSize = 100 // The batch size of the while loop below..
- };
- bool isQuery = true;
- while (isQuery)
- {
- isQuery = serverConnection.ITags.Query(ref tagQueryParams, out var tags);
- tagList.AddRange(tags);
- }
- // At this point, tagList contains a list of tags that matched your wildcard filter.
- var doSomethingWithTagList = tagList;
Add Comment
Please, Sign In to add comment