(57)【特許請求の範囲】
【請求項１】
制御対象である組込み制御装置にソフトウェアによる所定の処理を実行させるよう制御を行うための組込み制御方法において、
前記組込み制御装置用のＯＳ（Ｏｐｅｒａｔｉｎｇ Ｓｙｓｔｅｍ）と、前記ＯＳに対応したタスク又はドライバと、前記ＯＳ、前記タスク又は前記ドライバの構成情報からなるコンフィグレーションテーブルとがそれぞれ独立したモジュールとして生成されたソフトウェアデータを前記組込み制御装置の記憶領域に蓄積する蓄積ステップと、
ＯＳシステムコール関数と、前記タスク及び前記ドライバが有する登録テーブルと、前記コンフィグレーションテーブルとを前記記憶領域の固定アドレスに配置し、前記タスク又は前記ドライバが前記ＯＳシステムコール関数のシンボルを参照してＯＳシステムコールを発行する発行ステップと、
前記ＯＳが前記登録テーブル及び前記コンフィグレーションテーブルのシンボルを参照して前記タスク又は前記ドライバを登録する登録ステップとを有することを特徴とする組込み制御方法。
【請求項２】
前記登録ステップは、
前記コンフィグレーションテーブルを参照して前記タスク又は前記ドライバの識別情報が設定されている場合に、前記識別情報を読出す読出しステップと、
前記読出しステップにより得られた識別情報と予め設定されている登録テーブルの識別情報とが一致しているかを判断し、前記識別情報が一致している場合に、前記登録テーブルの処理関数アドレスを前記ＯＳ内部に保存し、前記コンフィグレーションテーブルの設定内容を参照してタスク又はドライバを生成する生成ステップとを有することを特徴とする請求項１に記載の組込み制御方法。
【請求項３】
前記登録テーブルは、前記タスク又は前記ドライバの識別情報、及び処理関数のアドレスのうち少なくとも１つからなる登録情報を有し、
前記コンフィグレーションテーブルは、ＯＳタイマソース、ＯＳタイマ周期、タスク又はドライバの識別情報、登録テーブルの先頭アドレス、起動タイプ、優先度、スタックサイズのうち少なくとも１つからなるコンフィグレーション情報を有することを特徴とする請求項１又は２に記載の組込み制御方法。
【請求項４】
制御対象である組込み制御装置に所定の処理を実行させるためのソフトウェアを管理する管理装置において、
前記組込み制御装置用のＯＳと、タスクと、ドライバと、前記ＯＳ、前記タスク、及び前記ドライバの構成情報からなるコンフィグレーションテーブルとから、それぞれ独立したモジュールからなるロードモジュールファイルを生成するロードファイル生成手段と、
前記ＯＳのシステムコール関数のアドレスが蓄積されたシンボルファイルと、前記コンフィグレーションテーブルのアドレスが蓄積されたシンボルファイルとを生成するシンボルファイル生成手段と、
前記ロードモジュールファイルを前記組込み制御装置に送信する送信手段とを有し、
前記タスク又は前記ドライバには、前記ＯＳが前記組込み制御装置に前記タスク又は前記ドライバを登録するための登録テーブルを有し、
前記ＯＳ構築時に、前記ＯＳのシステムコール関数のアドレスが蓄積されたシンボルファイルは、前記タスク又は前記ドライバにリンクされ、前記コンフィグレーションテーブルのアドレスが蓄積されたシンボルファイルは、前記ＯＳにリンクされていることを特徴とする管理装置。
【請求項５】
前記シンボルファイル生成手段は、
前記ＯＳのシステムコール関数を、前記制御対象機器が有する記憶領域における予め設定された固定アドレスに配置させるようにシンボルファイルを生成することを特徴とする請求項４に記載の管理装置。
【請求項６】
予め蓄積されたソフトウェアにより所定の処理を実行する組込み制御装置において、
前記組込み制御装置用のＯＳと、前記ＯＳに対応したタスク又はドライバと、前記ＯＳ、前記タスク又は前記ドライバの構成情報からなるコンフィグレーションテーブルとがそれぞれ独立したモジュールとして生成されたソフトウェアデータを受信する受信手段と、
予め所定の記憶領域に蓄積されているＯＳ、タスク、ドライバ、コンフィグレーションテーブルのうち、少なくとも１つを初期化する初期化手段と、
前記受信手段により得られる前記ソフトウェアデータに基づいて前記タスク又は前記ドライバを登録する登録手段とを有し、
ＯＳシステムコール関数と、前記タスク及び前記ドライバが有する登録テーブルと、前記コンフィグレーションテーブルとを前記記憶領域の固定アドレスに配置し、前記タスク又は前記ドライバが前記ＯＳシステムコール関数のシンボルを参照してＯＳシステムコールを発行し、
前記登録手段は、前記ＯＳにより前記登録テーブル及び前記コンフィグレーションテーブルのシンボルを参照して前記タスク又は前記ドライバを登録することを特徴とする組込み制御装置。
【請求項７】
前記登録手段は、
前記コンフィグレーションテーブルを参照して前記タスク又は前記ドライバの識別情報が設定されている場合に前記識別情報を読出し、読出された識別情報と予め設定されている登録テーブルの識別情報とが一致しているかを判断して前記識別情報が一致している場合に前記登録テーブルの処理関数アドレスを前記ＯＳ内部に保存し、前記コンフィグレーションテーブルの設定内容を参照してタスク又はドライバを生成することを特徴とする請求項６に記載の組込み制御装置。
【請求項８】
前記請求項４又は５に記載された管理装置と、前記請求項６又は７に記載された組込み制御装置とをそれぞれ１つ以上備えた組込み制御システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、組込み制御方法、管理装置、組込み制御装置、及び組込み制御システムに関し、特にソフトウェアの開発効率やメンテナンス作業効率を向上させるための組込み制御方法、管理装置、組込み制御装置、及び組込み制御システムに関する。
【背景技術】
【０００２】
近年、例えば多軸モータコントローラや位置決めステージコントローラ等に代表される産業用途の組込み制御システム等、ある特定用途に専用化した装置に組込まれたマイコン制御システムにおいては、組込まれるソフトウェアが大規模化／複雑化してきている。ここで、図１は、従来における組込み制御システムのソフトウェア開発環境の一構成例を示す図である。
【０００３】
図１に示すように、従来のソフトウェアの開発は、作成したＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）、ＯＳが管理する処理単位であるタスク、及びドライバ（割込み処理単位）からなるソフトウェアのソースファイル１１を、ソフトウェアの開発環境１２に含まれるコンパイラ／アセンブラ１３により機械語に翻訳し、また開発環境１２のリンカ１４によりターゲット機器（実際にプログラムを実行させる組込み制御システム）上における物理メモリアドレスを決定して、機械語に翻訳されたロードモジュールファイル１５を出力する。なお、本明細書においてソースファイルをコンパイル／アセンブルし、更にリンクを行なうまでの一連の処理を「構築」という。
【０００４】
また、上述により得られるロードモジュール化されたファイルは、ターゲット機器となる機器にダウンロードされる。ここで、ダウンロードの仕組みについて図を用いて説明する。図２は、従来におけるダウンロードシステムの一構成例を示す図である。図２は、ロードモジュールをターゲット機器へダウンロードするシステム構成の一例である。
【０００５】
図２には、システム構成として上述した図１に示すソフトウェア構成を示す管理装置としてのパソコン２１と、パソコン２１の開発環境により作成されたソフトウェアをダウンロードする組込み制御装置としてのターゲット機器２２とを有するよう構成されている。なお、パソコン２１には、通信ネットワーク等を介してロードモジュール１５をターゲット機器２２に送信するためのロードツール２３を有する。
【０００６】
また、ターゲット機器２２には、蓄積手段（記憶領域）としてＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２４とＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２５とを有するよう構成されている。なお、ターゲット機器２２のＲＯＭ２４には、ＯＳ、タスク、及びドライバが保存されている。
【０００７】
ここで、ターゲット機器２２の電源がＯＮされると、ＲＯＭ２４に蓄積されているデータがＲＡＭ２５にコピーされ、ターゲット機器２２におけるそれ以降の動作については、ＲＡＭ２５上でプログラムが実行される。なお、ＲＯＭ２４とは、フラッシュＲＯＭ等に代表されるようなソフトウェアにより書込み可能なＲＯＭ全般を指している。
【０００８】
また、タスク、ドライバの中にはロード機能を備えるものが含まれており、パソコン２１から通信媒体（ＲＳ−２３２Ｃ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、Ｅｔｈｅｒｎｅｔ（登録商標）等）を通じて受信したダウンロードデータをＲＯＭへ格納する機能を備えている。
【０００９】
ここで、図２に示すように、従来ではソフトウェアの構築単位として１システムあたりに１ロードモジュールで開発されていた。このため、ソフトウェア開発の分業が困難であり、開発効率を低下させていた。また、些細な仕様変更時でもソフトウェア全体を再構築しなければならず、更にターゲット機器に再ロードする必要があるため、開発効率／メンテナンス作業効率を低下させていた。
【００１０】
そこで、上述の問題に対応するため、リアルタイムＯＳとアプリケーションプログラムを備えたシステムがある（例えば、特許文献１参照。）。特許文献１に示されている技術は、複数のタスクと、タスク動作を規定するすべての情報，追加／変更用のプログラムコードからなる動作記述部と、動作記述部を参照してシステム全体を制御するカーネル（ＯＳ）部と、動作記述部に変更を加えるためのインタフェースを外部に提供するインタフェース部とを有し、保守端末からインタフェース部に対してデータを入力することにより、タスク情報（優先度，ＩＤ，スタックサイズ等）の変更や新規タスクの追加を行うものである。
【特許文献１】特開２０００−６６９０６号公報
【発明の開示】
【発明が解決しようとする課題】
【００１１】
しかしながら、特許文献１に示されている技術は、出荷時に組込まれたＯＳとアプリケーション自体に対して変更を行なうための手段を備えておらず、変更の範囲が限られるという問題があった。
【００１２】
また、最近のソフトウェアの大規模化／複雑化しているため、製作／デバッグ等の開発効率や製品出荷後のバージョンアップ等のメンテナンス作業効率が低下するという問題が生じている。
【００１３】
本発明は、上記の問題点に鑑みてなされたものであって、ソフトウェアの開発効率やメンテナンス作業効率を向上させるための組込み制御方法、管理装置、組込み制御装置、及び組込み制御システムを提供することを目的とする。
【課題を解決するための手段】
【００１４】
上述の目的を達成するために、本発明は、制御対象である組込み制御装置にソフトウェアによる所定の処理を実行させるよう制御を行うための組込み制御方法において、前記組込み制御装置用のＯＳと、前記ＯＳに対応したタスク又はドライバと、前記ＯＳ、前記タスク又は前記ドライバの構成情報からなるコンフィグレーションテーブルとがそれぞれ独立したモジュールとして生成されたソフトウェアデータを前記組込み制御装置の記憶領域に蓄積する蓄積ステップと、ＯＳシステムコール関数と、前記タスク及び前記ドライバが有する登録テーブルと、前記コンフィグレーションテーブルとを前記記憶領域の固定アドレスに配置し、前記タスク又は前記ドライバが前記ＯＳシステムコール関数のシンボルを参照してＯＳシステムコールを発行する発行ステップと、前記ＯＳが前記登録テーブル及び前記コンフィグレーションテーブルのシンボルを参照して前記タスク又は前記ドライバを登録する登録ステップとを有することを特徴とする。したがって、ソフトウェアを分割してモジュール化し、更に所定のコンフィグレーション設定を行うことにより、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
【００１５】
更に、前記登録ステップは、前記コンフィグレーションテーブルを参照して前記タスク又は前記ドライバの識別情報が設定されている場合に、前記識別情報を読出す読出しステップと、前記読出しステップにより得られた識別情報と予め設定されている登録テーブルの識別情報とが一致しているかを判断し、前記識別情報が一致している場合に、前記登録テーブルの処理関数アドレスを前記ＯＳ内部に保存し、前記コンフィグレーションテーブルの設定内容を参照してタスク又はドライバを生成する生成ステップとを有することが好ましい。これにより、ＯＳ、タスク、ドライバをモジュール分割してもコンフィグレーションテーブルにより、対応関係を容易に把握することができる。
【００１６】
更に、前記登録テーブルは、前記タスク又は前記ドライバの識別情報、及び処理関数のアドレスのうち少なくとも１つからなる登録情報を有し、前記コンフィグレーションテーブルは、ＯＳタイマソース、ＯＳタイマ周期、タスク又はドライバの識別情報、登録テーブルの先頭アドレス、起動タイプ、優先度、スタックサイズのうち少なくとも１つからなるコンフィグレーション情報を有することが好ましい。これにより、ソフトウェアのモジュール単位での製作やデバッグ、バージョンアップ、コンフィグレーション設定等が可能となり、開発効率やメンテナンス作業等の効率を向上することができる。
【００１７】
また、本発明は、制御対象である組込み制御装置に所定の処理を実行させるためのソフトウェアを管理する管理装置において、前記組込み制御装置用のＯＳと、タスクと、ドライバと、前記ＯＳ、前記タスク、及び前記ドライバの構成情報からなるコンフィグレーションテーブルとから、それぞれ独立したモジュールからなるロードモジュールファイルを生成するロードファイル生成手段と、前記ＯＳのシステムコール関数のアドレスが蓄積されたシンボルファイルと、前記コンフィグレーションテーブルのアドレスが蓄積されたシンボルファイルとを生成するシンボルファイル生成手段と、前記ロードモジュールファイルを前記組込み制御装置に送信する送信手段とを有し、前記タスク又は前記ドライバには、前記ＯＳが前記組込み制御装置に前記タスク又は前記ドライバを登録するための登録テーブルを有し、前記ＯＳ構築時に、前記ＯＳのシステムコール関数のアドレスが蓄積されたシンボルファイルは、前記タスク又は前記ドライバにリンクされ、前記コンフィグレーションテーブルのアドレスが蓄積されたシンボルファイルは、前記ＯＳにリンクされていることを特徴とする。したがって、ソフトウェアを分割してモジュール化し、更に所定のコンフィグレーション設定を行うことにより、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
【００１９】
更に、本発明は、前記シンボルファイル生成手段は、前記ＯＳのシステムコール関数を、前記制御対象機器が有する記憶領域における予め設定された固定アドレスに配置させるようにシンボルファイルを生成することが好ましい。これにより、特別なアドレス指定を行うことなく、ＯＳのシステムコール関数を取得することができる。
【００２０】
また、本発明は、予め蓄積されたソフトウェアにより所定の処理を実行する組込み制御装置において、前記組込み制御装置用のＯＳと、前記ＯＳに対応したタスク又はドライバと、前記ＯＳ、前記タスク又は前記ドライバの構成情報からなるコンフィグレーションテーブルとがそれぞれ独立したモジュールとして生成されたソフトウェアデータを受信する受信手段と、予め所定の記憶領域に蓄積されているＯＳ、タスク、ドライバ、コンフィグレーションテーブルのうち、少なくとも１つを初期化する初期化手段と、前記受信手段により得られる前記ソフトウェアデータに基づいて前記タスク又は前記ドライバを登録する登録手段とを有し、ＯＳシステムコール関数と、前記タスク及び前記ドライバが有する登録テーブルと、前記コンフィグレーションテーブルとを前記記憶領域の固定アドレスに配置し、前記タスク又は前記ドライバが前記ＯＳシステムコール関数のシンボルを参照してＯＳシステムコールを発行し、前記登録手段は、前記ＯＳにより前記登録テーブル及び前記コンフィグレーションテーブルのシンボルを参照して前記タスク又は前記ドライバを登録することを特徴とする。したがって、ＯＳ、タスク、ドライバ、及びコンフィグレーションテーブルが分割してモジュール化され、更に所定のコンフィグレーション設定が行なわれていることにより、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
【００２１】
更に、前記登録手段は、前記コンフィグレーションテーブルを参照して前記タスク又は前記ドライバの識別情報が設定されている場合に前記識別情報を読出し、読出された識別情報と予め設定されている登録テーブルの識別情報とが一致しているかを判断して前記識別情報が一致している場合に前記登録テーブルの処理関数アドレスを前記ＯＳ内部に保存し、前記コンフィグレーションテーブルの設定内容を参照してタスク又はドライバを生成することが好ましい。これにより、ＯＳ、タスク、ドライバをモジュール分割してもコンフィグレーションテーブルにより、対応関係を容易に把握することができる。
【００２２】
また、本発明は、前記請求項４又は５に記載された管理装置と、前記請求項６又は７に記載された組込み制御装置とをそれぞれ１つ以上備えた組込み制御システムとすることが好ましい。これにより、例えば、１つの管理装置で複数の組込み制御装置を管理することができ、また、複数の管理装置で１つの組込み制御装置を管理することができる。
【発明の効果】
【００２３】
本発明によれば、ソフトウェアの開発効率やメンテナンス作業効率を向上することができる。
【発明を実施するための最良の形態】
【００２４】
次に、本発明における組込み制御方法、管理装置、組込み制御装置、及び組込み制御システムを好適に実施した形態について、図面を用いて説明する。
【００２５】
＜管理装置＞
図３は、本実施形態における管理装置の機能構成の一例を示す図である。図３に示す管理装置３０は、汎用のコンピュータやサーバ等に代表されるものである、管理装置３０は、ソースファイル生成手段３１と、ロードファイル生成手段３２と、シンボルファイル生成手段３３と、蓄積手段３４と、送受信手段３５と、入力手段３６と、出力手段３７と、制御手段３８とを有するよう構成されている。なお、ロードファイル生成手段３２及びシンボルファイル生成手段３３は開発環境３９を示すものであり、コンパイラ／アセンブラ、リンカの機能を有している。
【００２６】
ソースファイル生成手段３１は、入力手段３６により、管理者等にて入力されるデータからソースファイルを生成する。なお、本発明では、ソフトウェアをターゲット機器（組込み制御装置）に用いられているＯＳ、タスク、ドライバ、及びコンフィグレーションテーブルにそれぞれ独立したモジュールに分割されたソースファイルを生成する。ここで、上述したコンフィグレーションテーブルとは、ＯＳ、タスク、及び／又はドライバの構成情報を示したものである。
【００２７】
また、ソースファイルを取得する際には、上述したようにソールファイル生成手段３１により生成する以外にも、例えば送受信手段３５によりインターネットやＬＡＮ（Ｌｏｃａｌ  Ａｒｅａ  Ｎｅｔｗｏｒｋ）に代表される通信ネットワークを介して他のコンピュータ等から取得することもできる。
【００２８】
ロードファイル生成手段３２は、ソースファイルを入力してコンパイラ／アセンブラ、リンカの機能を用いてロードモジュールファイルを生成する。また、シンボルファイル生成手段３３は、ＯＳシステムコール関数のアドレスが蓄積されたシンボルファイル、及びコンフィグレーションテーブルのアドレス情報が蓄積されたシンボルファイルを生成する。
【００２９】
また、蓄積手段３４は、上述したソースファイルやロードファイル、シンボルファイル等を蓄積する。送受信手段３５は、管理装置３０と、ターゲット機器（組込み制御装置）とを通信ネットワーク等を介して接続し、ロードファイルの送信や制御信号の送受信等を行う。
【００３０】
また、入力手段３６は、コンピュータを使用する管理者等が操作するキーボード及びマウス等のポインティングデバイスを有しており、ユーザからのプログラムの実行等、各種操作信号を入力する。また、出力手段３７は、本発明における処理を行うためのコンピュータ本体を操作するのに必要な各種ウィンドウやデータ等を表示するディスプレイ（モニタ）を有し、制御手段３８が有する制御プログラムの実行経過や結果等を表示することができる。また、制御手段３８は、各種演算や管理装置３０における各構成部とのデータの入出力や実行指示等の処理を行い、管理装置３０全体の制御を行う。
【００３１】
次に、本実施形態におけるソフトウェア開発環境例について説明する。図４は、本実施形態におけるソフトウェア開発環境の一構成例を示す図である。なお、図４は、図１に対応させた開発環境の構成例であり、本発明ではソフトウェアをＯＳ、タスク、ドライバ、及びコンフィグレーションテーブルをモジュールに分割し、それぞれ別々にソースファイルを作成する。また、そのソースファイルを構築してロードモジュールを作成する。
【００３２】
つまり、図４に示すように、ＯＳ、タスク、ドライバ、及びコンフィグレーションテーブル用のそれぞれのソースファイル４１−１〜４１−４を構成し、開発環境４２であるコンパイラ／アセンブラ４３及びリンカ４４によりそれぞれが個別のファイルで構築され、ロードモジュールファイル４５−１〜４５−５が生成される。
【００３３】
なお、上述したようにＯＳ、タスク、ドライバ、及びコンフィグレーションテーブルをそれぞれ別々に構築した場合には、タスクやドライバからＯＳのシステムコールを発行できなくなる。したがって、これを解決するためにＯＳのシステムコール関数のシンボル（関数や変数のアドレス定義）を参照する。シンボルの参照は、まず、ＯＳ構築時にシステムコール関数アドレスのシンボルファイル４６−１を出力するように開発環境を設定する。そして、ここで出力されたＯＳのシンボルファイルをタスクとドライバの構築時にリンクすることによってシンボルの参照（システムコールの発行）が可能となる。
【００３４】
なお、開発環境にシンボルファイルを出力する機能がなければ、ＯＳのシステムコール関数のアドレスをタスクやドライバ側で定義すればよい。これにより、ＯＳのシステムコール発行が可能となる。また、ＯＳのシステムコール関数を固定アドレスに配置すれば、ＯＳの変更に伴ってタスクとドライバを再構築する必要がなくなる。
【００３５】
また、上述したようにＯＳ、タスク、ドライバ、及びコンフィグレーションテーブルをそれぞれ別々に構築した場合には、ＯＳ側からもタスクやドライバが参照できなくなる。したがって、これを解決するために、まずタスクやドライバにはＯＳへの登録テーブルを持たせ、ここに関数アドレス等を配置する。更に、コンフィグレーションテーブルモジュールを作成し、ここにタスクとドライバの構成情報を設定する。
【００３６】
ターゲット機器側のＯＳは、初期化時に登録テーブルとコンフィグレーションテーブルとを参照してタスクとドライバとの登録処理を行う。また、参照方法は、ＯＳシステムコール関数の参照と同様に、コンフィグレーションテーブルアドレスのシンボルファイル４６−２を作成し、このシンボルファイル４６−２を参照すればよい。
【００３７】
なお、ＯＳシステムコールとは、ＯＳ（のカーネル部分）が提供する機能のうち、プロファイルから呼び出せるようになっている機能、もしくはその呼び出し規約である。このシステムコールには、ファイルアクセスやメモリの割り当て、子プロセスの生成等の機能が用意されている。
【００３８】
このように、登録テーブルとコンフィグレーションテーブルとをターゲット機器のメモリの固定アドレスに配置すれば、タスク、ドライバ、コンフィグレーションテーブル設定値の変更に伴ってＯＳを再構築する必要がなくなる。
【００３９】
＜組込み制御装置（ターゲット機器）＞
次に、組込み制御装置の機能構成例について図を用いて説明する。図５は、本実施形態における組込み制御装置の機能構成の一例を示す図である。図５に示す組込み制御装置５０は、初期化手段５１と、蓄積手段（記憶領域）５２としてのＲＯＭ５３、ＲＡＭ５４と、送受信手段５５と、タスク・ドライバ登録手段５６と、制御手段５７とを有するよう構成されている。初期化手段５１は、ターゲット機器の起動時にＲＯＭ５３に登録されているＯＳ、タスク、ドライバ、コンフィグレーションテーブル等の全てをＲＡＭ５４に移動する。
【００４０】
また、ＲＯＭ５３は、ソフトウェアプログラムの保存と、ＯＳ、タスク、ドライバ、コンフィグレーションテーブルの蓄積を行う。また、ＲＡＭ５４は、ソフトウェアプログラムの実行と、ＯＳ、タスク、ドライバ、及びコンフィグレーションテーブルの蓄積を行う。
【００４１】
送受信手段５５は、組込み制御装置５０と、管理装置３０とを通信ネットワーク等を介して接続し、ロードファイル、シンボルファイル等のソフトウェアデータの受信や制御信号の送受信等を行う。また、タスク・ドライバ登録手段５６は、ターゲット機器側のＯＳにより初期化時に登録テーブルとコンフィグレーションテーブルとを参照してタスクとドライバの登録処理を行う。また、制御手段５７は、各種演算や組込み制御装置５０における各構成部とのデータの入出力や実行指示等の処理を行い、組込み制御装置５０全体の制御を行う。
【００４２】
＜登録テーブル・コンフィグレーションテーブルの例＞
次に、登録テーブルとコンフィグレーションテーブルについて図を用いて説明する。図６は、登録テーブルとコンフィグレーションテーブルの一例を示す図である。なお、図６（ａ）は、タスク／ドライバの登録テーブルとして蓄積される項目（登録情報）を示し、図６（ｂ）はコンフィグレーションテーブルとして蓄積される項目（コンフィグレーション情報）を示している。
【００４３】
ここで、図６（ａ）に示す登録テーブルには、「タスクあるいはドライバの識別情報（名前（文字列））」、「初期化処理関数のアドレス」、「通常処理関数のアドレス」、「終了処理関数のアドレス」等の項目を有する。また、図６（ｂ）に示すコンフィグレーションテーブルには、「ＯＳ情報」、「タスク情報」、「ドライバ情報」の項目を有する。
【００４４】
ここで、「ＯＳ情報」には、「ＯＳタイマソース」や「ＯＳタイマ周期」等のＯＳタイマ関係のパラメータが蓄積されており、「タスク情報」及び「ドライバ情報」には、「登録テーブルに記載された名前（識別情報）」や、「登録テーブルの先頭アドレス」、「起動タイプ」、「ＩＤ」、「優先度」、「スタックサイズ」等が蓄積されている。
【００４５】
なお、本実施形態において、図６（ａ）に示すタスクやドライバの登録テーブルは、組込み制御装置５０が登録内容を容易に把握できるように予め設定された位置、例えばタスク／ドライバの先頭等に固定配置される。また同様に、図６（ｂ）に示すコンフィグレーションテーブルは、ＯＳから参照するために予め設定されたアドレス位置に配置される。
【００４６】
＜本実施形態におけるダウンロードシステム構成＞
ここで、上述した本実施形態におけるロードモジュールをターゲット機器（組込み制御装置）へダウンロードするシステムの例について、図を用いて説明する。図７は、本実施形態におけるダウンロードシステム（組込み制御システム）の一構成例を示す図である。図７には、システム構成として上述した図２と同様に、汎用コンピュータとしてのパソコン７１と、パソコン７１の開発環境により作成されたソフトウェアをダウンロードするターゲット機器（組込み制御装置）７２とを有するよう構成されている。
【００４７】
なお、本発明におけるシステム構成は図７に限定されることはなく、例えば、パソコン７１及び／又はターゲット機器７２を複数備えた構成にしてもよい。これにより、例えば、１つのパソコンで、複数のターゲット機器を管理することができ、また、複数のパソコンで１つのターゲット機器を管理することができる。
【００４８】
ここで、パソコン７１には、上述したように分割されたロードモジュール４５−１〜４５−４を、通信ネットワーク等を介してターゲット機器７２に送信するためのロードツール７３を有し、ターゲット機器７２には、蓄積手段（記憶領域）としてのＲＯＭ７４とＲＡＭ７５とを有している。
【００４９】
ターゲット機器７２のＲＯＭ７４には、上述したようにモジュール分割されたＯＳ、コンフィグレーションテーブル、タスク、及びドライバが保存されている。ここで、ターゲット機器７２の電源がＯＮされると、ＲＯＭ７４に蓄積されているデータがＲＡＭ７５にコピーされ、それ以降のターゲット機器における動作については、ＲＡＭ７５上でプログラムが実行されることで動作が行われる。なお、ＲＯＭ７４とは、フラッシュＲＯＭ等に代表されるようにソフトウェアにより書込み可能なＲＯＭ全般を指している。
【００５０】
また、タスク、ドライバの中にはロード機能を備えるものが含まれており、パソコン７１から通信媒体（ＲＳ−２３２Ｃ、ＵＳＢ（Ｕｎｉｖｅｒｓａｌ  Ｓｅｒｉａｌ  Ｂｕｓ）、Ｅｔｈｅｒｎｅｔ（登録商標）等）を通じて受信したダウンロードデータをＲＯＭへ格納する機能を備えている。
【００５１】
また、本実施形態におけるダウンロードは、パソコン７１上のロードツールからモジュール毎に行われる。モジュールのアドレスは、開発環境によるリンク時に決定しているため、ターゲット機器に問い合せるという手順は必要ない。また、コンフィグレーションテーブルは、開発環境によってロードモジュールを生成してもよいし、ロードツールにコンフィグレーションテーブルの設定値を編集する編集機能を持たせてもよい。
【００５２】
＜ＯＳの初期化処理＞
ここで、上述した本実施形態における登録テーブルとコンフィグレーションテーブルを参照して行われるＯＳの初期化処理手順の例についてフローチャートを用いて説明する。
【００５３】
図８は、登録テーブルとコンフィグレーションテーブルを参照して行われるＯＳの初期化処理手順の一例を示すフローチャートである。まず、ターゲット機器７２の電源をＯＮすると、初期化処理のプログラムはＲＯＭ７４の先頭から実行され、ＲＯＭ７４上にあるプログラムを全てＲＡＭ７５へコピーし（Ｓ０１）、以降のプログラムはＲＡＭ７５上で実行される。
【００５４】
次に、ＯＳ内部のデータを初期化し（Ｓ０２）、登録テーブルとコンフィグレーションテーブルを参照してタスクとドライバを登録（Ｓ０３）する。更に、タスクとドライバを初期化（Ｓ０４）すると共に、タスク、ドライバを起動する（Ｓ０５）。最後に、コンフィグレーションのＯＳ情報を参照してＯＳタイマを起動し（Ｓ０６）、ターゲット機器７２を起動する（Ｓ０７）。
【００５５】
次に、上述したＳ０３のタスク、ドライバ登録処理について説明する。なお、タスクとドライバとは同様の登録処理を行うため、ここではタスクを用いて登録処理手順について具体的に説明する。
【００５６】
図９は、タスクの登録処理手順の一例を示すフローチャートである。まず、コンフィグレーションテーブルのタスク情報を参照し（Ｓ１１）、タスクの名前（文字列）が設定されているか否かを判断する（Ｓ１２）。タスクの名前が設定されている場合（Ｓ１２において、ＹＥＳ）、登録テーブルの先頭アドレスを参照して登録テーブルの名前を読み出し（Ｓ１３）、次にタスクの名前と登録されたテーブルの名前とが一致しているか否かを判断する（Ｓ１４）。
【００５７】
ここで、両者のテーブルの名前が一致している場合（Ｓ１４において、ＹＥＳ）、登録テーブルの各関数アドレスをＯＳ内部に保存し（Ｓ１５）、コンフィグレーションテーブルの起動タイプ、ＩＤ等を参照してタスクを生成する（Ｓ１６）。
【００５８】
また、Ｓ１６の処理が終了後、タスクの名前が設定されていない場合（Ｓ１２において、ＮＯ）、又は両者のテーブルの名前が一致していない場合（Ｓ１４において、ＮＯ）、コンフィグレーションテーブルに設定可能なタスク数分の処理を行ったかを判断する（Ｓ１７）。設定可能なタスク数分行っていない場合（Ｓ１７において、ＮＯ）、Ｓ１１に戻り、次のタスクについて上述した処理を行う。また、設定可能なタスク数分行った場合（Ｓ１７において、ＹＥＳ）、処理を終了する。
【００５９】
ここで、ドライバの登録処理手順についても上述した処理中の「タスク」を「ドライバ」に置き換えて同様の手順で処理を行なう。これにより、簡便な方法でソフトウェアをモジュール化し、更にコンフィグレーション設定を実現することができる。これにより、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
【００６０】
なお、上述した実施形態では、タスク、ドライバの両方について登録処理を行う形態について説明したが、本発明においてはこの限りではなく、タスク、ドライバのどちらか一方でもよい。
【００６１】
上述したように、本発明では、ＯＳシステムコール関数、登録テーブル、及びコンフィグレーションテーブルを固定アドレスに配置し、タスク及びドライバはＯＳシステムコール関数のシンボルを参照してＯＳシステムコールを発行する。また、ＯＳは、コンフィグレーションテーブル及び登録テーブルを参照してタスクやドライバを登録するという簡便な方法でソフトウェアをＯＳ、タスク、ドライバ、及びコンフィグレーションテーブルという独立モジュールに分割することができる。これにより、ソフトウェアのモジュール単位の製作やデバッグ、バージョンアップ、コンフィグレーション設定等が可能となり、開発効率やメンテナンス作業等の効率を向上することができる。
【００６２】
また、開発段階においても全てモジュール化されているため、全モジュールを個別に変更することができる。したがって、従来のように変更の範囲が限られるという問題がない。更に、簡便なモジュール化を実現することで、ターゲット機器にメモリ情報を問い合せた上でリンクする必要がないため、構築の仕組みが複雑になるというような問題もない。更に、簡便なモジュール化により、専用のモジュールビルダを開発もしくは購入する必要がないため、使用可能な開発環境が制限されるという問題もない。
【００６３】
上述したように本発明によれば、ソフトウェアの開発効率やメンテナンス作業効率を向上させることができる。
【００６４】
なお、本発明は、多軸モータコントローラや位置決めステージコントローラ、射出成形機用コントローラ、レーザ加工機用コントローラ、その他の産業用途の組込み制御システムや、テレビ、複写機、産業ロボット、冷蔵庫、洗濯機、電子ジャー等に組み込まれた多種の制御システムにも適用することができる。
【００６５】
以上本発明の好ましい実施例について詳述したが、本発明は係る特定の実施形態に限定されるものではなく、特許請求の範囲に記載された本発明の要旨の範囲内において、種々の変形、変更が可能である。
【図面の簡単な説明】
【００６６】
【図１】従来における組込み制御システムのソフトウェア開発環境の一構成例を示す図である。
【図２】従来におけるダウンロードシステムの一構成例を示す図である。
【図３】本実施形態における管理装置の機能構成の一例を示す図である。
【図４】本実施形態におけるソフトウェア開発環境の一構成例を示す図である。
【図５】本実施形態における組込み制御装置の機能構成の一例を示す図である。
【図６】登録テーブルとコンフィグレーションテーブルの一例を示す図である。
【図７】本実施形態におけるダウンロードシステムの一構成例を示す図である。
【図８】登録テーブルとコンフィグレーションテーブルを参照して行われるＯＳの初期化処理手順の一例を示すフローチャートである。
【図９】タスクの登録処理手順の一例を示すフローチャートである。
【符号の説明】
【００６７】
１１，４１  ソースファイル
１２，３９，４２  開発環境
１３，４３  コンパイラ／アセンブラ
１４，４４  リンカ
１５，４５  ロードモジュールファイル
２１，７１  パソコン
２２，７２  ターゲット機器
２３，７３  ロードツール
２４，５３，７４  ＲＯＭ
２５，５４，７５  ＲＡＭ
３０  管理装置
３１  ソースファイル生成手段
３２  ロードファイル生成手段
３３  シンボルファイル生成手段
３４，５２  蓄積手段
３５，５５  送受信手段
３６  入力手段
３７  出力手段
３８，５７  制御手段
４６  シンボルファイル
５１  初期化手段
５６  タスク・ドライバ登録手段
【図１】
0004757589.tif 000002
【図２】
0004757589.tif 000003
【図３】
0004757589.tif 000004
【図４】
0004757589.tif 000005
【図５】
0004757589.tif 000006
【図６】
0004757589.tif 000007
【図７】
0004757589.tif 000008
【図８】
0004757589.tif 000009
【図９】
0004757589.tif 000010