Skip to content

OPAddIn使用说明

1. 软件介绍

1.1. 功能说明

OPAddIn以加载宏的方式注册成Excel/WPS插件,提供了获取openPlant实时数据、历史数据和统计数据的多种函数,并支持SQL语句获取数据。用户能通过这些函数获取实时数据库的任意数据,并将其展示在Excel/WPS任意单元格内,为客户自定义报表的制作提供了便捷操作,用户可基于OPAddIn方便的开发高级应用。

1.2. 使用****说明

使用要求:OPAddIn支持Excel2007及其以后的版本,支持WPS2023及以后版本版本。
OPAddIn加载项的参数,既可以是字符串、数字等常见数据类型,也可以是单元格地址类型。在本程序提供的菜单界面中,点名参数对以上类型均做了支持,用户可以手工输入点名(或者通过查询界面帮助输入),也可以通过紧跟的【选定】项来选择点名所在的单元格地址。当然这两项内容不会同时有效,若点名输入框不为空,则程序会选取点名输入框中内容为参数,反之则以选定框中内容为参数,若两者都为空,程序会报错提示。

2.软件部署

2.1. 软件位数确认

请在使用本软件前,确认Excel/WPS软件位数。根据对应的位数选择适配的OPAddIn软件程序。

2.1.1 Excel32位或64位版本

查看方法可参考如下截图:
图片1.png
图片2.png

2.1.2 WPS软件32位版本

WPS软件均为32位版本。
查看方法可参考如下截图:
图片3.png
图片4.png

2.2. 部署说明

2.2.1将软件解压至C盘

OPAddIn软件无需安装,解压即可使用。但是OPAddIn工具必须安装在C盘。请务必将OPAddIn软件包解压至C盘根目录。
图片5.png
WPS压缩包解压示例如下,请必须确保解压后目录和图示一致
图片6.png Excel压缩包解压示例如下,请必须确保解压后目录和图示一致
图片7.png

2.2.2将软件解压至C盘

(1) 若Excel/WPS为32位时,必须选用32位软件。
Excel插件32位文件截图:
图片8.png
32位文件介绍:

名称功能
opapi4.dll数据库动态库
op-excel-addin.txt记录数据库连接信息
OP-Excel-AddIn-packed.xll软件主程序

Excel插件64位文件截图:
图片9.png
64位文件介绍:

名称功能
opapi4.dll数据库动态库
op-excel-addin.txt记录数据库连接信息
OP-Excel-AddIn64-packed.xll软件主程序

WPS插件文件夹截图:
图片10.png
32位文件介绍:

名称功能
Lib动态库,不可随意修改
Scripts脚本目录,不可随意修改
shareOPAddin软件主程序目录
tools主程序辅助工具,不可随意修改
其他文件环境依赖文件,不可随意修改

Tools文件内为WPS注册表刷新程序和.NET框架组件安装程序。两个工具均为OPAddIn辅助工具。

名称功能
MicrosoftNETFrameworkV452.exe.NET框架安装程序
FlushWPSReg.exeWPS注册表刷新程序

3. Excel加载OPAddIn

(1)打开已存在的Excel文件,或者新建Excel文件,点击【文件】菜单项中的【选项】-【加载项】,选中Excel加载项,点击转到,跳出加载项对话框;
图片11.png
图片12.png
图片13.png
(2)加载项对话框,点击【浏览】,找到OPAddIn文件路径,根据系统32位/64位,选中对应的xll文件,打开。
图片14.png
(3)在Excel文件界面,将增加openPlant菜单。
图片15.png
(4)如果想要移除,可修改程序路径,Excel无法加载则可移除:
图片16.png

4. WPS加载OPAddIn

(1)打开已存在的WPS文件,或者新建WPS表格文件,点击【工具】菜单项中的【加载项】,跳出加载项对话框。
图片18.png
(2)加载项对话框,点击【浏览】,找到OPAddIn文件路径,添加C:\OP-WPS-AddIn\py\share\xloil\xlOil.dll,选中xlOil.dll文件,打开。
图片19.png
图片20.png
WPS打开过程中如果遇到如下报错,代表加载项写注册表错误。请关闭WPS表格,执行软件文件夹tools里FlushWPSReg.exe(该程序会刷新注册表),再次启动WPS表格重复上述加载步骤即可。
图片21.png
(4)如果想要移除该加载项,如果想要移除,可修改程序路径,WPS无法加载则可移除。

5. OPAddIn使用说明

5.1. 连接openPlant

5.1.1. WPS设置连接

WPS需要在配置文件中修改数据库连接信息。配置文件位置是 C:\OP-WPS-AddIn\py\share\xloil\config.ini):
配置文件内容如下:

[database]
host = 192.168.2.76
port = 8200
user = sis
password = openplant
timeout = 60

请根据你的环境填入真实连接信息,host(IP地址)、port(数据库服务端口)、user(用户名)和password(密码)。
当数据库连接成功后,用户就可以开始在表格页面选择相应openPlant函数进行数据分析工作。

5.1.2. Excel设置连接

点击openPlant菜单中【设置连接】,跳出数据库连接配置界面。输入实时数据库IP、端口、用户名和密码,点确定即可完成数据库连接操作。用户可通过【测试】,检测数据库是否可以连通。
图片22.png
图片23.png
当数据库连接成功后,用户就可以开始在表格页面选择相应openPlant函数进行数据分析工作。
图片24.png

5.2. SQL操作OPSQL()

5.2.1. 函数说明

OPSQL()(sql,align)
函数功能:通过输入SQL语句来获取数据
参数说明:

参数说明解释
sqlSQL语句openPlant支持的数据库SQL语句
align输出格式选填,默认为0。0:竖排,1:横排

输出说明:
根据不同SQL语句所查询字段,返回字段名和字段对应结果
函数示例:
=OPSQL("select ID,GN from point order by id limit 5 ",0)
=OPSQL("select ID,GN ,ED from point where GN like '%sys%'",0)
=OPSQL("select gn,av,tm from archive where id=104041 and tm between '2021-12-09 09:00:00' and '2021-12-09 10:00:00' ",0)
=OPSQL("select gn,av,tm from realtime where id in(104041,104047,104052)",0)
=OPSQL("select * from alarm",0)

5.2.2. 使用示例

在表格空白区域框选输入框,输入框请根据预期结果字段数进行框选。例如,期望查询测点ID和GN字段,期望返回前5个测点信息,则在表格框选如下区域,并输入函数:=OPSQL("select ID,GN from point limit 5",0),按Ctrl+Shift+Enter或者Enter,查询结果将填入选择区域。
查询测点函数示例如下:
图片26.png
=OPSQL("select ID,GN ,ED from point where GN like '%sys%'",0),结果示例:
图片27.png
=OPSQL("select gn,av,tm from archive where id=104041 and tm between '2021-12-09 09:00:00' and '2021-12-09 10:00:00' ",0),结果截图:
图片28.png
=OPSQL("select gn,av,tm from realtime where id in(104041,104047,104052)",0)结果截图:
图片29.png

5.3. 实时数据查询OPReal()

5.3.1. 函数说明

OPReal()(gns,align)
函数功能:通过输入测点名称来获取对应实时数据
参数说明

参数说明
gns所查询的点名队列或单元格区域,单元格区域必须是单行或单列
align选填,默认为0。0:竖排,1:横排
输出说明:
根据点名查询实时数据,返回测点对应的实时数据
函数示例:
=OPReal({"W3.SYS.LOAD","W3.SYS.DBMEM"},0)
=OPReal(E2:E6,0)

5.3.2. 使用示例

框选需要放入实时值的区域,并输入函数OPReal(),选中需要查询实时数据的测点名称区域,输入示例函数:=OPReal(E2:E6,0),按Ctrl+Shift+Enter或者Enter,查询结果将填入选择区域。
图片30.png
图片31.png
程序支持手工输入测点名称。例如需要查询W3.SYS.LOAD和W3.SYS.DBMEM两个测点的实时值,先框选需要放入实时值的区域,示例函数:=OPReal({"W3.SYS.LOAD","W3.SYS.DBMEM"},0),按Ctrl+Shift+Enter或者Enter,查询结果将填入选择区域。
图片32.png

5.4. 历史时刻值同步查询OPValue()

5.4.1. 函数说明

OPValue(gn,tm)
函数功能:通过输入测点名称和历史时刻,获取指定测点指定历史时刻的历史时刻值,同步模式查询
参数说明

gn所查询的点名或单元格区域
tm历史时刻或单元格区域
输出说明:
返回测点指定历史时刻的历史时刻值
函数示例:
=OPValue(E2,"2021-12-10 15:00:00")
=OPValue("W3.SYS.LOAD","2021-12-10 15:00:00")

5.4.2. 使用示例

框选需要放入历史时刻值的区域,并输入函数OPValue(),选中需要查询数据的测点名称,输入示例函数:=OPValue(E2,"2021-12-10 15:00:00"),按Ctrl+Shift+Enter或者Enter,查询结果将填入选择区域。
图片33.png
图片34.png

5.5. 历史时刻值异步查询OPValueAsync()

该函数仅在Excel模式下提供。

5.5.1. 函数说明

OPValueAsync(gn,tm)
函数功能:通过输入测点名称和历史时刻,获取指定测点指定历史时刻的历史时刻值,异步模式查询
参数说明

gn所查询的点名或单元格区域
tm历史时刻或单元格区域
输出说明:
返回测点指定历史时刻的历史时刻值
函数示例:
=OPValueAsync(E2,"2021-12-10 15:00:00")
=OPValueAsync("W3.SYS.LOAD","2021-12-10 15:00:00")

5.5.2. 使用示例

框选需要放入历史时刻值的区域,并输入函数OPValueAsync(),选中需要查询数据的测点名称,输入示例函数:=OPValueAsync(E2,"2021-12-10 15:00:00"),按Ctrl+Shift+Enter或者Enter,查询结果将填入选择区域。
图片35.png
图片36.png

5.6. 等间距历史查询OPSpan()

5.6.1. 函数说明

OPSpan()(gns,start,end,interval,align)
函数功能:通过输入测点名称、开始时间、结束时间和时间间隔等参数获取历史等间距值
参数说明

参数说明
gns所查询的点名队列或单元格区域,单元格区域必须是单行或单列
start起始时刻或单元格区域
end结束时刻或单元格区域
interval等间距间隔,单位:秒
align选填,默认为0。0:竖排,1:横排
输出说明:
返回测点对应的历史数据,包括历史时刻和等间距历史数据
函数示例:
=OPSpan(E2:E6,"2021-12-10 15:00:00","2021-12-10 16:00:00",3600,0)
=OPSpan(E2:E6,H2,H3,3600,0)
=OPSpan({"W3.SYS.LOAD","W3.SYS.DBMEM"},"2021-12-10 15:00:00","2021-12-10 16:00:00",3600,0)

5.6.2. 使用示例

框选需要放入历史等间距值的区域,并输入函数OPSpan(),选中需要查询数据的测点名称区域,输入示例函数:=OPSpan(E2:E6,"2021-12-10 15:00:00","2021-12-10 16:00:00",1800,0),按Ctrl+Shift+Enter或者Enter,查询结果将填入选择区域。
请注意:
1)历史数据包括历史时刻和历史值,需要两列空间。
2)历史间隔,单位为秒。程序将根据开始和结束时间并以历史间隔分段,顺序返回每个测点的历史等间距数据。以示例函数为例,
=OPSpan(E2:E6,"2021-12-10 15:00:00","2021-12-10 16:00:00",1800,0),每个测点将返回三条数据,总计15条。
图片37.png
3)历史间隔为0的情况下,默认是开始和结束历史区间,每个测点数据将包括开始时间和结束时间两条数据。
图片38.png

5.7. 采样值历史查询OPRaw()

5.7.1. 函数说明

OPRaw()(gns,start,end,align)
函数功能:通过输入测点名称、开始时间、结束时间和时间间隔等参数获取历史采样值
参数说明

参数说明
gns所查询的点名队列或单元格区域,单元格区域必须是单行或单列
start起始时刻或单元格区域
end结束时刻或单元格区域
align选填,默认为0。0:竖排,1:横排
输出说明:
返回测点对应的原始值历史数据,包括历史时刻和采样值
函数示例:
=OPRaw(E2:E6,"2021-12-10 15:00:00","2021-12-10 16:00:00",0)
=OPRaw({"W3.SYS.LOAD","W3.SYS.DBMEM"},"2021-12-10 15:00:00","2021-12-10 16:00:00",0)

5.7.2. 使用示例

框选需要放入历史值采样值的区域,并输入函数OPRaw(),选择需要查询数据的测点名称区域,输入示例函数:=OPRaw(C2:C2,"2021-12-10 15:00:00","2021-12-10 16:00:00",0),按Ctrl+Shift+Enter或者Enter,采样值将返回填入时间区间内的全部结果,数据返回历史时间和历史采样值,需要两列空间。
图片39.png

5.8. 平均值查询OPAvg()

5.8.1. 函数说明

OPAvg()(gns,start,end,interval,align)
函数功能:通过输入测点名称、开始时间、结束时间和时间间隔等参数获取各区间历史平均值
参数说明

参数说明
gns所查询的点名队列或单元格区域,单元格区域必须是单行或单列
start起始时刻或单元格区域
end结束时刻或单元格区域
interval等间距间隔,单位:秒
align选填,默认为0。0:竖排,1:横排
输出说明:
返回测点对应区间的平均值数据,包括历史时刻和平均值
函数示例:
=OPAvg(H2:H2,"2021-12-10 15:00:00","2021-12-10 16:00:00",600,0)
=OPAvg({"W3.SYS.LOAD","W3.SYS.DBMEM"},"2021-12-10 15:00:00","2021-12-10 16:00:00",600,0)

5.8.2. 使用示例

框选需要放入历史平均值的区域,并输入函数OPAvg(),选择需要查询数据的测点名称区域:=OPAvg(H2:H2,"2021-12-10 15:00:00","2021-12-10 16:00:00",600,0),按Ctrl+Shift+Enter或者Enter,将返回填入时间区间内的全部结果,数据返回历史时间和平均值,需要两列空间。
图片40.png

5.9. 最大值查询****OPMax()

5.9.1. 函数说明

OPMax()(gns,start,end,interval,align)
函数功能:通过输入测点名称、开始时间、结束时间和时间间隔等参数获取各区间历史最大值
参数说明

参数说明
gns所查询的点名队列或单元格区域,单元格区域必须是单行或单列
start起始时刻或单元格区域
end结束时刻或单元格区域
interval等间距间隔,单位:秒
align选填,默认为0。0:竖排,1:横排
输出说明:
返回测点对应区间的最大值数据,包括历史最大值时刻和最大值
函数示例:
=OPMax(E2:E2,"2021-12-10 15:00:00","2021-12-10 16:00:00",600,0)
=OPMax({"W3.SYS.LOAD","W3.SYS.DBMEM"},"2021-12-10 15:00:00","2021-12-10 16:00:00",600,0)

5.9.2. 使用示例

框选需要放入历史最大值的区域,并输入函数OPMax(),选择需要查询数据的测点名称区域:=OPMax(E2:E2,"2021-12-10 15:00:00","2021-12-10 16:00:00",600,0),按Ctrl+Shift+Enter或者Enter,将返回填入时间区间内的全部结果,数据返回历史值最大时刻和最大值,需要两列空间。
图片41.png

5.10. 最小值查询****OPMin()

5.10.1. 函数说明

OPMin()(gns,start,end,interval,align)
函数功能:通过输入测点名称、开始时间、结束时间和时间间隔等参数获取各区间历史最小值
参数说明

参数说明
gns所查询的点名队列或单元格区域,单元格区域必须是单行或单列
start起始时刻或单元格区域
end结束时刻或单元格区域
interval等间距间隔,单位:秒
align选填,默认为0。0:竖排,1:横排
输出说明:
返回测点对应区间的最小值数据,包括历史最小值时刻和最小值
函数示例:
=OPMin(E2:E2,"2021-12-10 15:00:00","2021-12-10 16:00:00",600,0)
=OPMax({"W3.SYS.LOAD","W3.SYS.DBMEM"},"2021-12-10 15:00:00","2021-12-10 16:00:00",600,0)

5.10.2. 使用示例

框选需要放入历史最小值的区域,并输入函数OPMin(),选择需要查询数据的测点名称区域:=OPMin(E2:E2,"2021-12-10 15:00:00","2021-12-10 16:00:00",600,0),按Ctrl+Shift+Enter或者Enter,将返回填入时间区间内的全部结果,数据返回历史值最小时刻和最小值,需要两列空间。
图片42.png

5.11. 流量值查询****OPFlow()

5.11.1. 函数说明

OPFlow()(gns,start,end,interval,align)
函数功能:通过输入测点名称、开始时间、结束时间和时间间隔等参数获取各区间历史流量值
参数说明

参数说明
gns所查询的点名队列或单元格区域,单元格区域必须是单行或单列
start起始时刻或单元格区域
end结束时刻或单元格区域
interval等间距间隔,单位:秒
align选填,默认为0。0:竖排,1:横排
输出说明:
返回测点对应区间的流量值数据,包括历史区间和流量值
函数示例:
=OPFlow(E2:E2,"2021-12-10 15:00:00","2021-12-10 16:00:00",1800,0)
=OPFlow({"W3.SYS.LOAD","W3.SYS.DBMEM"},"2021-12-10 15:00:00","2021-12-10 16:00:00",1800,0)

5.11.2. 使用示例

框选需要放入历史流量值的区域,并输入函数OPFlow(),选择需要查询数据的测点名称区域:=OPFlow(E2:E2,"2021-12-10 15:00:00","2021-12-10 16:00:00",1800,0),按Ctrl+Shift+Enter或者Enter,将返回查询时间范围内的全部结果,数据返回包括历史区间和对应流量值。
图片43.png

5.12. 统计值查询****OPStat()

5.12.1. 函数说明

OPStat()(gns,start,end,interval,align)
函数功能:通过输入测点名称、开始时间、结束时间和时间间隔等参数获取各区间历史统计值
参数说明

参数说明
gns所查询的点名队列或单元格区域,单元格区域必须是单行或单列
start起始时刻或单元格区域
end结束时刻或单元格区域
interval等间距间隔,单位:秒
align选填,默认为0。0:竖排,1:横排
输出说明:
返回测点对应区间的统计值数据,包括历史区间和统计值,统计值排序包括:最大值时刻、最大值、最小值时刻、最小值、时间区间、平均值、流量值
函数示例:
=OPStat(E2:E2,"2021-12-10 15:00:00","2021-12-10 16:00:00",1800,0)
=OPStat({"W3.SYS.LOAD","W3.SYS.DBMEM"},"2021-12-10 15:00:00","2021-12-10 16:00:00",1800,0)

5.12.2. 使用示例

框选需要放入历史统计值的区域,并输入函数OPStat(),选择需要查询数据的测点名称区域:=OPStat(E2:E2,"2021-12-10 15:00:00","2021-12-10 16:00:00",1800,0),按Ctrl+Shift+Enter或者Enter,将返回查询时间范围内的全部结果,数据返回包括历史区间和对应统计值。
图片44.png

5.13. 系统时间查询****OPTime()

5.13.1. 函数说明

OPTime()
函数功能:获取数据库服务器系统时间
参数说明

参数说明
输出说明:
返回数据库服务器系统时间
函数示例:
=OPTime()

5.13.2. 使用示例

框选需要放入数据库服务器系统时间的区域,并输入函数OPTime(),将返回数据库服务器系统时间。
图片45.png

6. 常见问题

6.1. Excel位数与软件不匹配

图片46.png

6.2. WPS注册表刷新

WPS加载过程中如果遇到如下报错,代表加载项写注册表错误。请关闭WPS表格,执行软件文件夹里FlushWPSReg.exe(该程序会刷新注册表),再次启动WPS表格重复上述加载步骤即可。
图片47.png
图片48.png

6.3. NET框架未安装

软件加载程中如果遇到如下报错,代表服务器未安装.net框架,请执行Tools中MicrosoftNETFrameworkV452.exe,完成软件所需框架安装。安装后重启软件即可正常。
图片49.png

6.4. 数据库配置错误

当数据库连接中断时,软件会返回数据库配置信息错误,点击数据库连接重新配置正确数据库信息即可。
图片50.png

6.5. 数据获取失败

数据库连接成功后,测点在指定时间段无数据时,数据返回结果为空,则展示为null。
图片51.png

6.6. 时间格式不严谨

时间请输入标准格式YYYY-MM-DD hh:mm:ss。当时间格式不匹配时,会出现校验异常。
图片52.png