问题标签 [opc-ua]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
826 浏览

java - 如何在 Eclipse Milo 中添加警报

我目前正在使用 Eclipse Milo 从 OPC UA 服务器(也是 Milo)订阅值:

不幸的是,订阅总是与特定的时间间隔相关联。我正在寻找类似“推送通知”的东西,它可以立即收到,没有特定的时间间隔。显然,可以创建一个非常频繁的订阅,但这不是一个优雅的方法。

浏览 Milo 源代码,我注意到了这个类LimitAlarmNode。是否可以设置在服务器上的节点设置为特定值后立即收到的警报?如果是这样,我该怎么做?

非常感谢。

0 投票
1 回答
2399 浏览

c# - OPC-UA BadSecureChannelClosed

我有两个 Windows 服务,一个服务 (service1) 连接到两个 OPC-UA 服务器,这工作正常。另一个 Windows 服务 (service2) 使用来自 OPC-UA 基金会的 .NET 参考堆栈的相同连接代码连接到相同的两个 OPC-UA 服务器。

Service1 可以连接到两个 OPC-UA 服务器并成功轮询数据。在部署 Service2 期间,Service2 还可以连接并从两个 OPC-UA 服务器读取值。此时一切都很好。

但是,现在过了一会儿,没有对任何代码做任何更改。Service2 无法再连接到其中一台 OPC-UA 服务器,在执行 Session.Create 时,它​​只会回复 ServiceResultException BadSecureChannelClosed(2156265472)。

开始故障排除:在我们的客户站点上,我们还有一个测试服务器,它运行与生产环境中的设置相同的设置,这意味着 Service1 和 Service2 也在测试服务器上运行,并以相同的方式与这两个 OPC-UA 服务器通信.

我注意到,当我关闭测试服务器上的服务时,Service2 的 BadSecureChannelClosed 错误消失了(但是 Service2 仍然可以与两个 OPC-UA 服务器中的另一个进行通信)。使生产服务器上的一切都按预期工作。

这让我想知道 OPC-UA 服务器上有哪些会话和连接限制。OPC-UA 服务器的类型为 SINUMERIK 840d。我问过西门子是否可以激活 ServerDiagnostics 对象来解决会话数量等问题,但他们回答说这是不可能的。我认为这个对象是必须启用的?

谁能给我暗示什么可能导致这种情况,以及在建立联系时我应该考虑哪些限制和事情,例如什么需要是独一无二的?应用名称?会话名称?等什么可能导致这个 - 看似 - “随机” BadSecureChannelClosed 错误。请注意,我在 Create Session 调用中使用了 updateBeforeConnect=true。我使用带有硬编码用户名和密码的 UserIdentity。

另一个奇怪的症状是,对于这个回复 BadSecureChannelClosed 的 OPC-UA 服务器,它在使用 UaExpert 连接到它时会出现 Discovery 错误(几周前不存在的错误):

16:58:41.806 | 自动更新 | 检索当前版本信息时出错:找不到 Host updates.unified-automation.com

16:58:35.404 | 发现小部件 | opc.tcp://192.168.0.200:4840 上的发现 GetEndpoints 失败 (BadCommunicationError)

16:58:35.401 | 发现小部件 | 在 opc.tcp://192.168.0.200:4840 上发现 FindServers 失败 (BadCommunicationError)

0 投票
1 回答
265 浏览

java - 使用ua-java创建监控项

我目前正在使用 OPC UA Foundation Java Stack,没有任何额外的 SDK。

我无法使用受监控的项目实现订阅,也无法通过发布响应获取更改通知。我是 Java 新手,任何有关这方面的帮助都会非常有帮助。谢谢你。

0 投票
1 回答
1038 浏览

opc-ua - OPC UA 1.01、1.02 和 1.03 之间的区别

我正在尝试确定 OPC UA 规范的最新三个修订版之间的主要区别。我正在测试一些 OPC SDK,并被要求确保它们与 OPC UA 1.03 一起使用。为此,我需要知道 1.01、1.02 和 1.03 之间的区别。

我读过 1.02 添加了 HTTPS 和 256 位加密支持,并且 1.03 添加了 Pub/Sub 模型,但我找不到简明的功能列表。

我曾尝试查看OPC Foundation的文档,但它非常冗长,并不能很好地显示每个修订版添加的内容。

有人可以列出版本之间的差异或指向我的资源吗?

0 投票
2 回答
5496 浏览

c# - 用于 C#.NET 应用程序开发的 OPC-UA 客户端 SDK

我一直在用 C#.NET 开发一个可以通过 OPC 服务器与 PLC 通信的应用程序。我已经为它搜索了基于 C#.NET 的 OPC 客户端库,并在下面找到了这些库。由于我从未使用过这些库中的任何一个,我不知道哪个可以成为首选。价格在这里并不重要。如果你们用过它们中的任何一个或任何其他的,请告诉我。

