(57)【要約】【課題】  初期化モジュールをソフトウェアモジュールの追加・削除・入れ替えに簡単に対応できるようにすると共に、ソフトウェアモジュール情報の簡単な入力だけで処理のオーバヘッドが少なく、しかもサイズの小さな実行形式ファイルを作成することができるモーションコントローラのカスタマイズ装置を提供する。【解決手段】  初期化関数のアドレスを受け渡す関数テーブル２１と、モジュールデータベース５１と、ファイル名と初期化の順序が記述されている起動設定ファイル７１と、選択モジュールリスト５２と、キー入力により選択モジュールリスト５２を作成するモジュール選択画面処理部５０と、起動設定ファイル７１を生成する起動設定ファイル生成部７０と、リンク情報ファイル３１を生成するリンク情報生成部６０と、を備える。【選択図】図１
2008052703.tif 000002
【特許請求の範囲】
【請求項１】
モーションコントローラに求められる機能を実装した複数のソフトウェアモジュールと、
ＯＳの機能や標準関数を含むシステムモジュールと、
前記複数のソフトウェアモジュールの初期化を行う初期化モジュールと、
リンクするモジュールが記述されたリンク情報ファイルと、
該リンク情報ファイルに従って前記複数のソフトウェアモジュールと前記システムモジュールと前記初期化モジュールをリンクし実行形式ファイルを出力するリンク処理部と、を有するモーションコントローラのカスタマイズ装置において、
関数のシンボル名から関数のアドレスを取得し、前記初期化モジュールに初期化関数のアドレスを受け渡す関数テーブルと、
前記ソフトウェアモジュールのモジュール名とファイル名と前記ソフトウェアモジュール間の依存関係とを定義したモジュールデータベースと、
前記ソフトウェアモジュールを初期化するときのファイル名と初期化の順序が記述されている起動設定ファイルと、
前記モーションコントローラを構成するために選択された前記ソフトウェアモジュールが格納されている選択モジュールリストと、
前記モジュールデータベースの内容を表示すると共に、ユーザからのキー入力により選択された前記ソフトウェアモジュールから前記選択モジュールリストを作成するモジュール選択画面処理部と、
前記選択モジュールリストに従って前記起動設定ファイルを生成する起動設定ファイル生成部と、
前記選択モジュールリストと前記システムモジュールと前記初期化モジュールをリンクするために実行するコマンドが記述されたリンクコマンド設定ファイルと、
前記リンクコマンド設定ファイルと前記選択モジュールリストとにより前記リンク情報ファイルを生成するリンク情報生成部と、
を備えることを特徴とするモーションコントローラのカスタマイズ装置。
【請求項２】
前記初期化モジュールが、前記起動設定ファイルに記述された内容および順序に従って前記関数テーブルから前記ソフトウェアモジュールを初期化するための関数のアドレスを取得し、取得した関数のアドレスから関数を呼び出して前記ソフトウェアモジュールを初期化することを特徴とする請求項１記載のモーションコントローラのカスタマイズ装置。
【請求項３】
前記モジュール選択画面処理部が、ユーザが新たに作成した前記ソフトウェアモジュールの情報を入力するモジュール追加画面を作成し、該モジュール追加画面で入力された情報を前記モジュールデータベースへ保存することを特徴とする請求項１記載のモーションコントローラのカスタマイズ装置。
【請求項４】
前記モジュール追加画面で入力された情報に基づいて、ユーザの追加した前記ソフトウェアモジュールが依存している前記ソフトウェアモジュールを検出するシンボル情報処理部をさらに備えることを特徴とする請求項３記載のモーションコントローラのカスタマイズ装置。
【請求項５】
前記リンク情報生成部が、前記リンクコマンド設定ファイルに埋め込まれた特定の文字列を検索し、前記モーションコントローラを構成するために選択された前記ソフトウェアモジュールのモジュール名で特定の文字列を置換し、前記リンク情報ファイルを生成することを特徴とする請求項１記載のモーションコントローラのカスタマイズ装置。
【請求項６】
モーションコントローラに求められる機能を実装した複数のソフトウェアモジュールと、
ＯＳの機能や標準関数を含むシステムモジュールと、
前記複数のソフトウェアモジュールの初期化を行う初期化モジュールと、
リンクするモジュールが記述されたリンク情報ファイルと、
該リンク情報ファイルに従って前記複数のソフトウェアモジュールと前記システムモジュールと前記初期化モジュールをリンクし実行形式ファイルを出力するリンク処理部と、を有するモーションコントローラのカスタマイズ装置において、
組み込み可能な前記ソフトウェアモジュール一覧を画面に表示し、
画面から選択した前記ソフトウェアモジュールを選択モジュールリストに格納し、
前記選択モジュールリストと前記システムモジュールと前記初期化モジュールをリンクするために実行するコマンドが記述されたリンクコマンド設定ファイルと前記選択モジュールリストにより前記リンク情報ファイルを生成し、
前記リンク情報ファイルを基に実行形式ファイルを生成するという手順で処理することを特徴とするモーションコントローラのカスタマイズ方法。
【請求項７】
前記初期化モジュールが、前記ソフトウェアモジュールを初期化するときのファイル名と初期化の順序が記述されている起動設定ファイルに記述された内容および順序に従って、関数のシンボル名から関数のアドレスを取得する関数テーブルから前記ソフトウェアモジュールを初期化するための関数のアドレスを取得し、
取得した関数のアドレスから関数を呼び出して前記ソフトウェアモジュールを初期化するという手順で処理することを特徴とする請求項６記載のモーションコントローラのカスタマイズ方法。
【請求項８】
ユーザが新たに作成した前記ソフトウェアモジュールの情報を入力するモジュール追加画面を作成し、
該モジュール追加画面で入力された情報を前記モジュールデータベースへ保存するという手順で処理することを特徴とする請求項６記載のモーションコントローラのカスタマイズ方法。
【請求項９】
前記モジュール追加画面で入力された情報に基づいて、ユーザの追加した前記ソフトウェアモジュールが依存している前記ソフトウェアモジュールを検出するという手順で処理することを特徴とする請求項８記載のモーションコントローラのカスタマイズ方法。
【請求項１０】
前記リンク情報ファイルを生成するときは、前記リンクコマンド設定ファイルに埋め込まれた特定の文字列を検索し、
前記モーションコントローラを構成するために選択された前記ソフトウェアモジュールのモジュール名で特定の文字列を置換し、
前記リンク情報ファイルを生成するという手順で処理することを特徴とする請求項６記載のモーションコントローラのカスタマイズ方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、追加・削除・入れ替えが可能な複数のソフトウェアモジュールで構成されるモーションコントローラのカスタマイズ装置およびカスタマイズ方法に関する。
【背景技術】
【０００２】
モーションコントローラに対するユーザの機能的・性能的な要求はユーザによってさまざまである。ユーザの要求としては、新しい機能が欲しい、ＲＯＭイメージのサイズを小さくしたい、ＲＯＭイメージのサイズより処理性能を重視したい、などの要求がある。このような要求に応えるため、モーションコントローラに対して、新しいソフトウェアモジュールを追加する、不要なソフトウェアモジュールを削除する、ソフトウェアモジュールを入れ替える、などの作業が必要となる。
【０００３】
ソフトウェアモジュールの追加・削除・入れ替えが可能な従来のモーションコントローラのカスタマイズ装置を図を参照して説明する。
図１６は従来のモーションコントローラのカスタマイズ装置の構成を示すブロック図である。
図１６において、１１、１２、・・・１Ｎ（以降１ｎと記載する）は、モーションコントローラを作成するために必要なソフトウェアモジュールである。また、９０は各ソフトウェアモジュールの初期化を行う初期化モジュール、９１はＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の機能や標準関数などを含むシステムモジュール、１０１はリンクするモジュールのファイル名が記述されたリンク情報ファイル、１００は各モジュールをリンクするリンク処理部、１１０は実行可能な形をした実行形式ファイルである。
リンク処理部１００は、リンク情報ファイル１０１を参照しながら各ソフトウェアモジュール１ｎと、初期化モジュール９０と、システムモジュール９１をリンクし、実行形式ファイル１１０を作成する。
また、８１はソフトウェアモジュール１ｎを初期化するためのコードが記載された初期化コード、８２は初期化コード８１をコンパイルするためのコンパイル情報ファイル、８０は初期化コード８１をコンパイルして初期化モジュール９０を作成するコンパイル処理部である。
【０００４】
このモーションコントローラのカスタマイズ装置を使用して、ソフトウェアモジュールの追加、削除、入れ替えを行う場合は以下の手順で行う。
まず、ユーザの要求を満たしたモーションコントローラを作成するために必要なソフトウェアモジュール１ｎを用意する。もし、ユーザの機能的・性能的な要求を満たしたソフトウェアモジュール１ｎが開発されていない場合、ユーザが新たにソフトウェアモジュール１ｎを開発しなければならない。このとき、過去のソフトウェア資産が利用できればそれらを改造・改修し、新たなソフトウェアモジュール１ｎとすることもある。
次に、各ソフトウェアモジュール１ｎを初期化する初期化コード８１を記述する。新しいソフトウェアモジュール１ｎを追加する場合、新しいソフトウェアモジュール１ｎを初期化するために必要なコードを初期化コード８１へ追加する。不要なソフトウェアモジュール１ｎを削除する場合、不要なソフトウェアモジュール１ｎを初期化するコードを初期化コード８１から削除する。ソフトウェアモジュール１ｎを入れ替える場合は、不要になったソフトウェアモジュール１ｎを初期化するためのコードを初期化コード８１から削除し、新しく追加するソフトウェアモジュール１ｎを初期化するためのコードを初期化コード８１へ追加する。この初期化コード８１はユーザが作成する。
【０００５】
初期化コード８１の作成が完了すると、作成された初期化コード８１をコンパイルするためのコンパイル情報ファイル８２を記述する。コンパイル情報ファイル８２には、例えばＣ言語ではヘッダファイルのパス、最適化レベル、コンパイルするファイル名などを記述する。コンパイル情報ファイル８２はユーザが記述する。
そしてユーザが、図示しない端末からコンパイルを指示すると、コンパイル処理部８１がコンパイル情報ファイル８２を使用して、初期化コード８１をコンパイルして、初期化モジュール９０を生成する。
次に、初期化モジュール９０と、システムモジュール９１と、必要なソフトウェアモジュール１ｎをリンクするためのリンク情報ファイル１０１を記述する。リンク情報ファイル１０１には、リンクするモジュールのファイル名を記述する。リンク情報ファイル１０１はユーザが記述する。
そしてユーザが、図示しない端末からリンクを指示すると、リンク処理部１００がリンク情報ファイル１０１を使用して、初期化モジュール９０と、システムモジュール９１と、ユーザの要求を満たすために必要なソフトウェアモジュール１ｎとをリンクして、モーションコントローラの実行形式ファイル１１０を生成する。
【０００６】
ところで、ソフトウェアモジュールを実行時に追加・削除・入れ替える技術が公開されている（例えば、特許文献１参照）。
特許文献１では、必要なライブラリをそれぞれのソフトウェアモジュールにリンクし、個々のソフトウェアモジュールを単独で実行することが可能な実行形式ファイルとしている。その結果生成される複数の実行形式ファイルをＲＯＭに格納している。それぞれのソフトウェアモジュールが実行形式ファイルとなっているので、不要なソフトウェアモジュールがあれば、そのソフトウェアモジュールの実行形式ファイルをＲＯＭイメージから削除する。また、新しいソフトウェアモジュールを追加する際には新しく実行形式ファイルを作成し、作成した実行形式ファイルをＲＯＭイメージに追加する。ソフトウェアモジュールの入れ替えは、不要になったソフトウェアモジュールの実行形式ファイルを削除し、新しいソフトウェアモジュールの実行形式ファイルを追加する。
また、デバイスが接続されたことをモーションコントローラが検出すると、検出したデバイスを操作するために必要なソフトウェアモジュールを自動的にリンクするという技術もある（例えば、特許文献２参照）。
この技術では、モーションコントローラへ接続するデバイスにそのデバイスを操作するための情報を持たせ、その情報に応じて必要なソフトウェアモジュールを特定している。
また、特許文献３では、要・不要を問わずすべてのソフトウェアモジュールを含んだ実行形式ファイルを作成している。特許文献３で述べられている技術は、初期化コードがフラグや状態変数を参照し、実行するソフトウェアモジュールを切り替える、というものである。
【特許文献１】特開平１１−１１９９８１号公報（図３）
【特許文献２】特開２００２−７２９９号公報（図１）
【特許文献３】特開２００４−９４４５７号公報（図１、図２）
【発明の開示】
【発明が解決しようとする課題】
【０００７】
従来のモーションコントローラのカスタマイズ装置では、初期化コードやコンパイル情報、リンク情報をユーザが記述しなければならず、非常に手間がかかる。また、誤りが混入しやすく、ソフトウェアのバグやコンパイルエラー、リンクエラーが発生してしまうという問題があった。
また、ソフトウェアモジュール間には依存関係が存在することがあり、あるソフトウェアモジュールを初期化するためには別のソフトウェアモジュールの初期化が完了していなければならない場合がある。このような場合、初期化コードを記述するにはソフトウェアモジュールに関する知識が必要となり、非常に困難である。また、初期化コードをＣ言語やＣ＋＋言語で記述する場合、初期化コードを記述するために必要なヘッダファイルの名称・ファイルパスを把握していなければならず、これもユーザにとっては負担が大きい。
【０００８】
特許文献１では、各ソフトウェアモジュールがそれぞれ１つの実行形式ファイルとなっているため、ソフトウェアモジュール間で関数を直接呼び出すことができず、ソフトウェアモジュール間で連携するためには、ＯＳの機能を使用してメッセージを送受信するか、共有メモリを介してデータを授受するか、などの方策が必要となるが、このような方策は一般に処理のオーバヘッドが大きい、という問題がある。
また、特許文献２では、新しく接続されたデバイスを操作するためのソフトウェアモジュールが自動的にリンクされるが、モーションコントローラにもともと組み込まれているソフトウェアモジュールに不要なソフトウェアモジュールがあってもそれを取り除くことができず、ＲＯＭサイズが大きくなるという問題がある。
また、特許文献３では、要・不要を問わずすべてのソフトウェアモジュールを含んだプログラムを作成するため、ＲＯＭサイズが大きくなるという問題がある。
本発明はこのような問題点に鑑みてなされたものであり、初期化モジュールをソフトウェアモジュールの追加・削除・入れ替えに簡単に対応できるようにすると共に、ソフトウェアモジュール情報の簡単な入力だけで処理のオーバヘッドが少なく、しかもサイズの小さな実行形式ファイルを作成することができるモーションコントローラのカスタマイズ装置を提供することを目的とする。
【課題を解決するための手段】
【０００９】
上記問題を解決するため、本発明は、次のように構成したのである。
【００１０】
請求項１に記載の発明は、モーションコントローラに求められる機能を実装した複数のソフトウェアモジュールと、ＯＳの機能や標準関数を含むシステムモジュールと、前記複数のソフトウェアモジュールの初期化を行う初期化モジュールと、リンクするモジュールが記述されたリンク情報ファイルと、該リンク情報ファイルに従って前記複数のソフトウェアモジュールと前記システムモジュールと前記初期化モジュールをリンクし実行形式ファイルを出力するリンク処理部と、を有するモーションコントローラのカスタマイズ装置において、関数のシンボル名から関数のアドレスを取得し、前記初期化モジュールに初期化関数のアドレスを受け渡す関数テーブルと、前記ソフトウェアモジュールのモジュール名とファイル名と前記ソフトウェアモジュール間の依存関係とを定義したモジュールデータベースと、前記各ソフトウェアモジュールを初期化するときのファイル名と初期化の順序が記述されている起動設定ファイルと、前記モーションコントローラを構成するために選択された前記ソフトウェアモジュールが格納されている選択モジュールリストと、前記モジュールデータベースの内容を表示すると共に、ユーザからのキー入力により選択された前記ソフトウェアモジュールから前記選択モジュールリストを作成するモジュール選択画面処理部と、前記選択モジュールリストに従って前記起動設定ファイルを生成する起動設定ファイル生成部と、前記選択モジュールリストと前記システムモジュールと前記初期化モジュールをリンクするために実行するコマンドが記述されたリンクコマンド設定ファイルと、前記リンクコマンド設定ファイルと前記選択モジュールリストとにより前記リンク情報ファイルを生成するリンク情報生成部と、を備えることを特徴とするものである。
また、請求項２に記載の発明は、請求項１記載のモーションコントローラのカスタマイズ装置において、前記初期化モジュールが、前記起動設定ファイルに記述された内容および順序に従って前記関数テーブルから前記ソフトウェアモジュールを初期化するための関数のアドレスを取得し、取得した関数のアドレスから関数を呼び出して前記ソフトウェアモジュールを初期化することを特徴とするものである。
また、請求項３に記載の発明は、請求項１記載のモーションコントローラのカスタマイズ装置において、前記モジュール選択画面処理部が、ユーザが新たに作成した前記ソフトウェアモジュールの情報を入力するモジュール追加画面を作成し、該モジュール追加画面で入力された情報を前記モジュールデータベースへ保存することを特徴とするものである。
また、請求項４に記載の発明は、請求項３記載のモーションコントローラのカスタマイズ装置において、前記モジュール追加画面で入力された情報に基づいて、ユーザの追加した前記ソフトウェアモジュールが依存している前記ソフトウェアモジュールを検出するシンボル情報処理部をさらに備えることを特徴とするものである。
また、請求項５に記載の発明は、請求項１記載のモーションコントローラのカスタマイズ装置において、前記リンク情報生成部が、前記リンクコマンド設定ファイルに埋め込まれた特定の文字列を検索し、前記モーションコントローラを構成するために選択された前記ソフトウェアモジュールのモジュール名で特定の文字列を置換し、前記リンク情報ファイルを生成することを特徴とするものである。
【００１１】
また、請求項６に記載の発明は、モーションコントローラに求められる機能を実装した複数のソフトウェアモジュールと、ＯＳの機能や標準関数を含むシステムモジュールと、前記複数のソフトウェアモジュールの初期化を行う初期化モジュールと、リンクするモジュールが記述されたリンク情報ファイルと、該リンク情報ファイルに従って前記複数のソフトウェアモジュールと前記システムモジュールと前記初期化モジュールをリンクし実行形式ファイルを出力するリンク処理部と、を有するモーションコントローラのカスタマイズ装置において、組み込み可能な前記ソフトウェアモジュール一覧を画面に表示し、画面から選択した前記ソフトウェアモジュールを選択モジュールリストに格納し、前記選択モジュールリストと前記システムモジュールと前記初期化モジュールをリンクするために実行するコマンドが記述されたリンクコマンド設定ファイルと前記選択モジュールリストにより前記リンク情報ファイルを生成し、前記リンク情報ファイルを基に実行形式ファイルを生成するという手順で処理することを特徴とするものである。
また、請求項７に記載の発明は、請求項６記載のモーションコントローラのカスタマイズ方法において、前記初期化モジュールが、前記ソフトウェアモジュールを初期化するときのファイル名と初期化の順序が記述されている起動設定ファイルに記述された内容および順序に従って、関数のシンボル名から関数のアドレスを取得する関数テーブルから前記ソフトウェアモジュールを初期化するための関数のアドレスを取得し、取得した関数のアドレスから関数を呼び出して前記ソフトウェアモジュールを初期化するという手順で処理することを特徴とするものである。
また、請求項８に記載の発明は、請求項６記載のモーションコントローラのカスタマイズ方法において、ユーザが新たに作成した前記ソフトウェアモジュールの情報を入力するモジュール追加画面を作成し、該モジュール追加画面で入力された情報を前記モジュールデータベースへ保存するという手順で処理することを特徴とするものである。
また、請求項９に記載の発明は、請求項８記載のモーションコントローラのカスタマイズ方法において、前記モジュール追加画面で入力された情報に基づいて、ユーザの追加した前記ソフトウェアモジュールが依存している前記ソフトウェアモジュールを検出するという手順で処理することを特徴とするものである。
また、請求項１０に記載の発明は、請求項６記載のモーションコントローラのカスタマイズ方法において、前記リンク情報情報ファイルを生成するときは、前記リンクコマンド設定ファイルに埋め込まれた特定の文字列を検索し、前記モーションコントローラを構成するために選択された前期ソフトウェアモジュールで検索した文字列を置換し、前記リンク情報ファイルを生成するという手順で処理することを特徴とするものである。
【発明の効果】
【００１２】
請求項１、６に記載の発明によると、モーションコントローラのカスタマイズ装置に、関数のシンボル名から関数のアドレスを取得し、初期化モジュールに初期化関数のアドレスを受け渡す関数テーブルと、ソフトウェアモジュールのモジュール名とファイル名とソフトウェアモジュール間の依存関係とを定義したモジュールデータベースと、ソフトウェアモジュールを初期化するときのファイル名と初期化の順序が記述されている起動設定ファイルと、モーションコントローラを構成するために選択されたソフトウェアモジュールが格納されている選択モジュールリストと、モジュールデータベースの内容を表示すると共に、ユーザからのキー入力により選択されたソフトウェアモジュールから選択モジュールリストを作成するモジュール選択画面処理部と、選択モジュールリストに従って起動設定ファイルを生成する起動設定ファイル生成部と、選択モジュールリストとシステムモジュールと初期化モジュールをリンクするために実行するコマンドが記述されたリンクコマンド設定ファイルと、リンクコマンド設定ファイルと選択モジュールリストによりリンク情報ファイルを生成するリンク情報生成部と、を備え、組み込み可能なソフトウェアモジュール一覧を画面に表示し、画面から選択した前記ソフトウェアモジュールを選択モジュールリストに格納し、選択モジュールリストとシステムモジュールと初期化モジュールをリンクするために実行するコマンドが記述されたリンクコマンド設定ファイルと選択モジュールリストによりリンク情報ファイルを生成し、リンク情報ファイルを基に実行形式ファイルを生成するので、ソフトウェアモジュール情報の簡単な入力だけで必要なソフトウェアモジュールだけで構成された処理のオーバヘッドが少なく、しかもサイズの小さな実行形式ファイルを生成することができる。
【００１３】
また、請求項２、７に記載の発明によると、初期化モジュールが、起動設定ファイルに記述された内容および順序に従って関数テーブルからソフトウェアモジュールを初期化するための関数のアドレスを取得し、取得した関数のアドレスから関数を呼び出して各ソフトウェアモジュールを初期化するので、ソフトウェアモジュールの任意の組み合わせで動作可能で、ソフトウェアモジュールの組み合わせに応じて初期化モジュールを書き換える必要が無いので、初期化コードを記述する手間や、初期化コードをコンパイルする手間が省け、ソフトウェアモジュールの追加・削除・入れ替えに簡単に対応できる。
また、請求項３、４、８、９に記載の発明によると、モジュール選択画面処理部が、ユーザが新たに作成した前記ソフトウェアモジュールの情報を入力するモジュール追加画面を作成し、モジュール追加画面で入力された情報をモジュールデータベースへ保存するので、ユーザが作成したソフトウェアモジュールを簡単に追加することができ、簡単に実行形式ファイルを生成することができる。
また、請求項５、１０に記載の発明によると、リンク情報生成部が、リンクコマンド設定ファイルに埋め込まれた特定の文字列を検索し、モーションコントローラを構成するために選択されたソフトウェアモジュールで検索した文字列を置換する、という手順でリンク情報ファイルを生成するので、異なるリンクコマンドを使用しなければならないハードウェアに対してもリンクコマンド設定ファイルを書き換えるだけで実行形式ファイルを簡単に生成することができる。
【発明を実施するための最良の形態】
【００１４】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【００１５】
図１は、本発明のモーションコントローラのカスタマイズ装置の構成を示すブロック図である。
図１において、１１、１２、・・・１Ｎ（以降１ｎと記載する）は、モーションコントローラを作成するために必要なソフトウェアモジュールである。また、２０は各ソフトウェアモジュール１ｎの初期化を実行する初期化モジュール、２２はＯＳ（Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）の機能や標準関数などを含むシステムモジュール、３１はリンクするモジュールのファイル名が記述されたリンク情報ファイル、３０は各モジュールをリンクするリンク処理部、４０は実行可能な形をした実行形式ファイルである。
リンク処理部３０は、リンク情報ファイル３１に記述された内容に従って必要なソフトウェアモジュール１ｎと、初期化モジュール２０、システムモジュール２２をリンクして実行形式ファイル４０を作成する。
ここまでの構成は基本的には従来の構成と同一であるが、図１６に示す従来の初期化モジュール９０はユーザが初期化コード８１を記述してコンパイルしていたが、本発明の初期化モジュール２０は、関数テーブル２１、起動設定ファイル７１を参照して自動的に初期化を実行するので、初期化コード８１を記載する必要がない。また、リンク情報ファイル３１も従来はユーザが記述していたが、本発明では後述するリンク情報生成部６０が自動的に生成する。
【００１６】
次に本発明で従来と異なる点の構成を説明する。
５１はモジュールデータベースで、各ソフトウェアモジュール１ｎのモジュール名、ファイル名、各ソフトウェアモジュール１ｎ間の依存関係を定義している。
５２は選択モジュールリストで、モーションコントローラを構成するのに必要なソフトウェアモジュール１ｎが選択され、格納されている。
５０はモジュール選択画面処理部で、モジュールデータベース５１の内容をモジュール選択画面５４に表示すると共に、ユーザからのキー入力により選択されたソフトウェアモジュール１ｎから選択モジュールリスト５２を作成する。また、ユーザが新たに作成したソフトウェアモジュール１ｎの情報を入力するモジュール追加画面５５も作成する。
６１はリンクコマンド設定ファイルである。リンクコマンド設定ファイル６１には、選択モジュールリスト５２と、初期化モジュール２０と、システムモジュール２２と、をリンクして実行形式ファイル４０を作成するための手順が記述されている。リンクコマンド設定ファイル６１は、本発明におけるモーションコントローラのカスタマイズ装置とともに配布される。
６０はリンク情報生成部で選択モジュールリスト５２を受け取り、リンクコマンド設定ファイル６１に従ってリンク情報ファイル３１を生成する。
５３はシンボル情報処理部で、ソフトウェアモジュール１ｎ追加の際にシンボル情報を自動的に処理する。
５６は未定義シンボルリストで、未定義のシンボルを格納する。
５７は依存モジュールリストで、あるモジュールで未定義のシンボルが定義されていて、依存関係にあるモジュールを格納する。
２１は関数テーブルで、関数のシンボル名から関数のアドレスを取得し、初期化モジュール２０に初期化関数のアドレスを受け渡す。
７１は各ソフトウェアモジュール１ｎを初期化するときのファイル名と順序が記述されている起動設定ファイルである。７０は起動設定ファイル生成部で選択モジュールリスト５２に従って起動設定ファイル７１を生成する。
【００１７】
次に、ユーザがモジュールデータベース５１から必要なソフトウェアモジュール１ｎを選択し、リンク情報生成部６０がリンク情報ファイル３１を自動的に生成し、リンク処理部３０が実行形式ファイル４０を生成する手順について説明する。
図２は本発明のモーションコントローラのカスタマイズ方法の処理手順を示すフローチャートである。
まずユーザが、図示しない端末からリンク情報ファイル生成を指示すると、ステップＳ１でモジュール選択画面処理部５０は、ソフトウェアモジュール１ｎのモジュール名とファイル名と各ソフトウェアモジュール１ｎ間の依存関係が定義されたモジュールデータベース５１を読み込み、モーションコントローラに組み込み可能なソフトウェアモジュール１ｎの一覧をモジュール選択画面５４に表示する。ユーザは画面に表示されたソフトウェアモジュール１ｎの中で必要なものを選択した後、モジュール選択画面５４のＯＫボタンを押下する。ＯＫボタンが押下されると、ステップＳ２でユーザが選択したソフトウェアモジュール１ｎが選択モジュールリスト５２へ格納される。
選択が完了した後、ステップＳ３でリンク情報生成部６０は、選択モジュールリスト５２をモジュール選択画面処理部５０から受け取り、リンクコマンド設定ファイル６１と選択モジュールリスト５２によりリンク情報ファイル３１を生成する。リンク情報ファイル３１には、選択モジュールリスト５２に含まれるソフトウェアモジュール１ｎのファイル名が設定される。そしてステップＳ４でリンク処理部３０はリンク情報ファイル３１に記述された内容に従って必要なソフトウェアモジュール１ｎと初期化モジュール２０、システムモジュール２２をリンクして実行形式ファイル４０を生成する。
【００１８】
次に自動的にソフトウェアモジュール１ｎの初期化を行うための起動設定ファイル７１の生成について説明する。
ユーザがソフトウェアモジュール１ｎを選択した後、起動設定ファイル生成部７０は、選択モジュールリスト５２をモジュール選択画面処理部５０から受け取る。起動設定ファイル生成部７０は、選択モジュールリスト５２からソフトウェアモジュール１ｎの依存関係に基づいて起動設定ファイル７１を生成する。
このようにリンク情報ファイル３１、起動設定ファイル７１は、ユーザがモジュール選択画面５４により、使用するソフトウェアモジュール１ｎを選択すると自動的に生成される。
【００１９】
ここでモジュールデータベース５１について説明する。
図３は、モジュールデータベース５１の記述例である。
図３の記述例では、モジュールデータベース５１はＸＭＬ（Ｅｘｔｅｎｓｉｂｌｅ  Ｍａｒｋｕｐ  Ｌａｎｇｕａｇｅ）形式で記述されている。ｍｏｄｕｌｅＬｉｓｔというタグの中に複数のｍｏｄｕｌｅタグが定義されている。１つのｍｏｄｕｌｅタグは１つのソフトウェアモジュールに対応する。ｍｏｄｕｌｅタグには、ｎａｍｅタグと、ｆｉｌｅタグと、ｒｅｑｕｉｒｅｄタグと、が含まれる。ｎａｍｅタグはソフトウェアモジュールのモジュール名を示し、ｆｉｌｅタグはソフトウェアモジュールのファイル名を示し、ｒｅｑｕｉｒｅｄタグはソフトウェアモジュール間の依存関係を示している。図２の例ではｍｏｄｕｌｅ１のｒｅｑｕｉｒｅｄタグにｍｏｄｕｌｅ２が記述されている。このことからｍｏｄｕｌｅ１はｍｏｄｕｌｅ２に依存していることが分かる。また、ｍｏｄｕｌｅ２、Ｍｏｄｕｌｅ３にはｒｅｑｕｉｒｅｄタグが記述されていない。これはｍｏｄｕｌｅ２、Ｍｏｄｕｌｅ３が他のソフトウェアモジュールにまったく依存していないことを示す。
図３では、モジュールデータベース５１の記述にＸＭＬ形式を使用しているが、他にＣＳＶ（Ｃｏｍｍａ  Ｓｅｐａｒａｔｅｄ  Ｖａｌｕｅｓ）形式などのテキストファイルや、バイナリファイルも利用することが可能である。
【００２０】
次にモジュール選択操作とリンク情報ファイル３１作成の詳細を説明をする。
図４は、モジュール選択画面５４の画面構成を示す図である。
モジュール選択画面５４は、モジュール選択画面処理部５０が、モジュールデータベース５１を読み込んでソフトウェアモジュール１ｎの一覧を表示する。各ソフトウェアモジュール１ｎのモジュール名の前にはチェックボックスがつけられている。ユーザは必要なソフトウェアモジュール１ｎの前にあるチェックボックスをチェックする。また、不要なソフトウェアモジュール１ｎの前にあるチェックボックスにチェックがついていればチェックを外す。図４ではＭｏｄｕｌｅ１とＭｏｄｕｌｅ２が選択されている。Ｍｏｄｕｌｅ３は不要であるため選択されていない。ユーザは必要なソフトウェアモジュール１ｎを全てチェックし、不要なソフトウェアモジュール１ｎにチェックがついていないことを確認した後、ＯＫボタンを押下する。ＯＫボタンが押下されると、モジュール選択画面処理部５０は選択モジュールリスト５２を生成し、リンク情報生成部６０および起動設定ファイル生成部７０へ選択モジュールリスト５２を渡す。選択モジュールリスト５２には、ユーザによって選択されたソフトウェアモジュール１ｎがすべて含まれている。リンク情報生成部６０は、リンクコマンド設定ファイル６１に従って、受け取った選択モジュールリスト５２に含まれる各ソフトウェアモジュール１ｎのファイル名をリンク情報ファイル３１へ設定する。
リンク処理部３０はリンク情報ファイル３１に記述された内容に従ってリンクを実行し、１つの実行形式ファイル４０を生成する。
以上のような手順により、不要なソフトウェアモジュールを除いて必要なソフトウェアモジュールだけで構成された実行形式ファイルをモジュール選択画面を使用して簡単な操作で生成することができる。
【００２１】
ここでリンク情報ファイル３１設定の詳細を説明する。
図５は、リンクコマンド設定ファイル６１の記述例である。図６はリンク情報ファイル３１の記述例である。
リンクコマンド設定ファイル６１には、選択モジュールリスト５２と、初期化モジュール２０と、システムモジュール２２と、をリンクして実行形式ファイル４０を作成するための手順が記述されている。図５では、実行形式ファイル４０を作成するための３つのコマンドとそのコマンドに渡されるオプションが記述されている。図５では、まず“ｌｄ  −ｏ  ｔｅｍｐ．ｂｉｎ  ％ｍｏｄｌｉｓｔ％”を実行するように設定されている。ここで“ｌｄ”は実行するコマンド名、オプションが“−ｏ  ｔｅｍｐ．ｂｉｎ  ％ｍｏｄｌｉｓｔ％”である。“ｌｄ”は“％ｍｏｄｌｉｓｔ％”の部分に指定されたバイナリファイルをリンクするコマンドである。“−ｏ”は出力ファイル名を指定するためのオプションで、この例では“ｔｅｍｐ．ｂｉｎ”を出力ファイル名として指定している。次に“ｄｅｆｌａｔｅ  ＜  ｔｅｍｐ．ｂｉｎ  ＞  ｔｅｍｐ．ｂｉｎ．ｚ”が設定されている。ここでは“ｄｅｆｌａｔｅ”が実行するコマンド名であり、このコマンドは入力されたファイルを圧縮することを示している。“＜”は入力ファイル名を指定するためのオプションであり、“ｔｅｍｐ．ｂｉｎ”が入力ファイルとして渡されることを示している。また、“＞”は出力ファイル名を指定するためのオプションであり、“ｔｅｍｐ．ｂｉｎ．ｚ”が出力ファイルとして生成されることを示している。最後の“ｌｄ  −ｏ  ｓｙｓｔｅｍ．ｂｉｎ  ｉｎｉｔ．ｏ  ｔｅｍｐ．ｂｉｎ．ｚ”は、“ｌｄ”コマンドで二つのバイナリファイル“ｉｎｉｔ．ｏ”と“ｔｅｍｐ．ｂｉｎ．ｚ”をリンクし、出力ファイルとして“ｓｙｓｔｅｍ．ｂｉｎ”を出力することを示している。
リンク情報生成部６０は、まず、リンクコマンド設定ファイル６１を読み込み、メモリに展開する。次に、メモリに展開したリンクコマンド設定ファイル６１から特定の文字列、たとえば、図５の記述例では％ｍｏｄｌｉｓｔ％を検索し、選択モジュールリスト５２に含まれる各ソフトウェアモジュール１ｎのファイル名で％ｍｏｄｌｉｓｔ％を置換する。最後に、メモリに展開している内容に従ってリンク情報ファイル３１を設定する。図４ではＭｏｄｕｌｅ１とＭｏｄｕｌｅ２が選択されており、それぞれファイル名がｍｏｄｕｌｅｓ／ｍｏｄｕｌｅ１．ｏ、ｍｏｄｕｌｅｓ／ｍｏｄｕｌｅ２．ｏとなっている。このため、％ｍｏｄｌｉｓｔ％はｍｏｄｕｌｅｓ／ｍｏｄｕｌｅ１．ｏ  ｍｏｄｕｌｅｓ／ｍｏｄｕｌｅ２．ｏで置換される。以上の例では、リンク情報ファイル３１は図６のように設定される。
【００２２】
次に起動設定ファイル７１設定の詳細を説明する。
図７は、起動設定ファイル生成部７０の処理手順を示すフローチャートである。
起動設定ファイル生成部７０は、まず、ステップＳ１１で選択モジュールリスト５２を取得する。次に、ステップＳ１２で選択モジュールリスト５２に含まれるソフトウェアモジュール１ｎを全て未処理に設定する。続いて、ステップＳ１３で選択モジュールリスト５２に未処理のソフトウェアモジュール１ｎが含まれているか調べ、選択モジュールリスト５２に未処理のソフトウェアモジュール１ｎが含まれている場合はステップＳ１４の処理を実行する。含まれていない場合、起動設定ファイル生成部７０は処理を終了する。ステップＳ１４では、選択モジュールリスト５２から未処理のソフトウェアモジュール１ｎを１つ取り出す。取り出したソフトウェアモジュール１ｎはステップＳ１５で処理される。ステップＳ１５の処理を詳しく記述したのが図８である。ステップＳ１５の処理が完了した後、ステップＳ１３に戻り、選択モジュールリスト５２に未処理のソフトウェアモジュール１ｎが含まれているか調べ、含まれていればステップＳ１４とステップＳ１５を繰り返す。含まれていない場合、起動設定ファイル生成部７０は処理を終了する。
【００２３】
図８は、起動設定ファイル生成部７０の処理手順の一部を詳細に示したものであり、ステップＳ１５の処理手順をフローチャートで示したものである。
ステップＳ１５に処理が移ると、まず、ステップＳ２１で処理対象としているソフトウェアモジュール１ｎが依存しているソフトウェアモジュール１ｎのリストをモジュールデータベース５１から取得する。次に、ステップＳ２２で依存しているソフトウェアモジュール１ｎのリストが空かどうか調べる。リストが空の場合はステップＳ２８の処理を実行し、リストが空でない場合はステップＳ２３の処理を実行する。ステップＳ２３では、依存しているソフトウェアモジュール１ｎのリストからソフトウェアモジュール１ｎを１つ取り出す。続いて、ステップＳ２４で取り出したソフトウェアモジュール１ｎが、選択モジュールリスト５２に含まれているか検索する。ステップＳ２５でソフトウェアモジュール１ｎが見つかった場合、ステップＳ２６の処理を再帰的に呼び出す。すなわち、ステップＳ２１からの処理を再度実行する。
ステップＳ２５でソフトウェアモジュール１ｎが見つからなかった場合、エラーとなり処理を中断する。ステップＳ２６の処理を再帰的に呼び出した後、ステップＳ２７で依存しているソフトウェアモジュール１ｎのリストから処理したソフトウェアモジュール１ｎを削除する。ステップＳ２７の処理が完了した後、再びステップＳ２２で依存しているソフトウェアモジュール１ｎのリストが空かどうか調べ、依存しているソフトウェアモジュール１ｎのリストが空になるまでステップＳ２３〜Ｓ２７を繰り返す。
ステップＳ２８では、起動設定ファイル７１へソフトウェアモジュール１ｎのモジュール名を書き込む。書き込んだ後、ステップＳ２９で、そのソフトウェアモジュール１ｎを処理済に設定する。ステップＳ２９でステップＳ２６の処理は完了する。このように起動設定ファイルに、ソフトウェアモジュールの依存関係により順序をつけて起動すべきソフトウェアモジュールのモジュール名を設定する。
このような手順により起動設定ファイル生成部が起動設定ファイルを作成するので、起動設定ファイルに記述された順序でソフトウェアモジュールを初期化すれば、各ソフトウェアモジュールが正しく起動することが保証される。
【００２４】
図９は、起動設定ファイル８１の記述例を示す図である。
図９の記述例では、起動設定ファイル８１はＸＭＬ形式で記述されている。ｍｏｄｕｌｅＬｉｓｔというタグの中に複数のｍｏｄｕｌｅタグが定義されている。１つのｍｏｄｕｌｅタグは１つのソフトウェアモジュールに対応する。ｍｏｄｕｌｅタグには、ｎａｍｅタグが含まれる。ｎａｍｅタグはソフトウェアモジュールのモジュール名を示す。
この例の場合、ｍｏｄｕｌｅ２、ｍｏｄｕｌｅ１の順で初期化される。
図９では、起動設定ファイルのフォーマットにＸＭＬ形式を使用しているが、他にＣＳＶ形式などのテキストファイルや、バイナリファイルも利用することが可能である。
【００２５】
次に初期化モジュール２０の動作について説明する。
図１０は、実行形式ファイル４０へリンクされた初期化モジュール２０の処理手順を示すフローチャートである。
図１０において、まず、ステップＳ３１で起動するソフトウェアモジュール１ｎのモジュール名を起動設定ファイル７１からメモリへ読み込む。次に、ステップＳ３２〜Ｓ３５でメモリへ読み込んだソフトウェアモジュール１ｎを１つずつ順に処理する。ステップＳ３２では、未初期化のソフトウェアモジュール１ｎが存在するかどうかチェックする。存在しなければ初期化モジュール２０の処理は完了する。存在する場合、ステップＳ３３〜Ｓ３５を実行する。ステップＳ３３では、ソフトウェアモジュール１ｎの初期化関数のアドレスを関数テーブル２１から取得する。ソフトウェアモジュール１ｎの初期化関数は、ソフトウェアモジュール１ｎを実装する際にソフトウェアモジュール１ｎのモジュール名から一意に決定できるよう定義されている。例えば、“ｉｎｉｔ”＋＜ソフトウェアモジュール名＞という関数名で定義しておく。ステップＳ３４でソフトウェアモジュールの初期化関数を呼び出し、ソフトウェアモジュールを初期化する。ステップＳ３５で次のソフトウェアモジュール１ｎへ処理を進める。ステップＳ３５が終了するとステップＳ３２へ戻り、未初期化のソフトウェアモジュール１ｎが存在する間、ステップＳ３２〜ステップＳ３５を繰り返し実行する。
初期化モジュールは以上のように起動設定ファイルに記述された内容および順序に従って関数テーブルからソフトウェアモジュールを初期化するための関数のアドレスを取得し、取得した関数のアドレスから関数を呼び出して各ソフトウェアモジュールを初期化するので、ソフトウェアモジュールの任意の組み合わせで動作可能で、ソフトウェアモジュールの組み合わせに応じて初期化モジュールを書き換える必要が無いので、初期化コードを記述する手間や、初期化コードをコンパイルする手間が省け、ソフトウェアモジュールの追加・削除・入れ替えに簡単に対応できる。
【００２６】
次に新規に作成したソフトウェアモジュール１ｎを追加する場合について説明する。
図１１は、モジュール追加画面５５の画面構成を示す図である。
モジュール追加画面５５は、図４に示すモジュール選択画面５４にある追加ボタンを押下したときに表示される。モジュール追加画面５５には、モジュールデータベース５１でソフトウェアモジュール１ｎごとに記述する必要のある項目を入力するための入力フィールドが設けられている。すなわち、ソフトウェアモジュール１ｎのモジュール名を入力するモジュール名入力フィールドと、ファイル名を入力するファイル名入力フィールドと、依存するソフトウェアモジュール１ｎのモジュール名を入力する依存モジュール入力フィールドが設けられている。ユーザは、各フィールドの項目を入力した後、モジュール追加画面５５のＯＫボタンを押下する。ＯＫボタンが押下されると、モジュール選択画面処理部５０は、入力された項目をモジュールデータベース５１へ保存し、図１２に示すようにモジュール選択画面５４を更新する。更新されたモジュール選択画面５４にはユーザが追加したソフトウェアモジュール１ｎも、既存のソフトウェアモジュール１ｎと同様に表示され、選択することが可能である。
このように、モジュール追加画面５５にいくつかの項目を入力するだけの簡単な操作により、ユーザが作成したソフトウェアモジュールを簡単に追加することができ、簡単に実行形式ファイルを生成することができる。
【実施例２】
【００２７】
次に本発明の第２の実施例として、ソフトウェアモジュール１ｎを追加する場合、ソフトウェアモジュール１ｎに依存しているモジュールをシンボル情報処理部５３が自動的に判別する場合について説明する。
図１３は、本発明の第２の実施例を示すモジュール追加画面５５の画面構成を示す図である。
第２の実施例のモジュール追加画面５５は、モジュール名入力フィールドと、ファイル名入力フィールドのみが設けられている。ユーザは、各項目を入力した後、モジュール追加画面５５のＯＫボタンを押下する。ＯＫボタンが押下されると、シンボル情報処理部５３が処理を開始する。
【００２８】
図１４は、シンボル情報処理部５３の処理手順を示すフローチャートである。
図１４において、まず、ステップＳ４１でソフトウェアモジュール１ｎのファイル名で指定されたモジュールに未定義のシンボルがあるかどうかを判定する。
ここで、シンボル情報の抽出について説明する。
ファイルのシンボル情報は、例えばＬｉｎｕｘ（登録商標）やＵｎｉｘ（登録商標）などで利用可能なユーティリティであるｎｍコマンドを使用して抽出することができる。ｎｍコマンドの出力例を図１５に示す。ｎｍコマンドの出力では、１列目がシンボルのアドレス、２列目がシンボルの種別、３列目がシンボル名を示す。２列目のシンボルの種別から、モジュール内で定義されている、モジュール内で定義されていない、などの種別が分かる。図１５の例では、Ｔが定義されているシンボル、Ｕが未定義のシンボルを表す。
つまり、図１５においては、＿ｆｕｎｃｔｉｏｎが定義されているシンボル、＿＿＿ｍａｉｎ、＿＿ａｌｌｏｃａ、＿ｅｘｔｅｒｎＦｕｎｃｔｉｏｎ、＿ｅｘｔｅｒｎＳｙｍｂｏｌ１、＿ｐｒｉｎｔｆが未定義のシンボルである。
このようにシンボル情報を抽出するユーティリティを使用すれば、モジュール内に未定義のシンボルが含まれているかどうかを判定することができる。
図１４の説明に戻る。ステップＳ４１で未定義のシンボルが見つからなかった場合、シンボル情報処理部５３の処理は終了する。未定義のシンボルが見つかった場合、ステップＳ４２で未定義シンボルを未定義シンボルリスト５６に格納し、ステップＳ４３で依存モジュールリスト５７を空にする。続いて、ステップＳ４４以下の処理をモジュールデータベース５１の各モジュールに対して繰り返す。
【００２９】
ステップＳ４５では、モジュールデータベース５１からソフトウェアモジュール１ｎを取り出し、モジュールのシンボル情報を抽出する。シンボル情報を抽出する際には前述のｎｍコマンドなどを利用することができる。ステップＳ４５で抽出したシンボル情報を基に、ステップＳ４６で未定義シンボルリスト５６に格納されているシンボルが定義されていないかどうかを判定する。未定義シンボルリスト５６に格納されているシンボルが定義されていなければ、ステップＳ４７でモジュールデータベース５１に格納されている次のモジュールへ処理を移す。未定義シンボルリスト５６に格納されているシンボルが定義されている場合、ステップＳ４８で定義されているシンボルを未定義シンボルリスト５６から削除し、ステップＳ４９で依存モジュールリスト５７にモジュールを追加する。続いて、ステップＳ５０で未定義シンボルリスト５６が空かどうか判定する。未定義シンボルリスト５６が空である場合、シンボル情報処理部５３の処理が完了する。未定義シンボルリスト５６が空でない場合、ステップＳ４７でモジュールデータベース５１に格納されている次のモジュールへ処理を移す。ステップＳ４４で全てのモジュールがチェックされたと判定した場合、シンボル情報処理部５３はエラー終了する。
シンボル情報処理部５３がエラー終了した場合、モジュール追加画面６３は未定義シンボルリスト５６の内容を画面に表示する。
【００３０】
シンボル情報処理部５３が正常に終了した場合、モジュール選択画面処理部５０はソフトウェアモジュール１ｎのモジュール名と、ファイル名と、依存モジュールリストと、をモジュールデータベース５１へ保存し、図１２に示すようにモジュール選択画面５４を更新する。更新されたモジュール選択画面５４にはユーザが追加したソフトウェアモジュール１ｎも、既存のソフトウェアモジュール１ｎと同様に表示され、選択することが可能である。
このように、モジュール追加画面５５にいくつかの項目を入力するだけの簡単な操作により、ユーザは追加したいモジュールの依存関係を把握する必要がなく、ユーザが作成したソフトウェアモジュールを簡単に追加することができ、簡単に実行形式ファイルを生成することができる。また、ユーザが追加したモジュールに解決できない未定義のシンボルが存在する場合、モジュール選択時にユーザに対して依存関係の誤りを表示することができる。
【図面の簡単な説明】
【００３１】
【図１】本発明のモーションコントローラのカスタマイズ装置の構成を示すブロック図
【図２】本発明のモーションコントローラのカスタマイズ方法の処理手順を示すフローチャート
【図３】モジュールデータベースの記述例を示す図
【図４】モジュール選択画面表示部の画面構成を示す図
【図５】リンクコマンド設定ファイルの記述例を示す図
【図６】リンク情報ファイルの記述例を示す図
【図７】起動設定ファイル生成部の処理手順を示すフローチャート
【図８】起動設定ファイル生成部の処理手順の詳細のフローチャート
【図９】起動設定ファイルの記述例を示す図
【図１０】初期化モジュールの処理手順を示すフローチャート
【図１１】モジュール追加画面の画面構成を示す図
【図１２】更新されたモジュール選択画面表示部の画面構成を示す図
【図１３】本発明の第２の実施例を示すモジュール追加画面の画面構成を示す図
【図１４】シンボル情報処理部の処理手順を示すフローチャート
【図１５】ｎｍコマンドの出力例を示す図
【図１６】従来のモーションコントローラのカスタマイズ装置の構成を示すブロック図
【符号の説明】
【００３２】
１１、１２、１Ｎ  ソフトウェアモジュール
２０、９０  初期化モジュール
２１  関数テーブル
２２、９１  システムモジュール
３０、１００  リンク処理部
３１、１０１  リンク情報ファイル
４０、１１０  実行形式ファイル
５０  モジュール選択画面処理部
５１  モジュールデータベース
５２  選択モジュールリスト
５３  シンボル情報処理部
５４  モジュール選択画面
５５  モジュール追加画面
５６  未定義シンボルリスト
５７  依存モジュールリスト
６０  リンク情報生成部
６１  リンクコマンド設定ファイル
７０  起動設定ファイル生成部
７１  起動設定ファイル
８０  コンパイル処理部
８１  初期化コード
８２  コンパイル情報ファイル
【図１】
2008052703.tif 000003
【図２】
2008052703.tif 000004
【図３】
2008052703.tif 000005
【図４】
2008052703.tif 000006
【図５】
2008052703.tif 000007
【図６】
2008052703.tif 000008
【図７】
2008052703.tif 000009
【図８】
2008052703.tif 000010
【図９】
2008052703.tif 000011
【図１０】
2008052703.tif 000012
【図１１】
2008052703.tif 000013
【図１２】
2008052703.tif 000014
【図１３】
2008052703.tif 000015
【図１４】
2008052703.tif 000016
【図１５】
2008052703.tif 000017
【図１６】
2008052703.tif 000018