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

Japan PI Square

February 2017 先月 来月

PI Coresightの標準のValueシンボルまたは標準テキストでは文字列の改行コードを含むものであっても一行で表示されてしまいます。

 

テキストに<br>や\r\nなど入れても動作しないことを確認しています。

スタイル指定で <style="white-space: pre-line”>を指定すると改行ができるようになりますが、

上記標準シンボルはフォントサイズをシンボルのボックスサイズによって調整するため、

改行が仮にできるようになったとしても表示が収まらなくなってしまいます。

複数行表示したい場合カスタムシンボルを使用します。

simple valueという単純なサンプルコードがあります。

GitHub - osisoft/PI-Coresight-Custom-Symbols: Learn how to add a custom symbol, created with JavaScript and HTML, to PI …

PI-Coresight-Custom-Symbols/tutorials/simplevalue/

sym-simplevalue-template.htmlを以下のように変更します。

<div style="white-space: pre-line;text-align:left;">{{value}}</div>

改行コードを含む文字列を生成するのにはAFのText Visualizerが利用できます。

Stringの属性の値入力時にF2をクリックします。

 

複数行になっていることが確認できます。

この属性を表示すれば1つのカスタムシンボル内で改行されCoresightで表示できます。

また、この改行コードを含んだText Visualizerの文字列をコピーしてタグの値として保存しても、

Coresightで複数行として表示可能です。

ここでは新しくリリースされたPI Notification 2016 R2の設定方法をGUIベースで紹介したいと思います。

PI Notification 2016 R2はPI Notification 2012までと異なり、イベントフレームに統合されています。

 

PI Notification 2016 R2をインストールする前提条件

PI AF Server 2016 R2以降のバージョンが必要です。

PI AF Client 2016 R2以降のバージョンが必要です。

 

PI Notification 2016 R2を使用するには、まずインストールキットをダウンロードし、インストールします。

https://techsupport.osisoft.com/Downloads/File/b4880c51-cf72-4ada-b44b-16f56e179a51

日本語可の言語パック(MUI)もリリースされています。

https://techsupport.osisoft.com/Downloads/File/2dbea50f-d916-475a-92eb-a496f67b3d7d

PI Notification 2012が入っているマシンでPI Notification 2016 R2をインストールすると、Migration ToolにてPI Notification 2016 R2にMigrateが可能です。

さらに、PI Notification 2012をアンインストールしないと、PI Notification 2012もマシン上に残っています。

サービス名も別名となっています。 PI Notification 2016: PI Notifications Service, PI Notification 2012 : PI Notification Secheduler

マシンにPI Notification 2012がインストールされているのであればMigration Toolを走らせたので、PI Notification 2012 はアンインストールします。

 

ここでは簡易的にNotificationをテストする方法を記載します。

あくまで公式なものとしてはユーザーマニュアルとなりますので、そちらもご参照ください。

https://techsupport.osisoft.com/Downloads/File/dd5c4f6f-47b5-44a5-b0be-4c073289b1a6

 

なお、NotificationをテストするにはSMTP Server(メールサーバー)が設定されている必要があります。

インストール時に指定しますが、変更する場合、

PI System Explorer > データベース > Configuration > エレメント > OSIsoft > PIANO > DeliveryChannel > ID Number > 属性

SMTPServerやSenderEmailを正しいものとする必要があります。

 

1 PI System Explorerにてエレメントと属性を作成します

2 イベントフレームを作成するためにイベントフレームテンプレートを作成します

ライブラリ > テンプレート > イベントフレームテンプレート

右クリック > 新規テンプレート

なお、確認可能のチェックボックスをつけると、イベントフレームにてAcknowledge (確認)ができるようになります。

 

属性テンプレートはSinusoid属性の値を表示する属性を作成します。

.\Elements[.]|Sinusoidを設定します。

3 分析によるイベントフレームの作成

 'sinusoid' > 50という式を設定します。重大度はMajorとします。

イベントフレームの詳細設定...をクリックします。

上で設定したトリガー条件はテストのため1つしかありませんが、イベントフレームの開始条件は複数指定することが可能です。

イベントフレームの詳細設定にて、開始トリガー名と開始トリガー式をイベントフレーム属性に追加することが可能です。

追加すると、イベントフレーム内でStart Trigger名とその式を属性として表示することが可能です。

今回はテストなので、チェックを外していただいても構いません。

 

4 Notification Rulesの作成

トリガー > この通知ルールのトリガー条件を設定してください をクリックします。

条件モードにて分析のラジオボタンを選択し、Sinusoidイベント生成の分析をプルダウンから選択します。

トリガー条件が真の場合 を選択します。

ここではメールをどの重要度で送るかを設定することが可能です。

 

5 サブスクリプションの設定

サブスクリプション > サブスクリプションの表示/編集 をクリックしてコンタクトを検索し、Emailを設定します。

なお、通知オプションをイベントの開始と終了 とすると、イベントフレーム開始時と終了時にメールが受け取れます。

サブスクリプション > 形式の管理 より、メールのフォーマットが変更できます。

