标签: opc-ua

OPC UA和OPC DA之间的区别?

请解释OPC UA和OPC DA之间的区别是什么?

在哪种情况下应该使用哪一种,如果可以为OPC UA和OPC DA提供任何示例,那将会很有帮助

opc opc-ua

18
推荐指数
3
解决办法
4万
查看次数

OPC-UA的替代品

作为访问由各种PLC组成的系统的过程数据的解决方案,OPC-UA是否还有其他可行的替代方案?什么是平台独立的,可以与不同品牌的产品"说话"?

我听说过MQTT,但它似乎更像是传输协议,只有那样.它没有像信息建模等所有更高级别的东西.

谢谢你的帮助!

plc scada opc mqtt opc-ua

16
推荐指数
3
解决办法
7771
查看次数

OPC UA协议与MQTT协议

我想根据两种协议的一般特征比较OPC UA和MQTT,例如Overhead(数据包),安全性,信息建模和可靠性.我在哪里可以找到每个协议的Overhead和其他特征的一些示例数据,以便我对它们进行比较.我需要你的建议.您可以建议任何工具来比较这些协议.

communication protocols mqtt iot opc-ua

10
推荐指数
3
解决办法
2万
查看次数

OPC UA:浏览服务器根节点的最小代码

我正在使用OPC UA Foundation SDK开发一个小客户端.什么是最小的C#代码:

  • 连接到服务器
  • 浏览根节点
  • 打印直接孩子的BrowseNames
  • 放弃?

我得到服务器端点(没有发现),安全性无.

代码不应该使用配置文件,也不需要STA.

对此的任何帮助都不仅仅是值得赞赏的.

c# opc opc-ua

9
推荐指数
1
解决办法
2万
查看次数

OPC-UA中的命名空间是什么?

我是OPC统一架构世界的新手,我正在从基础知识中学习它.命名空间到底是什么以及为什么它总是附加NodeID?

opc-ua

8
推荐指数
1
解决办法
3718
查看次数

如何在客户端的 Eclipse Milo 中处理断开/重新连接?

我正在使用 Eclipse Milo 编写 OPC UA 客户端并偶然发现以下问题:客户端如何处理连接丢失。

对于监视值,我使用 SubscriptionManager 订阅来执行此操作:

OpcUaClient client = myCreateClient();
List<MonitoredItemCreateRequest> items = myCreateMonitoredItems();

UaSubscription subscription = client.getSubscriptionManager().createSubscription(1_000.0).get();
List<UaMonitoredItem> result = subscription.createMonitoredItems(TimestampsToReturn.Both, items).get();

for (UaMonitoredItem item : result) {
   if (!item.getStatusCode().isBad()) {
     item.setValueConsumer(value -> System.out.println("Update: " + value));
   }
}
Run Code Online (Sandbox Code Playgroud)

现在,当我重新启动同样使用 Eclipse Milo 实现的 OPC UA 服务器时,我确实看到客户端重新连接,但订阅没有获得更多更新。在日志中,我得到以下输出:

09:11:15.734 [ua-shared-pool-0] DEBUG o.e.m.o.s.c.s.OpcUaSubscriptionManager - Publish service failure: StatusCode{name=Bad_NoSubscription, value=0x80790000, quality=bad}
java.util.concurrent.CompletionException: UaServiceFaultException: status=Bad_NoSubscription, message=There is no subscription available for this session.
    <stack-trace-omitted>
    …
Run Code Online (Sandbox Code Playgroud)

所以看起来 OpcUaSubscriptionManager 意识到了这种情况,但并没有尝试重新注册这些项目。这是要手动完成吗?

java opc-ua

7
推荐指数
1
解决办法
1600
查看次数

Java OPC-UA客户端Eclipse Milo端点URL更改为localhost

我正在使用Java OPC-UA客户端Eclipse Milo。每当我使用服务器的端点URL创建会话时,方法都会UaTcpStackClient.getEndpoints()将URL更改为localhost

String endpointUrl = "opc.tcp://10.8.0.104:48809";

EndpointDescription[] endpoints = UaTcpStackClient.getEndpoints(endpointUrl).get();

EndpointDescription endpoint = Arrays.stream(endpoints)
            .filter(e -> e.getSecurityPolicyUri().equals(securityPolicy.getSecurityPolicyUri()))
            .findFirst().orElseThrow(() -> new Exception("no desired endpoints returned"));
