JP2016207169A - モーションコントロールシステム - Google Patents

モーションコントロールシステム Download PDF

Info

Publication number
JP2016207169A
JP2016207169A JP2015092046A JP2015092046A JP2016207169A JP 2016207169 A JP2016207169 A JP 2016207169A JP 2015092046 A JP2015092046 A JP 2015092046A JP 2015092046 A JP2015092046 A JP 2015092046A JP 2016207169 A JP2016207169 A JP 2016207169A
Authority
JP
Japan
Prior art keywords
axis
control
ram
data
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
JP2015092046A
Other languages
English (en)
Inventor
康生 富野
Yasuo Tomino
康生 富野
厚 吉山
Atsushi Yoshiyama
厚 吉山
吉田 均
Hitoshi Yoshida
均 吉田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
MELEC CC
Original Assignee
MELEC CC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by MELEC CC filed Critical MELEC CC
Priority to JP2015092046A priority Critical patent/JP2016207169A/ja
Publication of JP2016207169A publication Critical patent/JP2016207169A/ja
Pending legal-status Critical Current

Links

Images

Landscapes

  • Programmable Controllers (AREA)

Abstract

【課題】制御ホストとスレーブ間の通信回数を減少させ、マイナーチェンジの労力や費用を低減することが可能なモーションコントロールシステムを提供する。
【解決手段】本発明のモーションコントロールシステムは、コントローラユニット21と、制御プログラムを備える制御ホストと、制御ホスト及びコントローラユニット21間の通信を行う通信インターフェイスユニットとを有し、コントローラユニット21は、実行命令の変換を行うCPU22と、実行命令に従って指令パルスを発生させる軸制御ロジック回路31,32と、ROM24とを有し、ROMにマクロデータが保持され、軸制御ロジック回路31,32は、マクロデータを書き込むことが可能なRAM36a,36b,36c,36dを備え、且つ、RAM36a,36b,36c,36dのマクロデータに従って実行命令を自動実行するRAMインターフェイス機能を備える。
【選択図】図2

Description

