java通过piapi动态库操作PI数据库(2.x版本)实例

最近良哥在开发某电厂数据分析平台时需要操作PI数据库(OSIsoft公司的实时数据库产品),从PI 官网(https://techsupport.osisoft.com/)介绍可知,常用的访问PI数据库的方案有:①使用PI JDBC Driver或 ODBC Driver;②使用PI WEB API;③使用PI SDK;

一、使用 PI JDBC Driver

PI的JDBC驱动程序是一个java数据库连接驱动,通过SQL查询提供了强大的数据访问PI系统 。PI JDBC Driver 提供了一个类似于java 访问Mysql或者Oracle 同样的方式。但是,JDBC Driver 是 通过中间层 PI SQL DATA Access Server 来实现 PI JDBC driver 和 PI OLEDB Enterprise/PI OLEDB providers 之间的交互的。因此需要同时安装jdbc驱动和PI SQL DAS。

二、使用 PI WEB API

PI Web API是一个RESTful API,允许你通过HTTP请求与PI System进行交互。Java应用程序可以使用HTTP客户端库(如Apache HttpClient或OkHttp)来调用PI Web API。此方案是最便捷的,但是据厂家技术人员反馈,该方式只支持3.x版本以上的PI数据库。由于良哥此次面临的PI数据库是2.x版本,因此该方案无效。

三、使用 PI SDK

前言

此方案由于需要调用OSIsoft提供的piapi32.dll动态库,因此只能在windows系统上实现,同时对于c语言实现的库函数,java在调用时也需要完成变量类型的适配工作。以下主要详述此方案的具体实现方法。

1)环境:

操作系统:windows(linux不适用)
jdk版本:jdk1.8-32位(一定要32位版本,否则无法调用动态库)
PI接口库函数:piapi32.dll
下载地址1:https://download.youkuaiyun.com/download/hualinger/90414712
下载地址2:https://download.youkuaiyun.com/download/hualinger/90414696

2)POM引用(SpringBoot环境):

<dependency>
    <groupId>net.java.dev.jna</groupId>
    <artifactId>jna</artifactId>
    <version>5.5.0</version>
</dependency>

3)代码示例

import com.sun.jna.ptr.FloatByReference;
import com.sun.jna.ptr.IntByReference;
import org.junit.Test;
import org.springframework.boot.test.context.SpringBootTest;

@SpringBootTest
public class PIAPITestUtils {
   
   

   
评论 2
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值