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

Virtual Learning Environment(VLE) とは、新機能を習得、確認したり、本番環境で行うことが出来ないテストなどを行えるPI Systemをオンライン仮想環境で提供するサービスです。

 

Virtual Learning Environment(VLE)について詳しくはこちらをご覧ください。

 

 

 

今まで、ご利用いただける仮想環境(約40種類)はすべて英語環境のみご提供しておりましたが、この度、PIプログラミングコースの日本語環境をご提供できるようになりました。

PIプログラミングコースをオンラインで自習学習されたい方や、日本語環境でPI Systemをテスト使用されたい方はぜひこちらをご利用ください。

 

 

 

コース名 : 「PI Programming(Japanese)」

 

 

主なインストールプログラム

- PI Data Archive

- PI AF

- PI Notifications

- PI Coresight

- PI ProcessBook

- PI DataLink

- PI ODBC

- PI OLEDB Enterprise

- PI JDBC

- PI Web API

- PItoPI Interfaces

- Microsoft Visual Studio

 

 

 

 

ご利用開始方法はこちらのページをご覧ください。

 

ご不明点がございましたら、こちらにコメントいただくか、Japan PI Squareでご質問ください。

本講座ではPI AFをお客様に活用していただけるよう、簡単なチュートリアル形式でソリューションを紹介していきます。

多くの皆様からのコメントをお待ちしております。

 

- イントロダクション -

PI AF 活用講座 その3で属性に自動でPI Pointを定義する方法を説明しました。

これまでの説明では事前にPI SMTやPI Builderを使用してPI Pointを作成する必要がありましたが、今回の講座ではテンプレートから自動でPI Data ArchiveにPI Pointを生成する方法を説明します。

 

作成の流れとして、属性テンプレートの設定を変更し、PI Data ArchiveにPI Pointが定義される事を確認します。

前提条件は以下の通りとします。

項目設定値
エレメント名原料タンク3
説明03
在庫量 タグ名Analytics_Output03001

今回のStepについては前回の内容が前提条件となります。

 

- Step1 属性テンプレートの設定を変更 -

  1. PSEから前回作成したテンプレートを選択します。
    ライブラリ画面を表示し、[テンプレート] - [エレメントテンプレート]から前回作成したテンプレートを選択します。
    ここでは「原料タンクテンプレート」を選択します。
  2. [属性テンプレート]タブを選択します。
    「在庫量」属性テンプレートを選択します。


  3. <設定>ボタンを押下します。
    [PIポイントデータ参照]ダイアログが表示されます。
  4. [タグ名]テキストボックスの右矢印ボタンを押下し、[名前置換値]の中から「%ElementDescription%」を選択します。
  5. そして入力された値の先頭に「Analytics_Output」、値の後ろに「001」を入力し、設定文字列を「Analytics_Output%ElementDescription%001」と設定します。
  6. [タグ作成]チェックボックスにチェックをつけます。
    [...]ボタンを押下し、[ポイントタイプ]を「Float32」に設定します。

    [タグ作成設定]ダイアログでは自動作成するPI Pointの初期設定値を定義する事ができます。

  7. [読み取り専用]チェックボックスのチェックを外し、<OK>ボタンを押下します。
    チェックインし、変更内容を反映させます。

- Step2 PI Pointの自動作成 -

  1. エレメント画面を表示します。
    前回の講座で作成したエレメントを選択します。
    ここでは「原料タンク3」エレメントを選択します。
  2. 「在庫量」属性に定義されているPI Pointが「Analytics_Output03001」になっている事を確認してください。
    またタグが自動で作成されている事を確認してください。
    ここではPI SMTで確認しています。

- PI AFを使う事のメリット -

属性テンプレートのタグ定義にリテラル文字列を使用する事と加え、PI Pointの自動作成機能を使用すると必要なPI Pointを効率よく作成する事ができます。

また、新規に設備を増やした時にも命名規則通りのPI Point作成となるため、人為的なミスを減らす事ができます。

 

今回の講座の内容はいかがでしたでしょうか?

わかりにくい部分がありましたらコメントをお願いいたします。

