Java语言开发OPC之Utgard的数据访问方式

由于导师项目的需求,最近自己在负责OPC开发知识的研究。自己对Utgard的数据访问方式进行了总结,与大家分享,学习交流:

- 1.基于opc对象的特征及关系的Utgard的使用—-同步读取某个点位的值(Item项的read()方法)
这里写图片描述
Server server = new Server(BaseConfiguration.getCLSIDConnectionInfomation(), Executors.newSingleThreadScheduledExecutor());
server.connect();
Group group = server.addGroup();
Item item = group.addItem(“Random.Real5”);
System.out.println(“ItemName:[” + item.getId()+ “],value:” + item.read(false).getValue());

- 2.基于AccessBase的Utgard的使用
(1)使用SyncAccess类隔时间段地进行同步读取数据 ,它实现了Runnable接口,实际上通过另一个线程进行同步读,具体代码如下:
public static void syncRead(Server server) throws Exception {
final String itemId = “Random.Int2”;
// 每隔1秒同步读
AccessBase access = new SyncAccess(server, 1000);
access.addItem(itemId, new DataCallback() {
@Override
public void changed(Item item, ItemState itemState) {
System.out.println(itemState);
}
});
// start reading
access.bind();
// wait a little bit
Thread.sleep(5 * 1000);
// stop reading
access.unbind();
}
(2) 使用Async20Access类隔时间段地进行异步读取数据,它实现了IOPCDataCallback接口,基于事件回调的实现,具体代码如下:
public static void asyncRead(Server server) throws Exception {
final String itemId = “Random.Int2”;
// 第三个参数用于设置初始化时是否执行访问
AccessBase access = new Async20Access(server, 1000, false);
access.addItem(itemId, new DataCallback() {
@Override
public void changed(Item item, ItemState itemState) {
System.out.println(“>>> Asynchronized read: value=”
+ itemState.getValue());
}
});
access.bind();
Thread.sleep(5 * 1000);
access.unbind();
}


  • 2
    点赞
  • 13
    收藏
    觉得还不错? 一键收藏
  • 45
    评论
opc-utgard 是一个开源项目,它是 OPC(OLE for Process Control)的 Java 实现。OPC 是一种广泛使用的工业自动化通信标准,用于在不同设备之间实现数据交换和通信。 opc-utgard 的源码可以通过 GitHub 平台进行获取和查看。该项目提供了 OPC 客户端库的 Java 实现,使得开发者可以使用 Java 语言轻松地与 OPC 服务器进行通信。 在 opc-utgard 的源码中,我们可以找到一些核心的类和接口,例如:Server、Group、Item 等。通过 Server 类,我们可以连接到 OPC 服务器,并进行连接管理。Group 类用于创建 OPC 组,用于管理与 OPC 服务器的数据交换。Item 类则用于定义与 OPC 数据项相关的信息,例如数据类型、读取和写入数据等。 opc-utgard 的源码实现了 OPC Data Access v2.0(DA 2.0)规范,这是一种常见的 OPC 规范,用于获取实时数据。它还支持异步读取和写入数据,以提高通信效率。除了 DA 2.0,opc-utgard 还支持 OPC Alarm and Events(AE)规范,用于处理与报警和事件相关的功能。 通过研究 opc-utgard 的源码,我们可以深入了解 OPC 通信协议的实现细节,学习如何使用 Java 语言OPC 服务器进行通信和数据交换。此外,我们还可以根据实际需要对源码进行调整和定制,以满足特定的应用场景。 总之,opc-utgard 的源码是一个极具价值的资源,可以为开发者提供学习和开发 OPC 相关应用程序的支持。
评论 45
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值