ナビゲーションをスキップする
All Places > All Things PI - Ask, Discuss, Connect > Japan PI Square > ブログ > 2016 > October
2016

PI OLEDB Providerを使用し、PI Data Archiveに直接つないでデータを取得すると、以下のテーブルで平均、積算、最大、最小、定間隔ヒストリデータなど取得できます。

[piarchive].[piavg]

[piarchive].[pitotal]

[piarchive].[pimax]

[piarchive].[pimin]

[piarchive].[piinterp2]

AFであってもDataテーブルによってこれらの値を取得することが可能です。

[Data].[ft_Summarize]  + SummaryType = 'Average'

[Data].[ft_Summarize]  + SummaryType = 'Total'

[Data].[ft_Summarize]  + SummaryType = 'Maximum'

[Data].[ft_Summarize]  + SummaryType = 'Minimum'

[Data].[ft_InterpolateRange] または [Data].[ft_InterpolateDiscrete]

 

ft_Summarizeテーブルのサンプルクエリは以下です。

SELECT ea.Name,data.Time, data.Value
  FROM [PI Big Tires Co].[Asset].[ElementHierarchy] eh
  INNER JOIN [PI Big Tires Co].[Asset].[ElementAttribute] ea ON ea.ElementID = eh.ElementID
  INNER JOIN [PI Big Tires Co].[Data].[ft_Summarize] data ON data.ElementAttributeID = ea.ID
  WHERE
  ea.Name = 'Internal Temperature'
  AND data.StartTime = 'y'
  AND data.EndTime = 't'
  AND data.TimeStep = '01:00:00' --1h
  AND data.SummaryType = 'Average'
  AND data.CalculationBasis = 'TimeWeighted'
AND data.TimeType = 'MostRecentTime'

PI SQL Commanderで実行してみると、以下のように昨日から今日にかけての1時間ごとの平均値が取得できます。

このように平均、積算、最大、最小などの演算データが取得可能です。

PI OLEDBの基本的な使い方については以下も参照してみてください。

PI OLEDB Provider/Enterpriseの使用方法(基礎)

This is a Japanese version of this post. (本投稿はリンク先の記事の日本語版となります。)

PI WebParts (PI TreeView + PI Graphic) behavior by PI Coresight 2016 R2

 

PI WebParts (PI TreeView + PI Graphic) の挙動をPI Coresight 2016 R2で実現したい場合があります。

TreeをHTMLで表示するにはPI Web APIが使用できます。ヘルプファイルにその方法の記載があります。

https://techsupport.osisoft.com/Documentation/PI-WEB-API/help/getting-started.html

以下の部分を確認してください。

--

A Simple Application

In this section, we'll develop a JavaScript application for exploring the AF hierarchy of your PI System. A basic knowledge of JavaScript, HTML, and CSS is assumed. The following is the complete code.

--

このコードを使用すればPI Tree Viewのようにツリーを表示できます。

PI ProcessBook DisplayをPI CoresightでTreeとともに表示するにはHTMLのFrameが使用できます。

2つのファイルを用意します。(F2の src= を自分のProcessBookDisplayのアドレスに変更してください。)

1 index.html

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">  
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja">  
    <frameset cols='20%,80%' id="main">  
        <frame name="F1" src=".\AFTree.html" />  
        <frame name="F2" src="https://CoresightServerName/Coresight/PB/#/PBDisplays/40102?HideToolBar">  
        <noframes>  
            <body>  
                <p>The browser does not support frames</p>  
            </body>  
        </noframes>  
    </frameset>  
</html>  

 

2 AFTree.html  (PI Web APIのヘルプファイルを元に変更を加えました。 "F2"のframeにリンクするアドレスを追加しています。RootElementとDisplayPathは自分のものに変更してください)

