PLCcom Opc Ua Sdk

PLCcom OPC UA Clienttoolkit


The PLCcom.Opc.Ua.Sdk is a highly optimized and modern component specially developed for .Net or Java software developers to provide a convenient access to a client-side OPC UA interface, e.g. To read or write data.

New in version 5 of our PLCcom.Opc.Ua.Sdk is the extended compatibility with various development environments.
The .net component is supplied as a .net library and also as a .net-standard library. PLCcom.Opc.Ua.Sdk can be used under the .net-Framework, .net-Core or Xamarin environments.
The Java variant can be implemented in Java JRE/JDK, openJRE/openJDK or in Android development environments.

Innovative and quick

With the PLCcom.Opc.Ua.Sdk you will be able to add a standardized Opc Ua client access to their developed applications with a few lines of code. Connect you application quick and easy with one or more OPC-UA-Server(s) and read, write or monitore data. Make you application fit for Industrial 4.0

Find some easy examples below (more examples):

Example: Queries of existing endpoints of a server
  • C#
  • Visual Basic
  • Java
//discovery over discovery server
EndpointDescriptionCollection ep = UaClient.GetEndpoints(new Uri("opc.tcp://localhost:4048"));
'discovery over discovery server
Dim ep As EndpointDescriptionCollection = UaClient.GetEndpoints(New Uri("opc.tcp://localhost:4048"))
//discovery endpoints
EndpointDescription[] endpoints = UaClient.discoverEndpoints(Hostname, Port);

Example: Queries of existing endpoints of a server

Example: Browse nodes
  • C#
  • Visual Basic
  • Java
//simple browse command example
//Set start NodeId by path
NodeId sourceNode = client.GetNodeIdByPath("Objects.Data.Dynamic.Scalar");
 
// find all of the components of the node.
BrowseDescription nodeToBrowse = new BrowseDescription();
 
nodeToBrowse.NodeId = sourceNode;
nodeToBrowse.BrowseDirection = BrowseDirection.Forward;
nodeToBrowse.ReferenceTypeId = ReferenceTypeIds.Aggregates;
nodeToBrowse.IncludeSubtypes = true;
nodeToBrowse.NodeClassMask = (uint)(NodeClass.Object | NodeClass.Variable);
nodeToBrowse.ResultMask = (uint)BrowseResultMask.All;
 
//now, browse the node
ReferenceDescriptionCollection rdc = client.BrowseFull(nodeToBrowse);
'simple browse command example
'Set start NodeId by path'
Dim sourceNode As NodeId = client.GetNodeIdByPath("Objects.Data.Dynamic.Scalar")
 
'find all of the components of the node. '
Dim nodeToBrowse As BrowseDescription = New BrowseDescription()
nodeToBrowse.NodeId = sourceNode
nodeToBrowse.BrowseDirection = BrowseDirection.Forward
nodeToBrowse.ReferenceTypeId = ReferenceTypeIds.Aggregates
nodeToBrowse.IncludeSubtypes = True
nodeToBrowse.NodeClassMask = CUInt(NodeClass.Object Or NodeClass.Variable)
nodeToBrowse.ResultMask = CUInt(BrowseResultMask.All)

//now, browse the node
Dim rdc As ReferenceDescriptionCollection = client.BrowseFull(nodeToBrowse)
//simple browse command example
//create a BrowseDescription object
BrowseDescription browseDescription = new BrowseDescription();
browseDescription.setReferenceTypeId(Identifiers.Aggregates);
browseDescription.setBrowseDirection(BrowseDirection.Forward);
browseDescription.setIncludeSubtypes(true);
browseDescription.setNodeClassMask(NodeClass.Object, NodeClass.Variable);
browseDescription.setResultMask(BrowseResultMask.All);
//set start nodeId
browseDescription1.setNodeId(myClient.getNodeIdByPath("Objects.Server"));

//create a BrowseRequest or browse the BrowseDescription direct
BrowseRequest browseRequest = new BrowseRequest(null, null, null,
								new BrowseDescription[] { browseDescription });

//browse the node
BrowseResponse results = client.browse(browseRequest);

Example: Browse nodes

Example: Read data
  • C#
  • Visual Basic
  • Java
//read values from OPC UA Node into DataValue object
 DataValue value = client.ReadValue("Objects.Server.Data.Static.Scalar.Int64Value");
'reading values from OPC UA Node into DataValue object
 Dim value As DataValue = client.ReadValue("Objects.Server.Data.Static.Scalar.Int64Value")
//read values from OPC UA Node into DataValue object
ReadResponse res = client.read(myClient.getNodeIdByPath("Objects.Server.Data.Static.Scalar.Int16Value"),
									UaAttributes.Value);

Example: Read data

Example: Write data
  • C#
  • Visual Basic
  • Java
//write value 123 to OPC UA Node and receive the status code
 StatusCode sc = client.WriteValue("Objects.Server.Data.Static.Scalar.Int64Value",123);
'writing value 123 to OPC UA Node and receive the status code
 Dim sc As StatusCode = client.WriteValue("Objects.Server.Data.Static.Scalar.Int64Value", 123)
//write value 123 to OPC UA Node and receive the status code
StatusCode res = client.write(myClient.getNodeIdByPath("Objects.Server.Data.Static.Scalar.Int16Value"), 
								(short) 123,
								UaAttributes.Value);

Example: Write data

Example: Monitore nodes
  • C#
  • Visual Basic
  • Java
...
 //create and register monitoring item
 client.StartMonitoringItem("Objects.Server.Data.Dynamic.Scalar.Int64Value", 
                            Client_MonitorNotification);
 ...

 //catch the monitoring event
 private void Client_MonitorNotification(string Identifier, 
                                         MonitoredItem monitoredItem, 
                                         MonitoredItemNotificationEventArgs e)
 {
        MonitoredItemNotification notification = 
                                e.NotificationValue as MonitoredItemNotification;
        Console.WriteLine(Identifier + " " + monitoredItem.StartNodeId + 
                          " Value: " + notification.Value + " Status: " + 
                          notification.Value.StatusCode.ToString());
 }
...
'create a new subscription'
Dim subscription As Subscription = New Subscription()
subscription.PublishingInterval = 1000
subscription.PublishingEnabled = False
subscription.DisplayName = "mySubsription"
 
'register subscription events'
AddHandler subscription.StateChanged, AddressOf Subscription_StateChanged
AddHandler subscription.PublishStatusChanged, AddressOf Subscription_PublishStatusChanged
 
'add new subscription to client'
client.AddSubscription(subscription)
 
'Create a monitoring item and add to the subscription'
Dim nodeId As NodeId = client.GetNodeIdByPath("Objects.Data.Dynamic.Scalar.Int64Value")
Dim monitoredItem As MonitoredItem = New MonitoredItem(subscription.DefaultItem) With {
                                    .StartNodeId = nodeId,
                                    .SamplingInterval = 500,
                                    .QueueSize = UInteger.MaxValue,
                                    .DisplayName = nodeId.ToString()
                                }
 
'register monitoring event'
AddHandler monitoredItem.Notification, AddressOf Client_MonitorNotification
 
'add Item to subscription'
subscription.AddItem(monitoredItem)
 
'apply changes'
subscription.ApplyChanges()
 
...
 
Private Sub Client_MonitorNotification(ByVal monitoredItem As MonitoredItem, ByVal e As MonitoredItemNotificationEventArgs)
    Dim notification As MonitoredItemNotification = TryCast(e.NotificationValue, MonitoredItemNotification)
    'notifications coming here, do what you want
End Sub
...
//create and register monitoring item
//step 1 create the request list
List<MonitoredItemCreateRequest> requests = new ArrayList<MonitoredItemCreateRequest>();

//step 2 create and add a create request for a monitoring item
ReadValueId readValueId = new ReadValueId(
								myClient.getNodeIdByPath("Objects.Server.Data.Dynamic.Scalar.Int32Value"),
								UaAttributes.Value.getValue(), null, null);
requests.add(new MonitoredItemCreateRequest(readValueId, MonitoringMode.Reporting, new MonitoringParameters()));

//step3 create and add a subscription
UaSubscription subscription = myClient.getSubscriptionManager().createSubscription();
						
//final step create, monitoring items and add monitoring item event listener
List<MonitoredItem> monitoredItems = subscription.createMonitoredItems(requests, new MonitoredItemNotificationListener() {
						
	@Override
	public void onValueNotification(MonitoredItem monitoredItem, DataValue value) {
		// value notifications coming here, do what you want
							
	}
						
	@Override
	public void onEventNotification(MonitoredItem monitoredItem, EventFieldList eventFieldList) {
		// event notifications coming here, do what you want
							
	}
});

Example: Monitore nodes

Tutorial, test software and code examples

