Java 访问PI 数据库:(1)安装必要软件

Java 访问PI 数据库

需求

  • 使用java 去访问PI 数据库

前提环境

  • 已经在远程安装了PI 数据库。
  • windows 系列
  • jre 8 及以上

资料收集

  • PI 官网 https://techsupport.osisoft.com/
  • 在官网上,开发者技术 上,可以看到相关帮助文档与软件下载
  • 由官网(Developer Technologies)介绍可知:常用的访问PI数据库的方案有
    • 使用 JDBC Driver 或 ODBC Driver
    • 使用 PI Web Api
    • 使用 sdk

确定方案

根据需求,决定选择 JDBC Driver 来实现java 访问PI数据库

原理

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 之间的交互的。
PI SQL DAS(OLE DB)在客户端 通过 Net.TCP 或者 HTTPS 来提供安全的网络连接
JDBC
安装架构模式1
架构模式2

软件安装

一定要注意安装顺序:
按照摸索的过程书写的文档。其真实安装步骤应该是:
* OLE DB
* PI SQL Data Access Server
* PI JDBC Driver 2016

安装PI JDBC Driver 2016
  • PI JDBC Driver 2016 在 windows 上基本要求
    • windows7 及以上
    • JRE 7 及以上
    • 已经安装了 PI SQL DATA Access Server
  • 安装步骤
    • 下载 PI JDBC Driver 2016 SP1 Install Kit (Windows)
    • 根据安装向导运行,运行 PI-JDBC_2016-SP1_.exe,全部默认
    • 安装以后,其安装目录(PIHOME),32bit:C:\Program Files (x86)\PIPC\JDBC,64 bit :C:\Program Files\PIPC\JDBC
    • 系统环境变量会自动添加或更新
      • PI_RDSA_LIB=PIHOME\JDBC\RDSAWrapper.dll
      • PI_RDSA_LIB64=PIHOME\JDBC\RDSAWrapper64.dll
      • CLASSPATH=PIHOME\JDBC\PIJDBCDriver.jar
      • 打开 cmd,运行set piset classpath 即可查询环境变量是否设置
    • 安装完成
  • 注意事项
    • 如果没有安装 PI SQL DATA Access Server,安装了 JDBC Driver 也没有什么用。你会发现 JDBC 的安装目录下提供了一个类似于 JDBC访问Mysql的包而已。
    • 甚至,你自身的系统为64bit,它却会静默安装 将32 bit 的安装上去。
    • 程序还提供了一种静默安装方案
      • msiexec.exe /i PIJDBC.msi REBOOT=Suppress ALLUSES=1 /qn
      • msiexec.exe /i PIJDBC64.msi REBOOT=Suppress ALLUSES=1 /qn
        (未实践)
安装PI SQL DATA Access Serve(OLE DB)
  • PI SQL DAS 在 windows 上基本要求
    • 需要安装 Microsoft .Net Framework 4.6
    • 需要安装 PI OLEDB Provider 或者 PI OLEDB Enterprise
  • 安装步骤
    • 下载 PI SQL Data Access Server (OLE DB) Install Kit
    • 使用拥有管理员权限的账户来安装
    • 根据安装向导运行,运行 PISQLDAS_*.exe, 点击Ok
      • 当你运行安装时,PI SQL DAS 会根据你的操作系统版本自动选择安装 32bit 或者 64bit
      • HTTPS port 默认为 5461,Net.TCP 为 5462
      • 自动安装对应的证书
      • 会修改对应端口的防火墙
    • 安装完成
    • 校验服务是否在运行。我的电脑->管理->服务 中查看 是否新增了一个 PI SQL Access Server(OLE DB)的服务在运行状态
      安装后服务启动
安装 PI OLEDB Provider 或者 PI OLEDB Enterprise
  • PI JDBC Driver 2016 在 windows 上基本要求
    • windows7 及以上
    • JRE 7 及以上
    • 需要安装 Microsoft .Net Framework 4.6 (企业版中包含此安装包)
  • 安装步骤
    • 下载 PI OLEDB Provider 或者 PI OLEDB Enterprise
    • 根据安装向导运行,运行 PI-OLEDB_*.exe,全部默认
    • 安装完成
    • 注意
      • PI OLEDB Enterprise 比 PI OLEDB Provider 要全面较多。所安装的软件也会更多。
      • msiexec.exe /i PIOLEDBEnterprise64.msi REBOOT=Suppress ALLUSES=1 /qn
安装 PI ODBC Driver
  • 在 windows 上基本要求
    • windows7 及以上
    • JRE 7 及以上
  • 安装步骤
    • 下载 PI ODBC Driver
    • 根据安装向导运行,运行 PI-ODBC_*.exe,全部默认
    • 安装完成
    • 它包含一个工具SQL Commander Lite,可以用来查询SQL

通过上述的安装步骤之后,从开始菜单打开SQL Commander Lite,可以连接上 PI 服务,并且使用 类似 sql 语句去查询PI 中的数据。具体 sql语句 查看 帮助文档如PI-OLEDB-Enterprise-2016-R2-User-Guide.pdf
查询

精简安装包

经过上述的安装步骤之后,会发现,其安装很是臃肿,比如,原本我是 64bit的操作系统,我只想要安装 64bit 即可,上述的安装步骤,却会将 32bit 也全部安装。
对比各个包解压后的文件,查看其 setup.ini, 则会发现 setup.ini 是一些关于安装文件与安装顺序的配置。调整 setup.ini 中的相关安装文件顺序与安装命令,一一对应,将其中对应的 32 bit 配置删除,并且将多个安装包 合并在一起。
执行 setup.exe 即可集成安装 .Net 4.6/PI OLEDB Provider/PI SQL DAS(OLE DB)/SQL Commander Lite 等
这里写图片描述

配置文件如下:

[SETUPKIT]
;
;-------------------------------------------------------------------------------
; Setup wrapper master log file and display name
;-------------------------------------------------------------------------------
;
NAME = PIOLEDB
DISPLAYNAME = PI OLEDB 2016
;
;------------------------------------
; Silent/Interactive options
; Should be TRUE for silent installs
;------------------------------------
SUPPRESSCOMPLETIONMESSAGE = FALSE
SUPPRESSPROGRESSMESSAGE = FALSE
SUPPRESSHEADERMESSAGE = FALSE
SUPPRESSDIALOGS = FALSE

;----------------------------
; Other setup wrapper options
;----------------------------
SHOWSKIPPEDMODULES = FALSE
FEATUREUPGRADE = FALSE

[NUMSETUPMODULES]
NUM=12

[SETUPMODULES]
1 = dotnet460Setup
2 = pibufss\PreInstallTasks
;   PIBufssPreInstallTasks required by pibufss.msi (4.3) and pibufss_x64.msi (4.3)
;
3 = MSRuntimes\MSRuntimes.msi
;   MSRuntimes.msi required by: pisdk.msi (1.4.4) because of its VB6 controls.
;
4 = VS2008Redistrib\MSVC9SP1x64Redistrib
;   MSRuntimes VS2008 SP1 (32-bit and 64-bit) required by: AFClient PISDKRegistry merge module, and PIBufss piapi.msm
;
5 = VS2010Redistrib\MSRuntimesSetupVS2010SP1_x64
;   MSRuntimes VS2010 SP1 required by:  pisdk (1.4.4) because of the following 3.4.390.xx utilities and dll's: pictrdll.dll, pigetmsg.exe, piconfig.exe, pidiag.exe
;
6 = VS2012Redistrib\MSRuntimesVS2012_x64
;   MSRuntimes VS2012 SP1 (32-bit and 64-bit) required by: pibufss (4.3)
;
;PI SDK (64-bit)
7 = pisdk\PISDK_x64.msi
;
;
; PI Buffer Subsystem
8 = pibufss\PIBufss_x64.msi
9 = PIOLEDB64.msi
10 = VS2015Redistrib\MSRuntimesVS2015_x64
11 = PI_SQL_Data_Access_Server_OLE_DB_x64.msi
12 = PI_SQL_Commander_Lite_x64.msi
[COMMANDLINE]
2 = 
;MSRuntimes 
3 = ALLUSERS=1 REBOOT=Suppress /qb-
;2008 SP1 Runtimes (32-bit and 64-bit) 
4 = /qb- /norestart
;2010 SP1 Runtimes (32-bit and 64-bit) 
5 = /norestart /passive
;2012 SP1 Runtimes (32-bit and 64-bit) 
6 = /norestart /passive
;PI SDK (64-bit)
7 = NOPISDKBUFFERING=1 ALLUSERS=1 REBOOT=Suppress /qb-
; PI Buffer Subsystem (64-bit)
8 = ALLUSERS=1 REBOOT=Suppress /qb-
9 = ALLUSERS=1 /qr

10 = /norestart /passive
12 = ALLUSERS=1 /qr

[UPGRADECOMMANDLINE]
;PI SDK (32-bit, 64-bit)
7 = REINSTALL=ALL REINSTALLMODE=vemus

[DISPLAYNAME]
1 = DotNet 4.6
4 = Microsoft Visual C++ 2008 x64 Redistributable


[CHECKFORINSTALLEDONLY]

[UNSUPPORTED_OPERATING_SYSTEMS_MESSAGE]
; Messages for X86 or X64 take priority over operating system specific messages.
;
;X86 = Setup initialization has failed. This setup kit cannot be installed on 32-bit Operating Systems. Setup cannot continue.
WinXP = Windows XP is not supported. 
Vista = Service Pack 2 is required on Windows Vista. 
Win7 = Service Pack 1 is required on Windows 7. 
Win2K = Windows 2000 is not supported. 
WinNET = = Windows Server 2003 is not supported.
Win2008 = Service Pack 2 is required on Windows Server 2008. 
Win2008R2 =  Service Pack 1 is required on Windows Server 2008 R2.


[UNSUPPORTED_OPERATING_SYSTEMS]
;
;-------------------------------------------------------------------------------
; Defined Operating Systems
;
; (Win95, Win98, WinME, WinNT, Win2K, WinXP, WinNET, Vista, Win2008, Win7, 
;  Win2008R2, Win8, Win2012, Win81, Win2012R2)
;
; If Defined Operating Systems used, all versions of specified operating system
; is defined.
;
; Defined Operating Systems with Service Packs or sub category
;
; (WinNTPreSp6a, WinNTSp6a, Win2KNoSp, Win2KSp1, Win2KSp2, Win2KSp3, Win2KSp4,
; WinXPNoSp, WinXPSp1, WinXPSp2, WinNETNoSp , WinNETSp1, WinNETSp2, VistaNoSp,
; VistaSp1, VistaSp2, Win2008NoSP, Win2008Sp1, Win2008Sp2, CORE, Win7,
; Win2008R2, Win8, Win2012, Win81, Win2012R2, X64)
;
; If Defined Operating Systems with Service Packs used, only that specific
; service pack within operating system is defined. The exception is for
; WinNT where only Sp6a or pre Sp6a is defined.
;
; A 0 entry denotes that the setup can not run on the given operating systems.
; An entry that corresponds to an entry in the [SETUPMODULES] section denotes
; that the particular setup module will be skipped on the given operating system
;-------------------------------------------------------------------------------
;
0 = Win95, Win98, WinME, WinNT, Win2K, WinXP, WinNET, VistaNoSp, VistaSp1, Win2008NoSp, Win2008Sp1, Win7NoSp, Win2008R2NoSp, CORE
;
; VS2008Redistrib\MSVC9SP1x64Redistrib
4= X86
;
; VS2010Redistrib\MSRuntimesSetupVS2010SP1_x64
5 = X86
;
; VS2012Redistrib\MSRuntimesVS2012_x64
6 = X86
;
; PI SDK (64-bit)
7 = X86
;
;
; PI Buffer Subsystem (64-bit)
8 = X86
;
; PI OLEDB (64-bit)
9 = X86

;MSI's or Setup wrapper Dll's can write to this section to dynamically change 
;the command line for an MSI at setup runtime.
[RUNTIME_PARAMETERS]

;This section is used by the pibufss pre-install tasks and post-install tasks.
[PIBUFSS]

  • 4
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 20
    评论
Java可以使用JDBCJava Database Connectivity)来读取pi数据库中的测点值。 首先,需要导入相关的JDBC驱动程序。例如,对于PI数据库,可以使用PI JDBC驱动程序。可以从OSIsoft的官方网站下载并安装该驱动程序。 接下来,需要连接到PI数据库。可以使用JDBC的APIPI JDBC驱动程序提供的连接字符串来建立连接。连接字符串包含数据库的URL、用户名和密码等信息。例如: ```java String url = "jdbc:pisql://localhost/pi"; String user = "yourUsername"; String password = "yourPassword"; Connection connection = DriverManager.getConnection(url, user, password); ``` 连接成功后,可以执行SQL查询来读取pi数据库中的测点值。例如,可以使用SELECT语句来选择特定的测点和时间范围,并获取相应的值。例如: ```java String sql = "SELECT value, time FROM yourTableName WHERE tag = 'yourTagName' AND time >= ? AND time <= ?"; PreparedStatement statement = connection.prepareStatement(sql); statement.setTimestamp(1, startTime); // 设置起始时间 statement.setTimestamp(2, endTime); // 设置结束时间 ResultSet resultSet = statement.executeQuery(); while (resultSet.next()) { double value = resultSet.getDouble("value"); Timestamp time = resultSet.getTimestamp("time"); System.out.println("Value: " + value + ", Time: " + time); } ``` 在查询结果中,可以通过调用`resultSet.getDouble("value")`获取测点的值,通过调用`resultSet.getTimestamp("time")`获取测点的时间。 最后,记得关闭连接和释放资源。 ```java resultSet.close(); statement.close(); connection.close(); ``` 以上是使用Java读取PI数据库中测点值的大致流程。具体的实现会根据使用的JDBC驱动程序和数据库的具体要求而有所不同。
评论 20
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值