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

时间:2013-08-16 14:16:31

标签: .net c#-4.0 opc

这是我的情况:

我们有一个用于监控开发的太阳能发电厂的软件。 我必须引入OPC作为从物理设备本身获取数据的新方法,这就是为什么我最终试图了解opc,这到目前为止令人沮丧。

我安装了Matrikon模拟器并使用Matrikon资源管理器,我可以看到正在模拟数据。我现在需要的是创造一个非常基本的概念证明,我可以 连接到它并使用C#打印一些东西。据我了解,我必须使用一些专有的API / SDK。我只测试一些东西,所以我不想承诺专有的方式来做现在的事情。是不是创建了OPC来完全避免这种情况?

是否有一个简单的Opensource DLL可用于连接OPC服务器,支持DA,HDA和AE,允许我在不担心供应商/ sdks的情况下工作?

为了增加混乱,我找到了OPC Xi和OPC UA ....而且我还没有找到一个来自gound零的教程,这就是我正在寻找的。

6 个答案:

答案 0 :(得分:9)

我建议你使用最新的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'。

答案 1 :(得分:3)

首先,您需要知道要使用哪种OPC。

  • 基于Windows COM / DCOM的“经典OPC”DA / HDA和A& E
  • OPC XML / DA,DA作为一种Web服务,但性能有限。
  • OPC UA,最后一个规范,允许您在非Windows平台上实现它并合并DA,HDA和A& E.

之后,您可以选择要使用的语言,因此可以免费使用某些SDK。

OPC的一个好网站:http://www.opcconnect.com/source.php包含您可以使用的工具包列表。

答案 2 :(得分:1)

为您提供教程......但首先提供一些信息:

OPC是一切都是开放的(以开源方式)...... OPC基金会已经指定了许多标准化自动化通信方式的东西 - 最重要的是你可以构建自己的堆栈。请注意,stuf是巨大的(!)。因此,为了减轻工作量,有一大堆公司为您提供不同编程语言的堆栈。 Matrikon,Prosys,统一自动化等等。

但是,为了连接到一个提供者,你需要实现一个提供者并且仍然需要一个提供基本功能的堆栈并下载这样一个堆栈,你的公司必须向供应商注册。我害怕没有办法。 但是有OpenSource项目: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

答案 3 :(得分:0)

您可以从OPC Foundation下载所有OPC资料,特别是您正在寻找OPC .NET API 2.00源代码Download Link。它包含一个具有OPC dll和样本客户端(AE,DA,DX,HDA)的解决方案,可让您了解OPC的工作原理。此源和DLL是OPC标准的基础。使用这些,您可以调用任何符合OPC标准的专有OPC服务器。

答案 4 :(得分:0)

我建议你看一下OpenOpcUa计划。 OPC UA客户端和服务器的完整代码可供下载。 此代码运行Windows,Linux和WVWorks。 更多信息请访问www.openopcua.org

答案 5 :(得分:0)

出于测试目的,可以使用OPC UaFx客户端(.Net),其NugetPackage可在以下位置找到: OPC UaFx Client in .Net

尽管它是专有的,但它将在30分钟内运行您的应用程序,在30分钟后可以重新运行该应用程序。