Page 1 of 1

issue Reading DT (date and time) from opc ua siemens

Posted: 14 May 2020, 11:20
by asdin
I'm trying to read the date and time (#DT) from Opc ua Server (Siemens) using opc ua DLLs of unifiedautomation. But i get wrong value:
siemens S7 1500 opc ua client DT#2008-10-25-08:12:34.567 --> 17.09.1142 05:08:27

I'm using the following code:

Code: Select all

var td = ReadValue(NodeId).ToByteArray();
long temp = BitConverter.ToInt64(td, 0);
DateTime dateTimeVar = new DateTime(temp); 
ReadValue function:

Code: Select all

public Variant ReadValue(string VariableIdentifier)
{
            Variant data = new Variant();

            List<DataValue> results = read(VariableIdentifier);
            if (results.Count > 0)
            {
                if (StatusCode.IsGood(results[0].StatusCode))
                {
                    data = results[0].WrappedValue;
                    m_OpcError = "OK";
                }
                else
                {
                    m_OpcError = results[0].StatusCode.Message;
                }
            }
            else
            {
                m_OpcError = "ReadValue function: it Couldn't read data from OPC UA Server (empty data)";
            }

            return data;
}        

Re: issue Reading DT (date and time) from opc ua siemens

Posted: 16 Sep 2020, 17:56
by Support Team
Hello,

You should to use the method Variant.ToDateTime().