Included in the software package are extensive code examples and tutorials, which illustrate the easy connection of an OPC UA server via an OPC interface to your application and can also be used in your projects.

Features

♦ finding nodes via node path e.g. "Objects.Server.Data.Static.Scalar.Int64Value"
♦ automatical connect and disconnect of server connections (can be switched off)
♦ no limits at instance, connections or subscription numbers
♦ compatible to Opc Ua specification
♦ extended security features, secure connections also possible via certificate exchange
♦ easy creation and integration of your own certificates and your own certificate validations
♦ various useful, helpful extensions and functions that are made available to the developer
♦ and much more.

Especially for DotNet or Java developers

The component is depending on the version a 100% .Net or Java file. PLCcom.Opc.Ua.Sdk can be directly linked as a reference, API calls are not necessary.
It is easily to use the components in 32 or 64 bit environments as well as across platforms.
The internal routines are optimized for high-performance access.

Easy lisencing, top level support

PLCcom.Opc.Ua.Sdk needs a license for each developer a runtime license is not necessary.
Try PLCcom.Opc.Ua.Sdk 30 days test version, before licening.
After purchase we are not going to leave you alone.
If you have any problems or questions regarding our product do not hasitate to contact us. We will support you by finding a solution.

Indi.Systems is OPC foundation member for many years

langjähriges Mitglied der OPC-Foundation

With the OPC UA specification, the OPC Foundation provides a newly developed communication model for the uniform transport of machine data.
The goal was to adapt the OPC communication model to the requirements of future applications and to compensate for the existing disadvantages of the DCOM-based OPC interface.
The first version of the OPC UA specification was made available in 2006, a revision took place in 2009.

With OPC UA, a future-proof standardized communication standard is provided that also covers the requirements of industry 4.0 applications.

Indi.Systems is OPC foundation member for many years



PLCcom for S7

.Net

professional

Single developer license *

€ 899,00 (excl. taxes)

Info plus 16% VAT 143,84 €

€ 1042,84 (incl. taxes)

professional

Company license **

€ 2440,00 (excl. taxes)

Info plus 16% VAT 390,40 €

€ 2830,40 (incl. taxes)

expert

Single developer license *

€ 1299,00 (excl. taxes)

Info plus 16% VAT 207,84 €

€ 1506,84 (incl. taxes)

expert

Company license **

€ 3440,00 (excl. taxes)

Info plus 16% VAT 550,40 €

€ 3990,40 (incl. taxes)

expert

Company license**
incl. source code

Price on request

*License for one developer plus 1 year Top-Level-Support*** + complimentary updates and upgrades.

**Company license for enterprises up to 300 employees plus 1 year Top-Level-Support*** + complimentary updates and upgrades. If you are interested in a company license for a company with more than 300 employees give us a brief information via E-Mail. We will sent you a special offer for that purpose.

***Top-level support: Support requests via mail / phone (in German or English), which are processed with high priority. Maximum 2 business days response, usually processed immediately.

Java

professional

Single developer license *

€ 1049,00 (excl. taxes)

Info plus 16% VAT 167,84 €

€ 1216,84 (incl. taxes)

professional

Company license **

€ 2940,00 (excl. taxes)

Info plus 16% VAT 470,40 €

€ 3410,40 (incl. taxes)

expert

Single developer license *

€ 1449,00 (excl. taxes)

Info plus 16% VAT 231,84 €

€ 1680,84 (incl. taxes)

expert

Company license **

€ 4140,00 (excl. taxes)

Info plus 16% VAT 662,40 €

€ 4802,40 (incl. taxes)

expert

Company license **
incl. source code

Price on request

*License for one developer plus 1 year Top-Level-Support*** + complimentary updates and upgrades.

**Company license for enterprises up to 300 employees plus 1 year Top-Level-Support*** + complimentary updates and upgrades. If you are interested in a company license for a company with more than 300 employees give us a brief information via E-Mail. We will sent you a special offer for that purpose.

***Top-level support: Support requests via mail / phone (in German or English), which are processed with high priority. Maximum 2 business days response, usually processed immediately.

WinCE

Embedded 5.0 / 6.0 ARM platform

professional

Single developer license *

€ 749,00 (excl. taxes)

Info plus 16% VAT 119,84 €

€ 868,84 (incl. taxes)

professional

Company license **

€ 2090,00 (excl. taxes)

Info plus 16% VAT 334,40 €

€ 2424,40 (incl. taxes)

expert

Single developer license *

€ 1149,00 (excl. taxes)