<!DOCTYPE html>
<html>
<head>
    <title>AF Hierarchy Viewer</title>
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.2/jquery.min.js"></script>
    <script type="text/javascript">
        //Please enter tree's root element's WebID address.
        var RootElement = 'https://khashimotoe6440.osisoft.int/piwebapi/assetdatabases/D0c_UDU9Pb-k6nVsZu0iuPpgKZD5gy4Ww0WeCfOWEZoj_wS0hBU0hJTU9UT0U2NDQwXFBJIEJJRyBUSVJFUyBDTw/elements';
        //Display path and CurrentElement
        var DisplayPath = 'https://khashimotoe6440/Coresight/PB/#/PBDisplays/40102?HideToolBar&CurrentElement=';
        var childrenMap = {
          Elements: ['Elements']
        };
        
        function node(name, type, links, parentDiv, path) {
          this.type = type;
          this.links = links;
          this.flipper = $('<span class="flipper">+</span>').click(flip.bind(this, this));
          
          parentDiv.append(this.flipper).append('<span class=" + type + "><a href="'+DisplayPath + path  + '" target="F2">' + name + '</a></span><br />');
          this.div = $('<div></div>').hide().appendTo(parentDiv);
        }
        
        function loadChildren(n) {
          n.loaded = true;
          childrenMap[n.type].forEach(function(childCollection) {
            $.get(n.links[childCollection], function(collection) {
              n[childCollection] = collection.Items.map(function (item) {
                return new node(item.Name, childCollection, item.Links, n.div, item.Path);
              });
            });
          });
        }
        
        function flip(n) {
          if (!n.loaded) { loadChildren(n); }
          n.flipper.html(n.flipper.html() == '+' ? '-' : '+');
          n.div.toggle();
        }
        
        $(function() {
          root = new node('Elements', 'Elements',
            { Elements: RootElement }, $("#root"));
        });
    </script>
    <style type="text/css">
        div {
          left: 10px;
          position: relative;
        }
        .flipper {
          cursor: pointer;
        }
    </style>
</head>
<body>
  <div id="root"></div>
</body>
</html>


 

HTMLのFrame内でPI CoresightのDisplayを表示するために、web.configを変更します。

%pihome64%\Coresight\web.config

<add name="X-Frame-Options" value="Allow"/>

 

ローカルからindex.htmlを実行することもできますが、IISにあげることも可能です。

IISの新しいサイトを作成し、2つのファイル(index.html, AFTree.html) をサイトのエクスプローラーにあげます(エクスプローラーをクリック)

2つのファイルをExplorerに入れます。

これでIISサイトにアクセスすることで、エレメント相対のPI ProcessBook Display +Treeが表示できます。

Philly > PHI.Press03をクリックすると、PHI.Press.03の情報が表示されます。

IISはSecurityを正しく構成する必要があります。(Windows認証など) PI Web APIにKerberosが通らないとエラーとなり、ツリーが表示されません。

Anonymousにすれば表示できますが、Kerberosを使用したいのでればSetSPNなど実行する必要も出てきます。

今回はProcessBookのDisplayと連携しましたが、PI CoresightのNative Displayと連携する場合、Asset=というパラメーターが使用できます。

https://livelibrary.osisoft.com/LiveLibrary/content/en/coresight-v8/GUID-C643F092-EB07-41EC-8DC8-5981BF2692F4

PI Coresight 2016 R2はこのAssetパラメーターが動作します。よってNative PI Coresight Displayと連携させることも可能です。

(PI Coresight 2016はAssetパラメーターに問題があり動作しませんでした)

 

また、PI Coresightのカスタムシンボル内でPI Web APIを使用するにはPSAライセンス(PI System Access)は必要ないですが、

上記のようにフレームを分けてPI Coresightの外部でPI Web APIを使用する場合、本番環境であればPSAライセンスが必要な点にご注意ください。

先日、弊社のユーザーカンファレンスがドイツのベルリンで開催されました。(2016/09/26 ~ 2016/09/29)

イベントのプレゼンテーション資料やビデオはOSIsoftのホームページから見ることができます。

Operational Intelligence – Data Infrastructure | PI System – OSIsoft

About OSIsoft > Events > Presentationsをクリックします。

Year, Event Nameを選択し、Submitをクリックします。

 

三井物産様の紹介(4:40あたりから)

Keynote - Welcome

http://www.osisoft.com/Presentations/Keynote---Welcome/

 

NI InsightCM™, PTC ThingWorxを利用したAR(拡張現実Augmented Reality)の紹介(リンク先は英語となります)ビデオの7:00あたりからとなります。

Keynote - Unleash your Infrastructure with the PI System