本発明は、制御ホストとコントローラユニットとの間で通信が行われるモーションコントロールシステムに関する。
モーションコントロールシステムは、工作機械や組み立て機械のような産業用機械装置や様々な検査装置などにおいて、モータやセンサ等の動作(モーション)を制御する技術として幅広く用いられている。通常、1つの機械装置には、サーボモータやステッピングモータ等の数多くのパルス駆動モータが用いられており、それぞれのモータの動作をモーションコントロールシステムで制御することにより、位置決め動作や複数軸の同期動作などの様々な動作を円滑に行うことが可能となる。また、モーションコントロールシステムを利用することにより、サーボ制御や、センサ等のI/O制御などを一元的に管理できる。
モーションコントロールシステムでは、一般的に、複数のパルス駆動モータを駆動させるコントローラユニットを有するスレーブや、センサ等の入出力を行うI/Oユニットのようなスレーブと、これらのスレーブの上位に配され、各スレーブの操作や制御を行う制御ホストとが、通信インターフェイスユニットを介して、相互に信号を送受信することが可能に接続されている。
制御ホストは、例えばPC(パーソナルコンピュータ)やPLC(プログラマブルロジックコントローラ)等により形成されており、C#等の様々な開発言語を用いて構築される制御プログラムと、スレーブとの間で通信を行うためのソフトウェアモジュールとなるデバイスドライバとを有する。
このような制御ホストでは、制御プログラムにてスレーブの操作や制御を行うための関数が実行され、また、デバイスドライバにてその実行された関数に基づいてリクエスト信号が1回又は複数回送信される。また一方、リクエスト信号を受信したスレーブでは、そのリクエスト信号に対する応答として、実行結果等のアンサーバック信号が制御ホストに向けて送信され、制御ホストでは、そのアンサーバック信号をデバイスドライバで受信して解析することによって、関数の実行結果が制御プログラムに戻される。
また、例えばパルス駆動モータを駆動させるスレーブには、コントローラユニットと1つ又は複数のドライバユニットとが配されているとともに、各ドライバユニットにパルス駆動モータがそれぞれ接続されている。なお、パルス駆動モータを駆動させるスレーブとしては、コントローラユニットとドライバユニットとがそれぞれ別々のユニットとして配されるスレーブだけでなく、コントローラ機能とドライバ機能とを一体的に備えるコントローラドライバユニットを備えるスレーブも知られている。
スレーブのコントローラユニットは、制御ホストからのリクエスト信号を受信するとともに、そのリクエスト信号に従ってドライバユニットに対して所定の指令パルスを出力する機能を備える。また、ドライバユニットは、その入力された指令パルスに従ってモータの励磁コイルに駆動電流を流す機能を備えており、この駆動電流をモータの励磁コイルに流すことにより、モータを円滑に回転駆動させることができる。
従って、通常のモーションコントロールシステムでは、制御ホストの制御プログラムで関数を実行することにより、制御ホストとモータを駆動させるスレーブとの間で相互に信号の送受信がその都度行われ、更に、スレーブのコントローラユニット及びドライバユニットが、制御ホストからのリクエスト信号に従って上述のような処理をそれぞれ行うことによって、パルス駆動モータの駆動が制御される。
ここで、パルス駆動モータを駆動させるスレーブに用いられるコントローラユニットとして、X軸、Y軸、Z軸及びA軸の4軸のパルス駆動モータを駆動させる4軸コントローラユニットを、図11を参照しながら簡単に説明する。
図11に示したコントローラユニット81は、様々な処理を行うCPU82と、リクエスト信号の受信及びアンサーバック信号の送信を行う通信制御部83と、CPU82で変換される実行命令に従って指令パルスを発生させる第1及び第2軸制御ロジック回路91,92(第1及び第2パルスジェネレータとも言う)と、第1〜第4ドライバユニット99a〜99dに対して指令パルスの信号を出力する外部機器インターフェイス回路85とを有する。また、コントローラユニット81におけるCPU82、通信制御部83、並びに第1及び第2軸制御ロジック回路91,92は、バス86によって相互に接続されている。
このコントローラユニット81の通信制御部83は、通信インターフェイス回路87を介して、制御ホストとコントローラユニット81の間に配される通信インターフェイスユニットに接続されており、コントローラユニット81の通信インターフェイス回路87と、通信インターフェイスユニットとの間でシリアル通信が行われる。
図11に示した第1軸制御ロジック回路91は、2つの第1及び第2ドライバユニット99a,99bに対して指令パルスを出力することが可能な2軸用の軸制御ロジック回路として形成されており、第2軸制御ロジック回路92も、2つの第3及び第4ドライバユニット99c,99dに対して指令パルスを出力することが可能な2軸用の軸制御ロジック回路として形成されている。
この場合、第1軸制御ロジック回路91は、CPU82で変換された実行命令を解析する第1命令解析部93と、解析された実行命令に従ってX軸(第1軸)の第1ドライバユニット99aに対する指令パルスを発生させるとともにその指令パルスのカウントを行う第1軸制御部(X軸制御部)95aと、解析された実行命令に従ってY軸(第2軸)の第2ドライバユニット99bに対する指令パルスを発生させるとともにその指令パルスのカウントを行う第2軸制御部(Y軸制御部)95bとを有する。
また、第2軸制御ロジック回路92も、第1軸制御ロジック回路91と同様に、第2命令解析部94と、Z軸(第3軸)の第3ドライバユニット99cに対する指令パルスを発生させるとともにその指令パルスのカウントを行う第3軸制御部(Z軸制御部)95cと、A軸(第4軸)の第4ドライバユニット99dに対する指令パルスを発生させるとともにその指令パルスのカウントを行う第4軸制御部(A軸制御部)95dとを有する。
更に、第1及び第2軸制御ロジック回路91,92の各軸制御部95a〜95dで発生させる指令パルスの信号は、外部機器インターフェイス回路85を介して、X軸、Y軸、Z軸及びA軸のそれぞれ対応する第1〜第4ドライバユニット99a〜99dに出力される。また、例えばパルス駆動モータがサーボモータである場合は、図示しないエンコーダで検知される回転角や回転速度等の情報がフィードバック信号として、各ドライバユニット99a〜99dから外部機器インターフェイス回路85を介して対応する軸制御部に戻される。
上述のような構成を有する図11のコントローラユニット81では、パルス駆動モータを駆動させるためのリクエスト信号が制御ホストから通信インターフェイスユニットを介して送信されると、そのリクエスト信号を通信制御部83で受信し、更に、CPU82において、リクエスト信号の判別を行うとともに、リクエスト信号をコマンドとデータからなる実行命令に変換する処理が行われる。
次に、CPU82は、変換した実行命令を第1及び第2軸制御ロジック回路91,92に送り、その実行命令を各軸制御部95a〜95d(例えば各軸制御部のレジスタ)に書き込む処理を行う。このとき、第1及び第2軸制御ロジック回路91,92では、第1及び第2命令解析部93,94で実行命令が解析されるとともに、その実行命令がCPU82によって各軸制御部95a〜95dに順次書き込まれるため、各軸制御部95a〜95dは、書き込まれた実行命令を実行することによって、その命令に従って指令パルスを各ドライバユニット99a〜99dに向けて出力することができる。
このようなパルス駆動モータに用いられるコントローラユニットに関する発明が、例えば特開平8−272410号公報(特許文献1)、特開平8−320719号公報(特許文献2)、及び特開2004−282972号公報(特許文献3)等に開示されている。
例えば特許文献1に記載されているコントローラユニットでは、複数の軸制御ロジック回路(特許文献1では「IC」と称する)がバスを介してCPUに接続されており、各軸制御ロジック回路(IC)には、動作を指定するコマンドデータを一時記憶するためのレジスタと、同期スタート端子とが設けられている。また、各軸制御ロジック回路の同期スタート端子同士が相互に接続されている。
特許文献1によれば、コントローラユニットが上述のような構成を有することにより、各軸制御ロジック回路が、通常スタートコマンド又は同期スタートコマンドの受信に応答してスタートすることができるため、各軸制御ロジック回路の独立動作制御が可能となるだけでなく、同期、同時動作制御も可能となるとしている。
また特許文献2では、コントローラユニットの軸制御ロジック回路(特許文献2では「パルス発生回路」と称する)に、次動作用データ領域としてのプリレジスタ(プリバッファ)が設けられている。特許文献2によれば、軸制御ロジック回路がプリレジスタを備えることにより、軸制御ロジック回路の動作時に、次回分の動作用データをプリレジスタに書き込むことができるため、高速動作が可能となるとしている。
特許文献3に記載されているコントローラユニットは、CPUインターフェイス部と、軸制御ロジック回路(特許文献3では「パルス発生IC」と称する)と、レジスタ部とを有しており、レジスタ部は、モータ動作パラメータを保持する各種のレジスタを備えるとともに、次動作のデータ及び次々動作のデータをそれぞれ書き込むことが可能な第1プリレジスタ及び第2プリレジスタを備える。
また、特許文献3では、軸制御ロジック回路が行う位置決め動作の動作パターンとして、モータを目標位置まで定速駆動させる第1速度パターンと、モータを加速スタート後に定速駆動し、更に減速停止させる第2速度パターンと、定速スタート後に減速停止させる第3速度パターンとが用意されている。
特許文献3によれば、上述のような3種類の速度パターンを備えることにより、指定された速度パターンでパルス駆動モータを位置決め動作させるとともに、スムーズな連続位置決め動作を実行することができるため、動作パターンが高速で行われてもモータへの負荷を軽減し、耐久性を高めることができるとしている。
特開平8−272410号公報 特開平8−320719号公報 特開2004−282972号公報
しかし、従来のモーションコントロールシステムにおいては、全てのスレーブの操作や制御が1つの制御ホストで管理されており、パルス駆動モータ等を備えるスレーブに所望の動作を行わせるために、制御ホストの制御プログラムに、スレーブのコントローラユニットに命令を実行させるための全ての関数を持たせる必要があった。
このため、複数のスレーブの動作を制御するモーションコントロールシステムでは、制御ホストにおける制御プログラムの構築が複雑になり、また、制御ホストが制御プログラムで関数を実行するときの負担が大きくなることから、制御ホストの処理が遅くなるという問題があった。
更に、スレーブが有するパルス駆動モータに所定の動作を行わせるためには、制御ホストの制御プログラムで、その動作を規定するための複数の関数を実行しなければならず、また、1つの関数が実行される毎に制御ホストとスレーブとの間で1回以上の通信を行う必要があった。このため、制御ホストとスレーブとの間での通信回数が必然的に多くなり、制御ホストへの負担がより一層増大する傾向にあった。
特に、制御ホストがPCで形成されるモーションコントロールシステムにおいて、スレーブのセンサ等から得られる情報を用いてPCで画像処理や計測等を行う場合には、PCのCPUに対する負担が更に増大するため、モーションコントロールに関するPCの負担を軽減することや、モーションコントロールに用いる制御プログラムをよりシンプルに構築すること等が要求されている。
その上、従来のモーションコントロールシステムでは、制御ホストとスレーブとの間で行う通信の通信回数が多くなり、パルス駆動モータの数が多くなったり、パルス駆動モータの動作が複雑になったりするほど、両者間の通信回数も増大する。しかし、制御ホストとスレーブとの間の通信回数が増大すると、制御ホストのPCのCPUの性能、制御ホストとスレーブとの間の通信速度、スレーブ(特に、コントローラユニット)の内部処理時間等の影響によって、システムにおける実行処理時間が制約されてしまい、また、PCのCPUの性能によりモーションコントロールの処理時間にバラつきや誤差を生じさせることがあった。このため、従来のモーションコントロールシステムでは、リアルタイム性の向上や複数軸の同期精度の向上に限界がある。更に、システムの高速化を図ることが難しいことから、機械装置の性能向上を妨げる要因となっていた。
また一般に、大きな機械装置のシステムを一から開発することは、数年に一度の割合であって多くはなく、実際の現場では、一度構築された装置システムに対して、ユーザーから要求された仕様に合わせるように、モーションの一部変更や軸の追加等のマイナーチェンジを行うことが多い。このようなマイナーチェンジを行う場合には、スレーブの動作を制御する制御ホストの制御プログラムを変更することが必要になる。
しかし、モーションコントロールシステムにおいて、制御ホストの制御プログラムを一部でも変更する場合、その制御プログラムの変更部分が正常に動作するかを確認するだけでなく、その変更に伴う他のモーションの制御に対する影響の検証やデバック等を、制御プログラムの全体に対して行うことが必要となる。このため、従来のモーションコントロールシステムでは、一部分のモーションの変更のみであっても、多大な労力、費用、時間を要するとともに、大きなリスクも伴うものであった。
本発明は上記従来の課題に鑑みてなされたものであって、その目的は、制御ホストの制御プログラムをシンプルに構築して制御ホストに対する負担を低減するとともに、制御ホストとスレーブとの間での通信回数を減少させることが可能で、且つ、装置のモーションをマイナーチェンジする際の労力や費用を低減するとともに変更に伴うリスクを小さくすることが可能なモーションコントロールシステムを提供することにある。
上記目的を達成するために、本発明により提供されるモーションコントロールシステムは、基本的な構成として、パルス駆動モータ用の1つ又は複数のモータドライバに対して指令パルスを出力する少なくとも1つのコントローラユニットと、制御プログラムを備える制御ホストと、前記制御ホスト及び前記コントローラユニット間の通信を行う通信インターフェイスユニットとを有し、前記制御ホストが、前記制御プログラムの関数の実行により前記コントローラユニットに対するリクエスト信号を送信し、前記コントローラユニットが、前記リクエスト信号に基づいて前記指令パルスを出力することにより、前記パルス駆動モータの動作制御を行うモーションコントロールシステムであって、前記コントローラユニットは、前記リクエスト信号から実行命令を変換するCPUと、前記実行命令に従って前記指令パルスを発生させる1つ又は複数の軸制御ロジック回路とを有するモーションコントロールシステムにおいて、前記コントローラユニットはROMを有するとともに、前記ROMに、複数の実行命令を予め備える少なくとも1つのマクロデータが保持され、前記軸制御ロジック回路は、前記制御ホストから指定される前記ROM内の前記マクロデータを書き込むことが可能なRAMを備え、且つ、前記制御ホストからの前記リクエスト信号により、前記RAMに書き込まれた前記マクロデータに従って複数の前記実行命令を順番に自動実行するRAMインターフェイス機能を備えてなることを最も主要な特徴とするものである。
本発明のモーションコントロールシステムにおいて、前記軸制御ロジック回路は、前記実行命令を解析する命令解析部と、前記指令パルスを発生させる1つ又は複数の軸制御部とを備え、前記RAMは、各軸制御部に1つずつ設けられていることが好ましい。
また、本発明のモーションコントロールシステムにおいて、前記RAMは、前記実行命令をそれぞれ書き込むことが可能な複数のアドレスを有し、前記軸制御ロジック回路は、前記RAMインターフェイス機能により、前記リクエスト信号により指定される所定のアドレスの前記実行命令から前記マクロデータを自動実行可能であることが好ましい。
更に、本発明のモーションコントロールシステムにおいて、前記RAMは、複数の前記マクロデータを書き込むことが可能な容量を有することが好ましい。
更にまた、前記ROMは、複数の前記RAMにそれぞれ対応して書き込まれる複数のマクロデータを備えた1枚又は複数枚のシートデータを保持していることが好ましい。
この場合、前記コントローラユニットは、複数の前記RAMに、前記リクエスト信号により指定される1枚の前記シートデータから、対応する前記マクロデータを展開してそれぞれ書き込むことが可能とされていることが好ましい。また、前記コントローラユニットは、複数の前記RAMに、前記リクエスト信号により指定される2枚以上の前記シートデータから、指定される前記マクロデータを組み合わせてそれぞれ書き込むことが可能とされていても良い。
本発明のモーションコントロールシステムにおいて、前記制御ホストは、前記ROMに保持されている前記マクロデータの少なくとも一部を、前記制御プログラム又は専用の書き換えプログラムで書き換えることが可能とされていることが好ましい。
更に、前記制御ホストは、前記RAMに書き込まれた前記マクロデータの少なくとも一部を、前記制御プログラム又は専用の書き換えプログラムで書き換えることが可能とされていることが好ましい。
本発明に係るモーションコントロールシステムは、指令パルスを出力する少なくとも1つのコントローラユニットと、制御プログラムを備える制御ホストと、制御ホスト及びコントローラユニット間の通信を行う通信インターフェイスユニットとを有する。また、コントローラユニットは、制御ホストのリクエスト信号から実行命令を変換するCPUと、実行命令に従って指令パルスを発生させる軸制御ロジック回路と、複数の実行命令をマクロ化したマクロデータを保持するROMとを有する。
このような本発明のモーションコントロールシステムによれば、従来のモーションコントロールシステムでは制御ホストに持たせていた関数の一部を、複数の実行命令の集合体からなるマクロデータとして、コントローラユニットのROMに持たせて記憶させておくことができる。
これにより、マクロデータに持たせた実行命令に対応する関数を制御ホストの制御プログラムに持たせなくても良くなるため、制御ホストの制御プログラムを従来のものよりもシンプルに構築することが可能となるとともに、制御プログラムで関数を実行するときの制御ホストの負担を低減できる。更に、制御ホストの制御プログラムをシンプル化できれば、制御プログラムの開発に要する労力及び時間を削減でき、また、モーションコントロールシステムの立ち上げを円滑に行うことができる。
また本発明では、コントローラユニットのROMに、実行命令の集合体であるマクロデータを保持するとともに、コントローラユニットの軸制御ロジック回路が、制御ホストから指定されるROM内のマクロデータを書き込むことが可能なRAMを備える。更に、軸制御ロジック回路は、RAMに書き込まれたマクロデータに従って複数の実行命令を順番に自動実行するRAMインターフェイス機能を備える。
従って、例えば制御ホストの制御プログラムが、コントローラユニットに対し、指定するマクロデータをROMからRAMに書き込むようにリクエスト信号を送信し、更にその後、RAMに書き込まれたマクロデータに従って実行命令を自動実行するようにリクエスト信号を送信することにより、コントローラユニット側で、マクロデータに従ってパルス駆動モータに所定の動作を自動的に行わせることが可能となる。
このため、本発明では、スレーブに所定の動作を行わせるために、従来のように制御プログラムで複数の関数を実行して制御ホストとコントローラユニットとの間で複数回の通信を繰り返して行う必要がなくなり、制御ホストとコントローラユニット間の通信回数を大きく低減させるとともに、その通信に要する時間を削減することができる。
すなわち、本発明では、制御ホストの制御プログラムをシンプルに構築できるとともに、制御ホストとコントローラユニット間の通信の回数や時間を少なくできるため、制御ホストの負担を、従来のモーションコントロールシステムよりも大きく低減させることができ、その結果、制御ホストの処理が遅くなるという従来の課題を解消することができる。
しかも、制御ホストとコントローラユニット間の通信回数の減少により、制御ホストの性能、制御ホストとスレーブとの間の通信速度、コントローラユニットの内部処理時間に依存しないようなリアルタイム性を備えた高度なモーションコントロールを安定して実現することができる。更に、モーションコントロールの実行処理時間のバラつきや誤差を抑えて、実行処理時間を安定して確保し易くなるため、処理の遅延による制御の破綻が生じることを防止できる。このため、位置決めの微細制御の向上や複数軸の同期精度の向上、また、機械装置の高速化及び性能向上を図ることができる。
更に本発明のモーションコントロールシステムでは、例えば複数のコントローラユニットのROMに、制御プログラムの関数に対応するマクロデータを分散させて保持させることが可能となる。このため、各スレーブで行う一連のモーションをそのスレーブの機能として完結させて自動実行させることができ、それによって、各スレーブにおける一連のモーションを円滑に且つ確実に行うことができる。
特に本発明では、スレーブが行うモーションを、制御プログラムの関数で規定することも、また、RAMに書き込むことが可能なマクロデータとしてコントローラユニットのROMに保持することも可能となることから、制御ホストの制御プログラムと、ROMに保持するマクロデータとの間に互換性を持たせることができる。それにより、システム設計の自由度を高めることができ、ユーザーから要求される仕様に、より柔軟に対応することが可能となる。
更に本発明では、モーションコントロールシステムにおいてモーションの一部変更や軸の追加等のマイナーチェンジを行う場合に、そのマイナーチェンジを行う部分のコントローラユニットのマクロデータのみを変更することによって、制御ホストの制御プログラムや、その他のコントローラユニットのマクロデータを変更しなくても容易に対応することが可能となる。
またこの場合、マイナーチェンジを行うコントローラユニットのマクロデータのみを変更すれば良く、変更しないコントローラユニットへの影響がなくなる(又は少なくなる)ため、その部分的な変更に伴う他の制御に対する影響の検証やデバック等を、そのコントローラユニット内の小さな範囲で行うだけで十分となる。従って、本発明では、従来のモーションコントロールシステムに比べて、マイナーチェンジを行う際に要する労力、費用、時間を大幅に低減できるとともに、マイナーチェンジの際に伴うリスクも小さくすることが可能となるという大きなメリットが得られる。
このような本発明のモーションコントロールシステムにおいて、軸制御ロジック回路は、実行命令を解析する命令解析部と、指令パルスを発生させる1つ又は複数の軸制御部とを備えており、また、各軸制御部にはRAMが1つずつ設けられている。これにより、各軸制御部のRAMに、対応するマクロデータを書き込んで軸制御部ごとに自動実行させることができるため、軸制御部ごとにモーションを完結させることができる。従って、例えば軸制御部ごとのモーションを1つの制御ホストで一元的に制御する場合に比べて、それぞれの軸制御部の制御が容易となり、また、各軸制御部のモーションを安定して行わせることができる。
また、本発明のモーションコントロールシステムにおいて、軸制御部のRAMは、実行命令をそれぞれ書き込むことが可能な複数のアドレスを有し、軸制御ロジック回路は、RAMインターフェイス機能により、リクエスト信号により指定される所定のアドレスの実行命令からマクロデータを自動実行可能である。これにより、軸制御部に、マクロデータに従った所定の動作を、マクロデータの初めからでも、又はマクロデータの途中からでも安定して行わせることが可能となり、スレーブの動作を多様に制御することができる。
更に、本発明のモーションコントロールシステムにおいて、軸制御部のRAMは、複数のマクロデータを書き込むことが可能な容量を有する。これにより、制御ホストのリクエスト信号により、軸制御部のRAMに複数のマクロデータを一度に書き込んで記憶させることができる。この場合、RAMに書き込まれた複数のマクロデータの中から1つ又は複数のマクロデータを指定して自動実行させることができる。
このように、RAMに書き込まれた複数のマクロデータの中からスレーブの動作パターンを選択して自動的に行わせることができ、また、スレーブの動作パターンを変更する際にRAMにおけるマクロデータの書き換えをその都度行わなくても良くなるため、スレーブの動作をより効率的に制御することができる。
更にまた、コントローラユニットのROMは、複数のRAMにそれぞれ対応して書き込まれる複数のマクロデータを備えた1枚又は複数枚のシートデータを保持することが可能である。これにより、各軸制御部のRAMに展開する相互に対応した複数のマクロデータを1枚のシートデータにまとめて保持することができるため、マクロデータの管理を行い易くすることができる。
また、ROMの中に、RAMに展開可能な複数のシートデータが保持されていることにより、スレーブに行わせることが可能な複数の多様な動作パターンを持たせておくことが可能となる。このため、スレーブに実際に動作を行わせる際に複数のシートデータから所要のシートデータを選択することによって、スレーブに所定の動作を円滑に行わせることができるとともに、スレーブに行わせる動作パターンの変更も容易に行うことができる。
この場合、コントローラユニットは、複数の軸制御部の各RAMに、リクエスト信号により指定される1枚のシートデータから、対応するマクロデータを展開してそれぞれ書き込むことが可能とされている。これにより、1枚のシートデータから、各軸制御部のRAMに対して、相互に動作が対応するマクロデータを展開して書き込むことができるため、RAMへの書き込みを容易に且つ効率的に行うことができ、また、複数の軸制御部に、互いに対応する動作を円滑に行わせることができる、
また本発明において、コントローラユニットは、複数の軸制御部の各RAMに、リクエスト信号により指定される2枚以上のシートデータから、指定されるマクロデータを組み合わせてそれぞれ書き込むことが可能である。これにより、制御ホストの制御プログラムを変更することなく、各軸制御部で自動実行させることが可能な動作パターンの種類を容易に増大させることができる。
本発明のモーションコントロールシステムにおいて、制御ホストは、ROMに保持されているマクロデータの少なくとも一部を、制御プログラム又は専用の書き換えプログラムで書き換えることが可能である。更に、制御ホストは、RAMに書き込まれたマクロデータの少なくとも一部を、制御プログラム又は専用の書き換えプログラムで書き換えることが可能である。
これにより、制御ホストの制御プログラム自体を変更することなく、マクロデータに従って自動実行させることが可能な動作パターンを容易に変更することができる。また、動作パターンの一部を変更する等のマイナーチェンジを行う際に要する労力、費用、時間を大幅に低減できるとともに、マイナーチェンジの際に伴うリスクも小さくできる。
本発明のモーションコントロールシステムを示すブロック図である。 同モーションコントロールシステムにおける4軸コントローラユニットを示すブロック図である。 同モーションコントロールシステムにおけるリクエスト信号のフォーマットを示す概略図である。 同モーションコントロールシステムにおけるアンサーバック信号のフォーマットを示す概略図である。 4軸コントローラユニットの各RAMに書き込まれるマクロデータについて説明する説明図である。 4軸コントローラユニットのROMに保持されるシートデータについて説明する説明図である。 実施例で実行するパルス駆動モータの動作パターンを示すグラフである。 X軸用のマクロデータの内容を説明する図である。 実施例において、制御ホストの制御プログラムが実行する関数の内容を説明する図である。 従来のモーションコントロールシステムにおいて、制御ホストの制御プログラムが実行する関数の内容を説明する図である。 従来のモーションコントロールシステムにおける4軸コントローラユニットを示すブロック図である。
以下に、本発明の好適な実施の形態について、図面を参照しながら詳細に説明する。
ここで、図1は、本実施形態におけるモーションコントロールシステムを示すブロック図であり、図2は、同モーションコントロールシステムにおける4軸コントローラユニットを示すブロック図である。
図1に示す本実施形態のモーションコントロールシステム1は、工作機械や組み立て機械などの産業用機械装置や検査装置等における動作を制御するシステムとして形成されている。このモーションコントロールシステム1は、PCにより形成される制御ホスト10と、制御ホスト10の制御下に配される第1スレーブ20、第2スレーブ40、及び第3スレーブ60と、制御ホスト10と第1〜第3スレーブ20,40,60間の通信を行う通信インターフェイスユニット70とを有する。
ここで、スレーブとは、制御ホスト10の後述する制御プログラム11が関数を実行することによって、指定された命令に従って動作するユニットのことを言い、本実施形態では、第1スレーブ20、第2スレーブ40、及び第3スレーブ60として、コントローラユニット21、コントローラ機能とドライバ機能を一体型にしたコントローラドライバユニット41、及びデジタルI/Oユニット61が用いられている。なお、本実施形態において、制御ホスト10の制御下に配されるスレーブの個数は限定されるものではなく、1つのスレーブのみが配されていても良いし、4つ以上のスレーブが配されていても良い。
本実施形態の制御ホスト10は、C#等の開発言語を用いて構築される制御プログラム11と、第1スレーブ20〜第3スレーブ60に対する通信を行うためのソフトウェアモジュールとなるデバイスドライバ12とを有しており、制御プログラム11で関数を実行することにより、第1スレーブ20〜第3スレーブ60を動作させ、また、その動作を制御することができる。
例えば本実施形態の制御ホスト10において、制御プログラム11で関数が実行されると、制御プログラム11から、その関数実行に基づく内部信号がデバイスドライバ12に送られる。また、デバイスドライバ12では、制御プログラム11からの内部信号を受信すると、その内部信号に基づいてリクエスト信号71を生成して通信インターフェイスユニット70に送信する。
本実施形態において、制御ホスト10のデバイスドライバ12から送信されるリクエスト信号71は、図3に示すようなフォーマットで形成されており、このリクエスト信号71には、信号の長さ、信号の送り先、及び信号の内容などの情報が含まれている。
より具体的に説明すると、本実施形態のリクエスト信号71は、信号の長さを示すリクエスト長71aの情報と、信号の送り先を示すスレーブアドレス71bの情報及びスレーブタイプ71cの情報と、信号の実質的な内容を示すリクエストコード71dの情報及びリクエストデータ71eの情報とを有する。
リクエスト長71aの情報は、当該リクエスト長71aを除くリクエスト信号71の長さ、すなわち、スレーブアドレス71b、スレーブタイプ71c、リクエストコード71d、及びリクエストデータ71eの情報の合計の長さ(バイト数)を示す。このリクエスト長71aの情報は、各スレーブ20,40,60がリクエスト信号71を受信したときに、それぞれのスレーブ20,40,60がその受信したリクエスト信号71が正しいものか否かを判別する要素の一つとなる。
リクエスト信号71におけるスレーブアドレス71bの情報は、リクエスト信号71の送信先となる特定のスレーブのアドレスを指定している。スレーブタイプ71cの情報は、送信先となるスレーブにおけるユニットの種類を特定している。リクエストコード71dの情報は、リクエスト信号71で行わせる処理の対象(例えばスレーブのポートへのライト)を指定している。
リクエストデータ71eの情報は、リクエスト信号71で行わせる処理の具体的な内容を指定しており、このリクエストデータ71eには、例えば軸の指定、処理を実行させるコマンド、そのコマンドの具体的なデータなどの内容が含まれる。なお、本発明のリクエスト信号71のフォーマットは、図3に示したものに限定されるものではなく、任意に変更することができる。
一方、本実施形態の制御ホスト10から、後述する通信インターフェイスユニット70を介して、スレーブにリクエスト信号71が送られると、そのリクエスト信号71を各スレーブ20,40,60が一斉に受信し、各スレーブ20,40,60がリクエスト信号71の内容を自分に対するものであるか否かを判断する。
更に、各スレーブ20,40,60は、そのリクエスト信号71が自分に対するものと判断した場合には、そのリクエスト信号71の内容を実行した後に、実行結果等の内容を含むアンサーバック信号72を、通信インターフェイスユニット70を介して、制御ホスト10に送信する。制御ホスト10では、そのアンサーバック信号72をデバイスドライバ12で受信して解析し、その解析に基づいて関数の実行結果が制御プログラム11に戻される。
ここで、本実施形態で送信されるアンサーバック信号72は、リクエスト信号71を実行した結果を示す信号であり、図4に示すようなフォーマットで形成されている。このアンサーバック信号72は、信号の長さを示すアンサー長72aの情報と、エラーの有無を示すエラー判定結果72bの情報と、リクエスト信号71に対する応答の内容を示すアンサーバックデータ72cの情報とを有する。
アンサーバック信号72におけるアンサー長72aの情報は、当該アンサー長72aを除くアンサーバック信号72の長さ、すなわち、エラー判定結果72b及びアンサーバックデータ72cの情報の合計の長さ(バイト数)を示す。エラー判定結果72bの情報は、受信したリクエスト信号71に対してエラーが生じたか否かを示すとともに、エラーが生じた場合にはそのエラーの内容を示す。アンサーバックデータ72cの情報には、リクエスト信号71に対して実行した結果や内容などのデータが含まれる。なお、本発明のアンサーバック信号72のフォーマットも、図4に示したものに限定されるものではなく、任意に変更することができる。
本実施形態の制御ホスト10は、PCにより形成されているため、制御プログラム11によるモーションコントロールの処理以外に、第3スレーブ60の後述するセンサ等から得られる情報を用いて、画像処理等の様々な処理を行うことも可能である。なお、本実施形態の制御ホスト10はPCにより形成されているが、本発明では、制御ホスト10をPLCにより形成することも可能である。
また、本実施形態の制御ホスト10は、制御プログラム11により、第1スレーブ20のコントローラユニット21の後述するROM24に保持されているマクロデータ75やシートデータ76の少なくとも一部を書き換えることが可能であり、また、同コントローラユニット21における後述する第1RAM36a〜第4RAM36dに書き込まれるマクロデータ75の少なくとも一部を書き換えることが可能に構成されている。なお、本発明では、ROM24や第1RAM36a〜第4RAM36d内のマクロデータ75等の書き換えを制御プログラム11によって行う代わりに、制御ホスト10に、ROM24や第1RAM36a〜第4RAM36d内のマクロデータ75等を書き換える専用の書き換えプログラムを持たせることも可能である。
本実施形態の通信インターフェイスユニット70は、制御ホスト10のデバイスドライバ12との間で、バス又はシリアル通信を介してリクエスト信号71及びアンサーバック信号72の送受信を行うとともに、第1スレーブ20〜第3スレーブ60との間で、シリアル通信によるリクエスト信号71及びアンサーバック信号72の送受信を行うユニットである。
この場合、図3及び図4に示したフォーマットのリクエスト信号71及びアンサーバック信号72の伝達を行うシリアル通信を「ALII(エーエルツー)通信」と称し、この「ALII通信」は、本出願人が市販するコントローラユニットやモーションコントロールシステムなどに用いられている。なお、本願で用いるシリアル通信の用語には、ALII通信が含まれるものとする。
本実施形態の通信インターフェイスユニット70において、制御ホスト10を形成するPCに接続する形態は特に限定されるものではなく、例えばPCIバスやPCIExpress(登録商標)バスなどのスロット挿入タイプのもの、又は、USB、Ethernet(登録商標)、及びEtherCAT(登録商標)などのシリアル通信タイプのものを利用することが可能である。
本実施形態において、通信インターフェイスユニット70と第1〜第3スレーブ20,40,60との間のシリアル通信の通信仕様には、絶縁型RS485(半二重通信)方式が採用されている。また、シリアル通信の通信速度(ボーレート)として、20Mbps又は10Mbpsが設定される。
RS485の通信方式は、ケーブルの引き回しが容易であり、また、ノイズに強く、一つのケーブル(伝送路)の抵抗やスレーブの負荷抵抗の影響を受け難いため、複数のスレーブを組み込むことが可能である。例えば、本実施形態のモーションコントロールシステム1の場合、最大で15ユニットのスレーブを、通信インターフェイスユニット70に対してシリアル通信(ALII通信)で接続して制御することが可能である。
本実施形態の第1スレーブ20となるコントローラユニット21は、4軸コントローラユニットとして形成されており、このコントローラユニット21には、X軸(第1軸)、Y軸(第2軸)、Z軸(第3軸)、及びA軸(第4軸)の各軸に配される4つのパルス駆動モータ38が、それぞれドライバユニット39を介して接続されている。
この場合、接続されるパルス駆動モータ38として、サーボモータ又はステッピングモータが用いられる。また、X軸、Y軸、Z軸、及びA軸に配されるパルス駆動モータ38を、それぞれ第1パルス駆動モータ38a、第2パルス駆動モータ38b、第3パルス駆動モータ38c、及び第4パルス駆動モータ38dとし、各パルス駆動モータ38a〜38dが接続するドライバユニット39を、順番に、第1ドライバユニット39a、第2ドライバユニット39b、第3ドライバユニット39c、及び第4ドライバユニット39dとする。
本実施形態の4軸コントローラユニット21は、図2に示すように、様々な処理を行うCPU22と、リクエスト信号71の受信及びアンサーバック信号72の送信を行う通信制御部23と、複数のマクロデータ75が予め記憶されている1つのROM24と、指令パルスを発生させる第1及び第2軸制御ロジック回路31,32(第1及び第2パルスジェネレータとも言う)と、第1及び第2軸制御ロジック回路31,32で発生させた指令パルスの信号を第1ドライバユニット39a〜第4ドライバユニット39dに対して出力する外部機器インターフェイス回路25とを有する。
この場合、4軸コントローラユニット21におけるCPU22、通信制御部23、ROM24、並びに第1及び第2軸制御ロジック回路31,32は、バス(データバス)26によって相互に接続されている。なお、第1ドライバユニット39a〜第4ドライバユニット39d、及び外部機器インターフェイス回路25については、従来の4軸コントローラユニットに用いられる一般的なドライバユニット、及び外部機器インターフェイス回路と同様であるため、ここでは、これらの詳しい説明を省略することとする。
本実施形態の4軸コントローラユニット21においてCPU22が行う主な処理を例示すると、CPU22は、通信制御部23で受信したリクエスト信号71の判別を行うとともに、そのリクエスト信号71が4軸コントローラユニット21に対するものである場合には、リクエスト信号71を実行命令に変換する処理を行う。この場合、図3に示したフォーマットで形成されたリクエスト信号71(特に、リクエスト信号71のリクエストデータ71eの部分)は、CPU22の処理によって、8ビットのコマンドと、16ビットの第1データと、16ビットの第2データとを有する実行命令に変換される。なお、実際にCPU22で変換される実行命令は、第2データ、第1データ、及びコマンドの順番で構成されている。
また、CPU22は、受信したリクエスト信号71の内容に従って、変換された実行命令(すなわち、コマンドと第1及び第2データ)を、第1及び第2軸制御ロジック回路31,32の後述する各軸制御部35a〜35dに書き込む処理や、各軸制御部35a〜35dからデータ(情報)を読み出す処理などを行い、更に、実行結果等の内容を含むアンサーバック信号72を生成する処理を行う。
更にまた、CPU22は、受信したリクエスト信号71の内容に従って、例えばROM24にアクセスし、当該ROM24に記憶されているモーションコントロール用のマクロデータ75を読み出すとともに、その読み出したマクロデータ75を、第1及び第2軸制御ロジック回路31,32の後述する第1RAM36a〜第4RAM36dに書き込む処理を行う。
通信制御部23は、通信インターフェイス回路27を介して通信インターフェイスユニット70に接続されており、制御ホスト10から送られたリクエスト信号71の受信と、CPU22で生成されたアンサーバック信号72の送信とを行う。また、コントローラユニット21の通信インターフェイス回路27と、通信インターフェイスユニット70との間では、上述したシリアル通信(ALII通信)が行われる。
ROM24は、データの書き込みや消去を自由に行うことができるとともに、電源を切っても書き込まれたデータが消えないフラッシュメモリであり、従来のコントローラユニットには、本実施形態のようなROM24は設けられていなかった。また、本実施形態のROM24には、第1及び第2軸制御ロジック回路31,32の第1RAM36a〜第4RAM36dに書き込むことが可能な複数のモーションコントロール用マクロデータ75が保持(記憶)されている。
第1及び第2軸制御ロジック回路31,32は、それぞれ、2つのパルス駆動モータ38のドライバユニット39に対して指令パルスを出力することが可能な軸制御部35a〜35dを2つずつ備えた2軸用の軸制御ロジック回路(集積回路)として形成されている。なお、本実施形態の第1及び第2軸制御ロジック回路31,32は、それぞれ2軸用に形成されているが、本発明では、軸制御ロジック回路が1軸用に形成されていても良く、また、1つのコントローラユニットに1つの軸制御ロジック回路のみが設けられていても良い。
第1軸制御ロジック回路31は、CPU22から送られた実行命令の解析を行う第1命令解析部33と、解析された実行命令に従ってX軸(軸1)の第1ドライバユニット39aに対する指令パルスを発生させるとともにモータの回転数(位置)を判断するために指令パルスのカウントを行うX軸用の第1軸制御部(X軸制御部)35aと、第1軸制御部35aに対して設けられ、マクロデータ75を書き込むことが可能な第1RAM36aと、解析された実行命令に従ってY軸(軸2)の第2ドライバユニット39bに対する指令パルスを発生させるとともにその指令パルスのカウントを行うY軸用の第2軸制御部(Y軸制御部)35bと、第2軸制御部35bに対して設けられ、マクロデータ75を書き込むことが可能な第2RAM36bとを有する。このような本実施形態の第1軸制御ロジック回路31は、例えば図11に示したような従来の第1及び第2軸制御ロジック回路91,92と比較すると、第1RAM36a及び第2RAM36bが新たに設けられていることに違いを有する。
更に、第1軸制御ロジック回路31は、CPU22でリクエスト信号71から変換された実行命令に従って、第1軸制御部(X軸制御部)35aに対し、第1RAM36aにアクセスし、且つ、その第1RAM36aに書き込まれたマクロデータ75の後述する実行命令77を順番に自動実行させる第1RAMインターフェイス機能と、第2軸制御部(Y軸制御部)35bに対し、第2RAM36bにアクセスし、且つ、その第2RAM36bに書き込まれたマクロデータ75の実行命令77を順番に自動実行させる第2RAMインターフェイス機能とを有する。
第1軸制御ロジック回路31の第1命令解析部33は、CPU22でリクエスト信号71から変換された実行命令を解析し、更に、その実行命令に含まれるコマンドと第1データ及び第2データとに従って、第1軸制御部35a及び第2軸制御部35bに所定の動作を行わせることができる。
例えば第1命令解析部33は、実行命令に含まれるコマンドと第1データ及び第2データとに従って、第1軸制御部35aに、所定の第1条件で指令パルスを発生させるとともに、発生させた指令パルスの回数をカウントするといった動作を実行させるとともに、第2軸制御部35bに、所定の第2条件で指令パルスを発生させるとともに、発生させた指令パルスの回数をカウントするといった動作を実行させることが可能である。
また、第1命令解析部33は、第1及び第2RAMインターフェイス機能による処理(RAMインターフェイス処理)により、実行命令に含まれるコマンドと第1及び第2データとに従って、第1軸制御部35aに対し、第1RAM36aにアクセスして第1RAM36aに書き込まれたマクロデータ75の実行命令77を所定のアドレスの番地から順番に自動実行させるとともに、第2軸制御部35bに対し、第2RAM36bにアクセスして第2RAM36bに書き込まれたマクロデータ75の実行命令77を所定のアドレスの番地から順番に自動実行させることが可能である。
第1軸制御ロジック回路31の第1RAM36a及び第2RAM36bは、データの書き込みや消去を自由に行うことができるものの、ROM24とは異なり、電源の供給が遮断されると書き込まれデータ(内容)が失われる揮発メモリである。
第1RAM36aは、CPU22により、ROM24に保存されているX軸用のマクロデータ75を書き込むことが可能に構成されている。また、第1RAM36aは、上述した第1RAMインターフェイス機能により、第1軸制御部35aからアクセスされて、書き込まれたX軸用のマクロデータ75の実行命令77が順番に読み出される。
第2RAM36bも、第1RAM36aと同様に、CPU22により、ROM24に保存されているY軸用のマクロデータ75を書き込むことが可能に構成されているとともに、第2RAMインターフェイス機能により、第2軸制御部35bがアクセスして、書き込まれたY軸用のマクロデータ75の実行命令77が順番に読み出される。
この場合、本実施形態の第1RAM36a及び第2RAM36bは、「0000」番地〜「4095」番地の4096個のアドレスをそれぞれ備えるとともに、1つのアドレスに、マクロデータ75を形成する1つの実行命令77(後述するように、コマンドと第1及び第2データとからなる命令)を格納することが可能な容量を有する。
第2軸制御ロジック回路32は、CPU22から送られた実行命令の解析を行う第2命令解析部34と、解析された実行命令に従ってZ軸(軸3)の第3ドライバユニット39cに対する指令パルスを発生させるとともにその指令パルスのカウントを行うZ軸用の第3軸制御部(Z軸制御部)35cと、第3軸制御部35cに対して設けられ、マクロデータ75を書き込むことが可能な第3RAM36cと、解析された実行命令に従ってA軸(軸4)の第4ドライバユニット39dに対する指令パルスを発生させるとともにその指令パルスのカウントを行うA軸用の第4軸制御部(A軸制御部)35dと、第4軸制御部35dに対して設けられ、マクロデータ75を書き込むことが可能な第4RAM36dとを有する。
この場合、第2軸制御ロジック回路32における第2命令解析部34、第3及び第4軸制御部35c,35d、並びに、第3及び第4RAM36c,36dは、上述した第1軸制御ロジック回路31における第1命令解析部33、第1及び第2軸制御部35a,35b、並びに、第1及び第2RAM36a,36bと、駆動制御するモータ38の軸が異なること以外は実質的に同様に形成されている。
また本実施形態において、第1及び第2軸制御ロジック回路31,32の各軸制御部35a〜35dから出力する指令パルスの信号は、外部機器インターフェイス回路25を介して、X軸、Y軸、Z軸及びA軸のそれぞれ対応するドライバユニット39に送られる。また、例えばパルス駆動モータ38がサーボモータである場合は、図示しないエンコーダで検知される回転角や回転速度の情報がフィードバック信号として、各ドライバユニット39から外部機器インターフェイス回路25を介して対応する各軸制御部35a〜35dに戻される。
このような本実施形態のコントローラユニット21において、ROM24に予め保持され、且つ、第1RAM36a〜第4RAM36dに書き込み可能なモーションコントロール用のマクロデータ(「モーションコントロールマクロ」とも言う)75は、図5及び図6に示すように、第1軸制御部35a〜第4軸制御部35dにそれぞれ所要の動作を行わせるために組み合わされた複数の実行命令77の集合体であり、1つのマクロデータ75は、各軸制御部35a〜35dが一連の動作を行うために設定される複数の実行命令77を予め順番に並べてマクロ化することによって形成されている。
このマクロデータ75を形成するそれぞれの実行命令77は、CPU22の処理によってリクエスト信号71から変換される実行命令と同様の構造(フォーマット)を有する。すなわち、マクロデータ75を形成する各実行命令77は、各軸制御部35a〜35dに動作を行わせるための8ビットのコマンドと、16ビットの第1データと、16ビットの第2データとを有する。なお、マクロデータ75を形成する実際の実行命令77は、CPU22で変換される実行命令と同様に、第2データ、第1データ、及びコマンドの順番で構成されている。
すなわち、本実施形態のマクロデータ75は、従来のモーションコントロールシステムでは制御ホスト10の制御プログラム11が予め備える複数の関数の代わりに、それらの複数の関数に対応した複数の実行命令77を順番に並べた集合体により形成されている。この複数の実行命令77の集合体であるマクロデータ75は、コントローラユニット21のROM24の領域に予め記憶されている。
この場合、1つのマクロデータ75を形成する実行命令77の個数は、各軸のパルス駆動モータ38に実行させる動作の内容に応じてそれぞれ設定される。
なお、本実施形態にて、マクロデータ75の書き込み先となる第1RAM36a〜第4RAM36dは、上述のように「0000」番地〜「4095」番地の4096個のアドレスをそれぞれ有しており、1つのアドレスには、1つの実行命令77が書き込まれる。すなわち、各RAMに同時に書き込むことが可能な実行命令77の個数は、最大で4096個であるため、1つのマクロデータ75を形成する実行命令77の個数は、4096個以下に制限される。
また本実施形態では、図6に示したように、X軸用のマクロデータ75、Y軸用のマクロデータ75、Z軸用のマクロデータ75、及びA軸用のマクロデータ75といった4軸分のマクロデータ75が一つにまとめられることにより1枚のシートデータ76が形成されており、4軸分のマクロデータ75が1つに組み合わされたシートデータ76の形態でROM24に保持されている。この1枚のシートデータ76に収容されるX軸用のマクロデータ75、Y軸用のマクロデータ75、Z軸用のマクロデータ75、及びA軸用のマクロデータ75は、各軸で互いに異なる動作を実行させることが可能である。
この場合、ROM24は、4軸分のマクロデータ75が組み合わされた複数枚分のシートデータ76を記憶することが可能な容量を有しており、例えば本実施形態の場合、15枚分のシートデータ76をROM24に記憶することが可能である。なお、本発明において、ROM24に記憶させることが可能なシートデータ76の枚数(すなわち、ROM24の記憶容量)は特に限定されるものではなく、任意に変更することが可能である。
また、1枚のシートデータ76を形成するX軸用のマクロデータ75、Y軸用のマクロデータ75、Z軸用のマクロデータ75、及びA軸用のマクロデータ75は、上述のように4つの軸が互いに異なる動作を行うものの、4つの軸が相互に対応する一連の動作を行うように組み合わせることによって、例えば後述するように、制御ホスト10から送信するリクエスト信号71に従って、ROM24内のマクロデータ75を第1RAM36a〜第4RAM36dのそれぞれに展開して書き込む際に、制御ホスト10からのリクエスト信号71の送信回数を少なくしてマクロデータ75の展開を効率的に行うことができる。更に、4つの軸が相互に対応する動作を行うように予め組み合わされているため、4軸のパルス駆動モータ38の同期精度も高められる。
なお、1枚のシートデータ76に組み合わされる4軸分のマクロデータ75は、互いに対応する動作を行わないものであっても良い。また、1枚のシートデータ76には、4軸分のマクロデータ75ではなく、4軸のうちの1軸分、2軸分、又は3軸分のマクロデータ75のみが収容されていても良い。例えば、第1及び第2シートのシートデータ76には4軸分のマクロデータ75が収容されており、第3シートのシートデータ76には、X軸とY軸の2軸分のマクロデータ75のみが収容されていても良い。
更に、ROM24に複数枚分のシートデータ76を記憶する場合、シートデータ76の1枚1枚毎に、4軸のパルス駆動モータ38に実行させる動作パターンが異なる4軸分のマクロデータ75を持たせることができる。例えばROM24に、第1シート〜第15シートまでの15枚分のシートデータ76を保持する場合では、第1シートのシートデータ76は4つのパルス駆動モータ38が動作パターンAで相互に対応する動作を行う4軸分のマクロデータ75を有し、第2シートのシートデータ76は4つのパルス駆動モータ38が動作パターンBで相互に対応する動作を行う4軸分のマクロデータ75を有することが可能であり、それによって、1つのROM24に、4軸のパルス駆動モータ38について15種類の動作パターンを記憶させておくことが可能となる。
また、1枚のシートデータ76には、上述のようにX軸、Y軸、Z軸、及びA軸の4軸分のマクロデータ75が保持されているが、1枚のシートデータ76の各軸に収容されるマクロデータ75の個数は、1つであっても、複数であっても良い。
例えば図6に本実施形態のシートデータ76の一例を示したように、1枚のシートデータ76は、第1RAM36a〜第4RAM36dに対応して、「0000」番地〜「4095」番地の4096個のアドレス×4軸分の容量を有しており、この1枚のシートデータ76の各軸に、最大で4096個の実行命令77(全体で4096個×4軸分の実行命令77)をそれぞれ保持することが可能である。
更に、このシートデータ76のX軸には、複数の実行命令77をマクロ化した1つのマクロデータ75が保持されており、Y軸、Z軸、及びA軸には、それぞれ、複数の実行命令77をマクロ化したマクロデータ75が2つずつ保持されている。
すなわち、1枚のシートデータ76の各軸には、マクロデータ75を形成する実行命令77の合計の個数が4096個以下となれば、1つのマクロデータ75のみを保持することもできるし、2つ以上の複数のマクロデータ75を保持することもできる。
またこの場合、各軸のマクロデータ75を任意のアドレスの領域に設定することが可能であり、特に、4つの軸が相互に対応した動作を実行するように、各軸のマクロデータ75を互いに対応する所定のアドレスの領域に設定することができる。
例えば図6の一番に上に示したシートデータ76では、制御ホスト10からのリクエスト信号71で4つの軸の動作を同時にスタートさせることが可能なように、各軸のマクロデータ75は、それぞれ「0000」番地のアドレスから実行命令77を保持するように設定されている。
従って、図6のシートデータ76のマクロデータ75を、第1及び第2軸制御ロジック回路31,32の第1RAM36a〜第4RAM36dに対し、図5に示したように展開してそれぞれ書き込み、その後、制御ホスト10から、マクロデータ75を自動実行させるためのリクエスト信号71を送信することによって、各軸制御部35a〜35dは、対応する各RAM36a〜36dに書き込まれたマクロデータ75に従って、実行命令77を「0000」番地のアドレスから同じタイミングで順番に自動実行することができる。それにより、各軸のパルス駆動モータ38a〜38dに所定の動作を安定して行わせることができるとともに、各軸の動作を他の軸と容易に同期させることができる。
またこの場合、図6のシートデータ76のY軸には、2つのマクロデータ75が間隔を開けて設定されている。従って、Y軸の第2パルス駆動モータ38bは、他の軸のパルス駆動モータ38と同じタイミングで、最初のマクロデータ75に従って所定の動作をスタートさせることができ、更に、最初のマクロデータ75の動作が終了した後に所定の時間が経過してから、次のマクロデータ75に従って所定の動作を実行することが可能となる。
更に、図6のシートデータ76のZ軸及びA軸には、2つのマクロデータ75が連続的に設定されている。従って、Z軸及びA軸の第3及び第4パルス駆動モータ38c,38dは、X軸及びY軸の第1及び第2パルス駆動モータ38a,38bと同じタイミングで、最初のマクロデータ75に従って所定の動作をスタートさせることができ、更に、最初のマクロデータ75の動作が終了した直後に次のマクロデータ75に従って所定の動作を連続的に実行することが可能となる。
また図1に示したように、本実施形態のモーションコントロールシステム1には、制御ホスト10の制御下に、第1スレーブ20の4軸コントローラユニット21の他に、第2スレーブ40となるコントローラドライバユニット41と、第3スレーブ60となるデジタルI/Oユニット61とが接続されている。
第2スレーブ40のコントローラドライバユニット41は、第5パルス駆動モータ38e及び第6パルス駆動モータ38fを駆動させるためのコントローラ機能とドライバ機能とを一体的に備えており、コントローラ機能を発揮するコントローラ部分については、第1スレーブ20の4軸コントローラユニット21を2軸用に変更すること以外は、第1スレーブ20のコントローラユニット21と実質的に同様に形成されている。
すなわち、第2スレーブ40のコントローラドライバユニット41にも、複数のマクロデータ75を保持する図示しないROMと、そのROM内のマクロデータ75を書き込むことが可能な図示しない第5RAM及び第6RAMとが設けられている。
第3スレーブ60のデジタルI/Oユニット61には、各種のセンサやエアシリンダなどの外部機器62が接続されており、制御ホスト10からのリクエスト信号71を受信して外部機器62に信号を出力する機能や、外部機器62からの信号を入力して制御ホスト10に送信する機能を有する。
また、デジタルI/Oユニット61に接続されるセンサ等の外部機器62は、機械設備等の制御対象の状態を検出するとともに、その検出した情報をデジタルI/Oユニット61に入力し、また、デジタルI/Oユニット61からの出力信号に応答して制御対象を作動させる動作を行うことが可能である。この場合、本実施形態のデジタルI/Oユニット61では、外部機器62の接続を32点まで拡張することが可能である。なお、本発明において、外部機器62の接続点数は特に限定されるものではない。
次に、本実施形態のモーションコントロールシステム1における動作制御について説明する。なお、本実施形態では、第1スレーブ20の4軸コントローラユニット21の制御について主に説明することとし、制御の仕方が第1スレーブ20と実質的に同様となる第2スレーブ40のコントローラドライバユニット41、及び、パルス駆動モータ38が接続されていない第3スレーブ60のデジタルI/Oユニット61の制御に関する説明については省略する。
本実施形態のモーションコントロールシステム1では、制御ホスト10及び4軸コントローラユニット21の電源を入れると、先ず、コントローラユニット21の第1RAM36a〜第4RAM36dを自動的に初期化する。一方、コントローラユニット21のROM24は、コントローラユニット21の電源が切られても、そこに記憶されているデータが消去されないため、ROM24には、予め記憶させておいた図6に示すような第1シート〜第4シートの4枚分のシートデータ76が保存されているとともに、それぞれのシートデータ76には、X軸、Y軸、Z軸及びA軸の4軸分のマクロデータ75が収容されている。
なお、ROM24内のシートデータ76やマクロデータ75については、制御ホスト10の制御プログラム11で所定の関数を実行することにより、ROM24に新たなシートデータ76を追加すること、既に保持されているシートデータ76やマクロデータ75の一部又は全部を変更すること、及び、既に保持されているシートデータ76を削除すること等の処理を行うことができる。
第1RAM36a〜第4RAM36dを初期化した後、制御ホスト10は、制御プログラム11にて、所要のシートデータ76における4軸分のマクロデータ75を第1RAM36a〜第4RAM36dに書き込むようにする関数を実行する。具体的には、ROM24に保持している第1シート〜第4シートの4枚分のシートデータ76から、これから実行する動作パターンのマクロデータ75を備える所要の1枚のシートデータ76(例えば第1シートのシートデータ76)を選択するとともに、その選択したシートデータ76に収容されているX軸、Y軸、Z軸及びA軸の各マクロデータ75を、第1RAM36a〜第4RAM36dに展開して書き込むように指示する関数を実行する。
これにより、制御ホスト10は、関数を実行した制御プログラム11からデバイスドライバ12に内部信号が送られ、更に、デバイスドライバ12にてマクロデータ75の書き込みを指示するリクエスト信号71(図3を参照)を生成し、そのリクエスト信号71をデバイスドライバ12から送信する。
デバイスドライバ12から送信されたリクエスト信号71は、シリアル通信インターフェイスユニット70を経由して、第1スレーブ20〜第3スレーブ60の各ユニットに一斉に送られる。このとき、4軸コントローラユニット21は、そのリクエスト信号71を通信制御部23で受信し、更に、その受信したリクエスト信号71をCPU22で解析する。
コントローラユニット21のCPU22は、そのリクエスト信号71が4軸コントローラユニット21に対する信号であることを確認するとともに、そのリクエスト信号71の内容を解析する。更に、CPU22は、受信したリクエスト信号71のリクエストコード71d及びリクエストデータ71eの内容に従って、ROM24に保持されている4枚のシートデータ76から、指定された所要の1枚のシートデータ76(例えば第1シートのシートデータ76)を読み出し、更に、読み出したシートデータ76に収容されているX軸、Y軸、Z軸及びA軸の4軸分のマクロデータ75を、それぞれ対応する第1RAM36a〜第4RAM36dに展開して書き込む処理を行う。
その後、第1RAM36a〜第4RAM36dへのマクロデータ75の書き込みが終了すると、CPU22は、マクロデータ75の書き込みが終了した内容のアンサーバック信号72(図4を参照)を生成して通信制御部23から送信する。このアンサーバック信号72は、4軸コントローラユニット21から、シリアル通信インターフェイスユニット70を経由して、制御ホスト10に送られる。
制御ホスト10では、送られてきたアンサーバック信号72をデバイスドライバ12で受信して解析することによって、エラーが生じずにマクロデータ75の書き込み処理が正常に完了したことを確認でき、またそれによって、制御ホスト10から次のリクエスト信号71を送ることが可能となる。
続いて、制御ホスト10は、第1RAM36a〜第4RAM36dに書き込まれたマクロデータ75に従って、第1軸制御部35a〜第4軸制御部35dが、例えば「0000」番地から所定番地までのアドレスの実行命令77を順番に自動実行するように指示する関数を実行し、その自動実行を指示するリクエスト信号71をデバイスドライバ12から送信する。
このリクエスト信号71を、シリアル通信インターフェイスユニット70を経由して、4軸コントローラユニット21が受信することにより、同コントローラユニット21のCPU22は、そのリクエスト信号71が4軸コントローラユニット21に対する信号であることを確認するとともに、そのリクエスト信号71の内容を解析する。
更に、CPU22は、受信したリクエスト信号71をコマンドと第1及び第2データとからなる実行命令に変換し、その変換した実行命令を第1及び第2軸制御ロジック回路31,32に送るとともに、制御ホスト10に対するアンサーバック信号72を生成して通信制御部23から送信する。
また、実行命令を受けた第1及び第2軸制御ロジック回路31,32では、第1及び第2命令解析部33,34でその実行命令を解析するとともに、それぞれのRAMインターフェイス処理によって、第1軸制御部35a〜第4軸制御部35dに、第1RAM36a〜第4RAM36dに書き込まれたマクロデータ75に従って、「0000」番地のアドレスから順番に実行命令77を自動的に実行する処理を行わせることができる。
具体的には、第1軸制御部35a〜第4軸制御部35dは、第1RAM36a〜第4RAM36dに書き込まれたマクロデータ75の「0000」番地のアドレスから実行命令77を読み出して実行し、更に、「0000」番地の実行命令77を実行した直後に、そのアドレスの番地+1のアドレス(すなわち、「0001」番地のアドレス)から実行命令77を読み出して実行し、以下、これを繰り返す。
これによって、第1軸制御部35a〜第4軸制御部35dは、それぞれのRAMインターフェイス機能による自動実行処理中は、制御ホスト10とコントローラユニット21との間でリクエスト信号71やアンサーバック信号72の送受信を行わずに、第1RAM36a〜第4RAM36dに書き込まれたマクロデータ75に従って実行命令77をそれぞれ順番に読み出して自動的に実行することができ、またそれによって、ユーザーの設定条件で指令パルスを発生させて、第1パルス駆動モータ38a〜第4パルス駆動モータ38dに所要の動作を行わせることができる。
そして、第1及び第2軸制御ロジック回路31,32は、各RAMインターフェイス処理によって、第1RAM36a〜第4RAM36dに書き込まれたマクロデータ75が所定番地のアドレスの実行命令77まで行われると、マクロデータ75の実行を自動的に停止させることができる。
なお、本実施形態では、例えば実行停止のコマンドを備えた実行命令77をマクロデータ75に含めることにより、マクロデータ75の自動実行を、実行停止のコマンドによって終了させることもでき、更に、制御ホスト10から実行停止のリクエスト信号71を送信することによって終了させることもできる。
このように、本実施形態では、第1及び第2軸制御ロジック回路31,32の第1軸制御部35a〜第4軸制御部35dにマクロデータ75の実行命令77をそれぞれ自動実行させ、且つ自動停止させることにより、コントローラユニット21側において、制御ホスト10との通信を行わずに、各パルス駆動モータ38の一連の動作を軸制御部35a〜35dごとに自動的に行わせて完結させることができる。これによって、各軸制御部35a〜35dが独立して指令パルスの発生等の処理を行うことがきるため、軸制御部ごとの処理が円滑になるとともに、各パルス駆動モータ38の動作も安定させることができる。
ここで、本実施形態のモーションコントロールシステム1と、図11に示した従来のモーションコントロールシステムとの違いを具体的に説明すると、例えば従来のモーションコントロールシステムにおいては、本実施形態のような一連の動作を4軸の各パルス駆動モータに行わせるために、制御ホストとコントローラユニット81との間の通信を、本実施形態のマクロデータ75を形成する実行命令77の個数以上の回数で行う必要があるとともに、その通信を行うたびに、制御ホストやコントローラユニット81においてリクエスト信号及びアンサーバック信号の処理を行ったり、実行命令を第1及び第2軸制御ロジック回路91,92に書き込む処理を行ったりしなければならなかった。このため、前述したように、制御ホストへの負担の増大、実行処理時間の制約、システムの高速化の限界等の問題があった。
これに対して、本実施形態のモーションコントロールシステム1では、上述のように、コントローラユニット21のROM24に、制御プログラム11の関数に対応する複数の実行命令77を備えたマクロデータ75を予め記憶させておくとともに、そのROM24に記憶したマクロデータ75を第1RAM36a〜第4RAM36dに書き込んで自動的に順番に実行させることができる。
これにより、本実施形態では、制御ホスト10とコントローラユニット21との間の通信回数を従来よりも少なくして、マクロデータ75に従った動作を完結させることができる。その上、第1スレーブ20や第2スレーブ40を動作させるための制御プログラム11の様々な関数を、実行命令77として、第1スレーブ20のコントローラユニット21に配されるROM24や、第2スレーブ40のユニットに配される図示しないROM等に分散して保持させることができる。
すなわち、本実施形態では制御プログラム11の複数の関数に対応した複数の実行命令77からなるマクロデータ75を、第1スレーブ20のROM24に保持しているため、従来に比べて、制御プログラム11をシンプルに構築することが可能となるとともに、制御プログラム11での関数実行による制御ホスト(PC)10への負担を低減することができる。
また、制御ホスト10とコントローラユニット21の間の通信回数を大幅に減少できることにより、通信時間の低減や、制御ホスト10やコントローラユニット21における内部処理時間の低減を図ることができる。このため、制御ホスト10の負担を更に低減して、制御ホスト10の処理が遅くなることや、制御ホスト10及びコントローラユニット21の処理時間にバラつきや誤差を生じさせることを防止でき、更には、コントローラユニット21のリアルタイム性や4軸間の同期精度を向上させることができ、また、システムの高速化や機械装置の性能向上などを容易に実現できる。
更に、本実施形態のモーションコントロールシステム1では、上述のように、コントローラユニット21のROM24に、第1シート〜第4シートの4枚分のシートデータ76が保持されている。このため、例えば機械装置の処理対象物の変更等によって第1パルス駆動モータ38a〜第4パルス駆動モータ38dの動作パターンを変更する場合には、第1RAM36a〜第4RAM36dに既に書き込まれているマクロデータ75(例えば、第1シートのマクロデータ75)を、その他のシートのマクロデータ75(例えば、第2シートのマクロデータ75)に置き換える(上書きする)ことが可能である。
このように第1RAM36a〜第4RAM36dに書き込むマクロデータ75のシートデータ76を切り替えることによって、第1パルス駆動モータ38a〜第4パルス駆動モータ38dが行う一連の動作パターンを容易に変更でき、また、制御ホスト10の制御プログラム11自体を変更する必要がない。更に、第1スレーブ20のコントローラユニット21内でシートデータ76の切り替えが行われるだけであるため、その第1スレーブ20の変更に伴う第2スレーブ40のコントローラドライバユニット41や、第3スレーブ60のデジタルI/Oユニット61への影響をなくす(又は小さくする)ことができる。
更に本実施形態において、第1パルス駆動モータ38a〜第4パルス駆動モータ38dが行う動作パターンを部分的に変更する場合(例えば、X軸の第1パルス駆動モータ38a及びY軸の第2パルス駆動モータ38bの回転速度を部分的に変更する場合)には、制御ホスト10の制御プログラム11を用いて、コントローラユニット21のROM24に保存されているマクロデータ75の所要部分のみを書き換えることによって対応することが可能である。或いは、ROM24に保存されているマクロデータ75は書き換えずに、対応するRAM(例えば第1及び第2RAM36a,36b)に書き込まれたマクロデータ75の所要部分のみを書き換えることによって対応することも可能である。
このように、変更が必要となるROM24内の又は各RAM36a,36b内のマクロデータ75のみを書き換えることによって、機械装置の動作を一部変更するといったマイナーチェンジを、例えば動作パターンを変更しない軸(例えばZ軸及びA軸)のマクロデータ75を変更せずに、また、制御ホスト10の制御プログラム11を変更せずに容易に行うことができる。更には、第2スレーブ40のコントローラドライバユニット41や、第3スレーブ60のデジタルI/Oユニット61への影響をなくす(又は小さくする)こともできる。
このように本実施形態のモーションコントロールシステム1では、第1RAM36a〜第4RAM36dに展開するシートデータ76の切り替えや、制御ホスト10の制御プログラム11によるROM24又は第1〜第4RAM36a〜36d内のマクロデータ75の書き換え等によって、制御ホスト10の制御プログラム11を変更することなく、また、第2スレーブ40及び第3スレーブ60へ影響を与えることなく(又は与える影響を小さくして)、第1〜第4パルス駆動モータ38a〜38dにおける動作パターンの変更や動作のマイナーチェンジ等を容易に行うことができる。
従って、本実施形態では、例えば一部の動作を変更する場合でも制御プログラムの変更が必要となる従来のモーションコントロールシステムに比べて、動作パターンの変更や動作のマイナーチェンジに要する労力、費用、時間を大きく低減でき、また、制御プログラム11にバグや欠陥等が生じるリスクを回避して、マイナーチェンジ等をローリスクで迅速に且つ低コストで行うことが可能となる。
なお、本実施形態では、第1軸制御部35a〜第4軸制御部35dがそれぞれのRAMインターフェイス機能によってマクロデータ75の自動実行を行う際に、マクロデータ75に従って「0000」番地のアドレスから順番に実行命令77を自動実行する場合について説明している。
しかし、本発明において、第1軸制御部35a〜第4軸制御部35dがマクロデータ75の自動実行をスタートさせるアドレスの番地は、制御ホスト10の制御プログラム11で任意に設定することができ、例えば第1軸制御部35a〜第4軸制御部35dを、第1RAM36a〜第4RAM36dに書き込まれたマクロデータ75について、アドレスの途中の任意の番地(例えば「1000」番地)の実行命令77から順番に自動実行させることも可能である。
また、第1軸制御部35a〜第4軸制御部35dにマクロデータ75の自動実行を行わせる場合、第1軸制御部35a〜第4軸制御部35dに、第1RAM36a〜第4RAM36dに書き込まれたマクロデータ75について、アドレスが互いに同じ番地の実行命令77から順番に自動実行させるだけでなく、互いに異なる番地の実行命令77から順番に自動実行させることも可能である。
更に、本実施形態では、ROM24に保持されているシートデータ76のマクロデータ75を第1RAM36a〜第4RAM36dに展開して書き込む際に、1枚のシートデータ76から第1RAM36a〜第4RAM36dにマクロデータ75を展開して書き込む場合について説明している。
しかし、本発明では、ROM24内のシートデータ76からマクロデータ75を第1RAM36a〜第4RAM36dに展開して書き込む場合、第1軸制御部35a〜第4軸制御部35dごとに、複数のシートデータ76の中から所要のマクロデータ75を選択して、対応する第1RAM36a〜第4RAM36dに書き込むこともできる。例えば、第1RAM36aには、第1シートのシートデータ76に収容されているX軸のマクロデータ75を書き込み、第2RAM36b〜第4RAM36dには、第2シートのシートデータ76に収容されている各軸のマクロデータ75を展開して書き込むことも可能である。
更にまた、本実施形態では、第1〜第4パルス駆動モータ38a〜38dに所要の動作を行わせるために、上述のようにROM24に保持されているマクロデータ75を第1RAM36a〜第4RAM36dに書き込んで自動実行する方法の他に、従来と同様に、制御ホスト10の制御プログラム11にてその動作を行わせるための複数の関数を実行してリクエスト信号71をコントローラユニット21に送り、そのリクエスト信号71をコントローラユニット21のCPU22で実行命令に変換して、実行命令を第1及び第2軸制御ロジック回路31,32に順次書き込む方法を採用することが可能である。
すなわち、本実施形態では、第1〜第4パルス駆動モータ38a〜38dに所要の動作を行わせる場合に、ROM24に保持されているマクロデータ75を、第1RAM36a〜第4RAM36dに書き込んで自動実行する方法と、制御ホスト10の制御プログラム11で複数の関数を順番に実行する方法とから選択することが可能である。
更にこの場合、制御ホスト10の制御プログラム11で複数の関数を順番に実行して第1〜第4軸制御部35a〜35dを制御することによって、第1〜第4パルス駆動モータ38a〜38dに所要の動作を行わせることが可能であり、また、複数の関数を実行して第1RAM36a〜第4RAM36dに複数の実行命令77を書き込んで保存してから、第1RAM36a〜第4RAM36dに保存した複数の実行命令77をRAMインターフェイス処理で順番に自動実行することによって、第1〜第4パルス駆動モータ38a〜38dに所定の動作を行わせることも可能である。また本実施形態では、RAM36a〜36dの実行命令77を自動実行中に、制御ホスト10の制御プログラム11によって、その後に続くRAM36a〜36dの実行命令77を書き込むことも可能である。
このように、本実施形態のモーションコントロールシステム1では、第1〜第4パルス駆動モータ38a〜38dに所要の動作を行わせる手段として、ROM24に保持するマクロデータ75と、制御ホスト10の制御プログラム11に持たせる関数とに互換性を持たせて、自由に選択することが可能となる。これにより、モーションコントロールシステム1の設計に大きな自由度を持たせることができ、それによって、ユーザーから要求される仕様に柔軟に対応することが可能となる。
以下に、上述した実施形態に係るモーションコントロールシステム1を用いて、第1スレーブ20のコントローラユニット21に接続されたX軸のパルス駆動モータ38aを、図7に示した所定の動作パターンで動作させる実施例を示す。更に、比較のために、図11に示したコントローラユニット81を有する従来のモーションコントロールシステムを用いて、X軸のパルス駆動モータを同様の動作パターンで動作させる比較例を示すことにより、本発明で得られる効果を明確に説明する。
ここで、図7に示したX軸のパルス駆動モータ38aの動作パターンについて説明すると、この動作パターンは、X軸のモータ38aに4回の台形駆動を実行させるものであり、先ず、第1パルス出力周期として500Hzで所定回数の第1パルス出力を行い、その後、1000Hzの速度でモータの台形駆動動作を開始し、5000Hzの最高速度まで100ms/kHzの割合で加速する。更に、モータを所定の位置まで最高速度で回転させた後、1000Hzの終了速度まで100ms/kHzの割合で減速することによって、1回分の台形駆動を終了させる。そして、このような台形状の駆動を4回連続して行った後に停止させる。
(実施例)
本実施例のモーションコントロールシステム1では、図2に示したコントローラユニット21のROM24に、X軸のパルス駆動モータ38aに図7に示した動作パターンを行わせるためのマクロデータ75が予め保持されている。ここで、X軸用のマクロデータ75の内容を図8に示す。
なお、図8のマクロデータ75はX軸の動作を行うものであり、その他のY軸、Z軸及びA軸についても、図示は省略するが所定の動作パターンを行わせるマクロデータ75がある。これらのX軸、Y軸、Z軸及びA軸の4軸分のマクロデータ75が1つのシートデータ76に収容されてROM24に保持されている。
X軸のマクロデータ75は、コマンドと第1及び第2データからなる実行命令77として、以下のような内容をもつ複数の実行命令77が、「0000」番地のアドレスから、「0010」番地のアドレスまで順番に書き込まれている。
具体的に説明すると、「0000」番地のアドレスには、第1パルスの出力周期を設定するための実行命令77が書き込まれており、「0001」番地のアドレスには、速度データの倍率と最高速度を設定するための実行命令77が書き込まれている。以下、「0002」番地〜「0010」番地の各アドレスには、開始速度と終了速度を設定するための実行命令77(アドレス「0002」)、直線加速割合と直線減速割合を設定するための実行命令77(アドレス「0003」)、指定した相対位置までパルス出力を実行する(言い換えると、1回の台形駆動を行う)ための4つの実行命令77(アドレス「0004」〜「0007」)、自動実行の終了を準備するための実行命令77(アドレス「0008」)、自動実行を終了するための実行命令77(アドレス「0009」)、及び、即時停止のための実行命令77(アドレス「0010」)が書き込まれている。
そして、本実施例のモーションコントロールシステム1において、実際に図7に示した動作パターンをパルス駆動モータ38に行わせる場合、図9に示した関数の内容が制御ホストの制御プログラムで実行される。具体的に説明すると、先ず、制御ホスト10において、(1)番目の関数として、ROM24から上述した所定のシートデータ76を読み出し、そのシートデータ76に収容されている各軸のマクロデータ75を第1RAM36a〜第4RAM36dに展開して書き込むように指示する関数を制御プログラム11で実行し、1回目のリクエスト信号71をデバイスドライバ12から送信する。送信されたリクエスト信号71は、シリアル通信インターフェイスユニット70を介して、第1スレーブ20〜第3スレーブ60の各ユニットに一斉に送られる。
次に、コントローラユニット21は、1回目のリクエスト信号71を通信制御部23で受信し、更に、その受信したリクエスト信号71をCPU22で解析する。更に、CPU22は、受信したリクエスト信号71の内容に従って、ROM24から所定のシートデータ76を読み出し、そのシートデータ76に収容されている4軸のマクロデータ75を、それぞれ対応する第1RAM36a〜第4RAM36dに展開して書き込む処理を行う。その後、コントローラユニット21は、マクロデータ75の書き込みが終了した内容のアンサーバック信号72を生成し、シリアル通信インターフェイスユニット70を介して制御ホスト10に送信する。
続いて、アンサーバック信号72を受信した制御ホスト10は、(2)番目の関数として、第1RAM36a〜第4RAM36dに書き込まれたマクロデータ75に従って、「0000」番地のアドレスから実行命令77を順番に自動実行するように指示する関数を制御プログラム11で実行し、2回目のリクエスト信号71をデバイスドライバ12から送信する。
2回目のリクエスト信号71を受信したコントローラユニット21のCPU22は、受信したリクエスト信号71を、コマンドと第1及び第2データとからなる実行命令に変換し、その変換した実行命令を第1及び第2軸制御ロジック回路31,32に送るとともに、制御ホスト10に対するアンサーバック信号72を生成して通信制御部23から送信する。
また、実行命令を受けた第1軸制御ロジック回路31では、第1命令解析部33でその実行命令77を解析するとともに、RAMインターフェイス機能によって、第1軸制御部35a及び第2軸制御部35bに、第1RAM36a及び第2RAM36bに書き込まれたマクロデータ75に従ってアドレス「0000」番地から順番に実行命令77を自動的に実行する処理を行わせる。
これによって、第1軸制御部35aは、第1RAM36aのマクロデータ75に従って指令パルスを所定の条件で出力するとともに、指令パルスのカウントを行うができ、それにより、X軸のパルス駆動モータ38aを、図7に示した台形状の動作パターンで駆動させることができる。
(比較例)
図11に示したコントローラユニット81を備える従来のモーションコントロールシステムにおいて、図7に示した動作パターンをX軸のパルス駆動モータに行わせる場合について、図10を参照しながら説明する。ここで、図10は、制御ホストの制御プログラムが実行する関数の内容を説明する図である。
先ず、制御ホストの制御プログラムで、(1)番目の第1パルスの出力周期を設定するための関数を実行し、1回目のリクエスト信号71をデバイスドライバから送信する。送信されたリクエスト信号71は、シリアル通信インターフェイスユニットを介して、第1スレーブ〜第3スレーブの各ユニットに一斉に送られる。
コントローラユニット81は、1回目のリクエスト信号71を通信制御部83で受信し、更に、その受信したリクエスト信号71をCPU82で解析する。更に、CPU82は、受信したリクエスト信号71をコマンドと第1及び第2データとからなる実行命令に変換し、その変換した実行命令を第1及び第2軸制御ロジック回路91,92に送って各軸制御部95a〜95dに書き込むとともに、制御ホストに対するアンサーバック信号72を生成して通信制御部83から送信する。
次に、アンサーバック信号72を受信した制御ホストは、(2)番目の速度データの倍率と最高速度を設定するための関数を制御プログラムで実行し、2回目のリクエスト信号71をデバイスドライバから送信する。また、コントローラユニット81は2回目のリクエスト信号71を受信し、その受信したリクエスト信号71を実行命令に変換して第1及び第2軸制御ロジック回路91,92の各軸制御部95a〜95dに書き込むとともに、アンサーバック信号72を生成して通信制御部83から送信する。
以下同じように、制御ホストは、アンサーバック信号72の受信をまって、(3)番目の開始速度と終了速度を設定するための関数、(4)番目の直線加速割合と直線減速割合を設定するための関数、(5)番目の指定した相対位置までパルス出力を実行して1回目の台形駆動を行うための関数、(6)番目の指定した相対位置までパルス出力を実行して2回目の台形駆動を行うための関数、(7)番目の指定した相対位置までパルス出力を実行して3回目の台形駆動を行うための関数、(8)番目の指定した相対位置までパルス出力を実行して4回目の台形駆動を行うための関数を制御プログラムで順番に実行するとともに、制御プログラムで関数を実行する毎にリクエスト信号71をコントローラユニット81に送信する。
また、コントローラユニット81では、リクエスト信号71を通信制御部83で受信する毎に、CPU82によるリクエスト信号71の解析、受信したリクエスト信号71から実行命令への変換、変換した実行命令の書き込み、受信したリクエスト信号71に対するアンサーバック信号72の送信といった処理が行われる。
すなわち、従来のモーションコントロールシステムで図7に示した動作パターンをX軸のパルス駆動モータに行わせるためには、制御ホストとコントローラユニット81間におけるリクエスト信号71及びアンサーバック信号72の送受信を合計8回行う必要があるとともに、コントローラユニット81内では、リクエスト信号71を受信するたびに、同じような内部処理を繰り返して行う必要がある。
以上のような実施例及び比較例を比べると、X軸のパルス駆動モータ38に、図7に示した同じ動作パターンを実行させる場合に、実施例に係るモーションコントロールシステム1では、比較例に係るモーションコントロールシステムに比べ、制御ホスト10とコントローラユニット21間の通信回数及び通信時間を減少させるとともに、制御ホスト10への負担を大幅に低減させることができる。更に、コントローラユニット21の第1軸制御部35aの動作を、RAMインターフェイス機能によってマクロデータ75に従って完結させることができるため、第1軸制御部35aによる指令パルスの発生を安定して円滑に行うことができる。
しかも、上述の実施例及び比較例では、図7に示した比較的シンプルな動作パターンをX軸のモータに実行させる場合について説明しているが、実際のモーションコントロールシステムでは、4軸全てに所要の動作パターンを実行させることから、1軸のみについて説明した上述の実施例の場合よりも上述した本発明の効果がより顕著に表れる。その上、例えば図7よりも複雑な動作パターンでモータを駆動させる場合には、上述した効果がより有効的に発揮される。
1 モーションコントロールシステム
10 制御ホスト
11 制御プログラム
12 デバイスドライバ
20 第1スレーブ
21 コントローラユニット(4軸コントローラユニット)
22 CPU
23 通信制御部
24 ROM
25 外部機器インターフェイス回路
26 バス(データバス)
27 通信インターフェイス回路
31 第1軸制御ロジック回路
32 第2軸制御ロジック回路
33 第1命令解析部
34 第2命令解析部
35a 第1軸制御部(X軸制御部)
35b 第2軸制御部(Y軸制御部)
35c 第3軸制御部(Z軸制御部)
35d 第4軸制御部(A軸制御部)
36a 第1RAM
36b 第2RAM
36c 第3RAM
36d 第4RAM
38 パルス駆動モータ
38a 第1パルス駆動モータ
38b 第2パルス駆動モータ
38c 第3パルス駆動モータ
38d 第4パルス駆動モータ
38e 第5パルス駆動モータ
38f 第6パルス駆動モータ
39 ドライバユニット
39a 第1ドライバユニット
39b 第2ドライバユニット
39c 第3ドライバユニット
39d 第4ドライバユニット
40 第2スレーブ
41 コントローラドライバユニット
60 第3スレーブ
61 デジタルI/Oユニット
62 外部機器
70 通信インターフェイスユニット
71 リクエスト信号
71a リクエスト長
71b スレーブアドレス
71c スレーブタイプ
71d リクエストコード
71e リクエストデータ
72 アンサーバック信号
72a アンサー長
72b エラー判定結果
72c アンサーバックデータ
75 マクロデータ
76 シートデータ
77 実行命令

