反馈已提交

网络繁忙

PI数据库API循环取数

  • 文档创建者:Wendy123456
  • 历史版本:5
  • 最近更新:Wendy123456 于 2024-08-12
  • 1. 概述

    本文讲述如何从 PI 数据库取数。

    1.1 什么是PI数据库

    PI 数据库是由美国 OSIsoft 公司开发的一种适用于实时数据管理的系统。它提供了高性能的数据采集、存储和检索服务,通常用于工业自动化、过程控制、能源管理等领域。

    1.2 取数方式

    PI Web API 是 PI System 提供的基于 Web 的应用程序编程接口(API),允许开发人员通过网络请求的方式访问 PI 数据,并与 PI System 进行集成。

    PI Web API 支持常见的网络协议,如 HTTP 和 HTTPS,可以使用各种编程语言和开发框架来发出请求并处理响应。使用 PI Web API 时,开发人员可以使用认证方式获得对 PI 系统的访问权限,并通过发送适当的 HTTP 请求来获取数据、执行操作或执行其他功能。

    PI Web API 的返回结果通常以常见的数据格式,如 XML 或 JSON 格式进行表示,以便可以轻松地进行解析和处理。

    1.3 取数思路

    在 PI 系统中,每个装置都有对应的位号,位号不能直接取值,需要用位号获取对应的 web_id ,再用 web_id 通过 API 取数的方式,返回需要的值。

    注:装置对应的位号与 WEBID 可能存在变化,所以每次取数前需要进行更新。

    1723430940481674.png

    2. 操作步骤

    2.1 准备配置表

    需要手动创建一张配置表(名称为 pi_data),该配置表需要包含字段:

    • name:代表装置名称;用户需要准备初始值;该字段起到备注作用,若用户实际场景中需要,可同步到最终要保存的表中,便于识别每条数据对应哪个装置。

    • metering:代表位号;用户需要准备初始值;每个装置对应的位号可能会有变化,PI 系统取数前需要更新该字段。

    • web_id:用户需要准备初始值;该值可能会有变化,PI 系统取数前需要更新该字段。

    3.png

    2.2 添加任务参数

    新建定时任务,点击「参数列表」,添加任务参数start_time,值为 yyyy-mm-dd,便于后续使用该参数从 PI 系统中取出当天某个时间段的数据。如下图所示:

    4.png

    2.3 获取 web_id

    需要通过位号获取 web_id ,再使用 web_id 从 PI 系统中取数。

    2.3.1 将位号输出为参数

    1)拖入参数赋值节点,将 2.1 节表中的 metering 字段取出并输出为参数。如下图所示:

    注:建议给参数设置一个调试值,便于后续节点调用该参数时预览效果;调试值并不参与任务的实际运行。

    7.png

    2.3.2 循环容器设置

    由于 API 取数时,每次只能使用一个位号来获取 web_id ,由于有多个位号参数,所以需要使用循环容器节点,遍历所有位号参数,获取对应的 web_id。

    拖入循环容器节点,循环方式选择遍历循环,遍历对象勾选参数 metering。如下图所示:

    8.png

    2.3.3 取出最新web_id并更新pi_data表

    本节步骤中,我们需要根据 metering 字段获取对应的 web_id ,并将最新的 web_id 和 metering 字段更新到 pi_data 表中。

    1)循环容器节点中拖入数据转换节点,进入数据转换节点。

    2)拖入API输入算子,使用 metering 字段获取对应的 web_id。如下图所示:

    用户根据实际情况,设置认证、Headers参数。

    9.png

    3)点击「数据预览」,如下图所示:

    Name 字段对应 2.1 节 pi_data 中的 metering 字段。

    10.png

    4)由于 pi_data 表中的 metering 、web_id 字段可能存在变化,需要在 PI 系统取数前更新这两个字段。

    拖入「DB表输出」算子,更新 pi_data 表中的 metering 、web_id 字段。如下图所示:

    2.png

    2.4 将 web_id 输出为参数

    拖入「参数赋值」节点,取出 pi_data 表中的 web_id 字段,并输出为参数。如下图所示:

    注:建议给参数设置一个调试值,便于后续节点调用该参数时预览效果;调试值并不参与任务的实际运行。

    11.png

    2.4 PI系统取数

    2.4.1 循环容器设置

    PI 系统取数时,每次只能使用一个 web_id 进行取数,所以需要使用循环容器节点,遍历所有 web_id 取出对应的数据。

    拖入循环容器节点,循环方式选择遍历循环,遍历对象勾选参数 web_id、metering。如下图所示:

    12.png

    2.4.2 PI 系统取数

    本节中,我们使用 web_id 参数从 PI 系统中取出所需数据。

    1)循环容器节点中拖入「数据转换」节点,进入「数据转换」节点。

    2)拖入API输入算子,使用 web_id 参数从 PI 系统中取出所需数据。如下图所示:

    用户根据实际情况,设置认证、Headers参数。

    13.png

    点击「数据预览」,取出数据如下图所示:

    14.png

    Items 字段为为实际需要数据,由于是 JSON 格式数据,需要进行解析。

    3)拖入JSON解析算子,解析 Items 字段。如下图所示:

    15.png

    点击数据预览,如下图所示:

    16.png

    4)由于解析结果中没有位号和 web_id 字段,无法区分当前值是根据哪个 web_id 取出的,需要新增列,将参数 web_id 输出,为方便后续查验,将执行时间一起输出。

    拖入一个新增计算列算子,将 web_id 值和执行时间输出。如下图所示:

    17.png

    点击数据预览,如下图所示:

    3.png

    5)当前数据无法看出对应的哪个装置,若用户需要,可使用数据关联算子,与 pi_data 表中的 name 字段关联(连接字段选择 web_id 即可)

    2.4.3 输出数据

    拖入DB表输出算子,将最终数据输出。如下图所示:

    18.png

    写入方式选择追加写入数据

    2.5 效果查看

    任务运行成功后,可看到数据已从 PI 系统取出,如下图所示:

    19.png

    用户可点击「发布」按钮,将任务发布到生产模式中。详情请参见:开发模式与生产模式





    附件列表


    主题: 数据开发-定时任务
    • 有帮助
    • 没帮助
    • 只是浏览
    • 评价文档,奖励 1 ~ 100 随机 F 豆!

    鼠标选中内容,快速反馈问题

    鼠标选中存在疑惑的内容,即可快速反馈问题,我们将会跟进处理。

    不再提示

    10s后关闭



    AI

    联系我们
    在线支持
    获取专业技术支持,快速帮助您解决问题
    工作日9:00-12:00,13:30-17:30在线
    页面反馈
    针对当前网页的建议、问题反馈
    售前咨询
    采购需求/获取报价/预约演示
    或拨打: 400-811-8890 转1
    qr
    热线电话
    咨询/故障救援热线:400-811-8890转2
    总裁办24H投诉:17312781526
    提交页面反馈
    仅适用于当前网页的意见收集,帆软产品问题请在 问答板块提问前往服务平台 获取技术支持