OPC Studio User's Guide and Reference
WriteAttributeData Property
Example 



OpcLabs.ServerOpcUA Assembly > OpcLabs.EasyOpc.UA.NodeSpace Namespace > UADataVariable Class : WriteAttributeData Property
The variable data (value, timestamp, status code) modified by OPC writes.
Syntax
'Declaration
 
<NotNullAttribute()>
Public Overridable Property WriteAttributeData As UAAttributeData
'Usage
 
Dim instance As UADataVariable
Dim value As UAAttributeData
 
instance.WriteAttributeData = value
 
value = instance.WriteAttributeData
[NotNull()]
public virtual UAAttributeData WriteAttributeData {get; set;}
[NotNull()]
public:
virtual property UAAttributeData^ WriteAttributeData {
   UAAttributeData^ get();
   void set (    UAAttributeData^ value);
}

Property Value

The value of this property cannot be null (Nothing in Visual Basic).

Exceptions
ExceptionDescription

One of the arguments provided to a method is not valid.

This is a usage error, i.e. it will never occur (the exception will not be thrown) in a correctly written program. Your code should not catch this exception.

A null reference (Nothing in Visual Basic) is passed to a method that does not accept it as a valid argument.

This is a usage error, i.e. it will never occur (the exception will not be thrown) in a correctly written program. Your code should not catch this exception.

Remarks

The Write event is raised before this write value is set.

Setting this property does not update ReadAttributeData, even if WriteLoopback is set to true. If you want to make use of WriteLoopback, use the method UpdateWriteAttributeData instead.

Example
// This example shows how to retrieve the attribute data in the pull data consumption model. In this model, the data that
// OPC clients write to the server is pulled and processed by your code when needed.
// You can use any OPC UA client, including our Connectivity Explorer and OpcCmd utility, to connect to the server. 
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client, server and subscriber examples in C# on GitHub: https://github.com/OPCLabs/Examples-OPCStudio-CSharp .
// Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
// a commercial license in order to use Online Forums, and we reply to every post.

using System;
using System.Timers;
using OpcLabs.EasyOpc.UA;
using OpcLabs.EasyOpc.UA.NodeSpace;

namespace UAServerDocExamples._UADataVariable
{
    class WriteAttributeData
    {
        public static void Main1()
        {
            // Instantiate the server object.
            // By default, the server will run on endpoint URL "opc.tcp://localhost:48040/".
            var server = new EasyUAServer();

            // Create a read-write data variable with an initial value.
            var dataVariable = UADataVariable.CreateIn(server.Objects, "WriteToThisVariable").ReadWriteValue(0);

            // Create a timer for pulling the data from OPC writes. In a real server the activity may also come from other
            // sources.
            var timer = new Timer
            {
                Interval = 1000,
                AutoReset = true,
            };

            // Periodically display the value of the data variable on the console.
            timer.Elapsed += (sender, args) => Console.Write($"  {dataVariable.WriteAttributeData.Value}");
            timer.Start();
            Console.WriteLine("Values of the example data variable are displayed on the console periodically.");

            // Start the server.
            Console.WriteLine("The server is starting...");
            server.Start();

            Console.WriteLine("The server is started.");
            Console.WriteLine();

            // Let the user decide when to stop.
            Console.WriteLine("Press Enter to stop the server...");
            Console.ReadLine();

            // Stop the server.
            Console.WriteLine("The server is stopping...");
            server.Stop();

            // Stop the timer.
            timer.Stop();

            Console.WriteLine("The server is stopped.");
        }
    }
}
' This example shows how to retrieve the attribute data in the pull data consumption model. In this model, the data that
' OPC clients write to the server is pulled and processed by your code when needed.
' You can use any OPC UA client, including our Connectivity Explorer and OpcCmd utility, to connect to the server. 
'
' Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
' OPC client and subscriber examples in VB.NET on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBNET .
' Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
' a commercial license in order to use Online Forums, and we reply to every post.

Imports System
Imports System.Timers
Imports OpcLabs.EasyOpc.UA
Imports OpcLabs.EasyOpc.UA.NodeSpace

Namespace _UADataVariable
    Partial Friend Class WriteAttributeData
        Shared Sub Main1()
            ' Instantiate the server object.
            ' By default, the server will run on endpoint URL "opc.tcp://localhost:48040/".
            Dim server = New EasyUAServer()

            ' Create a read-write data variable with an initial value.
            Dim dataVariable = UADataVariable.CreateIn(server.Objects, "WriteToThisVariable").ReadWriteValue(0)

            ' Create a timer for pulling the data from OPC writes. In a real server the activity may also come from other
            ' sources.
            Dim timer = New Timer With
            {
                .Interval = 1000,
                .AutoReset = True
            }

            ' Periodically display the value of the data variable on the console.
            AddHandler timer.Elapsed, Sub(sender, args) Console.Write($"  {dataVariable.WriteAttributeData.Value}")
            timer.Start()
            Console.WriteLine("Values of the example data variable are displayed on the console periodically.")

            ' Start the server.
            Console.WriteLine("The server is starting...")
            server.Start()

            Console.WriteLine("The server is started.")
            Console.WriteLine()

            ' Let the user decide when to stop.
            Console.WriteLine("Press Enter to stop the server...")
            Console.ReadLine()

            ' Stop the server.
            Console.WriteLine("The server is stopping...")
            server.Stop()

            ' Stop the timer.
            timer.Stop()

            Console.WriteLine("The server is stopped.")
        End Sub
    End Class
End Namespace
Requirements

Target Platforms: .NET Framework: Windows 10 (selected versions), Windows 11 (selected versions), Windows Server 2016, Windows Server 2022; .NET: Linux, macOS, Microsoft Windows

See Also