OPC新手指南:如何编写C# Hello World客户端?

4

这是我的情况:

我们开发了一款用于监控太阳能电站的软件。我需要将OPC作为一种新的从物理设备本身获取数据的方式引入,这就是我开始尝试学习OPC的原因,目前为止,这让我感到非常沮丧。

我已经安装了Matrikon模拟器,并使用Matrikon Explorer看到正在模拟数据。现在我需要创建一个非常基本的概念验证,以便我可以连接并使用C#打印某些内容。据我所知,我必须使用一些专有的API / SDK。我只是在测试各种功能,所以现在不想承诺使用专有的方法来进行操作。难道OPC不是为了避免这种情况而被创建出来的吗?

是否有一个简单的开源DLL,可以支持DA,HDA和AE,让我无需担心供应商/SDK即可连接到OPC服务器并使用它?

更让人困惑的是,我还发现了OPC Xi和OPC UA...我没有找到从零开始的教程,这正是我所需要的。


如果可能的话,我建议您开始使用OPC UA。它是最好的、未来可靠的选择。不幸的是,您需要投资于商业SDK才能获得一个合适的平台,但很快就会回报,因为他们提供了一个非常高级的API,可以帮助您避免很多麻烦。对于测试,您可以从几个供应商那里获取免费评估版本。对于连接到OPC DA/AE/HDA,您可以使用UA网关应用程序。OPC Xi是一个仅限于.NET的协议(现在更名为OPC .NET)。 - Jouni Aro
你的设备有 OPC 服务器吗?如果有,它是哪个版本的 OPC? - AndersK
现在我只是在测试一些东西,我正在使用MatrikonOPC模拟器。 - sergio
对于2021年来到这个问题的人:https://www.nuget.org/packages/OPCFoundation.NetStandard.Opc.Ua/ - Johna
5个回答

11

我建议您使用最新版本的OPC,即OPC UA。

您可以使用以下免费工具在C#中构建简单的HMI应用程序:

1. Microsoft Visual Studio Express 2013 for Windows Desktop,可从以下网址获得: http://www.microsoft.com/visualstudio/eng/products/visual-studio-express-for-windows-desktop

2. 这个网站提供的最新源代码: https://github.com/convertersystems/opc-ua-samples

使用这个工具包,您可以:直接从Visual Studio IDE浏览OPC UA服务器。拖放变量节点以创建数据订阅。使用绑定来从订阅的数据值动画显示UI控件的属性。

请查看示例应用程序“Workstation”。


5

首先你需要知道你想使用哪种OPC。

  • "经典 OPC" DA/HDA 和 基于 Windows COM/DCOM 的 A&E
  • OPC XML/DA,使用 Web 服务的 DA,但性能有限。
  • OPC UA,最新的规范,允许你在非 Windows 平台上实现它并合并 DA、HDA 和 A&E。

之后,你可以选择你想使用的编程语言,然后使用一些免费或收费的 SDK。

一个很好的 OPC 网站:http://www.opcconnect.com/source.php,里面有你可以使用的工具包列表。


Camille,我知道我需要访问一些DA/HDA和AE信息,就像我之前说的那样。 - sergio
OPC UA还具有经典OPC DA/HDA和AE的功能...正如Jouni所说,将其实现可能更有趣。我建议您使用Unified Automation .NET Server/Client Bundle。我认为演示版本是免费的:http://www.unified-automation.com/downloads/opc-ua-development.html。您应该能够编写一个小型概念验证,用于客户端和服务器之间交换信息。 - Camille G.
让我试一下... 我正在使用Matrikon测试服务器。你认为我需要另一个服务器来模拟我的测试数据吗? - sergio
永远不要尝试这个。但如果有 OPC UA 版本,请尝试它。OPC UA 可以消除由于 COM/DCOM 技术可能引起的所有问题... - Camille G.

1
提供给您一个教程...但先提供一些信息:
OPC除了以开放的方式(open source)之外,几乎包含了所有内容... OPC基金会指定了很多标准来规范自动化通信的方式 - 在此基础上,您可以建立自己的堆栈。请注意,这些东西非常庞大!为了减轻工作负担,有一小部分公司为您提供不同编程语言的堆栈。其中一些公司是Matrikon、Prosys和Unified Automation。
然而,要连接到演示服务器,您需要实现提供程序,并仍然需要一个提供基本功能的堆栈,要下载这样的堆栈,您的公司必须向供应商注册。恐怕没有其他办法。但是,有开源项目:http://www.openopcua.org/ 我从未尝试过代码。
但是,只是为了证明其有用性,请查看此教程:http://doc.unifiedautomation.com/

以下是UA公司所有者写的一本书(也许你们公司有"Springerlink"访问权限?)http://www.springer.com/computer/information+systems+and+applications/book/978-3-540-68898-3


0

您可以从OPC Foundation下载所有OPC材料,具体来说,您正在寻找OPC .NET API 2.00源代码下载链接。它包含一个解决方案,其中包含OPC dll和示例客户端(AE、DA、DX、HDA),以便让您了解OPC的工作原理。这些源代码和DLL是OPC标准的基础。使用它们,您可以调用符合OPC标准的任何专有OPC服务器。


4
好的,但是它说我的公司必须是该基金会的成员,这正是我现在不想要的。还有其他方法获取这些文件吗? - sergio

0

为了测试目的,您可以使用OPC UaFx Client (.Net),其NugetPackage可以在此处找到: OPC UaFx Client in .Net

虽然它是专有的,但它将运行您的应用程序30分钟,30分钟后应用程序可以重新运行。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接