QuickOPC on .NET
Are you having difficulties incorporating OPC data into your .NET solution? Need to do an OPC.NET application quickly and in quality? If so, QuickOPC comes to the rescue. You can use the "original" .NET Framework, or you can switch to NET Core (based on the .NET Standard specification), and develop multi-platform projects, for Microsoft Windows and Linux.
QuickOPC is a set of .NET components that simplify the task of integrating OPC into applications. Reading a value from OPC Data Access or OPC Unified Architecture server, or writing a data value can be achieved in just one or two lines of code.
QuickOPC is a radically new approach to access OPC data. Traditionally, OPC.NET required complicated code, no matter whether you used OPC custom or automation interfaces. OPC Server objects must be instantiated, OPC Group objects must be created and manipulated, OPC Items must be added and managed properly, and subscriptions must be established and maintained. Too many lines of error-prone .NET code must have been written to achieve a simple goal – reading or writing a value. QuickOPC saves you all that hassle.
The components can be used from various .NET languages and environments. The available examples show how the components can be used from C#, Visual Basic.NET, managed C++, and F#. Windows Forms, ASP.NET pages, Windows services, console applications, and WPF applications are all supported. For example. you can develop HMI-s, or OPC Loggers with QuickOPC. The development tool we have targeted primarily is Visual Studio 2012, 2013, 2015 and 2017. Both 32-bit and 64-bit applications can be created. If you like LINQPad, you can use it to quickly test out your code and ideas with QuickOPC.
If you are using a development tool that is not .NET-based, and supports COM Automation, check out QuickOPC-COM instead. Note that with our new product editions, you will always get .NET and COM components in a single, combined package.
- New in v5.20: Create screens with visual Live Binding - no coding required.
- New in v5.20: Live Mapping of OPC data to .NET objects, just by annotating them.
- New in v5.20: More and improved OPC browsing dialogs, with ultimate flexibility.
- New in v5.20: Reactive programming using OPC Reactive Extensions (Rx/OPC).
- New in v5.12: QuickOPC allows development of OPC Alarms and Events clients.
- New in v5.12: QuickOPC can connect to OPC UA (Universal Architecture) servers.
- Tested for compliance with OPC protocol standards, and for interoperability.
- Integration with Visual Studio 2012, 2013 and 2015 development environments.
- Internal messaging layer provides isolation between OPC communications and the custom client code, resulting in high resiliency.
- Automatically connects to and disconnects from OPC Servers.
- No limits to number of connections, subscriptions, or tags.
- Supports all flavors of OPC synchronous and asynchronous reads and writes internally, subscriptions, discovery, browsing, and property access.
- Wide range of developer productivity features: Intellisense, ReSharper annotations, Code Contracts, serialization support, and many more.
- Browsing Dialogs: Ready-made set of rich user interface (UI) components for browsing the OPC world.
Simple QuickOPC Code Example in C#
The code below (in C# language) reads and displays an item value, using QuickOPC.NET component:
// Read item value and display it in a message box
MessageBox.Show(EasyDAClient.SharedInstance.ReadItemValue( "", "OPCLabs.KitServer.2", "Demo.Single").ToString());
The code below subscribes to changes of an item, and displays the value with each change:
// The callback is a lambda expression that displays the value
"", "OPCLabs.KitServer.2", "Demo.Single", 1000,
(_, args) => Console.WriteLine(args.Vtq.Value));
No other product can do this in such a clear and concise code, in a single statement! The programming is straightforward, and the developer can focus on getting the work done and not on fighting the intricacies of OPC protocols.
The same code simplicity is maintained in other programming languages. Here are the corresponding examples in Visual Basic (VB.NET).