PI Web APIによるBulk call (StreamSet)

Document created by Kenji Hashimoto on Oct 6, 2016Last modified by Kenji Hashimoto on Oct 6, 2016
Version 3Show Document
  • View in full screen mode

PI Web APIはhttpsプロトコルでデータの収集、書き込みができます。

複数の属性、タグからBulkで値を取りたい、書きたい場合、StreamSetが使用できます。

Live Library PI Web API StreamSet

https://techsupport.osisoft.com/Documentation/PI-Web-API/help/controllers/streamset.html

 

値取得であればGetValueAdHocsにて複数のWebIDオブジェクトから値が取得できます。

Live Library PI Web API StreamSet > GetValueAdHocs

https://techsupport.osisoft.com/Documentation/PI-Web-API/help/controllers/streamset/actions/getvaluesadhoc.html

 

たとえば、複数のWebIDがわかっていれば以下書式で2つのStreamsから値が取得できます。

https://PIWebAPIServerName/piwebapi/streamsets/value?WebID=XXXX&WebID=XXXX

以下は"Available Memory GB"という属性と、タグの"sinusoid"から値を取得した例です。

複数StreamsのRecordedValuesが取得したい場合、GetRecordedAdHocが使用できます。

Live Library PI Web API StreamSet > GetRecordedAdHoc

https://techsupport.osisoft.com/Documentation/PI-Web-API/help/controllers/streamset/actions/getrecordedadhoc.html

 

また、Post Requestにより複数Streamsへの複数データの書き込みも可能です。

Live Library PI Web API StreamSet > UpdateValuesAdHoc

https://techsupport.osisoft.com/Documentation/PI-Web-API/help/controllers/streamset/actions/updatevaluesadhoc.html

https://PIWebAPIServerName/piwebapi/streamsets/recorded

Bodyは以下のようになります。

 {
    "WebId": "P0HpFdn0K2z0uPQL0sTSJJEQWTAAAAS0hBU0hJTU9UT0U2NDQwXFRFU1Q5OTg",
    "Items": [
      {
        "Timestamp": "2016-10-06T01:12:00Z",
        "Good": true,
        "Value": 100
      },
      {
        "Timestamp": "2016-10-06T01:13:00Z",
        "Value": 200
      }
    ]
  },
  {
    "WebId": "P0HpFdn0K2z0uPQL0sTSJJEQnjABAAS0hBU0hJTU9UT0U2NDQwXFRFU1Q5OTk",
    "Items": [
      {
        "Timestamp": "2016-10-06T01:12:00Z",
        "Value": 1
      },
      {
        "Timestamp": "2016-10-06T01:13:00Z",
        "Value": 2.5
      }
    ]
  }
]

"Good": true,などは省略可能です。

"Good": false,として書き込むと、”Set to Bad”という値としてPI Data Archiveに書き込まれます。 (PI Pointsに書き込んだ場合)

以下は実際にPostManで実行した例です。

上記のように複数Streamsの複数データを読み込む/書き込むことが可能です。

PostManについてや、PI Web APIの基本的な使い方は以下をご参照ください。

PI Web APIの使い方(基礎)

PI Web APIでは複数クエリをBatchでリクエストできる機能が提供されています。

PI Web API Batchリクエストの紹介

こちらと併せて使用すればよりパフォーマンス向上が図れます。

 

本ポストはJerome Lefebvreと一緒に作成しました。

Attachments

    Outcomes