JP2011002928A - 制御演算コンポーネントとコンポーネント型制御システム - Google Patents
制御演算コンポーネントとコンポーネント型制御システム Download PDFInfo
- Publication number
- JP2011002928A JP2011002928A JP2009144124A JP2009144124A JP2011002928A JP 2011002928 A JP2011002928 A JP 2011002928A JP 2009144124 A JP2009144124 A JP 2009144124A JP 2009144124 A JP2009144124 A JP 2009144124A JP 2011002928 A JP2011002928 A JP 2011002928A
- Authority
- JP
- Japan
- Prior art keywords
- component
- input
- trigger
- input port
- message
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Landscapes
- Stored Programmes (AREA)
Abstract
【課題】種々のトリガ条件の要求に応じることができ、コンポーネントを多様な場面で共通利用できる制御演算コンポーネントとコンポーネント型制御システムを提供する。
【解決手段】本発明のコンポーネント型制御システムに用いられる制御演算コンポーネント1はトリガ条件設定部6を有し、トリガ条件入力部7が入力されるトリガ条件情報70に応じてトリガ選択部64とトリガ選択部65によるトリガ条件の選択を切り替える。トリガ選択部64は、トリガ条件情報70に応じて入力ポート111への入力信号をトリガ加法合成部67に接続するか、トリガ乗法合成部68に接続するか、どちらにも接続しないかの選択を切り替える。また、トリガ選択部65は、トリガ条件情報70に応じて入力ポート112への入力信号をトリガ加法合成部67に接続するか、トリガ乗法合成部68に接続するか、どちらにも接続しないかの選択を切り替える。
【選択図】図11
【解決手段】本発明のコンポーネント型制御システムに用いられる制御演算コンポーネント1はトリガ条件設定部6を有し、トリガ条件入力部7が入力されるトリガ条件情報70に応じてトリガ選択部64とトリガ選択部65によるトリガ条件の選択を切り替える。トリガ選択部64は、トリガ条件情報70に応じて入力ポート111への入力信号をトリガ加法合成部67に接続するか、トリガ乗法合成部68に接続するか、どちらにも接続しないかの選択を切り替える。また、トリガ選択部65は、トリガ条件情報70に応じて入力ポート112への入力信号をトリガ加法合成部67に接続するか、トリガ乗法合成部68に接続するか、どちらにも接続しないかの選択を切り替える。
【選択図】図11
Description
本発明は、コンポーネント型制御システムに係り、特にメッセージ駆動方式のコンポーネントを用いた制御演算コンポーネントとコンポーネント型制御システムに関する。
近年、産業機械、ロボット、自動車機器、情報機器、デジタルAV機器等を制御する組込み制御システムは複雑度が急速に増大しており、開発効率の向上が求められている。特に、制御システムに含まれる組込みコンピュータ上で実行する組込みソフトウェアの開発効率の向上が求められている。
開発効率向上の手法の一つに、コンポーネント指向開発手法がある。コンポーネント指向開発では、ソフトウェアを「ソフトウェアコンポーネント」とし、汎用性のある機能ブロックに分割して開発し、複数のソフトウェアコンポーネントを組み合わせて制御システムを構築する。
開発効率向上の手法の一つに、コンポーネント指向開発手法がある。コンポーネント指向開発では、ソフトウェアを「ソフトウェアコンポーネント」とし、汎用性のある機能ブロックに分割して開発し、複数のソフトウェアコンポーネントを組み合わせて制御システムを構築する。
これをコンポーネント型制御システムという。一旦開発したソフトウェアコンポーネントを複数の機器の開発に共通に用いることにより、開発量を減らして開発効率を高めている。
ソフトウェアコンポーネントは、具体的にはソフトウェアの機能ブロックに対する入出力インターフェースを統一し、ソフトウェア開発ツールと、フレームワーク、ランタイム環境、ミドルウェア等と称される実行時に併用されるソフトウェアのサポートにより、機能ブロックを自由かつ容易に組み合わせてシステムを構築できるようにしたものである。
また、信頼性、消費電力、処理速度、実装サイズなどの要求を満たすため、ソフトウェアコンポーネントを複数のコンピュータ上で実行し、通信ネットワークで接続して動作させる分散制御システムを構築することもある。
ソフトウェアコンポーネントは、具体的にはソフトウェアの機能ブロックに対する入出力インターフェースを統一し、ソフトウェア開発ツールと、フレームワーク、ランタイム環境、ミドルウェア等と称される実行時に併用されるソフトウェアのサポートにより、機能ブロックを自由かつ容易に組み合わせてシステムを構築できるようにしたものである。
また、信頼性、消費電力、処理速度、実装サイズなどの要求を満たすため、ソフトウェアコンポーネントを複数のコンピュータ上で実行し、通信ネットワークで接続して動作させる分散制御システムを構築することもある。
ソフトウェアコンポーネントは、入力ポートおよび出力ポートと呼ばれる入出力機能を1つないし複数備えており、他のソフトウェアコンポーネントと仮想的な通信路を介してデータを交換して動作する。ソフトウェアコンポーネントを起動するタイミングの制御方法、すなわちトリガ方法としてはメッセージ駆動方式が知られている。
メッセージ駆動方式は、他のソフトウェアコンポーネントからデータが入力ポートに着信した際、当該ソフトウェアコンポーネントが備える演算処理を起動する。メッセージ駆動方式では、データ更新のタイミングとコンポーネントが起動されるタイミングとが一致するので、マルチタスク処理や分散処理に適している。
メッセージ駆動方式は、他のソフトウェアコンポーネントからデータが入力ポートに着信した際、当該ソフトウェアコンポーネントが備える演算処理を起動する。メッセージ駆動方式では、データ更新のタイミングとコンポーネントが起動されるタイミングとが一致するので、マルチタスク処理や分散処理に適している。
メッセージ駆動方式に対応しているソフトウェアコンポーネントおよびコンポーネント型制御システムの従来の例としては、自動車の電子制御ユニットの制御ソフト開発のためのソフトウェア標準AUTOSAR(団体名)の技術が開示されている(例えば、非特許文献1)。
また、非同期メッセージ方式のコンポーネントフレームワークの技術が開示されている(例えば、非特許文献2)。
また、必ずしもメッセージ駆動方式ではないが、データフロー図を用いたコンピュータプログラム方法の技術が開示されている(例えば、特許文献1)。
また、非同期メッセージ方式のコンポーネントフレームワークの技術が開示されている(例えば、非特許文献2)。
また、必ずしもメッセージ駆動方式ではないが、データフロー図を用いたコンピュータプログラム方法の技術が開示されている(例えば、特許文献1)。
なお、ソフトウェアコンポーネントと同様の機能をハードウェアで実現することもできるが、その場合はハードウェアコンポーネントと称される。ハードウェアコンポーネントの機能は、ソフトウェアコンポーネントにおけるソフトウェアとそれを実行するコンピュータの代わりに電子回路で実現される。ハードウェアコンポーネント間の接続は、ソフトウェアコンポーネントに置ける仮想通信路の代わりに、ネットワーク,シリアル通信回路などの実際の通信回路で接続される。
また、ソフトウェアを搭載した小型コンピュータと通信回路とを組み合わせたものをハードウェアコンポーネントとして扱うこともできる。
以下、本明細書では、ソフトウェアコンポーネントとハードウェアコンポーネントの両者の総称としてコンポーネントとして記載する。
また、ソフトウェアを搭載した小型コンピュータと通信回路とを組み合わせたものをハードウェアコンポーネントとして扱うこともできる。
以下、本明細書では、ソフトウェアコンポーネントとハードウェアコンポーネントの両者の総称としてコンポーネントとして記載する。
ソフトウェア開発を効率化するAUTOSAR, 日経Automotive Technology, 2006/10号,pp.140-143
人間共生ロボット "EMIEW 2" のコンポーネント指向ソフトウェア構造, 日本機械学会ロボティクス・メカトロニクス講演会'08, 2P1-I04
メッセージ駆動方式のコンポーネントを用いたコンポーネント型制御システムでは、コンポーネントが有する複数の入力ポートのいずれかにメッセージが着信したときにコンポーネントを起動するのが最も基本的な起動方法である。
しかしながら、コンポーネント間において、接続する相手のコンポーネントの特性や接続の経路によっては、トリガ方法を変えなければならない場合がある。例えば、複数の入力ポート全てにメッセージが到着したときにコンポーネントを起動する場合、または一部の入力ポートでコンポーネントを起動しないようにする場合である。
そのため、従来はコンポーネントが行う演算処理の内容が同じであっても、コンポーネントが使われる対象に応じてトリガ条件を変えた複数の変種コンポーネントを開発しなければならないという問題があった。
しかしながら、コンポーネント間において、接続する相手のコンポーネントの特性や接続の経路によっては、トリガ方法を変えなければならない場合がある。例えば、複数の入力ポート全てにメッセージが到着したときにコンポーネントを起動する場合、または一部の入力ポートでコンポーネントを起動しないようにする場合である。
そのため、従来はコンポーネントが行う演算処理の内容が同じであっても、コンポーネントが使われる対象に応じてトリガ条件を変えた複数の変種コンポーネントを開発しなければならないという問題があった。
開発規模が小さい場合は変種コンポーネントを作る方法でも対応は不可能ではないが、1つの製品に使用するコンポーネントの数が多く開発対象製品のバリエーションが増加するとコンポーネントの変種数が急速に増え、開発コストや管理コストの増加が無視できなくなる。このため、多様な対象に対して共通のコンポーネントを使用可能にすることが課題となっている。
本発明の目的は、種々のトリガ条件の要求に応じることができ、コンポーネントを多様な場面で共通利用できる制御演算コンポーネントとコンポーネント型制御システムを提供することにある。
本発明の目的は、種々のトリガ条件の要求に応じることができ、コンポーネントを多様な場面で共通利用できる制御演算コンポーネントとコンポーネント型制御システムを提供することにある。
前記課題を解決するために、本発明のコンポーネント型制御システムは、メッセージを受信する1個ないし複数の入力ポートと、メッセージを送信する1個ないし複数の出力ポートとの少なくともいずれか一方を各々備える複数のコンポーネントと、前記出力ポートから前記入力ポートへメッセージを伝達する伝達手段とを備え、且つ、前記複数のコンポーネントのうちの少なくとも1個のコンポーネントが複数の入力ポートを備えるコンポーネント型制御システムにおいて、前記複数の入力ポートを備えるコンポーネントは、前記入力ポート毎に、前記入力ポートに着信したメッセージに含まれるデータを記憶する記憶手段と、前記入力ポートにメッセージが着信した際、当該メッセージの着信に応じて当該コンポーネントを起動するか否かを前記入力ポート毎に設定する設定手段とを備えることを特徴とする。
また、本発明の制御演算コンポーネントは、メッセージを受信する複数の入力ポートと、前記入力ポート毎に、前記入力ポートに着信するメッセージに含まれるデータを記憶する記憶手段と、前記記憶手段に記憶されたデータを用いて演算する演算手段と、前記演算手段を起動する条件情報が入力される入力手段と、前記入力手段に起動条件情報が入力された際、当該起動条件情報に基づいて起動条件を切り替える切替手段と、前記切替手段で切り替えられた起動条件に応じて起動信号を出力する出力手段とを備え、前記出力手段の起動条件が満たされた際、前記出力手段から出力される起動信号に応じて前記演算手段が起動され、起動された前記演算手段が前記記憶手段に記憶されている最新のデータを用いて演算することを特徴とする。
本発明によれば、種々のトリガ条件の要求に応じることができ、コンポーネントを多様な場面で共通利用できる制御演算コンポーネントとコンポーネント型制御システムを提供することができる。
以下に、本発明の実施形態に係るコンポーネント型制御システムについて図を参照しながら詳細に説明する。
一般的に、コンポーネント型制御システムに含まれるコンポーネントの数は、1個以上のさまざまなケースがあり、本実施形態では説明のために簡単な例として4個のコンポーネントを含む例を示す。
また、コンポーネントは、任意の数の複数の入力ポートと出力ポートを持つことができ、少なくとも入力ポートと出力ポートのいずれかを1個持っている。出力ポートから入力ポートへのコネクタは多対多の接続が可能であり、1個の出力ポートからのコネクタを分岐させて複数の入力ポートへ接続したり、複数の出力ポートからのコネクタを1個の入力ポートへ合流させることもできる。
一般的に、コンポーネント型制御システムに含まれるコンポーネントの数は、1個以上のさまざまなケースがあり、本実施形態では説明のために簡単な例として4個のコンポーネントを含む例を示す。
また、コンポーネントは、任意の数の複数の入力ポートと出力ポートを持つことができ、少なくとも入力ポートと出力ポートのいずれかを1個持っている。出力ポートから入力ポートへのコネクタは多対多の接続が可能であり、1個の出力ポートからのコネクタを分岐させて複数の入力ポートへ接続したり、複数の出力ポートからのコネクタを1個の入力ポートへ合流させることもできる。
コンポーネントは、ソフトウェアで実現される場合とハードウェア(電子回路)で実現される場合がある。ソフトウェアで実現する場合は、1つのコンピュータ上に複数のソフトウェアコンポーネントを動作させることができる。また、複数のコンピュータを用いて、各々のコンピュータ上で1ないし複数のソフトウェアコンポーネントを動作させ、コンピュータ間を通信路で接続して分散制御システムを構築することもできる。分散制御システムを構築する場合のコンピュータの数は、必要とされる計算量に加え、制御システム全体の電力、処理速度、サイズなどの要求によって選択される。
≪コンポーネント型制御システムの第1構成例≫
図1は、本発明のコンポーネント型制御システムを説明するために用いる構成例としての制御対象装置2を示す図である。制御対象装置2は、制御装置10,目標角度設定器12,モータ14,モータ角度センサ15を有して構成されている。制御装置10は、目標角度設定器12,モータ14,モータ角度センサ15にそれぞれ接続されている。制御装置10は、目標角度設定器12により目標角度値を読み取り、モータ角度センサ15によりモータ14の角度値を読み取り、目標角度値とモータ角度値とが一致するようにモータ14を制御する。
図1は、本発明のコンポーネント型制御システムを説明するために用いる構成例としての制御対象装置2を示す図である。制御対象装置2は、制御装置10,目標角度設定器12,モータ14,モータ角度センサ15を有して構成されている。制御装置10は、目標角度設定器12,モータ14,モータ角度センサ15にそれぞれ接続されている。制御装置10は、目標角度設定器12により目標角度値を読み取り、モータ角度センサ15によりモータ14の角度値を読み取り、目標角度値とモータ角度値とが一致するようにモータ14を制御する。
図2は、コンポーネント型制御システムの第1構成例101におけるコンポーネントの接続を示す図である。コンポーネント型制御システムの第1構成例101は、上述した制御装置10に搭載される。なお、コンポーネント型制御システムの第1構成例101は、以下、第1構成例101として記述する。
第1構成例101は、ハードウェアまたはソフトウェアで実装される4種類のコンポーネントで構成される。第1構成例101は、制御演算コンポーネント110,目標値設定(非同期)コンポーネント120,センサインターフェース(非同期)コンポーネント130,アクチュエータインターフェースコンポーネント140を有して構成されている。
第1構成例101は、ハードウェアまたはソフトウェアで実装される4種類のコンポーネントで構成される。第1構成例101は、制御演算コンポーネント110,目標値設定(非同期)コンポーネント120,センサインターフェース(非同期)コンポーネント130,アクチュエータインターフェースコンポーネント140を有して構成されている。
制御演算コンポーネント110は、2個の入力ポート111,112と1個の出力ポート113を備えている。目標値設定コンポーネント120は、1個の出力ポート121を備えている。センサインターフェースコンポーネント130は、1個の出力ポート131を備えている。アクチュエータインターフェースコンポーネント140は、1個の入力ポート141を備えている。
目標値設定コンポーネント120は、出力ポート121,コネクタ161,入力ポート111を介して制御演算コンポーネント110に接続されている。センサインターフェースコンポーネント130は、出力ポート131,コネクタ162,入力ポート112を介して制御演算コンポーネント110に接続されている。制御演算コンポーネント110は、出力ポート113,コネクタ163,入力ポート141を介してアクチュエータインターフェースコンポーネント140に接続されている。また、制御演算コンポーネント110には、付随してトリガ条件情報118が設けられている。
このような構成において、第1構成例101が制御装置10に搭載された場合の動作を説明する。
目標値設定コンポーネント120は、目標角度設定器12から目標角度値を読み込み、読み込んだ目標角度値を含むメッセージを出力ポート121からコネクタ161を介して制御演算コンポーネント110の入力ポート111へ送信する。センサインターフェースコンポーネント130は、モータ角度センサ15からモータ角度値を読み込み、読み込んだモータ角度値を含むメッセージを出力ポート131からコネクタ162を介して制御演算コンポーネント110の入力ポート112へ送信する。
目標値設定コンポーネント120は、目標角度設定器12から目標角度値を読み込み、読み込んだ目標角度値を含むメッセージを出力ポート121からコネクタ161を介して制御演算コンポーネント110の入力ポート111へ送信する。センサインターフェースコンポーネント130は、モータ角度センサ15からモータ角度値を読み込み、読み込んだモータ角度値を含むメッセージを出力ポート131からコネクタ162を介して制御演算コンポーネント110の入力ポート112へ送信する。
制御演算コンポーネント110は、入力ポート111を介して目標角度値を受け取り、入力ポート112を介してモータ角度値を受け取る。続いて、制御演算コンポーネント110は、受け取った目標角度値とモータ角度値とを一致させるためのモータ14の操作量を計算し、その操作量を出力ポート131からコネクタ163を介してアクチュエータインターフェースコンポーネント140の入力ポート141に出力する。
アクチュエータインターフェースコンポーネント140は、入力ポート141を介してモータ14の操作量を受け取り、その操作量に対応する駆動信号をモータ14に出力する。モータ14は駆動信号により動作される。
アクチュエータインターフェースコンポーネント140は、入力ポート141を介してモータ14の操作量を受け取り、その操作量に対応する駆動信号をモータ14に出力する。モータ14は駆動信号により動作される。
図3は、第1構成例101をソフトウェアで実行する場合において、そのソフトウェアを搭載するハードウェアの構成例を示す図である。制御装置10は、制御用コンピュータ20と制御用コンピュータ30の2台を備えている。制御用コンピュータ20は、通信インターフェース23,通信路16,通信インターフェース33を介して制御用コンピュータ30に接続されている。
制御用コンピュータ20は、CPU21,メモリ22,通信インターフェース23,入出力回路24とから構成されている。また、制御用コンピュータ30は、CPU31,メモリ32,通信インターフェース33,入出力回路34とから構成されている。
制御用コンピュータ20は、CPU21,メモリ22,通信インターフェース23,入出力回路24とから構成されている。また、制御用コンピュータ30は、CPU31,メモリ32,通信インターフェース33,入出力回路34とから構成されている。
制御用コンピュータ20は、メモリ22に制御演算コンポーネント110と目標値設定コンポーネント120とが格納されている。制御用コンピュータ30は、メモリ32にセンサインターフェースコンポーネント130とアクチュエータインターフェースコンポーネント140とが格納されている。さらにトリガ条件情報118がメモリ22に格納されている。これらのソフトウェアコンポーネントのプログラムは、CPU21とCPU31により実行される。
このような構成における第1構成例101の動作を説明する。
まず、CPU21(目標値設定コンポーネント120)は、入出力回路24を介して目標角度設定器12から目標角度値の出力を読み込む。CPU31(センサインターフェースコンポーネント130)は、入出力回路34を介してモータ角度センサ15からモータ角度値の出力を読み込み、読み込んだモータ角度値の出力信号を通信インターフェース33,通信路16,通信インターフェース23を介してCPU21へ送信する。
まず、CPU21(目標値設定コンポーネント120)は、入出力回路24を介して目標角度設定器12から目標角度値の出力を読み込む。CPU31(センサインターフェースコンポーネント130)は、入出力回路34を介してモータ角度センサ15からモータ角度値の出力を読み込み、読み込んだモータ角度値の出力信号を通信インターフェース33,通信路16,通信インターフェース23を介してCPU21へ送信する。
CPU21(制御演算コンポーネント110)は、読み込んだ目標角度値と通信インターフェース23を介して入力されたモータ角度値とを一致させるためのモータ13の操作量を計算し、その操作量を通信インターフェース23,通信路16,通信インターフェース33を介してCPU31へ送信する。
CPU31(センサインターフェースコンポーネント130)は、通信インターフェース33を介して入力された操作量に対応する駆動信号をモータ14に出力する。モータ14は駆動信号により動作される。
CPU31(センサインターフェースコンポーネント130)は、通信インターフェース33を介して入力された操作量に対応する駆動信号をモータ14に出力する。モータ14は駆動信号により動作される。
次に、第1構成例101をソフトウェアで実現する場合において、ソフトウェアコンポーネントは、コンポーネント間の接続を監理,仲介するフレームワーク上で動作される。
図4は、図3で示したハードウェア上において、第1構成例101を実行するソフトウェアを説明するための図である。本ソフトウェアでは、ソフトウェアコンポーネントが制御用コンピュータ20と制御用コンピュータ30の2つに分散搭載されているので、制御用コンピュータ20にフレームワーク25を搭載し、制御用コンピュータ30にフレームワーク35を搭載し、そのフレームワーク25,35上で対応するソフトウェアコンポーネントを動作させる。フレームワーク25とフレームワーク35との間は、制御用通信ネットワーク等を用いた通信路16を介して接続される。通信路16はソフトウェアコンポーネント間の接続を中継する。
図4は、図3で示したハードウェア上において、第1構成例101を実行するソフトウェアを説明するための図である。本ソフトウェアでは、ソフトウェアコンポーネントが制御用コンピュータ20と制御用コンピュータ30の2つに分散搭載されているので、制御用コンピュータ20にフレームワーク25を搭載し、制御用コンピュータ30にフレームワーク35を搭載し、そのフレームワーク25,35上で対応するソフトウェアコンポーネントを動作させる。フレームワーク25とフレームワーク35との間は、制御用通信ネットワーク等を用いた通信路16を介して接続される。通信路16はソフトウェアコンポーネント間の接続を中継する。
この場合、フレームワーク25上では目標値設定コンポーネント120と制御演算コンポーネント110とが対応され、フレームワーク35上ではセンサインターフェースコンポーネント130とアクチュエータインターフェースコンポーネント140とが対応される。
図5は、第1構成例101をハードウェアで実現する場合の構成例を示す図である。
制御装置10は、ハードウェアコンポーネント(電子回路)としての制御演算コンポーネント51,目標値設定(非同期)コンポーネント52,センサインターフェース(非同期)コンポーネント53,アクチュエータインターフェースコンポーネント54とが構成されている。
目標値設定コンポーネント52は、通信回路42を備え、目標角度設定器12が接続されている。センサインターフェースコンポーネント53は、通信回路43を備え、モータ角度センサ15が接続されている。アクチュエータインターフェースコンポーネント54は、通信回路44を備え、モータ14が接続されている。制御演算コンポーネント51は、通信回路41を備えている。通信回路41,42,43,44の間は、制御用通信ネットワーク等を用いた通信路49により接続されている。
制御装置10は、ハードウェアコンポーネント(電子回路)としての制御演算コンポーネント51,目標値設定(非同期)コンポーネント52,センサインターフェース(非同期)コンポーネント53,アクチュエータインターフェースコンポーネント54とが構成されている。
目標値設定コンポーネント52は、通信回路42を備え、目標角度設定器12が接続されている。センサインターフェースコンポーネント53は、通信回路43を備え、モータ角度センサ15が接続されている。アクチュエータインターフェースコンポーネント54は、通信回路44を備え、モータ14が接続されている。制御演算コンポーネント51は、通信回路41を備えている。通信回路41,42,43,44の間は、制御用通信ネットワーク等を用いた通信路49により接続されている。
上述したように、第1構成例101は、ハードウェアで実現することもできる。
各コンポーネントをハードウェアにより実現すれば、ソフトウェアで実現した場合にくらべ変更に対する柔軟性は低下するが、消費電力の低減、処理速度の向上などの利点がある。
なお、各コンポーネントの機能をソフトウェアで複数の小型コンピュータに組み込み、各小型コンピュータ間を通信回路で接続したものをハードウェアコンポーネントと称することもある。
各コンポーネントをハードウェアにより実現すれば、ソフトウェアで実現した場合にくらべ変更に対する柔軟性は低下するが、消費電力の低減、処理速度の向上などの利点がある。
なお、各コンポーネントの機能をソフトウェアで複数の小型コンピュータに組み込み、各小型コンピュータ間を通信回路で接続したものをハードウェアコンポーネントと称することもある。
≪制御演算コンポーネントにおけるトリガ≫
次に、制御演算コンポーネント110を起動するトリガと、コンポーネント間のデータの伝達方法について説明する。
図2において、制御演算コンポーネント110は、入力ポート111,112からのデータを用いて演算処理,情報処理を行い、その結果を出力ポート113から出力する。本実施形態では、制御演算コンポーネント110が処理を起動する条件(タイミング)を設定する機能(情報)をトリガ条件情報として記述する。図2においてはトリガ条件情報118としている。
次に、制御演算コンポーネント110を起動するトリガと、コンポーネント間のデータの伝達方法について説明する。
図2において、制御演算コンポーネント110は、入力ポート111,112からのデータを用いて演算処理,情報処理を行い、その結果を出力ポート113から出力する。本実施形態では、制御演算コンポーネント110が処理を起動する条件(タイミング)を設定する機能(情報)をトリガ条件情報として記述する。図2においてはトリガ条件情報118としている。
一般的には、トリガの方式には周期実行型とイベント型がある。周期実行型は、コンポーネントが各々定めた一定周期のタイミングで動作するもので、実行周期を正確に保ちやすいという特徴がある。一方、イベント型では、入力されるデータが変化した時や外部のセンサで信号が検出された時など、コンポーネント外部からの刺激によりコンポーネントを起動する。イベント型は、必要な時のみ演算処理を行うので効率が良く、イベントを通信によって通知することもできるので、複数のコンピュータ上でコンポーネントを動作させる分散処理に適している。なお、一定周期ごとにイベントを発生させることにより、周期実行させることも可能である。
本発明の実施形態に係るコンポーネント型制御システムでは、イベント型の一種であるメッセージ駆動型のトリガ方式を用いる。ここで、メッセージとは、通信路あるいはソフトウェア内の仮想通信路を通じて伝達される一定のフォーマットで記述された情報であり、メッセージの宛先,メッセージの種別,付随データ等の情報を含んでいる。メッセージは、出力ポートと入力ポートとの間のデータ伝達に用いられる。
メッセージ駆動型のトリガ方式では、コンポーネント間のデータ伝達とコンポーネントの起動を同時に行う。すなわち、コンポーネントにメッセージが到着した際、コンポーネントはデータを受け取るとともに、当該メッセージを用いた演算処理を開始し、必要に応じて処理結果を出力ポートから送信する。
メッセージ駆動型のトリガ方式では、コンポーネント間のデータ伝達とコンポーネントの起動を同時に行う。すなわち、コンポーネントにメッセージが到着した際、コンポーネントはデータを受け取るとともに、当該メッセージを用いた演算処理を開始し、必要に応じて処理結果を出力ポートから送信する。
メッセージ駆動型のトリガ方式は、データ更新のタイミングとコンポーネントの起動タイミングとが一致している。従って、メッセージ駆動型のトリガ方式は両タイミングのずれによる問題が生じないので、1つのコンピュータ内で複数のコンポーネントを擬似的に同時に動作されるマルチタスク処理、1つのコンピュータ内に複数の処理装置を設けるマルチコア方式、複数のコンピュータを用いるマルチプロセッサ、及び分散処理に適している。
なお、例えば、目標値設定(非同期)コンポーネント120とセンサインターフェース(非同期)コンポーネント130は、センサからの入力信号が変化した時に起動されて出力ポートから値を送信する。このように、入力ポートがコンポーネントの場合、メッセージではトリガできないので外部信号が変化した時や一定の周期で処理を起動する。これらは、アクティブコンポーネントと呼ばれる。
なお、例えば、目標値設定(非同期)コンポーネント120とセンサインターフェース(非同期)コンポーネント130は、センサからの入力信号が変化した時に起動されて出力ポートから値を送信する。このように、入力ポートがコンポーネントの場合、メッセージではトリガできないので外部信号が変化した時や一定の周期で処理を起動する。これらは、アクティブコンポーネントと呼ばれる。
コンポーネント型制御システムでは、コンポーネントを複数のアプリケーションにおいて共通利用することで開発効率を高めることを目的としている。しかしながら、接続されている他のコンポーネントの特性や接続のトポロジー、すなわち接続関係にループがあるかどうかによって適切な起動タイミングが異なる。そのため、従来はコンポーネントを共通化できないケースがあった。本発明は、この問題を解決し、コンポーネントを共通利用できる範囲を拡大することを目的にしている。
≪第1構成例,第2構成例,第3構成例の説明≫
本発明におけるコンポーネント型制御システムにおける基本的な構成が3種類に大別できる。そこで、コンポーネント型制御システムの第1構成例101、コンポーネント型制御システムの第2構成例201、コンポーネント型制御システムの第3構成例301として説明する。なお、以下、第1構成例101,第2構成例201,第3構成例301として記述する。
本発明におけるコンポーネント型制御システムにおける基本的な構成が3種類に大別できる。そこで、コンポーネント型制御システムの第1構成例101、コンポーネント型制御システムの第2構成例201、コンポーネント型制御システムの第3構成例301として説明する。なお、以下、第1構成例101,第2構成例201,第3構成例301として記述する。
図6は、第1構成例101,第2構成例201,第3構成例301を説明するための図である。
図7は、第1構成例101,第2構成例201,第3構成例301のそれぞれの動作タイミングを示すものである。
図6の(a)は、第1構成例101であって図2で説明したものと同じ構成であるが、非同期型のシステム例として動作を説明する。
図7は、第1構成例101,第2構成例201,第3構成例301のそれぞれの動作タイミングを示すものである。
図6の(a)は、第1構成例101であって図2で説明したものと同じ構成であるが、非同期型のシステム例として動作を説明する。
第1構成例101において、目標値設定コンポーネント120は非同期に動作し、センサインターフェースコンポーネント130も非同期に動作する。
目標値設定コンポーネント120は、目標角度設定器12(図1参照)から読み込む出力値が変化したとき、出力ポート121からその出力値を含むメッセージを入力ポート111を介して制御演算コンポーネント110へ送信する。
センサインターフェースコンポーネント130は、モータ角度センサ15(図1参照)から読み込む出力値が変化したとき、出力ポート131からその出力値を含むメッセージを入力ポート112を介して制御演算コンポーネント110へ送信する。
目標値設定コンポーネント120は、目標角度設定器12(図1参照)から読み込む出力値が変化したとき、出力ポート121からその出力値を含むメッセージを入力ポート111を介して制御演算コンポーネント110へ送信する。
センサインターフェースコンポーネント130は、モータ角度センサ15(図1参照)から読み込む出力値が変化したとき、出力ポート131からその出力値を含むメッセージを入力ポート112を介して制御演算コンポーネント110へ送信する。
制御演算コンポーネント110は、目標値設定コンポーネント120からの入力ポート111へのメッセージ入力またはセンサインターフェースコンポーネント130からの入力ポート112へのメッセージ入力のいずれかが着信したときに起動(トリガ)されるように、トリガ条件情報118が設定されている。このようなトリガ条件は非同期型トリガと称される。
制御演算コンポーネント110は、入力ポート111または入力ポート112へメッセージが着信されたときに起動する。この際、制御演算コンポーネント110は、入力ポート111への着信メッセージによって保存した最新データと入力ポート112への着信メッセージによって保存した最新データとを参照してモータ14の操作量を計算し、その操作量を含むメッセージを出力ポート113からアクチュエータインターフェースコンポーネント140へ送信する。アクチュエータインターフェースコンポーネント140は、入力ポート141にメッセージが着信した際、メッセージに含まれる操作量に従ってモータ14(図1参照)を駆動する。
図7の(a)は、第1構成例101における動作タイミングを示すものである。縦軸の矢印方向に時間経過を示し、横軸にコンポーネントの動作タイミングを示している。図において、横向きの矢印4はコンポーネント間のメッセージの送信タイミングを示している。下向きの矢印5は、メッセージの着信によりコンポーネントが起動され、その結果として次のメッセージが出力されることを示している。
例えば、目標値設定コンポーネント120から図に示すメッセージ(横向き矢印4)が出力された際、制御演算コンポーネント110は、上述した操作量を計算し(計算時間:下向き矢印5)、計算した操作量を含むメッセージをアクチュエータインターフェースコンポーネント140へ送信する。
例えば、目標値設定コンポーネント120から図に示すメッセージ(横向き矢印4)が出力された際、制御演算コンポーネント110は、上述した操作量を計算し(計算時間:下向き矢印5)、計算した操作量を含むメッセージをアクチュエータインターフェースコンポーネント140へ送信する。
第1構成例101の場合、目標値設定コンポーネント120とセンサインターフェースコンポーネント130がメッセージを送信するタイミングは予測できないが、いずれかのメッセージが到着したときに制御演算コンポーネント110が起動されるので、効率よくかつ迅速に制御演算が行える。
図6の(b)は、第2構成例201を示す図である。第2構成例201は、同期型のシステム例として構成と動作を説明する。
第2構成例201は、制御演算コンポーネント210,目標値設定(同期)コンポーネント220,センサインターフェース(同期)コンポーネント230,アクチュエータインターフェースコンポーネント240,及びタイマコンポーネント250とから構成されている。制御演算コンポーネント210は、トリガ条件情報218により同期型に設定されている。
第2構成例201は、制御演算コンポーネント210,目標値設定(同期)コンポーネント220,センサインターフェース(同期)コンポーネント230,アクチュエータインターフェースコンポーネント240,及びタイマコンポーネント250とから構成されている。制御演算コンポーネント210は、トリガ条件情報218により同期型に設定されている。
第2構成例201は、周期的にメッセージを発生するタイマコンポーネント250を備えている。タイマコンポーネント250の出力ポート251が、目標値設定コンポーネント220の入力ポート221とセンサインターフェースコンポーネント230の入力ポート231に接続されている。
目標値設定コンポーネント220とセンサインターフェースコンポーネント230は、タイマコンポーネント250から同時にメッセージが届くため同時に起動される。このような同期型の構成は、第1構成例101よりも複雑ではあるが、目標値設定とセンサ入力を同期させることにより、より正確な制御が可能になるので要求精度が高い場合に使用される。
目標値設定コンポーネント220とセンサインターフェースコンポーネント230は、タイマコンポーネント250から同時にメッセージが届くため同時に起動される。このような同期型の構成は、第1構成例101よりも複雑ではあるが、目標値設定とセンサ入力を同期させることにより、より正確な制御が可能になるので要求精度が高い場合に使用される。
ここで、目標値設定コンポーネント220とセンサインターフェースコンポーネント230がハードウェアで実現されている場合と、目標値設定コンポーネント220とセンサインターフェースコンポーネント230がソフトウェアで実現されて異なるコンピュータ上で動作している場合とは、2つのコンポーネント(220,230)が同時に動作し、それぞれ読み込まれたデータが制御演算コンポーネント210へ送信される。
一方、目標値設定コンポーネント220とセンサインターフェースコンポーネント230がソフトウェアで実現され、マルチタスクOSを用いて1つのコンピュータ上で動作している場合には、2つのコンポーネント(220,230)はマルチタスクOSの機能により疑似的に並行動作される。制御演算コンポーネント210にメッセージが到着する順番は、計算速度、通信速度、マルチタスクOSのスケジューリング状態など様々な要因によるので予め正確に予測できない。
一方、目標値設定コンポーネント220とセンサインターフェースコンポーネント230がソフトウェアで実現され、マルチタスクOSを用いて1つのコンピュータ上で動作している場合には、2つのコンポーネント(220,230)はマルチタスクOSの機能により疑似的に並行動作される。制御演算コンポーネント210にメッセージが到着する順番は、計算速度、通信速度、マルチタスクOSのスケジューリング状態など様々な要因によるので予め正確に予測できない。
制御演算コンポーネント210は、目標値設定コンポーネント220からの入力ポート111への入力と、センサインターフェースコンポーネント230からの入力ポート112への入力に対し、入力ポート111と入力ポート112の両方にメッセージが着信するまで待ち、両入力ポート(111,112)に着信したとき起動されるようにトリガ条件情報218が設定されている。このようなトリガ条件を同期型トリガと称する。
制御演算コンポーネント210は、入力ポート111と入力ポート112へメッセージ入力がされたときに起動する。この際、制御演算コンポーネント210は、入力ポート111への着信メッセージによって保存した最新データと入力ポート112への着信メッセージによって保存した最新データとを参照してモータ14の操作量を計算し、計算した操作量を含むメッセージを出力ポート113からアクチュエータインターフェースコンポーネント240へ送信する。アクチュエータインターフェースコンポーネント240は、入力ポート241にメッセージが着信した際、メッセージに含まれる操作量に従ってモータ14(図1参照)を駆動する。
図7の(b)は、第2構成例201における動作タイミングを示すものである。図において、縦軸の矢印方向に時間経過を示し、横軸にコンポーネントの動作タイミングを示している。また、下向きの破線矢印6は、破線の始点の所のメッセージ着信ではコンポーネントを起動せずにメッセージのデータを保存し、破線の終点の所で先に保存しておいたデータを用いて計算を行うことを示している。
例えば、タイマコンポーネント250は、目標値設定コンポーネント220とセンサインターフェースコンポーネント230にメッセージを同時に出力する。その際、目標値設定コンポーネント220は、目標角度設定器12(図1参照)から読み込んだ出力値を含むメッセージを出力ポート222を介して制御演算コンポーネント210の入力ポート111へ送信する。また、センサインターフェースコンポーネント230は、モータ角度センサ15(図1参照)から読み込んだ出力値を含むメッセージを出力ポート232を介して制御演算コンポーネント210の入力ポート112へ送信する。
例えば、タイマコンポーネント250は、目標値設定コンポーネント220とセンサインターフェースコンポーネント230にメッセージを同時に出力する。その際、目標値設定コンポーネント220は、目標角度設定器12(図1参照)から読み込んだ出力値を含むメッセージを出力ポート222を介して制御演算コンポーネント210の入力ポート111へ送信する。また、センサインターフェースコンポーネント230は、モータ角度センサ15(図1参照)から読み込んだ出力値を含むメッセージを出力ポート232を介して制御演算コンポーネント210の入力ポート112へ送信する。
制御演算コンポーネント210は、入力ポート111と入力ポート112の両入力ポートへメッセージが着信されたときに起動する。従って、制御演算コンポーネント210は、入力ポート111にのみメッセージが着信されている場合は入力ポート112にメッセージが着信するのを待つ制御を行う(待ち時間:破線矢印6)。両入力ポート(111,112)へメッセージが着信した際、制御演算コンポーネント210は、入力ポート111への着信メッセージに含まれるデータと入力ポート112への着信メッセージに含まれるデータとを参照してモータ14の操作量を計算し、計算した操作量を含むメッセージを出力ポート113からアクチュエータインターフェースコンポーネント240へ送信する。アクチュエータインターフェースコンポーネント240は、入力ポート241にメッセージが着信した際、メッセージに含まれる操作量に従ってモータ14(図1参照)を駆動する。
目標値設定コンポーネント220とセンサインターフェースコンポーネント230は、タイマコンポーネント250の出力に同期して一定周期で動作するが、どちらからのメッセージが先に制御演算コンポーネント210に到着するかは確実には予測できない。しかし、上述したように、制御演算コンポーネント210は、入力ポート111と入力ポート112の両方にメッセージが着信するまで待つようにしているので、どちらが先に到着しても最新のデータを用いて効率よく制御を行うことができる。
図6の(c)は、第3構成例301を示す図である。第3構成例301は、ループを含むフィードバック型のシステム例として構成と動作を説明する。
第3構成例301は、制御演算コンポーネント310,目標値設定(同期)コンポーネント220,センサアクチュエータインターフェースコンポーネント340,及びタイマコンポーネント250とから構成されている。センサアクチュエータインターフェースコンポーネント340は、アクチュエータインターフェースコンポーネントとセンサインターフェースコンポーネントの機能を兼ね備えたものである。制御演算コンポーネント310は、トリガ条件情報318によりフィードバック型に設定されている。
第3構成例301は、制御演算コンポーネント310,目標値設定(同期)コンポーネント220,センサアクチュエータインターフェースコンポーネント340,及びタイマコンポーネント250とから構成されている。センサアクチュエータインターフェースコンポーネント340は、アクチュエータインターフェースコンポーネントとセンサインターフェースコンポーネントの機能を兼ね備えたものである。制御演算コンポーネント310は、トリガ条件情報318によりフィードバック型に設定されている。
第3構成例301は、周期的にメッセージを発生するタイマコンポーネント250を備えている。タイマコンポーネント250の出力ポート251が、目標値設定コンポーネント220の入力ポート221に接続されている。
目標値設定コンポーネント220は、タイマコンポーネント250から到着するメッセージに同期して目標角度設定器12(図1参照)から目標角度値を読み込み、読み込んだ目標角度値を含むメッセージを出力ポート222から入力ポート111を介して制御演算コンポーネント310へ送信する。
目標値設定コンポーネント220は、タイマコンポーネント250から到着するメッセージに同期して目標角度設定器12(図1参照)から目標角度値を読み込み、読み込んだ目標角度値を含むメッセージを出力ポート222から入力ポート111を介して制御演算コンポーネント310へ送信する。
センサアクチュエータインターフェースコンポーネント340は、制御演算コンポーネント310から出力ポート113を介して入力ポート341にメッセージが着信した際、そのメッセージに含まれる操作量に従ってモータ14(図1参照)を駆動する。それに続いて、センサアクチュエータインターフェースコンポーネント340は、モータ角度センサ15(図1参照)の出力値(モータ角度値)を読み込み、読み込んだモータ角度値を含むメッセージを出力ポート342から入力ポート112を介して制御演算コンポーネント310に送信する。すなわち、センサアクチュエータインターフェースコンポーネント340は、操作量の着信メッセージに同期してモータ角度値を含むメッセージを出力する。
このような複合型コンポーネントが適するのは、例えば、モータ,モータ角度センサ,モータ制御回路とが一体化され、制御系用通信ネットワークを通じてモータを操作するインテリジェント型のモータを用いる場合である。このような場合は、操作量の設定と角度値の読み出しを行うコンポーネントを1つにまとめ、操作量設定と角度読み出しを連続して行うことにより通信効率が高まって、より短い周期での制御が可能となる。
制御演算コンポーネント310は、目標値設定コンポーネント220からの入力ポート111への入力と、センサアクチュエータインターフェースコンポーネント340からの入力ポート112への入力に対し、入力ポート111にメッセージが着信したときに起動し、入力ポート112にメッセージが着信したときは起動せず、着信したメッセージのデータ(モータ角度値)の保存のみを行うようにトリガ条件情報318が設定されている。すなわち、入力ポート111はトリガ有効に設定され、入力ポート112はトリガ無効に設定されている。制御演算コンポーネント310は起動された際、入力ポート111への着信メッセージによって保存した最新データを参照して制御演算を行い、演算結果を出力ポート113からセンサアクチュエータインターフェースコンポーネント340に出力する。
図7の(c)は、第3構成例301における動作タイミングを示すものである。図において、縦軸の矢印方向に時間経過を示し、横軸にコンポーネントの動作タイミングを示している。
第3構成例301において、制御演算コンポーネント310を上述したトリガ条件で動作させる理由は、メッセージの経路にループがある場合に他のトリガ方法を用いると、制御演算コンポーネント310が過剰にトリガされるか、トリガされないことがあるためである。
第3構成例301において、制御演算コンポーネント310を上述したトリガ条件で動作させる理由は、メッセージの経路にループがある場合に他のトリガ方法を用いると、制御演算コンポーネント310が過剰にトリガされるか、トリガされないことがあるためである。
このようなトリガ条件でない場合、非正常動作となることについて説明する。
例えば、第1構成例101と同様に、入力ポート111,112のいずれかにメッセージが着信したとき制御演算コンポーネント310が起動されるように設定したと仮定する。この場合、目標値設定コンポーネント220から入力ポート111に目標値を含むメッセージが届いた際、制御演算コンポーネント310は起動し、出力ポート113からメッセージが出力される。
これによって、センサアクチュエータインターフェースコンポーネント340が起動され、出力ポート342からモータ角度値を含むメッセージが送信され、このメッセージが入力ポート112を介して制御演算コンポーネント310に到着する。すると、再度、制御演算コンポーネント310が起動され、同様の動作により入力ポート112にメッセージが再び到着して制御演算コンポーネント310が起動されるというように、この動作が無限に繰り返される。すなわち、メッセージの経路がループしていることが原因となって、メッセージが無限に増殖して正常に動作できなくなる。
図8は、このような無限増殖して正常に動作できないときの動作タイミングを示すものである。
例えば、第1構成例101と同様に、入力ポート111,112のいずれかにメッセージが着信したとき制御演算コンポーネント310が起動されるように設定したと仮定する。この場合、目標値設定コンポーネント220から入力ポート111に目標値を含むメッセージが届いた際、制御演算コンポーネント310は起動し、出力ポート113からメッセージが出力される。
これによって、センサアクチュエータインターフェースコンポーネント340が起動され、出力ポート342からモータ角度値を含むメッセージが送信され、このメッセージが入力ポート112を介して制御演算コンポーネント310に到着する。すると、再度、制御演算コンポーネント310が起動され、同様の動作により入力ポート112にメッセージが再び到着して制御演算コンポーネント310が起動されるというように、この動作が無限に繰り返される。すなわち、メッセージの経路がループしていることが原因となって、メッセージが無限に増殖して正常に動作できなくなる。
図8は、このような無限増殖して正常に動作できないときの動作タイミングを示すものである。
また、例えば、第2構成例201と同様に、入力ポート111と入力ポート112の両方にメッセージが到着したときに制御演算コンポーネント310が起動されるようにしたと仮定する。この場合、制御演算コンポーネント310は、目標値設定コンポーネント220から入力ポート111に目標値を含むメッセージが着信しても起動されない。制御演算コンポーネント310が動作してメッセージを送信しない限り、センサアクチュエータインターフェースコンポーネント340から入力ポート112にメッセージが届かないので、いつまでも制御演算コンポーネント310は起動されない。
上述したように、制御演算コンポーネント310の適切なトリガ条件は、接続されているコンポーネントと接続の経路によって異なっている。
従来は、このような異なるトリガ条件の要求に対応するため、トリガ条件ごとに一部を変更した制御コンポーネントを開発していた。
上述したように、制御演算コンポーネント310の適切なトリガ条件は、接続されているコンポーネントと接続の経路によって異なっている。
従来は、このような異なるトリガ条件の要求に対応するため、トリガ条件ごとに一部を変更した制御コンポーネントを開発していた。
図9は、上述した3種類のコンポーネント型制御システムにおける第1構成例101,第2構成例201,第3構成例301に対してそれぞれ実装した比較例を示す図である。各構成例で使用される制御演算コンポーネント110a,210a,310aはそれぞれ異なっており、その内部構成を示している。
制御演算コンポーネント110a,210a,310aは、共通して演算部90を備えている。また、制御演算コンポーネント110a,210a,310aは、メッセージのデータを一時的に記憶することが必要なので、入力ポート111に対応してメモリ81、入力ポート112に対応してメモリ82を備え、演算部90から参照可能に接続されている。
制御演算コンポーネント110a,210a,310aは、共通して演算部90を備えている。また、制御演算コンポーネント110a,210a,310aは、メッセージのデータを一時的に記憶することが必要なので、入力ポート111に対応してメモリ81、入力ポート112に対応してメモリ82を備え、演算部90から参照可能に接続されている。
図9の(a)は、第1構成例101の実装例を示す図である。第1構成例101の制御演算コンポーネント110aは、入力ポート111と入力ポート112のいずれかにメッセージが着信したときにトリガ入力部99を介して演算部90を起動するトリガ加法合成部97を備えている。トリガ加法合成部97は、2つ(複数)の入力ポート(111,112)に対して、いずれかに入力信号が発生したことによりトリガ信号を出力する。
図9の(b)は、第2構成例201の実装例を示す図である。第2構成例201の制御演算コンポーネント210aは、入力ポート111と入力ポート112の両方にメッセージが着信したときにトリガ入力部99を介して演算部90を起動するトリガ乗法合成部98を備えている。トリガ乗法合成部98は、2つ(複数)の入力ポート(111,112)に対して、全てに入力信号が発生することによりトリガ信号を出力する。
図9の(c)は、第3構成例301の実装例を示す図である。第3構成例301の制御演算コンポーネント310aは、入力ポート111のみがトリガ入力部99に接続されており、入力ポート111にメッセージが着信したときに演算部90が起動され、入力ポート112にメッセージが着信したときは演算部90が起動されないように構成されている。
上述したように、比較例では、演算機能は同じであるがトリガに関する動作が異なるコンポーネントの変種を作る必要がある。
上述したように、比較例では、演算機能は同じであるがトリガに関する動作が異なるコンポーネントの変種を作る必要がある。
図10は、コンポーネント型制御システムの比較例を示す図である。図に示すように、比較例では専用の制御演算コンポーネントを3種類作らなければならない。
図10の(a)は、第1構成例101の場合で、専用の制御演算コンポーネント110bを用いた構成である。動作は図9の(a)で説明したものと同じである。
図10の(b)は、第2構成例201の場合で、専用の制御演算コンポーネント210bを用いた構成である。動作は図9の(b)で説明したものと同じである。
図10の(c)は、第3構成例301の場合で、専用の制御演算コンポーネント310bを用いた構成である。動作は図9の(c)で説明したものと同じである。
図10の(a)は、第1構成例101の場合で、専用の制御演算コンポーネント110bを用いた構成である。動作は図9の(a)で説明したものと同じである。
図10の(b)は、第2構成例201の場合で、専用の制御演算コンポーネント210bを用いた構成である。動作は図9の(b)で説明したものと同じである。
図10の(c)は、第3構成例301の場合で、専用の制御演算コンポーネント310bを用いた構成である。動作は図9の(c)で説明したものと同じである。
≪本発明に係るコンポーネント型制御システム≫
次に、本発明に係るコンポーネント型制御システムについて説明する。
本発明は、コンポーネント型制御システムにおいて、コンポーネントを起動するトリガ条件を可変にするトリガ条件設定部を設けることにより、コンポーネントを多くのアプリケーションに対して共通して利用可能にするものである。
次に、本発明に係るコンポーネント型制御システムについて説明する。
本発明は、コンポーネント型制御システムにおいて、コンポーネントを起動するトリガ条件を可変にするトリガ条件設定部を設けることにより、コンポーネントを多くのアプリケーションに対して共通して利用可能にするものである。
図11は、本発明に用いられる制御演算コンポーネント1の構成を示す図である。制御演算コンポーネント1は、トリガ入力部99を有する演算部90とトリガ条件設定部6とから構成され、入力ポート111,112と出力ポート113とを備えている。
トリガ条件設定部6は、トリガ条件入力部7,メモリ61,メモリ62,トリガ選択部64,トリガ選択部65,トリガ加法合成部67,トリガ乗法合成部68,トリガ加法合成部69とから構成されている。
トリガ条件入力部7は、入力されるトリガ条件情報70に応じてトリガ選択部64とトリガ選択部65による選択を切り替える。
トリガ条件設定部6は、トリガ条件入力部7,メモリ61,メモリ62,トリガ選択部64,トリガ選択部65,トリガ加法合成部67,トリガ乗法合成部68,トリガ加法合成部69とから構成されている。
トリガ条件入力部7は、入力されるトリガ条件情報70に応じてトリガ選択部64とトリガ選択部65による選択を切り替える。
トリガ選択部64は、入力ポート111への入力信号をトリガ加法合成部67に接続するか、トリガ乗法合成部68に接続するか、どちらにも接続しないかの選択が切り替えられる。
トリガ選択部65は、入力ポート112への入力信号をトリガ加法合成部67に接続するか、トリガ乗法合成部68に接続するか、どちらにも接続しないかの選択が切り替えられる。
トリガ加法合成部67は、入力される2つの信号を加法合成する。
トリガ乗法合成部68は、入力される2つの信号を乗法合成する。
トリガ選択部65は、入力ポート112への入力信号をトリガ加法合成部67に接続するか、トリガ乗法合成部68に接続するか、どちらにも接続しないかの選択が切り替えられる。
トリガ加法合成部67は、入力される2つの信号を加法合成する。
トリガ乗法合成部68は、入力される2つの信号を乗法合成する。
トリガ加法合成部69は、トリガ加法合成部67からの出力信号をトリガ信号としてトリガ入力部99へ出力し、トリガ乗法合成部68からの出力信号をトリガ信号としてトリガ入力部99へ出力する。トリガ加法合成部69からのトリガ信号がトリガ入力部99に入力されることにより演算部90が起動される。
メモリ61は、入力ポート111に着信したメッセージに含まれるデータを記憶する。
メモリ62は、入力ポート112に着信したメッセージに含まれるデータを記憶する。
メモリ61とメモリ62の記憶内容は、演算部90により参照されて演算に用いられる。
メモリ61は、入力ポート111に着信したメッセージに含まれるデータを記憶する。
メモリ62は、入力ポート112に着信したメッセージに含まれるデータを記憶する。
メモリ61とメモリ62の記憶内容は、演算部90により参照されて演算に用いられる。
トリガ条件情報70は、図示しない入力手段から入力される場合と、図示しないメモリ,CD,DVD,ハードディスク等の記憶手段から読み出す場合とがある。
トリガ条件設定部6はソフトウェアで実現してもよくハードウェアで実現してもよい。ハードウェアで実現した場合、トリガ条件入力部7は、設定用の端子から電圧を入力するなどの方法でトリガ条件情報70を得るようにしてもよい。
トリガ条件入力部7によるトリガ条件情報70の取得は、本発明のコンポーネント型制御システム(第1構成例101,第2構成例201,第3構成例301)を起動するときに行われる。
トリガ条件設定部6はソフトウェアで実現してもよくハードウェアで実現してもよい。ハードウェアで実現した場合、トリガ条件入力部7は、設定用の端子から電圧を入力するなどの方法でトリガ条件情報70を得るようにしてもよい。
トリガ条件入力部7によるトリガ条件情報70の取得は、本発明のコンポーネント型制御システム(第1構成例101,第2構成例201,第3構成例301)を起動するときに行われる。
これにより、製品のハードウェアの構成が変化した際、自動的にシステムのコンポーネント構成を変化させ、それに応じてトリガ条件も変化させることが可能となる。ユーザが自由に製品の一部分を着脱、交換できる「プラグアンドプレイ」機能を実現することができる。
上述した構成の制御演算コンポーネント1は、トリガ条件情報70の設定により、入力ポート111と入力ポート112へのそれぞれの着信メッセージに対する動作タイミングと、演算部90を起動するタイミングとを変化させることができる。それにより、本発明のコンポーネント型制御システムは、動作タイミングの要求が異なる多様な要求に対して、制御演算コンポーネント1の動作(トリガ)タイミングと起動タイミングを簡単に変化させることができるので、多様な要求に対応できるとともに様々な構成での使用を可能にしている。
上述した構成の制御演算コンポーネント1は、トリガ条件情報70の設定により、入力ポート111と入力ポート112へのそれぞれの着信メッセージに対する動作タイミングと、演算部90を起動するタイミングとを変化させることができる。それにより、本発明のコンポーネント型制御システムは、動作タイミングの要求が異なる多様な要求に対して、制御演算コンポーネント1の動作(トリガ)タイミングと起動タイミングを簡単に変化させることができるので、多様な要求に対応できるとともに様々な構成での使用を可能にしている。
次に、本発明の構成上の特徴とその効果を示すため、コンポーネント型制御システムとして3種類の第1構成例101,第2構成例201,第3構成例301を示し、従来は不可能であったコンポーネントの共通化が可能になることを図面を参照して説明する。
図12は、本発明に係るコンポーネント型制御システムの構成を示すブロック図である。本発明のコンポーネント型制御システムでは、上述したように制御演算コンポーネント1がトリガ条件を変更する機能を備えており、トリガ条件情報を変えることによりタイミングの違いに対応することができ、制御演算コンポーネントを共通のもので使用することができる。
図12は、本発明に係るコンポーネント型制御システムの構成を示すブロック図である。本発明のコンポーネント型制御システムでは、上述したように制御演算コンポーネント1がトリガ条件を変更する機能を備えており、トリガ条件情報を変えることによりタイミングの違いに対応することができ、制御演算コンポーネントを共通のもので使用することができる。
図12の(a)は、本発明に係る第1構成例101を示すものである。
制御演算コンポーネント1の入力ポート111には、目標値設定コンポーネント120の出力ポート121がコネクタ22を介して接続されている。制御演算コンポーネント1の入力ポート112には、センサインターフェースコンポーネント130の出力ポート131がコネクタ21を介して接続されている。制御演算コンポーネント1の出力ポート113は、コネクタ23を介してアクチュエータインターフェースコンポーネント140の入力ポート141に接続されている。
制御演算コンポーネント1の入力ポート111には、目標値設定コンポーネント120の出力ポート121がコネクタ22を介して接続されている。制御演算コンポーネント1の入力ポート112には、センサインターフェースコンポーネント130の出力ポート131がコネクタ21を介して接続されている。制御演算コンポーネント1の出力ポート113は、コネクタ23を介してアクチュエータインターフェースコンポーネント140の入力ポート141に接続されている。
第1構成例101の場合は、制御演算コンポーネント1の入力ポート111および入力ポート112のいずれかにメッセージが着信したとき、制御演算コンポーネント1を起動する非同期型にトリガ条件情報71が設定されている。この設定に従って、トリガ選択部64とトリガ選択部65とが、入力ポート111と入力ポート112とをトリガ加法合成部67へ接続する方向に切り替えられる。これにより演算部90は、入力ポート111または入力ポート112のいずれかにメッセージが着信したときに起動する。そして、図7の(a)に示したタイミングでシステムが動作される。
図12の(b)は、本発明に係る第2構成例201を示すものである。
制御演算コンポーネント1の入力ポート111には、目標値設定コンポーネント220の出力ポート222がコネクタ27を介して接続されている。制御演算コンポーネント1の入力ポート112には、センサインターフェースコンポーネント230の出力ポート232がコネクタ26を介して接続されている。制御演算コンポーネント1の出力ポート113は、コネクタ28を介してアクチュエータインターフェースコンポーネント240の入力ポート241に接続されている。また、タイマコンポーネント250の出力ポート251は、コネクタ24を介して目標値設定コンポーネント220の入力ポート221とセンサインターフェースコンポーネント230の入力ポート231に接続されている。
制御演算コンポーネント1の入力ポート111には、目標値設定コンポーネント220の出力ポート222がコネクタ27を介して接続されている。制御演算コンポーネント1の入力ポート112には、センサインターフェースコンポーネント230の出力ポート232がコネクタ26を介して接続されている。制御演算コンポーネント1の出力ポート113は、コネクタ28を介してアクチュエータインターフェースコンポーネント240の入力ポート241に接続されている。また、タイマコンポーネント250の出力ポート251は、コネクタ24を介して目標値設定コンポーネント220の入力ポート221とセンサインターフェースコンポーネント230の入力ポート231に接続されている。
第2構成例201の場合は、制御演算コンポーネント1の入力ポート111と入力ポート112の両方にメッセージが着信したとき、制御演算コンポーネント1を起動する同期型にトリガ条件情報72が設定されている。この設定に従って、トリガ選択部64とトリガ選択部65とが、入力ポート111と入力ポート112とをトリガ乗法合成部68へ接続する方向に切り替えられる。これにより演算部90は、入力ポート111と入力ポート112の両方にメッセージが着信したときに起動する。そして、図7の(b)に示したタイミングでシステムが動作される。
図12の(c)は、本発明に係る第3構成例301を示すものである。
制御演算コンポーネント1の入力ポート111には、目標値設定コンポーネント220の出力ポート222がコネクタ30を介して接続されている。制御演算コンポーネント1の入力ポート112には、センサアクチュエータインターフェースコンポーネント340の出力ポート342がコネクタ32を介して接続されている。制御演算コンポーネント1の出力ポート113は、コネクタ31を介してセンサアクチュエータインターフェースコンポーネント340の入力ポート341に接続されている。また、タイマコンポーネント250の出力ポート251は、コネクタ29を介して目標値設定コンポーネント220の入力ポート221に接続されている。
制御演算コンポーネント1の入力ポート111には、目標値設定コンポーネント220の出力ポート222がコネクタ30を介して接続されている。制御演算コンポーネント1の入力ポート112には、センサアクチュエータインターフェースコンポーネント340の出力ポート342がコネクタ32を介して接続されている。制御演算コンポーネント1の出力ポート113は、コネクタ31を介してセンサアクチュエータインターフェースコンポーネント340の入力ポート341に接続されている。また、タイマコンポーネント250の出力ポート251は、コネクタ29を介して目標値設定コンポーネント220の入力ポート221に接続されている。
第3構成例301の場合は、制御演算コンポーネント1の入力ポート111にメッセージが着信したとき制御演算コンポーネント1を起動するように、入力ポート111はトリガ有効にし、入力ポート112はトリガ無効にするトリガ条件情報73が設定されている。この設定に従って、トリガ選択部64は入力ポート111をトリガ加法合成部67へ接続する方向に切り替えられ、トリガ選択部65は入力ポート112をトリガ加法合成部67へもトリガ乗法合成部68へも接続しない方向(中立位置で非接続)に切り替えられる。これにより演算部90は、入力ポート111にメッセージが着信したときに起動し、入力ポート112にメッセージが着信したときは起動せずにデータの保存のみを行う。そして、図7の(c)に示したタイミングでシステムが動作される。
本実施形態によれば、コンポーネント型制御システムの制御演算コンポーネント1は、トリガ条件設定部6を設けたことによりコンポーネントのトリガ条件が可変になり、トリガ条件の要求が異なる様々なシステムに利用(共通使用)することが可能となる。その結果、開発コスト及び管理コストを低減することができる。
なお、本発明を説明するため、図1に示した制御対象装置を制御するコンポーネント型制御システムの構成例を示したが、本発明は、この制御対象装置に限定されるものではなく、コンポーネント型制御システムに含まれるコンポーネントの機能、コンポーネントの数、入力ポートおよび出力ポートの数、接続関係が異なる任意の制御システムに適用可能である。
また、本発明のコンポーネント型制御システムにおいては、2つ以上の入力ポートをもつコンポーネントはトリガ条件設定部(6)を備えている。
さらに、上述した実施形態では、2つの入力ポートを有している制御演算コンポーネントに関する例を示したが、3個以上の入力ポートを有する場合にも拡張できる。
なお、本発明を説明するため、図1に示した制御対象装置を制御するコンポーネント型制御システムの構成例を示したが、本発明は、この制御対象装置に限定されるものではなく、コンポーネント型制御システムに含まれるコンポーネントの機能、コンポーネントの数、入力ポートおよび出力ポートの数、接続関係が異なる任意の制御システムに適用可能である。
また、本発明のコンポーネント型制御システムにおいては、2つ以上の入力ポートをもつコンポーネントはトリガ条件設定部(6)を備えている。
さらに、上述した実施形態では、2つの入力ポートを有している制御演算コンポーネントに関する例を示したが、3個以上の入力ポートを有する場合にも拡張できる。
1…制御演算コンポーネント
2…対象制御装置
6…トリガ条件設定部(設定手段)
7…トリガ条件入力部(入力手段)
10…制御装置
12…目標角度設定器
14…モータ
15…モータ角度センサ
16…通信路(伝達手段)
21,22,23,24,26,27,28,29,30,31,32…コネクタ(伝達手段)
61,62…メモリ(記憶手段)
64,65…トリガ選択部(切替手段)
67,69…トリガ加法合成部(出力手段)
68…トリガ乗法合成部(出力手段)
70,71,72,73…トリガ条件情報(設定情報記憶手段、条件情報記憶手段)
90…演算部(演算手段)
99…トリガ入力部
101…コンポーネント型制御システムの第1構成例
111,112…入力ポート
113…出力ポート
120,220…目標値設定コンポーネント
130,230…センサインターフェースコンポーネント
140,240…アクチュエータインターフェースコンポーネント
201…コンポーネント型制御システムの第2構成例
250…タイマコンポーネント
301…コンポーネント型制御システムの第3構成例
340…センサアクチュエータインターフェースコンポーネント
2…対象制御装置
6…トリガ条件設定部(設定手段)
7…トリガ条件入力部(入力手段)
10…制御装置
12…目標角度設定器
14…モータ
15…モータ角度センサ
16…通信路(伝達手段)
21,22,23,24,26,27,28,29,30,31,32…コネクタ(伝達手段)
61,62…メモリ(記憶手段)
64,65…トリガ選択部(切替手段)
67,69…トリガ加法合成部(出力手段)
68…トリガ乗法合成部(出力手段)
70,71,72,73…トリガ条件情報(設定情報記憶手段、条件情報記憶手段)
90…演算部(演算手段)
99…トリガ入力部
101…コンポーネント型制御システムの第1構成例
111,112…入力ポート
113…出力ポート
120,220…目標値設定コンポーネント
130,230…センサインターフェースコンポーネント
140,240…アクチュエータインターフェースコンポーネント
201…コンポーネント型制御システムの第2構成例
250…タイマコンポーネント
301…コンポーネント型制御システムの第3構成例
340…センサアクチュエータインターフェースコンポーネント
Claims (6)
- メッセージを受信する1個ないし複数の入力ポートと、メッセージを送信する1個ないし複数の出力ポートとの少なくともいずれか一方を各々備える複数のコンポーネントと、前記出力ポートから前記入力ポートへメッセージを伝達する伝達手段とを備え、且つ、前記複数のコンポーネントのうちの少なくとも1個のコンポーネントが複数の入力ポートを備えるコンポーネント型制御システムにおいて、
前記複数の入力ポートを備えるコンポーネントは、
前記入力ポート毎に、前記入力ポートに着信したメッセージに含まれるデータを記憶する記憶手段と、
前記入力ポートにメッセージが着信した際、当該メッセージの着信に応じて当該コンポーネントを起動するか否かを前記入力ポート毎に設定する設定手段と、
を備えることを特徴とするコンポーネント型制御システム。 - 前記設定手段は、前記複数の入力ポートのいずれかにメッセージが着信したときに当該コンポーネントを起動する設定と、前記複数の入力ポートの全てにメッセージが着信したときに当該コンポーネントを起動する設定のいずれかを選択することを特徴とする請求項1に記載のコンポーネント型制御システム。
- 前記設定手段は、前記コンポーネント型制御システムの実行時に前記設定が可能な入力手段を備えることを特徴とする請求項1または請求項2に記載のコンポーネント型制御システム。
- 前記設定手段は、前記コンポーネント型制御システムの実行時に、予め設定情報を記憶している設定情報記憶手段から前記入力手段に入力される前記設定情報に基づいて設定することを特徴とする請求項1から請求項3のいずれか一項に記載のコンポーネント型制御システム。
- メッセージを受信する複数の入力ポートと、
前記入力ポート毎に、前記入力ポートに着信するメッセージに含まれるデータを記憶する記憶手段と、
前記記憶手段に記憶されたデータを用いて演算する演算手段と、
前記演算手段を起動する条件情報が入力される入力手段と、
前記入力手段に起動条件情報が入力された際、当該起動条件情報に基づいて起動条件を切り替える切替手段と、
前記切替手段で切り替えられた起動条件に応じて起動信号を出力する出力手段と、を備え、
前記出力手段の起動条件が満たされた際、前記出力手段から出力される起動信号に応じて前記演算手段が起動され、起動された前記演算手段が前記記憶手段に記憶されている最新のデータを用いて演算することを特徴とする制御演算コンポーネント。 - 前記入力手段は、予め設けられた条件情報記憶手段から条件情報が入力されることを特徴とする請求項5に記載の制御演算コンポーネント。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009144124A JP2011002928A (ja) | 2009-06-17 | 2009-06-17 | 制御演算コンポーネントとコンポーネント型制御システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2009144124A JP2011002928A (ja) | 2009-06-17 | 2009-06-17 | 制御演算コンポーネントとコンポーネント型制御システム |
Publications (1)
Publication Number | Publication Date |
---|---|
JP2011002928A true JP2011002928A (ja) | 2011-01-06 |
Family
ID=43560849
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2009144124A Pending JP2011002928A (ja) | 2009-06-17 | 2009-06-17 | 制御演算コンポーネントとコンポーネント型制御システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP2011002928A (ja) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5372297B1 (ja) * | 2012-12-20 | 2013-12-18 | 三菱電機株式会社 | 車載装置及びプログラム |
WO2017147907A1 (zh) * | 2016-03-04 | 2017-09-08 | 深圳普得技术有限公司 | 一种基于映射关系的智能***及其使用方法 |
-
2009
- 2009-06-17 JP JP2009144124A patent/JP2011002928A/ja active Pending
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5372297B1 (ja) * | 2012-12-20 | 2013-12-18 | 三菱電機株式会社 | 車載装置及びプログラム |
WO2014097442A1 (ja) * | 2012-12-20 | 2014-06-26 | 三菱電機株式会社 | 車載装置及びプログラム |
US9405601B2 (en) | 2012-12-20 | 2016-08-02 | Mitsubishi Electric Corporation | In-vehicle apparatus and program |
WO2017147907A1 (zh) * | 2016-03-04 | 2017-09-08 | 深圳普得技术有限公司 | 一种基于映射关系的智能***及其使用方法 |
CN108713188A (zh) * | 2016-03-04 | 2018-10-26 | 深圳普得技术有限公司 | 一种基于映射关系的智能***及其使用方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
KR102235947B1 (ko) | Gpos 연동형 실시간 로봇 제어 시스템 및 이를 이용한 실시간 디바이스 제어 시스템 | |
KR101044521B1 (ko) | 네트워크에 연결된 슬레이브 장치들의 동기 제어장치 | |
EP3821348A1 (en) | Streaming engine | |
US20130179622A1 (en) | System and method for transmitting and receiving data using an industrial expansion bus | |
US20080147206A1 (en) | Control system for Real Time Applications for Cooperative Industrial Robots | |
WO2014110748A1 (en) | Motion controller and robot control system using the same | |
KR101704751B1 (ko) | 모듈 간의 타이밍 정보를 이용하는 멀티코어 시스템의 시뮬레이터, 및 그 시뮬레이션 방법 | |
JP2011002928A (ja) | 制御演算コンポーネントとコンポーネント型制御システム | |
JP5402401B2 (ja) | モーションコントロールシステム | |
CN114546672A (zh) | 一种无人驾驶通信方法、装置、设备及存储介质 | |
JP4877424B1 (ja) | Plcのcpuユニット、plc用のシステムプログラムおよびplc用のシステムプログラムを格納した記録媒体 | |
CN111767995A (zh) | 运算方法、装置及相关产品 | |
CN111052012A (zh) | 控制装置以及控制*** | |
JP4733695B2 (ja) | 自動化システムのシミュレーションのための方法及び装置 | |
JP5655460B2 (ja) | プログラマブルコントローラシステム | |
Brugali et al. | Developing service oriented robot control system | |
Frömel | Interface design in cyber-physical systems-of-systems | |
JPH11265297A (ja) | 分散シミュレータシステム | |
KR20040064104A (ko) | Fpga를 이용한 다 축 위치 제어장치 | |
CN116339944B (zh) | 任务处理方法、芯片、多芯片模块、电子设备和存储介质 | |
CN211180818U (zh) | 视频处理设备 | |
Gao et al. | Rhino: An Open-source Embedded Motherboard Design Enabling Complex Behavior of Intelligent Robots | |
Armengaud et al. | Automotive software architecture: Migration challenges from an event-triggered to a time-triggered communication scheme | |
JP6464300B1 (ja) | 処理ユニット、リアルタイムシステムおよび処理プログラム | |
Armengaud et al. | Automotive Embedded Systems: The Migration Challenges to a Time Triggered Paradigm |