(57)【特許請求の範囲】
【請求項１】
少なくとも１つの入力ピンおよび少なくとも１つの出力ピンをそれぞれに有し、ソフトウェアツールを用いて機能的に行列状に配置された複数のソフト部品と、入力外部装置から入力されたデータを一時的に保存する入力データバッファと、出力外部装置に出力するデータを一時的に保存する出力データバッファと、前記複数のソフト部品を行順および列順に起動させる起動手段と、を備えるソフト部品実行制御装置において、
前記複数のソフト部品間で引き渡されるデータを一時的に保存するソフト部品間データバッファをさらに備え、
前記起動手段は、前記複数のソフト部品を、前記複数のソフト部品に設けられた各入力ピンが前記入力データバッファまたは前記ソフト部品間データバッファの配列構造を有するどの配列要素と接続されているかを表す入力ピン接続情報と、前記入力データバッファまたは前記ソフト部品間データバッファの配列構造を有する各配列要素に含まれる変化フラグと、に基づいて判断される、何れかの入力ピンに入力されたデータが変化した場合に限って起動させることを特徴とするソフト部品実行制御装置。
【請求項２】
前記複数のソフト部品の入力ピンと出力ピンとは、同一ビット長のデータをそれぞれ入出力することを特徴とする請求項１に記載のソフト部品実行制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、例えば、センサ、スイッチ、７セグメントディスプレイおよびブザー等を制御するリアルタイム制御処理に用いられるソフトウェア部品（以下、単に「ソフト部品」という。）の実行を制御する実行制御装置に関する。
【背景技術】
【０００２】
従来、リアルタイム制御系のソフトウェアでは、ソフトウェアの生産効率を向上させるために、ＰＬＣ（Programmable Logic Controller）を使用し、ＰＬＣの制御処理をＳＦＣ（Sequential Function Chart）またはＬＤ（Ladder Diagram）等で記述することによってプログラムを完成させることが多い。
【０００３】
また、ソフトウェア部品の再利用性を促進するものとして、オブジェクト指向技術やＰＬＣのプログラミング言語に関する知識がなくてもソフト部品を配置および接続させることにより、システムのカスタマイズに費やす時間を減少させるものがある（例えば、特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１４１５５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
しかしながら、ＰＬＣは、サイクルタイムと呼ばれる周期でシーケンシャルプログラムを起動するため、プログラムサイズが大きくなるにつれて、処理応答速度が低下してしまうといった課題があった。
【０００６】
一方、特許文献１に開示されたソフト部品実行制御装置は、センサから入力されるデータの変化によりソフト部品が起動されるものの、ソフト部品間においては、入力ピンから入力されるデータに変化がなくてもソフト部品が起動されることがあるために、起動する必要がないソフト部品が起動してしまい、ソフト部品を実行するＣＰＵ（Central Processing Unit）等のプロセッサに負荷をかけてしまうことがあるといった課題があった。
【０００７】
本発明は、上述したような従来の課題を解決するためになされたもので、処理応答速度を従来のものより向上しつつ、ＣＰＵ等のプロセッサにかかる処理負荷を低減することができるソフト部品実行制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００８】
本発明のソフト部品実行制御装置は、少なくとも１つの入力ピンおよび少なくとも１つの出力ピンをそれぞれに有し、ソフトウェアツールを用いて機能的に行列状に配置された複数のソフト部品と、入力外部装置から入力されたデータを一時的に保存する入力データバッファと、出力外部装置に出力するデータを一時的に保存する出力データバッファと、前記複数のソフト部品を行順および列順に起動させる起動手段と、を備えるソフト部品実行制御装置において、前記複数のソフト部品間で引き渡されるデータを一時的に保存するソフト部品間データバッファをさらに備え、前記起動手段は、前記複数のソフト部品を、前記複数のソフト部品に設けられた各入力ピンが前記入力データバッファまたは前記ソフト部品間データバッファの配列構造を有するどの配列要素と接続されているかを表す入力ピン接続情報と、前記入力データバッファまたは前記ソフト部品間データバッファの配列構造を有する各配列要素に含まれる変化フラグと、に基づいて判断される、何れかの入力ピンに入力されたデータが変化した場合に限って起動させるように構成されている。
【０００９】
この構成により、本発明のソフト部品実行制御装置は、何れかの入力ピンに入力されたデータが変化したソフト部品のみを起動させるようにしたため、処理応答速度を従来のものより向上しつつ、ＣＰＵ等のプロセッサにかかる処理負荷を低減することができる。
【００１０】
ところで、ＰＬＣは、前述したように、詳細な機能をＳＦＣまたはＬＤ等で記載する必要があり、ソフト部品の機能がビット論理演算のように単純であり、これらソフト部品を組み合せる必要がある。
【００１１】
したがって、ＰＬＣによって構成される新たなシステムのプログラムを作成するために、再利用が可能な部分を有するプログラムがあったとしても、そのプログラムが新たなシステムにそのまま利用できない場合には、新たなシステムのプログラムを再度作成する必要が生じるため、プログラムの作成効率が低下してしまうことがあった。
【００１２】
そこで、本発明のソフト部品実行制御装置においては、前記複数のソフト部品の入力ピンと出力ピンとは、同一ビット長のデータをそれぞれ入出力するようにしてもよい。
【００１３】
この構成により、本発明のソフト部品実行制御装置は、ソフト部品間の接続を容易にするとともに、各ソフト部品の機能を高機能化してソフト部品の再利用を促進することができるため、プログラムの作成効率を向上させることができる。
【発明の効果】
【００１４】
本発明は、処理応答速度を従来のものより向上しつつ、ＣＰＵ等のプロセッサにかかる処理負荷を低減することができるソフト部品実行制御装置を提供することができる。
【図面の簡単な説明】
【００１５】
【図１】本発明の一実施の形態としてのソフト部品実行制御装置のハードウェア構成図である。
【図２】本発明の一実施の形態としてのソフト部品実行制御装置のソフトウェア構造の一例を示すブロック図である。
【図３】本発明の一実施の形態としてのソフト部品実行制御装置を構成する入力データバッファ、出力データバッファおよびソフト部品間データバッファの各データバッファの構造を示す概念図である。
【図４】本発明の一実施の形態としてのソフト部品実行制御装置によって参照される入力データバッファ定義情報を示す概念図である。
【図５】本発明の一実施の形態としてのソフト部品実行制御装置によって参照される出力データバッファ定義情報を示す概念図である。
【図６】本発明の一実施の形態としてのソフト部品実行制御装置によって参照されるソフト部品起動情報を示す概念図である。
【図７】本発明の一実施の形態としてのソフト部品実行制御装置のソフト部品によって入出力されるデータを示す概念図である。
【図８】本発明の一実施の形態としてのソフト部品実行制御装置によって参照される入力ピン接続情報を示す概念図である。
【図９】本発明の一実施の形態としてのソフト部品実行制御装置によって参照される出力ピン接続情報を示す概念図である。
【図１０】本発明の一実施の形態としてのソフト部品実行制御装置を構成するプロセッサの動作を示すフローチャートである。
【発明を実施するための形態】
【００１６】
以下、本発明の実施の形態について、図面を参照して説明する。本発明の一実施の形態としてのソフト部品実行制御装置を図１に示す。
【００１７】
図１に示すように、本発明の一実施の形態としてのソフト部品実行制御装置１は、ＣＰＵ等のプロセッサ１０と、ＲＡＭ（Random Access Memory）１１と、ＲＯＭ（Read Only Memory）１２と、ハードディスク装置１３と、キーボード装置やポインティングデバイス等よりなる入力装置１４と、液晶ディスプレイ装置等よりなる表示装置１５と、入力ポート１６と、出力ポート１７と、ネットワークモジュール１８とを備えたコンピュータ装置によって構成されている。
【００１８】
ＲＯＭ１２およびハードディスク装置１３には、当該コンピュータ装置をソフト部品実行制御装置１として機能させるためのプログラムが記憶されている。すなわち、プロセッサ１０がＲＡＭ１１を作業領域としてＲＯＭ１２およびハードディスク装置１３に記憶されたプログラムを実行することにより、当該コンピュータ装置は、ソフト部品実行制御装置１として機能し、ＲＡＭ１１またはハードディスク装置１３は、ソフト部品実行制御装置１の記憶部１９として機能する。
【００１９】
入力ポート１６には、ソフト部品実行制御装置１の用途に応じた、各種センサ等の入力外部装置が接続されている。出力ポート１７には、ソフト部品実行制御装置１の用途に応じた、７セグメントディスプレイやデジタルアナログ（以下、単に「Ｄ／Ａ」と記載する。）変換器等の出力外部装置が接続されている。
【００２０】
図２は、プロセッサ１０によって実行されるプログラムの構造の一例を示している。このプログラムを実行することにより、プロセッサ１０は、入力外部装置から入力されたデータを一時的に保存しておくための入力データバッファ３１と、外部装置に出力するデータを一時的に保存しておくための出力データバッファ３２と、行列状に配置された複数のソフト部品３４ａ〜３４ｈ（以下、総称して「ソフト部品３４」ともいう。）と、ソフト部品３４ａ〜３４ｈ間で引き渡されるデータを一時的に保存しておくためのソフト部品間データバッファ３３として機能する。
【００２１】
ソフト部品３４は、少なくとも１つの入力ピン３５と、少なくとも１つの出力ピン３６とを有している。なお、ソフト部品３４が有する入力ピン３５の個数と、出力ピン３６の個数とはソフト部品３４毎に異なっていてもよい。
【００２２】
図３に示すように、入力データバッファ３１、出力データバッファ３２およびソフト部品間データバッファ３３の各データバッファは、配列構造になっており、配列の各要素には配列番号が付されている。
【００２３】
入力データバッファ３１、出力データバッファ３２およびソフト部品間データバッファ３３の各データバッファの各配列要素には、データと、そのデータが変化したか否かを表す変化フラグとが含まれる。本実施の形態において、各データバッファの各配列要素に記憶されるデータのビット長は、３２ビットとする。
【００２４】
記憶部１９には、図４に示すように、入力データバッファ３１の各配列要素に、どの入力外部装置から出力されたデータが入力されるのかを表す入力データバッファ定義情報５０が予め格納されている。
【００２５】
例えば、図４に示した例は、配列番号１の配列要素にはセンサＡから出力されたデータが入力され、配列番号２の配列要素にはセンサＢから出力されたデータが入力され、配列番号Ｎの配列要素にはセンサＮから出力されたデータが入力されることを表している。
【００２６】
また、記憶部１９には、図５に示すように、出力データバッファ３２の各配列要素から、どの出力外部装置にデータが出力されるのかを表す出力データバッファ定義情報５１が予め格納されている。
【００２７】
例えば、図５に示した例は、配列番号１の配列要素から７セグメントディスプレイ１にデータが出力され、配列番号２の配列要素からＤ／Ａ変換器１にデータが出力され、配列番号Ｎの配列要素から７セグメントディスプレイＮにデータが出力されることを表している。
【００２８】
また、記憶部１９には、図６に示すように、ソフト部品３４の起動順序を表すソフト部品起動情報５２が予め格納されている。ソフト部品起動情報５２において、ソフト部品３４は、列順に起動され、同一の列内に複数のソフト部品３４が存在する場合には、行順に起動される。
【００２９】
例えば、図６に示した例は、ソフト部品ａ、ソフト部品ｂ、ソフト部品ｃ、ソフト部品ｄ、ソフト部品ｅ、ソフト部品ｆ、ソフト部品ｇ、ソフト部品ｈの順に起動されることを表している。
【００３０】
ここで、各ソフト部品３４は、何れかの入力ピン３５に入力されたデータが変化した場合に限って起動される。このため、あるソフト部品３４（例えば、ソフト部品３４ｄとする。）の入力ピン３５の接続元が、その他のソフト部品３４（例えば、ソフト部品３４ａとする。）の出力ピン３６であるならば、ソフト部品３４ｄは、ソフト部品３４ａよりも後ろの列に配置される。
【００３１】
図７に示すように、本実施の形態において、ソフト部品３４の入力ピン３５と出力ピン３６を介して入出力されるデータのビット長は、入力データバッファ３１、出力データバッファ３２およびソフト部品間データバッファ３３に記憶されるデータのビット長と同一の３２ビットとする。
【００３２】
このように、入力データバッファ３１、出力データバッファ３２およびソフト部品間データバッファ３３に記憶されるデータのビット長と、ソフト部品３４によって入出力されるデータのビット長とを同一にすることにより、外部装置とソフト部品３４との間やソフト部品３４間を適宜に接続させることが可能となる。
【００３３】
したがって、ソフト部品３４は、複数の入力ピン３５と出力ピン３６を有しているので、多くのデータを扱えることができ、ビット論理演算のような単純な処理のみならず、四則演算はもちろん、最小二乗法やＦＦＴ（Fast Fourier Transform）等の高度な数値演算、および、３２ビット以上の情報を用いたシーケンス制御のような高度な処理を実行することができ、ソフト部品３４の再利用を促進することができる。
【００３４】
また、記憶部１９には、図８に示すように、各ソフト部品３４に設けられた各入力ピン３５が入力データバッファ３１またはソフト部品間データバッファ３３のどの配列番号の配列要素と接続されているかを表す入力ピン接続情報５３が格納されている。入力ピン接続情報５３は、ソフト部品３４毎に存在する。
【００３５】
また、記憶部１９には、図９に示すように、各ソフト部品３４に設けられた各出力ピン３６が出力データバッファ３２またはソフト部品間データバッファ３３のどの配列番号の配列要素と接続されているかを表す出力ピン接続情報５４が格納されている。出力ピン接続情報５３は、ソフト部品３４毎に存在する。
【００３６】
ここで、各ソフト部品３４の配置やソフト部品３４間の入力ピン３５と出力ピン３６との接続は、汎用的なパーソナルコンピュータによって実行されるソフトウェアツールを用いて行うのが一般的である。
【００３７】
具体的には、このソフトウェアツールによって、図４に示した入力データバッファ定義情報５０、図５に示した出力データバッファ定義情報５１、図６に示したソフト部品起動情報５２、図８に示した各ソフト部品３４の入力ピン接続情報５３、および、図９に示した各ソフト部品３４の出力ピン接続情報５４が作成される。
【００３８】
すなわち、ソフト部品実行制御装置１は、このソフトウェアツールによって作成された情報５０〜５４を参照しながら、入力データバッファ３１、出力データバッファ３２およびソフト部品間データバッファ３３の各配列要素を更新していくことにより、各ソフト部品３４を実行していくようになっている。
【００３９】
このように構成されたソフト部品実行制御装置１を構成するプロセッサ１０の動作について図１０を参照しながら説明する。
【００４０】
なお、以下に説明するプロセッサ１０の動作は、図６に示したように、行数が３、列数が３の行列状にソフト部品３４が配置されている場合を例として説明する。また、以下に説明するプロセッサ１０の動作は、一定の時間間隔または入力外部装置から割り込み信号が入力されたタイミングで実行される。
【００４１】
まず、プロセッサ１０は、入力データバッファ定義情報５０に基づいて、入力データバッファ３１を更新する（ステップＳ１）。
【００４２】
例えば、プロセッサ１０は、入力データバッファ定義情報５０において、まず、センサＡからデータを入力して配列番号１の配列要素にデータを格納する。その際に、以前のデータ内容と相違があれば、プロセッサ１０は、配列番号１の配列要素の変化フラグをオンに設定する。
【００４３】
同様に、プロセッサ１０は、センサＢからデータを入力して配列番号２の配列要素にデータを格納する。その際に、以前のデータ内容と相違があれば、プロセッサ１０は、配列番号２の配列要素の変化フラグをオンに設定する。以降、同様に、プロセッサ１０は、入力データバッファ定義情報５０に基づいて、配列番号Ｎまでデータを入力する。
【００４４】
次に、プロセッサ１０は、ソフト部品起動前処理を実行する（ステップＳ２）。具体的には、プロセッサ１０は、出力データバッファ３２の全ての配列要素の変化フラグと、ソフト部品間データバッファ３３の全ての配列要素の変化フラグをオフに設定する。
【００４５】
次に、プロセッサ１０は、各ソフト部品３４を識別する列カウント変数としてのｉを１に初期化し（ステップＳ３）、行カウント変数としてのｊを１に初期化する（ステップＳ４）。以降、プロセッサ１０は、ｊ行ｉ列に配置されたソフト部品３４の入力ピン３５のデータが変化したか否かを判断し、入力ピン３５のデータが変化したソフト部品３４を起動させて行く。
【００４６】
まず、プロセッサ１０は、ｊ行ｉ列にソフト部品３４が配置されているか否かをソフト部品起動情報５２に基づいて判断する（ステップＳ５）。ここで、ｊ行ｉ列にソフト部品３４が配置されていないと判断した場合には、プロセッサ１０は、後述するステップＳ９を実行する。
【００４７】
一方、ｊ行ｉ列にソフト部品３４が配置されていると判断した場合には、プロセッサ１０は、ｊ行ｉ列に配置されたソフト部品３４の何れかの入力ピン３５に入力されたデータが変化しているか否かを、入力ピン接続情報５３と、入力データバッファ３１またはソフト部品間データバッファ３３の配列要素の変化フラグに基づいて判断する（ステップＳ６）。
【００４８】
例えば、プロセッサ１０は、ソフト部品３４の入力ピン接続情報５３が図８である場合、入力ピン番号１に対応する入力ピン３５に、入力データバッファの配列番号１００の配列要素からデータを入力するが、その際に配列番号１００の配列要素の変化フラグがオンかどうかを判断する。
【００４９】
同様に、プロセッサ１０は、入力ピン番号２に対応する入力ピン３５に、ソフト部品間データバッファ３３の配列番号１の配列要素からデータを入力するが、その際に配列番号１の配列要素の変化フラグがオンかどうかを判断する。このように、プロセッサ１０は、各入力ピン３５に対して同様の処理を行う。
【００５０】
ここで、ｊ行ｉ列に配置されたソフト部品３４の全ての入力ピン３５に入力されたデータが変化していないと判断した場合には、プロセッサ１０は、ステップＳ９を実行する。
【００５１】
一方、ｊ行ｉ列に配置されたソフト部品３４の何れかの入力ピン３５に入力されたデータが変化していると判断した場合には、プロセッサ１０は、ｊ行ｉ列に配置されたソフト部品３４を起動する（ステップＳ７）。
【００５２】
次に、プロセッサ１０は、出力ピン接続情報５４を参照し、ソフト部品間データバッファ３３または出力データバッファ３２の配列要素のデータを更新する（ステップＳ８）。
【００５３】
例えば、プロセッサ１０は、ソフト部品３４の出力ピン接続情報５４が図９である場合、ｊ行ｉ列に配置されたソフト部品３４を実行し、出力ピン番号１に対応する出力ピン３６から出力されるデータを出力データバッファ３２の配列番号２００の配列要素に格納し、データが以前と相違があれば変化フラグをオンに設定する。
【００５４】
同様に、プロセッサ１０は、出力ピン番号２に対応する出力ピン３６から出力されるデータをソフト部品間データバッファ３３の配列番号１００の配列要素に格納し、データが以前と相違があれば変化フラグをオンに設定する。このように、プロセッサ１０は、各出力ピン３６に対して同様の処理を行う。
【００５５】
次に、プロセッサ１０は、ｊをインクリメントし（ステップＳ９）、ｊが行数を超えているか否かを判断する（ステップＳ１０）。ここで、ｊが行数を超えていないと判断した場合には、プロセッサ１０は、ステップＳ５を実行する。
【００５６】
一方、ｊが行数を超えていると判断した場合には、プロセッサ１０は、ｉをインクリメントし（ステップＳ１１）、ｉが列数を超えているか否かを判断する（ステップＳ１２）。ここで、ｉが列数を超えていないと判断した場合には、プロセッサ１０は、ステップＳ４を実行する。
【００５７】
一方、ｉが列数を超えていると判断した場合には、プロセッサ１０は、ソフト部品起動後処理を実行する（ステップＳ１３）。具体的には、プロセッサ１０は、出力データバッファ３２の変化フラグがオンになっている配列要素のデータのみを出力データバッファ定義情報５１に基づいて、出力外部装置に出力する。
【００５８】
以上に説明したように、本発明の一実施の形態のソフト部品実行制御装置１は、何れかの入力ピン３５に入力されたデータが変化したソフト部品３４のみを起動させるようにしたため、処理応答速度を従来のものより向上しつつ、ＣＰＵ等のプロセッサ１０にかかる処理負荷を低減することができる。
【００５９】
また、本発明の一実施の形態のソフト部品実行制御装置１は、ソフト部品３４の入力ピン３５と出力ピン３６とが同一ビット長のデータをそれぞれ入出力することにより、ソフト部品３４間の接続を容易にするとともに、各ソフト部品３４の機能を高機能化してソフト部品３４の再利用を促進することができるため、プログラムの作成効率を向上させることができる。
【符号の説明】
【００６０】
１  ソフト部品実行制御装置
１０  プロセッサ
１１  ＲＡＭ
１２  ＲＯＭ
１３  ハードディスク装置
１４  入力装置
１５  表示装置
１６  入力ポート
１７  出力ポート
１８  ネットワークモジュール
１９  記憶部
３１  入力データバッファ
３２  出力データバッファ
３３  ソフト部品間データバッファ
３４、３４ａ〜３４ｈ  ソフト部品
３５  入力ピン
３６  出力ピン
５０  入力データバッファ定義情報
５１  出力データバッファ定義情報
５２  ソフト部品起動情報
５３  入力ピン接続情報
５４  出力ピン接続情報
【図１】
0005684518.tif 000002
【図２】
0005684518.tif 000003
【図３】
0005684518.tif 000004
【図４】
0005684518.tif 000005
【図５】
0005684518.tif 000006
【図６】
0005684518.tif 000007
【図７】
0005684518.tif 000008
【図８】
0005684518.tif 000009
【図９】
0005684518.tif 000010
【図１０】
0005684518.tif 000011