開始時と終了時に受け取る場合、Message for Closed Notificationを本文に追加することで、開始時か終了時か認識することが可能です。

Sinusoidが50を超えるとメールが送られてきました。

TimeFormatを変える場合、AFのConfigurationデータベースの以下2箇所にTimeFormatという属性を作成し、指定します。

OSIsoft > PIANO > TimeFormat

OSIsoftt > PIANO > Notifications > Service

Notificationの過去の履歴はイベントフレームの検索で確認できます。

(PI Notification 2012以前で使用していた、PI Data ArchiveのHistoryタグはPI Notification 2016では使用しません。)

PI System Explorer > イベントフレーム

NotificationのAcknowledgementはPI Coresight 2016 R2から可能です。

以下はPI Coresight 2016 R2の画面です。Notificationのエレメントの属性を画面内にドロップし、イベントをクリックします。

該当するイベントを右クリックし、イベントの詳細を開くと、以下画面となります。

右上の確認ボタンをクリックすると、Acknowledgeが可能です。

また、コメントを追加し、追加ボタンをクリックすると、コメントが追加できます。

コメントと確認の結果はPI System Explorerで確認可能です。

 

また、イベントフレームを生成している分析はバックフィルが可能です。

Notificationが動作した状態で分析のバックフィルを実行すると、複数のメールが送られてくるので、注意が必要です。

 

PI Notificaiton 2012とPI Notification 2016 R2の機能の比較は以下となります。

Custom Delivery ChannelはPI Notification 2016 R2の初期リリースではサポートされません。

今後のバージョンで開発予定となっています。

 

PI Notification 2012の作成方法は以下参照。(日本語)

PI Notification 2012の設定方法のご紹介

通常、PI Tagの中に時系列データの値(数字)が入っているのが、一般的ですが、

時系列で、動画や定期間に取っている写真を表示したい場合もあります。

このような写真がある場合に表示する方法を紹介します。

 

例として、1秒毎に写真を取っています。

 

タグにこのファイルのデータを保存するのではなく、ファイル名のみを保存します。

表示するために、PI Coresightのカスタムシンボルの作成できます。

 

 

PI Coresightで表示するため、ファイルを保存されたフォルダーを仮想ディレクトリに追加します。

仮想ディレクトリの設定はパスと接続の認証です。

 

物理パスはネットワークの共有のフォルダーの場合は、IISから、共有フォルダーにアクセスするのは規定のユーザーが必要可能性があります。

 

PI Coresightの事例のSimple Valueの入門のhtmlファイル(template)だけを更新しました。

<img src="ExternalPictures/{{value}}" ng-attr-style="height:100%; width:100%; background: {{Fill || 'rgba(255,255,255,0)'}};">

 

これだけすると、PI Coresightですぐ見れます!(時刻をずらすことで画像が切り替わります)

Loop.gif

 

PI Coresightはデフォルトで5秒更新の点は注意が必要です。過去に戻ればその秒数以下のデータであっても画像を確認できます。

 

コードは下記に記載されています。

GitHub - JeromeLefebvre/PictureCustomSymbol: A simple custom symbol to display pictures

 

上記の例をKenji Hashimoto と作成しました。

 

パフォーマンスのテスト

ファイルサーバーが遠く、ファイルのサイズが大きい場合は、表示の時間が掛かるのは当然だと思いますが、

PI Coresightで表示するとファイルをファイルサーバーからローカルにコピーすると同じぐらい時間を表示すると確認しました。

 

※テストの環境:

マシンが3つ:

  • ファイルサーバー
  • PI ServerとPI Coresight
  • クライアント

ネットワークのスピード:  

     レイテンシ:1ms

ファイルのサイズ: 2.2MB

 

クライアントのマシンで次の写真を表示するための時間:80msから170msまでです。

 

 

ビデオの表示

 

もし、ビデオをPI Coresightに表示したい場合は、別の方法が幾つかあると思いますが、上記の方法で表示したいなら、

ビデオをファイルに分割が必要です。

ビデオをフレームに分割ツールも幾つかがあると思いますが、

私ではPythonのOpenCVのライブラリを使用し、MP4のビデオからJPGのファイルに問題なく分割できました。

以下英語ポストの日本語版となります。

Delete PI Data Archive tag values by AFSDK Sample

 

PI Data Archiveのタグの値を削除するツールは公式なものはあまり用意されていません。

特定の時刻、特定の値を削除したいというケースは多いものです。

そこで、AFSDKを使用したサンプルを作成してみました。

コードはGitHubにあります。

GitHub - kenji0711/DeleteTagEvents: DeleteTagEvents Created by Visual Studio 2013 / C# / AFSDK

このツールはタグの値を削除することができます。

以下指定できる項目です。

PIタグ名

All Eventsか、Specific Eventsか (値は手動で入力できます)

Start Time/End Time

タグの値を削除することはPI Data Archiveのパフォーマンスに影響があります。

まとめてたくさんの値を削除するよりも、少ないタグ数で削除することをお勧めします。