Run Code Online (Sandbox Code Playgroud)

但是return的endpoint.getEndpointUrl()opc.tcp://127.0.0.1:4880/会导致连接失败。

我不知道为什么我的OPC URL被更改了?

java localhost opc-ua milo

6
推荐指数
1
解决办法
1309
查看次数

Eclipse Milo、OPC-UA:从哪里开始?

我对 OPC-UA 世界完全陌生。

我需要建立一个关于如何让我们的 ERP 与 PLC 通信的概念证明。我正在评估充当 OPC-UA 服务器的软件(它正在运行)。我发现了 Milo 并让代码在 Eclipse 中工作。查看示例,我将一个玩具程序连接到 OPC-UA 服务器并执行...

基本的管道工作,但我不知道从哪里开始使用 OPC-UA 和 Milo。我一直无法找到介绍材料来帮助我理解这一切。

是否有关于 OPC-UA 架构以及 Milo 如何实现的文档?有没有比查看示例来弄清楚应该如何做更好的方法呢?

opc-ua milo

6
推荐指数
1
解决办法
4160
查看次数

使用 Eclipse Milo 了解 OPC-UA 安全性

我是 OPC-UA 世界和 Eclipse Milo 的新手。我不明白这里的安全性是如何工作的,讨论 eclipse-milo 提供的客户端示例

我发现连接 OPCUA 服务器时使用了一些安全属性:

SecurityPolicy、MessageSecurityMode、clientCertificate、clientKeyPair、setIdentityProvider、

  1. 上述配置如何相互关联?

我试图运行 client-examples -> BrowseNodeExample。此示例在内部运行ExampleServer。ExampleServer 配置为与匿名和用户名密码提供程序一起运行。它还必然接受SecurityPolicy.None, Basic128Rsa15, Basic256,Basic256Sha256MessageSecurityModeas ,SignandEncrypt除了SecurityPolicy.Nonewhere MessageSecurityModeisNone也是如此。

  1. 问题是 AnonymousProvider 我可以使用上面提到的所有SecurtiyPolicy和配对连接到服务器(没有提供客户端证书)。MessageSecurityMode但我不能对 做同样的事情UsernameProvider,因为UsernameProvider只能SecurityPolicy MessageSecurityMode配对None成功运行。所有其他对都会引发安全检查失败异常(当提供证书时),否则用户访问被拒绝(当未提供客户端证书时)。如何使这项工作有效?

最后,如果有人能向我指出 Eclipse Milo 的正确用户文档,那就太好了。因为除了示例代码之外我看不到任何文档,而且它们也没有记录。

opc-ua milo

6
推荐指数
1
解决办法
2494
查看次数

如何访问数组?

我有一个在铣床上运行的 OPC 服务器,并且想要访问机器中当前可用的工具的名称。

我知道我正在寻找的变量的名称是

Sinumerik/Tool/Catalogue/toolIdent[1]
Sinumerik/Tool/Catalogue/toolIdent[2]
Run Code Online (Sandbox Code Playgroud)

等等。我可以在 uaexpert 等查看器中看到相应的值。

虽然我可以访问

Sinumerik/Tool/Catalogue/toolIdent
Run Code Online (Sandbox Code Playgroud)

通过依次从根向下走,使用诸如

children=Position.get_children()
for child in children:
    Position=child
Run Code Online (Sandbox Code Playgroud)

这种方法不起作用,toolIdent[1]因为这不是一个孩子。

如何访问数组的这些值?

编辑:另外一个备注:工具的名称存储为节点的值,而不是变量。我遇到过 get_array_dimensions 函数,但这似乎只适用于变量。

EDIT2:我附上了我正在寻找的阵列的UAEExpert视图的屏幕截图。数组的前三个值是 3D_BLUM、12 和 98。 在此处输入图片说明

EDIT3:在UAEExpert中,我可以toolIdent[2]通过使用“添加自定义节点”命令,选择一个字符串节点并提供“/Tool/Catalogue/toolIdent[2]”作为NodeId的参数来查看内容。我试图找出如何使用 python(最好是 opcua 库,并且我正在为在 Python 中实现这个目标提供赏金。

python opc-ua

6
推荐指数
1
解决办法
1107
查看次数

标签 统计

opc-ua ×10

milo ×3

opc ×3

java ×2

mqtt ×2

c# ×1

communication ×1

iot ×1

localhost ×1

plc ×1

protocols ×1

python ×1

scada ×1