Info plus 16% VAT 183,84 €

€ 1332,84 (incl. taxes)

expert

Company license **

€ 3090,00 (excl. taxes)

Info plus 16% VAT 494,40 €

€ 3584,40 (incl. taxes)

expert

Company license **
incl. source code

Price on request

*License for one developer plus 1 year Top-Level-Support*** + complimentary updates and upgrades.

**Company license for enterprises up to 300 employees plus 1 year Top-Level-Support*** + complimentary updates and upgrades. If you are interested in a company license for a company with more than 300 employees give us a brief information via E-Mail. We will sent you a special offer for that purpose.

***Top-level support: Support requests via mail / phone (in German or English), which are processed with high priority. Maximum 2 business days response, usually processed immediately.

PLCcom for Modbus

.Net

PLCCom for Modbus

Single developer license *

€ 399,00 (excl. taxes)

Info plus 16% VAT 63,84 €

€ 462,84 (incl. taxes)

PLCCom for Modbus

Company license **

€ 1090,00 (excl. taxes)

Info plus 16% VAT 174,40 €

€ 1264,40 (incl. taxes)

PLCCom for Modbus

Company license **
incl. source code

Price on request

*License for one developer plus 1 year Top-Level-Support*** + complimentary updates and upgrades.

**Company license for enterprises up to 300 employees plus 1 year Top-Level-Support*** + complimentary updates and upgrades. If you are interested in a company license for a company with more than 300 employees give us a brief information via E-Mail. We will sent you a special offer for that purpose.

***Top-level support: Support requests via mail / phone (in German or English), which are processed with high priority. Maximum 2 business days response, usually processed immediately.

Java

PLCCom for Modbus

Single developer license *

€ 399,00 (excl. taxes)

Info plus 16% VAT 63,84 €

€ 462,84 (incl. taxes)

PLCCom for Modbus

Company license **

€ 1090,00 (excl. taxes)

Info plus 16% VAT 174,40 €

€ 1264,40 (incl. taxes)

PLCCom for Modbus

Company license **
incl. source code

Price on request

*License for one developer plus 1 year Top-Level-Support*** + complimentary updates and upgrades.

**Company license for enterprises up to 300 employees plus 1 year Top-Level-Support*** + complimentary updates and upgrades. If you are interested in a company license for a company with more than 300 employees give us a brief information via E-Mail. We will sent you a special offer for that purpose.

***Top-level support: Support requests via mail / phone (in German or English), which are processed with high priority. Maximum 2 business days response, usually processed immediately.

PLCcom Opc Ua Client Sdks

.Net (Opc.Ua.Client.Sdk)

.Net OPC.UA.Client.Sdk

Single developer license *

€ 899,00 (excl. taxes)

Info plus 16% VAT 143,84 €

€ 1042,84 (incl. taxes)

.Net OPC.UA.Client.Sdk

Company license **

€ 2450,00 (excl. taxes)

Info plus 16% VAT 392,00 €

€ 2842,00 (incl. taxes)

.Net OPC.UA.Client.Sdk

Company license **
incl. source code

Price on request

*License for one developer plus 1 year Top-Level-Support*** + complimentary updates and upgrades.

**Company license for enterprises up to 300 employees plus 1 year Top-Level-Support*** + complimentary updates and upgrades. If you are interested in a company license for a company with more than 300 employees give us a brief information via E-Mail. We will sent you a special offer for that purpose.

***Top-level support: Support requests via mail / phone (in German or English), which are processed with high priority. Maximum 2 business days response, usually processed immediately.

Java (Opc.Ua.Client.Sdk)

Java OPC.UA.Client.sdk

Single developer license *

€ 1349,00 (excl. taxes)

Info plus 16% VAT 215,84 €

€ 1564,84 (incl. taxes)

Java OPC.UA.Client.sdk

Company license **

€ 3790,00 (excl. taxes)

Info plus 16% VAT 606,40 €

€ 4396,40 (incl. taxes)

Java OPC.UA.Client.sdk

Company license **
include source code

Price on request

*License for one developer plus 1 year Top-Level-Support*** + complimentary updates and upgrades.

**Company license for enterprises up to 300 employees plus 1 year Top-Level-Support*** + complimentary updates and upgrades. If you are interested in a company license for a company with more than 300 employees give us a brief information via E-Mail. We will sent you a special offer for that purpose.

***Top-level support: Support requests via mail / phone (in German or English), which are processed with high priority. Maximum 2 business days response, usually processed immediately.