eclipse项目缺少必需的库_Milo库OPCUA协议java实现

本文介绍了如何使用Milo库进行OPC UA协议的Java实现,特别是针对西门子S7-1500 CPU的通信。文章详细讲解了Milo库的初识、依赖添加、服务节点搜索、节点读写及订阅操作,提供了实例代码,帮助读者理解Milo库的基础用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

Milo库

今天跟大家来介绍一下一个OPC UA协议的开源库,我们使用的现场设备为西门子的S7-1500 CPU,西门子的S7-1500在V2.1版本后就直接可以作为OPC UA的服务器来供其他客户端访问。所以用OPC协议来进行数据采集就是最好的方式。

计算机语言采用java,所以也花了很大的力气来找OPC UA通信协议的java实现库,尽管OPC Foundation在Github上也有协议的java实现,但是各种学习的资源很有限,学习曲线比较陡峭。然后碰巧在Github上找到了一个OPC UA的开源库,就是今天要介绍的 Milo,据了解该项目的Eclipse旗下的一个物联网的项目,是一个高性能的OPC UA栈,提供了一组客户端和服务端的API,支持对实时数据的访问,监控,报警,订阅数据,支持事件,历史数据访问,和数据建模。

eclipse/milo​github.com
f9c3d3900e8f39c02283bb4aff3550fc.png

Milo 初探

在Milo中大量的采用了java 8的新特性CompletableFuture来进行异步操作,Milo中有大量的操作都是直接返回CompletableFuture对象,所以JDK的版本必须要8.0,对CompletableFuture不太熟悉的可以先去了解CompletableFuture的相关概念在来看Milo的官方例子会轻松很多。

添加依赖

好了,下面就添加相关依赖,Milo的依赖有三个Stack,Client SDK,Server SDK。

Client SDK依赖

<dependency>
    <groupId>org.eclipse.milo</groupId>
    <artifactId>sdk-client</artifactId>
    <version>0.2.4</version>
</dependency>

Server SDK依赖

<dependency>
    <groupId>org.eclipse.milo</groupId>
    <artifactId>sdk-server</artifactId>
    <version>0.2.4</version>
</dependency>

Stack依赖

<dependency>
    <groupId>org.eclipse.milo</groupId>
    <artifactId>stack-client</artifactId>
    <version>0.2.4</version>
</dependency>

<dependency>
    <groupId>org.eclipse.milo</groupId>
    <artifactId>stack-server</artifactId>
    <version>0.2.4</version>
</dependency>

目前最新的版本是0.2.4

开发客户端就添加客户端的依赖,开发服务端就添加服务端的依赖。一般来说Stack依赖并不需要手动添加,在我们添加Client SDK或者Server SDK的时候会包含了Stack依赖。

添加bouncycastle依赖

为什么需要添加bouncycastle依赖?因为创建OPC UA客户端必须要有相关的数字证书,而bouncycastle就作为解析相关的数字证书的库所以要添加相关的bouncycastle依赖。

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcpkix-jdk15on</artifactId>
    <version>1.57</version>
</dependency>

所以如果我们开发OPC UA客户端,总的依赖项也很简单,如下:

<dependency>
    <groupId>org.eclipse.milo</groupId>
    <artifactId>sdk-client</artifactId>
    <version>0.2.4</version>
</dependency>

<dependency>
    <groupId>org.bouncycastle</groupId>
    <artifactId>bcpkix-jdk15on</artifactId>
    <version>1.57</version>
</dependency>

搜索服务节点

首先要创建OPC客户端第一件事当然是指定一个URL。以S7-1500的CPU为例,可以在博图软件的组态界面双击CPU然后再属性窗口里面找到OPC选项卡然后里面就会有这个CPU的OPC UA的URL。拿到这个URL后就可以在java中定义这个地址。

//在西门子S7-1500中OPC UA服务器的端口默认为4840
String EndPointUrl = "o
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值