OPC Studio User's Guide and Reference
EasyUAServer Class
Members  Example 



OpcLabs.ServerOpcUAComponents Assembly > OpcLabs.EasyOpc.UA Namespace : EasyUAServer Class
Allows simple creation of OPC Unified Architecture servers (OPC Wizard).
Syntax
'Declaration
 
<ComVisibleAttribute(False)>
<ExceptionContractAnnotationAttribute(True)>
<GuidAttribute("79726808-BB45-4374-B3AF-DBA335CB6FAF")>
<TypeConverterAttribute(System.ComponentModel.ExpandableObjectConverter)>
<CLSCompliantAttribute(True)>
<DesignerCategoryAttribute("Component")>
<SerializableAttribute()>
Public NotInheritable Class EasyUAServer 
   Inherits EasyUAServerCore
   Implements OpcLabs.BaseLib.ComponentModel.Internal.IComponentCallback, OpcLabs.BaseLib.ComponentModel.Internal.IComponentNotify, OpcLabs.BaseLib.ComponentModel.IReadOnlyStartable, OpcLabs.BaseLib.ComponentModel.IStartableEvents, OpcLabs.BaseLib.ILicenseInfoProvider, OpcLabs.BaseLib.IValueEquatable, OpcLabs.BaseLib.Licensing.ILicensingContextHolder, OpcLabs.BaseLib.Widgets.ComTypes._NotifyingWidget, OpcLabs.BaseLib.Widgets.ComTypes._Widget, OpcLabs.BaseLib.Widgets.IWidget, IEasyUAServer, IEasyUAServerEndpointMonitoring, IEasyUAServerSettings, OpcLabs.EasyOpc.UA.NodeSpace.IUAGenericServerEvents, OpcLabs.EasyOpc.UA.Services.IEasyUAServerConnectionMonitoring, OpcLabs.EasyOpc.UA.Services.Internal.IEasyUAServerSubscriptionMonitoring, System.Collections.Generic.IEnumerable(Of UAServerNode), System.Collections.IEnumerable, System.ComponentModel.IComponent, System.ICloneable, System.IDisposable, System.IServiceProvider, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable 
'Usage
 
Dim instance As EasyUAServer
[ComVisible(false)]
[ExceptionContractAnnotation(true)]
[Guid("79726808-BB45-4374-B3AF-DBA335CB6FAF")]
[TypeConverter(System.ComponentModel.ExpandableObjectConverter)]
[CLSCompliant(true)]
[DesignerCategory("Component")]
[Serializable()]
public sealed class EasyUAServer : EasyUAServerCore, OpcLabs.BaseLib.ComponentModel.Internal.IComponentCallback, OpcLabs.BaseLib.ComponentModel.Internal.IComponentNotify, OpcLabs.BaseLib.ComponentModel.IReadOnlyStartable, OpcLabs.BaseLib.ComponentModel.IStartableEvents, OpcLabs.BaseLib.ILicenseInfoProvider, OpcLabs.BaseLib.IValueEquatable, OpcLabs.BaseLib.Licensing.ILicensingContextHolder, OpcLabs.BaseLib.Widgets.ComTypes._NotifyingWidget, OpcLabs.BaseLib.Widgets.ComTypes._Widget, OpcLabs.BaseLib.Widgets.IWidget, IEasyUAServer, IEasyUAServerEndpointMonitoring, IEasyUAServerSettings, OpcLabs.EasyOpc.UA.NodeSpace.IUAGenericServerEvents, OpcLabs.EasyOpc.UA.Services.IEasyUAServerConnectionMonitoring, OpcLabs.EasyOpc.UA.Services.Internal.IEasyUAServerSubscriptionMonitoring, System.Collections.Generic.IEnumerable<UAServerNode>, System.Collections.IEnumerable, System.ComponentModel.IComponent, System.ICloneable, System.IDisposable, System.IServiceProvider, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable  
[ComVisible(false)]
[ExceptionContractAnnotation(true)]
[Guid("79726808-BB45-4374-B3AF-DBA335CB6FAF")]
[TypeConverter(System.ComponentModel.ExpandableObjectConverter)]
[CLSCompliant(true)]
[DesignerCategory("Component")]
[Serializable()]
public ref class EasyUAServer sealed : public EasyUAServerCore, OpcLabs.BaseLib.ComponentModel.Internal.IComponentCallback, OpcLabs.BaseLib.ComponentModel.Internal.IComponentNotify, OpcLabs.BaseLib.ComponentModel.IReadOnlyStartable, OpcLabs.BaseLib.ComponentModel.IStartableEvents, OpcLabs.BaseLib.ILicenseInfoProvider, OpcLabs.BaseLib.IValueEquatable, OpcLabs.BaseLib.Licensing.ILicensingContextHolder, OpcLabs.BaseLib.Widgets.ComTypes._NotifyingWidget, OpcLabs.BaseLib.Widgets.ComTypes._Widget, OpcLabs.BaseLib.Widgets.IWidget, IEasyUAServer, IEasyUAServerEndpointMonitoring, IEasyUAServerSettings, OpcLabs.EasyOpc.UA.NodeSpace.IUAGenericServerEvents, OpcLabs.EasyOpc.UA.Services.IEasyUAServerConnectionMonitoring, OpcLabs.EasyOpc.UA.Services.Internal.IEasyUAServerSubscriptionMonitoring, System.Collections.Generic.IEnumerable<UAServerNode>, System.Collections.IEnumerable, System.ComponentModel.IComponent, System.ICloneable, System.IDisposable, System.IServiceProvider, System.Runtime.Serialization.ISerializable, System.Xml.Serialization.IXmlSerializable  
Example
// This example shows how to create an OPC UA server with a single data variable, start and stop it.
// 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 OpcLabs.EasyOpc.UA;
using OpcLabs.EasyOpc.UA.NodeSpace;

namespace UAServerDocExamples._EasyUAServer
{
    class Start_Stop
    {
        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();

            // Define a data variable providing random integers.
            var random = new Random();
            server.Add(new UADataVariable("MyDataVariable").ReadValueFunction(() => random.Next()));

            // 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();

            Console.WriteLine("The server is stopped.");
        }
    }
}
' This example shows how to create an OPC UA server with a single data variable, start and stop it.
' 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 OpcLabs.EasyOpc.UA
Imports OpcLabs.EasyOpc.UA.NodeSpace

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

            ' Define a data variable providing random integers.
            Dim random = New Random()
            server.Add(New UADataVariable("MyDataVariable").ReadValueFunction(Function() random.Next()))

            ' 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()

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

System.Object
   System.MarshalByRefObject
      System.ComponentModel.Component
         OpcLabs.BaseLib.Widgets.Widget
            OpcLabs.BaseLib.Widgets.NotifyingWidget
               OpcLabs.EasyOpc.UA.EasyUAServerCore
                  OpcLabs.EasyOpc.UA.EasyUAServer

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