http://www.osisoft.com/Presentations/Keynote---Unleash-your-Infrastructure-with-the-PI-System/

iPad上のカメラでポンプを移すと、ARでデータが表示されます。

Azure Machine Learningを使用した予測解析(リンク先は英語となります)

OSIsoft: Predictive Analytics: The Why and How behind IIoT and Big Data

http://www.osisoft.com/Presentations/OSIsoft--Predictive-Analytics--The-Why-and-How-behind-IIoT-and-Big-Data/

そのほか業界ごとのプレゼンテーションもたくさんあります。

詳しくはOSIsoftのホームページからご確認ください。

Operational Intelligence – Data Infrastructure | PI System – OSIsoft

 

また、日本でのイベントOSIsoft Japan IIoT Conference 2016にもぜひご参加ください。

日程:2016年11月17、18日

会場: ベルサール神田(東京都千代田区)

参加費:無料

来場予約は以下からお願いいたします。

http://pages.osisoft.com/Japan-IIoT.html

PI Server 2016 R2が今後リリースされる予定です。

様々なエンハンスメント、バグフィックスがありますが、ここでは以下を紹介します。

1. 24472: PI Analysis Service now supports recalculating existing output data from analyses that write attributes.

For the attributes that are based on PI Points only 2016 R2 or later versions of PI Data Archive are supported.

PI System Explorer 2016 R2 is also required to queue analyses recalculation.

PI Analysis Serviceが再計算をサポートしています。PI Data Archive, PI System Explorerも2016R2のバージョンをご使用いただく必要があります。

 

2. 64260: Microsoft Windows Cluster can be used as a failover solution for PI Analysis Service.

冗長化を目的としてPI Analysis Serviceをクラスターマシンに乗せることをサポートします。

 

また、インストーラーも新しくなりました。

AF Service, Analysis Service, PI Notification Service, PI Web API, Shared Featuresのインストールを選べます。

Notificationについては以下も参考にしてください。

PI Notification 2016 R2 によるNotificationの設定方法

 

AFSDKのヘルプファイルはPI System Explorerから確認可能です。(AF Developers Kitsはなくなりました)

また、経度(Longitude)、緯度(Latitude)、高度(Altitude)も属性にあります。

BackfillにRecalculateのオプションがあります。(PI Data Archiveも2016 R2のバージョンが必要です。)

BackfillはGUIのみではなく、AF SDKからでも可能となっています。

 

PI Server 2016 R2 は現在 2016/12/31リリース予定となっています。

PI AF - Roadmap Details

OSIsoft Japan サポートチームは日本のお客様向けに便利な記事や設定方法などの資料を多数掲載しております。

 

Japan PI Squareのスペースをフォローして頂くと、新しい投稿があった際には、いち早くお知らせを受け取ることができます。

 

 

 

お知らせを受信する方法

 

Japan PI Squareの上右に「フォローする」メニューがあります。

このメニューを選択していただくと、二つのオプションが現れます。

   

1.「フォロー」にチェックを入れると、PI Squareの更新のお知らせがご登録のEmailに送られます。

2.「受信トレイ」にチェックを入れると、PI Squareの更新のお知らせが、PI Squareの受信トレイに送られます。

 

PI Square受信トレイ

 

通知メールの設定

PI Squareからのお知らせメールが多いと感じる場合、またはメールが受信できていない場合はPI Squareの個人設定を確認してください。

個人設定画面の「受信トレイ通知」メニューで、通知メールの設定を変更できます。

お知らせメールが多い場合は、概要のみ受信する設定に変更することも可能です。

 

 

 

 

 

今後ますますJapan PI Squareはコンテンツを増やしていく予定です。

この機会にぜひJapan PI Squareをフォローしていただき、投稿されるコンテンツをご活用ください!

OSIsoftは2016年9月22日に、PI Connector for OPC UA 1.0.0.46を正式リリースいたしました。
PI ConnectorはOSIsoftの最新技術で、PI Interfaceと同様にセンサーやコントロールシステムなどからデータを収集しますが、
最小限の設定で、より簡単かつ直感的に、特定のデバイスプロトコルからデータ収集することができ、
なおかつ自動でPIポイントやAsset Frameworkモデルを作成してくれます。

 