http://www.opclabs.com/products/quickopc

http://advosol.com/pc-54-3-easyua-client-sdk.aspx

https://www.plccom.net/products/opc/opc-ua-toolkit.html

https://technosoftware.com/opc-ua-client-sdk-net/

https://industrial.softing.com/en/products/software/opc-development-toolkits/opc-ua-net-development-toolkit/opc-ua-net-server-client-toolkit-for-windows.html

https://www.unified-automation.com/products/client-sdk/net-ua-client-sdk.html

0 投票
0 回答
1117 浏览

javascript - 节点 OPC UA 监控项。如何在给定时间后获取数据

我正在使用节点 opc ua 客户端连接到 opc ua 服务器。我在服务器上添加了一个项目的订阅,如下所示:

仅在数据实际更改时才调用 on change 函数,但我希望获得具体时间序列的数据。

如何做到这一点?

0 投票
1 回答
1307 浏览

java - OPC UA Read string[] data type by nodes with path

这是一个例子。

Node data Type = "string"和数据是"Jone"

当我使用nodesToRead.Add(new NodeId(path, 6));是工作!

但是,如果我将节点数据更改为string[]{"Jone","Peter","Himari"}

当我使用nodesToRead.Add(new NodeId(path, 6))时,它返回一个System.string[]. 我需要使用一些方法来获取 string[0] 数据。

如何仅通过节点路径读取“Jone”而不采取一些方法来获取“Jone”?


这是使用 Softing(Software) 来读取我的服务器的。它读取一个数组类型。{AA,NN,CC}

我想知道如何通过设置浏览名称来读取每个元素?

示例:仅通过设置浏览名称读取“AA”?

在此处输入图像描述

因为 Siemens OPC Server 可以通过设置 Browse Name 读取每个元素。

它的Browse Name 可以设置为AxisNameList[u1,1] 来读取数组{1},并且它配置只浏览一个节点,如“AxisNameList”节点。

如果我发布此路径“AxisNameList”,它将通过请求数组 [0] 数据。

如果我发布此路径“AxisNameList[u1,1]”,它将通过请求数组 [ 1 ] 数据。

如果我想实现这个功能,我该如何修改我的 OPC UA 服务器?

0 投票
2 回答
3586 浏览

apache-nifi - OPC UA Java 库

我是 OPC UA 标准的新手,作为一名 Java 开发人员正在尝试为该标准搜索一个好的 Java 库。

我浏览了https://github.com/OPCFoundation/UA-Java和 Eclipse Milo(或 digitalpetri)。

Eclipse Milo 与 UA-Java 相比如何?我应该选择哪一个?

我的用例是开发一个 NIFI(nifi.apache.org) 自定义处理器,它可以从 Kepware 等 OPC UA 服务器读取数据,并将该数据导入我们的大数据存储,然后在其上构建分析。我想在处理器中实现订阅和历史数据访问等 OPC 功能。

0 投票
1 回答
134 浏览

c++ - “... .exe hast stop working”只出现在我朋友的电脑上,但不在我的电脑上

我的程序的发布版本有问题。当我在我的电脑上启动它时,一切正常。没有例外,没有问题或任何其他阻止我使用该程序的东西。一旦我压缩 exe 及其所需的 DLL 并将其发送给朋友,当他尝试运行服务器时,他立即收到错误“.exe 已停止工作”。

顺便说一句,它是一个用“open62541”构建的 opc 服务器。运行时,它使用名为“Snap7”的库从 PLC 中检索值。是的,他和我位于同一个网络中,因此原因不可能是网络连接。

我们都在使用 Windows,我的 IDE 是 Visual Studio 2015。不幸的是,我不能在这里发布任何代码,因为它太多了。此外,我真的不知道要发布哪个代码,因为我不知道错误出现的位置和原因。

编辑:这是我得到异常的代码。调用“UA_Server_addVariableNode”时总是抛出它。

0 投票
1 回答
1826 浏览

opc-ua - OPC UA.NET 自定义节点管理器创建

我正在尝试使用OPC Foundation 的UA-.NETStandardLibrary创建我自己的 OPC UA 服务器来维护一些变量。我创建了一个继承自 StandardServer 的服务器类和继承自 CustomNodeManager2 的节点管理器。他们的示例中有一些节点管理器,我删除了它们并添加了我自己的。服务器正常启动,不包含除标准节点外的任何节点,按计划。所以,我的问题是如何从代码(而不是从 xml,如示例中)创建我自己的变量节点并能够按需更新其值。

例如,我想添加一个文件夹,里面有几个节点。

有没有人有一个代码片段来演示如何做到这一点?我不希望任何人为我写它,只有你告诉我一个正确的方法,我才会感激。

非常感谢。