状態基準保全のガイドブックが日本語で公開されたので、コンテンツの中身を実現したく本記事を書きました。

 

5章にPI SystemCMMSの連携の構成がいくつか紹介されています。

この記事では、Asset Analyticsを利用し、MaximoというCMMSにメーターのデータを更新する事例を紹介したいと思っています。

 

シナリオ4

残念ながら、Asset AnalyticsからMaximoへの直接データ送信は不可能です。なぜならば、Maximoにウェブ経由でデータを渡すためには、Token認証の接続が必要ですが、AF通信の機能は基本認証、Kerberos認証と匿名認証だけを対応しているからです。そのために、通信のために小さいウェブサーバー(Connector)を開発しました。

 
 

 

下記の事例で、AF上でポンプの稼働時間を計算し、このメーターのデータをMaximoに送信します。

稼働時間のデータのようなメーターデータであれば、一日一回のスケジュールで送れば十分です。

 

Maximo

Maximoの管理画面で、下記のように設備の一つのメーターデータを確認できます。

RUNHOURSというメーターが定義されて、現在、2018年2月3日にこのポンプの稼働時間は8392時間であったと確認できます。

 

この値の更新のために、MaximoRest APIに設備情報、メーターの名前などを送信する必要があります。

そのために、下記のようなリクエストを作る必要があります。

 

 

URLのパラメーターに設備の名前(ASSETNUM)、メーターの名前(METERNAME)などがあると確認できます。

このリクエストに必要な認証の情報もヘッダーにあります。

 

 

現在、AF通信はこの認証方法にまだ対応していませんが、下記のUserVoiceのアイテムがあります。ご興味があれば投票してください。

https://feedback.osisoft.com/forums/555148-pi-server/suggestions/33151276-enable-headers-for-soap-and-rest-web-service-notif

 

AF

ポンプの稼働時間を計算するために、センサーからポンプの流量(Flow Rate)を取得し、Maximoから最後の補修日(Last Maintance)を取得して、PIタグに保存しました。

 

ポンプのセンサーからON/OFFの信号の取得できないですが、流量がわかっているので、問題なくON/OFF信号が計算できます。

 

 

精度が落ちないために上記の計算をイベントトリガーに設定しています。

ON/OFFの信号があるので、稼働時間を簡単に計算できます。

稼働時間の計算が重い計算で、できれば頻繁に走らないほうがよいです。上記では一日一回だけ計算しています。

 

この計算を利用している補修のチームは、補修のスケジュールは毎週一回ぐらいと決めているので、頻繁に新規のデータを送っても、利用しないので、無駄の計算は実行する必要がありません。

■通信

AFの通信のトリガーはイベントフレームが作成されることです。一日毎にすべてのポンプの稼働時間を送るために、デーリーのイベントフレームを作成します。

注意:この方法で膨大のイベントフレームが作成され、その場合は、AFのパフォーマンスが悪化する可能性があります。Maximoに稼働時間を通信した後に、このイベントフレームを問題なく削除することです。イベントフレームの削除のサンプルコードは下記にあります。

 

■通信のトリガーとなるイベントフレーム

イベントフレームの作成のために、下記の定義を利用します。

 

結果のプレビューを確認すると、この分析は一日毎に一つのイベントフレームが作成される。

 

 

WebServiceの設定

このWebServiceはプロクシーのサーバーに稼働時間を通信するために、プロクシーサーバーのホスト名を記入します。プロクシーサーバーがPostリクエストを受けるため、Postも定義します。

 

Webserviceとトリガーとなるイベントフレームがあるので、下記のように通信を定義します。

 

 

Maximoに送りたい値

上記にあったリクエストにASSETNUMNEWREADINGNEWREADINGDATESITEIDのパラメーターをMaximoにリクエストがあります。このパラメーターをポンプのエレメントの属性に定義します。

 

この定義を通信のメッセージに定義します。

 

 

■プロクシーサーバー

上記の設定で、一日にすべてのポンプの稼働時間をプロクシーサーバーに通信します。

このプロクシーサーバーはAFからくる通信を受け、Maximoへのリクエストを作成します。このコードを下記のGitHubのページで確認してください。

https://github.com/JeromeLefebvre/Proxy-Server-for-PI-System-to-Maximo

 

 

■結果

高い精度の稼働時間はMaximo側で一日毎に更新されています。