Gets a value of OPC property of a specified OPC item. Gets a value of OPC property, using individual parameters specifying the OPC server, and OPC Item ID.
Syntax
Parameters
- client
- The client object that will perform the operation.
- machineName
- Name of the machine. Determines the computer on which the OPC server is located. May be an empty string, in which case the OPC server is assumed to exist on the local computer or at the computer specified for it by DCOM configuration.
- serverClass
- Contains ProgID of the OPC server to read from.
- itemId
- The Item ID of the OPC item involved in the operation.
- propertyId
- The Property ID of the OPC property being obtained
Return Value
If successful, the function returns the actual value of the OPC property requested.
Exceptions
Example
// This example shows how to get a value of a single OPC property.
//
// Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the
// case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run
// IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may
// also subscribe to the item in order to assure that it remains active.
using System;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.OperationModel;
namespace DocExamples.DataAccess._EasyDAClient
{
partial class GetPropertyValue
{
public static void Main1()
{
// Instantiate the client object.
var client = new EasyDAClient();
object value;
try
{
value = client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random",
DAPropertyIds.Timestamp);
}
catch (OpcException opcException)
{
Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message);
return;
}
Console.WriteLine(value);
}
}
}
' This example shows how to get a value of a single OPC property.
'
' Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the
' case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run
' IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may
' also subscribe to the item in order to assure that it remains active.
Imports OpcLabs.EasyOpc.DataAccess
Imports OpcLabs.EasyOpc.OperationModel
Namespace DocExamples.DataAccess._EasyDAClient
Partial Friend Class GetPropertyValue
Public Shared Sub Main1()
Dim client = New EasyDAClient()
Dim value As Object
Try
value = client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", DAPropertyIds.Timestamp)
Catch opcException As OpcException
Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message)
Exit Sub
End Try
Console.WriteLine(value)
End Sub
End Class
End Namespace
// This example shows how to obtain a data type of an OPC item.
using System;
using OpcLabs.BaseLib.ComInterop;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.OperationModel;
namespace DocExamples.DataAccess._EasyDAClient
{
partial class GetPropertyValue
{
public static void DataType()
{
// Instantiate the client object.
var client = new EasyDAClient();
// Get the value of DataType property; it is a 16-bit signed integer
short dataType;
try
{
dataType = (short)client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random",
DAPropertyIds.DataType);
}
catch (OpcException opcException)
{
Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message);
return;
}
// Convert the data type to VarType
var varType = (VarType)dataType;
// Display the obtained data type
Console.WriteLine("DataType: {0}", dataType); // Display data type as numerical value
Console.WriteLine("VarType: {0}", varType); // Display data type symbolically
// Code below illustrates how decisions can be made based on type
switch (varType.InternalValue)
{
case VarTypes.R8:
Console.WriteLine("The data type is VarTypes.R8, as we expected.");
break;
// other cases may come here ...
default:
Console.WriteLine("The data type is not as we expected!");
break;
}
}
}
}
' This example shows how to obtain a data type of an OPC item.
Imports OpcLabs.BaseLib.ComInterop
Imports OpcLabs.EasyOpc.DataAccess
Imports OpcLabs.EasyOpc.OperationModel
Namespace DocExamples.DataAccess._EasyDAClient
Partial Friend Class GetPropertyValue
Public Shared Sub DataType()
Dim client = New EasyDAClient()
' Get the value of DataType property; it is a 16-bit signed integer
Dim aDataType As Short
Try
aDataType = CShort(Fix(client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", DAPropertyIds.DataType)))
Catch opcException As OpcException
Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message)
Exit Sub
End Try
' Convert the data type to VarType
Dim varType = CType(aDataType, VarType)
' Display the obtained data type
Console.WriteLine("DataType: {0}", aDataType) ' Display data type as numerical value
Console.WriteLine("VarType: {0}", varType) ' Display data type symbolically
' Code below illustrates how decisions can be made based on type
Select Case varType
Case VarTypes.R8
Console.WriteLine("The data type is VarTypes.R8, as we expected.")
' other cases may come here ...
Case Else
Console.WriteLine("The data type is not as we expected!")
End Select
End Sub
End Class
End Namespace
// This example shows how to get a value of a single OPC property.
//
// Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the
// case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run
// IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may
// also subscribe to the item in order to assure that it remains active.
using System;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.OperationModel;
namespace DocExamples.DataAccess._EasyDAClient
{
partial class GetPropertyValue
{
public static void Main1()
{
// Instantiate the client object.
var client = new EasyDAClient();
object value;
try
{
value = client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random",
DAPropertyIds.Timestamp);
}
catch (OpcException opcException)
{
Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message);
return;
}
Console.WriteLine(value);
}
}
}
' This example shows how to get a value of a single OPC property.
'
' Note that some properties may not have a useful value initially (e.g. until the item is activated in a group), which also the
' case with Timestamp property as implemented by the demo server. This behavior is server-dependent, and normal. You can run
' IEasyDAClient.ReadItemValue.Main.vbs shortly before this example, in order to obtain better property values. Your code may
' also subscribe to the item in order to assure that it remains active.
Imports OpcLabs.EasyOpc.DataAccess
Imports OpcLabs.EasyOpc.OperationModel
Namespace DocExamples.DataAccess._EasyDAClient
Partial Friend Class GetPropertyValue
Public Shared Sub Main1()
Dim client = New EasyDAClient()
Dim value As Object
Try
value = client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", DAPropertyIds.Timestamp)
Catch opcException As OpcException
Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message)
Exit Sub
End Try
Console.WriteLine(value)
End Sub
End Class
End Namespace
// This example shows how to obtain a data type of an OPC item.
using System;
using OpcLabs.BaseLib.ComInterop;
using OpcLabs.EasyOpc.DataAccess;
using OpcLabs.EasyOpc.OperationModel;
namespace DocExamples.DataAccess._EasyDAClient
{
partial class GetPropertyValue
{
public static void DataType()
{
// Instantiate the client object.
var client = new EasyDAClient();
// Get the value of DataType property; it is a 16-bit signed integer
short dataType;
try
{
dataType = (short)client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random",
DAPropertyIds.DataType);
}
catch (OpcException opcException)
{
Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message);
return;
}
// Convert the data type to VarType
var varType = (VarType)dataType;
// Display the obtained data type
Console.WriteLine("DataType: {0}", dataType); // Display data type as numerical value
Console.WriteLine("VarType: {0}", varType); // Display data type symbolically
// Code below illustrates how decisions can be made based on type
switch (varType.InternalValue)
{
case VarTypes.R8:
Console.WriteLine("The data type is VarTypes.R8, as we expected.");
break;
// other cases may come here ...
default:
Console.WriteLine("The data type is not as we expected!");
break;
}
}
}
}
' This example shows how to obtain a data type of an OPC item.
Imports OpcLabs.BaseLib.ComInterop
Imports OpcLabs.EasyOpc.DataAccess
Imports OpcLabs.EasyOpc.OperationModel
Namespace DocExamples.DataAccess._EasyDAClient
Partial Friend Class GetPropertyValue
Public Shared Sub DataType()
Dim client = New EasyDAClient()
' Get the value of DataType property; it is a 16-bit signed integer
Dim aDataType As Short
Try
aDataType = CShort(Fix(client.GetPropertyValue("", "OPCLabs.KitServer.2", "Simulation.Random", DAPropertyIds.DataType)))
Catch opcException As OpcException
Console.WriteLine("*** Failure: {0}", opcException.GetBaseException().Message)
Exit Sub
End Try
' Convert the data type to VarType
Dim varType = CType(aDataType, VarType)
' Display the obtained data type
Console.WriteLine("DataType: {0}", aDataType) ' Display data type as numerical value
Console.WriteLine("VarType: {0}", varType) ' Display data type symbolically
' Code below illustrates how decisions can be made based on type
Select Case varType
Case VarTypes.R8
Console.WriteLine("The data type is VarTypes.R8, as we expected.")
' other cases may come here ...
Case Else
Console.WriteLine("The data type is not as we expected!")
End Select
End Sub
End Class
End Namespace
Requirements
Target Platforms: .NET Framework: Windows 10 (selected versions), Windows 11 (selected versions), Windows Server 2012, Windows Server 2016; .NET Core, .NET 5, .NET 6: Linux, macOS, Microsoft Windows
See Also