Zenon Historian values

Zenon Historian values

Hello,

how can I get the last-minute data (timestamp and value) from a Zenon Historian using C# addin.

This code give me just the last value:
  1. using System;
    using Scada.AddIn.Contracts;
    using Scada.AddIn.Contracts.Historian;
    using System.Diagnostics;
    
    namespace Samples
    {
        [AddInExtension("Historian.RuntimeArchiveValue", "Project Wizard to create a filter, add variables to it and print out the values", "Samples")]
        public class ProjectWizardExtension_Historian_RuntimeArchiveValue : IProjectWizardExtension
        {
            public void Run(IProject context, IBehavior behavior)
            {
                IRuntimeArchive runtimeArchive = context.RuntimeArchiveCollection[0];
    
                if (runtimeArchive == null)
                {
                    //There is no archive, the user will be informed...
                    Debug.Print("No archive available!");
                    return;
                }
                IRuntimeArchiveFilter ArchiveFilter = runtimeArchive.FilterCollection.Create();
    
                for (int i = 0; i < runtimeArchive.VariableCollection.Count; ++i)
                {
                    //Add every archive variable to the archive filter
                    ArchiveFilter.AddVariable(runtimeArchive.VariableCollection[i]);
                }
    
                IRuntimeArchiveFilterVariableCollection ArchiveVariables = ArchiveFilter.Query();
    
                //Get the first available filtered variable
                IRuntimeArchiveFilterVariable ArchiveFilterVariable = ArchiveVariables[0];
    
                if (ArchiveFilterVariable == null)
                {
                    //If there is no variable available, inform the user
                    Debug.Print("No filtered archive variable available!");
                    return;
                }
    
                ArchiveFilterVariable.ArchiveValueCollection.Create();
                IRuntimeArchiveValue ArchiveValue = ArchiveFilterVariable.ArchiveValueCollection[0];
    
                if (ArchiveValue == null)
                {
                    //No value available
                    Debug.Print("No value available!");
                }
                else
                {
                    //Output some information of the value
                    Debug.Print("Date / Time: " + ArchiveValue.Time.ToString());
    
                    Debug.Print("Recorded Value: " + ArchiveValue.Value);
    
                    Debug.Print("State: &H" + ArchiveValue.HigherState.ToString());
                }
            }
        }
    }

Could somebody help me?

Thank you in advance.





    Disclaimer

    This document governs the use of our Community Forum. By registering and using the platform, you accept these conditions.

    The COPA-DATA Community Forum serves to encourage the exchange of information and experience about the zenon software between forum users respectively zenon users.

    Please mind that any published information on the Community Forum is the subjective opinion and view based on the experience and the level of knowledge of the author. COPA-DATA does not overtake any responsibility for the content and the accuracy of the shared information.

    Users of the Community Forum are encouraged to share only well-founded experiences and to point out any risks associated with the implementation of proposed solutions to problems. COPA-DATA at its absolute discretion, reserves the right to moderate the forum. In this connection COPA-DATA may remove any information containing false facts, potentially dangerous solutions, bad language or content that may insult, degrade or discriminate others. COPA-DATA may block a non-complying user from forum access if the user violated this provision.

    COPA-DATA reserves the right to change this document from time to time at own discretion.


    Ing. Punzenberger COPA-DATA GmbH
    Karolingerstraße 7b · 5020 Salzburg · Austria
    www.copadata.com