(57)【要約】      （修正有）【課題】制御ホストとスレーブ間の通信回数を減少させ、マイナーチェンジの労力や費用を低減することが可能なモーションコントロールシステムを提供する。【解決手段】本発明のモーションコントロールシステムは、コントローラユニット21と、制御プログラムを備える制御ホストと、制御ホスト及びコントローラユニット21間の通信を行う通信インターフェイスユニットとを有し、コントローラユニット21は、実行命令の変換を行うＣＰＵ22と、実行命令に従って指令パルスを発生させる軸制御ロジック回路31,32と、ＲＯＭ24とを有し、ＲＯＭにマクロデータが保持され、軸制御ロジック回路31,32は、マクロデータを書き込むことが可能なＲＡＭ36a,36b,36c,36dを備え、且つ、ＲＡＭ36a,36b,36c,36dのマクロデータに従って実行命令を自動実行するＲＡＭインターフェイス機能を備える。【選択図】図２
2016207169.tif 000002
【特許請求の範囲】
【請求項１】
パルス駆動モータ用の１つ又は複数のモータドライバに対して指令パルスを出力する少なくとも１つのコントローラユニットと、制御プログラムを備える制御ホストと、前記制御ホスト及び前記コントローラユニット間の通信を行う通信インターフェイスユニットとを有し、前記制御ホストが、前記制御プログラムの関数の実行により前記コントローラユニットに対するリクエスト信号を送信し、前記コントローラユニットが、前記リクエスト信号に基づいて前記指令パルスを出力することにより、前記パルス駆動モータの動作制御を行うモーションコントロールシステムであって、前記コントローラユニットは、前記リクエスト信号から実行命令を変換するＣＰＵと、前記実行命令に従って前記指令パルスを発生させる１つ又は複数の軸制御ロジック回路とを有するモーションコントロールシステムにおいて、
前記コントローラユニットはＲＯＭを有するとともに、前記ＲＯＭに、複数の実行命令を予め備える少なくとも１つのマクロデータが保持され、
前記軸制御ロジック回路は、前記制御ホストから指定される前記ＲＯＭ内の前記マクロデータを書き込むことが可能なＲＡＭを備え、且つ、前記制御ホストからの前記リクエスト信号により、前記ＲＡＭに書き込まれた前記マクロデータに従って複数の前記実行命令を順番に自動実行するＲＡＭインターフェイス機能を備えてなる、
ことを特徴とするモーションコントロールシステム。
【請求項２】
前記軸制御ロジック回路は、変換された前記実行命令を解析する命令解析部と、前記指令パルスを発生させる１つ又は複数の軸制御部とを備え、
前記ＲＡＭは、各軸制御部に１つずつ設けられてなる、
請求項１記載のモーションコントロールシステム。
【請求項３】
前記ＲＡＭは、前記実行命令をそれぞれ書き込むことが可能な複数のアドレスを有し、
前記軸制御ロジック回路は、前記ＲＡＭインターフェイス機能により、前記リクエスト信号により指定される所定のアドレスの前記実行命令から前記マクロデータを自動実行してなる、
請求項１又は２記載のモーションコントロールシステム。
【請求項４】
前記ＲＡＭは、複数の前記マクロデータを書き込むことが可能な容量を有してなる請求項１〜３のいずれかに記載のモーションコントロールシステム。
【請求項５】
前記ＲＯＭは、複数の前記ＲＡＭにそれぞれ対応して書き込まれる複数の前記マクロデータを備えた１枚又は複数枚のシートデータを保持してなる請求項１〜４のいずれかに記載のモーションコントロールシステム。
【請求項６】
前記コントローラユニットは、複数の前記ＲＡＭに、前記リクエスト信号により指定される１枚の前記シートデータから、対応する前記マクロデータを展開してそれぞれ書き込むことが可能とされてなる請求項５記載のモーションコントロールシステム。
【請求項７】
前記コントローラユニットは、複数の前記ＲＡＭに、前記リクエスト信号により指定される２枚以上の前記シートデータから、指定される前記マクロデータを組み合わせてそれぞれ書き込むことが可能とされてなる請求項５記載のモーションコントロールシステム。
【請求項８】
前記制御ホストは、前記ＲＯＭに保持されている前記マクロデータの少なくとも一部を、前記制御プログラム又は専用の書き換えプログラムで書き換えることが可能とされてなる請求項１〜７のいずれかに記載のモーションコントロールシステム。
【請求項９】
前記制御ホストは、前記ＲＡＭに書き込まれた前記マクロデータの少なくとも一部を、前記制御プログラム又は専用の書き換えプログラムで書き換えることが可能とされてなる請求項１〜８のいずれかに記載のモーションコントロールシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、制御ホストとコントローラユニットとの間で通信が行われるモーションコントロールシステムに関する。
【背景技術】
【０００２】
モーションコントロールシステムは、工作機械や組み立て機械のような産業用機械装置や様々な検査装置などにおいて、モータやセンサ等の動作（モーション）を制御する技術として幅広く用いられている。通常、１つの機械装置には、サーボモータやステッピングモータ等の数多くのパルス駆動モータが用いられており、それぞれのモータの動作をモーションコントロールシステムで制御することにより、位置決め動作や複数軸の同期動作などの様々な動作を円滑に行うことが可能となる。また、モーションコントロールシステムを利用することにより、サーボ制御や、センサ等のＩ／Ｏ制御などを一元的に管理できる。
【０００３】
モーションコントロールシステムでは、一般的に、複数のパルス駆動モータを駆動させるコントローラユニットを有するスレーブや、センサ等の入出力を行うＩ／Ｏユニットのようなスレーブと、これらのスレーブの上位に配され、各スレーブの操作や制御を行う制御ホストとが、通信インターフェイスユニットを介して、相互に信号を送受信することが可能に接続されている。
【０００４】
制御ホストは、例えばＰＣ（パーソナルコンピュータ）やＰＬＣ（プログラマブルロジックコントローラ）等により形成されており、Ｃ＃等の様々な開発言語を用いて構築される制御プログラムと、スレーブとの間で通信を行うためのソフトウェアモジュールとなるデバイスドライバとを有する。
【０００５】
このような制御ホストでは、制御プログラムにてスレーブの操作や制御を行うための関数が実行され、また、デバイスドライバにてその実行された関数に基づいてリクエスト信号が１回又は複数回送信される。また一方、リクエスト信号を受信したスレーブでは、そのリクエスト信号に対する応答として、実行結果等のアンサーバック信号が制御ホストに向けて送信され、制御ホストでは、そのアンサーバック信号をデバイスドライバで受信して解析することによって、関数の実行結果が制御プログラムに戻される。
【０００６】
また、例えばパルス駆動モータを駆動させるスレーブには、コントローラユニットと１つ又は複数のドライバユニットとが配されているとともに、各ドライバユニットにパルス駆動モータがそれぞれ接続されている。なお、パルス駆動モータを駆動させるスレーブとしては、コントローラユニットとドライバユニットとがそれぞれ別々のユニットとして配されるスレーブだけでなく、コントローラ機能とドライバ機能とを一体的に備えるコントローラドライバユニットを備えるスレーブも知られている。
【０００７】
スレーブのコントローラユニットは、制御ホストからのリクエスト信号を受信するとともに、そのリクエスト信号に従ってドライバユニットに対して所定の指令パルスを出力する機能を備える。また、ドライバユニットは、その入力された指令パルスに従ってモータの励磁コイルに駆動電流を流す機能を備えており、この駆動電流をモータの励磁コイルに流すことにより、モータを円滑に回転駆動させることができる。
【０００８】
従って、通常のモーションコントロールシステムでは、制御ホストの制御プログラムで関数を実行することにより、制御ホストとモータを駆動させるスレーブとの間で相互に信号の送受信がその都度行われ、更に、スレーブのコントローラユニット及びドライバユニットが、制御ホストからのリクエスト信号に従って上述のような処理をそれぞれ行うことによって、パルス駆動モータの駆動が制御される。
【０００９】
ここで、パルス駆動モータを駆動させるスレーブに用いられるコントローラユニットとして、Ｘ軸、Ｙ軸、Ｚ軸及びＡ軸の４軸のパルス駆動モータを駆動させる４軸コントローラユニットを、図１１を参照しながら簡単に説明する。
【００１０】
図１１に示したコントローラユニット８１は、様々な処理を行うＣＰＵ８２と、リクエスト信号の受信及びアンサーバック信号の送信を行う通信制御部８３と、ＣＰＵ８２で変換される実行命令に従って指令パルスを発生させる第１及び第２軸制御ロジック回路９１，９２（第１及び第２パルスジェネレータとも言う）と、第１〜第４ドライバユニット９９ａ〜９９ｄに対して指令パルスの信号を出力する外部機器インターフェイス回路８５とを有する。また、コントローラユニット８１におけるＣＰＵ８２、通信制御部８３、並びに第１及び第２軸制御ロジック回路９１，９２は、バス８６によって相互に接続されている。
【００１１】
このコントローラユニット８１の通信制御部８３は、通信インターフェイス回路８７を介して、制御ホストとコントローラユニット８１の間に配される通信インターフェイスユニットに接続されており、コントローラユニット８１の通信インターフェイス回路８７と、通信インターフェイスユニットとの間でシリアル通信が行われる。
【００１２】
図１１に示した第１軸制御ロジック回路９１は、２つの第１及び第２ドライバユニット９９ａ，９９ｂに対して指令パルスを出力することが可能な２軸用の軸制御ロジック回路として形成されており、第２軸制御ロジック回路９２も、２つの第３及び第４ドライバユニット９９ｃ，９９ｄに対して指令パルスを出力することが可能な２軸用の軸制御ロジック回路として形成されている。
【００１３】
この場合、第１軸制御ロジック回路９１は、ＣＰＵ８２で変換された実行命令を解析する第１命令解析部９３と、解析された実行命令に従ってＸ軸（第１軸）の第１ドライバユニット９９ａに対する指令パルスを発生させるとともにその指令パルスのカウントを行う第１軸制御部（Ｘ軸制御部）９５ａと、解析された実行命令に従ってＹ軸（第２軸）の第２ドライバユニット９９ｂに対する指令パルスを発生させるとともにその指令パルスのカウントを行う第２軸制御部（Ｙ軸制御部）９５ｂとを有する。
【００１４】
また、第２軸制御ロジック回路９２も、第１軸制御ロジック回路９１と同様に、第２命令解析部９４と、Ｚ軸（第３軸）の第３ドライバユニット９９ｃに対する指令パルスを発生させるとともにその指令パルスのカウントを行う第３軸制御部（Ｚ軸制御部）９５ｃと、Ａ軸（第４軸）の第４ドライバユニット９９ｄに対する指令パルスを発生させるとともにその指令パルスのカウントを行う第４軸制御部（Ａ軸制御部）９５ｄとを有する。
【００１５】
更に、第１及び第２軸制御ロジック回路９１，９２の各軸制御部９５ａ〜９５ｄで発生させる指令パルスの信号は、外部機器インターフェイス回路８５を介して、Ｘ軸、Ｙ軸、Ｚ軸及びＡ軸のそれぞれ対応する第１〜第４ドライバユニット９９ａ〜９９ｄに出力される。また、例えばパルス駆動モータがサーボモータである場合は、図示しないエンコーダで検知される回転角や回転速度等の情報がフィードバック信号として、各ドライバユニット９９ａ〜９９ｄから外部機器インターフェイス回路８５を介して対応する軸制御部に戻される。
【００１６】
上述のような構成を有する図１１のコントローラユニット８１では、パルス駆動モータを駆動させるためのリクエスト信号が制御ホストから通信インターフェイスユニットを介して送信されると、そのリクエスト信号を通信制御部８３で受信し、更に、ＣＰＵ８２において、リクエスト信号の判別を行うとともに、リクエスト信号をコマンドとデータからなる実行命令に変換する処理が行われる。
【００１７】
次に、ＣＰＵ８２は、変換した実行命令を第１及び第２軸制御ロジック回路９１，９２に送り、その実行命令を各軸制御部９５ａ〜９５ｄ（例えば各軸制御部のレジスタ）に書き込む処理を行う。このとき、第１及び第２軸制御ロジック回路９１，９２では、第１及び第２命令解析部９３，９４で実行命令が解析されるとともに、その実行命令がＣＰＵ８２によって各軸制御部９５ａ〜９５ｄに順次書き込まれるため、各軸制御部９５ａ〜９５ｄは、書き込まれた実行命令を実行することによって、その命令に従って指令パルスを各ドライバユニット９９ａ〜９９ｄに向けて出力することができる。
【００１８】
このようなパルス駆動モータに用いられるコントローラユニットに関する発明が、例えば特開平８−２７２４１０号公報（特許文献１）、特開平８−３２０７１９号公報（特許文献２）、及び特開２００４−２８２９７２号公報（特許文献３）等に開示されている。
【００１９】
例えば特許文献１に記載されているコントローラユニットでは、複数の軸制御ロジック回路（特許文献１では「ＩＣ」と称する）がバスを介してＣＰＵに接続されており、各軸制御ロジック回路（ＩＣ）には、動作を指定するコマンドデータを一時記憶するためのレジスタと、同期スタート端子とが設けられている。また、各軸制御ロジック回路の同期スタート端子同士が相互に接続されている。
【００２０】
特許文献１によれば、コントローラユニットが上述のような構成を有することにより、各軸制御ロジック回路が、通常スタートコマンド又は同期スタートコマンドの受信に応答してスタートすることができるため、各軸制御ロジック回路の独立動作制御が可能となるだけでなく、同期、同時動作制御も可能となるとしている。
【００２１】
また特許文献２では、コントローラユニットの軸制御ロジック回路（特許文献２では「パルス発生回路」と称する）に、次動作用データ領域としてのプリレジスタ（プリバッファ）が設けられている。特許文献２によれば、軸制御ロジック回路がプリレジスタを備えることにより、軸制御ロジック回路の動作時に、次回分の動作用データをプリレジスタに書き込むことができるため、高速動作が可能となるとしている。
【００２２】
特許文献３に記載されているコントローラユニットは、ＣＰＵインターフェイス部と、軸制御ロジック回路（特許文献３では「パルス発生ＩＣ」と称する）と、レジスタ部とを有しており、レジスタ部は、モータ動作パラメータを保持する各種のレジスタを備えるとともに、次動作のデータ及び次々動作のデータをそれぞれ書き込むことが可能な第１プリレジスタ及び第２プリレジスタを備える。
【００２３】
また、特許文献３では、軸制御ロジック回路が行う位置決め動作の動作パターンとして、モータを目標位置まで定速駆動させる第１速度パターンと、モータを加速スタート後に定速駆動し、更に減速停止させる第２速度パターンと、定速スタート後に減速停止させる第３速度パターンとが用意されている。
【００２４】
特許文献３によれば、上述のような３種類の速度パターンを備えることにより、指定された速度パターンでパルス駆動モータを位置決め動作させるとともに、スムーズな連続位置決め動作を実行することができるため、動作パターンが高速で行われてもモータへの負荷を軽減し、耐久性を高めることができるとしている。
【先行技術文献】
【特許文献】
【００２５】
【特許文献１】特開平８−２７２４１０号公報
【特許文献２】特開平８−３２０７１９号公報
【特許文献３】特開２００４−２８２９７２号公報
【発明の概要】
【発明が解決しようとする課題】
【００２６】
しかし、従来のモーションコントロールシステムにおいては、全てのスレーブの操作や制御が１つの制御ホストで管理されており、パルス駆動モータ等を備えるスレーブに所望の動作を行わせるために、制御ホストの制御プログラムに、スレーブのコントローラユニットに命令を実行させるための全ての関数を持たせる必要があった。
【００２７】
このため、複数のスレーブの動作を制御するモーションコントロールシステムでは、制御ホストにおける制御プログラムの構築が複雑になり、また、制御ホストが制御プログラムで関数を実行するときの負担が大きくなることから、制御ホストの処理が遅くなるという問題があった。
【００２８】
更に、スレーブが有するパルス駆動モータに所定の動作を行わせるためには、制御ホストの制御プログラムで、その動作を規定するための複数の関数を実行しなければならず、また、１つの関数が実行される毎に制御ホストとスレーブとの間で１回以上の通信を行う必要があった。このため、制御ホストとスレーブとの間での通信回数が必然的に多くなり、制御ホストへの負担がより一層増大する傾向にあった。
【００２９】
特に、制御ホストがＰＣで形成されるモーションコントロールシステムにおいて、スレーブのセンサ等から得られる情報を用いてＰＣで画像処理や計測等を行う場合には、ＰＣのＣＰＵに対する負担が更に増大するため、モーションコントロールに関するＰＣの負担を軽減することや、モーションコントロールに用いる制御プログラムをよりシンプルに構築すること等が要求されている。
【００３０】
その上、従来のモーションコントロールシステムでは、制御ホストとスレーブとの間で行う通信の通信回数が多くなり、パルス駆動モータの数が多くなったり、パルス駆動モータの動作が複雑になったりするほど、両者間の通信回数も増大する。しかし、制御ホストとスレーブとの間の通信回数が増大すると、制御ホストのＰＣのＣＰＵの性能、制御ホストとスレーブとの間の通信速度、スレーブ（特に、コントローラユニット）の内部処理時間等の影響によって、システムにおける実行処理時間が制約されてしまい、また、ＰＣのＣＰＵの性能によりモーションコントロールの処理時間にバラつきや誤差を生じさせることがあった。このため、従来のモーションコントロールシステムでは、リアルタイム性の向上や複数軸の同期精度の向上に限界がある。更に、システムの高速化を図ることが難しいことから、機械装置の性能向上を妨げる要因となっていた。
【００３１】
また一般に、大きな機械装置のシステムを一から開発することは、数年に一度の割合であって多くはなく、実際の現場では、一度構築された装置システムに対して、ユーザーから要求された仕様に合わせるように、モーションの一部変更や軸の追加等のマイナーチェンジを行うことが多い。このようなマイナーチェンジを行う場合には、スレーブの動作を制御する制御ホストの制御プログラムを変更することが必要になる。
【００３２】
しかし、モーションコントロールシステムにおいて、制御ホストの制御プログラムを一部でも変更する場合、その制御プログラムの変更部分が正常に動作するかを確認するだけでなく、その変更に伴う他のモーションの制御に対する影響の検証やデバック等を、制御プログラムの全体に対して行うことが必要となる。このため、従来のモーションコントロールシステムでは、一部分のモーションの変更のみであっても、多大な労力、費用、時間を要するとともに、大きなリスクも伴うものであった。
【００３３】
本発明は上記従来の課題に鑑みてなされたものであって、その目的は、制御ホストの制御プログラムをシンプルに構築して制御ホストに対する負担を低減するとともに、制御ホストとスレーブとの間での通信回数を減少させることが可能で、且つ、装置のモーションをマイナーチェンジする際の労力や費用を低減するとともに変更に伴うリスクを小さくすることが可能なモーションコントロールシステムを提供することにある。
【課題を解決するための手段】
【００３４】
上記目的を達成するために、本発明により提供されるモーションコントロールシステムは、基本的な構成として、パルス駆動モータ用の１つ又は複数のモータドライバに対して指令パルスを出力する少なくとも１つのコントローラユニットと、制御プログラムを備える制御ホストと、前記制御ホスト及び前記コントローラユニット間の通信を行う通信インターフェイスユニットとを有し、前記制御ホストが、前記制御プログラムの関数の実行により前記コントローラユニットに対するリクエスト信号を送信し、前記コントローラユニットが、前記リクエスト信号に基づいて前記指令パルスを出力することにより、前記パルス駆動モータの動作制御を行うモーションコントロールシステムであって、前記コントローラユニットは、前記リクエスト信号から実行命令を変換するＣＰＵと、前記実行命令に従って前記指令パルスを発生させる１つ又は複数の軸制御ロジック回路とを有するモーションコントロールシステムにおいて、前記コントローラユニットはＲＯＭを有するとともに、前記ＲＯＭに、複数の実行命令を予め備える少なくとも１つのマクロデータが保持され、前記軸制御ロジック回路は、前記制御ホストから指定される前記ＲＯＭ内の前記マクロデータを書き込むことが可能なＲＡＭを備え、且つ、前記制御ホストからの前記リクエスト信号により、前記ＲＡＭに書き込まれた前記マクロデータに従って複数の前記実行命令を順番に自動実行するＲＡＭインターフェイス機能を備えてなることを最も主要な特徴とするものである。
【００３５】
本発明のモーションコントロールシステムにおいて、前記軸制御ロジック回路は、前記実行命令を解析する命令解析部と、前記指令パルスを発生させる１つ又は複数の軸制御部とを備え、前記ＲＡＭは、各軸制御部に１つずつ設けられていることが好ましい。
【００３６】
また、本発明のモーションコントロールシステムにおいて、前記ＲＡＭは、前記実行命令をそれぞれ書き込むことが可能な複数のアドレスを有し、前記軸制御ロジック回路は、前記ＲＡＭインターフェイス機能により、前記リクエスト信号により指定される所定のアドレスの前記実行命令から前記マクロデータを自動実行可能であることが好ましい。
更に、本発明のモーションコントロールシステムにおいて、前記ＲＡＭは、複数の前記マクロデータを書き込むことが可能な容量を有することが好ましい。
【００３７】
更にまた、前記ＲＯＭは、複数の前記ＲＡＭにそれぞれ対応して書き込まれる複数のマクロデータを備えた１枚又は複数枚のシートデータを保持していることが好ましい。
【００３８】
この場合、前記コントローラユニットは、複数の前記ＲＡＭに、前記リクエスト信号により指定される１枚の前記シートデータから、対応する前記マクロデータを展開してそれぞれ書き込むことが可能とされていることが好ましい。また、前記コントローラユニットは、複数の前記ＲＡＭに、前記リクエスト信号により指定される２枚以上の前記シートデータから、指定される前記マクロデータを組み合わせてそれぞれ書き込むことが可能とされていても良い。
【００３９】
本発明のモーションコントロールシステムにおいて、前記制御ホストは、前記ＲＯＭに保持されている前記マクロデータの少なくとも一部を、前記制御プログラム又は専用の書き換えプログラムで書き換えることが可能とされていることが好ましい。
更に、前記制御ホストは、前記ＲＡＭに書き込まれた前記マクロデータの少なくとも一部を、前記制御プログラム又は専用の書き換えプログラムで書き換えることが可能とされていることが好ましい。
【発明の効果】
【００４０】
本発明に係るモーションコントロールシステムは、指令パルスを出力する少なくとも１つのコントローラユニットと、制御プログラムを備える制御ホストと、制御ホスト及びコントローラユニット間の通信を行う通信インターフェイスユニットとを有する。また、コントローラユニットは、制御ホストのリクエスト信号から実行命令を変換するＣＰＵと、実行命令に従って指令パルスを発生させる軸制御ロジック回路と、複数の実行命令をマクロ化したマクロデータを保持するＲＯＭとを有する。
【００４１】
このような本発明のモーションコントロールシステムによれば、従来のモーションコントロールシステムでは制御ホストに持たせていた関数の一部を、複数の実行命令の集合体からなるマクロデータとして、コントローラユニットのＲＯＭに持たせて記憶させておくことができる。
【００４２】
これにより、マクロデータに持たせた実行命令に対応する関数を制御ホストの制御プログラムに持たせなくても良くなるため、制御ホストの制御プログラムを従来のものよりもシンプルに構築することが可能となるとともに、制御プログラムで関数を実行するときの制御ホストの負担を低減できる。更に、制御ホストの制御プログラムをシンプル化できれば、制御プログラムの開発に要する労力及び時間を削減でき、また、モーションコントロールシステムの立ち上げを円滑に行うことができる。
【００４３】
また本発明では、コントローラユニットのＲＯＭに、実行命令の集合体であるマクロデータを保持するとともに、コントローラユニットの軸制御ロジック回路が、制御ホストから指定されるＲＯＭ内のマクロデータを書き込むことが可能なＲＡＭを備える。更に、軸制御ロジック回路は、ＲＡＭに書き込まれたマクロデータに従って複数の実行命令を順番に自動実行するＲＡＭインターフェイス機能を備える。
【００４４】
従って、例えば制御ホストの制御プログラムが、コントローラユニットに対し、指定するマクロデータをＲＯＭからＲＡＭに書き込むようにリクエスト信号を送信し、更にその後、ＲＡＭに書き込まれたマクロデータに従って実行命令を自動実行するようにリクエスト信号を送信することにより、コントローラユニット側で、マクロデータに従ってパルス駆動モータに所定の動作を自動的に行わせることが可能となる。
【００４５】
このため、本発明では、スレーブに所定の動作を行わせるために、従来のように制御プログラムで複数の関数を実行して制御ホストとコントローラユニットとの間で複数回の通信を繰り返して行う必要がなくなり、制御ホストとコントローラユニット間の通信回数を大きく低減させるとともに、その通信に要する時間を削減することができる。
【００４６】
すなわち、本発明では、制御ホストの制御プログラムをシンプルに構築できるとともに、制御ホストとコントローラユニット間の通信の回数や時間を少なくできるため、制御ホストの負担を、従来のモーションコントロールシステムよりも大きく低減させることができ、その結果、制御ホストの処理が遅くなるという従来の課題を解消することができる。
【００４７】
しかも、制御ホストとコントローラユニット間の通信回数の減少により、制御ホストの性能、制御ホストとスレーブとの間の通信速度、コントローラユニットの内部処理時間に依存しないようなリアルタイム性を備えた高度なモーションコントロールを安定して実現することができる。更に、モーションコントロールの実行処理時間のバラつきや誤差を抑えて、実行処理時間を安定して確保し易くなるため、処理の遅延による制御の破綻が生じることを防止できる。このため、位置決めの微細制御の向上や複数軸の同期精度の向上、また、機械装置の高速化及び性能向上を図ることができる。
【００４８】
更に本発明のモーションコントロールシステムでは、例えば複数のコントローラユニットのＲＯＭに、制御プログラムの関数に対応するマクロデータを分散させて保持させることが可能となる。このため、各スレーブで行う一連のモーションをそのスレーブの機能として完結させて自動実行させることができ、それによって、各スレーブにおける一連のモーションを円滑に且つ確実に行うことができる。
【００４９】
特に本発明では、スレーブが行うモーションを、制御プログラムの関数で規定することも、また、ＲＡＭに書き込むことが可能なマクロデータとしてコントローラユニットのＲＯＭに保持することも可能となることから、制御ホストの制御プログラムと、ＲＯＭに保持するマクロデータとの間に互換性を持たせることができる。それにより、システム設計の自由度を高めることができ、ユーザーから要求される仕様に、より柔軟に対応することが可能となる。
【００５０】
更に本発明では、モーションコントロールシステムにおいてモーションの一部変更や軸の追加等のマイナーチェンジを行う場合に、そのマイナーチェンジを行う部分のコントローラユニットのマクロデータのみを変更することによって、制御ホストの制御プログラムや、その他のコントローラユニットのマクロデータを変更しなくても容易に対応することが可能となる。
【００５１】
またこの場合、マイナーチェンジを行うコントローラユニットのマクロデータのみを変更すれば良く、変更しないコントローラユニットへの影響がなくなる（又は少なくなる）ため、その部分的な変更に伴う他の制御に対する影響の検証やデバック等を、そのコントローラユニット内の小さな範囲で行うだけで十分となる。従って、本発明では、従来のモーションコントロールシステムに比べて、マイナーチェンジを行う際に要する労力、費用、時間を大幅に低減できるとともに、マイナーチェンジの際に伴うリスクも小さくすることが可能となるという大きなメリットが得られる。
【００５２】
このような本発明のモーションコントロールシステムにおいて、軸制御ロジック回路は、実行命令を解析する命令解析部と、指令パルスを発生させる１つ又は複数の軸制御部とを備えており、また、各軸制御部にはＲＡＭが１つずつ設けられている。これにより、各軸制御部のＲＡＭに、対応するマクロデータを書き込んで軸制御部ごとに自動実行させることができるため、軸制御部ごとにモーションを完結させることができる。従って、例えば軸制御部ごとのモーションを１つの制御ホストで一元的に制御する場合に比べて、それぞれの軸制御部の制御が容易となり、また、各軸制御部のモーションを安定して行わせることができる。
【００５３】
また、本発明のモーションコントロールシステムにおいて、軸制御部のＲＡＭは、実行命令をそれぞれ書き込むことが可能な複数のアドレスを有し、軸制御ロジック回路は、ＲＡＭインターフェイス機能により、リクエスト信号により指定される所定のアドレスの実行命令からマクロデータを自動実行可能である。これにより、軸制御部に、マクロデータに従った所定の動作を、マクロデータの初めからでも、又はマクロデータの途中からでも安定して行わせることが可能となり、スレーブの動作を多様に制御することができる。
【００５４】
更に、本発明のモーションコントロールシステムにおいて、軸制御部のＲＡＭは、複数のマクロデータを書き込むことが可能な容量を有する。これにより、制御ホストのリクエスト信号により、軸制御部のＲＡＭに複数のマクロデータを一度に書き込んで記憶させることができる。この場合、ＲＡＭに書き込まれた複数のマクロデータの中から１つ又は複数のマクロデータを指定して自動実行させることができる。
【００５５】
このように、ＲＡＭに書き込まれた複数のマクロデータの中からスレーブの動作パターンを選択して自動的に行わせることができ、また、スレーブの動作パターンを変更する際にＲＡＭにおけるマクロデータの書き換えをその都度行わなくても良くなるため、スレーブの動作をより効率的に制御することができる。
【００５６】
更にまた、コントローラユニットのＲＯＭは、複数のＲＡＭにそれぞれ対応して書き込まれる複数のマクロデータを備えた１枚又は複数枚のシートデータを保持することが可能である。これにより、各軸制御部のＲＡＭに展開する相互に対応した複数のマクロデータを１枚のシートデータにまとめて保持することができるため、マクロデータの管理を行い易くすることができる。
【００５７】
また、ＲＯＭの中に、ＲＡＭに展開可能な複数のシートデータが保持されていることにより、スレーブに行わせることが可能な複数の多様な動作パターンを持たせておくことが可能となる。このため、スレーブに実際に動作を行わせる際に複数のシートデータから所要のシートデータを選択することによって、スレーブに所定の動作を円滑に行わせることができるとともに、スレーブに行わせる動作パターンの変更も容易に行うことができる。
【００５８】
この場合、コントローラユニットは、複数の軸制御部の各ＲＡＭに、リクエスト信号により指定される１枚のシートデータから、対応するマクロデータを展開してそれぞれ書き込むことが可能とされている。これにより、１枚のシートデータから、各軸制御部のＲＡＭに対して、相互に動作が対応するマクロデータを展開して書き込むことができるため、ＲＡＭへの書き込みを容易に且つ効率的に行うことができ、また、複数の軸制御部に、互いに対応する動作を円滑に行わせることができる、
また本発明において、コントローラユニットは、複数の軸制御部の各ＲＡＭに、リクエスト信号により指定される２枚以上のシートデータから、指定されるマクロデータを組み合わせてそれぞれ書き込むことが可能である。これにより、制御ホストの制御プログラムを変更することなく、各軸制御部で自動実行させることが可能な動作パターンの種類を容易に増大させることができる。
【００５９】
本発明のモーションコントロールシステムにおいて、制御ホストは、ＲＯＭに保持されているマクロデータの少なくとも一部を、制御プログラム又は専用の書き換えプログラムで書き換えることが可能である。更に、制御ホストは、ＲＡＭに書き込まれたマクロデータの少なくとも一部を、制御プログラム又は専用の書き換えプログラムで書き換えることが可能である。
【００６０】
これにより、制御ホストの制御プログラム自体を変更することなく、マクロデータに従って自動実行させることが可能な動作パターンを容易に変更することができる。また、動作パターンの一部を変更する等のマイナーチェンジを行う際に要する労力、費用、時間を大幅に低減できるとともに、マイナーチェンジの際に伴うリスクも小さくできる。
【図面の簡単な説明】
【００６１】
【図１】本発明のモーションコントロールシステムを示すブロック図である。
【図２】同モーションコントロールシステムにおける４軸コントローラユニットを示すブロック図である。
【図３】同モーションコントロールシステムにおけるリクエスト信号のフォーマットを示す概略図である。
【図４】同モーションコントロールシステムにおけるアンサーバック信号のフォーマットを示す概略図である。
【図５】４軸コントローラユニットの各ＲＡＭに書き込まれるマクロデータについて説明する説明図である。
【図６】４軸コントローラユニットのＲＯＭに保持されるシートデータについて説明する説明図である。
【図７】実施例で実行するパルス駆動モータの動作パターンを示すグラフである。
【図８】Ｘ軸用のマクロデータの内容を説明する図である。
【図９】実施例において、制御ホストの制御プログラムが実行する関数の内容を説明する図である。
【図１０】従来のモーションコントロールシステムにおいて、制御ホストの制御プログラムが実行する関数の内容を説明する図である。
【図１１】従来のモーションコントロールシステムにおける４軸コントローラユニットを示すブロック図である。
【発明を実施するための形態】
【００６２】
以下に、本発明の好適な実施の形態について、図面を参照しながら詳細に説明する。
ここで、図１は、本実施形態におけるモーションコントロールシステムを示すブロック図であり、図２は、同モーションコントロールシステムにおける４軸コントローラユニットを示すブロック図である。
【００６３】
図１に示す本実施形態のモーションコントロールシステム１は、工作機械や組み立て機械などの産業用機械装置や検査装置等における動作を制御するシステムとして形成されている。このモーションコントロールシステム１は、ＰＣにより形成される制御ホスト１０と、制御ホスト１０の制御下に配される第１スレーブ２０、第２スレーブ４０、及び第３スレーブ６０と、制御ホスト１０と第１〜第３スレーブ２０，４０，６０間の通信を行う通信インターフェイスユニット７０とを有する。
【００６４】
ここで、スレーブとは、制御ホスト１０の後述する制御プログラム１１が関数を実行することによって、指定された命令に従って動作するユニットのことを言い、本実施形態では、第１スレーブ２０、第２スレーブ４０、及び第３スレーブ６０として、コントローラユニット２１、コントローラ機能とドライバ機能を一体型にしたコントローラドライバユニット４１、及びデジタルＩ／Ｏユニット６１が用いられている。なお、本実施形態において、制御ホスト１０の制御下に配されるスレーブの個数は限定されるものではなく、１つのスレーブのみが配されていても良いし、４つ以上のスレーブが配されていても良い。
【００６５】
本実施形態の制御ホスト１０は、Ｃ＃等の開発言語を用いて構築される制御プログラム１１と、第１スレーブ２０〜第３スレーブ６０に対する通信を行うためのソフトウェアモジュールとなるデバイスドライバ１２とを有しており、制御プログラム１１で関数を実行することにより、第１スレーブ２０〜第３スレーブ６０を動作させ、また、その動作を制御することができる。
【００６６】
例えば本実施形態の制御ホスト１０において、制御プログラム１１で関数が実行されると、制御プログラム１１から、その関数実行に基づく内部信号がデバイスドライバ１２に送られる。また、デバイスドライバ１２では、制御プログラム１１からの内部信号を受信すると、その内部信号に基づいてリクエスト信号７１を生成して通信インターフェイスユニット７０に送信する。
【００６７】
本実施形態において、制御ホスト１０のデバイスドライバ１２から送信されるリクエスト信号７１は、図３に示すようなフォーマットで形成されており、このリクエスト信号７１には、信号の長さ、信号の送り先、及び信号の内容などの情報が含まれている。
【００６８】
より具体的に説明すると、本実施形態のリクエスト信号７１は、信号の長さを示すリクエスト長７１ａの情報と、信号の送り先を示すスレーブアドレス７１ｂの情報及びスレーブタイプ７１ｃの情報と、信号の実質的な内容を示すリクエストコード７１ｄの情報及びリクエストデータ７１ｅの情報とを有する。
【００６９】
リクエスト長７１ａの情報は、当該リクエスト長７１ａを除くリクエスト信号７１の長さ、すなわち、スレーブアドレス７１ｂ、スレーブタイプ７１ｃ、リクエストコード７１ｄ、及びリクエストデータ７１ｅの情報の合計の長さ（バイト数）を示す。このリクエスト長７１ａの情報は、各スレーブ２０，４０，６０がリクエスト信号７１を受信したときに、それぞれのスレーブ２０，４０，６０がその受信したリクエスト信号７１が正しいものか否かを判別する要素の一つとなる。
【００７０】
リクエスト信号７１におけるスレーブアドレス７１ｂの情報は、リクエスト信号７１の送信先となる特定のスレーブのアドレスを指定している。スレーブタイプ７１ｃの情報は、送信先となるスレーブにおけるユニットの種類を特定している。リクエストコード７１ｄの情報は、リクエスト信号７１で行わせる処理の対象（例えばスレーブのポートへのライト）を指定している。
【００７１】
リクエストデータ７１ｅの情報は、リクエスト信号７１で行わせる処理の具体的な内容を指定しており、このリクエストデータ７１ｅには、例えば軸の指定、処理を実行させるコマンド、そのコマンドの具体的なデータなどの内容が含まれる。なお、本発明のリクエスト信号７１のフォーマットは、図３に示したものに限定されるものではなく、任意に変更することができる。
【００７２】
一方、本実施形態の制御ホスト１０から、後述する通信インターフェイスユニット７０を介して、スレーブにリクエスト信号７１が送られると、そのリクエスト信号７１を各スレーブ２０，４０，６０が一斉に受信し、各スレーブ２０，４０，６０がリクエスト信号７１の内容を自分に対するものであるか否かを判断する。
【００７３】
更に、各スレーブ２０，４０，６０は、そのリクエスト信号７１が自分に対するものと判断した場合には、そのリクエスト信号７１の内容を実行した後に、実行結果等の内容を含むアンサーバック信号７２を、通信インターフェイスユニット７０を介して、制御ホスト１０に送信する。制御ホスト１０では、そのアンサーバック信号７２をデバイスドライバ１２で受信して解析し、その解析に基づいて関数の実行結果が制御プログラム１１に戻される。
【００７４】
ここで、本実施形態で送信されるアンサーバック信号７２は、リクエスト信号７１を実行した結果を示す信号であり、図４に示すようなフォーマットで形成されている。このアンサーバック信号７２は、信号の長さを示すアンサー長７２ａの情報と、エラーの有無を示すエラー判定結果７２ｂの情報と、リクエスト信号７１に対する応答の内容を示すアンサーバックデータ７２ｃの情報とを有する。
【００７５】
アンサーバック信号７２におけるアンサー長７２ａの情報は、当該アンサー長７２ａを除くアンサーバック信号７２の長さ、すなわち、エラー判定結果７２ｂ及びアンサーバックデータ７２ｃの情報の合計の長さ（バイト数）を示す。エラー判定結果７２ｂの情報は、受信したリクエスト信号７１に対してエラーが生じたか否かを示すとともに、エラーが生じた場合にはそのエラーの内容を示す。アンサーバックデータ７２ｃの情報には、リクエスト信号７１に対して実行した結果や内容などのデータが含まれる。なお、本発明のアンサーバック信号７２のフォーマットも、図４に示したものに限定されるものではなく、任意に変更することができる。
【００７６】
本実施形態の制御ホスト１０は、ＰＣにより形成されているため、制御プログラム１１によるモーションコントロールの処理以外に、第３スレーブ６０の後述するセンサ等から得られる情報を用いて、画像処理等の様々な処理を行うことも可能である。なお、本実施形態の制御ホスト１０はＰＣにより形成されているが、本発明では、制御ホスト１０をＰＬＣにより形成することも可能である。
【００７７】
また、本実施形態の制御ホスト１０は、制御プログラム１１により、第１スレーブ２０のコントローラユニット２１の後述するＲＯＭ２４に保持されているマクロデータ７５やシートデータ７６の少なくとも一部を書き換えることが可能であり、また、同コントローラユニット２１における後述する第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込まれるマクロデータ７５の少なくとも一部を書き換えることが可能に構成されている。なお、本発明では、ＲＯＭ２４や第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄ内のマクロデータ７５等の書き換えを制御プログラム１１によって行う代わりに、制御ホスト１０に、ＲＯＭ２４や第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄ内のマクロデータ７５等を書き換える専用の書き換えプログラムを持たせることも可能である。
【００７８】
本実施形態の通信インターフェイスユニット７０は、制御ホスト１０のデバイスドライバ１２との間で、バス又はシリアル通信を介してリクエスト信号７１及びアンサーバック信号７２の送受信を行うとともに、第１スレーブ２０〜第３スレーブ６０との間で、シリアル通信によるリクエスト信号７１及びアンサーバック信号７２の送受信を行うユニットである。
【００７９】
この場合、図３及び図４に示したフォーマットのリクエスト信号７１及びアンサーバック信号７２の伝達を行うシリアル通信を「ＡＬＩＩ（エーエルツー）通信」と称し、この「ＡＬＩＩ通信」は、本出願人が市販するコントローラユニットやモーションコントロールシステムなどに用いられている。なお、本願で用いるシリアル通信の用語には、ＡＬＩＩ通信が含まれるものとする。
【００８０】
本実施形態の通信インターフェイスユニット７０において、制御ホスト１０を形成するＰＣに接続する形態は特に限定されるものではなく、例えばＰＣＩバスやＰＣＩＥｘｐｒｅｓｓ（登録商標）バスなどのスロット挿入タイプのもの、又は、ＵＳＢ、Ｅｔｈｅｒｎｅｔ（登録商標）、及びＥｔｈｅｒＣＡＴ（登録商標）などのシリアル通信タイプのものを利用することが可能である。
【００８１】
本実施形態において、通信インターフェイスユニット７０と第１〜第３スレーブ２０，４０，６０との間のシリアル通信の通信仕様には、絶縁型ＲＳ４８５（半二重通信）方式が採用されている。また、シリアル通信の通信速度（ボーレート）として、２０Ｍｂｐｓ又は１０Ｍｂｐｓが設定される。
【００８２】
ＲＳ４８５の通信方式は、ケーブルの引き回しが容易であり、また、ノイズに強く、一つのケーブル（伝送路）の抵抗やスレーブの負荷抵抗の影響を受け難いため、複数のスレーブを組み込むことが可能である。例えば、本実施形態のモーションコントロールシステム１の場合、最大で１５ユニットのスレーブを、通信インターフェイスユニット７０に対してシリアル通信（ＡＬＩＩ通信）で接続して制御することが可能である。
【００８３】
本実施形態の第１スレーブ２０となるコントローラユニット２１は、４軸コントローラユニットとして形成されており、このコントローラユニット２１には、Ｘ軸（第１軸）、Ｙ軸（第２軸）、Ｚ軸（第３軸）、及びＡ軸（第４軸）の各軸に配される４つのパルス駆動モータ３８が、それぞれドライバユニット３９を介して接続されている。
【００８４】
この場合、接続されるパルス駆動モータ３８として、サーボモータ又はステッピングモータが用いられる。また、Ｘ軸、Ｙ軸、Ｚ軸、及びＡ軸に配されるパルス駆動モータ３８を、それぞれ第１パルス駆動モータ３８ａ、第２パルス駆動モータ３８ｂ、第３パルス駆動モータ３８ｃ、及び第４パルス駆動モータ３８ｄとし、各パルス駆動モータ３８ａ〜３８ｄが接続するドライバユニット３９を、順番に、第１ドライバユニット３９ａ、第２ドライバユニット３９ｂ、第３ドライバユニット３９ｃ、及び第４ドライバユニット３９ｄとする。
【００８５】
本実施形態の４軸コントローラユニット２１は、図２に示すように、様々な処理を行うＣＰＵ２２と、リクエスト信号７１の受信及びアンサーバック信号７２の送信を行う通信制御部２３と、複数のマクロデータ７５が予め記憶されている１つのＲＯＭ２４と、指令パルスを発生させる第１及び第２軸制御ロジック回路３１，３２（第１及び第２パルスジェネレータとも言う）と、第１及び第２軸制御ロジック回路３１，３２で発生させた指令パルスの信号を第１ドライバユニット３９ａ〜第４ドライバユニット３９ｄに対して出力する外部機器インターフェイス回路２５とを有する。
【００８６】
この場合、４軸コントローラユニット２１におけるＣＰＵ２２、通信制御部２３、ＲＯＭ２４、並びに第１及び第２軸制御ロジック回路３１，３２は、バス（データバス）２６によって相互に接続されている。なお、第１ドライバユニット３９ａ〜第４ドライバユニット３９ｄ、及び外部機器インターフェイス回路２５については、従来の４軸コントローラユニットに用いられる一般的なドライバユニット、及び外部機器インターフェイス回路と同様であるため、ここでは、これらの詳しい説明を省略することとする。
【００８７】
本実施形態の４軸コントローラユニット２１においてＣＰＵ２２が行う主な処理を例示すると、ＣＰＵ２２は、通信制御部２３で受信したリクエスト信号７１の判別を行うとともに、そのリクエスト信号７１が４軸コントローラユニット２１に対するものである場合には、リクエスト信号７１を実行命令に変換する処理を行う。この場合、図３に示したフォーマットで形成されたリクエスト信号７１（特に、リクエスト信号７１のリクエストデータ７１ｅの部分）は、ＣＰＵ２２の処理によって、８ビットのコマンドと、１６ビットの第１データと、１６ビットの第２データとを有する実行命令に変換される。なお、実際にＣＰＵ２２で変換される実行命令は、第２データ、第１データ、及びコマンドの順番で構成されている。
【００８８】
また、ＣＰＵ２２は、受信したリクエスト信号７１の内容に従って、変換された実行命令（すなわち、コマンドと第１及び第２データ）を、第１及び第２軸制御ロジック回路３１，３２の後述する各軸制御部３５ａ〜３５ｄに書き込む処理や、各軸制御部３５ａ〜３５ｄからデータ（情報）を読み出す処理などを行い、更に、実行結果等の内容を含むアンサーバック信号７２を生成する処理を行う。
【００８９】
更にまた、ＣＰＵ２２は、受信したリクエスト信号７１の内容に従って、例えばＲＯＭ２４にアクセスし、当該ＲＯＭ２４に記憶されているモーションコントロール用のマクロデータ７５を読み出すとともに、その読み出したマクロデータ７５を、第１及び第２軸制御ロジック回路３１，３２の後述する第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込む処理を行う。
【００９０】
通信制御部２３は、通信インターフェイス回路２７を介して通信インターフェイスユニット７０に接続されており、制御ホスト１０から送られたリクエスト信号７１の受信と、ＣＰＵ２２で生成されたアンサーバック信号７２の送信とを行う。また、コントローラユニット２１の通信インターフェイス回路２７と、通信インターフェイスユニット７０との間では、上述したシリアル通信（ＡＬＩＩ通信）が行われる。
【００９１】
ＲＯＭ２４は、データの書き込みや消去を自由に行うことができるとともに、電源を切っても書き込まれたデータが消えないフラッシュメモリであり、従来のコントローラユニットには、本実施形態のようなＲＯＭ２４は設けられていなかった。また、本実施形態のＲＯＭ２４には、第１及び第２軸制御ロジック回路３１，３２の第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込むことが可能な複数のモーションコントロール用マクロデータ７５が保持（記憶）されている。
【００９２】
第１及び第２軸制御ロジック回路３１，３２は、それぞれ、２つのパルス駆動モータ３８のドライバユニット３９に対して指令パルスを出力することが可能な軸制御部３５ａ〜３５ｄを２つずつ備えた２軸用の軸制御ロジック回路（集積回路）として形成されている。なお、本実施形態の第１及び第２軸制御ロジック回路３１，３２は、それぞれ２軸用に形成されているが、本発明では、軸制御ロジック回路が１軸用に形成されていても良く、また、１つのコントローラユニットに１つの軸制御ロジック回路のみが設けられていても良い。
【００９３】
第１軸制御ロジック回路３１は、ＣＰＵ２２から送られた実行命令の解析を行う第１命令解析部３３と、解析された実行命令に従ってＸ軸（軸１）の第１ドライバユニット３９ａに対する指令パルスを発生させるとともにモータの回転数（位置）を判断するために指令パルスのカウントを行うＸ軸用の第１軸制御部（Ｘ軸制御部）３５ａと、第１軸制御部３５ａに対して設けられ、マクロデータ７５を書き込むことが可能な第１ＲＡＭ３６ａと、解析された実行命令に従ってＹ軸（軸２）の第２ドライバユニット３９ｂに対する指令パルスを発生させるとともにその指令パルスのカウントを行うＹ軸用の第２軸制御部（Ｙ軸制御部）３５ｂと、第２軸制御部３５ｂに対して設けられ、マクロデータ７５を書き込むことが可能な第２ＲＡＭ３６ｂとを有する。このような本実施形態の第１軸制御ロジック回路３１は、例えば図１１に示したような従来の第１及び第２軸制御ロジック回路９１，９２と比較すると、第１ＲＡＭ３６ａ及び第２ＲＡＭ３６ｂが新たに設けられていることに違いを有する。
【００９４】
更に、第１軸制御ロジック回路３１は、ＣＰＵ２２でリクエスト信号７１から変換された実行命令に従って、第１軸制御部（Ｘ軸制御部）３５ａに対し、第１ＲＡＭ３６ａにアクセスし、且つ、その第１ＲＡＭ３６ａに書き込まれたマクロデータ７５の後述する実行命令７７を順番に自動実行させる第１ＲＡＭインターフェイス機能と、第２軸制御部（Ｙ軸制御部）３５ｂに対し、第２ＲＡＭ３６ｂにアクセスし、且つ、その第２ＲＡＭ３６ｂに書き込まれたマクロデータ７５の実行命令７７を順番に自動実行させる第２ＲＡＭインターフェイス機能とを有する。
【００９５】
第１軸制御ロジック回路３１の第１命令解析部３３は、ＣＰＵ２２でリクエスト信号７１から変換された実行命令を解析し、更に、その実行命令に含まれるコマンドと第１データ及び第２データとに従って、第１軸制御部３５ａ及び第２軸制御部３５ｂに所定の動作を行わせることができる。
【００９６】
例えば第１命令解析部３３は、実行命令に含まれるコマンドと第１データ及び第２データとに従って、第１軸制御部３５ａに、所定の第１条件で指令パルスを発生させるとともに、発生させた指令パルスの回数をカウントするといった動作を実行させるとともに、第２軸制御部３５ｂに、所定の第２条件で指令パルスを発生させるとともに、発生させた指令パルスの回数をカウントするといった動作を実行させることが可能である。
【００９７】
また、第１命令解析部３３は、第１及び第２ＲＡＭインターフェイス機能による処理（ＲＡＭインターフェイス処理）により、実行命令に含まれるコマンドと第１及び第２データとに従って、第１軸制御部３５ａに対し、第１ＲＡＭ３６ａにアクセスして第１ＲＡＭ３６ａに書き込まれたマクロデータ７５の実行命令７７を所定のアドレスの番地から順番に自動実行させるとともに、第２軸制御部３５ｂに対し、第２ＲＡＭ３６ｂにアクセスして第２ＲＡＭ３６ｂに書き込まれたマクロデータ７５の実行命令７７を所定のアドレスの番地から順番に自動実行させることが可能である。
【００９８】
第１軸制御ロジック回路３１の第１ＲＡＭ３６ａ及び第２ＲＡＭ３６ｂは、データの書き込みや消去を自由に行うことができるものの、ＲＯＭ２４とは異なり、電源の供給が遮断されると書き込まれデータ（内容）が失われる揮発メモリである。
【００９９】
第１ＲＡＭ３６ａは、ＣＰＵ２２により、ＲＯＭ２４に保存されているＸ軸用のマクロデータ７５を書き込むことが可能に構成されている。また、第１ＲＡＭ３６ａは、上述した第１ＲＡＭインターフェイス機能により、第１軸制御部３５ａからアクセスされて、書き込まれたＸ軸用のマクロデータ７５の実行命令７７が順番に読み出される。
【０１００】
第２ＲＡＭ３６ｂも、第１ＲＡＭ３６ａと同様に、ＣＰＵ２２により、ＲＯＭ２４に保存されているＹ軸用のマクロデータ７５を書き込むことが可能に構成されているとともに、第２ＲＡＭインターフェイス機能により、第２軸制御部３５ｂがアクセスして、書き込まれたＹ軸用のマクロデータ７５の実行命令７７が順番に読み出される。
【０１０１】
この場合、本実施形態の第１ＲＡＭ３６ａ及び第２ＲＡＭ３６ｂは、「００００」番地〜「４０９５」番地の４０９６個のアドレスをそれぞれ備えるとともに、１つのアドレスに、マクロデータ７５を形成する１つの実行命令７７（後述するように、コマンドと第１及び第２データとからなる命令）を格納することが可能な容量を有する。
【０１０２】
第２軸制御ロジック回路３２は、ＣＰＵ２２から送られた実行命令の解析を行う第２命令解析部３４と、解析された実行命令に従ってＺ軸（軸３）の第３ドライバユニット３９ｃに対する指令パルスを発生させるとともにその指令パルスのカウントを行うＺ軸用の第３軸制御部（Ｚ軸制御部）３５ｃと、第３軸制御部３５ｃに対して設けられ、マクロデータ７５を書き込むことが可能な第３ＲＡＭ３６ｃと、解析された実行命令に従ってＡ軸（軸４）の第４ドライバユニット３９ｄに対する指令パルスを発生させるとともにその指令パルスのカウントを行うＡ軸用の第４軸制御部（Ａ軸制御部）３５ｄと、第４軸制御部３５ｄに対して設けられ、マクロデータ７５を書き込むことが可能な第４ＲＡＭ３６ｄとを有する。
【０１０３】
この場合、第２軸制御ロジック回路３２における第２命令解析部３４、第３及び第４軸制御部３５ｃ，３５ｄ、並びに、第３及び第４ＲＡＭ３６ｃ，３６ｄは、上述した第１軸制御ロジック回路３１における第１命令解析部３３、第１及び第２軸制御部３５ａ，３５ｂ、並びに、第１及び第２ＲＡＭ３６ａ，３６ｂと、駆動制御するモータ３８の軸が異なること以外は実質的に同様に形成されている。
【０１０４】
また本実施形態において、第１及び第２軸制御ロジック回路３１，３２の各軸制御部３５ａ〜３５ｄから出力する指令パルスの信号は、外部機器インターフェイス回路２５を介して、Ｘ軸、Ｙ軸、Ｚ軸及びＡ軸のそれぞれ対応するドライバユニット３９に送られる。また、例えばパルス駆動モータ３８がサーボモータである場合は、図示しないエンコーダで検知される回転角や回転速度の情報がフィードバック信号として、各ドライバユニット３９から外部機器インターフェイス回路２５を介して対応する各軸制御部３５ａ〜３５ｄに戻される。
【０１０５】
このような本実施形態のコントローラユニット２１において、ＲＯＭ２４に予め保持され、且つ、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込み可能なモーションコントロール用のマクロデータ（「モーションコントロールマクロ」とも言う）７５は、図５及び図６に示すように、第１軸制御部３５ａ〜第４軸制御部３５ｄにそれぞれ所要の動作を行わせるために組み合わされた複数の実行命令７７の集合体であり、１つのマクロデータ７５は、各軸制御部３５ａ〜３５ｄが一連の動作を行うために設定される複数の実行命令７７を予め順番に並べてマクロ化することによって形成されている。
【０１０６】
このマクロデータ７５を形成するそれぞれの実行命令７７は、ＣＰＵ２２の処理によってリクエスト信号７１から変換される実行命令と同様の構造（フォーマット）を有する。すなわち、マクロデータ７５を形成する各実行命令７７は、各軸制御部３５ａ〜３５ｄに動作を行わせるための８ビットのコマンドと、１６ビットの第１データと、１６ビットの第２データとを有する。なお、マクロデータ７５を形成する実際の実行命令７７は、ＣＰＵ２２で変換される実行命令と同様に、第２データ、第１データ、及びコマンドの順番で構成されている。
【０１０７】
すなわち、本実施形態のマクロデータ７５は、従来のモーションコントロールシステムでは制御ホスト１０の制御プログラム１１が予め備える複数の関数の代わりに、それらの複数の関数に対応した複数の実行命令７７を順番に並べた集合体により形成されている。この複数の実行命令７７の集合体であるマクロデータ７５は、コントローラユニット２１のＲＯＭ２４の領域に予め記憶されている。
【０１０８】
この場合、１つのマクロデータ７５を形成する実行命令７７の個数は、各軸のパルス駆動モータ３８に実行させる動作の内容に応じてそれぞれ設定される。
なお、本実施形態にて、マクロデータ７５の書き込み先となる第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄは、上述のように「００００」番地〜「４０９５」番地の４０９６個のアドレスをそれぞれ有しており、１つのアドレスには、１つの実行命令７７が書き込まれる。すなわち、各ＲＡＭに同時に書き込むことが可能な実行命令７７の個数は、最大で４０９６個であるため、１つのマクロデータ７５を形成する実行命令７７の個数は、４０９６個以下に制限される。
【０１０９】
また本実施形態では、図６に示したように、Ｘ軸用のマクロデータ７５、Ｙ軸用のマクロデータ７５、Ｚ軸用のマクロデータ７５、及びＡ軸用のマクロデータ７５といった４軸分のマクロデータ７５が一つにまとめられることにより１枚のシートデータ７６が形成されており、４軸分のマクロデータ７５が１つに組み合わされたシートデータ７６の形態でＲＯＭ２４に保持されている。この１枚のシートデータ７６に収容されるＸ軸用のマクロデータ７５、Ｙ軸用のマクロデータ７５、Ｚ軸用のマクロデータ７５、及びＡ軸用のマクロデータ７５は、各軸で互いに異なる動作を実行させることが可能である。
【０１１０】
この場合、ＲＯＭ２４は、４軸分のマクロデータ７５が組み合わされた複数枚分のシートデータ７６を記憶することが可能な容量を有しており、例えば本実施形態の場合、１５枚分のシートデータ７６をＲＯＭ２４に記憶することが可能である。なお、本発明において、ＲＯＭ２４に記憶させることが可能なシートデータ７６の枚数（すなわち、ＲＯＭ２４の記憶容量）は特に限定されるものではなく、任意に変更することが可能である。
【０１１１】
また、１枚のシートデータ７６を形成するＸ軸用のマクロデータ７５、Ｙ軸用のマクロデータ７５、Ｚ軸用のマクロデータ７５、及びＡ軸用のマクロデータ７５は、上述のように４つの軸が互いに異なる動作を行うものの、４つの軸が相互に対応する一連の動作を行うように組み合わせることによって、例えば後述するように、制御ホスト１０から送信するリクエスト信号７１に従って、ＲＯＭ２４内のマクロデータ７５を第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄのそれぞれに展開して書き込む際に、制御ホスト１０からのリクエスト信号７１の送信回数を少なくしてマクロデータ７５の展開を効率的に行うことができる。更に、４つの軸が相互に対応する動作を行うように予め組み合わされているため、４軸のパルス駆動モータ３８の同期精度も高められる。
【０１１２】
なお、１枚のシートデータ７６に組み合わされる４軸分のマクロデータ７５は、互いに対応する動作を行わないものであっても良い。また、１枚のシートデータ７６には、４軸分のマクロデータ７５ではなく、４軸のうちの１軸分、２軸分、又は３軸分のマクロデータ７５のみが収容されていても良い。例えば、第１及び第２シートのシートデータ７６には４軸分のマクロデータ７５が収容されており、第３シートのシートデータ７６には、Ｘ軸とＹ軸の２軸分のマクロデータ７５のみが収容されていても良い。
【０１１３】
更に、ＲＯＭ２４に複数枚分のシートデータ７６を記憶する場合、シートデータ７６の１枚１枚毎に、４軸のパルス駆動モータ３８に実行させる動作パターンが異なる４軸分のマクロデータ７５を持たせることができる。例えばＲＯＭ２４に、第１シート〜第１５シートまでの１５枚分のシートデータ７６を保持する場合では、第１シートのシートデータ７６は４つのパルス駆動モータ３８が動作パターンＡで相互に対応する動作を行う４軸分のマクロデータ７５を有し、第２シートのシートデータ７６は４つのパルス駆動モータ３８が動作パターンＢで相互に対応する動作を行う４軸分のマクロデータ７５を有することが可能であり、それによって、１つのＲＯＭ２４に、４軸のパルス駆動モータ３８について１５種類の動作パターンを記憶させておくことが可能となる。
【０１１４】
また、１枚のシートデータ７６には、上述のようにＸ軸、Ｙ軸、Ｚ軸、及びＡ軸の４軸分のマクロデータ７５が保持されているが、１枚のシートデータ７６の各軸に収容されるマクロデータ７５の個数は、１つであっても、複数であっても良い。
【０１１５】
例えば図６に本実施形態のシートデータ７６の一例を示したように、１枚のシートデータ７６は、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに対応して、「００００」番地〜「４０９５」番地の４０９６個のアドレス×４軸分の容量を有しており、この１枚のシートデータ７６の各軸に、最大で４０９６個の実行命令７７（全体で４０９６個×４軸分の実行命令７７）をそれぞれ保持することが可能である。
【０１１６】
更に、このシートデータ７６のＸ軸には、複数の実行命令７７をマクロ化した１つのマクロデータ７５が保持されており、Ｙ軸、Ｚ軸、及びＡ軸には、それぞれ、複数の実行命令７７をマクロ化したマクロデータ７５が２つずつ保持されている。
【０１１７】
すなわち、１枚のシートデータ７６の各軸には、マクロデータ７５を形成する実行命令７７の合計の個数が４０９６個以下となれば、１つのマクロデータ７５のみを保持することもできるし、２つ以上の複数のマクロデータ７５を保持することもできる。
【０１１８】
またこの場合、各軸のマクロデータ７５を任意のアドレスの領域に設定することが可能であり、特に、４つの軸が相互に対応した動作を実行するように、各軸のマクロデータ７５を互いに対応する所定のアドレスの領域に設定することができる。
【０１１９】
例えば図６の一番に上に示したシートデータ７６では、制御ホスト１０からのリクエスト信号７１で４つの軸の動作を同時にスタートさせることが可能なように、各軸のマクロデータ７５は、それぞれ「００００」番地のアドレスから実行命令７７を保持するように設定されている。
【０１２０】
従って、図６のシートデータ７６のマクロデータ７５を、第１及び第２軸制御ロジック回路３１，３２の第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに対し、図５に示したように展開してそれぞれ書き込み、その後、制御ホスト１０から、マクロデータ７５を自動実行させるためのリクエスト信号７１を送信することによって、各軸制御部３５ａ〜３５ｄは、対応する各ＲＡＭ３６ａ〜３６ｄに書き込まれたマクロデータ７５に従って、実行命令７７を「００００」番地のアドレスから同じタイミングで順番に自動実行することができる。それにより、各軸のパルス駆動モータ３８ａ〜３８ｄに所定の動作を安定して行わせることができるとともに、各軸の動作を他の軸と容易に同期させることができる。
【０１２１】
またこの場合、図６のシートデータ７６のＹ軸には、２つのマクロデータ７５が間隔を開けて設定されている。従って、Ｙ軸の第２パルス駆動モータ３８ｂは、他の軸のパルス駆動モータ３８と同じタイミングで、最初のマクロデータ７５に従って所定の動作をスタートさせることができ、更に、最初のマクロデータ７５の動作が終了した後に所定の時間が経過してから、次のマクロデータ７５に従って所定の動作を実行することが可能となる。
【０１２２】
更に、図６のシートデータ７６のＺ軸及びＡ軸には、２つのマクロデータ７５が連続的に設定されている。従って、Ｚ軸及びＡ軸の第３及び第４パルス駆動モータ３８ｃ，３８ｄは、Ｘ軸及びＹ軸の第１及び第２パルス駆動モータ３８ａ，３８ｂと同じタイミングで、最初のマクロデータ７５に従って所定の動作をスタートさせることができ、更に、最初のマクロデータ７５の動作が終了した直後に次のマクロデータ７５に従って所定の動作を連続的に実行することが可能となる。
【０１２３】
また図１に示したように、本実施形態のモーションコントロールシステム１には、制御ホスト１０の制御下に、第１スレーブ２０の４軸コントローラユニット２１の他に、第２スレーブ４０となるコントローラドライバユニット４１と、第３スレーブ６０となるデジタルＩ／Ｏユニット６１とが接続されている。
【０１２４】
第２スレーブ４０のコントローラドライバユニット４１は、第５パルス駆動モータ３８ｅ及び第６パルス駆動モータ３８ｆを駆動させるためのコントローラ機能とドライバ機能とを一体的に備えており、コントローラ機能を発揮するコントローラ部分については、第１スレーブ２０の４軸コントローラユニット２１を２軸用に変更すること以外は、第１スレーブ２０のコントローラユニット２１と実質的に同様に形成されている。
【０１２５】
すなわち、第２スレーブ４０のコントローラドライバユニット４１にも、複数のマクロデータ７５を保持する図示しないＲＯＭと、そのＲＯＭ内のマクロデータ７５を書き込むことが可能な図示しない第５ＲＡＭ及び第６ＲＡＭとが設けられている。
【０１２６】
第３スレーブ６０のデジタルＩ／Ｏユニット６１には、各種のセンサやエアシリンダなどの外部機器６２が接続されており、制御ホスト１０からのリクエスト信号７１を受信して外部機器６２に信号を出力する機能や、外部機器６２からの信号を入力して制御ホスト１０に送信する機能を有する。
【０１２７】
また、デジタルＩ／Ｏユニット６１に接続されるセンサ等の外部機器６２は、機械設備等の制御対象の状態を検出するとともに、その検出した情報をデジタルＩ／Ｏユニット６１に入力し、また、デジタルＩ／Ｏユニット６１からの出力信号に応答して制御対象を作動させる動作を行うことが可能である。この場合、本実施形態のデジタルＩ／Ｏユニット６１では、外部機器６２の接続を３２点まで拡張することが可能である。なお、本発明において、外部機器６２の接続点数は特に限定されるものではない。
【０１２８】
次に、本実施形態のモーションコントロールシステム１における動作制御について説明する。なお、本実施形態では、第１スレーブ２０の４軸コントローラユニット２１の制御について主に説明することとし、制御の仕方が第１スレーブ２０と実質的に同様となる第２スレーブ４０のコントローラドライバユニット４１、及び、パルス駆動モータ３８が接続されていない第３スレーブ６０のデジタルＩ／Ｏユニット６１の制御に関する説明については省略する。
【０１２９】
本実施形態のモーションコントロールシステム１では、制御ホスト１０及び４軸コントローラユニット２１の電源を入れると、先ず、コントローラユニット２１の第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄを自動的に初期化する。一方、コントローラユニット２１のＲＯＭ２４は、コントローラユニット２１の電源が切られても、そこに記憶されているデータが消去されないため、ＲＯＭ２４には、予め記憶させておいた図６に示すような第１シート〜第４シートの４枚分のシートデータ７６が保存されているとともに、それぞれのシートデータ７６には、Ｘ軸、Ｙ軸、Ｚ軸及びＡ軸の４軸分のマクロデータ７５が収容されている。
【０１３０】
なお、ＲＯＭ２４内のシートデータ７６やマクロデータ７５については、制御ホスト１０の制御プログラム１１で所定の関数を実行することにより、ＲＯＭ２４に新たなシートデータ７６を追加すること、既に保持されているシートデータ７６やマクロデータ７５の一部又は全部を変更すること、及び、既に保持されているシートデータ７６を削除すること等の処理を行うことができる。
【０１３１】
第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄを初期化した後、制御ホスト１０は、制御プログラム１１にて、所要のシートデータ７６における４軸分のマクロデータ７５を第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込むようにする関数を実行する。具体的には、ＲＯＭ２４に保持している第１シート〜第４シートの４枚分のシートデータ７６から、これから実行する動作パターンのマクロデータ７５を備える所要の１枚のシートデータ７６（例えば第１シートのシートデータ７６）を選択するとともに、その選択したシートデータ７６に収容されているＸ軸、Ｙ軸、Ｚ軸及びＡ軸の各マクロデータ７５を、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに展開して書き込むように指示する関数を実行する。
【０１３２】
これにより、制御ホスト１０は、関数を実行した制御プログラム１１からデバイスドライバ１２に内部信号が送られ、更に、デバイスドライバ１２にてマクロデータ７５の書き込みを指示するリクエスト信号７１（図３を参照）を生成し、そのリクエスト信号７１をデバイスドライバ１２から送信する。
【０１３３】
デバイスドライバ１２から送信されたリクエスト信号７１は、シリアル通信インターフェイスユニット７０を経由して、第１スレーブ２０〜第３スレーブ６０の各ユニットに一斉に送られる。このとき、４軸コントローラユニット２１は、そのリクエスト信号７１を通信制御部２３で受信し、更に、その受信したリクエスト信号７１をＣＰＵ２２で解析する。
【０１３４】
コントローラユニット２１のＣＰＵ２２は、そのリクエスト信号７１が４軸コントローラユニット２１に対する信号であることを確認するとともに、そのリクエスト信号７１の内容を解析する。更に、ＣＰＵ２２は、受信したリクエスト信号７１のリクエストコード７１ｄ及びリクエストデータ７１ｅの内容に従って、ＲＯＭ２４に保持されている４枚のシートデータ７６から、指定された所要の１枚のシートデータ７６（例えば第１シートのシートデータ７６）を読み出し、更に、読み出したシートデータ７６に収容されているＸ軸、Ｙ軸、Ｚ軸及びＡ軸の４軸分のマクロデータ７５を、それぞれ対応する第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに展開して書き込む処理を行う。
【０１３５】
その後、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄへのマクロデータ７５の書き込みが終了すると、ＣＰＵ２２は、マクロデータ７５の書き込みが終了した内容のアンサーバック信号７２（図４を参照）を生成して通信制御部２３から送信する。このアンサーバック信号７２は、４軸コントローラユニット２１から、シリアル通信インターフェイスユニット７０を経由して、制御ホスト１０に送られる。
【０１３６】
制御ホスト１０では、送られてきたアンサーバック信号７２をデバイスドライバ１２で受信して解析することによって、エラーが生じずにマクロデータ７５の書き込み処理が正常に完了したことを確認でき、またそれによって、制御ホスト１０から次のリクエスト信号７１を送ることが可能となる。
【０１３７】
続いて、制御ホスト１０は、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込まれたマクロデータ７５に従って、第１軸制御部３５ａ〜第４軸制御部３５ｄが、例えば「００００」番地から所定番地までのアドレスの実行命令７７を順番に自動実行するように指示する関数を実行し、その自動実行を指示するリクエスト信号７１をデバイスドライバ１２から送信する。
【０１３８】
このリクエスト信号７１を、シリアル通信インターフェイスユニット７０を経由して、４軸コントローラユニット２１が受信することにより、同コントローラユニット２１のＣＰＵ２２は、そのリクエスト信号７１が４軸コントローラユニット２１に対する信号であることを確認するとともに、そのリクエスト信号７１の内容を解析する。
【０１３９】
更に、ＣＰＵ２２は、受信したリクエスト信号７１をコマンドと第１及び第２データとからなる実行命令に変換し、その変換した実行命令を第１及び第２軸制御ロジック回路３１，３２に送るとともに、制御ホスト１０に対するアンサーバック信号７２を生成して通信制御部２３から送信する。
【０１４０】
また、実行命令を受けた第１及び第２軸制御ロジック回路３１，３２では、第１及び第２命令解析部３３，３４でその実行命令を解析するとともに、それぞれのＲＡＭインターフェイス処理によって、第１軸制御部３５ａ〜第４軸制御部３５ｄに、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込まれたマクロデータ７５に従って、「００００」番地のアドレスから順番に実行命令７７を自動的に実行する処理を行わせることができる。
【０１４１】
具体的には、第１軸制御部３５ａ〜第４軸制御部３５ｄは、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込まれたマクロデータ７５の「００００」番地のアドレスから実行命令７７を読み出して実行し、更に、「００００」番地の実行命令７７を実行した直後に、そのアドレスの番地＋１のアドレス（すなわち、「０００１」番地のアドレス）から実行命令７７を読み出して実行し、以下、これを繰り返す。
【０１４２】
これによって、第１軸制御部３５ａ〜第４軸制御部３５ｄは、それぞれのＲＡＭインターフェイス機能による自動実行処理中は、制御ホスト１０とコントローラユニット２１との間でリクエスト信号７１やアンサーバック信号７２の送受信を行わずに、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込まれたマクロデータ７５に従って実行命令７７をそれぞれ順番に読み出して自動的に実行することができ、またそれによって、ユーザーの設定条件で指令パルスを発生させて、第１パルス駆動モータ３８ａ〜第４パルス駆動モータ３８ｄに所要の動作を行わせることができる。
【０１４３】
そして、第１及び第２軸制御ロジック回路３１，３２は、各ＲＡＭインターフェイス処理によって、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込まれたマクロデータ７５が所定番地のアドレスの実行命令７７まで行われると、マクロデータ７５の実行を自動的に停止させることができる。
【０１４４】
なお、本実施形態では、例えば実行停止のコマンドを備えた実行命令７７をマクロデータ７５に含めることにより、マクロデータ７５の自動実行を、実行停止のコマンドによって終了させることもでき、更に、制御ホスト１０から実行停止のリクエスト信号７１を送信することによって終了させることもできる。
【０１４５】
このように、本実施形態では、第１及び第２軸制御ロジック回路３１，３２の第１軸制御部３５ａ〜第４軸制御部３５ｄにマクロデータ７５の実行命令７７をそれぞれ自動実行させ、且つ自動停止させることにより、コントローラユニット２１側において、制御ホスト１０との通信を行わずに、各パルス駆動モータ３８の一連の動作を軸制御部３５ａ〜３５ｄごとに自動的に行わせて完結させることができる。これによって、各軸制御部３５ａ〜３５ｄが独立して指令パルスの発生等の処理を行うことがきるため、軸制御部ごとの処理が円滑になるとともに、各パルス駆動モータ３８の動作も安定させることができる。
【０１４６】
ここで、本実施形態のモーションコントロールシステム１と、図１１に示した従来のモーションコントロールシステムとの違いを具体的に説明すると、例えば従来のモーションコントロールシステムにおいては、本実施形態のような一連の動作を４軸の各パルス駆動モータに行わせるために、制御ホストとコントローラユニット８１との間の通信を、本実施形態のマクロデータ７５を形成する実行命令７７の個数以上の回数で行う必要があるとともに、その通信を行うたびに、制御ホストやコントローラユニット８１においてリクエスト信号及びアンサーバック信号の処理を行ったり、実行命令を第１及び第２軸制御ロジック回路９１，９２に書き込む処理を行ったりしなければならなかった。このため、前述したように、制御ホストへの負担の増大、実行処理時間の制約、システムの高速化の限界等の問題があった。
【０１４７】
これに対して、本実施形態のモーションコントロールシステム１では、上述のように、コントローラユニット２１のＲＯＭ２４に、制御プログラム１１の関数に対応する複数の実行命令７７を備えたマクロデータ７５を予め記憶させておくとともに、そのＲＯＭ２４に記憶したマクロデータ７５を第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込んで自動的に順番に実行させることができる。
【０１４８】
これにより、本実施形態では、制御ホスト１０とコントローラユニット２１との間の通信回数を従来よりも少なくして、マクロデータ７５に従った動作を完結させることができる。その上、第１スレーブ２０や第２スレーブ４０を動作させるための制御プログラム１１の様々な関数を、実行命令７７として、第１スレーブ２０のコントローラユニット２１に配されるＲＯＭ２４や、第２スレーブ４０のユニットに配される図示しないＲＯＭ等に分散して保持させることができる。
【０１４９】
すなわち、本実施形態では制御プログラム１１の複数の関数に対応した複数の実行命令７７からなるマクロデータ７５を、第１スレーブ２０のＲＯＭ２４に保持しているため、従来に比べて、制御プログラム１１をシンプルに構築することが可能となるとともに、制御プログラム１１での関数実行による制御ホスト（ＰＣ）１０への負担を低減することができる。
【０１５０】
また、制御ホスト１０とコントローラユニット２１の間の通信回数を大幅に減少できることにより、通信時間の低減や、制御ホスト１０やコントローラユニット２１における内部処理時間の低減を図ることができる。このため、制御ホスト１０の負担を更に低減して、制御ホスト１０の処理が遅くなることや、制御ホスト１０及びコントローラユニット２１の処理時間にバラつきや誤差を生じさせることを防止でき、更には、コントローラユニット２１のリアルタイム性や４軸間の同期精度を向上させることができ、また、システムの高速化や機械装置の性能向上などを容易に実現できる。
【０１５１】
更に、本実施形態のモーションコントロールシステム１では、上述のように、コントローラユニット２１のＲＯＭ２４に、第１シート〜第４シートの４枚分のシートデータ７６が保持されている。このため、例えば機械装置の処理対象物の変更等によって第１パルス駆動モータ３８ａ〜第４パルス駆動モータ３８ｄの動作パターンを変更する場合には、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに既に書き込まれているマクロデータ７５（例えば、第１シートのマクロデータ７５）を、その他のシートのマクロデータ７５（例えば、第２シートのマクロデータ７５）に置き換える（上書きする）ことが可能である。
【０１５２】
このように第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込むマクロデータ７５のシートデータ７６を切り替えることによって、第１パルス駆動モータ３８ａ〜第４パルス駆動モータ３８ｄが行う一連の動作パターンを容易に変更でき、また、制御ホスト１０の制御プログラム１１自体を変更する必要がない。更に、第１スレーブ２０のコントローラユニット２１内でシートデータ７６の切り替えが行われるだけであるため、その第１スレーブ２０の変更に伴う第２スレーブ４０のコントローラドライバユニット４１や、第３スレーブ６０のデジタルＩ／Ｏユニット６１への影響をなくす（又は小さくする）ことができる。
【０１５３】
更に本実施形態において、第１パルス駆動モータ３８ａ〜第４パルス駆動モータ３８ｄが行う動作パターンを部分的に変更する場合（例えば、Ｘ軸の第１パルス駆動モータ３８ａ及びＹ軸の第２パルス駆動モータ３８ｂの回転速度を部分的に変更する場合）には、制御ホスト１０の制御プログラム１１を用いて、コントローラユニット２１のＲＯＭ２４に保存されているマクロデータ７５の所要部分のみを書き換えることによって対応することが可能である。或いは、ＲＯＭ２４に保存されているマクロデータ７５は書き換えずに、対応するＲＡＭ（例えば第１及び第２ＲＡＭ３６ａ，３６ｂ）に書き込まれたマクロデータ７５の所要部分のみを書き換えることによって対応することも可能である。
【０１５４】
このように、変更が必要となるＲＯＭ２４内の又は各ＲＡＭ３６ａ，３６ｂ内のマクロデータ７５のみを書き換えることによって、機械装置の動作を一部変更するといったマイナーチェンジを、例えば動作パターンを変更しない軸（例えばＺ軸及びＡ軸）のマクロデータ７５を変更せずに、また、制御ホスト１０の制御プログラム１１を変更せずに容易に行うことができる。更には、第２スレーブ４０のコントローラドライバユニット４１や、第３スレーブ６０のデジタルＩ／Ｏユニット６１への影響をなくす（又は小さくする）こともできる。
【０１５５】
このように本実施形態のモーションコントロールシステム１では、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに展開するシートデータ７６の切り替えや、制御ホスト１０の制御プログラム１１によるＲＯＭ２４又は第１〜第４ＲＡＭ３６ａ〜３６ｄ内のマクロデータ７５の書き換え等によって、制御ホスト１０の制御プログラム１１を変更することなく、また、第２スレーブ４０及び第３スレーブ６０へ影響を与えることなく（又は与える影響を小さくして）、第１〜第４パルス駆動モータ３８ａ〜３８ｄにおける動作パターンの変更や動作のマイナーチェンジ等を容易に行うことができる。
【０１５６】
従って、本実施形態では、例えば一部の動作を変更する場合でも制御プログラムの変更が必要となる従来のモーションコントロールシステムに比べて、動作パターンの変更や動作のマイナーチェンジに要する労力、費用、時間を大きく低減でき、また、制御プログラム１１にバグや欠陥等が生じるリスクを回避して、マイナーチェンジ等をローリスクで迅速に且つ低コストで行うことが可能となる。
【０１５７】
なお、本実施形態では、第１軸制御部３５ａ〜第４軸制御部３５ｄがそれぞれのＲＡＭインターフェイス機能によってマクロデータ７５の自動実行を行う際に、マクロデータ７５に従って「００００」番地のアドレスから順番に実行命令７７を自動実行する場合について説明している。
【０１５８】
しかし、本発明において、第１軸制御部３５ａ〜第４軸制御部３５ｄがマクロデータ７５の自動実行をスタートさせるアドレスの番地は、制御ホスト１０の制御プログラム１１で任意に設定することができ、例えば第１軸制御部３５ａ〜第４軸制御部３５ｄを、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込まれたマクロデータ７５について、アドレスの途中の任意の番地（例えば「１０００」番地）の実行命令７７から順番に自動実行させることも可能である。
【０１５９】
また、第１軸制御部３５ａ〜第４軸制御部３５ｄにマクロデータ７５の自動実行を行わせる場合、第１軸制御部３５ａ〜第４軸制御部３５ｄに、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込まれたマクロデータ７５について、アドレスが互いに同じ番地の実行命令７７から順番に自動実行させるだけでなく、互いに異なる番地の実行命令７７から順番に自動実行させることも可能である。
【０１６０】
更に、本実施形態では、ＲＯＭ２４に保持されているシートデータ７６のマクロデータ７５を第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに展開して書き込む際に、１枚のシートデータ７６から第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄにマクロデータ７５を展開して書き込む場合について説明している。
【０１６１】
しかし、本発明では、ＲＯＭ２４内のシートデータ７６からマクロデータ７５を第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに展開して書き込む場合、第１軸制御部３５ａ〜第４軸制御部３５ｄごとに、複数のシートデータ７６の中から所要のマクロデータ７５を選択して、対応する第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込むこともできる。例えば、第１ＲＡＭ３６ａには、第１シートのシートデータ７６に収容されているＸ軸のマクロデータ７５を書き込み、第２ＲＡＭ３６ｂ〜第４ＲＡＭ３６ｄには、第２シートのシートデータ７６に収容されている各軸のマクロデータ７５を展開して書き込むことも可能である。
【０１６２】
更にまた、本実施形態では、第１〜第４パルス駆動モータ３８ａ〜３８ｄに所要の動作を行わせるために、上述のようにＲＯＭ２４に保持されているマクロデータ７５を第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込んで自動実行する方法の他に、従来と同様に、制御ホスト１０の制御プログラム１１にてその動作を行わせるための複数の関数を実行してリクエスト信号７１をコントローラユニット２１に送り、そのリクエスト信号７１をコントローラユニット２１のＣＰＵ２２で実行命令に変換して、実行命令を第１及び第２軸制御ロジック回路３１，３２に順次書き込む方法を採用することが可能である。
【０１６３】
すなわち、本実施形態では、第１〜第４パルス駆動モータ３８ａ〜３８ｄに所要の動作を行わせる場合に、ＲＯＭ２４に保持されているマクロデータ７５を、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込んで自動実行する方法と、制御ホスト１０の制御プログラム１１で複数の関数を順番に実行する方法とから選択することが可能である。
【０１６４】
更にこの場合、制御ホスト１０の制御プログラム１１で複数の関数を順番に実行して第１〜第４軸制御部３５ａ〜３５ｄを制御することによって、第１〜第４パルス駆動モータ３８ａ〜３８ｄに所要の動作を行わせることが可能であり、また、複数の関数を実行して第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに複数の実行命令７７を書き込んで保存してから、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに保存した複数の実行命令７７をＲＡＭインターフェイス処理で順番に自動実行することによって、第１〜第４パルス駆動モータ３８ａ〜３８ｄに所定の動作を行わせることも可能である。また本実施形態では、ＲＡＭ３６ａ〜３６ｄの実行命令７７を自動実行中に、制御ホスト１０の制御プログラム１１によって、その後に続くＲＡＭ３６ａ〜３６ｄの実行命令７７を書き込むことも可能である。
【０１６５】
このように、本実施形態のモーションコントロールシステム１では、第１〜第４パルス駆動モータ３８ａ〜３８ｄに所要の動作を行わせる手段として、ＲＯＭ２４に保持するマクロデータ７５と、制御ホスト１０の制御プログラム１１に持たせる関数とに互換性を持たせて、自由に選択することが可能となる。これにより、モーションコントロールシステム１の設計に大きな自由度を持たせることができ、それによって、ユーザーから要求される仕様に柔軟に対応することが可能となる。
【実施例】
【０１６６】
以下に、上述した実施形態に係るモーションコントロールシステム１を用いて、第１スレーブ２０のコントローラユニット２１に接続されたＸ軸のパルス駆動モータ３８ａを、図７に示した所定の動作パターンで動作させる実施例を示す。更に、比較のために、図１１に示したコントローラユニット８１を有する従来のモーションコントロールシステムを用いて、Ｘ軸のパルス駆動モータを同様の動作パターンで動作させる比較例を示すことにより、本発明で得られる効果を明確に説明する。
【０１６７】
ここで、図７に示したＸ軸のパルス駆動モータ３８ａの動作パターンについて説明すると、この動作パターンは、Ｘ軸のモータ３８ａに４回の台形駆動を実行させるものであり、先ず、第１パルス出力周期として５００Ｈｚで所定回数の第１パルス出力を行い、その後、１０００Ｈｚの速度でモータの台形駆動動作を開始し、５０００Ｈｚの最高速度まで１００ｍｓ／ｋＨｚの割合で加速する。更に、モータを所定の位置まで最高速度で回転させた後、１０００Ｈｚの終了速度まで１００ｍｓ／ｋＨｚの割合で減速することによって、１回分の台形駆動を終了させる。そして、このような台形状の駆動を４回連続して行った後に停止させる。
【０１６８】
（実施例）
本実施例のモーションコントロールシステム１では、図２に示したコントローラユニット２１のＲＯＭ２４に、Ｘ軸のパルス駆動モータ３８ａに図７に示した動作パターンを行わせるためのマクロデータ７５が予め保持されている。ここで、Ｘ軸用のマクロデータ７５の内容を図８に示す。
【０１６９】
なお、図８のマクロデータ７５はＸ軸の動作を行うものであり、その他のＹ軸、Ｚ軸及びＡ軸についても、図示は省略するが所定の動作パターンを行わせるマクロデータ７５がある。これらのＸ軸、Ｙ軸、Ｚ軸及びＡ軸の４軸分のマクロデータ７５が１つのシートデータ７６に収容されてＲＯＭ２４に保持されている。
【０１７０】
Ｘ軸のマクロデータ７５は、コマンドと第１及び第２データからなる実行命令７７として、以下のような内容をもつ複数の実行命令７７が、「００００」番地のアドレスから、「００１０」番地のアドレスまで順番に書き込まれている。
【０１７１】
具体的に説明すると、「００００」番地のアドレスには、第１パルスの出力周期を設定するための実行命令７７が書き込まれており、「０００１」番地のアドレスには、速度データの倍率と最高速度を設定するための実行命令７７が書き込まれている。以下、「０００２」番地〜「００１０」番地の各アドレスには、開始速度と終了速度を設定するための実行命令７７（アドレス「０００２」）、直線加速割合と直線減速割合を設定するための実行命令７７（アドレス「０００３」）、指定した相対位置までパルス出力を実行する（言い換えると、１回の台形駆動を行う）ための４つの実行命令７７（アドレス「０００４」〜「０００７」）、自動実行の終了を準備するための実行命令７７（アドレス「０００８」）、自動実行を終了するための実行命令７７（アドレス「０００９」）、及び、即時停止のための実行命令７７（アドレス「００１０」）が書き込まれている。
【０１７２】
そして、本実施例のモーションコントロールシステム１において、実際に図７に示した動作パターンをパルス駆動モータ３８に行わせる場合、図９に示した関数の内容が制御ホストの制御プログラムで実行される。具体的に説明すると、先ず、制御ホスト１０において、（１）番目の関数として、ＲＯＭ２４から上述した所定のシートデータ７６を読み出し、そのシートデータ７６に収容されている各軸のマクロデータ７５を第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに展開して書き込むように指示する関数を制御プログラム１１で実行し、１回目のリクエスト信号７１をデバイスドライバ１２から送信する。送信されたリクエスト信号７１は、シリアル通信インターフェイスユニット７０を介して、第１スレーブ２０〜第３スレーブ６０の各ユニットに一斉に送られる。
【０１７３】
次に、コントローラユニット２１は、１回目のリクエスト信号７１を通信制御部２３で受信し、更に、その受信したリクエスト信号７１をＣＰＵ２２で解析する。更に、ＣＰＵ２２は、受信したリクエスト信号７１の内容に従って、ＲＯＭ２４から所定のシートデータ７６を読み出し、そのシートデータ７６に収容されている４軸のマクロデータ７５を、それぞれ対応する第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに展開して書き込む処理を行う。その後、コントローラユニット２１は、マクロデータ７５の書き込みが終了した内容のアンサーバック信号７２を生成し、シリアル通信インターフェイスユニット７０を介して制御ホスト１０に送信する。
【０１７４】
続いて、アンサーバック信号７２を受信した制御ホスト１０は、（２）番目の関数として、第１ＲＡＭ３６ａ〜第４ＲＡＭ３６ｄに書き込まれたマクロデータ７５に従って、「００００」番地のアドレスから実行命令７７を順番に自動実行するように指示する関数を制御プログラム１１で実行し、２回目のリクエスト信号７１をデバイスドライバ１２から送信する。
【０１７５】
２回目のリクエスト信号７１を受信したコントローラユニット２１のＣＰＵ２２は、受信したリクエスト信号７１を、コマンドと第１及び第２データとからなる実行命令に変換し、その変換した実行命令を第１及び第２軸制御ロジック回路３１，３２に送るとともに、制御ホスト１０に対するアンサーバック信号７２を生成して通信制御部２３から送信する。
【０１７６】
また、実行命令を受けた第１軸制御ロジック回路３１では、第１命令解析部３３でその実行命令７７を解析するとともに、ＲＡＭインターフェイス機能によって、第１軸制御部３５ａ及び第２軸制御部３５ｂに、第１ＲＡＭ３６ａ及び第２ＲＡＭ３６ｂに書き込まれたマクロデータ７５に従ってアドレス「００００」番地から順番に実行命令７７を自動的に実行する処理を行わせる。
【０１７７】
これによって、第１軸制御部３５ａは、第１ＲＡＭ３６ａのマクロデータ７５に従って指令パルスを所定の条件で出力するとともに、指令パルスのカウントを行うができ、それにより、Ｘ軸のパルス駆動モータ３８ａを、図７に示した台形状の動作パターンで駆動させることができる。
【０１７８】
（比較例）
図１１に示したコントローラユニット８１を備える従来のモーションコントロールシステムにおいて、図７に示した動作パターンをＸ軸のパルス駆動モータに行わせる場合について、図１０を参照しながら説明する。ここで、図１０は、制御ホストの制御プログラムが実行する関数の内容を説明する図である。
【０１７９】
先ず、制御ホストの制御プログラムで、（１）番目の第１パルスの出力周期を設定するための関数を実行し、１回目のリクエスト信号７１をデバイスドライバから送信する。送信されたリクエスト信号７１は、シリアル通信インターフェイスユニットを介して、第１スレーブ〜第３スレーブの各ユニットに一斉に送られる。
【０１８０】
コントローラユニット８１は、１回目のリクエスト信号７１を通信制御部８３で受信し、更に、その受信したリクエスト信号７１をＣＰＵ８２で解析する。更に、ＣＰＵ８２は、受信したリクエスト信号７１をコマンドと第１及び第２データとからなる実行命令に変換し、その変換した実行命令を第１及び第２軸制御ロジック回路９１，９２に送って各軸制御部９５ａ〜９５ｄに書き込むとともに、制御ホストに対するアンサーバック信号７２を生成して通信制御部８３から送信する。
【０１８１】
次に、アンサーバック信号７２を受信した制御ホストは、（２）番目の速度データの倍率と最高速度を設定するための関数を制御プログラムで実行し、２回目のリクエスト信号７１をデバイスドライバから送信する。また、コントローラユニット８１は２回目のリクエスト信号７１を受信し、その受信したリクエスト信号７１を実行命令に変換して第１及び第２軸制御ロジック回路９１，９２の各軸制御部９５ａ〜９５ｄに書き込むとともに、アンサーバック信号７２を生成して通信制御部８３から送信する。
【０１８２】
以下同じように、制御ホストは、アンサーバック信号７２の受信をまって、（３）番目の開始速度と終了速度を設定するための関数、（４）番目の直線加速割合と直線減速割合を設定するための関数、（５）番目の指定した相対位置までパルス出力を実行して１回目の台形駆動を行うための関数、（６）番目の指定した相対位置までパルス出力を実行して２回目の台形駆動を行うための関数、（７）番目の指定した相対位置までパルス出力を実行して３回目の台形駆動を行うための関数、（８）番目の指定した相対位置までパルス出力を実行して４回目の台形駆動を行うための関数を制御プログラムで順番に実行するとともに、制御プログラムで関数を実行する毎にリクエスト信号７１をコントローラユニット８１に送信する。
【０１８３】
また、コントローラユニット８１では、リクエスト信号７１を通信制御部８３で受信する毎に、ＣＰＵ８２によるリクエスト信号７１の解析、受信したリクエスト信号７１から実行命令への変換、変換した実行命令の書き込み、受信したリクエスト信号７１に対するアンサーバック信号７２の送信といった処理が行われる。
【０１８４】
すなわち、従来のモーションコントロールシステムで図７に示した動作パターンをＸ軸のパルス駆動モータに行わせるためには、制御ホストとコントローラユニット８１間におけるリクエスト信号７１及びアンサーバック信号７２の送受信を合計８回行う必要があるとともに、コントローラユニット８１内では、リクエスト信号７１を受信するたびに、同じような内部処理を繰り返して行う必要がある。
【０１８５】
以上のような実施例及び比較例を比べると、Ｘ軸のパルス駆動モータ３８に、図７に示した同じ動作パターンを実行させる場合に、実施例に係るモーションコントロールシステム１では、比較例に係るモーションコントロールシステムに比べ、制御ホスト１０とコントローラユニット２１間の通信回数及び通信時間を減少させるとともに、制御ホスト１０への負担を大幅に低減させることができる。更に、コントローラユニット２１の第１軸制御部３５ａの動作を、ＲＡＭインターフェイス機能によってマクロデータ７５に従って完結させることができるため、第１軸制御部３５ａによる指令パルスの発生を安定して円滑に行うことができる。
【０１８６】
しかも、上述の実施例及び比較例では、図７に示した比較的シンプルな動作パターンをＸ軸のモータに実行させる場合について説明しているが、実際のモーションコントロールシステムでは、４軸全てに所要の動作パターンを実行させることから、１軸のみについて説明した上述の実施例の場合よりも上述した本発明の効果がより顕著に表れる。その上、例えば図７よりも複雑な動作パターンでモータを駆動させる場合には、上述した効果がより有効的に発揮される。
【符号の説明】
【０１８７】
１                モーションコントロールシステム
１０                制御ホスト
１１                制御プログラム
１２                デバイスドライバ
２０                第１スレーブ
２１                コントローラユニット（４軸コントローラユニット）
２２                ＣＰＵ
２３                通信制御部
２４                ＲＯＭ
２５                外部機器インターフェイス回路
２６                バス（データバス）
２７                通信インターフェイス回路
３１                第１軸制御ロジック回路
３２                第２軸制御ロジック回路
３３                第１命令解析部
３４                第２命令解析部
３５ａ              第１軸制御部（Ｘ軸制御部）
３５ｂ              第２軸制御部（Ｙ軸制御部）
３５ｃ              第３軸制御部（Ｚ軸制御部）
３５ｄ              第４軸制御部（Ａ軸制御部）
３６ａ              第１ＲＡＭ
３６ｂ              第２ＲＡＭ
３６ｃ              第３ＲＡＭ
３６ｄ              第４ＲＡＭ
３８                パルス駆動モータ
３８ａ              第１パルス駆動モータ
３８ｂ              第２パルス駆動モータ
３８ｃ              第３パルス駆動モータ
３８ｄ              第４パルス駆動モータ
３８ｅ              第５パルス駆動モータ
３８ｆ              第６パルス駆動モータ
３９                ドライバユニット
３９ａ              第１ドライバユニット
３９ｂ              第２ドライバユニット
３９ｃ              第３ドライバユニット
３９ｄ              第４ドライバユニット
４０                第２スレーブ
４１                コントローラドライバユニット
６０                第３スレーブ
６１                デジタルＩ／Ｏユニット
６２                外部機器
７０                通信インターフェイスユニット
７１                リクエスト信号
７１ａ              リクエスト長
７１ｂ              スレーブアドレス
７１ｃ              スレーブタイプ
７１ｄ              リクエストコード
７１ｅ              リクエストデータ
７２                アンサーバック信号
７２ａ              アンサー長
７２ｂ              エラー判定結果
７２ｃ              アンサーバックデータ
７５                マクロデータ
７６                シートデータ
７７                実行命令
【図１】
2016207169.tif 000003
【図２】
2016207169.tif 000004
【図３】
2016207169.tif 000005
【図４】
2016207169.tif 000006
【図５】
2016207169.tif 000007
【図６】
2016207169.tif 000008
【図７】
2016207169.tif 000009
【図８】
2016207169.tif 000010
【図９】
2016207169.tif 000011
【図１０】
2016207169.tif 000012
【図１１】
2016207169.tif 000013