説明

ソフト部品実行制御装置

【課題】処理応答速度を従来のものより向上しつつ、CPU等のプロセッサにかかる処理負荷を低減することができるソフト部品実行制御装置を提供すること。
【解決手段】少なくとも1つの入力ピン35および少なくとも1つの出力ピン36を有する複数のソフト部品34a〜34hを備え、ソフト部品34a〜34hを行列状に配置し、ソフト部品34a〜34hを行順および列順に起動させる場合に、各ソフト部品34a〜34hは、何れかの入力ピン35に入力されたデータが変化した場合に限って起動される。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、例えば、センサ、スイッチ、7セグメントディスプレイおよびブザー等を制御するリアルタイム制御処理に用いられるソフトウェア部品(以下、単に「ソフト部品」という。)の実行を制御する実行制御装置に関する。
【背景技術】
【0002】
従来、リアルタイム制御系のソフトウェアでは、ソフトウェアの生産効率を向上させるために、PLC(Programmable Logic Controller)を使用し、PLCの制御処理をSFC(Sequential Function Chart)またはLD(Ladder Diagram)等で記述することによってプログラムを完成させることが多い。
【0003】
また、ソフトウェア部品の再利用性を促進するものとして、オブジェクト指向技術やPLCのプログラミング言語に関する知識がなくてもソフト部品を配置および接続させることにより、システムのカスタマイズに費やす時間を減少させるものがある(例えば、特許文献1参照)。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特開2001−14155号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
しかしながら、PLCは、サイクルタイムと呼ばれる周期でシーケンシャルプログラムを起動するため、プログラムサイズが大きくなるにつれて、処理応答速度が低下してしまうといった課題があった。
【0006】
一方、特許文献1に開示されたソフト部品実行制御装置は、センサから入力されるデータの変化によりソフト部品が起動されるものの、ソフト部品間においては、入力ピンから入力されるデータに変化がなくてもソフト部品が起動されることがあるために、起動する必要がないソフト部品が起動してしまい、ソフト部品を実行するCPU(Central Processing Unit)等のプロセッサに負荷をかけてしまうことがあるといった課題があった。
【0007】
本発明は、上述したような従来の課題を解決するためになされたもので、処理応答速度を従来のものより向上しつつ、CPU等のプロセッサにかかる処理負荷を低減することができるソフト部品実行制御装置を提供することを目的とする。
【課題を解決するための手段】
【0008】
本発明のソフト部品実行制御装置は、少なくとも1つの入力ピンおよび少なくとも1つの出力ピンを有する複数のソフト部品を備え、前記ソフト部品を行列状に配置し、前記ソフト部品間の入力ピンと出力ピンとを接続し、前記ソフト部品を行順および列順に起動させるソフト部品実行制御装置において、前記各ソフト部品は、該ソフト部品の何れかの入力ピンに入力されたデータが変化した場合に限って起動されるように構成されている。
【0009】
この構成により、本発明のソフト部品実行制御装置は、何れかの入力ピンに入力されたデータが変化したソフト部品のみを起動させるようにしたため、処理応答速度を従来のものより向上しつつ、CPU等のプロセッサにかかる処理負荷を低減することができる。
【0010】
ところで、PLCは、前述したように、詳細な機能をSFCまたはLD等で記載する必要があり、ソフト部品の機能がビット論理演算のように単純であり、これらソフト部品を組み合せる必要がある。
【0011】
したがって、PLCによって構成される新たなシステムのプログラムを作成するために、再利用が可能な部分を有するプログラムがあったとしても、そのプログラムが新たなシステムにそのまま利用できない場合には、新たなシステムのプログラムを再度作成する必要が生じるため、プログラムの作成効率が低下してしまうことがあった。
【0012】
そこで、本発明のソフト部品実行制御装置においては、前記ソフト部品の入力ピンと出力ピンとは、同一ビット長のデータをそれぞれ入出力するようにしてもよい。
【0013】
この構成により、本発明のソフト部品実行制御装置は、ソフト部品間の接続を容易にするとともに、各ソフト部品の機能を高機能化してソフト部品の再利用を促進することができるため、プログラムの作成効率を向上させることができる。
【発明の効果】
【0014】
本発明は、処理応答速度を従来のものより向上しつつ、CPU等のプロセッサにかかる処理負荷を低減することができるソフト部品実行制御装置を提供することができる。
【図面の簡単な説明】
【0015】
【図1】本発明の一実施の形態としてのソフト部品実行制御装置のハードウェア構成図である。
【図2】本発明の一実施の形態としてのソフト部品実行制御装置のソフトウェア構造の一例を示すブロック図である。
【図3】本発明の一実施の形態としてのソフト部品実行制御装置を構成する入力データバッファ、出力データバッファおよびソフト部品間データバッファの各データバッファの構造を示す概念図である。
【図4】本発明の一実施の形態としてのソフト部品実行制御装置によって参照される入力データバッファ定義情報を示す概念図である。
【図5】本発明の一実施の形態としてのソフト部品実行制御装置によって参照される出力データバッファ定義情報を示す概念図である。
【図6】本発明の一実施の形態としてのソフト部品実行制御装置によって参照されるソフト部品起動情報を示す概念図である。
【図7】本発明の一実施の形態としてのソフト部品実行制御装置のソフト部品によって入出力されるデータを示す概念図である。
【図8】本発明の一実施の形態としてのソフト部品実行制御装置によって参照される入力ピン接続情報を示す概念図である。
【図9】本発明の一実施の形態としてのソフト部品実行制御装置によって参照される出力ピン接続情報を示す概念図である。
【図10】本発明の一実施の形態としてのソフト部品実行制御装置を構成するプロセッサの動作を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下、本発明の実施の形態について、図面を参照して説明する。本発明の一実施の形態としてのソフト部品実行制御装置を図1に示す。
【0017】
図1に示すように、本発明の一実施の形態としてのソフト部品実行制御装置1は、CPU等のプロセッサ10と、RAM(Random Access Memory)11と、ROM(Read Only Memory)12と、ハードディスク装置13と、キーボード装置やポインティングデバイス等よりなる入力装置14と、液晶ディスプレイ装置等よりなる表示装置15と、入力ポート16と、出力ポート17と、ネットワークモジュール18とを備えたコンピュータ装置によって構成されている。
【0018】
ROM12およびハードディスク装置13には、当該コンピュータ装置をソフト部品実行制御装置1として機能させるためのプログラムが記憶されている。すなわち、プロセッサ10がRAM11を作業領域としてROM12およびハードディスク装置13に記憶されたプログラムを実行することにより、当該コンピュータ装置は、ソフト部品実行制御装置1として機能し、RAM11またはハードディスク装置13は、ソフト部品実行制御装置1の記憶部19として機能する。
【0019】
入力ポート16には、ソフト部品実行制御装置1の用途に応じた、各種センサ等の入力外部装置が接続されている。出力ポート17には、ソフト部品実行制御装置1の用途に応じた、7セグメントディスプレイやデジタルアナログ(以下、単に「D/A」と記載する。)変換器等の出力外部装置が接続されている。
【0020】
図2は、プロセッサ10によって実行されるプログラムの構造の一例を示している。このプログラムを実行することにより、プロセッサ10は、入力外部装置から入力されたデータを一時的に保存しておくための入力データバッファ31と、外部装置に出力するデータを一時的に保存しておくための出力データバッファ32と、行列状に配置された複数のソフト部品34a〜34h(以下、総称して「ソフト部品34」ともいう。)と、ソフト部品34a〜34h間で引き渡されるデータを一時的に保存しておくためのソフト部品間データバッファ33として機能する。
【0021】
ソフト部品34は、少なくとも1つの入力ピン35と、少なくとも1つの出力ピン36とを有している。なお、ソフト部品34が有する入力ピン35の個数と、出力ピン36の個数とはソフト部品34毎に異なっていてもよい。
【0022】
図3に示すように、入力データバッファ31、出力データバッファ32およびソフト部品間データバッファ33の各データバッファは、配列構造になっており、配列の各要素には配列番号が付されている。
【0023】
入力データバッファ31、出力データバッファ32およびソフト部品間データバッファ33の各データバッファの各配列要素には、データと、そのデータが変化したか否かを表す変化フラグとが含まれる。本実施の形態において、各データバッファの各配列要素に記憶されるデータのビット長は、32ビットとする。
【0024】
記憶部19には、図4に示すように、入力データバッファ31の各配列要素に、どの入力外部装置から出力されたデータが入力されるのかを表す入力データバッファ定義情報50が予め格納されている。
【0025】
例えば、図4に示した例は、配列番号1の配列要素にはセンサAから出力されたデータが入力され、配列番号2の配列要素にはセンサBから出力されたデータが入力され、配列番号Nの配列要素にはセンサNから出力されたデータが入力されることを表している。
【0026】
また、記憶部19には、図5に示すように、出力データバッファ32の各配列要素から、どの出力外部装置にデータが出力されるのかを表す出力データバッファ定義情報51が予め格納されている。
【0027】
例えば、図5に示した例は、配列番号1の配列要素から7セグメントディスプレイ1にデータが出力され、配列番号2の配列要素からD/A変換器1にデータが出力され、配列番号Nの配列要素から7セグメントディスプレイNにデータが出力されることを表している。
【0028】
また、記憶部19には、図6に示すように、ソフト部品34の起動順序を表すソフト部品起動情報52が予め格納されている。ソフト部品起動情報52において、ソフト部品34は、列順に起動され、同一の列内に複数のソフト部品34が存在する場合には、行順に起動される。
【0029】
例えば、図6に示した例は、ソフト部品a、ソフト部品b、ソフト部品c、ソフト部品d、ソフト部品e、ソフト部品f、ソフト部品g、ソフト部品hの順に起動されることを表している。
【0030】
ここで、各ソフト部品34は、何れかの入力ピン35に入力されたデータが変化した場合に限って起動される。このため、あるソフト部品34(例えば、ソフト部品34dとする。)の入力ピン35の接続元が、その他のソフト部品34(例えば、ソフト部品34aとする。)の出力ピン36であるならば、ソフト部品34dは、ソフト部品34aよりも後ろの列に配置される。
【0031】
図7に示すように、本実施の形態において、ソフト部品34の入力ピン35と出力ピン36を介して入出力されるデータのビット長は、入力データバッファ31、出力データバッファ32およびソフト部品間データバッファ33に記憶されるデータのビット長と同一の32ビットとする。
【0032】
このように、入力データバッファ31、出力データバッファ32およびソフト部品間データバッファ33に記憶されるデータのビット長と、ソフト部品34によって入出力されるデータのビット長とを同一にすることにより、外部装置とソフト部品34との間やソフト部品34間を適宜に接続させることが可能となる。
【0033】
したがって、ソフト部品34は、複数の入力ピン35と出力ピン36を有しているので、多くのデータを扱えることができ、ビット論理演算のような単純な処理のみならず、四則演算はもちろん、最小二乗法やFFT(Fast Fourier Transform)等の高度な数値演算、および、32ビット以上の情報を用いたシーケンス制御のような高度な処理を実行することができ、ソフト部品34の再利用を促進することができる。
【0034】
また、記憶部19には、図8に示すように、各ソフト部品34に設けられた各入力ピン35が入力データバッファ31またはソフト部品間データバッファ33のどの配列番号の配列要素と接続されているかを表す入力ピン接続情報53が格納されている。入力ピン接続情報53は、ソフト部品34毎に存在する。
【0035】
また、記憶部19には、図9に示すように、各ソフト部品34に設けられた各出力ピン36が出力データバッファ32またはソフト部品間データバッファ33のどの配列番号の配列要素と接続されているかを表す出力ピン接続情報54が格納されている。出力ピン接続情報53は、ソフト部品34毎に存在する。
【0036】
ここで、各ソフト部品34の配置やソフト部品34間の入力ピン35と出力ピン36との接続は、汎用的なパーソナルコンピュータによって実行されるソフトウェアツールを用いて行うのが一般的である。
【0037】
具体的には、このソフトウェアツールによって、図4に示した入力データバッファ定義情報50、図5に示した出力データバッファ定義情報51、図6に示したソフト部品起動情報52、図8に示した各ソフト部品34の入力ピン接続情報53、および、図9に示した各ソフト部品34の出力ピン接続情報54が作成される。
【0038】
すなわち、ソフト部品実行制御装置1は、このソフトウェアツールによって作成された情報50〜54を参照しながら、入力データバッファ31、出力データバッファ32およびソフト部品間データバッファ33の各配列要素を更新していくことにより、各ソフト部品34を実行していくようになっている。
【0039】
このように構成されたソフト部品実行制御装置1を構成するプロセッサ10の動作について図10を参照しながら説明する。
【0040】
なお、以下に説明するプロセッサ10の動作は、図6に示したように、行数が3、列数が3の行列状にソフト部品34が配置されている場合を例として説明する。また、以下に説明するプロセッサ10の動作は、一定の時間間隔または入力外部装置から割り込み信号が入力されたタイミングで実行される。
【0041】
まず、プロセッサ10は、入力データバッファ定義情報50に基づいて、入力データバッファ31を更新する(ステップS1)。
【0042】
例えば、プロセッサ10は、入力データバッファ定義情報50において、まず、センサAからデータを入力して配列番号1の配列要素にデータを格納する。その際に、以前のデータ内容と相違があれば、プロセッサ10は、配列番号1の配列要素の変化フラグをオンに設定する。
【0043】
同様に、プロセッサ10は、センサBからデータを入力して配列番号2の配列要素にデータを格納する。その際に、以前のデータ内容と相違があれば、プロセッサ10は、配列番号2の配列要素の変化フラグをオンに設定する。以降、同様に、プロセッサ10は、入力データバッファ定義情報50に基づいて、配列番号Nまでデータを入力する。
【0044】
次に、プロセッサ10は、ソフト部品起動前処理を実行する(ステップS2)。具体的には、プロセッサ10は、出力データバッファ32の全ての配列要素の変化フラグと、ソフト部品間データバッファ33の全ての配列要素の変化フラグをオフに設定する。
【0045】
次に、プロセッサ10は、各ソフト部品34を識別する列カウント変数としてのiを1に初期化し(ステップS3)、行カウント変数としてのjを1に初期化する(ステップS4)。以降、プロセッサ10は、j行i列に配置されたソフト部品34の入力ピン35のデータが変化したか否かを判断し、入力ピン35のデータが変化したソフト部品34を起動させて行く。
【0046】
まず、プロセッサ10は、j行i列にソフト部品34が配置されているか否かをソフト部品起動情報52に基づいて判断する(ステップS5)。ここで、j行i列にソフト部品34が配置されていないと判断した場合には、プロセッサ10は、後述するステップS9を実行する。
【0047】
一方、j行i列にソフト部品34が配置されていると判断した場合には、プロセッサ10は、j行i列に配置されたソフト部品34の何れかの入力ピン35に入力されたデータが変化しているか否かを、入力ピン接続情報53と、入力データバッファ31またはソフト部品間データバッファ33の配列要素の変化フラグに基づいて判断する(ステップS6)。
【0048】
例えば、プロセッサ10は、ソフト部品34の入力ピン接続情報53が図8である場合、入力ピン番号1に対応する入力ピン35に、入力データバッファの配列番号100の配列要素からデータを入力するが、その際に配列番号100の配列要素の変化フラグがオンかどうかを判断する。
【0049】
同様に、プロセッサ10は、入力ピン番号2に対応する入力ピン35に、ソフト部品間データバッファ33の配列番号1の配列要素からデータを入力するが、その際に配列番号1の配列要素の変化フラグがオンかどうかを判断する。このように、プロセッサ10は、各入力ピン35に対して同様の処理を行う。
【0050】
ここで、j行i列に配置されたソフト部品34の全ての入力ピン35に入力されたデータが変化していないと判断した場合には、プロセッサ10は、ステップS9を実行する。
【0051】
一方、j行i列に配置されたソフト部品34の何れかの入力ピン35に入力されたデータが変化していると判断した場合には、プロセッサ10は、j行i列に配置されたソフト部品34を起動する(ステップS7)。
【0052】
次に、プロセッサ10は、出力ピン接続情報54を参照し、ソフト部品間データバッファ33または出力データバッファ32の配列要素のデータを更新する(ステップS8)。
【0053】
例えば、プロセッサ10は、ソフト部品34の出力ピン接続情報54が図9である場合、j行i列に配置されたソフト部品34を実行し、出力ピン番号1に対応する出力ピン36から出力されるデータを出力データバッファ32の配列番号200の配列要素に格納し、データが以前と相違があれば変化フラグをオンに設定する。
【0054】
同様に、プロセッサ10は、出力ピン番号2に対応する出力ピン36から出力されるデータをソフト部品間データバッファ33の配列番号100の配列要素に格納し、データが以前と相違があれば変化フラグをオンに設定する。このように、プロセッサ10は、各出力ピン36に対して同様の処理を行う。
【0055】
次に、プロセッサ10は、jをインクリメントし(ステップS9)、jが行数を超えているか否かを判断する(ステップS10)。ここで、jが行数を超えていないと判断した場合には、プロセッサ10は、ステップS5を実行する。
【0056】
一方、jが行数を超えていると判断した場合には、プロセッサ10は、iをインクリメントし(ステップS11)、iが列数を超えているか否かを判断する(ステップS12)。ここで、iが列数を超えていないと判断した場合には、プロセッサ10は、ステップS4を実行する。
【0057】
一方、iが列数を超えていると判断した場合には、プロセッサ10は、ソフト部品起動後処理を実行する(ステップS13)。具体的には、プロセッサ10は、出力データバッファ32の変化フラグがオンになっている配列要素のデータのみを出力データバッファ定義情報51に基づいて、出力外部装置に出力する。
【0058】
以上に説明したように、本発明の一実施の形態のソフト部品実行制御装置1は、何れかの入力ピン35に入力されたデータが変化したソフト部品34のみを起動させるようにしたため、処理応答速度を従来のものより向上しつつ、CPU等のプロセッサ10にかかる処理負荷を低減することができる。
【0059】
また、本発明の一実施の形態のソフト部品実行制御装置1は、ソフト部品34の入力ピン35と出力ピン36とが同一ビット長のデータをそれぞれ入出力することにより、ソフト部品34間の接続を容易にするとともに、各ソフト部品34の機能を高機能化してソフト部品34の再利用を促進することができるため、プログラムの作成効率を向上させることができる。
【符号の説明】
【0060】
1 ソフト部品実行制御装置
10 プロセッサ
11 RAM
12 ROM
13 ハードディスク装置
14 入力装置
15 表示装置
16 入力ポート
17 出力ポート
18 ネットワークモジュール
19 記憶部
31 入力データバッファ
32 出力データバッファ
33 ソフト部品間データバッファ
34、34a〜34h ソフト部品
35 入力ピン
36 出力ピン
50 入力データバッファ定義情報
51 出力データバッファ定義情報
52 ソフト部品起動情報
53 入力ピン接続情報
54 出力ピン接続情報

【特許請求の範囲】
【請求項1】
少なくとも1つの入力ピンおよび少なくとも1つの出力ピンを有する複数のソフト部品を備え、前記ソフト部品を行列状に配置し、前記ソフト部品を行順および列順に起動させるソフト部品実行制御装置において、
前記各ソフト部品は、該ソフト部品の何れかの入力ピンに入力されたデータが変化した場合に限って起動されることを特徴とするソフト部品実行制御装置。
【請求項2】
前記ソフト部品の入力ピンと出力ピンとは、同一ビット長のデータをそれぞれ入出力することを特徴とする請求項1に記載のソフト部品実行制御装置。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2012−63995(P2012−63995A)
【公開日】平成24年3月29日(2012.3.29)
【国際特許分類】
【出願番号】特願2010−207900(P2010−207900)
【出願日】平成22年9月16日(2010.9.16)
【出願人】(000004330)日本無線株式会社 (1,186)
【出願人】(000189486)上田日本無線株式会社 (29)