(57)【要約】【課題】    ユーザ要求を満たす、ユーザによる独自のコントローラ開発を実現する。【解決手段】オペレーティングシステム及びハードウェアの操作に依存する処理をシステムソフトウェアに登録するためのインタフェース（ＡＰＩ）を持たせ、登録された処理をシステムソフトウェアから実行するための依存処理実行部を持たせる。【選択図】  図１
2005063334.tif 000002
【特許請求の範囲】
【請求項１】
オペレーティングシステム及びハードウェアの操作に依存する処理をシステムソフトウェアに登録するためのインタフェース（ＡＰＩ）を持ち、登録された処理をシステムソフトウェアから実行するための依存処理実行部を持つことを特徴とするモーションコントローラ開発キット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モーションコントローラのソフトウェアの開発方法に関する発明であり、さらに詳しくは、モーションコントローラのハードウェアやオペレーティングシステムに関する処理のユーザによる変更方法に関する。
【背景技術】
【０００２】
図２は、従来のモーションコントローラのソフトウェアの形態である。通常のコントローラでは、モーションコントロール処理を行う部分と、外部入力処理、外部出力処理を行う処理部と、オペレーティングシステムに依存する処理部分で構成される。これらの処理部は、コントローラメーカが作成したハードウェア上のメモリに格納され、実装されるハードウェアの仕様やオペレーティングシステムの仕様に沿った処理を行うソフトウェアとなっている。さらにこれらのハードウェアや、オペレーティングシステムに依存する処理部は、ユーザによって変更が出来なかった。
【特許文献１】特開２００２−１８９８４４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００３】
従来のモーションコントローラは、コントローラメーカが開発したハードウェアやオペレーティングシステムと、ハードウェア上に搭載されるモーションコントロールソフトウェアが一体となっており、ユーザ自身でオペレーティングシステムやハードウェアを自由に選択できなかった。
そこで本発明は、モーションコントローラを動作させるハードウェアをユーザにて選択でき、選択したハードウェア処理部と、そのハードウェア上で使用するオペレーティングシステムに依存する部分をユーザがプログラミングでき、ユーザ要求を満たす、ユーザによる独自のコントローラ開発を実現することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するため、本発明は、アプリケーションとしてハードウェアに依存する部分と、オペレーティングシステムに依存する部分をアプリケーションとしてプログラミングでき、記述したアプリケーションをモーションコントローラソフトウェアにて準備されたＡＰＩを使用して、モーションコントローラソフトウェアへ組み込むことができる仕組みを持つようにしたのである。
【発明の効果】
【０００５】
本発明のモーションコントローラ開発キットは、ハードウェア依存部とオペレーティングシステム依存部をユーザにてプログラミングでき、プログラムした各依存部をシステムソフトウェアから実行する各依存部処理として実行できる。従って、ユーザにて独自のハードウェアやオペレーティングシステムを選択し、モーションコントローラを開発することが可能になる。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の実施の形態について図を参照して説明する。
【実施例１】
【０００７】
図1は、本発明の実施形態に於けるモーションコントローラの構成図を表す。１は、モーションコントロールを行うためのソフトウェアの一部である。２は、ハードウェアや、オペレーティングシステムに依存するような処理を行う部分に埋め込まれた依存処理実行部である。３は、依存部処理実行部が依存部処理を呼び出す際に使用する依存処理部実行ポインタテーブルである。４は、ユーザにて、依存処理部実行ポインタテーブル内にポインタを設定できる依存処理部設定ＡＰＩである。図１では、例として、５外部入力処理ポインタ、６外部出力処理ポインタ、７オペレーティングシステム処理ポインタが登録されている。
本発明のモーションコントローラでは、モーションコントローラを動作させるために必要なオペレーティングシステムの機能と、ハードウェアの入出力を実行する部分と、モーションコントローラのシステムソフトとのデータ授受を行うための各ＡＰＩと、使用できるＡＰＩの実行タイミングが公開されている。公開されているハードウェアの入出力関連処理と、オペレーティングシステムの関する処理については、予めモーションコントローラのソフトウェア内に存在している。さらに、モーションコントローラのシステムソフトウェアは、オペレーティングシステムの機能とハードウェアの入出力の機能を行うための処理部を、ユーザが記述した関数へ変更できるためのＡＰＩが準備される。
【０００８】
ユーザは先ずハードウェアとオペレーティングシステムに依存する処理を作成する。作成する処理は、コントローラ開発キットで規定されたＡＰＩに沿って行う。ユーザは、ＡＰＩの入出力を守りプログラミングを行う。処理内部のプログラミングはユーザが選択したハードウェアや、オペレーティングシステムの仕様に沿って行う。記述したプログラムは、各依存部の設定に関する処理詳細を示す図の依存処理部設定ＡＰＩを使用して、ユーザの依存処理部への変更をユーザアプリケーションにて行う必要がある。
【０００９】
図３は、ハードウェアの入出力関連処理と、オペレーティングシステム関連処理をユーザが記述した処理に変更するための処理図である。１６は、依存処理部の関数の先頭アドレスを登録した依存処理部ポインタ実行テーブルである。各依存処理部は、依存処理部ポインタ実行テーブルに登録されたポインタ先の処理を実行する形態となっている。１７は、ユーザが作成したイニシャル処理や、モーションコントローラのハードウェアやオペレーティングシステムに依存した部分を含むユーザアプリケーションである。１８は、依存部設定処理である。この処理は、ユーザアプリケーションの初期処理で行う必要があり、ユーザアプリケーション内に存在する各依存処理をモーションコントローラのシステムソフトウェアと関連づける処理を行う。１５はモーションコントローラのシステムソフトウェアにて準備される"依存処理部ポインタ実行テーブルをアクセスするためのＡＰＩ"である。
図３の例では、外部出力処理、外部入力処理、オペレーティングシステム処理の３つの処理を依存処理部設定ＡＰＩを使用して依存処理部実行ポインタテーブルを変更している。モーションコントローラのシステムソフトウェアは、ユーザアプリケーションが依存部設定処理を行った後に実行される。
【００１０】
図４は依存処理実行部の処理フローである。依存処理実行部へは２０の依存処理部実行ポインタテーブルのインデックス番号が渡される。インデックス番号はモーションコントローラのシステムソフトウェア内で予め設定されており、依存処理部実行ポインタテーブルのインデックスに対応している。
依存処理実行部は、入力されたインデックスを元に依存処理部実行ポインタテーブル内の指定されたインデックスの依存処理部の実行ポインタを取得する。次に取得した実行ポインタを使用して依存処理部を呼び出す。
以上述べたように、依存処理実行部は、図３の依存部設定処理にて設定された依存処理部実行ポインタテーブルに沿って、ユーザが予め登録した依存処理部を自動的に呼び出すことになる。従って、ユーザが選択したハードウェアやオペレーティングシステムに関連した処理が依存処理実行部から実行されることになり、ユーザの選択したハードウェアとオペレーティングシステムに依存した処理を実行させることができるようになる。
【００１１】
図５は、ユーザにてモーションコントローラを開発する際のフローである。ユーザは、先ず、コントローラを動作させるためのハードウェアと、オペレーティングシステムを決定する。選択したハードウェア部と、オペレーティングシステムに依存する部分を独自にプログラミングする。次に、ユーザは、ハードウェア依存部とオペレーティングシステム依存部を作成し、作成したそれらの各依存処理を依存処理設定ＡＰＩを使用し依存処理部実行ポインタテーブルへ設定するための処理をプログラムする。最後に作成したアプリケーションと、モーションコントローラのシステムソフトウェアをリンクする。完成した実行モジュールをユーザの準備したハードウェアにロードし実行させると、ユーザが作成したハードウェア依存部と、オペレーティングシステム依存部が自動的に実行されることになる。
【図面の簡単な説明】
【００１２】
【図１】本発明に関するモーションコントローラの構成図である。
【図２】従来のモーションコントローラの構成図である。
【図３】各依存部の設定に関する処理詳細を示す。
【図４】依存処理実行部のフロー図である。
【図５】本発明のモーションコントローラの実行モジュール作成手順を示すフロー図である。
【符号の説明】
【００１３】
１  モーションコントローラのシステムソフトウェア
２  ハードウェアや、オペレーティングシステムの依存処理実行部
３  依存処理部実行ポインタテーブル
４  依存処理部実行ポインタテーブルアクセス用ＡＰＩ
５  外部入力処理ポインタ
６  外部出力処理ポインタ
７  オペレーティングシステム処理ポインタ
８  外部入力処理コード
９  外部出力処理コード
１０  オペレーティングシステム処理コード
１１  モーションコントローラのシステムソフトウェア
１２  外部入力処理
１３  オペレーティングシステム処理コード
１４  外部出力処理
１５  依存処理部設定ＡＰＩ
１６  依存処理部実行ポインタテーブル
１７  ユーザアプリケーション
１８  ユーザアプリケーションの依存部設定処理
１９  モーションコントローラのシステムソフトウェア
２０  依存処理実行部へ渡す、依存処理部実行ポインタテーブルのインデックス番号
【図１】
2005063334.tif 000003
【図２】
2005063334.tif 000004
【図３】
2005063334.tif 000005
【図４】
2005063334.tif 000006
【図５】
2005063334.tif 000007