Today is...
Friday, February 24, 2017
Welcome to, the global online
community of automation professionals.
Featured Video...
Featured Video
Wiring and programming your servos and I/O just got a lot easier...
Our Advertisers
Help keep our servers running...
Patronize our advertisers!
Visit our Post Archive
Anyone Here Ever Create an HMI utilizing OPC, .net and C# ?
Has anyone has ever created an HMI application/OPC client using C#/.net?

If anyone has ever created an HMI application / OPC client using C# / .net, I would absolutely love some tips and pointers. Thanks!

By James Ingraham on 4 October, 2016 - 10:20 am

I've done it. I don't really like it. You'll need an OPC server, and almost certainly you'll want to buy an OPC client library for .Net. The library will have documentation on how to access tags in your program. Then it's just regular C# coding. Bear in mind you have to compile your project every time you make a minor change to your HMI. Long-term support is also something to consider. If this is just a side project for the fun of it, fine. Otherwise, I would seriously consider going a different route. pvbrowser, for example.

-James Ingraham
Sage Automation, Inc.

You can use the Live Binding feature of QuickOPC: The product does not OPC-enabled controls in itself, but allows to "animate" any existing control by binding its properties to OPC tags.

Disclaimer: This is a self-promotion.

Try using AdvancedHMI. It has many drivers so you may not need to buy an OPC server. It also has a lot of visual controls, so you can easily build an HMI with Visual Studio without having to write any code. The main project is based on VB, but it is easy to add a C# project to the solution. The base software package is also free.

By Fred Loveless on 11 October, 2016 - 10:48 am

There are quite a few toolkit out there that you can use.

If you are a member of the OPC Foundation you can get the .Net SDK from them.

There is also ClientAce from Kepware Technologies it allows for OPC DA, OPC UA, or OPC XMLDA client development in C# or VB.Net.

Unified Automation also has multiple tool kits for developing in .Net and Java.

There is also Easy OPC.

It could be too late to come with this reply, but it may help to others with similar questions.

As mentioned above, you will need to develop OPC server, which is capable to read/write specifically from the 'device' you are using (Modbus or Fieldbus foundation instruments and final control elements) and provide data access for OPC clients (HMI app).
There is only one non-commercial OPC server Software Development Kit in C++, which provides all necessary libraries and open source code to create OPC DA 2.0 Server. Please, find it here:

If I were developing HMI from scratch, then I would try to do some web-based application with embedded OPC client functionality. I guess you can easily find OPC Unified Architecture libraries for OPC client development for any .net supporting language:

There is a lot of useful information in this resource as well:

I recently finished my own software project which provides integration solution for multiple process simulation cases, DCS and APC applications on base of OPC interface. I suggest you to visit my web-site, where you can download OPC server with full functionality free of charge: