// This example shows how to write values into 3 items at once.
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client and subscriber examples in Object Pascal (Delphi) on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-OP .
// 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.
class procedure WriteMultipleItemValues.Main;
var
Arguments: OleVariant;
Client: OpcLabs_EasyOpcClassic_TLB._EasyDAClient;
I: Cardinal;
ItemValueArguments1: _DAItemValueArguments;
ItemValueArguments2: _DAItemValueArguments;
ItemValueArguments3: _DAItemValueArguments;
Results: OleVariant;
OperationResult: _OperationResult;
begin
ItemValueArguments1 := CoDAItemValueArguments.Create;
ItemValueArguments1.ServerDescriptor.ServerClass := 'OPCLabs.KitServer.2';
ItemValueArguments1.ItemDescriptor.ItemID := 'Simulation.Register_I4';
ItemValueArguments1.Value := 23456;
ItemValueArguments2 := CoDAItemValueArguments.Create;
ItemValueArguments2.ServerDescriptor.ServerClass := 'OPCLabs.KitServer.2';
ItemValueArguments2.ItemDescriptor.ItemID := 'Simulation.Register_R8';
ItemValueArguments2.Value := 2.34567890;
ItemValueArguments3 := CoDAItemValueArguments.Create;
ItemValueArguments3.ServerDescriptor.ServerClass := 'OPCLabs.KitServer.2';
ItemValueArguments3.ItemDescriptor.ItemID := 'Simulation.Register_BSTR';
ItemValueArguments3.Value := 'ABC';
Arguments := VarArrayCreate([0, 2], varVariant);
Arguments[0] := ItemValueArguments1;
Arguments[1] := ItemValueArguments2;
Arguments[2] := ItemValueArguments3;
// Instantiate the client object
Client := CoEasyDAClient.Create;
// Modify values of nodes
TVarData(Results).VType := varArray or varVariant;
TVarData(Results).VArray := PVarArray(
Client.WriteMultipleItemValues(Arguments));
// Display results
for I := VarArrayLowBound(Results, 1) to VarArrayHighBound(Results, 1) do
begin
OperationResult := IInterface(Results[I]) as _OperationResult;
if OperationResult.Succeeded then
WriteLn('Result ', I, ' success')
else
WriteLn('Result ', I, ' *** Failure: ', OperationResult.Exception.GetBaseException.Message);
end;
VarClear(Results);
VarClear(Arguments);
end;
// This example shows how to write values into 3 items at once.
//
// Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
// OPC client and subscriber examples in PHP on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-PHP .
// 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.
$ItemValueArguments1 = new COM("OpcLabs.EasyOpc.DataAccess.OperationModel.DAItemValueArguments");
$ItemValueArguments1->ServerDescriptor->ServerClass = "OPCLabs.KitServer.2";
$ItemValueArguments1->ItemDescriptor->ItemID = "Simulation.Register_I4";
$ItemValueArguments1->Value = 23456;
$ItemValueArguments2 = new COM("OpcLabs.EasyOpc.DataAccess.OperationModel.DAItemValueArguments");
$ItemValueArguments2->ServerDescriptor->ServerClass = "OPCLabs.KitServer.2";
$ItemValueArguments2->ItemDescriptor->ItemID = "Simulation.Register_R8";
$ItemValueArguments2->Value = 2.34567890;
$ItemValueArguments3 = new COM("OpcLabs.EasyOpc.DataAccess.OperationModel.DAItemValueArguments");
$ItemValueArguments3->ServerDescriptor->ServerClass = "OPCLabs.KitServer.2";
$ItemValueArguments3->ItemDescriptor->ItemID = "Simulation.Register_BSTR";
$ItemValueArguments3->Value = "ABC";
$arguments[0] = $ItemValueArguments1;
$arguments[1] = $ItemValueArguments2;
$arguments[2] = $ItemValueArguments3;
$Client = new COM("OpcLabs.EasyOpc.DataAccess.EasyDAClient");
$results = $Client->WriteMultipleItemValues($arguments);
for ($i = 0; $i < count($results); $i++)
{
$OperationResult = $results[$i];
if ($OperationResult->Succeeded)
printf("Result %d: success\n", $i);
else
printf("Result s\n", $i, $OperationResult->ErrorMessageBrief);
}
REM This example shows how to write values into 3 items at once.
REM
REM Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
REM OPC client and subscriber examples in Visual Basic on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VB .
REM Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
REM a commercial license in order to use Online Forums, and we reply to every post.
Private Sub WriteMultipleItemValues_Main_Command_Click()
OutputText = ""
Dim itemValueArguments1 As New DAItemValueArguments
itemValueArguments1.serverDescriptor.ServerClass = "OPCLabs.KitServer.2"
itemValueArguments1.ItemDescriptor.itemId = "Simulation.Register_I4"
itemValueArguments1.SetValue 23456
Dim itemValueArguments2 As New DAItemValueArguments
itemValueArguments2.serverDescriptor.ServerClass = "OPCLabs.KitServer.2"
itemValueArguments2.ItemDescriptor.itemId = "Simulation.Register_R8"
itemValueArguments2.SetValue 2.3456789
Dim itemValueArguments3 As New DAItemValueArguments
itemValueArguments3.serverDescriptor.ServerClass = "OPCLabs.KitServer.2"
itemValueArguments3.ItemDescriptor.itemId = "Simulation.Register_BSTR"
itemValueArguments3.SetValue "ABC"
Dim arguments(2) As Variant
Set arguments(0) = itemValueArguments1
Set arguments(1) = itemValueArguments2
Set arguments(2) = itemValueArguments3
' Instantiate the client object
Dim client As New EasyDAClient
' Modify values of nodes
Dim results() As Variant
results = client.WriteMultipleItemValues(arguments)
' Display results
Dim i: For i = LBound(results) To UBound(results)
Dim operationResult As operationResult: Set operationResult = results(i)
If operationResult.Succeeded Then
OutputText = OutputText & "result " & i & " success" & vbCrLf
Else
OutputText = OutputText & "result " & i & " *** Failure: " & operationResult.ErrorMessageBrief & vbCrLf
End If
Next
End Sub
Rem This example shows how to write values into 3 items at once.
Rem
Rem Find all latest examples here: https://opclabs.doc-that.com/files/onlinedocs/OPCLabs-OpcStudio/Latest/examples.html .
Rem OPC client and subscriber examples in VBScript on GitHub: https://github.com/OPCLabs/Examples-QuickOPC-VBScript .
Rem Missing some example? Ask us for it on our Online Forums, https://www.opclabs.com/forum/index ! You do not have to own
Rem a commercial license in order to use Online Forums, and we reply to every post.
Option Explicit
Dim ItemValueArguments1: Set ItemValueArguments1 = CreateObject("OpcLabs.EasyOpc.DataAccess.OperationModel.DAItemValueArguments")
ItemValueArguments1.ServerDescriptor.ServerClass = "OPCLabs.KitServer.2"
ItemValueArguments1.ItemDescriptor.ItemID = "Simulation.Register_I4"
ItemValueArguments1.Value = 23456
Dim ItemValueArguments2: Set ItemValueArguments2 = CreateObject("OpcLabs.EasyOpc.DataAccess.OperationModel.DAItemValueArguments")
ItemValueArguments2.ServerDescriptor.ServerClass = "OPCLabs.KitServer.2"
ItemValueArguments2.ItemDescriptor.ItemID = "Simulation.Register_R8"
ItemValueArguments2.Value = 2.34567890
Dim ItemValueArguments3: Set ItemValueArguments3 = CreateObject("OpcLabs.EasyOpc.DataAccess.OperationModel.DAItemValueArguments")
ItemValueArguments3.ServerDescriptor.ServerClass = "OPCLabs.KitServer.2"
ItemValueArguments3.ItemDescriptor.ItemID = "Simulation.Register_BSTR"
ItemValueArguments3.Value = "ABC"
Dim arguments(2)
Set arguments(0) = ItemValueArguments1
Set arguments(1) = ItemValueArguments2
Set arguments(2) = ItemValueArguments3
Dim Client: Set Client = CreateObject("OpcLabs.EasyOpc.DataAccess.EasyDAClient")
Dim results: results = Client.WriteMultipleItemValues(arguments)
Dim i: For i = LBound(results) To UBound(results)
Dim OperationResult: Set OperationResult = results(i)
If OperationResult.Succeeded Then
WScript.Echo "Result " & i & ": success"
Else
WScript.Echo "Result " & i & ": " & OperationResult.Exception.GetBaseException.Message
End If
Next