多くのみなさまからのコメントをお待ちしております。

本講座ではPI AFをお客様に活用していただけるよう、簡単なチュートリアル形式でソリューションを紹介していきます。

多くの皆様からのコメントをお待ちしております。

 

- イントロダクション -

PI AF 活用講座 その2でPI AFのテンプレートを使用して同様の設備のエレメントを簡単に追加する方法を説明しました。

レベル計のタグ名については直接手入力していましたが、テンプレートの機能をさらに活用する事でエレメントの属性に自動でPI Pointを定義する事ができます。

今回の活用講座ではその方法を説明します。

 

作成の流れとして、属性テンプレートの設定を変更し、実際に自動でPI Pointが定義される事を確認します。

前提条件は以下の通りとします。

項目設定値
レベル計 タグ名PI03001.PV
レベル計 工業単位mm
タンク面積32 m2
配管体積11.0 m3

 

今回のStepについては前回の内容が前提条件となります。

 

- Step1 属性テンプレートの設定を変更 -

  1. PSEから前回作成したテンプレートを選択します。
    ライブラリ画面を表示し、[テンプレート] - [エレメントテンプレート]から前回作成したテンプレートを選択します。
    ここでは「原料タンクテンプレート」を選択します。


  2. [属性テンプレート]タブを選択します。
    「レベル」属性テンプレートを選択します。


  3. <設定>ボタンを押下します。
    [PIポイントデータ参照]ダイアログが表示されます。


  4. [タグ名]テキストボックスの右矢印ボタンを押下し、[名前置換値]の中から「%ElementDescription%」を選択します。


  5. そして入力された値の先頭に「PI」、値の後ろに「001.PV」を入力し、設定文字列を「PI%ElementDescription%001.PV」と設定します。
  6. <OK>ボタンを押下し、変更を反映後、チェックインします。

- Step2 エレメントの作成 -

  1. Step1の操作でPI Pointが自動で反映されるようになった事を確認します。
    エレメント画面を表示します。
    新規にエレメントを作成します。[エレメントテンプレートの選択]ダイアログで先程編集したテンプレートを選択します。
    ここでは「原料タンクテンプレート」となります。



  2. 新規に追加したエレメントの[説明]テキストボックスに「03」を入力します。
  3. [属性]タブをクリックし、「レベル」属性のPI Point定義にすでにPI03001.PVが定義されている事を確認してください。

    「在庫量」属性のタグ登録方法については次回の活用講座で説明します。

  4. その他の属性の値を前提条件通りに設定し、チェックインします。

 

- PI AFを使う事のメリット -

属性テンプレートのタグ定義ではリテラル文字列を使用する事で簡単にPI Pointを定義する事ができます。

タグ名の命名規則が明確な場合はとても強力な機能となります。

今回使用した定義文字列以外にも多くの定義文字列があり、こちらに詳細が載っています。

 

 

今回の講座の内容はいかがでしたでしょうか?

わかりにくい部分がありましたらコメントをお願いいたします。

多くのみなさまからのコメントをお待ちしております。

PI Notification 2012の設定方法を紹介したいと思います。詳しくはユーザーマニュアルをご参照ください。

 

1.    OSIsoft Tech SupportのWeb Site内のDownload CenterよりInstall Kitsを選択し、Notification Install Kitをダウンロードします(http://techsupport.osisoft.com/)

2.    ダウンロードしたexeファイルをダブルクリックして解凍し、インストールを実行します

3.    PI System Explorerを開きデータベースより新規データベースを作成します。

(新規データベースでNotificationを作成する場合)

 

4.    新規エレメントを追加し、そのエレメントの属性に、監視したいPItagを紐付け、チェックインします

 

5.    左下のNotificationsをクリックします

 

6.    ツールのNotification Settingsをクリックします

 

7.    Delivery ChannelsタブでEmailを右クリックし、設定を選択します

 

8.    SMTP Serverの名前を入力し、Testを実行します

 

  

9.    Newを選択し新規Notificationを作成します

 

 

10.    作成されたNotificationのOverviewタブでNameやDescriptionを入力します

  

11.    Triggerタグを選択し、Select Target…よりTarget選択します

 

12.    ConditionsよりNew ConditionのComparison(比較)を選択します(その他のものでも可能です)

13.    比較条件を入力します(ここでは属性のsinusoidが10以下になったらという設定)

14.    Messageタブを選択し、Delivery Formatsの新規作成よりEmailを作成します

なお、右側のContentよりドラッグアンドドロップすることにより、NotificationのStart Timeや属性の値など動的な数値をメール本文に加えることが可能です。

15.    SubscriptionsタブでAdd a Subscriber…を選択します

16.    Select a contactよりメールアドレスを追加します

(コンタクトの作成方法は下記に記載)

【コンタクトの作成方法】

 

必要事項を記入します

コンタクトはPI Notificationマシンがドメインに参加している場合、Active Directoryより読み込むこともできます。

Contacts > ツール > Active Directry Properties…

17.    Delivery Formatを選択し、Testを実行します

 

18.    Notificationを起動します。

19.    Notificationが実行されたことを確認します

 

20.    条件が当てはまるとEmailが送信されます

21.    Historyタブにて送付した結果を確認します。

22.    Notificationのテンプレート化

Triggerのターゲットのエレメントがエレメントテンプレートの場合、それに対するNotificationをテンプレートかすることが可能です。Notificationを右クリックし、Change Template…からテンプレート化が行えます。

 

23.    テンプレートからのNotification作成

New > Notification from Template…より、エレメントテンプレートよりNotificationが作成できます。

Has Existing NotificationがNoのものをチェックして作成することができます。

 

このようにPI Notifiction 2012では簡単にEmailを送るシステムを構築することができます。

PI Notification 2016は現在ベータ版がリリースされています。このバージョンからはイベントフレームとNotificationが統合されます。PI Notification 2016の設定方法は以下参照。

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

本講座ではPI AFを活用いただけるよう、簡単なチュートリアル形式でPI AFの機能を説明します。

多くのみなさまからのコメントをお待ちしております。

 

- イントロダクション -

PI AF 活用講座 その1では原材料タンクのエレメントを作成しました。

このような原材料タンクはプラントに複数存在し、同じような性質をもっていると思います。

原材料タンクに在庫量計算の機能を持たせましたが、テンプレートという機能を活用する事で同じ機能をもったタンクのエレメントを簡単に作成する事ができます。

 

流れとしては現在のエレメントをテンプレートに変換し、そのテンプレートをもとに新規にタンクを作成します。

追加するタンクの前提条件は以下の通りです。

項目設定値
エレメント名原料タンク2
レベル計 タグ名PI02001.PV
レベル計 工業単位mm
タンク面積

28 m2

配管容量9.6 m3
出力タグ名Analytics_Output02001

 

今回のStepについては前回の内容が前提条件となります。

 

- Step1 エレメントのテンプレート変換 -

  1. PSEから前回作成したエレメントを選択します。
    ここでは「原料タンク1」を選択しています。
  2. 右クリックメニューから[変換]-[テンプレートに変換]を選択します。
  3. [属性をテンプレートに変換]ダイアログではそのまま<OK>ボタンを押下してください。


    この機能は属性へPI Pointを自動登録する機能になります。
    今後の講座で詳細を説明いたします。

- Step2 テンプレートの確認 -

  1. Step1の操作でテンプレートが作成されました。その内容を確認します。
    ライブラリ画面を表示します。
  2. 「エレメントテンプレート」以下にStep1で作成したエレメントが存在する事を確認してください。
    ここでは「原材料タンクテンプレート」として登録されています。
    [属性テンプレート]タブも選択し、属性も設定されている事を確認してください。

- Step3 テンプレートを利用したエレメントの作成 -

  1. またエレメント画面に戻ります。
    新規にエレメントを作成します。
    [エレメントテンプレートの選択]ダイアログにて追加されたテンプレートを選択します。
    ここでは「原料タンクテンプレート」となります。
  2. 「レベル」属性にPI Point PI02001.PV、「在庫量」属性にPI Point Analytics_Output02001を設定します。
    PI Point Analytics_Output02001については今回は手動で作成しておいてください。
    テンプレートからの自動作成については次回の講座で説明します。

    「配管容量」属性に9.6m3、「面積」属性に28m2を設定します。
    チェックインして新規に登録したエレメントで在庫量計算が動作している事を確認してください。


- PI AFを使う事のメリット -

PI AFではエレメントを増やすことで視覚的にデータにアクセスできるようになります。

そのためにもエレメントを簡単に登録する事が重要となりますので、簡単にエレメントが追加できるテンプレートを活用していただく事がPI AFの有効活用につながります。

 

今回の講座の内容はいかがでしたでしょうか?

わかりにくい部分がありましたらコメントをお願いいたします。

多くのみなさまからのコメントをお待ちしております。

今年の春から、ご要望の多いテクニカルサポートのKBを日本語に翻訳しております。

KB Articlesのサイトにアクセスすると、日本語の記事の一覧が表示されます。

 

追加で翻訳してほしいKBがあれば、ぜひこのブログにコメントしてください!

お客様の要望が多い場合には、次の翻訳対象として扱わせていただきます。

 

その他、KBの日本語の内容につきましても、何かフィードバックやコメント等ございまいたら、

ぜひ本記事に、コメントしてみてください。

本講座ではPI AFを活用いただけるよう、簡単なチュートリアル形式でPI AFの機能を説明します。

多くのみなさまからのコメントをお待ちしております。

 

- イントロダクション -

一般的にタンクの在庫量計算はレベル計の値に体積計算する事で求めます。

従来のPI SystemでもPEやPI ACEを使用して計算できましたが、PI AFでの計算方法について説明いたします。

 

流れとしては属性を作成し、計算式を追加します。

前提条件は以下の通りです。

項目設定値
レベル計 タグ名PI01001.PV
レベル計 工業単位mm
タンク面積

36 m2

配管容量12.5 m3
出力タグ名Analytics_Output01001

 

- Step1 属性の追加 -

  1. まずPSE(PI System Explorer)を起動します。データベースの新規作成または既存のデータベースを選択してください。
    ここでは「AF Japan Sample」データベースを選択しています。
  2. エレメント画面を表示し、必要なエレメント階層を構築します。
    ここでは「東京工場」-「原材料プラント」-「原料タンク1」としています。
  3. [属性]タブを選択し、属性を表示します。
    [新規属性]を選択し、属性を追加、名前を「レベル」、測定単位を「meter」に設定します。

    測定単位に直接「m」を入力すると簡単に入力できます。
  4. 「レベル」属性にPI Pointを定義します。
    <設定>ボタンを押下します。
    タグ名に「PI01001.PV」、測定単位に「mm」を選択し、<OK>ボタンを押下します。

    登録後、表示単位が自動変換される事を確認してください。
  5. 「面積」属性、「配管容量」属性も以下の表をもとに設定します。
    設定項目「面積」属性「配管容量」
    名前面積配管容量
    測定単位m2m3
    3612.5
  6. チェックインします。

 

- Step2 Analyticsによる演算の追加 -

  1. [分析]タブを選択します。
    [分析の新規作成]を選択します。
  2. [名称]に「タンク在庫量計算」を設定します。
    [式]に以下の計算式を入力します。
    「'レベル' * '面積' + '配管容量'」
  3. <評価>ボタンを押下して計算結果が表示される事を確認します。
  4. [マップ]をクリックします。
    [新規属性]をクリックします。
  5. [出力履歴の保存]を「はい」、[名前]を「Analytics_Output01001」に設定し、<OK>ボタンを押下します。
    チェックインします。
  6. [属性]タブを選択し、「在庫量」属性を選択します。
    [測定単位]を「m3」に選択し、データ参照の設定を「PI Point」、参照タグ名を「\\PI DataArchive名\Analytics_Output01001;pointtype=Float64」に設定し、チェックインします。
    「在庫量」属性を右クリックして[PI Pointの作成・更新]を選択します。

    PSEからPI DataArchiveに対して自動でPI Pointを作成する事ができます。
  7. 「レベル」属性のタグの値が変化すると「在庫量」属性の値が変わり、定義されたタグの値が変化する事を確認してください。

- PI AFを使う事のメリット -

従来のPE等を使用した場合、タンク面積や配管容量は演算式内に埋め込む必要があり、メンテナンスしにくいという問題がありました。

メンテナンスしやすいようにPI Point等を使用するとその分余計なPI Pointを使用する事になりますが、PI AFでは属性を使用する事で余計なPI Pointを使用しません。

計算に必要なパラメータが多ければ多いほどPI AFで計算するメリットが強くなります。

 

 

今回の講座の内容はいかがでしたでしょうか?

わかりにくい部分がありましたらコメントをお願いいたします。

多くのみなさまからのコメントをお待ちしております。

PI Developers Clubの登録が終わると、各製品のダウンロードとインストールが可能となります。

ここでは、その簡略な手順を紹介したいと思います。

詳しくは各製品のインストールマニュアル、ユーザーマニュアルをご参照ください。

製品はOSIsoft Technical Supportサイトよりダウンロード可能です。

https://techsupport.osisoft.com/Downloads/All-Downloads/

 

1 Microsoft SQL Serverのインストール

Express版でも構いません。AF Serverのインストール前提条件となります。

(Express版はSQL Server Express with Toolsという名前のものがOSIsoftダウンロードセンターにもあり、ダウンロード可能です)

AFでSQLを使用するため、SQL Server構成マネジャーにて、「名前付きパイプ」と「TCP/PI」を有効に変更しておきます。

2 .Net 3.5.1のインストール

OSがサーバー系であれば、Windowsの機能の追加より、.NET Framework 3.5.1の機能を事前に追加しておく必要があります。

*OSがWindows Server 2012以降の場合、インターネットにつながっていればWindowsの機能の追加より、ダウンロードしてインストールが可能ですが、

インターネットがない場合、OSのインストールディスクを用意する必要があります。

 

3 MS OFFICEのインストール

PI DataLink, PI Builderを使用する場合は事前にExcelを含むMS OFFICEをインストールしておきます。

 

4 AF 関連製品のインストール

AF Server

AF Client

PI Analysis Service

PI Notification

日本語版が必要な場合、Localized Kit (MUI)をそれぞれインストールしてください。(NotificationにはMUIがありません)

*PI AFが使用するポートは以下KBをご参照ください。

KB00751 - Which firewall ports should be opened for PI AF Server?

ユーザーマニュアルは以下からダウンロード可能です。

https://techsupport.osisoft.com/Downloads/All-Downloads/PI-Server/PI-AF/Documentation

PI Asset Framework (PI AF) Installation and Upgrade Guide (Japanese)  がございます。

 

5 PI Data Archiveのインストール

インストール前にMachine Signature Generator (MSF)を使用し、MSFファイルを生成します。

(ダウンロードセンターより PI Enterprise Server - Machine Signature File Generator (Windows)  という名前でダウンロード可能です)

外付けHDDなどを外し、運用する状態でMSFファイルを取得します。

Machine Signature File Generatorをダウンロード後、zipを展開し、MSFWinGen.exeを PI Data Archiveとなるマシンで実行します。

そうすることでMachine Signature File (MSF)ファイルが作成されます。

弊社テクニカルサポートサイトのMy DownloadsタブのMy License ActivationsよりMSFファイルをアップロードし、ライセンス発行をします。

生成したpilicense.datをインストール時に指定します。

 

pilicense.datはPI Data Archiveを特定のマシンでのみ動作させるために使用します。

またタグ数の制限などもこのファイルによって管理されます。

OSがWindows Server 2012 R2の場合、VSS Backupのパッチが導入されていることを確認します。

VSS backup of PI Server 2012 fails on Windows Server 2012 R2(リンク先は英語となります)

https://techsupport.osisoft.com/Troubleshooting/Alerts/AL00261

Microsoft KB2963918, KB2975719, KB3000850のどれかが当たっている必要があります。

PI Data Archiveをインストールします。

*PI Data Archiveが使用するポートは以下をご参照ください。

2820OSI8 - ファイアウォールのどのポートを開けると、PI Serverは正常に動作します

詳しくはPI Data Archive Installation and Upgrade Guide を参照してください。

 

6 その他開発に必要な製品のインストール

PI Vision (前PI Coresight), PI Web API, PI ACE, PI WebParts, PI OLEDB, PI ODBC, PI JDBC, PI Data Access Server , PI Manual Loggerなど、開発に必要な製品をインストールします。

PI VisionはサーバーOSがサポートOSとなります。

https://techsupport.osisoft.com/Products/Visualization/PI-Vision/System-Requirements

 

7 クライアント製品のインストール

PI ProcessBook, PI DataLink など必要な製品をインストールします。 (OSIsoft Prerequisites Kitのインストールが必要な点に注意してください)

 

Japan PI Squareには様々な開発に関連した記事がございます。(以下リンクはJapan PI Square内の記事で’開発'のタグが付いている記事を表示します。)

Japan PI Square

 

PI Developers Clubに関しての質問はJapan PI Squareのコミュニティサイトに投稿する形となります。

質問方法についてはこちらをご参照ください。
OSIsoftのコミュニティサイト PI Squareのご案内

This post is Japanese version of PI Coresight 2016 Put Value Custom Symbol by PI Web API . (このブログはリンク先の日本語版です)

 

今回、PI Web APIを利用し、値を書き込めるPI Coresight 2016のカスタムシンボルを作成しました。

サンプルの1つとしてぜひご利用ください。

以下の画面では200という値をcdt158に書き込んでいます。AFの属性に対しても書き込むことが可能です。

新しい値をボックスに入力し、"Put New Value"をクリックします。新しい値はPI Web APIにより、PI Data ArchiveかAFに現在時刻のタイムスタンプとともに書き込まれます。

書き込み用のボックスは 右クリック > Format Symbolより隠すことも可能です。

このコードのポイントはPI Web APIのBatch リクエストを使用している点です。

バッチリクエストについては以下をご参照ください。

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

 

以下3つのファイルを%PIHOME64%\Coresight\Scripts\app\editor\symbols\extフォルダにコピーします。

添付されたイメージpen.svgは%PIHOME64%\Coresight\Imagesフォルダにコピーします。

 

sym-putvalue.js (コード内のvar piwebapiaddress = "MachineName"は適切なPI Web APIマシン名に変更してください。PI CoresightマシンはPI Web APIが含まれるので、ここではPI Coreisghtマシンが該当します。)

(function (CS) {  
var definition = {  
        typeName: 'putvalue',  
        datasourceBehavior: CS.DatasourceBehaviors.Single,  
        iconUrl: 'Images/pen.svg',  
        getDefaultConfig: function() {  
return {  
                DataShape: 'Value',  
                Height: 150,  
                Width: 150,  
                TextColor: 'rgb(255,255,255)',  
                ShowLabel: true,  
                ShowTime: true,  
                ShowPutValue: true                
            };  
        },  
        configOptions: function () {  
return [{  
                title: 'Format Symbol',  
                mode: 'format'  
            }];  
        },  
        init: init  
    };  
function init(scope) {  
function onUpdate(data) {  
if(data) {  
                scope.value = data.Value;  
                scope.time = data.Time;  
if(data.Path){  
                    scope.path = data.Path;  
                }  
if(data.Label) {  
                    scope.label = data.Label;  
                }  
            }  
        }  
        scope.putvalue = function() {  
//piwebapiserver machine name  
var piwebapiaddress = "MachineName";  
//scope.path contains pi:\\servername\tagname or af:\\servername\databasename\element...|attribute  
var ini = scope.path.substr(0,3);  
var orgpath = scope.path.substr(3,10000);  
//To double the backslash -  \\\\servername\\tagname  
var path = orgpath.replace(/\\|\\/g,"\\\\");  
if(ini=="pi:"){  
var urladdress = "\"https://" + piwebapiaddress + "/piwebapi/points?path="+path+"\"";  
            }  
else if(ini=="af:"){  
var urladdress = "\"https://" + piwebapiaddress + "/piwebapi/attributes?path="+path+"\"";  
            }  
//Get text box value  
var boxval = new String(scope.config.Box, { "type" : "text/plain" });  
//Create value contents as json  
var jsonval = '"{Value:' + boxval + '}"';  
// Create contents of PI Web API batch request  
var contents = '{"GetWebID":{"Method": "GET","Resource": '+ urladdress + '},"WriteValuetoPI":{"Method":"POST","Resource": "{0}","Content":' + jsonval + ',"Parameters": ["$.GetWebID.Content.Links.Value"],"ParentIds": ["GetWebID"]}}';  
//PI Web API Request  
var batchurl = "https://" + piwebapiaddress + "/piwebapi/batch";  
var xhr= new XMLHttpRequest();  
//true = Async call  
            xhr.open("POST",batchurl,true);  
//Set credential for Kerberos  
            xhr.withCredentials = true;  
            xhr.setRequestHeader('Content-Type','application/json');  
//Send request  
            xhr.send(contents);  
        };  
return { dataUpdate: onUpdate };  
    }  
    CS.symbolCatalog.register(definition);  
})(window.Coresight);  

sym-putvalue-config.html

<div class="c-side-pane t-toolbar">  
    <span style="color:#fff; margin-left:15px">Text Color</span>  
</div>  
<format-color-picker id="textColor" property="TextColor" config="config"></format-color-picker>  
<div class="c-side-pane t-toolbar">  
    <span style="color:#fff; margin-left:15px">Background Color</span>  
</div>  
<format-color-picker id="backgroundColor" property="BackgroundColor" config="config"></format-color-picker>  
<div class="c-side-pane t-toolbar">  
    <span style="color:#fff; margin-left:15px">Show Options</span>  
</div>  
<div class="c-config-content">Show Label:  
    <input type="checkbox" ng-model="config.ShowLabel">  
</div>  
<div class="c-config-content">Show Time:  
    <input type="checkbox" ng-model="config.ShowTime">  
</div>  
<div class="c-config-content">Show PutValue:  
    <input type="checkbox" ng-model="config.ShowPutValue">  
</div> 

sym-putvalue-template.html

<div ng-style="{background: config.BackgroundColor, color: config.TextColor}">  
    <div ng-show="config.ShowLabel">{{label}}</div>  
    <div id='valueCSV'>{{value}}</div>  
    <div ng-show="config.ShowTime">{{time}}</div>  
    <div id='putvalue' ng-show="config.ShowPutValue">  
    Enter new value :<br>  
    <input type="text" style="margin-left:5px; width:100px;" name="box" ng-model="config.Box" /><br>  
    <a name='putvalue' type="button" ng-click="putvalue()">Put New Value</a><br>  
    </div>  
</div>

これらのファイルはGitHubにもアップロードされています。

GitHub - kenji0711/PICoresight2016-CustomSymbol-PutValue: PI Coresgiht 2016's custom symbol that can write value to PI b…

 

次のPI Coresight 2016 R2のバージョンでは書き込みのファンクションはリリースされないことが決まっています。

PI Web APIを呼び出し、値を書き込むことは有効な方法です。PI Web APIを使えば値を書いたり、Summaries valueを取得したりすることができます。これはそのサンプルコードとなります。

 

このコードを実行するためにAFのConfigurationデータベースのPI Web APIの設定を変更する必要がありました。

CoresMethods = *, CorsHeaders = *, CorsOrigins = * , CorsSupportsCredentials = True (私はAuthentication MethodsにKerberosを使用しています )

HTTPSの証明書はグローバルサインのものを使用するべきです。または自己証明書の場合、クライアントマシンにてその証明書を登録し、証明書のエラーにならないようにする必要があります。

もし、値が書き込めなければGoogle ChromeにてF12キーを押し、Troubleshootすることができます。

"Put New Value"をクリックし、エラーメッセージを確認します。