PI Connector for OPC UAはOPC UA (OLE for Process Control Unified Architecture) サーバーから、
PI Data ArchiveやAFサーバーに関連する時系列データをコピーします。
OPC UAの静的変数はPI AFのエレメントと属性に紐づけられ、動的変数はPIポイントに変換されます。
使用を開始する前に、ユーザーはOPC UAのアドレス領域を、csv形式の型定義ファイルとして確認することができます。
この定義ファイルを編集してConnectorにアップロードすることで、
PI Systemに作成されるOPC UAのオブジェクトを取捨選択することができます。

 

OPC UAのアドレス領域の情報を元に、AFテンプレート、エレメント、属性、そしてPIポイントが自動で作成されます。
動的変数からリアルタイムのデータが、サブスクリプションによって読み込まれます。
バージョン1.0.0.46のConnectorでは、OPC UAのDA(Data Access)およびHA(Historical Access)の機能からの読み込みをサポートしています。

 

この記事では、PI Connector for OPC UAのインストールから起動までの手順の一例をご紹介いたします。

 

まずはPI Connector for OPC UAのインストーラーを起動します。
インストーラーはOSIsoftのテクニカルサポートのWebサイトより入手できます。

インストーラーを起動し、PI Connector for OPC UAのセットアップ画面に入ると、

まずPI Connector for OPC UAの管理のためのTCPポート番号の指定画面が表示されます。

 

PI Connector for OPC UAの管理画面は、Webブラウザーを使用してアクセスすることなります。

この管理サービスは、指定したTCPポートにWebサービスとしてインストールされます。

別のPCからPI Connector for OPC UAのインストールされたマシンにアクセスして管理を行う際には、

この画面で指定したTCPポートがファイアウォールにブロックされていない必要があります。

指定したポートが使用されていないことを確認し、Check Availabilityボタンを押すと、

"Port is available, click Next to continue."

というメッセージが表示され、次に進むことができます。

 

次に、PI Connector for OPC UAのWindowsサービスを起動するアカウントの指定画面に入ります。

ここでは、OPC UAサーバーにアクセスできる権限を持ったドメイン アカウントまたはローカル アカウントを指定します。

ここで、マシンの管理者アカウントなど、必要以上のアクセス権限を持つアカウントを指定した場合、以下のメッセージが表示されます。

管理者アカウントも使用は可能ですが、セキュリティ上の観点から、
OSIsoftとしてはOPC UAサーバーにアクセスできる最低限のアクセス権限を持ったアカウントを使用することを推奨しております。
有効なアカウントを指定して、Validateボタンを押すと、次に進めるようになります。

 

最後に、PI Connector for OPC UAがデータをやり取りするうえでのバッファリング用ファイルの保存場所の設定を行います。
デフォルトでは、C:\ProgramData\...\Tauというディレクトリに保存されます。
読み込みを行うデータの数によって、このファイルの容量はかなり大きくなる可能性があります。
Cドライブではなく別の場所に保存したい場合は、Browseボタンを押して場所を指定します。

これらの設定が終わったら、Installボタンを押してインストールを開始します。

インストールに成功すると、PI Connector for OPC UAの管理画面にアクセスするためのユーザーの設定画面が表示されます。

そのマシンのローカルに"PI Connector Administrators"というグループが作成され、

そのグループに所属しているアカウントが管理画面にアクセスすることができます。

"PI Connector Administrators"のグループにアカウントを追加します。

この設定は、Windowsの管理ツール  > コンピュータの管理  > ローカル ユーザーとグループ > グループでも追加・変更できます。

インストール時の設定をすべて終えると、

スタート > すべてのプログラム > PI Systemの欄に、"PI Connector for OPC UA Administration"という項目が追加されています。

これを選択すると、Webブラウザーが開き、PI Connector for OPC UAの管理画面にアクセスできます。

ページが表示できない場合は、Windowsのサービスの、

"PI Connector for OPC UA"

が実行中になっていることをご確認ください。

 

この管理画面では、以下の三つを設定する必要があります。
1. データソースの設定、すなわち接続するOPC UAサーバーの接続設定
2. PI Data Archiveサーバーの接続設定
3. PI AFサーバーの接続設定

 

まずは 1. のデータソースの設定を行います。
管理画面の左のメニューにある"Data Source List"をクリックし、
Data source nameの欄に新しく名前を付け、 "Add and configure"をクリックします。

 

データソースは、以下の手順で設定します。
1. Discovery or Server Endpoint URLに、対象のOPC UAサーバーのURLとポート番号を指定し、Discover Available Endpointsをクリックする
2. Please refresh the page to see the resultsと表示されたらWebページを更新する
3. Discovered Endpointsのドロップダウンリストから、接続可能なEndpointを選択する
4. 必要なら、ユーザー名やパスワードを入力する
5. Export available Type Definitionsをクリックして、型定義ファイルを取得する
6. 必要なら、型定義ファイルを編集する
7. 参照ボタンを押して、型定義ファイルをアップロードする
8. Saveボタンを押して設定を保存する

 

型定義ファイルの中には、三つの項目が存在します。
Select ( x ) ... xが入っている行のテンプレートをPI Systemに追加します。xを外すとそのテンプレートはPI Systemに生成されません。
Template name ... PI System上に生成されるテンプレートの名前を決定します。名前は自由につけることができますが、***MissingName***になっている場合は生成されません。

(OPC UAサーバー側で名前の付けられていないオブジェクトは***MissingName***となって型定義ファイルに記述されます)
Attribute name ... OPC UAサーバーが持つ属性の情報が表示されます。この部分を変更しないようにご注意ください。

型定義ファイルの情報をもとに、テンプレートの名前を変更し、
Select ( x )で収集するデータのテンプレートを取捨選択することができます。
一度PI Connectorを起動してAF上にテンプレートが作成された後は、Template nameを変更しないようにご注意ください。

 

データソースの設定が完了したら、次はデータを蓄積するPI Data ArchiveサーバーとPI AFサーバーの接続設定を行います。

管理画面の左メニューの"Server List"をクリックすると、それぞれのサーバーの設定画面に移行します。


ここでは、各サーバーの名前と、そのホスト名またはIPアドレスを入力します。
名前はPI Connector側で管理するためのものであり、自由につけることができますが、
ホスト名またはIPアドレスには、接続先のPI Data ArchiveサーバーおよびPI AFサーバーが正しく入力されている必要があります。
また、PI Connector for OPC UAのインストールされているマシンが、接続先のPI Data ArchiveサーバーおよびPI AFサーバーに対して読み書きのアクセス権限があることをご確認ください。
また、PI AFサーバーの設定には、追加でPI Asset Databaseの項目を指定する必要があります。
これは、OPC UAサーバーから取得するテンプレートを、PI AFサーバーのどのデータベースに生成するかを指定します。
事前にPI System Explorerを使用して、PI AFサーバー上にデータベースを作成しておきましょう。

 

Root PI Asset Pathを指定しない場合は、データベースのルート(最初の階層)にエレメントが生成されます。
指定した場合は、その指定したエレメントの下に生成されます。

 

これですべての準備が整いました。
管理画面の左メニューの"Overview"から、Start connectorをクリックして、PI Connectorを起動しましょう。

設定に問題がなければ、管理画面は以下のような表示になり、
PI AFサーバー上にはエレメントが作成され、
PI Data Archive上に作成されたPIポイントにデータが蓄積されていきます。

GitHub - JeromeLefebvre/SilentInstaller: OSIsoftのサイレントインストールの例のページに下記にあるファイルをダウンロードできます。

事前

PI Systemの管理者は、多くのマシンにPIの製品をインストールしなくてはならず、多くの場合、自動インストール(サイレントインストール)を利用すると、効率よく作業できます。 そのサイレントインストールに使用するsilent.iniの書き方は、資料がとても少ないため、今回、その例を作成いたしました。

作業と環境の条件

今回はPI Buffer SubsystemはインストールせずにPISDK201664ビットのみをサイレントインストールにてインストールします。 (注意:平常は32ビットと64ビットの両方をインストールします。短い例を作成のため、64ビットのみのサイレントインストールさせて頂きます。)

環境の条件:

  1. PI-TestPI-Mainという二つPI Data Archiveがあり、規定サーバーはPI-Mainになり、「Production」というPI-Mainの別名があります。
  2. Domainositestです。
  3. PI Data Archiveとの接続は5450の規定ポートを利用します。
  4. PI Buffer Subsystemをインストールしない。
  5. 事前条件の.Net 4.6がすでにインストールされているものとします。

KST_INI_FILEの準備

KST(Known Server Table)はこのマシンに登録されているPI Data Archiveの一覧リストになります。 PI SDKにインストールすると、このリストにいくつかのPI Data Archiveを登録できます。 登録するために、「KST_INI_FILE」の作成が必要です。

KST_INI_FILE

[NUM_SERVERS]
; PI Data Archiveの数
NUM = 2
[PI_SERVER]
; それぞれのPI Data Archiveの名前
1 = PI-Main
2 = PI-Test
; PI Data Archiveのネットワークのパス
[PI_PATH]
1 = PI-Main.ositest.com
2 = PI-Test.ositest.com
; ポートを記入したい場合は、[PI_PORT]を使えますが規定の5450ポートの利用しているので、設定の必要がありません。
; 規定のPI Data Archiveは1です。
[PI_DEFAULT_SERVER]
1 = TRUE
; それぞれのPI Data Archiveのアリアスです。
[PI_ALIAS]
1 = Production

SILENT.INI

新規のインストールではSETUPKITNUMSETUPMODULESSETUPMODULESCOMMANDLINEの四つのモジュールがあります。

SETUPKIT

[SETUPKIT]
; インストールの表示名前
; 下記にあるNAMEとDISPLAYNAMEのパラメーターはインストールのログにでます。
NAME = SetupPISDK
DISPLAYNAME = PI Software Development Kit (PI SDK) 2016 64 bit
; サイレントインストールを実行すると下記の四つの設定はすべてTRUEに設定する
SUPPRESSCOMPLETIONMESSAGE = TRUE
SUPPRESSPROGRESSMESSAGE = TRUE
SUPPRESSHEADERMESSAGE = TRUE
SUPPRESSDIALOGS = TRUE

NUMSETUPMODULES

[NUMSETUPMODULES]
; 下記にモジュールの数
NUM=4

SETUPMODULES

setup.exeは、以下のモジュールを使用し、COMMANDLINEの下にリストされている与えられたパラメータを使用してインストーラーを実行します。

[SETUPMODULES]
; 下記の三つのmsiのファイルは事前条件のアプリケーションになります。
1 = MSRuntimes\MSRuntimes.msi
2 = VS2008Redistrib\MSVC9SP1x64Redistrib
3 = VS2015Redistrib\MSRuntimesVS2015u2_x64
;PI SDKの64ビットのインストーラー
4 = pisdk\PISDK_x64.msi

COMMANDLINE

下記の四つのインストーラーではマシンを再起動しないで済むので、 REBOOT=Suppress」と「/norestart」のパラメーターを使い、無駄な再起動が起きないようにインストールします。

[COMMANDLINE]
; MSRuntimes
1 = ALLUSERS=1 REBOOT=Suppress /qn
; 2008 SP1 Runtimes (64-bit)
2 = /q /norestart
; 2015 update 2 Runtimes (64-bit)
3 = /q /norestart
; PI SDK (64-bit)
; KST_INI_FILEのパラメーターはKSTのファイルのフルパスです。
; INSTALLDIRは%pihome64%のフォルダーになります。
4 = ALLUSERS=1 REBOOT=Suppress /qn INSTALLDIR="C:\Program Files\PIPC" IMPORT_KST=1 KST_INI_FILE="c:\kst.ini"

インストーラーを実行します

kst.iniのファイルをKST_INI_FILEに保存し、 PISDK_2016_が展開されたフォルダーにsilent.iniのファイルを入れ替え後に、下記のコマンドを実行します。

     silent.bat -install

実行後、インストーラーの結果が表示されます。 無事にインストールしたかどうか確認します。

 

他の製品のサイレントインストール

PI SDKに含まれているsilent.iniのファイルにはPI Buffer Subsystemなど、他の製品の設定例もあるので、参照になります。

下記のKB(英)もあります。

  1. KB01034 - How to Silently Install OSIsoft Software
  2. 3044OSI8 - How to perform a silent install of PI ProcessBook
  3. 3045OSI8 - How to perform a silent install of PI DataLink