(57)【特許請求の範囲】
【請求項１】
産業機器からデータを取得して解析するライブラリと、
前記ライブラリを呼び出すアプリケーションプログラミングインターフェースと、
前記アプリケーションプログラミングインターフェースの使用方法が記載されたリファレンス情報が入力されると、前記リファレンス情報を表示装置に表示させる表示制御部と、
ユーザからの指示に従って、前記ライブラリおよび前記アプリケーションプログラミングインターフェースを用いたユーザプログラムを作成するプログラム作成部と、
を備え、
前記プログラム作成部は、前記表示装置に表示された前記リファレンス情報を参照した前記ユーザからの指示に従って、前記ユーザプログラムを作成することを特徴とするデータ解析プログラム作成支援装置。
【請求項２】
前記表示制御部は、前記アプリケーションプログラミングインターフェースのサンプルであるサンプルプログラムを受け付けると、前記サンプルプログラムを前記表示装置に表示させる、
ことを特徴とする請求項１に記載のデータ解析プログラム作成支援装置。
【請求項３】
前記ライブラリは、前記産業機器から前記産業機器を識別する機器識別情報を取得するための識別情報取得コマンドを発行し、前記産業機器から取得した前記機器識別情報に基づいて前記産業機器から前記データを取得するためのデータ取得コマンドを生成して前記産業機器に送信する、
ことを特徴とする請求項１または２に記載のデータ解析プログラム作成支援装置。
【請求項４】
前記ライブラリは、前記産業機器から取得した前記機器識別情報に基づいて前記産業機器から前記産業機器のバージョンを取得するためのバージョン取得コマンドを生成して前記産業機器に送信し、前記バージョンおよび前記機器識別情報に基づいて前記データ取得コマンドを生成して前記産業機器に送信する、
ことを特徴とする請求項３に記載のデータ解析プログラム作成支援装置。
【請求項５】
前記ライブラリは、前記産業機器から取得した前記機器識別情報に基づいて前記産業機器から前記産業機器の形名を取得するための形名取得コマンドを生成して前記産業機器に送信し、前記形名および前記機器識別情報に基づいて前記データ取得コマンドを生成して前記産業機器に送信する、
ことを特徴とする請求項３に記載のデータ解析プログラム作成支援装置。
【請求項６】
前記ライブラリから呼び出されて前記産業機器との間で通信を実行する通信インターフェースと、
前記ユーザプログラムを実行することによって、前記アプリケーションプログラミングインターフェース、前記ライブラリ、および前記通信インターフェースを用いて、前記産業機器からデータを取得して解析する制御部と、
をさらに備える、
ことを特徴とする請求項１から５の何れか１つに記載のデータ解析プログラム作成支援装置。
【請求項７】
アプリケーションプログラミングインターフェースの使用方法が記載されたリファレンス情報が入力されると、表示制御部が、前記リファレンス情報を表示装置に表示させる表示ステップと、
プログラム作成部が、産業機器からデータを取得して解析するライブラリおよび前記ライブラリを呼び出すアプリケーションプログラミングインターフェースを用いたユーザプログラムを、ユーザからの指示に従って作成する作成ステップと、
を含み、
前記作成ステップでは、前記プログラム作成部が、前記表示装置に表示された前記リファレンス情報を参照した前記ユーザからの指示に従って、前記ユーザプログラムを作成することを特徴とするデータ解析プログラム作成支援方法。
【請求項８】
アプリケーションプログラミングインターフェースの使用方法が記載されたリファレンス情報が入力されると、表示制御部が、前記リファレンス情報を表示装置に表示させる表示ステップと、
プログラム作成部が、産業機器からデータを取得して解析するライブラリおよび前記ライブラリを呼び出すアプリケーションプログラミングインターフェースを用いたユーザプログラムを、ユーザからの指示に従って作成する作成ステップと、
をコンピュータに実行させ、
前記作成ステップでは、前記プログラム作成部が、前記表示装置に表示された前記リファレンス情報を参照した前記ユーザからの指示に従って、前記ユーザプログラムを作成することを特徴とするデータ解析プログラム作成支援プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、アプリケーションプログラミングインターフェースを用いたデータ解析プログラム作成支援装置、データ解析プログラム作成支援方法、およびデータ解析プログラム作成支援プログラムに関する。
【背景技術】
【０００２】
産業機器は、産業機器のユーザによって作成されたユーザプログラムに従って種々の処理を実行する。このユーザプログラムが開発される際には、ユーザプログラムがＡＰＩ（Application  Programming  Interface，アプリケーションプログラミングインターフェース）を用いて、種々のアプリケーションを含んだライブラリを呼び出すよう、ユーザプログラムが作成される。【０００３】
特許文献１に記載のＡＰＩ設計方法では、ＡＰＩ設計者自身が、良好なＡＰＩを作成するために、コードサンプルの有用性調査であるユーザビリティスタディを実行し、実行した１つまたは複数のユーザビリティスタディに基づいて、ＡＰＩを修正している。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００５−１２９０２７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、上記特許文献１の技術では、ＡＰＩ設計者は、良好なＡＰＩを作成することはできるが、ＡＰＩ設計者以外の第３者は、ＡＰＩの仕様を理解できないので、ＡＰＩを用いたユーザプログラムを作成することができなかった。【０００６】
本開示は、上記に鑑みてなされたものであって、ＡＰＩ設計者以外の第３者が、ＡＰＩを用いたユーザプログラムを容易に作成することができるデータ解析プログラム作成支援装置を得ることを目的とする。
【課題を解決するための手段】
【０００７】
上述した課題を解決し、目的を達成するために、本開示のデータ解析プログラム作成支援装置は、産業機器からデータを取得して解析するライブラリと、ライブラリを呼び出すアプリケーションプログラミングインターフェースとを備える。また、本開示のデータ解析プログラム作成支援装置は、アプリケーションプログラミングインターフェースの使用方法が記載されたリファレンス情報が入力されると、リファレンス情報を表示装置に表示させる表示制御部と、ユーザからの指示に従って、ライブラリおよびアプリケーションプログラミングインターフェースを用いたユーザプログラムを作成するプログラム作成部とを備える。プログラム作成部は、表示装置に表示されたリファレンス情報を参照したユーザからの指示に従って、ユーザプログラムを作成する。
【発明の効果】
【０００８】
本開示にかかるデータ解析プログラム作成支援装置は、ＡＰＩ設計者以外の第３者が、ＡＰＩを用いたユーザプログラムを容易に作成することが可能になるという効果を奏する。
【図面の簡単な説明】
【０００９】
【図１】実施の形態にかかるＩＰＣを備えたデータ解析システムの構成を示す図
【図２】実施の形態にかかるＩＰＣの構成を示す図
【図３】ソースコードと実行コードとの関係を説明するための図
【図４】複数のソースコードから実行コードを作成する処理を説明するための図
【図５】実施の形態にかかるＩＰＣが用いるライブラリを説明するための図
【図６】実施の形態にかかるＩＰＣがユーザプログラムを作成する処理の処理手順を示すフローチャート
【図７】実施の形態にかかるＩＰＣがデータを解析する処理の処理手順を示すフローチャート
【図８】実施の形態にかかるＩＰＣが備えるライブラリがデータを取得する処理の処理手順を示すフローチャート
【図９】実施の形態にかかるＩＰＣの別構成例を示す図
【図１０】実施の形態にかかるＩＰＣを実現するハードウェアの構成例を示す図
【発明を実施するための形態】
【００１０】
以下に、本開示の実施の形態にかかるデータ解析プログラム作成支援装置、データ解析プログラム作成支援方法、およびデータ解析プログラム作成支援プログラムを図面に基づいて詳細に説明する。
【００１１】
実施の形態．
図１は、実施の形態にかかるＩＰＣを備えたデータ解析システムの構成を示す図である。データ解析システム１０１は、ＩＰＣ（Industrial  Personal  Computer，産業用パーソナルコンピュータ）１０と、ＩＰＣ１０に接続された表示装置３０と、ＩＰＣ１０に接続された、１または複数の産業機器とを備えている。ここでは、ＩＰＣ１０が、産業用ネットワークなどを介して産業機器３１〜３３に接続されている場合について説明する。
【００１２】
データ解析システム１０１は、多軸によって機械を動作させる多軸制御システムなどに適用される。多軸制御システムの例は、複数のサーボアンプと、複数のサーボアンプを制御するコントローラとを備えたシステムである。
【００１３】
プログラム作成支援装置であるＩＰＣ１０は、産業機器３１〜３３からデータを同時に収集して解析するコンピュータである。ＩＰＣ１０は、データを収集して解析するプログラム（後述するユーザプログラム１１）を作成する際に用いられる情報（後述するＡＰＩリファレンス２５）を表示装置３０に表示させる。ＩＰＣ１０は、産業機器３１〜３３を用いるユーザによって作成されたユーザプログラム１１に従って、産業機器３１〜３３からデータを収集し、解析する。産業機器３１〜３３の例は、モーションコントローラ、サーボアンプなどの機器である。
【００１４】
図２は、実施の形態にかかるＩＰＣの構成を示す図である。なお、ここでは、ＩＰＣ１０が産業機器３１からデータを収集する場合について説明する。ＩＰＣ１０は、ＡＰＩ５０と、解析ライブラリ１３と、通信ＩＦ（InterFace）１４と、データ入力部１８と、表示制御部１９と、指示入力部２０と、プログラム作成部２１と、実行制御部２２とを備えている。
【００１５】
ＩＰＣ１０は、プログラム作成部２１がユーザからの指示に従ってユーザプログラム１１を作成すると、このユーザプログラム１１を、ＩＰＣ１０が備えるメモリ（図１では図示せず）内などに格納する。ユーザプログラム１１は、産業機器３１を使用するユーザが作成するプログラムである。ＩＰＣ１０は、ユーザプログラム１１を実行することによって、産業機器３１からデータを収集して解析する。ユーザは、ユーザプログラム１１を自社で使用してもよいし、産業機器３１を含むシステムの一部として他社へ販売してもよい。
【００１６】
ＡＰＩ５０は、解析ライブラリ１３を、ユーザプログラム１１から使用するためのインターフェースである。ＡＰＩ５０、解析ライブラリ１３、および通信ＩＦ１４は、産業機器３１の製造メーカ（以下、機器製造メーカという）によって作成され、ユーザに提供される。
【００１７】
解析ライブラリ１３には、例えば、ＦＦＴ（Fast  Fourier  Transform，高速フーリエ変換）ライブラリ１５、ウェーブレット変換ライブラリ１６、周波数特性解析ライブラリ１７などが含まれている。なお、解析ライブラリ１３には、これら以外のライブラリが含まれていてもよい。
【００１８】
ＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７は、産業機器３１から取得したデータに基づいて、産業機器３１の状態などを解析し、産業機器３１の状態をユーザに分かりやすく提供する。なお、以下の説明では、ＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７をライブラリ群という場合がある。
【００１９】
ＦＦＴライブラリ１５は、時刻歴の波形が、何れの周波数成分をどれくらい含んでいるかを検出する。ウェーブレット変換ライブラリ１６は、基底関数としてウェーブレット関数を用いた周波数解析を行う。周波数特性解析ライブラリ１７は、周波数特性を解析する。
【００２０】
通信ＩＦ１４は、産業機器３１との間で通信を実行し、産業機器３１からデータを取得する通信インターフェース機能を有している。通信ＩＦ１４は、ＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、または周波数特性解析ライブラリ１７からの指示に従って、産業機器３１からデータを取得する。通信ＩＦ１４は、通信処理を実行する通信ライブラリとして、ＩＰＣ１０に格納されている。
【００２１】
データ入力部１８は、ＡＰＩリファレンス２５およびサンプルプログラム２６を受け付ける。データ入力部１８は、ＡＰＩリファレンス２５を受け付けると、ＡＰＩリファレンス２５を表示制御部１９に入力する。データ入力部１８は、サンプルプログラム２６を受け付けると、サンプルプログラム２６を表示制御部１９およびプログラム作成部２１に入力する。
【００２２】
ＡＰＩリファレンス２５は、ＡＰＩ５０の仕様を記述した資料である。すなわち、ＡＰＩリファレンス２５は、ＡＰＩ５０の使い方が記載されたリファレンス情報である。ユーザは、ＡＰＩリファレンス２５を参照することで、ＡＰＩ５０の使い方を容易に理解することが可能となる。ＡＰＩリファレンス２５は、ＤＶＤ（Digital  Versatile  Disc）などの可搬性の記憶媒体を介して、データ入力部１８に入力される。また、ＡＰＩリファレンス２５は、インターネットなどのネットワークを介してデータ入力部１８に入力されてもよい。
【００２３】
サンプルプログラム２６は、ＡＰＩ５０の具体的な使用例を示す資料である。ユーザは、サンプルプログラム２６を参照し、ユーザプログラム１１を作成する際に参考にする。また、ユーザは、サンプルプログラム２６をそのままユーザプログラム１１に組み込んでもよい。この場合、ユーザプログラム１１は、ユーザプログラム１１上から容易にＦＦＴライブラリ１５などのライブラリを呼び出すことが可能となる。ＡＰＩリファレンス２５およびサンプルプログラム２６は、機器製造メーカによって作成され、ユーザに提供される。本実施の形態のユーザプログラム１１は、産業機器３１を用いるユーザによって作成される。このユーザは、ＡＰＩ設計者以外の第３者である。
【００２４】
表示制御部１９は、ＡＰＩリファレンス２５およびサンプルプログラム２６を表示装置３０に表示させる。これにより、ユーザは、ＡＰＩリファレンス２５およびサンプルプログラム２６を参照することが可能となる。なお、ＡＰＩリファレンス２５は、紙に記載されていてもよい。この場合、ユーザは、紙のＡＰＩリファレンス２５を参照しながらユーザプログラム１１を作成する。
【００２５】
指示入力部２０は、ユーザからの指示を受け付ける。指示入力部２０がユーザから受け付ける指示は、ユーザプログラム１１を作成するための指示、およびユーザプログラム１１を実行するための指示である。ユーザは、ＡＰＩリファレンス２５およびサンプルプログラム２６を参照して、指示入力部２０に指示を入力する。ユーザからの指示は、例えば、マウス、キーボードなどを介して指示入力部２０に送られる。
【００２６】
指示入力部２０は、ユーザから受け付けた、ユーザプログラム１１を作成するための指示をプログラム作成部２１に送る。また、指示入力部２０は、ユーザから受け付けた、ユーザプログラム１１を実行するための指示を実行制御部２２に送る。
【００２７】
プログラム作成部２１は、ユーザからの指示に従って、ユーザプログラム１１を作成する。プログラム作成部２１によって作成されるユーザプログラム１１は、ＡＰＩ５０を用いて解析ライブラリ１３内のライブラリを呼び出すことができるプログラムである。ＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７は、ユーザプログラム１１によって呼び出され、実行されると、通信ＩＦ１４を用いて産業機器３１からデータを取得して解析する。
【００２８】
表示装置３０は、解析ライブラリ１３による解析結果、ユーザプログラム１１、ＡＰＩリファレンス２５、およびサンプルプログラム２６を表示する。
【００２９】
本実施の形態では、機器製造メーカによって作成された、ＡＰＩリファレンス２５およびサンプルプログラム２６が、ユーザに提供されるので、ユーザは、ＡＰＩリファレンス２５およびサンプルプログラム２６を参照しながらユーザプログラム１１を容易に作成することができる。これにより、ＩＰＣ１０は、ユーザからの指示に従って、ライブラリ群を組み込んだユーザプログラム１１を作成することができる。
【００３０】
実行制御部２２は、ユーザプログラム１１を実行する指示を受け付けると、ユーザプログラム１１を実行する。これにより、ユーザプログラム１１は、ユーザプログラム１１内で規定されたライブラリ群のうちの何れかのライブラリを呼び出して、産業機器３１からデータを取得し解析する。
【００３１】
ＩＰＣ１０のうち、ユーザプログラム１１以外は、産業機器３１の機器製造メーカから提供される。なお、サンプルプログラム２６は、ユーザに提供されていなくてもよい。
【００３２】
なお、ＩＰＣ１０は、機器製造メーカによって作製されてもよいし、機器製造メーカ以外の他社メーカによって作製されてもよい。また、ＩＰＣ１０は、産業用のパーソナルコンピュータに限らず、市販されているパーソナルコンピュータであってもよい。また、プログラム作成部２１は、ＩＰＣ１０の外部に配置されたコンピュータに格納されていてもよい。
【００３３】
ここで、ＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７の作成方法について説明する。図３は、ソースコードと実行コードとの関係を説明するための図である。図４は、複数のソースコードから実行コードを作成する処理を説明するための図である。図５は、実施の形態にかかるＩＰＣが用いるライブラリを説明するための図である。図３から図５では、実行コードの作成手順を示している。
【００３４】
図３に示すように、ＩＰＣ１０で動作する実行コード８１が作成される際には、ユーザが読んで理解できるソースコード６１が、ユーザによって作成される。このソースコード６１がコンパイルされることで、オブジェクトコード７１が作成される。オブジェクトコード７１は、ＩＰＣ１０には理解できるが、ユーザには理解することは難しいデータである。このオブジェクトコード７１がリンクされることで、ＩＰＣ１０で実行可能な実行コード８１が作成される。
【００３５】
図４に示すように、ソースコード６２Ａ，６２Ｂのようにソースコードが複数である場合がある。ソースコード６２Ｂは、ソースコード６２Ａによって呼び出されるソースコードである。すなわち、ソースコード６２Ａ，６２Ｂは、階層的に作成されている。この場合、ソースコード６２Ａ，６２Ｂは、別々にコンパイルされ、ソースコード６２Ａに対応するオブジェクトコード７２Ａと、ソースコード６２Ｂに対応するオブジェクトコード７２Ｂとが作成される。これらのオブジェクトコード７２Ａ，７２Ｂがリンクされることで、ＩＰＣ１０で実行可能な実行コード８２が作成される。
【００３６】
図５に示すように、ユーザによって作成されたソースコード６３が、オブジェクトコードが複数集められたライブラリ７５を呼び出す場合がある。このライブラリ７５は、コンパイル済みである。オブジェクトコード７３は、ソースコード６３がコンパイルされることで作成される。これらのオブジェクトコード７３およびライブラリ７５がリンクされることで、ＩＰＣ１０で実行可能な実行コード８３が作成される。
【００３７】
ライブラリ７５の例が解析ライブラリ１３に含まれるＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７である。これらの、ＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７は、機器製造メーカで作成される。すなわち、機器製造メーカは、ＦＦＴライブラリ１５に対応するソースコードをコンパイルすることでＦＦＴライブラリ１５を作成し、ウェーブレット変換ライブラリ１６に対応するソースコードをコンパイルすることでウェーブレット変換ライブラリ１６を作成し、周波数特性解析ライブラリ１７に対応するソースコードをコンパイルすることで周波数特性解析ライブラリ１７を作成する。
【００３８】
本実施の形態では、機器製造メーカが作成したＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７が、機器製造メーカからＩＰＣ１０のユーザに提供される。ＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７は、ＩＰＣ１０には理解できるが、ユーザには理解することが難しい。このため、ＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７が、ライブラリとして配布されることで、ＦＦＴライブラリ１５、ウェーブレット変換ライブラリ１６、および周波数特性解析ライブラリ１７の機密性が保たれることとなる。
【００３９】
図６は、実施の形態にかかるＩＰＣがユーザプログラムを作成する処理の処理手順を示すフローチャートである。ＩＰＣ１０は、機器製造メーカによってユーザに提供される。この段階でのＩＰＣ１０には、ＡＰＩ５０、解析ライブラリ１３、および通信ＩＦ１４が含まれているが、ユーザプログラム１１は含まれていない。ＡＰＩリファレンス２５およびサンプルプログラム２６が、機器製造メーカによってユーザに提供されると、ＡＰＩリファレンス２５およびサンプルプログラム２６がＩＰＣ１０のデータ入力部１８に入力される。これにより、ＩＰＣ１０は、ＡＰＩリファレンス２５を受け付ける（ステップＳ１０）。また、ＩＰＣ１０は、サンプルプログラム２６を受け付ける（ステップＳ２０）。なお、ステップＳ１０の処理とステップＳ２０の処理は、何れの順番で実行されてもよい。
【００４０】
データ入力部１８は、ＡＰＩリファレンス２５およびサンプルプログラム２６を受け付けると、ＡＰＩリファレンス２５およびサンプルプログラム２６を表示制御部１９に送る。これにより、ＩＰＣ１０の表示制御部１９が、表示装置３０に、ＡＰＩリファレンス２５およびサンプルプログラム２６を表示させる（ステップＳ３０）。これにより、ＡＰＩリファレンス２５およびサンプルプログラム２６がユーザに参照される。なお、ＡＰＩリファレンス２５およびサンプルプログラム２６は、ユーザからの指示に従って、表示装置３０に表示されてもよい。
【００４１】
また、データ入力部１８は、サンプルプログラム２６を受け付けると、サンプルプログラム２６をプログラム作成部２１に送る。ユーザは、指示入力部２０にユーザプログラム１１を作成する指示を入力する。この指示は、プログラム作成部２１に送られる。プログラム作成部２１は、ユーザからの指示に従って、ユーザプログラム１１を作成する。この場合において、ユーザプログラム１１にはサンプルプログラム２６が含まれていてもよい。このように、ＩＰＣ１０は、ユーザからの指示に従ってユーザプログラム１１を作成する（ステップＳ４０）。
【００４２】
図７は、実施の形態にかかるＩＰＣがデータを解析する処理の処理手順を示すフローチャートである。ＩＰＣ１０の指示入力部２０は、ユーザプログラム１１を実行する指示をユーザから受け付けると、この指示を実行制御部２２に送る。実行制御部２２は、ユーザプログラム１１を実行する指示を受け付けると、ユーザプログラム１１を起動し（ステップＳ１１０）、ユーザプログラム１１を実行する。これにより、ユーザプログラム１１、ＡＰＩ５０、解析ライブラリ１３内の何れかのライブラリが、この順番で呼び出される。すなわち、ユーザプログラム１１がＡＰＩ５０を呼び出し（ステップＳ１２０）、ＡＰＩ５０が解析ライブラリ１３内のライブラリを呼び出す。ユーザプログラム１１によって呼び出されるライブラリは、ユーザプログラム１１内で規定されている。ここでは、ＦＦＴライブラリ１５が、ユーザプログラム１１によって呼び出される場合について説明する。この場合、ユーザプログラム１１は、ＡＰＩ５０からＦＦＴライブラリ１５を呼び出す（ステップＳ１３０）。
【００４３】
ＦＦＴライブラリ１５は、呼び出されると、通信ＩＦ１４を介して産業機器３１からデータを取得する（ステップＳ１４０）。このデータの取得処理は、予め設定された分量のデータが収集されるまで実行される。予め設定された分量のデータは、解析が十分可能となる分量のデータである。予め設定される分量は、ＦＦＴライブラリ１５の作成者によって設定されてもよいし、ＩＰＣ１０のユーザによって設定されてもよい。データの分量は、ＡＰＩ５０に設定される。
【００４４】
ＦＦＴライブラリ１５は、解析に必要な分量のデータを取得できたか否かを判定する（ステップＳ１５０）。すなわち、ＦＦＴライブラリ１５は、予め設定された分量のデータを取得できたか否かを判定する。
【００４５】
解析に必要な分量のデータを取得できていない場合（ステップＳ１５０、Ｎｏ）、ＦＦＴライブラリ１５は、通信ＩＦ１４を介して産業機器３１からデータを取得する（ステップＳ１４０）。ＦＦＴライブラリ１５は、解析に必要な分量のデータを取得すると（ステップＳ１５０、Ｙｅｓ）、取得したデータに基づいて、データを解析する（ステップＳ１６０）。実行制御部２２は、このＦＦＴライブラリ１５による解析結果を表示制御部１９に送る。表示制御部１９は、ＦＦＴライブラリ１５による解析結果を表示装置３０に表示させる（ステップＳ１７０）。
【００４６】
つぎに、ＦＦＴライブラリ１５といったライブラリの動作について説明する。ここでは、ＦＦＴライブラリ１５が、産業機器３１からデータを取得する場合について説明する。ＦＦＴライブラリ１５は、産業機器３１から解析用の正しいデータを取得するには、正しいデータ取得コマンドを産業機器３１に送信する必要があるが、データ取得コマンドは産業機器３１〜３３でそれぞれ異なることが多い。データ取得コマンドは、産業機器３１〜３３の何れかからデータを取得するためのコマンドである。
【００４７】
このため、ＦＦＴライブラリ１５は、正しいデータ取得コマンドを選択するには、産業機器３１の機種に依存する正しい機器ＩＤ（Identification，識別）を取得する必要がある。機器ＩＤは、産業機器３１を識別する機器識別情報である。
【００４８】
ＦＦＴライブラリ１５は、産業機器３１の機器ＩＤを取得する処理と、産業機器３１の機器ＩＤに従って産業機器３１へのデータ取得コマンドを作成する処理と、産業機器３１からデータを受信する処理とからなる一連の処理を実行する。これにより、ユーザは、産業機器３１の機種を気にせず、ＡＰＩ５０を使用することが可能となる。
【００４９】
ＦＦＴライブラリ１５は、産業機器３１の機器ＩＤを取得する際には、産業機器３１〜３３にＩＤ取得コマンドを発行する。ＩＤ取得コマンドは、所望の産業機器から機器ＩＤを取得するためのコマンドである。産業機器３１〜３３のように複数の産業機器がある場合、産業機器のＩＤ取得コマンドは複数用意されている場合がある。したがって、ＦＦＴライブラリ１５は、産業機器３１から正しい機器ＩＤが取得できるまで、種々のＩＤ取得コマンドを発行し続ける。
【００５０】
図８は、実施の形態にかかるＩＰＣが備えるライブラリがデータを取得する処理の処理手順を示すフローチャートである。ここでは、ＦＦＴライブラリ１５が、産業機器３１からデータを取得する場合の処理について説明する。
【００５１】
ＦＦＴライブラリ１５は、産業機器３１のＩＤ取得コマンドを発行する（ステップＳ２１０）。ＦＦＴライブラリ１５が発行するＩＤ取得コマンドは、産業機器３１から機器ＩＤを取得するためのコマンドである。ＦＦＴライブラリ１５が発行したＩＤ取得コマンドが正しいＩＤ取得コマンドである場合、産業機器３１から、産業機器３１の機器ＩＤが送られてくる。
【００５２】
ＦＦＴライブラリ１５は、産業機器３１の機器ＩＤを取得できたか否かを判定する（ステップＳ２２０）。ＦＦＴライブラリ１５は、産業機器３１の機器ＩＤを取得できていない場合（ステップＳ２２０、Ｎｏ）、発行済みのＩＤ取得コマンドとは異なる別のＩＤ取得コマンドを発行する（ステップＳ２３０）。
【００５３】
ＦＦＴライブラリ１５は、産業機器３１の機器ＩＤを取得できるまで、発行済みのＩＤ取得コマンドとは異なる別のＩＤ取得コマンドを発行する処理を繰り返す。すなわち、ＦＦＴライブラリ１５は、産業機器３１の機器ＩＤを取得できるまで、ステップＳ２２０，Ｓ２３０の処理を繰り返す。
【００５４】
ＦＦＴライブラリ１５は、産業機器３１の機器ＩＤを取得できた場合（ステップＳ２２０、Ｙｅｓ）、産業機器３１が機器バージョンを取得する必要のある産業機器であるか否かを判定する（ステップＳ２４０）。
【００５５】
産業機器３１が機器バージョンを取得する必要のない産業機器である場合（ステップＳ２４０、Ｎｏ）、ＦＦＴライブラリ１５は、産業機器３１からデータを取得する。このとき、ＦＦＴライブラリ１５は、通信ＩＦ１４を介して、産業機器３１に産業機器３１の機器ＩＤを含んだデータ取得コマンドを送信する。これにより、ＦＦＴライブラリ１５は、通信ＩＦ１４を介して産業機器３１からデータを取得する（ステップＳ２６０）。
【００５６】
一方、産業機器３１が機器バージョンを取得する必要のある産業機器である場合（ステップＳ２４０、Ｙｅｓ）、ＦＦＴライブラリ１５は、産業機器３１から産業機器３１の機器バージョンを取得する（ステップＳ２５０）。このとき、ＦＦＴライブラリ１５は、産業機器３１の機器バージョンを取得するためのコマンドであるバージョン取得コマンドを、産業機器３１に送る。バージョン取得コマンドには、産業機器３１の機器ＩＤが含まれている。これにより、産業機器３１からＦＦＴライブラリ１５に産業機器３１の機器バージョンが送られてくる。そして、ＦＦＴライブラリ１５は、通信ＩＦ１４を介して、産業機器３１にデータ取得コマンドを送信する。この場合のデータ取得コマンドは、産業機器３１の機器バージョンに対応するコマンドである。これにより、ＦＦＴライブラリ１５は、通信ＩＦ１４を介して産業機器３１からデータを取得する（ステップＳ２６０）。
【００５７】
ＦＦＴライブラリ１５は、解析に必要な分量のデータを取得できたか否かを判定する（ステップＳ２７０）。解析に必要な分量のデータを取得できていない場合（ステップＳ２７０、Ｎｏ）、ＦＦＴライブラリ１５は、通信ＩＦ１４を介して産業機器３１からデータを取得する（ステップＳ２６０）。ＦＦＴライブラリ１５は、解析に必要な分量のデータを取得すると（ステップＳ２７０、Ｙｅｓ）、データ取得処理を終了する。
【００５８】
産業機器３１は、必要に応じてバージョンアップを実施することがある。この場合において、データ取得の機能向上を図るため、またはデータ取得の性能向上を図るために、バージョンアップ前のデータ取得コマンドよりも便利な新たなデータ取得コマンドが用意される場合がある。したがって、本実施の形態のＦＦＴライブラリ１５は、新たなデータ取得コマンドの使用可否を確認するため、産業機器３１から機器バージョンを取得する。
【００５９】
なお、ＦＦＴライブラリ１５は、機器バージョンの代わりに産業機器３１の形名を取得し、形名に対応するデータ取得コマンドを用いてデータを取得してもよい。この場合、ＦＦＴライブラリ１５は、産業機器３１の形名を取得するためのコマンドである形名取得コマンドを、産業機器３１に送る。形名取得コマンドには、産業機器３１の機器ＩＤが含まれている。
【００６０】
また、ＦＦＴライブラリ１５は、機器バージョンおよび形名を取得し、機器バージョンおよび形名に対応するデータ取得コマンドを用いてデータを取得してもよい。この場合、ＦＦＴライブラリ１５は、産業機器３１の機器バージョンおよび形名を取得するためのコマンドである形名バージョン取得コマンドを、産業機器３１に送る。形名バージョン取得コマンドには、産業機器３１の機器ＩＤが含まれている。
【００６１】
ＦＦＴライブラリ１５は、産業機器３２，３３に対しても、産業機器３１へのデータ取得処理と同様の処理によって、データの取得処理を実行する。ＩＰＣ１０では、ウェーブレット変換ライブラリ１６および周波数特性解析ライブラリ１７も、ＦＦＴライブラリ１５と同様の処理によって、産業機器３１〜３３からデータを取得する。
【００６２】
このようにデータ解析システム１０１では、ＡＰＩリファレンス２５およびサンプルプログラム２６が、ＩＰＣ１０に提供され、ＩＰＣ１０が、表示装置３０にＡＰＩリファレンス２５およびサンプルプログラム２６を表示させている。これにより、ユーザは、ＡＰＩリファレンス２５およびサンプルプログラム２６を参照しながらユーザプログラム１１を作成することが可能となる。これにより、データ解析システム１０１は、産業機器３１から取得したデータの解析結果に基づいて、産業機器３１の調整を容易に実行することが可能となる。
【００６３】
ところで、産業機器３１〜３３の場合、ライブラリ群であるアプリケーションは、ＩＰＣ１０のハードウェアを支援するものである。本実施の形態では、ハードウェアであるＩＰＣ１０を開発している機器製造メーカが、ライブラリ群を開発した場合に、これらのライブラリ群をＡＰＩリファレンス２５およびサンプルプログラム２６とともにＩＰＣ１０のユーザに提供している。
【００６４】
高速かつ高精度な解析機能は、産業機器３１〜３３のハードウェアをよく知る機器製造メーカにしか作成できない場合があった。このため、ユーザは、高速かつ高精度な解析機能を組み込んだユーザプログラムを作成することは困難であった。一方、本実施の形態では、解析機能がライブラリ化され、ＡＰＩリファレンス２５およびサンプルプログラム２６がユーザに提供されている。これにより、ユーザは、解析のノウハウを熟知することなく、ＡＰＩリファレンス２５およびサンプルプログラム２６を参照しながら、ライブラリ群を組み込んだユーザプログラム１１を作成することが可能となる。
【００６５】
なお、実施の形態では、１つのＩＰＣ１０が、ユーザプログラム１１の作成と、データの解析との両方を実行する場合について説明したが、ユーザプログラム１１の作成と、データの解析とを別々のＩＰＣで実行してもよい。
【００６６】
図９は、実施の形態にかかるＩＰＣの別構成例を示す図である。図９の各構成要素のうち図２に示すＩＰＣ１０と同一機能を達成する構成要素については同一符号を付しており、重複する説明は省略する。ここでは、ユーザプログラム１１を作成するＩＰＣがＩＰＣ１０Ｂであり、ユーザプログラム１１を用いてデータを解析するＩＰＣがＩＰＣ１０Ａである場合について説明する。ここでのＩＰＣ１０Ａが産業機器３１からデータを収集する。
【００６７】
ＩＰＣ１０Ａは、ＡＰＩ５０と、解析ライブラリ１３と、通信ＩＦ１４と、データ入力部１８Ａと、表示制御部１９Ａと、指示入力部２０Ａと、実行制御部２２とを備えている。
【００６８】
ＩＰＣ１０Ｂは、データ入力部１８Ｂと、表示制御部１９Ｂと、指示入力部２０Ｂと、プログラム作成部２１と、出力部２３とを備えている。
【００６９】
ＩＰＣ１０Ｂは、プログラム作成部２１がユーザからの指示に従ってユーザプログラム１１を作成すると、このユーザプログラム１１を、ＩＰＣ１０Ａが備えるメモリ（図９では図示せず）内などに格納する。ＩＰＣ１０Ｂは、ユーザプログラム１１を通信手段によってＩＰＣ１０Ａに送信してもよいし、記憶媒体を介してＩＰＣ１０Ａに格納してもよい。
【００７０】
データ入力部１８Ｂは、ＡＰＩリファレンス２５およびサンプルプログラム２６を受け付ける。データ入力部１８Ｂは、ＡＰＩリファレンス２５を受け付けると、ＡＰＩリファレンス２５を表示制御部１９Ｂに入力する。データ入力部１８Ｂは、サンプルプログラム２６を受け付けると、サンプルプログラム２６を表示制御部１９Ｂおよびプログラム作成部２１に入力する。
【００７１】
表示制御部１９Ｂは、ＡＰＩリファレンス２５およびサンプルプログラム２６を表示装置３５に表示させる。これにより、ユーザは、ＡＰＩリファレンス２５およびサンプルプログラム２６を参照することが可能となる。なお、表示制御部１９Ｂは、ＡＰＩリファレンス２５およびサンプルプログラム２６の少なくとも一方を表示装置３０に表示させてもよい。
【００７２】
指示入力部２０Ｂは、ユーザからの指示を受け付ける。指示入力部２０Ｂがユーザから受け付ける指示は、ユーザプログラム１１を作成するための指示である。ユーザは、ＡＰＩリファレンス２５およびサンプルプログラム２６を参照して、指示入力部２０Ｂに指示を入力する。ユーザからの指示は、例えば、マウス、キーボードなどを介して指示入力部２０Ｂに送られる。
【００７３】
指示入力部２０Ｂは、ユーザから受け付けた、ユーザプログラム１１を作成するための指示をプログラム作成部２１に送る。
【００７４】
プログラム作成部２１は、ユーザからの指示に従って、ユーザプログラム１１を作成する。プログラム作成部２１は、作成したユーザプログラム１１を、ＩＰＣ１０Ａが備えるメモリなどに格納する。出力部２３は、メモリなどに格納されているユーザプログラム１１を、データ入力部１８Ａに出力する。なお、ＩＰＣ１０ＢからＩＰＣ１０Ａへは、通信によってユーザプログラム１１が送られてもよいし、記憶媒体を介してユーザプログラム１１が送られてもよい。
【００７５】
表示装置３５は、ユーザプログラム１１、ＡＰＩリファレンス２５、およびサンプルプログラム２６を表示する。
【００７６】
データ入力部１８Ａは、出力部２３が出力するユーザプログラム１１を受け付けると、このユーザプログラム１１を、ＩＰＣ１０Ａが備えるメモリ（図９では図示せず）内などに格納する。
【００７７】
ＡＰＩ５０の解析ライブラリ１３は、図２で説明した解析ライブラリ１３と同様の解析ライブラリである。
【００７８】
指示入力部２０Ａは、ユーザからの指示を受け付ける。指示入力部２０Ａがユーザから受け付ける指示は、ユーザプログラム１１を実行するための指示である。ユーザからの指示は、例えば、マウス、キーボードなどを介して指示入力部２０Ａに送られる。指示入力部２０Ａは、ユーザから受け付けた、ユーザプログラム１１を実行するための指示を実行制御部２２に送る。
【００７９】
実行制御部２２は、ユーザプログラム１１を実行する指示を受け付けると、ユーザプログラム１１を実行する。これにより、ユーザプログラム１１は、ユーザプログラム１１内で規定されたライブラリ群のうちの何れかのライブラリを呼び出して、産業機器３１からデータを取得し解析する。
【００８０】
ここで、ＩＰＣ１０のハードウェア構成について説明する。図１０は、実施の形態にかかるＩＰＣを実現するハードウェアの構成例を示す図である。
【００８１】
ＩＰＣ１０は、入力装置４２、プロセッサ４１、メモリ４３、出力装置４４、および通信装置４５により実現することができる。プロセッサ４１の例は、ＣＰＵ（Central  Processing  Unit、中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、ＤＳＰ（Digital  Signal  Processor）ともいう）またはシステムＬＳＩ（Large  Scale  Integration）である。メモリ４３の例は、ＲＡＭ（Random  Access  Memory）、ＲＯＭ（Read  Only  Memory）である。
【００８２】
ＩＰＣ１０は、プロセッサ４１が、メモリ４３で記憶されているＩＰＣ１０の動作を実行するための、コンピュータで実行可能なデータ解析プログラム作成支援プログラムを読み出して実行することにより実現される。ＩＰＣ１０が実行するデータ解析プログラム作成支援プログラムは、ＡＰＩリファレンス２５およびサンプルプログラム２６を表示する表示プログラム、ユーザからの指示に従ってユーザプログラム１１を作成する作成プログラム、および産業機器３１〜３３からデータを取得して解析するユーザプログラム１１である。なお、データ解析プログラム作成支援プログラムは、ユーザプログラム１１を有していなくてもよい。ＩＰＣ１０の動作を実行するための、表示プログラム、作成プログラム、およびユーザプログラム１１は、ＩＰＣ１０の手順または方法をコンピュータに実行させるものであるともいえる。
【００８３】
ＩＰＣ１０で実行される表示プログラム、作成プログラム、およびユーザプログラム１１は、実行制御部２２と、プログラム作成部２１と、表示制御部１９とを含むモジュール構成となっており、これらが主記憶装置上にロードされ、これらが主記憶装置上に生成される。これにより、プロセッサ４１は、実行制御部２２、プログラム作成部２１、および表示制御部１９の機能を実行する。表示プログラムによる処理が表示制御部１９による処理に対応し、作成プログラムによる処理がプログラム作成部２１による処理に対応し、ユーザプログラム１１による処理が実行制御部２２による処理に対応している。
【００８４】
入力装置４２は、データ入力部１８および指示入力部２０の機能を実行する。すなわち、入力装置４２は、ユーザからの指示、ＡＰＩリファレンス２５、およびサンプルプログラム２６を受け付けてプロセッサ４１に送る。
【００８５】
メモリ４３は、プロセッサ４１が各種処理を実行する際の一時メモリに使用される。また、メモリ４３は、ユーザプログラム１１、ＡＰＩ５０、ＡＰＩリファレンス２５、サンプルプログラム２６、通信ＩＦ１４、解析ライブラリ１３などを記憶する。
【００８６】
出力装置４４は、ＡＰＩリファレンス２５およびサンプルプログラム２６を表示装置３０に出力する。通信装置４５は、ＩＤ取得コマンド、バージョン取得コマンド、およびデータ取得コマンドを産業機器３１〜３３に送信し、産業機器３１〜３３から機器ＩＤ、機器バージョン、解析用のデータを受信する。
【００８７】
表示プログラム、作成プログラム、およびユーザプログラム１１は、インストール可能な形式または実行可能な形式のファイルで、コンピュータが読み取り可能な記憶媒体に記憶されてコンピュータプログラムプロダクトとして提供されてもよい。また、表示プログラム、作成プログラム、およびユーザプログラム１１は、インターネットなどのネットワーク経由でＩＰＣ１０に提供されてもよい。なお、ＩＰＣ１０の機能について、一部を専用回路などの専用のハードウェアで実現し、一部をソフトウェアまたはファームウェアで実現するようにしてもよい。
【００８８】
このように、実施の形態では、ＩＰＣ１０に、ＡＰＩ５０の使用方法が記載されたＡＰＩリファレンス２５が入力されると、表示制御部１９が、ＡＰＩリファレンス２５を表示装置３０に表示させている。これにより、ユーザは、ＡＰＩリファレンス２５を参照して、ＡＰＩ５０を用いたライブラリ群を組み込んだユーザプログラム１１を容易に作成することが可能になる。
【００８９】
また、ＩＰＣ１０に、サンプルプログラム２６が入力されると、表示制御部１９が、サンプルプログラム２６を表示装置３０に表示させている。これにより、ユーザは、サンプルプログラム２６を参照して、ユーザプログラム１１を容易に作成することが可能になる。また、機器製造メーカは、解析機能をライブラリ群としてユーザに提供しているので、他社に漏らしたくないノウハウをライブラリ群に詰め込んで、ユーザに提供できる。これにより、ノウハウの機密保持が可能となる。
【００９０】
機器製造メーカは、機器製造メーカのパートナーアプリケーションメーカーである第２社に対して解析機能を有したライブラリ群を提供することにより、第２社が作成したアプリケーションを介して、機器製造メーカが作製したサーボアンプなど産業機器の第３社による採用機会が増加する。また、機器製造メーカは、高度な解析機能を有償オプションとして提供することにより、収益化を見込める。
【００９１】
以上の実施の形態に示した構成は、一例を示すものであり、別の公知の技術と組み合わせることも可能であるし、要旨を逸脱しない範囲で、構成の一部を省略、変更することも可能である。
【符号の説明】
【００９２】
１０，１０Ａ，１０Ｂ  ＩＰＣ、１１  ユーザプログラム、１３  解析ライブラリ、１４  通信ＩＦ、１５  ＦＦＴライブラリ、１６  ウェーブレット変換ライブラリ、１７  周波数特性解析ライブラリ、１８，１８Ａ，１８Ｂ  データ入力部、１９，１９Ａ，１９Ｂ  表示制御部、２０，２０Ａ，２０Ｂ  指示入力部、２１  プログラム作成部、２２  実行制御部、２３  出力部、２５  ＡＰＩリファレンス、２６  サンプルプログラム、３０，３５  表示装置、３１〜３３  産業機器、４１  プロセッサ、４２  入力装置、４３  メモリ、４４  出力装置、４５  通信装置、５０  ＡＰＩ、６１，６２Ａ，６２Ｂ，６３  ソースコード、７１，７２Ａ，７２Ｂ，７３  オブジェクトコード、７５  ライブラリ、８１〜８３  実行コード、１０１  データ解析システム。
【要約】
ＩＰＣ（１０）が、産業機器（３１）からデータを取得して解析する解析ライブラリ（１３）と、解析ライブラリ（１３）を呼び出すＡＰＩ（５０）と、ＡＰＩ（５０）の使用方法が記載されたＡＰＩリファレンス（２５）が入力されると、ＡＰＩリファレンス（２５）を表示装置（３０）に表示させる表示制御部（１９）と、ユーザからの指示に従って、解析ライブラリ（１３）およびＡＰＩ（５０）を用いたユーザプログラム（１１）を作成するプログラム作成部（２１）と、を備える。【図１】
0006945766.tif 000002
【図２】
0006945766.tif 000003
【図３】
0006945766.tif 000004
【図４】
0006945766.tif 000005
【図５】
0006945766.tif 000006
【図６】
0006945766.tif 000007
【図７】
0006945766.tif 000008
【図８】
0006945766.tif 000009
【図９】
0006945766.tif 000010
【図１０】
0006945766.tif 000011