Anyone Here Ever Create an HMI utilizing OPC, .net and C# ?


James Ingraham

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.
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.

Fred Loveless

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: