(57)【特許請求の範囲】
【請求項１】
追尾用アンテナの駆動機能である駆動モードとして、搭載される装置の種類によらず共通の複数種類の駆動モードの中から一つ以上を選択して前記追尾用アンテナを制御する追尾用アンテナ制御装置であって、
前記追尾用アンテナの制御プログラムを、
追尾用アンテナを備えた装置の種類によらず全ての機種で共通なコードからなる共通部と、
追尾用アンテナを備えた装置のうち、特定種類の装置に固有の駆動モード遷移処理を実現するコードからなる固有部と、
を含んで構成するとともに、
前記制御プログラムの実行時に前記固有部に参照させるための情報として、前記複数種類の駆動モードの中から一つ以上の駆動モードを選択させた結果を保持しておく設定部、
を備えることを特徴とする追尾用アンテナ制御装置。
【請求項２】
前記複数種類の駆動モードは、追尾対象を自律的に追尾する自動追尾モードを含み、当該自動追尾モードの有効／無効の設定情報を前記設定部で保持することを特徴とする請求項１に記載の追尾用アンテナ制御装置。
【請求項３】
前記複数種類の駆動モードは、あらかじめプログラムされた軌道に従って追尾用アンテナを動作させるプログラム追尾モードを含み、当該プログラム追尾モードの有効／無効の設定情報を前記設定部で保持することを特徴とする請求項１に記載の追尾用アンテナ制御装置。
【請求項４】
前記複数種類の駆動モードは、人の操作に従ってアンテナの軸を動作させる手動モードを含み、当該手動モードの有効／無効の設定情報を前記設定部で保持することを特徴とする請求項１に記載の追尾用アンテナ制御装置。
【請求項５】
前記複数種類の駆動モードは、指定された特定の方向にアンテナを向けるポジションモードを含み、当該ポジションモードの有効／無効の設定情報を前記設定部で保持することを特徴とする請求項１に記載の追尾用アンテナ制御装置。
【請求項６】
前記固有部および前記設定部は、追尾用アンテナを備えた複数種類の装置ごとに存在することを特徴とする請求項１に記載の追尾用アンテナ制御装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、追尾用アンテナ制御装置に関するものである。
【背景技術】
【０００２】
追尾用アンテナの用途は、人工衛星、ロケットの通信や天体望遠鏡など多岐に渡る。追尾用アンテナ制御装置の制御プログラムには、自動や手動で追尾する共通の駆動機能があり、これを駆動モードとして扱っている。例えば、ロケットの通信のための制御が持つ駆動モードには、自動追尾モードやプログラム追尾モードや手動モードがある。天体望遠鏡のための制御が持つ駆動モードには、プログラム追尾モードや手動モードがある。ここで、機種が異なっても、駆動モードのプログラム構造は類似している。そのため、機種間で駆動モードのプログラムを共通化して開発の効率化実現が望まれている。
【０００３】
例えば、下記の特許文献１〜３にプログラムの共通化のための技術が記載されている。特許文献１には、推定アンテナ指向データを生成する副中央演算処理手段に同一のソフトウェアが各々搭載されていて、条件の変更があった場合に、変更追尾局に対応したサブＣＰＵのソフトウェアのみの固有パラメータを操作することで設定変更する発明が記載されている。特許文献２には、車種毎の専用部が含まれている車両制御プログラムを選択的に実行することで、複数種類の車両に対応することを可能にする発明が記載されている。特許文献３には、ソフトウェア部品を複数のソフトウェアで共通な部分と異なる部分に分け、共通な部分については改変を許さず、異なる部分についても開発に支障ない範囲で制約を強くすることで、ソフトウェア部品の共有を行い、流用を行いやすくする発明が記載されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開平８−２９５２５号公報
【特許文献２】特開２００２−３０３２０３号公報
【特許文献３】特開２００５−５６０１２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
特許文献１〜３では、パラメータ及び処理追加によるソフトウェアのカスタマイズ方法がそれぞれ提案されている。しかしながら、以下に示すような課題をそれぞれ有している。
【０００６】
特許文献１に記載の技術は、固有パラメータを用いてソフトウェアの条件の変更に対応可能であるため、プログラムロジックが確立している機能に対しては、容易に機種固有の仕様を実現できるという利点がある。しかし、機種によってプログラムロジックの変更が必要になる場合には適用できないという問題点がある。
【０００７】
特許文献２に記載の技術は、機種毎に専用部を持たせて選択的に実行させることによって、複数種類の機種に対応することができるため、カスタマイズの自由度が高く、様々な機能のバリエーションに対応できるという利点がある。しかし、専用部のプログラムを車種ごとに作る必要があるので、製品系列全体で開発量が大きくなるという問題点がある。
【０００８】
特許文献３に記載の技術は、複数のソフトウェアに共通する部分を、他のソフトウェア開発時に再利用できるため、開発効率化ができるという利点がある。しかし、ソフトウェアの拡充に伴い、共通する部分に変更が発生する場合、開発効率が悪化するという問題点がある。
【０００９】
追尾用アンテナ制御装置の制御プログラムにおいては、プログラムの高い再利用性と機種展開に必要なカスタマイズの柔軟性の両立が課題である。追尾用アンテナ装置の制御プログラムの特徴として、駆動モードを選択することにより異なる制御方法を選択でき、この制御方法は機種によらずほぼ同じである一方で、特定の機種が備える駆動モードは製品系列全体で共通に定義された駆動モード群のサブセットであり、また、駆動モード間の遷移判定処理は機種ごとに大きく異なるという点が挙げられる。このような特徴を持つ追尾用アンテナ制御装置の制御プログラムを特許文献１〜３に挙げた方法で構築しようとすると、特許文献１〜３それぞれの項で説明した問題点により、機種単体での開発効率が低下するか、製品系列全体での開発量が増大するといった問題が生じてしまう。
【００１０】
本発明は、上記に鑑みてなされたものであって、追尾用アンテナを備えた機器を多機種展開する場合の開発効率を向上させることが可能な追尾用アンテナ制御装置を得ることを目的とする。
【課題を解決するための手段】
【００１１】
上述した課題を解決し、目的を達成するために、本発明は、追尾用アンテナの駆動機能である駆動モードとして、搭載される装置の種類によらず共通の複数種類の駆動モードの中から一つ以上を選択して前記追尾用アンテナを制御する追尾用アンテナ制御装置であって、前記追尾用アンテナの制御プログラムを、追尾用アンテナを備えた装置の種類によらず全ての機種で共通なコードからなる共通部と、追尾用アンテナを備えた装置のうち、特定種類の装置に固有の駆動モード遷移処理を実現するコードからなる固有部と、を含んで構成するとともに、前記制御プログラムの実行時に前記固有部に参照させるための情報として、前記複数種類の駆動モードの中から一つ以上の駆動モードを選択させた結果を保持しておく設定部、を備えることを特徴とする。
【発明の効果】
【００１２】
本発明によれば、追尾用アンテナを備えた機器の追尾用アンテナ制御プログラムへの機能追加や変更が容易になり、多機種展開時の開発効率を向上できるという効果を奏する。
【図面の簡単な説明】
【００１３】
【図１】図１は、追尾用アンテナ制御装置の構成例を示す図である。
【図２】図２は、駆動制御のプログラム構成と駆動処理の制御方法を示す図である。
【図３】図３は、追尾用アンテナ制御装置における制御プログラムの処理の流れを示したフローチャートである。
【図４】図４は、図３のステップＳ４で実行する処理の詳細を示したフローチャートである。
【図５】図５は、図３のステップＳ４で実行する処理を示すソースコード例を示した図である。
【図６】図６は、図３のステップＳ５で実行する処理の詳細を示したフローチャートである。
【図７】図７は、図３のステップＳ５で実行する処理を示すソースコード例を示した図である。
【図８】図８は、図３のステップＳ６で実行する処理の詳細を示したフローチャートである。
【図９】図９は、図３のステップＳ６で実行する処理を示すソースコード例を示した図である。
【図１０】図１０は、図３のステップＳ７で実行する処理の詳細を示したフローチャートである。
【図１１】図１１は、図３のステップＳ７で実行する処理を示すソースコード例を示した図である。
【図１２】図１２は、駆動処理の実行時の構成を示した図である。
【発明を実施するための形態】
【００１４】
以下に、本発明にかかる追尾用アンテナ制御装置の実施の形態を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１５】
実施の形態．
図１は、本発明にかかる追尾用アンテナ制御装置の構成例を示す図である。この追尾用アンテナ制御装置は、詳細については後述するが、追尾用アンテナの駆動機能である駆動モードとして、搭載される機種によらず共通の複数種類の駆動モードの中から一つ以上を選択し、追尾用アンテナを制御する。また、図１に示したように、追尾用アンテナ制御装置１は、ＣＰＵ２、ファイルシステム３およびＲＡＭ４を備える。
【００１６】
ファイルシステム３は制御プログラム５およびデータ６を含んで構成されている。制御プログラム５には共通部７および固有部８が含まれており、共通部７は、追尾用アンテナに関する製品系列内の全ての機種で共通に使用する制御プログラムである。そのため、共通部７は、実装する際、機種によらずプログラムの変更の必要がない。固有部８は、追尾用アンテナに関する製品系列内の特定の機種の動作を実現する制御プログラムである。特定の機種の動作とは、駆動モードの状態遷移処理であり、固有部８の制御プログラムは共通部７に設定された拡張点に追加される。また、データ６には設定部９が含まれている。設定部９は、追尾用アンテナの製品系列内に複数存在する駆動モードの有効／無効を機種ごとに切り替えるためのリスト（機能選択表１０）と駆動モードの状態遷移処理を登録するためのリスト（構築リスト１１）とを含んで構成されている。これらのリストは、制御プログラムが実装される機種に応じて予め変更される。機能選択表１０には、実装される機種に搭載する駆動モードの選択結果が登録され、構築リスト１１には、機能選択表１０に対応する状態遷移処理が登録される。共通部７、固有部８および設定部９の実行プログラムをＲＡＭ４上に配置したメモリイメージが、共通部１２、固有部１３および設定部１４である。
【００１７】
駆動制御のプログラムの構成と制御方法について、図２を参照して説明する。共通部７は、駆動モード７１と、機能選択表呼び出し処理７２と、機能選択表データ保管庫７３と、機能選択表アクセスＩ／Ｆ７４と、構築リスト呼び出し処理７５と、拡張処理７６と、拡張点７７と、を備える。
【００１８】
駆動モード７１は、機種間で共通の駆動モードの処理（本例では、自動追尾モード７１ａ、プログラム追尾モード７１ｂ、手動モード７１ｃおよびポジションモード７１ｄの各処理としている）を持つ。自動追尾モード７１ａはロケットなどの追尾対象を自律的に追尾するモードであり、プログラム追尾モード７１ｂはあらかじめプログラムされた軌道に従ってアンテナを動作させるモードである。また、手動モード７１ｃは人の操作に従ってアンテナの軸を動作させるモード、ポジションモード７１ｄは指定された特定の方向にアンテナを向けるモードである。
【００１９】
機能選択表呼び出し処理７２は、設定部９にある機能選択表１０を呼び出す処理である。機能選択表データ保管庫７３は、機能選択表１０の情報を保管する。機能選択表アクセスＩ／Ｆ７４は、駆動モード７１が機能選択データ保管庫７３を参照するためのＩ／Ｆである。構築リスト呼び出し処理７５は、設定部９にある構築リスト１１を呼び出す処理である。拡張処理７６は、拡張点７７に登録された機種固有の駆動モード遷移処理を呼び出す処理である。拡張点７７は、機種固有の駆動モード遷移処理を登録する箇所である。設定部９は、機種ごとに存在し、機能選択表１０および構築リスト１１を保持している。固有部８は、機種ごとに存在し、駆動モード遷移処理８１および構築処理８２を含んでいる。駆動モード遷移処理８１は、機種固有の駆動モードの状態遷移処理である。構築処理８２は、駆動モード遷移処理８１を共通部７の拡張点７７に登録するための処理である。
【００２０】
図３は、本実施の形態の追尾用アンテナ制御装置における制御プログラムの処理の流れを示したフローチャートである。この図３を参照して、制御プログラムの処理の流れを説明する。まず、ステップＳ１では、図２に示した共通部７、固有部８および設定部９の実行プログラムをＲＡＭ４（図１参照）上に展開する。次に、ステップＳ２においてプログラムの初期化処理を行い、ステップＳ３ではプログラムの初期化後処理を行う。
【００２１】
ステップＳ２の初期化処理では、まず、駆動モード遷移処理８１を共通部７の拡張点７７に登録し（ステップＳ４）、次に、機能選択表１０に従い、共通部７の駆動モードの有効／無効処理を決定する（ステップＳ５）。
【００２２】
ステップＳ４の詳細について、図４のフローチャートと図５のソースコード例を参照して説明する。なお、図４のフローチャートは、ステップＳ４で実行する処理の詳細を示したものである。ステップＳ４の処理を開始するにあたっては、まず、共通部７に含まれている構築呼び出し処理７５（図２参照）より、設定部９にある構築リスト１１を呼び出す。図５のＣ３には、構築リストとして、駆動モード遷移処理８１を実行する関数（construct＿drive＿mode＿hook＿impl）が定義されている。この構築リストのアドレスをＣ１に示した構築呼び出し処理の関数（constructlist＿call）の引数とし、構築呼び出し処理が構築リスト１１を呼び出す。
【００２３】
構築リスト１１を呼び出すと、次に、呼び出した構築リスト１１を上から順番に読みこみ、読み込んだ行が末尾であるかどうかを判定する（ステップＳ４１）。読み込んだ行が末尾である場合（ステップＳ４１：Ｙｅｓ）、処理を終了する。一方、読み込んだ行が末尾ではない場合（ステップＳ４１：Ｎｏ）、構築リスト１１に構築処理が登録されているかどうかを判定する（ステップＳ４２）。これらのステップＳ４１およびＳ４２は、図５のＣ１に示した構築リスト呼び出し処理のif文に対応し、構築リストの末尾と構築処理の登録有無判定を行う。ステップＳ４２の判定の結果、構築処理が登録されている場合（ステップＳ４２：Ｙｅｓ）、構築呼び出し処理７５が構築処理８２を呼び出し、駆動モード遷移処理８１の関数のアドレスを共通部７の拡張点７７に設定する（ステップＳ４３）。このステップＳ４３では、図５のＣ１に示したconstructlist＿callがＣ４に示した構築処理を実行する関数construct＿drive＿mode＿hook＿implを呼び出し、Ｃ２に示した拡張点init,pre,postに駆動モード遷移処理の関数を登録する。
【００２４】
ステップＳ４３を実行した後、または、ステップＳ４２において構築処理が登録されてないと判定した場合（ステップＳ４２：Ｎｏ）、次の処理として、構築リスト１１のポインタを一つ進める（ステップＳ４４）。そして、上述したステップＳ４１〜Ｓ４３を再度実行する。以降、ステップＳ４１において「末尾」と判定するまで処理を継続する（「末尾」と判定すると処理を終了する）。
【００２５】
つづいて、ステップＳ５の詳細について、図６のフローチャートと図７のソースコード例を参照して説明する。なお、図６のフローチャートは、ステップＳ５で実行する処理の詳細を示したものである。
【００２６】
ステップＳ５においては、まず、共通部７の機能選択表呼び出し処理７２が、機能選択表１０を呼び出す（ステップＳ５１）。図７のＣ５には、機能選択表１０の例が示されており、例示した機能選択表には駆動モードの有効(YES)/無効(NO)が定義されている。この定義はＣ７に示すvariabilityに格納され、variabilityのアドレスをＣ７に示す機能選択表呼び出し処理の関数setVariabilityの引数とし、機能選択表呼び出し処理７２が機能選択表１０を呼び出す。さらに、機能選択表呼び出し処理７２が、機能選択データ保管庫７３に駆動モードの有効/無効情報を登録する（ステップＳ５２）。図７のＣ６には、機能選択データ保管庫７３に相当する変数w＿variabilityが記載されており、このステップＳ５２では、変数w＿variability有効/無効情報を登録する。図７の例に従った場合、機能選択データ保管庫７３には、自動追尾モードは「無効」、プログラム追尾モードは「有効」、手動モードは「有効」、ポジションモードは「無効」の情報が登録される。
【００２７】
図３の説明に戻り、ステップＳ３の処理（プログラムの初期化後処理）では、まず、各駆動モードの処理を実行し（ステップＳ６）、次に、共通部７の拡張点７７に登録した駆動モード（上記のステップＳ４において登録した駆動モード）の遷移処理を実行する（ステップＳ７）。ステップＳ７の処理が終了するとステップＳ６を再度実行する。すなわち、これらのステップＳ６，Ｓ７の処理を繰り返す。
【００２８】
ステップＳ６の詳細について、図８のフローチャートと図９のソースコード例を参照して説明する。なお、図８のフローチャートは、ステップＳ６で実行する処理の詳細を示したものである。
【００２９】
ステップＳ６においては、まず、共通部７の各駆動モード７１が、機能選択表アクセスＩ／Ｆ７４を介して、機能選択データ保管庫７３を参照する（ステップＳ６１）。図９のＣ８には機能選択表アクセスＩ／Ｆの関数getVariabilityを示している。この関数getVariabilityにより、機能選択データ保管庫７３（図７のＣ６）に格納された変数w＿variabilityのアドレスを返す。次に、駆動モードの有効/無効の判定を行う（ステップＳ６２）。「有効」の場合は（ステップＳ６２：Ｙｅｓ）、駆動モードの処理を実行する（ステップＳ６３）。「無効」の場合は処理を終了する（ステップＳ６２：Ｎｏ）。これらのステップＳ６１〜Ｓ６３は、図９のＣ９に示した有効/無効処理のif文に対応し、駆動モードが有効か無効を判定する。判定の結果、有効であれば駆動モードの処理を実行する。図示したソースコード例では、プログラム追尾モードと手動モードが有効であり（図７のＣ５参照）、これらの駆動モードの処理を実行する。
【００３０】
つづいて、ステップＳ７の詳細について、図１０のフローチャートと図１１のソースコード例を参照して説明する。なお、図１０のフローチャートは、ステップＳ７で実行する処理の詳細を示したものである。
【００３１】
ステップＳ７においては、まず、共通部７の拡張処理７６が、上記ステップＳ４３で拡張点７７に登録された駆動モード遷移処理８１のアドレスを呼び出し（ステップＳ７１）、次に、呼び出したアドレスを介して、駆動モード遷移処理８１を実行する（ステップＳ７２）。これらのステップＳ７１，Ｓ７２では、図１１のＣ４に示した構築処理を実行して登録したdrive＿mode＿hooks.init、drive＿mode＿hooks.pre、drive＿mode＿hooks.postを、Ｃ１０に示した拡張処理にて呼び出し、拡張点に登録された関数init＿drive＿mode＿hook＿impl、pre＿drive＿mode＿hook＿impl、post＿drive＿mode＿hook＿implを実行する。
【００３２】
図１２は、駆動処理の実行時の構成を示した図であり、上述したソースコードに従って駆動処理を実行した場合の構成例を示している。この例では、プログラム追尾モード７１ｂと手動モード７１ｃの処理が実行され、駆動モード遷移処理８１は拡張処理７６により呼び出され実行される。
【００３３】
このように、本実施の形態の追尾用アンテナ制御装置においては、駆動モードの制御プログラムの構成を、機種によらず不変の共通部、すなわち、プログラム構造が類似する駆動モードのプログラムを共通化し、追尾用アンテナに関する製品系列内の全ての機種で共通に使用するブロックと、機種に固有の機能を実現するための固有部、すなわち、追尾用アンテナに関する製品系列内の特定の機種の動作である駆動モード遷移処理を持ち、固有部の追加処理で駆動モード遷移処理をカスタマイズ可能なブロックと、搭載される機種によらずプログラムが固定でなおかつ搭載される機種が可変の複数の駆動モード（全ての機種において選択的に搭載可能な複数の駆動モード）それぞれについて、有効無効を設定する設定部、すなわち、追尾用アンテナに関する製品系列内に複数存在する駆動モードの有効／無効を機種ごとに切り替え、機種ごとに必要な駆動モードを選択可能なブロックと、を備えた構成とした。これにより、単一の共通部のモジュールを全ての機種で再利用することができる。また、頻度が少ないロジック変更である遷移条件の変更の場合は、固有部への処理追加で対応することができる。また、機種間で相違が現れやすい利用可能な駆動モード種別については、データ設定だけで特定機種に適用することができる。
【００３４】
以上のことから、本実施の形態の追尾用アンテナ制御装置によれば、追尾用アンテナを備えた複数種類の機器における制御プログラムのより多くの部分を共通化し、制御プログラムへの機能追加や変更が容易になり、多機種展開する際の開発効率を向上できるという効果が得られる。
【産業上の利用可能性】
【００３５】
以上のように、本発明は、追尾用アンテナを備えた各種機器の開発効率の向上に寄与する追尾用アンテナ制御装置として有用である。
【符号の説明】
【００３６】
１  追尾用アンテナ制御装置
２  ＣＰＵ
３  ファイルシステム
４  ＲＡＭ
５  制御プログラム
６  データ
７，１２  共通部
８，１３  固有部
９，１４  設定部
１０  機能選択表
１１  構築リスト
７１  駆動モード
７１ａ  自動追尾モード
７１ｂ  プログラム追尾モード
７１ｃ  手動モード
７１ｄ  ポジションモード
７２  機能選択表呼び出し処理
７３  機能選択表データ保管庫
７４  機能選択表アクセスＩ／Ｆ
７５  構築リスト呼び出し処理
７６  拡張処理
７７  拡張点
８１  駆動モード遷移処理
８２  構築処理
【図１】
0005583073.tif 000002
【図２】
0005583073.tif 000003
【図３】
0005583073.tif 000004
【図４】
0005583073.tif 000005
【図５】
0005583073.tif 000006
【図６】
0005583073.tif 000007
【図７】
0005583073.tif 000008
【図８】
0005583073.tif 000009
【図９】
0005583073.tif 000010
【図１０】
0005583073.tif 000011
【図１１】
0005583073.tif 000012
【図１２】
0005583073.tif 000013