Claims (9)

  1. パルス駆動モータ用の1つ又は複数のモータドライバに対して指令パルスを出力する少なくとも1つのコントローラユニットと、制御プログラムを備える制御ホストと、前記制御ホスト及び前記コントローラユニット間の通信を行う通信インターフェイスユニットとを有し、前記制御ホストが、前記制御プログラムの関数の実行により前記コントローラユニットに対するリクエスト信号を送信し、前記コントローラユニットが、前記リクエスト信号に基づいて前記指令パルスを出力することにより、前記パルス駆動モータの動作制御を行うモーションコントロールシステムであって、前記コントローラユニットは、前記リクエスト信号から実行命令を変換するCPUと、前記実行命令に従って前記指令パルスを発生させる1つ又は複数の軸制御ロジック回路とを有するモーションコントロールシステムにおいて、
    前記コントローラユニットはROMを有するとともに、前記ROMに、複数の実行命令を予め備える少なくとも1つのマクロデータが保持され、
    前記軸制御ロジック回路は、前記制御ホストから指定される前記ROM内の前記マクロデータを書き込むことが可能なRAMを備え、且つ、前記制御ホストからの前記リクエスト信号により、前記RAMに書き込まれた前記マクロデータに従って複数の前記実行命令を順番に自動実行するRAMインターフェイス機能を備えてなる、
    ことを特徴とするモーションコントロールシステム。
  2. 前記軸制御ロジック回路は、変換された前記実行命令を解析する命令解析部と、前記指令パルスを発生させる1つ又は複数の軸制御部とを備え、
    前記RAMは、各軸制御部に1つずつ設けられてなる、
    請求項1記載のモーションコントロールシステム。
  3. 前記RAMは、前記実行命令をそれぞれ書き込むことが可能な複数のアドレスを有し、
    前記軸制御ロジック回路は、前記RAMインターフェイス機能により、前記リクエスト信号により指定される所定のアドレスの前記実行命令から前記マクロデータを自動実行してなる、
    請求項1又は2記載のモーションコントロールシステム。
  4. 前記RAMは、複数の前記マクロデータを書き込むことが可能な容量を有してなる請求項1〜3のいずれかに記載のモーションコントロールシステム。
  5. 前記ROMは、複数の前記RAMにそれぞれ対応して書き込まれる複数の前記マクロデータを備えた1枚又は複数枚のシートデータを保持してなる請求項1〜4のいずれかに記載のモーションコントロールシステム。
  6. 前記コントローラユニットは、複数の前記RAMに、前記リクエスト信号により指定される1枚の前記シートデータから、対応する前記マクロデータを展開してそれぞれ書き込むことが可能とされてなる請求項5記載のモーションコントロールシステム。
  7. 前記コントローラユニットは、複数の前記RAMに、前記リクエスト信号により指定される2枚以上の前記シートデータから、指定される前記マクロデータを組み合わせてそれぞれ書き込むことが可能とされてなる請求項5記載のモーションコントロールシステム。
  8. 前記制御ホストは、前記ROMに保持されている前記マクロデータの少なくとも一部を、前記制御プログラム又は専用の書き換えプログラムで書き換えることが可能とされてなる請求項1〜7のいずれかに記載のモーションコントロールシステム。
  9. 前記制御ホストは、前記RAMに書き込まれた前記マクロデータの少なくとも一部を、前記制御プログラム又は専用の書き換えプログラムで書き換えることが可能とされてなる請求項1〜8のいずれかに記載のモーションコントロールシステム。
