(57)【要約】【課題】  本発明は、コントローラで動作するユーザーアプリケーションを、現実の物理法則に起因する制約を含めて、ユーザーが習熟しているパソコン向けアプリケーション用の安価な開発ツールを使ってデバッグすることを目的とする。【解決手段】  サーボへの指令を生成するサーボ指令生成部と、伝送処理部と、サーボネットワーク通信処理部と、イーサネット通信処理部とを備えたコントローラと、前記コントローラに接続され、前記コントローラからの指令により動作するサーボモータと、前記コントローラに接続されたパソコンとから成るコントローラシステムにおいて、前記コントローラ上に、前記サーボモータへの指令を格納送信するサーボ指令格納部を、前記パソコン上に前記コントローラのサーボ指令生成部と、伝送処理部とを備える。【選択図】図１
2010204977.tif 000002
【特許請求の範囲】
【請求項１】
パソコン用アプリケーション開発ツールを搭載したパソコン上で、少なくとも一つのサーボアンプを制御するコントローラの上で実行されるユーザーアプリケーションをデバッグするデバッグ方法において、
前記パソコンは、
ユーザからの操作入力に対応して前記アプリケーション開発ツールが前記ユーザーアプリケーションの動作制御を行い、
前記ユーザーアプリケーションがサーボ指令生成部へ動作指令を出力し、
前記サーボ指令生成部がサーボ指令を生成し、
前記サーボ指令をパソコン・コントローラ間通信手段によって前記コントローラに送信し、
前記コントローラは、
前記サーボ指令を受信して前記コントローラのサーボ指令格納部に格納し、
該サーボ指令を一定周期で通信を実行するコントローラ・サーボアンプ間通信手段によってサーボアンプに送信し、
該サーボ指令を前記サーボアンプが実行することによってデバッグされることを特徴とするデバッグ方法。
【請求項２】
前記動作制御は、開始、停止およびステップ実行を含むことを特徴とする請求項１に記載のデバッグ方法。
【請求項３】
前記サーボ指令生成部は、前記ユーザーアプリケーションを前記コントローラ上で実行するときに使用されるものと同じものであることを特徴とする請求項１または請求項２に記載のデバッグ方法。
【請求項４】
前記サーボ指令格納部はサーボ指令生成部より受信したサーボ指令を蓄積するサーボ指令蓄積部を持ち、一定周期内にサーボ指令を受信できなかった場合に、サーボ指令蓄積部から直近の過去のサーボ指令群を取り出し、前記サーボ指令群を用いて線形予測法により算出したサーボ指令をサーボアンプに渡すことを特徴とする請求項１〜請求項３のいずれかに記載のデバッグ方法。
【請求項５】
請求項１に記載のユーザーアプリケーションのデバッグ方法を実行するために、前記パソコン・コントローラ間通信手段と、前記サーボ指令を格納するサーボ指令格納部と、前記コントローラ・サーボアンプ間通信手段と、を備えたことを特徴とするコントローラ。
【請求項６】
前記コントローラは、少なくとも一つの前記サーボアンプと接続されることを特徴とする請求項５に記載のコントローラ。
【請求項７】
前記接続は、サーボネットワークによって行われることを特徴とする請求項５または請求項６に記載のコントローラ。
【請求項８】
請求項１に記載のユーザーアプリケーションのデバッグ方法を実行するための、パソコン用アプリケーション開発ツールを搭載したパソコンと、少なくとも一つのサーボアンプを制御するコントローラと、少なくとも一つの前記サーボアンプとを含むコントローラシステムであって、
前記パソコンは、前記コントローラで実行されるユーザーアプリケーションをデバッグするときに、前記ユーザーアプリケーションと、
前記ユーザーアプリケーションが出力する動作指令に基いてサーボ指令を生成するサーボ指令生成部と、
前記サーボ指令を前記コントローラに送信する手段と、を備え、
前記コントローラは、
前記サーボ指令を受信する手段と、
該サーボ指令を格納するサーボ指令格納処理部と、
該サーボ指令を前記サーボ指令格納処理部から読み出して一定周期で前記サーボアンプへ送信する手段と、を備えることを特徴とするコントローラシステム。
【請求項９】
前記パソコンと前記コントローラは、パソコン・コントローラ間通信手段によって接続されることを特徴とする請求項８に記載のコントローラシステム。
【請求項１０】
前記コントローラと前記サーボアンプは、コントローラ・サーボアンプ間通信手段によって接続されることを特徴とする請求項８または請求項９に記載のコントローラシステム。
【請求項１１】
前記コントローラ・サーボアンプ間通信手段は、サーボネットワークであることを特徴とする請求項１０に記載のコントローラシステム。
【請求項１２】
前記サーボ指令格納部はサーボ指令生成部より受信したサーボ指令を蓄積するサーボ指令蓄積部を持ち、一定周期内にサーボ指令を受信できなかった場合に、サーボ指令蓄積部から直近の過去のサーボ指令群を取り出し、前記サーボ指令群を用いて線形予測法により算出したサーボ指令をサーボアンプに渡すことを特徴とする請求項８〜請求項１１のいずれかに記載のコントローラシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、コントローラで動作するユーザーアプリケーションのデバッグ方法、デバッグ機構を備えたコントローラおよびコントローラシステムに関する。
【背景技術】
【０００２】
従来のコントローラシステムは図２に示すようになっている。
図２において、２１はパソコン、２２はコントローラ、２３はイーサネット（登録商標）、２４はサーボネットワーク、２５はサーボアンプ、２６はモータである。パソコン２１とコントローラ２２はイーサネット２３で、コントローラ２２とサーボアンプ２３はサーボネットワーク２４で、それぞれ接続されている。
【０００３】
コントローラ２２は、サーボ指令生成部２２２と、伝送処理部２２３と、サーボネットワーク通信処理部２２４と、デバッグスタブ２２５と、イーサネット通信処理部２２６を備える。ユーザーアプリケーション２２１がコントローラ２２上で実行されると、動作指令がサーボ指令生成部２２２に伝えられる。サーボ指令生成部２２２は、前記動作指令をサーボ指令に変換し、伝送処理部２２３に渡す。伝送処理部２２３は、サーボネットワーク通信処理部２２４を用いて、前記サーボ指令をサーボアンプ２５へ送出する。
【０００４】
ここで、ユーザーアプリケーションについて説明する。コントローラのユーザーアプリケーションは、ＰＬＣにおけるラダー言語や、ＮＣ装置におけるＧコード、ロボットコントローラにおけるロボット言語というようにユーザーアプリケーション専用の言語を用いて記述するものがある。
一方、コントローラのシステムソフトウェアは、コンピュータのプログラミング言語として一般的なＣ言語やＣ＋＋言語で作成している。近年では、コントローラのユーザーアプリケーションの開発にも、システムソフトの作成と同様にＣ言語やＣ＋＋言語が利用されている。
この背景として、パソコンが広く普及し、パソコンのＯＳとしては事実上の標準であるＷｉｎｄｏｗｓ（登録商標）で動作するアプリケーションは、Ｃ言語やＣ＋＋言語で記述するのがごく一般的であり、パソコン用アプリケーションを作成する開発ツールには無料な製品や安価な製品が広く普及していることもあり、開発経験者が多く導入しやすいことが挙げられる。コントローラのユーザーアプリケーションのプログラミング言語としてもＣ言語やＣ＋＋言語を使うのは自然な流れといえる。本発明の対象であるコントローラシステムでは、Ｃ言語やＣ＋＋言語を使ったアプリケーションを想定している。
【０００５】
従来のコントローラシステムにおいて、Ｃ言語やＣ＋＋言語で記述されたユーザーアプリケーションのデバッグは、図２のコントローラシステムに於いて以下のように行う。
前述のように、コントローラ２２は、デバッグスタブ２２５とイーサネット通信処理部２２６とを備えている。
デバッグ時には、組み込みソフト開発ツール２１１およびイーサネット通信処理部２１２を備えたパソコン２１と、コントローラ２２とをイーサネット２３を用いて接続する。コントローラシステムのデバッグ稼動時には、ユーザーの操作により、組み込みソフト開発ツール２２１からイーサネット通信処理部２１２を用いて、イーサネット２３経由でコントローラ２２へデバッグ指令を送出する。コントローラ２２内のデバッグスタブ２２５がイーサネット通信処理部２２６により前記デバッグ指令を受け取り、その指令内容に沿ってユーザーアプリケーション２２１の動作（開始、停止、ステップ実行など）を制御する。
ユーザーは組み込みソフト開発ツール２１１を操作して、ユーザーアプリケーション２２１がサーボ指令生成部２２２に対し前記動作指令を出すタイミングを変更したり、ユーザーアプリケーション２２１が発行する前記動作指令のデータ内容を観察したりすることでユーザーアプリケーション２２１をデバッグする。このように、Ｃ言語やＣ＋＋言語で記述されたコントローラのユーザーアプリケーションをデバッグする場合、コントローラのシステムソフトウェアをデバッグするための組み込みソフト開発ツールを使用している。そのような組み込みソフト開発ツールの例としては、たとえば、ＷｉｎｄＲｉｖｅｒ社のＴｏｒｎａｄｏなどがある。
【０００６】
従来より、コントローラで動作するユーザーアプリケーションのデバッグ方法として、実機を接続しないで、シミュレーションによってデバッグする方法が知られている。例えば、特許文献１の従来技術のモーションコントロール装置では、制御シミュレータ実行部と制御シミュレータ格納部とを備えた仮想ドライブに任意の制御シミュレータをダウンロードすることによって、モーションコントローラにドライブやモータ、負荷などを接続することなく、モータに接続される負荷の様々な特性に合わせた、ドライブに組み込む制御処理部やモーションコントローラ上のユーザプログラムのデバッグを行っていた。
【０００７】
また、特許文献２の従来技術では、ＦＭＳ制御装置と前記ＦＭＳ制御装置に接続された被制御要素からなるＦＭＳのシミュレーション方式において、シミュレーション処理手段は、被制御要素の動作を模擬的に実行し、ＤＩ／ＤＯ制御処理手段との間で入出力信号の授受を行うことで、作成されたソフトウェアを直接ＦＭＳに適用して被制御要素を動作させずに、ソフトウェアのデバッグを行っていた。
【先行技術文献】
【特許文献】
【０００８】
【特許文献１】特開２００４−３１０４３７号公報（第３−５頁、図１）
【特許文献２】特開平６−２８０２５号公報（第２−４頁、図１）
【非特許文献】
【０００９】
【非特許文献１】Ｔｏｒｎａｄｏ  ＵＳＥＲ’Ｓ  ＧＵＩＤＥ  （ＤＯＣ−１４２０５−８Ｄ−０１，  Ｐ．２，  Ｆｉｇｕｒｅ  １−１）
【発明の概要】
【発明が解決しようとする課題】
【００１０】
従来技術では、シミュレーションの対象範囲が限られている場合にのみうまく機能する。コントローラを含む制御システムが動作する環境が特定されており、その環境をあらかじめシミュレーション向けに数値モデル化できることが前提となっている。
ところが、オフィスや家庭向けのロボットを考えた場合、そのロボットのコントローラを含む制御システムが動作する周囲環境はさまざまであり、ロボット作成者があらかじめ想定できうるものではない。
また、ロボットが自分で移動可能な場合も含めて考えると、コントローラの制御対象となる物体と外界との相対的な位置関係を含めた周囲環境は無限といってもよい。コントローラシステムが動作する周囲状況においては、重力、摩擦、空間的制約などの実世界の物理法則に起因する制約があるが、それらをすべてシミュレーションで実現するのは非常に困難であり、実機を利用可能な場合には無駄な作業となりえる。
【００１１】
また、別の課題として、開発ツールに関する問題がある。前述のように、Ｃ言語やＣ＋＋言語で記述されたユーザーアプリケーションのデバッグには、システムソフトウェアをデバッグするための組み込みソフト開発ツールを使用することになるが、これはパソコンアプリケーションの開発ツールと比べて一般的に非常に高価であり、また、ユーザーが使用方法を習得するのに時間がかかるため、開発のための導入コストが高いという問題があった。
【００１２】
そこで、本発明は、コントローラで動作するユーザーアプリケーションを、現実の物理法則に起因する制約を含めて、ユーザーが習熟しているパソコン向けアプリケーション用の安価な開発ツールを使ってデバッグすることを目的とする。
【課題を解決するための手段】
【００１３】
上記問題を解決するため、本発明は、次のように構成したのである。
請求項１に記載の発明は、パソコン用アプリケーション開発ツールを搭載したパソコン上で、少なくとも一つのサーボアンプを制御するコントローラの上で実行されるユーザーアプリケーションをデバッグするデバッグ方法において、前記パソコンは、ユーザからの操作入力に対応して前記アプリケーション開発ツールが前記ユーザーアプリケーションの動作制御を行い、前記ユーザーアプリケーションがサーボ指令生成部へ動作指令を出力し、
前記サーボ指令生成部がサーボ指令を生成し、前記サーボ指令をパソコン・コントローラ間通信手段によって前記コントローラに送信し、前記コントローラは、前記サーボ指令を受信して前記コントローラのサーボ指令格納部に格納し、該サーボ指令を一定周期で通信を実行するコントローラ・サーボアンプ間通信手段によってサーボアンプに送信し、該サーボ指令を前記サーボアンプが実行することによってデバッグされることを特徴とするものである。
請求項２に記載の発明は、請求項１に記載の発明において、前記動作制御は、開始、停止およびステップ実行を含むことを特徴とするものである。
請求項３に記載の発明は、請求項１または請求項２に記載の発明において、前記サーボ指令生成部は、前記ユーザーアプリケーションを前記コントローラ上で実行するときに使用されるものと同じものであることを特徴とするものである。
請求項４に記載の発明は、請求項１〜請求項３のいずれかに記載の発明において、前記サーボ指令格納部はサーボ指令生成部より受信したサーボ指令を蓄積するサーボ指令蓄積部を持ち、一定周期内にサーボ指令を受信できなかった場合に、サーボ指令蓄積部から直近の過去のサーボ指令群を取り出し、前記サーボ指令群を用いて線形予測法により算出したサーボ指令をサーボアンプに渡すことを特徴とするものである。
請求項５に記載の発明は、請求項１に記載のユーザーアプリケーションのデバッグ方法を実行するために、前記パソコン・コントローラ間通信手段と、前記サーボ指令を格納するサーボ指令格納部と、前記コントローラ・サーボアンプ間通信手段と、を備えることを特徴とするものである。
請求項６に記載の発明は、請求項５に記載の発明において、前記コントローラは、少なくとも一つの前記サーボアンプと接続されることを特徴とするものである。
請求項７に記載の発明は、請求項５または請求項６に記載の発明において、前記接続は、サーボネットワークによって行われることを特徴とするものである。
請求項８に記載の発明は、請求項１に記載のユーザーアプリケーションのデバッグ方法を実行するための、パソコン用アプリケーション開発ツールを搭載したパソコンと、少なくとも一つのサーボアンプを制御するコントローラと、少なくとも一つの前記サーボアンプとを含むコントローラシステムであって、前記パソコンは、前記コントローラで実行されるユーザーアプリケーションをデバッグするときに、前記ユーザーアプリケーションと、
前記ユーザーアプリケーションが出力する動作指令に基いてサーボ指令を生成するサーボ指令生成部と、前記サーボ指令を前記コントローラに送信する手段と、を備え、前記コントローラは、前記サーボ指令を受信する手段と、該サーボ指令を格納するサーボ指令格納処理部と、該サーボ指令を前記サーボ指令格納処理部から読み出して一定周期で前記サーボアンプへ送信する手段と、を備えることを特徴とするものである。
請求項９に記載の発明は、請求項８に記載の発明において、前記パソコンと前記コントローラは、パソコン・コントローラ間通信手段によって接続されることを特徴とするものである。
請求項１０に記載の発明は、請求項８または請求項９に記載の発明において、前記コントローラと前記サーボアンプは、コントローラ・サーボアンプ間通信手段によって接続されることを特徴とするものである。
請求項１１に記載の発明は、請求項１０に記載の発明において、前記コントローラ・サーボアンプ間通信手段は、サーボネットワークであることを特徴とするものである。
請求項１２に記載の発明は、請求項８〜請求項１１のいずれかに記載の発明において、前記サーボ指令格納部はサーボ指令生成部より受信したサーボ指令を蓄積するサーボ指令蓄積部を持ち、一定周期内にサーボ指令を受信できなかった場合に、サーボ指令蓄積部から直近の過去のサーボ指令群を取り出し、前記サーボ指令群を用いて外挿により算出したサーボ指令をサーボアンプに渡すことを特徴とするものである。
【発明の効果】
【００１４】
請求項１〜請求項４のいずれかに記載の発明によれば、コントローラで動作するユーザーアプリケーションを、現実の物理法則に起因する制約を含めて、ユーザーが習熟しているパソコン向けアプリケーション用の安価なデバッガを使ってデバッグすることができるという効果がある。
請求項５〜請求項７のいずれかに記載の発明によれば、コントローラで動作するユーザーアプリケーションを、現実の物理法則に起因する制約を含めて、ユーザーが習熟しているパソコン向けアプリケーション用の安価なデバッガを使ってデバッグすることが可能なコントローラを提供することが可能となる。
請求項８〜請求項１２のいずれかに記載の発明によれば、コントローラで動作するユーザーアプリケーションを、現実の物理法則に起因する制約を含めて、ユーザーが習熟しているパソコン向けアプリケーション用の安価なデバッガを使ってデバッグすることが可能なコントローラシステムを提供することが可能となる。
【図面の簡単な説明】
【００１５】
【図１】本発明の実施例を示すブロック図
【図２】従来のコントローラシステムを示すブロック図
【図３】ユーザーアプリケーションの例
【図４】サーボ指令が欠落したときの処理
【発明を実施するための形態】
【００１６】
以下、本発明の実施例を図に基づいて説明する。
【実施例１】
【００１７】
図１は、本発明のコントローラシステムを示すブロック図である。
図において、２１はパソコン、２２はコントローラ、２３はイーサネット、２４はサーボネットワーク、２５はサーボアンプ、２６はモータである。パソコン２１とコントローラ２２はイーサネット２３で、コントローラ２２とサーボアンプ２３はサーボネットワーク２４で、それぞれ接続されている。コントローラおよびサーボアンプ、サーボモータはデバッグ稼動用のみならず実際に稼動するシステムと同一の機器を用いる。
なお、コントローラやサーボアンプ等は実際に稼動するシステムにおいては、例えば、ロボット機構構造物の一部として組み付けて実機として使用するが、動作原理を説明するには冗長なので本文書では省略する。
【００１８】
パソコン２１は、サーボ指令生成部２２２と、伝送処理部２２３と、イーサネット通信処理部２１２とを備える。
なお、サーボ指令生成部２２２は、ユーザーアプリケーション２２１がコントローラ２２上で実行されるときのものと同じものである。つまり、ユーザーアプリケーション２２１とサーボ指令生成部２２２については、ユーザーアプリケーション２２１をデバッグするときはパソコン２１上で実行され、該デバッグが完了して実稼動するときは各々同じものがコントローラ２２上で実行される。
【００１９】
ユーザーアプリケーション２２１がパソコン２１上で実行されると、動作指令がサーボ指令生成部２２２に伝えられる。サーボ指令生成部２２２は、前記動作指令をサーボ指令に変換し、伝送処理部２２３に渡す。伝送処理部２２３は、イーサネット通信処理部２１２を用いて、前記サーボ指令をコントローラ２２へ送出する。前記パソコンで動作するパソコンアプリケーション開発ツール２１３は、内蔵するデバッガ機能によりパソコンアプリケーションをデバッグすることができるものである。そのようなツールの例としては、例えば、Ｍｉｃｒｏｓｏｆｔ（登録商標）社のＶｉｓｕａｌ  Ｓｔｕｄｉｏ（登録商標）などがある。
【００２０】
コントローラ２２は、イーサネット通信処理部２２６と、サーボ指令格納処理部２２７と、伝送処理部２２３と、サーボネットワーク通信処理部２２４を備える。パソコン側での前記の操作に伴い、コントローラ２２は、パソコンからイーサネット通信処理部を通じて送られたサーボ指令を受け取り、サーボ指令格納処理部２２７に一時的に格納する。伝送処理部２２３は、サーボネットワーク通信処理部２２４を使って、物理媒体であるサーボネットワーク２４を介して、前記サーボ指令をサーボアンプ２５へ伝送する。このとき、伝送処理部２２３は、予め決められた周期時間に従って、前記サーボ指令をサーボアンプ２５へ伝送する処理を周期的に実行する。
【００２１】
コントローラシステムのデバッグ稼動時には、パソコン２１上で、ユーザーアプリケーション２２１が生成する動作指令を、サーボ指令生成部２２２がサーボ指令に変換し、伝送処理部２２３がイーサネット通信処理部２１２を用いてコントローラ２２へサーボ指令を送出する。コントローラでは、ユーザーアプリケーション２２１が生成する動作指令を、サーボ指令生成部２２２がサーボ指令に変換し、伝送処理部２２３がサーボネットワーク通信処理部２２４を用いてサーボアンプ２５へサーボ指令を送出する。
【００２２】
ユーザーの操作により、パソコンアプリ開発ツール２１３がユーザーアプリケーション２２１の動作を制御する。ユーザーは開発ツール２１３を操作して、デバッグ操作を実行することができる。ユーザーアプリケーションがサーボ指令生成部２２２に対し動作指令を出すタイミングを変更したり、ユーザーアプリケーション２２１が発行する動作指令のデータ内容を観察したりすることでユーザーアプリケーション２２１をデバッグすることができる。ユーザーが行うデバッグ操作には、例えばステップ実行がある。ステップ実行時には、ユーザーアプリケーションのソースコード上での１行が１ステップとしてパソコンのデバッガの制御下で実行される。
【００２３】
図３はユーザーアプリケーションの例である。図に於いて、「ｄｏｕｂｌｅ  ｐ１［］＝  …」および「ｄｏｕｂｌｅ  ｐ２［］＝  …」は位置を表すデータ列である。「Ｍｏｖｅ（）」はサーボアンプ２５への動作指令の例である。「Ｗａｉｔ（）」はサーボ指令生成部２２２へのプログラム実行に対する制御指令であり、その直前の動作指令である「Ｍｏｖｅ（）」の実行が完了するまでプログラム上の次のステップの実行を一時的に保留するという指示である。ソースコードに記述されたコントローラへの指令が、モーション制御の動作指令であれば、指令内容に従って時々刻々のサーボ指令がサーボ指令生成部２２２で作られ、コントローラ２２内のサーボ指令格納処理部２２７に送られる。伝送処理部２２３がサーボ指令を受け取り、サーボアンプ２５に対して予め決めておいたサーボ通信周期に基づいて周期的に送る。
【００２４】
サーボアンプへのサーボ指令は、一定周期で逐次的に連続して送る必要がある。一般にパソコンのＯＳはＲＴＯＳ（Ｒｅａｌ  Ｔｉｍｅ  Ｏｐｅｒａｔｉｎｇ  Ｓｙｓｔｅｍ）ではないので、コントローラアプリケーションの指令は時間制約を守れない場合もある。パソコンからの動作指令が規定時間内にコントローラに来ない場合に、連続して発生しなければ、コントローラで仮の指令を作成することで、サーボ指令の抜けによりサーボが通信異常などでシステムが停止することは回避できる。デバッグ対象がユーザーアプリケーションの動作シーケンスである場合には、動作が多少滑らかでないことは許容できうる。
【００２５】
パソコンからの動作指令が規定時間内にコントローラに来ない場合に仮の指令を作成する方法は、例えば以下のものがある。
サーボ指令格納処理部２２７はサーボ指令生成部より受信し、サーボアンプへ送信済みのサーボ指令を蓄積するサーボ指令蓄積部を持つ。サーボ指令格納処理部は、一定の周期で図４に示す手順の処理を実行する。サーボ指令格納処理部２２７が一定周期内にサーボ指令を受信できなかった場合（ステップＳ１）には、サーボ指令蓄積部から直近の過去のサーボ指令群を取り出し（ステップＳ４）、前記サーボ指令群を用いて線形予測法によりサーボ指令を算出する（ステップＳ５）。サーボ指令を正常に受信できた場合、サーボ指令蓄積部へ指令値を格納する（ステップＳ２）。いずれの場合でも、サーボ指令をサーボアンプへ送信する（ステップＳ３）。
算出するための式は、サーボ指令の与え方や線形予測法における係数の選び方などで種々の方法が考えられる。次式は、サーボ指令を絶対位置による指令とした場合の、時刻ｔ−１におけるサーボ指令Ｐ（ｔ−１）と時刻ｔ−２におけるサーボ指令Ｐ（ｔ−２）の２つのサーボ指令値を用いて、時刻ｔにおけるサーボ指令Ｐ（ｔ）を算出する式のごく単純な例である。
Ｐ（ｔ）＝Ｐ（ｔ−１）＋｛Ｐ（ｔ−１）−Ｐ（ｔ−２）｝
また、過去の１つのサーボ指令値を用いる例としては、Ｐ（ｔ）に前回と同一のサーボ指令値（Ｐ（ｔ−１））を用いる手法も考えられる。このようにしてコントローラで算出したサーボ指令をサーボアンプに渡すことで、パソコンからコントローラへのサーボ指令が瞬間的に途切れた場合でも、サーボアンプは動作を継続することができる。
【符号の説明】
【００２６】
２１  パソコン
２２  コントローラ
２３  イーサネット
２４  サーボネットワーク
２５  サーボアンプ
２６  モータ
２１１  組み込みソフト開発ツール
２１２  イーサネット通信処理部
２１３  パソコンアプリ開発ツール
２２１  ユーザーアプリケーション
２２２  サーボ指令生成部
２２３  伝送処理部
２２４  サーボネットワーク通信処理部
２２５  デバッグスタブ
２２６  イーサネット通信処理部
２２７  サーボ指令格納処理部
【図１】
2010204977.tif 000003
【図２】
2010204977.tif 000004
【図３】
2010204977.tif 000005
【図４】
2010204977.tif 000006