(57)【要約】【課題】  多数の不揮発性メモリを用いることなく、大容量のプログラムを起動させることができるようにする。【解決手段】  ネットワーク機能を備えた組込型制御装置１Ａにおいて、ブート時に起動させるプログラムの複数の所在情報を含むプログラム所在テーブルを備え、ブート時はプログラム所在テーブルに含まれている複数の所在情報を順に参照し、所在情報が示すところにプログラムがあればプログラムをメモリ１２に格納して起動させる。【選択図】図１
2007141205.tif 000002
【特許請求の範囲】
【請求項１】
ネットワーク機能を備えた組込型制御装置において、
ブート時に起動させるプログラムの複数の所在情報を含むプログラム所在テーブルを備え、
ブート時は前記プログラム所在テーブルに含まれている複数の所在情報を順に参照し、当該所在情報が示すところに前記プログラムがあれば前記プログラムをメモリに格納して起動させることを特徴とする組込型制御装置。
【請求項２】
前記プログラム所在テーブルにはブート時に起動させる複数のプログラムとその複数のプログラムのそれぞれについて複数の所在情報が含まれており、
ブート時は、前記複数のプログラムのそれぞれについて、複数の所在情報を順に参照していき、当該所在情報が示すところにそのプログラムがあればそのプログラムをメモリに格納して起動させることを特徴とする請求項１に記載の組込型制御装置。
【請求項３】
前記所在情報とは、当該組込型制御装置とネットワークで接続された他の制御装置の記憶装置を指している請求項１または２に記載の組込型制御装置。
【請求項４】
前記所在情報がネットワークで接続された他の制御装置の記憶装置を指しているときはＦＴＰ機能により前記プログラムがダウンロードされることを特徴とする請求項３に記載の組込型制御装置。
【請求項５】
共通鍵で暗号化されたプログラムを共通鍵で復号化する復号化部を備え、
ダウンロードした前記プログラムを共通鍵で復号化したあとメモリに格納することを特徴とする請求項４に記載の組込型制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ロボットの制御装置などに組み込むことができる組込型制御装置に関し、特に大容量で複数の起動プログラムを起動させることができる組込型制御装置に関する。  
【背景技術】
【０００２】
ロボット制御装置は、ロボットが複数の駆動軸を備えているため、複数の駆動部とその駆動部を駆動させる組込型の複数の制御装置を備えている。ロボット制御装置に限らず、複数の制御軸を備えた機械を駆動する制御装置も同様である。その組込型制御装置を起動するとき、すなわちブート時に、最初に起動させるプログラムはＲＯＭに格納されているのが一般的である。そのプログラムが起動するときは、ブート時にＲＯＭプログラム上に格納されているプログラムをＣＰＵが読み出し、その後、そのプログラムが実行される。
ところが最近では、ハードウェアの多様化などに伴い起動プログラムが肥大化しており、ＲＯＭの容量に収まらない場合が生じている。また、起動プログラムやオペレーションプログラム（ＯＳ）だけにとどまらず、アプリケーションプログラムもＲＯＭ内に格納する必要が出てきている。そのような場合は、ＲＯＭの容量を増やすか、或いはプログラムを部分的に圧縮してＲＯＭ内に格納し、起動プログラムの一つによって圧縮されたプログラムをソフトウェア伸長展開して使用するか、或いは分割したプログラムをハードディスク等の外部記憶装置に予め格納しておき、起動プログラムの一部が残りの部分を外部記憶装置から読み出して使用する、といった方法が取られてきた（例えば特許文献１参照）。
さらに、汎用の組込型制御装置の場合は、ユーザが作成したアプリケーションプログラムを格納する必要があり、ＲＯＭの代わりにフラッシュメモリなどの不揮発性メモリを搭載する必要も出てきている。
【特許文献１】特開２００１−１４２７０９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
上記のように、最近の組込型制御装置はブート時に起動させる大容量のプログラムをいくつかの方法によってメモリに格納して使われているが、その際に使われる不揮発性メモリが大きな容量を必要とするため、多数の不揮発性メモリを備えて空間的にもコストの面でも問題があった。
本発明はそのような点に鑑みてなされたものであり、多数の不揮発性メモリを用いることなく、大容量のプログラムを起動させることができる組込型制御装置を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、第１の発明は、ネットワーク機能を備えた組込型制御装置において、ブート時に起動させるプログラムの複数の所在情報を含むプログラム所在テーブルを備え、ブート時はプログラム所在テーブルに含まれている複数の所在情報を順に参照し、所在情報が示すところにプログラムがあればプログラムをメモリに格納して起動させることを特徴としている。
第２の発明は、プログラム所在テーブルにはブート時に起動させる複数のプログラムとその複数のプログラムのそれぞれについて複数の所在情報が含まれており、ブート時は、複数のプログラムのそれぞれについて、複数の所在情報を順に参照していき、当該所在情報が示すところにそのプログラムがあればそのプログラムをメモリに格納して起動させることを特徴としている。
第３の発明は、所在情報が組込型制御装置とネットワークで接続された他の制御装置の記憶装置を指しており、第４の発明は、ＦＴＰ機能によりプログラムがダウンロードされることを特徴としている。
第５の発明は、共通鍵で暗号化されたプログラムを共通鍵で復号化する復号化部を備え、ダウンロードした前記プログラムを共通鍵で復号化したあとメモリに格納することを特徴としている。
【発明の効果】
【０００５】
第１の発明によると、ブート時に起動させるプログラムの複数の所在情報を含むプログラム所在テーブルを備え、ブート時はプログラム所在テーブルに含まれている複数の所在情報を順に参照してプログラムをメモリに格納するので、多数の不揮発メモリを用いることなく、大容量のプログラムを起動させることができる。
第２の発明によると、プログラム所在テーブルにはブート時に起動させる複数のプログラムとその複数のプログラムのそれぞれについて複数の所在情報が含まれており、ブート時は複数のプログラムのそれぞれについて複数の所在情報を順に参照してプログラムをメモリに格納するので、複数のプログラムを起動させるような場合でも多数の不揮発メモリを用いることなく、大容量のプログラムを起動させることができる。
第３および第４の発明によると、ネットワークで接続された他の制御装置の記憶装置からＦＴＰ機能によってプログラムをダウンロードするので、ネットワークを介して離れたところからプログラムをダウンロードすることができて便利になるという効果がある。
第５の発明によると、インターネットで接続された他の制御装置の記憶装置から共通鍵で暗号化されたプログラムをダウンロードすることができるので、プログラムの不正利用を防ぎ安全になるという効果がある。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の方法の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００７】
まず本発明の組込型制御装置について図を用いて説明する。図１は、本発明の組込型制御装置の構成とその接続状況を示すブロック図である。図において、組込型制御装置１Ａは、ＣＰＵ１１と、メモリ１２、フラッシュＲＯＭ１３、ネットワークデバイス１４、入力部１５、ブート部１６、出力部１７を備えており、互いに接続されている。組込型制御装置１Ａはネットワークデバイス１４を介してネットワーク２に接続されており、ネットワーク２に接続された組込型制御装置１Ｂ、１Ｃや他の計算機３、記憶装置４との間でデータの送受信が可能となっている。組込型制御装置１Ｂ、１Ｃは組込型制御装置１Ａと同じ構成をしている。組込型制御装置１Ａが起動すると、ブート部１６が所定のプログラムを起動させる。その際、まずフラッシュＲＯＭ１３に格納されたプログラム所在テーブルを参照し、プログラムをダウンロードしてメモリ１２に格納し、その後そのプログラムを実行させる。この動作はプログラム所在テーブルに記録されたプログラムの数だけ処理される。こうしてＣＰＵ１１が所定のプログラムを処理して所定の機能を果たすことができる。なお、組込型制御装置１Ａに必要なデータを入力したり取込んだりするときは入力部１５から取込み、処理結果等のデータを出力するときは出力部１７から出力する。
【０００８】
次に複数の組込型制御装置が組込まれた制御システムについて説明する。図２は、３台の組込型制御装置が組み込まれた制御システムの例を説明するブロック図であり、人型ロボットを制御する制御システムの場合を示している。図において、６は左腕部ユニットであり、組込型制御装置１０Ａと６つのサーボドライブ９Ａ〜９Ｆから構成されている。７は右腕部ユニットであり、組込型制御装置１０Ｂと６つのサーボドライブ９Ｇ〜９Ｌから構成されている。８は移動体部ユニットであり、組込型制御装置１０Ｃと、３つのサーボドライブ９Ｍ〜９Ｏから構成される。組込型制御装置１０Ａは左腕の動作を司り、組込型制御装置１０Ｂは右腕部の動作を司り、組込型制御装置１０Ｃは移動体部の動作を司っている。
【０００９】
このような人型ロボットの制御システムを構築するときは、汎用の組込型制御装置が用いられることが多く、各ユニットの組込型制御装置では各々のアプリケーションプログラムが動作する。すなわち、各ユニットのアプリケーションプログラムの容量にはそれぞれ違いがあり、このシステムの場合は、６軸を制御する右腕ユニットと３軸を制御する移動体ユニットのアプリケーションプログラムの容量は前者の場合が大容量となり、汎用の組込型制御装置単体が備える記憶領域を超える場合がある。その場合、大容量のプログラムを予め分割し、各ユニットの組込型制御装置に分散配置する。
【００１０】
図３は、組込型制御装置のフラッシュＲＯＭ１３に記憶されるプログラム所在テーブルの一例であり、その起動プログラムについて、起動順序２１と、ＭＡＣアドレス２２、ＩＰアドレス２３、起動ファイル名２４が記述されている。組込型制御装置はそれぞれ、このテーブルに示された所在情報を基に起動プログラムを入手してメモリ１２に格納し、プログラムを起動させる。
【００１１】
次に図１の組込型制御装置１Ａが起動するときの動作について図を用いて説明する。図３は、組込型制御装置１Ａが起動するときの動作手段を示すフローチャートであり、この図に沿って順に説明する。
（Ｓ１）はじめに組込型制御装置の電源をオンすると、
（Ｓ２）次にＯＳの起動処理をする。ここで、組込型制御装置のハードウェア情報を基に例えば、ネットワーク設定等が完了する。また、ＦＴＰサーバ等、組込型制御装置の間でデータ授受できるネットワーク機能も起動している。
（Ｓ３）次に図３に示すプログラム所在テーブルを基にＬＯＣＡＬのプログラムがあるかどうかを判断し、あれば（Ｓ４）に進み、なければ（Ｓ５）に移行する。
（Ｓ４）ＬＯＣＡＬのプログラムがあれば、自らの記憶領域の起動ファイル名２４のプログラムをメモリに展開する。
（Ｓ５）プログラム所在テーブルを基にＬＯＣＡＬ以外のプログラムファイルがあるかどうかを判断し、あれば（Ｓ６）に進み、なければ（Ｓ７）に移行する。
（Ｓ６）ＭＡＣアドレス２２もしくはＩＰアドレス２３よりプログラムをＦＴＰ等の転送手段によりダウンロードし、プログラムをメモリに展開する。
（Ｓ７）プログラム所在テーブルに登録されているプログラムのすべてをメモリに展開して完了したかどうかを判断し、完了していなければ、Ｓ３にジャンプする。
（Ｓ８）完了していれば、メモリに展開されたプログラム群を順次起動し、
組込型制御装置のプログラム起動処理が完了する。
このように、当該組込型制御装置以外のところからコピーして使うので、フラッシュＲＯＭの容量を大きくすること無く、大容量の起動プログラムを起動させることができるのである。
【００１２】
図５は、図１の組込型制御装置の構成に復号化部１８を加えたものであり、ネットワーク２をインターネット２Ｂに変えたものである。図において組込型制御装置１Ｅ、１Ｆは組込型制御装置１Ｄと同じ構成をしている。組込型制御装置１Ｄが起動すると、ブート部１６が所定のプログラムを起動させる。その際、まずフラッシュＲＯＭ１３に格納されたプログラム所在テーブルを参照し、予め暗号化されたプログラムをダウンロードして、フラッシュＲＯＭ１３に格納された共通鍵を使って、復号化部１８がプログラムを復号化してメモリ１２に格納し、その後そのプログラムを実行させる。この動作はプログラム所在テーブルに記録されたプログラムの数だけ処理される。こうしてＣＰＵ１１が所定のプログラムを処理して所定の機能を果たすことができる。
【００１３】
次に図５の組込型制御装置１Ｄが起動するときの動作について図を用いて説明する。図６は、組込型制御装置１Ｄが起動するときの動作手段を示すフローチャートであり、この図に沿って順に説明する。
（Ｓ１）はじめに組込型制御装置の電源をオンすると、
（Ｓ２）次にＯＳの起動処理をする。ここで、組込型制御装置のハードウェア情報を基に例えば、ネットワーク設定等が完了する。また、ＦＴＰサーバ等、組込型制御装置の間でデータ授受できるネットワーク機能も起動している。
（Ｓ３）次に図３に示すプログラム所在テーブルを基にＬＯＣＡＬのプログラムがあるかどうかを判断し、あれば（Ｓ４Ｂ）に進み、なければ（Ｓ５）に移行する。
（Ｓ４Ｂ）ＬＯＣＡＬのプログラムがあれば、自らの記憶領域の起動ファイル名２４のプログラムを共通鍵を使って復号化し、メモリに展開する。
（Ｓ５）プログラム所在テーブルを基にＬＯＣＡＬ以外のプログラムファイルがあるかどうかを判断し、あれば（Ｓ６）に進み、なければ（Ｓ７）に移行する。
（Ｓ６Ｂ）ＭＡＣアドレス２２もしくはＩＰアドレス２３よりプログラムをＦＴＰ等の転送手段によりダウンロードし、プログラムを共通鍵を使って復号化し、メモリに展開する。
（Ｓ７）プログラム所在テーブルに登録されているプログラムのすべてをメモリに展開して完了したかどうかを判断し、完了していなければ、Ｓ３にジャンプする。
（Ｓ８）完了していれば、メモリに展開されたプログラム群を順次起動し、
組込型制御装置のプログラム起動処理が完了する。
このように、インターネットのようなネットワークで接続された場合においても、ダウンロードするプログラムは暗号化されているので、プログラムの不正利用を防ぎ安全になるという効果がある。
また、インターネット上のサーバから起動プログラムを取得するようにすれば、組込型制御装置を構成するフラッシュROM容量を小さくでき、小形化や低コスト化が可能となり、組込対象となるロボット等の範囲が広がる。
【図面の簡単な説明】
【００１４】
【図１】本発明の組込型制御装置の構成と接続状況を示す図（１）
【図２】本発明の組込型制御装置の適用例を示す図
【図３】プログラム所在テーブルの説明図
【図４】動作手順を説明するフローチャート（１）
【図５】本発明の組込型制御装置の構成と接続状況を示す図（２）
【図６】動作手順を説明するフローチャート（２）
【符号の説明】
【００１５】
１  組込型制御装置          ２  ネットワーク     ３  計算機
４  記憶装置                ５  制御システム     ６  左腕部ユニット
７  右腕部ユニット          ８  移動体部ユニット ９  サーボドライブ
１１  ＣＰＵ                １２  メモリ         １３  フラッシュＲＯＭ
１４  ネットワークデバイス  １５  入力部         １６  ブート部
１７  出力部                １８  復号化部
【図１】
2007141205.tif 000003
【図２】
2007141205.tif 000004
【図３】
2007141205.tif 000005
【図４】
2007141205.tif 000006
【図５】
2007141205.tif 000007
【図６】
2007141205.tif 000008