JP2015092046A 2015-04-28 2015-04-28 モーションコントロールシステム Pending JP2016207169A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015092046A JP2016207169A (ja) 2015-04-28 2015-04-28 モーションコントロールシステム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015092046A JP2016207169A (ja) 2015-04-28 2015-04-28 モーションコントロールシステム

Publications (1)

Publication Number Publication Date
JP2016207169A true JP2016207169A (ja) 2016-12-08

Family

ID=57487273

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015092046A Pending JP2016207169A (ja) 2015-04-28 2015-04-28 モーションコントロールシステム

Country Status (1)

Country Link
JP (1) JP2016207169A (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102121001B1 (ko) * 2020-01-06 2020-06-09 주식회사 델타팜 백업 통신을 지원하는 다축 모션 제어 시스템

Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4878002A (en) * 1988-10-27 1989-10-31 Advanced Engineering Systems, Operations & Products, Inc. Multi-axis DSP-based parallel processing servo controller for machine tools and robots
JPH02278306A (ja) * 1989-04-19 1990-11-14 Fanuc Ltd 数値制御装置
JPH0816220A (ja) * 1994-06-30 1996-01-19 Komatsu Ltd プログラマブルシーケンスコントローラ
JPH11129144A (ja) * 1997-10-28 1999-05-18 Toshiba Mach Co Ltd Nc工作機械の制御装置
US5963003A (en) * 1998-04-22 1999-10-05 Allen-Bradley Company, Llc Method and apparatus for asynchronous multi-axis servo path planning
JP2001306150A (ja) * 2000-04-18 2001-11-02 Nippon Pulse Motor Co Ltd 軸制御モータの動作態様を設定する動作設定テーブル及びその動作設定テーブルにより軸制御モータを制御する制御ボード。
JP2002132307A (ja) * 2000-10-18 2002-05-10 Yaskawa Electric Corp モーション制御装置およびプログラムエディタ
JP2004078895A (ja) * 2002-06-17 2004-03-11 Sanyo Electric Co Ltd 分散制御システムおよび分散制御方法
US20060100723A1 (en) * 2004-10-29 2006-05-11 Dynacity Technology (Hk) Limited Modular multi-axis motion control and driving system and method thereof
JP2013073351A (ja) * 2011-09-27 2013-04-22 Fuji Mach Mfg Co Ltd サーボドライブシステム
JPWO2013099032A1 (ja) * 2011-12-28 2015-04-30 株式会社安川電機 モーションコントローラ及びモータ制御システム

Patent Citations (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4878002A (en) * 1988-10-27 1989-10-31 Advanced Engineering Systems, Operations & Products, Inc. Multi-axis DSP-based parallel processing servo controller for machine tools and robots
JPH02278306A (ja) * 1989-04-19 1990-11-14 Fanuc Ltd 数値制御装置
JPH0816220A (ja) * 1994-06-30 1996-01-19 Komatsu Ltd プログラマブルシーケンスコントローラ
JPH11129144A (ja) * 1997-10-28 1999-05-18 Toshiba Mach Co Ltd Nc工作機械の制御装置
US5963003A (en) * 1998-04-22 1999-10-05 Allen-Bradley Company, Llc Method and apparatus for asynchronous multi-axis servo path planning
JP2001306150A (ja) * 2000-04-18 2001-11-02 Nippon Pulse Motor Co Ltd 軸制御モータの動作態様を設定する動作設定テーブル及びその動作設定テーブルにより軸制御モータを制御する制御ボード。
JP2002132307A (ja) * 2000-10-18 2002-05-10 Yaskawa Electric Corp モーション制御装置およびプログラムエディタ
JP2004078895A (ja) * 2002-06-17 2004-03-11 Sanyo Electric Co Ltd 分散制御システムおよび分散制御方法
US20060100723A1 (en) * 2004-10-29 2006-05-11 Dynacity Technology (Hk) Limited Modular multi-axis motion control and driving system and method thereof
JP2013073351A (ja) * 2011-09-27 2013-04-22 Fuji Mach Mfg Co Ltd サーボドライブシステム
JPWO2013099032A1 (ja) * 2011-12-28 2015-04-30 株式会社安川電機 モーションコントローラ及びモータ制御システム

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102121001B1 (ko) * 2020-01-06 2020-06-09 주식회사 델타팜 백업 통신을 지원하는 다축 모션 제어 시스템

Similar Documents

Publication Publication Date Title
US8249726B2 (en) Method and device for accessing a functional module of automation system
CN109388107B (zh) 控制装置
US10496079B2 (en) Control device and control method
CN109557890B (zh) 控制装置
CN109581976B (zh) 控制装置
JP6626240B2 (ja) コントローラ
US20140005805A1 (en) Cpu of plc, system program for plc, and recording medium storing system program for plc
EP2687931A1 (en) Control device and system program
US10761513B2 (en) Information processing device, information processing method, and non-transitory computer-readable recording medium
EP2682830A1 (en) Control device and system program, and recording medium
CN100392587C (zh) 用于编程智能模块的向导
JP7327225B2 (ja) ロボット制御システムおよび制御方法
JP2016207169A (ja) モーションコントロールシステム
CN111052012B (zh) 控制装置以及控制***
US10509393B2 (en) Control device and control method
US20220397880A1 (en) Control device
JP2017204955A (ja) モータ制御用パルス出力ロジック回路及びモータ制御用コントローラユニット
JP2020144594A (ja) 制御装置およびソフトウェアのデプロイ方法
WO2011125178A1 (ja) 制御システム、制御装置および制御方法
US20210405597A1 (en) Engineering device, engineering method, and information storage medium
JP7231073B2 (ja) 制御装置および制御システム
CN114690692B (zh) 一种基于移位寄存器的高速插补脉冲输出方法及装置
AU2016102107A4 (en) Robot control system
EP3428753A1 (en) Automation system and method with cycle-based and event-based automation devices
JP2022114752A (ja) 制御装置、プログラム実行方法およびプログラム

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20170210

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20170830

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20171128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20171205

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20180129

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20180403

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20181009