(57)【要約】  カム動作ができるだけスムーズになるようにカムデータを切り替えることができるように、ＣＰＵモジュール（３）は、ユーザプログラム（２０６）に基づいて第１周期のシーケンス制御を繰り返し実行するシーケンス・コア部（２２）と、１回転の周期が第１周期と異なる第２周期であるモーション制御を複数のカムデータ（２１）のうちの一に基づいて実行するモーション・コア部（２３）と、スケジューラ（２６）と、を備え、スケジューラ（２６）は、シーケンス制御とモーション制御とが同期するように、シーケンス制御の周期境界またはモーション制御の周期境界に待ち時間を挿入し、モーション・コア部（２３）は、シーケンス制御とモーション制御とが同期したとき、一のカムデータ（２１）を複数のカムデータ（２１）のうちの他のカムデータ（２１）に切り替える。
2015173886.tif 000002
【特許請求の範囲】
【請求項１】
複数のカムデータを含むユーザプログラムを予め記憶する記憶部と、  前記ユーザプログラムに基づいて第１周期のシーケンス制御を繰り返し実行するシーケンス制御部と、  １回転の周期が前記第１周期と異なる第２周期であるモーション制御を前記複数のカムデータのうちの一に基づいて実行するモーション制御部と、  スケジューラと、  を備え、  前記スケジューラは、前記シーケンス制御と前記モーション制御とが同期するように、前記シーケンス制御の周期境界または前記モーション制御の周期境界に待ち時間を挿入し、  前記モーション制御部は、前記シーケンス制御と前記モーション制御とが同期したとき、前記一のカムデータを前記複数のカムデータのうちの他のカムデータに切り替える、  ことを特徴とする制御装置。
【請求項２】
前記第１周期は、前記第２周期よりも大きく、  前記スケジューラは、前記シーケンス制御の周期境界に前記待ち時間を挿入する、  ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記第１周期は、前記第２周期よりも小さく、  前記スケジューラは、前記モーション制御の周期境界に前記待ち時間を挿入する、  ことを特徴とする請求項１に記載の制御装置。
【請求項４】
前記モーション制御部からの出力値が前記待ち時間の経過中に滑らかに変化するように、前記待ち時間に基づいて補正する補正部をさらに備える、  ことを特徴とする請求項３に記載の制御装置。
【請求項５】
前記モーション制御部からの出力値を制限する制限部をさらに備える、  ことを特徴とする請求項１または請求項４に記載の制御装置。
【請求項６】
複数のカムデータを含むユーザプログラムを予め記憶する記憶部と、  前記ユーザプログラムに基づいて第１周期のシーケンス制御を繰り返し実行するシーケンス制御部と、  １回転の周期が前記第１周期と異なる第２周期であるモーション制御を前記複数のカムデータのうちの一に基づいて実行し、前記一のカムデータを前記複数のカムデータのうちの他に切り替える、モーション制御部と、  前記モーション制御部からの出力値を制限する制限部と、  を備えることを特徴とする制御装置。
【請求項７】
制御装置がユーザプログラムに基づいて第１周期のシーケンス制御と１回転の周期が前記第１周期と異なる第２周期のモーション制御とを実行する制御方法であって、  前記シーケンス制御と前記モーション制御とが同期するように、前記シーケンス制御の周期境界または前記モーション制御の周期境界に待ち時間を挿入するステップと、  前記シーケンス制御と前記モーション制御とが同期したとき、前記モーション制御において使用するカムデータを切り替えるステップと、  を備えることを特徴とする制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】  本発明は、産業用機器を制御する制御装置および制御方法に関する。
【背景技術】
【０００２】  従来、可動軸の速度または位置を制御するモーション制御と、外部スイッチ類の動作によってモータ周辺の機器の動作を制御するシーケンス制御とは、異なるプログラミング言語を用いて設計されることが一般的である。特別な例としては、モーション制御のうちのカム動作をテーブル（カムテーブル）によって定義し、カムテーブルの切り替え等の制御をシーケンス制御で実現する技術がある。この技術を、従来技術と表記する。【０００３】  これに関連し、モーション制御とシーケンス制御と１つのコントローラで実現する技術が知られている（例えば特許文献１参照）。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第４９７３７９２号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】  しかしながら、上記従来技術において、各制御を異なるプロセッサコアで実現する場合、モーション制御とシーケンス制御とを同期させることが難しかった。シーケンス制御は、一定の周期で実行される一方、モーション制御は、カム径の推移がスムーズになるように、工具または治具が装着され、カムによって制御される主軸が１回転する周期（以降、モーション制御周期という）よりも十分に小さい周期でサーボアンプに対する指令が出力されるからである。【０００６】  そして、モーション制御においてカムデータが切り替えられるときは、切り替えの前後でカム径が同じになる角度（位相）においてカムデータを切り替える必要がある。カムデータを切り替えるトリガは、オペレータによるスイッチの操作、または、加工終了などシーケンス制御から与えられるタイミングである場合がある。モーション制御がカム切り替えトリガを受けると、カム動作の連続性を得られるまで位相待ちすることになるが、この場合、モーション制御とは異なるタイミングで出力が実行されるため、カム動作がスムーズではなくなる、誤差が発生する、などの問題が発生する。また、この誤差が、トルクまたは加速度の制限値を超えると、装置の故障が発生する可能性がある。【０００７】  本発明は、上記に鑑みてなされたものであって、カム動作ができるだけスムーズになるようにカムデータを切り替えることができる制御装置および制御方法を得ることを目的とする。
【課題を解決するための手段】
【０００８】  上述した課題を解決し、目的を達成するために、本発明は、複数のカムデータを含むユーザプログラムを予め記憶する記憶部と、前記ユーザプログラムに基づいて第１周期のシーケンス制御を繰り返し実行するシーケンス制御部と、１回転の周期が前記第１周期と異なる第２周期であるモーション制御を前記複数のカムデータのうちの一に基づいて実行するモーション制御部と、スケジューラと、を備え、前記スケジューラは、前記シーケンス制御と前記モーション制御とが同期するように、前記シーケンス制御の周期境界または前記モーション制御の周期境界に待ち時間を挿入し、前記モーション制御部は、前記シーケンス制御と前記モーション制御とが同期したとき、前記一のカムデータを前記複数のカムデータのうちの他のカムデータに切り替える、ことを特徴とする。
【発明の効果】
【０００９】  本発明にかかる制御装置は、カムデータの切り替えの前後でカム径を一致させることが可能となるので、カム動作がスムーズになるようにカムデータを切り替えることが可能となる。
【図面の簡単な説明】
【００１０】
【図１】図１は、実施の形態１の制御装置の構成例を示す図である。
【図２】図２は、ＣＰＵモジュールのハードウェア構成例を示す図である。
【図３】図３は、実施の形態１のＣＰＵモジュールの機能を示す図である。
【図４】図４は、実施の形態１のＣＰＵモジュールの動作を説明するフローチャートである。
【図５】図５は、実施の形態１のＣＰＵモジュールの動作を説明するフローチャートである。
【図６】図６は、実施の形態２のＣＰＵモジュールの機能を示す図である。
【図７】図７は、実施の形態３のＣＰＵモジュールの機能を示す図である。
【図８】図８は、実施の形態４のＣＰＵモジュールの機能を示す図である。
【発明を実施するための形態】
【００１１】  以下に、実施の形態の制御装置を図面に基づいて詳細に説明する。なお、この実施の形態によりこの発明が限定されるものではない。
【００１２】実施の形態１．  図１は、実施の形態１の制御装置の構成例を示す図である。プログラマブルロジックコントローラ（Programmable  Logic  Controller、PLC）システム１は、被制御機器（図示せず）を制御することができる。ＰＬＣシステム１は、電源２、ＣＰＵモジュール３、Ｉ／Ｏモジュール４、およびベースモジュール５を備えている。
【００１３】  ベースモジュール５は、電源２、ＣＰＵモジュール３およびＩ／Ｏモジュール４を物理的かつ電気的に接続するためのバックプレーンである。ベースモジュール５は、ＣＰＵモジュール３とＩ／Ｏモジュール４との間でデータ転送を可能にするバスを備えている。なお、電源２、ＣＰＵモジュール３およびＩ／Ｏモジュール４の夫々はベースモジュール５から着脱可能に構成されてもよいし、ベースモジュール５と一体に構成されてもよい。電源２は、ＣＰＵモジュール３、Ｉ／Ｏモジュール４、およびベースモジュール５に電源電流を供給するモジュールである。Ｉ／Ｏモジュール４は、外部とのＩ／Ｏを行うため、または、外部とネットワークを介して接続するためのモジュールである。図１の例においては、Ｉ／Ｏモジュール４は、被制御機器にかかるデータの入力を受け付ける入力ユニット６、被制御機器に対してデータを出力する出力ユニット７、およびサーボアンプ８に接続されている。被制御機器は、可動軸（以降、単に軸という）を駆動するモータが具備される。サーボアンプ８は、そのモータに供給する電流を制御する。なお、入力ユニット６は、モータの状態（現在位置または現在速度）を検出するエンコーダを含む。
【００１４】  ＣＰＵモジュール３は、実施の形態の制御装置である。ＣＰＵモジュール３は、ユーザプログラム（後述のユーザプログラム２０６）を内蔵し、ユーザプログラムに基づいてＰＬＣシステム１全体を統括的に制御する。Ｉ／Ｏモジュール４を介した入出力は、ユーザプログラムに基づいて実行される。
【００１５】  図２は、ＣＰＵモジュール３のハードウェア構成例を示す図である。ＣＰＵモジュール３は、プロセッサコア２００、プロセッサコア２０１、メインメモリ２０２、不揮発性メモリ２０３、バスインタフェース２０４、および内部バス２０５を備えている。内部バス２０５は、プロセッサコア２００、プロセッサコア２０１、メインメモリ２０２、不揮発性メモリ２０３、およびバスインタフェース２０４を互いに接続する。
【００１６】  不揮発性メモリ２０３は、ユーザプログラム２０６およびシステムプログラム２０７を予め記憶する。不揮発性メモリ２０３は、例えば、ＨＤＤ（Hard  Disk  Drive）、フラッシュメモリ、着脱可能なメモリデバイス、磁気ディスク、光ディスク、またはこれらの組み合わせにより構成される。メインメモリ２０２は、プロセッサコア２００、２０１がワークエリアとして使用するメモリである。メインメモリ２０２は、例えばＤＲＡＭ（Dynamic  Random  Access  Memory）など、プロセッサコア２００、２０１が高速にアクセスすることができるメモリが採用される。バスインタフェース２０４は、ＣＰＵモジュール３がベースモジュール５に具備されるバスに接続するためのインタフェースである。
【００１７】  システムプログラム２０７は、プロセッサコア２００、２０１によって不揮発性メモリ２０３から読み出され、メインメモリ２０２にロードされる。プロセッサコア２００、２０１は、メインメモリ２０２にロードされたシステムプログラム２０７を実行することによって、後述する各種機能部を実現する。
【００１８】  ユーザプログラム２０６は、コンパイルされたコンピュータプログラムであり、プロセッサコア２００、２０１のうちの夫々異なるプロセッサコアで処理されるシーケンス制御プログラムとモーション制御プログラムとを含んでいる。ユーザプログラム２０６は、システムプログラム２０７による制御の下で、プロセッサコア２００、２０１によって不揮発性メモリ２０３から読み出され、実行される。
【００１９】  図３は、ＣＰＵモジュール３の機能を示す図である。ＣＰＵモジュール３は、シーケンス・コア部２２、モーション・コア部２３、入力処理部２４、出力処理部２５、およびスケジューラ２６を備えている。入力処理部２４、出力処理部２５、およびスケジューラ２６は、プロセッサコア２００、２０１がシステムプログラム２０７を実行することによって実現する。シーケンス・コア部２２は、ユーザプログラム２０６が含むシーケンス制御プログラムをプロセッサコア２００、２０１のうちの一のプロセッサコアが実行することによって実現する。モーション・コア部２３は、ユーザプログラム２０６が含むモーション制御プログラムをプロセッサコア２００、２０１のうちの他のプロセッサコアが実行することによって実現する。
【００２０】  入力処理部２４は、入力ユニット６からの入力データを受け付ける。入力処理部２４が受け付けた入力データは、シーケンス・コア部２２またはモーション・コア部２３によって取得される。
【００２１】  シーケンス・コア部２２は、入力処理部２４から取得した入力データを用いてシーケンス制御プログラムに基づく演算処理を行い、演算処理によって得られる出力データを出力処理部２５に出力する。シーケンス・コア部２２は、シーケンス制御プログラムを先頭から末尾まで実行する処理を含む一連の単位処理を、サイクリックに実行する。なお、単位処理は、入力処理部２４および出力処理部２５を介した入出力処理を含む。以降、単位処理の実行周期を、シーケンス制御周期という。
【００２２】  モーション・コア部２３は、入力処理部２４から例えばエンコーダによる検出値を取得する。モーション・コア部２３は、入力処理部２４から取得した検出値を例えばフィードバック値として用いて、モーション制御プログラムに基づく演算処理を行う。ここで、ユーザプログラム２０６は、複数のカムデータ２１を含んでいる。各カムデータ２１は、主軸の角度（位相ともいう）とカム径とを対応付けるデータである。モーション・コア部２３は、複数のカムデータ２１のうちの１つを用いてカム径を演算し、演算されたカム径に予め設定された定数を乗算されることによって可動軸の指令位置を演算する。カム径の演算には、主軸の位相が用いられる。主軸の位相としては、例えば、エンコーダによる検出値、ＣＰＵモジュール３の内部にて生成される仮想的な主軸位相、などが採用可能である。仮想的な主軸位相とは、現実の回転位置（位相）ではなく、ＣＰＵモジュール３の内部にて演算される、その時刻に到達しているであろう主軸の回転位置である。モーション・コア部２３は、演算された指令位置に基づいて出力データを演算する。モーション・コア部２３が演算する出力データは、サーボアンプ８に入力される指令であって、例えば位置指令、トルク指令、または速度指令である。モーション・コア部２３は、主軸が１回転する周期（以降、モーション制御周期という）よりも十分に小さい周期（以降、演算周期）で出力データであるサーボアンプに対する指令を演算し、演算した出力データを出力する。モーション・コア部２３は、演算した出力データを出力処理部２５に出力する。
【００２３】  出力処理部２５は、シーケンス・コア部２２から出力された出力データを、出力ユニット７に出力する。また、出力処理部２５は、モーション・コア部２３から出力された出力データを、サーボアンプ８に出力する。
【００２４】  一般に、モーション制御に関しては、モーション制御周期よりも十分小さい演算周期でサーボアンプ８に対する指令を演算する必要がある。よって、カムデータの切り替えは、モーション制御周期内の何れかの演算周期において実行されうる。しかしながら、主軸がゆっくり回転している場合、または、シーケンス制御周期が完了しないとカムデータの変更ができない場合においては、シーケンス制御周期とモーション制御周期とを同期させる必要がある。
【００２５】  そこで、実施の形態１によれば、スケジューラ２６は、シーケンス制御周期とモーション制御周期とを同期させるために、シーケンス・コア部２２またはモーション・コア部２３の何れか一方を周期境界において一時的に待機させる。待機させる時間間隔（待ち時間）は、同期情報２７に記録され、スケジューラ２６に内蔵される。ここで、同期情報２７とは、スケジューラ２６がふたつの制御（シーケンス制御とモーション制御）の時間差を調整するために利用できる情報であれば、待ち時間の記録以外の情報であっても適用可能である。例えば、同期情報２７としては、シーケンス制御とモーション制御の位相ずれの角度と、主軸の角速度と、から推定される時間差が適用できる。また、同期情報２７としては、２つの制御の制御周期のずれの過去数周期の平均が適用できる。同期情報２７は、ユーザにより設定される。同期情報２７は、ユーザプログラム２０６に記録されて入力されてもよいし、ユーザプログラム２０６とは別に入力されてもよい。
【００２６】  図４および図５は、実施の形態１のＣＰＵモジュール３の動作を説明するフローチャートである。図４は、シーケンス制御周期がモーション制御周期よりも小さい場合の動作を示しており、図５は、シーケンス制御周期がモーション制御周期よりも大きい場合の動作を示している。
【００２７】  図４において、シーケンス制御とモーション制御とは、同時に開始する（Ｓ１）。即ち、シーケンス・コア部２２は、シーケンス制御を開始し、同時に、モーション・コア部２３は、モーション制御を開始する。シーケンス制御周期が経過すると（Ｓ２）、シーケンス・コア部２２は、同期情報２７に記述されている待ち時間だけシーケンス制御を待機する（Ｓ３）。具体的には、シーケンス・コア部２２は、次の周期のシーケンス制御の開始を、遅らせる。
【００２８】  Ｓ２およびＳ３の処理は、具体的には次のように実行される。スケジューラ２６は、シーケンス制御の実行を監視し、シーケンス制御の最後に、同期情報２７に記述されている待ち時間に相当する冗長な処理を挿入する。待ち時間としては、例えば、シーケンス制御周期が経過してから、モーション制御周期の最初の周期境界（即ち主軸の位相がゼロ値になるタイミング）に至るまでの時間が設定される。シーケンス・コア部２２は、シーケンス制御を実行後、冗長な処理を実行することで、待ち時間に相当する時間だけシーケンス制御を待機することができる。なお、冗長な処理を挿入する位置は、シーケンス制御の後でなくてもよい。例えば、シーケンス制御の途中に冗長な処理が挿入されてもよい。
【００２９】  Ｓ３の処理の後、シーケンス・コア部２２は、カムデータ２１を変更する指令が発行されているか否かを判定する（Ｓ４）。カムデータ２１の変更の指令は、シーケンス制御プログラムから例えば加工終了のタイミングで発行されてもよいし、オペレータによるスイッチの操作により発行されてもよい。カムデータ２１を変更する指令が発行されている場合には（Ｓ４、Ｙｅｓ）、シーケンス・コア部２２は、カムデータ２１を変更し（Ｓ５）、シーケンス制御を再開する（Ｓ６）。カムデータ２１を変更する指令が発行されていない場合には（Ｓ４、Ｎｏ）、Ｓ５の処理はスキップされる。Ｓ６の処理の後、Ｓ２の処理が再び実行される。
【００３０】  Ｓ６の処理によって、シーケンス制御の周期境界とモーション制御の周期境界とが時間的に一致せしめられる。即ち、シーケンス制御とモーション制御とが同期せしめられる。シーケンス制御とモーション制御とが同期せしめられたときに主軸の回転角度（位相）がゼロ度のときにカムデータ２１の切り替えが実行されるので、主軸の位相がゼロ度のときにカムデータ２１の切り替えが行われる。カムデータ２１は、通常、ゼロ度においてはカム径が上至点または下至点の何れか一方になるように設定される。よって、カムデータ２１の切り替えの前後でカム径が一致するので、カム動作ができるだけスムーズになるようにカムデータを切り替えることができる。
【００３１】  なお、図４の説明においては、１回のシーケンス制御周期が経過する毎にシーケンス制御が待機せしめられるものとして説明したが、所望の回数のシーケンス制御周期が経過する毎にシーケンス制御が待機せしめられるようにしてもよい。その場合には、同期情報２７には、何回のシーケンス制御周期毎にシーケンス制御の待機を行うかを指定する情報が予め記述される。例えばｎ回（ｎは２以上の自然数）のシーケンス制御周期毎にシーケンス制御の待機を行うことが同期情報２７に記述されている場合、スケジューラ２６は、シーケンス制御周期が何回経過したかをカウントし、シーケンス制御周期がｎ回経過したとき、待ち時間に相当する冗長な処理をシーケンス・コア部２２に実行させる。
【００３２】  また、同期情報２７には、待ち時間が記述されている、として説明したが、スケジューラ２６がモーション制御周期とシーケンス制御周期とを計測し、計測した結果に基づいて待ち時間を算出してもよい。モーション制御周期は、主軸の位相を監視することによって実現可能である。また、スケジューラ２６がシーケンス制御周期が経過したときの主軸の位相を取得し、取得した位相から待ち時間を算出してもよい。
【００３３】  また、スケジューラ２６は、カムデータ２１を変更する指令が発行されているか否かを所定の時間間隔で判定し、カムデータ２１を変更する指令の発行を検知していない場合、シーケンス制御を待機させず、カムデータ２１を変更する指令の発行を検知した場合、シーケンス制御を待機させてもよい。待ち時間は、例えば、スケジューラ２６がシーケンス制御周期が経過したときの主軸の位相を取得し、取得した位相から算出してもよい。
【００３４】  なお、モーション制御の同期ポイントは、モーション制御の周期境界でなくてもよい。シーケンス制御周期が経過してから、主軸の位相が所望の位相（例えば９０度（deg）、１８０度、または２７０度など）に最初に至るまでの時間が待ち時間として設定されてもよい。シーケンス制御周期が経過してから、カム径が変更の前後で同一の値になる所望の位相に最初に至るまでの時間が待ち時間として設定されることにより、カム動作がスムーズになるようにカムデータを切り替えることが可能となる。
【００３５】  また、モーション・コア部２３は、複数の可動軸を互いに同期して動作させることもできる。複数の可動軸の何れにシーケンス制御を同期させるかは、例えばユーザプログラム２０６または同期情報２７に予め記述される。
【００３６】  図５において、シーケンス制御とモーション制御とは、同時に開始する（Ｓ１１）。モーション制御周期が経過すると（Ｓ１２）、モーション・コア部２３は、同期情報２７に記述されている待ち時間だけモーション制御を待機する（Ｓ１３）。
【００３７】  Ｓ１２およびＳ１３の処理は、具体的には次のように実行される。スケジューラ２６は、モーション制御の実行を監視し、モーション制御の最後に、同期情報２７に記述されている待ち時間に相当する冗長な処理を挿入する。待ち時間としては、例えば、モーション制御周期が経過してから、シーケンス制御周期の最初の周期境界に至るまでの時間が設定される。モーション・コア部２３は、モーション制御を実行後、冗長な処理を実行することで、待ち時間に相当する時間だけモーション制御を待機することができる。なお、冗長な処理を挿入する位置は、モーション制御の後でなくてもよい。例えば、モーション制御の途中に冗長な処理が挿入されてもよい。
【００３８】  Ｓ１３の処理の後、シーケンス・コア部２２は、カムデータ２１を変更する指令が発行されているか否かを判定する（Ｓ１４）。カムデータ２１の変更の指令は、シーケンス制御プログラムから発行されてもよいし、ユーザからの入力により発行されてもよい。カムデータ２１を変更する指令が発行されている場合には（Ｓ１４、Ｙｅｓ）、シーケンス・コア部２２は、カムデータ２１を変更する（Ｓ１５）。モーション・コア部２３は、変更後のカムデータ２１を用いてモーション制御を再開する（Ｓ１６）。Ｓ１６の処理により、シーケンス制御の周期境界とモーション制御の周期境界とが同期せしめられる。即ち、シーケンス制御とモーション制御とが同期せしめられる。カムデータ２１の切り替えは、シーケンス制御の周期境界とモーション制御の周期境界とが同期されるタイミングで実行されるので、図４にて説明した場合と同様に、カム動作ができるだけスムーズになるようにカムデータを切り替えることができる。カムデータ２１を変更する指令が発行されていない場合には（Ｓ１４、Ｎｏ）、Ｓ１５の処理はスキップされる。Ｓ１６の処理の後、Ｓ１２の処理が再び実行される。
【００３９】  なお、図５の説明においては、１回のモーション制御周期が経過する毎にモーション制御が待機せしめられるものとして説明したが、所望の回数のモーション制御周期が経過する毎にモーション制御が待機せしめられるようにしてもよい。その場合には、同期情報２７には、何回のモーション制御周期毎にモーション制御の待機を行うかを指定する情報が予め記述される。例えばｎ回（ｎは２以上の自然数）のモーション制御周期毎にモーション制御の待機を行うことが同期情報２７に記述されている場合、スケジューラ２６は、モーション制御周期が何回経過したかをカウントし、モーション制御周期がｎ回経過したとき、待ち時間に相当する冗長な処理をモーション・コア部２３に実行させる。
【００４０】  また、同期情報２７には、待ち時間が記述されている、として説明したが、スケジューラ２６がモーション制御周期とシーケンス制御周期とを計測し、計測した結果に基づいて待ち時間を算出してもよい。
【００４１】  また、スケジューラ２６は、カムデータ２１を変更する指令が発行されているか否かを所定の時間間隔で判定し、カムデータ２１を変更する指令の発行を検知していない場合、モーション制御を待機させず、カムデータ２１を変更する指令の発行を検知した場合、モーション制御を待機させてもよい。待ち時間は、例えば、スケジューラ２６がシーケンス制御周期の周期境界に最後に至ったタイミングを記憶し、記憶したタイミングからの経過時間とシーケンス制御周期との差分を演算することで求められる。
【００４２】  このように、実施の形態１によれば、ＣＰＵモジュール３は、ユーザプログラム２０６に基づいてシーケンス制御を繰り返し実行するシーケンス・コア部２２と、主軸の１回転の周期がシーケンス制御周期と異なるモーション制御を複数のカムデータ２１のうちの一に基づいて実行するモーション・コア部２３と、スケジューラ２６と、を備える。そして、スケジューラ２６は、シーケンス制御とモーション制御とが同期するように、シーケンス制御の周期境界またはモーション制御の周期境界に待ち時間を挿入する。モーション・コア部２３は、シーケンス制御とモーション制御とが同期したタイミングで、カムデータ２１を切り替える。これにより、カムデータ２１の切り替えの前後でカム径を一致させることができるので、カム動作ができるだけスムーズになるようにカムデータ２１を切り替えることができる。
【００４３】  なお、ＣＰＵモジュール３に具備されるプロセッサコアの数は、３以上であってもよいし、１であってもよい。ＣＰＵモジュール３に具備されるプロセッサコアの数が１である場合には、そのプロセッサコアにおいてシーケンス制御とモーション制御とが切り替えて実行される。
【００４４】実施の形態２．  図６は、実施の形態２のＣＰＵモジュールの機能を示す図である。実施の形態２のＣＰＵモジュールに、符号３ａを付すことによって、実施の形態１のＣＰＵモジュールと区別する。また、実施の形態１と同様の要素には同一の名称および符号を付し、重複する説明を省略する。
【００４５】  ＣＰＵモジュール３ａは、シーケンス・コア部２２、モーション・コア部２３、入力処理部２４、出力処理部２５ａ、およびスケジューラ２６を備えている。出力処理部２５ａは、出力値補正部３１を備えている。
【００４６】  モーション制御周期がシーケンス制御周期よりも大きい場合、シーケンス制御に同期するためにモーション制御周期は待機せしめられる。その場合、サーボアンプ８に対する出力は、待ち時間分だけ遅延する。出力値補正部３１は、待機を開始するタイミングでスケジューラ２６から待ち時間が入力される。そして、出力値補正部３１は、待機中であっても、待機の前、待機の最中、待機の後のカム動作が滑らかになるように、待ち時間に基づき、モーション・コア部２３からの出力データを補正する。
【００４７】  なお、補正のアルゴリズムは任意である。例えば、前回値と今回値とを待ち時間を用いて直線外挿近似(一次関数近似)することによって補正値を計算するアルゴリズムが採用可能である。また、主軸の角速度が一定であると見做して、待ち時間分の角度の変位量を求め、カムテーブル２１と、求めた角度の変位量とに基づいて出力時点の出力データを補正するアルゴリズムが採用可能である。
【００４８】  このように、実施の形態２によれば、ＣＰＵモジュール３ａは、モーション・コア部２３からの出力値が待ち時間の経過中に滑らかに変化するように、待ち時間に基づいて補正する出力値補正部３１を備える。これにより、モーション制御の待ち時間に基づく制御の誤差を抑制し、その結果、滑らかでモータまたは機械に負担の少ないモーション制御が可能となる。
【００４９】実施の形態３．  図７は、実施の形態３のＣＰＵモジュールの機能を示す図である。実施の形態３のＣＰＵモジュールに、符号３ｂを付すことによって、実施の形態１および実施の形態２のＣＰＵモジュールと区別する。また、実施の形態１または実施の形態２と同様の要素には同一の名称および符号を付し、重複する説明を省略する。
【００５０】  ＣＰＵモジュール３ｂは、シーケンス・コア部２２、モーション・コア部２３、入力処理部２４、出力処理部２５ｂ、およびスケジューラ２６を備えている。出力処理部２５ｂは、出力値補正部３１および出力値制限部３２を備えている。
【００５１】  出力値制限部３２は、ユーザによって予め決められた制限値を記憶している。制限値は、例えばユーザプログラム２０６を介して出力値制限部３２に設定される。モーション・コア部２３は、無理なプログラミング、または、演算処理中の故障、に起因して演算値に異常が発生することがある。このような演算値の異常により、サーボアンプ８またはモータに対して、急激に変化する値または過大な値の出力を行う場合がある。モーション・コア部２３が出力データを出力処理部２５ｂに出力したときに、出力値制限部３２は、出力データの値を制限値と比較して、出力データの値が制限値を越えている場合には、出力データを制限値に抑制（即ち制限）する。例えば、可動軸の角速度、位置の変位量、可動軸によって駆動される可動部（手先）の移動速度、モータのトルク、または手先の位置などが、制限値として設定される。
【００５２】  出力値制限部３２によって抑制された、または抑制されていない出力データは、出力値補正部３１によって補正され、サーボアンプ８に出力される。
【００５３】  なお、出力値制限部３２による処理と出力値補正部３１による処理とは、この順番に限定されない。
【００５４】  このように、実施の形態３によれば、ＣＰＵモジュール３ｂは、モーション・コア部２３からの出力値を制限する出力値制限部３２をさらに備える。これにより、モータおよびモータが駆動する機械の故障または破壊を回避できる。また不意な動作を抑制できるので、安全性が向上する。
【００５５】実施の形態４．  図８は、実施の形態４のＣＰＵモジュールの機能を示す図である。実施の形態４のＣＰＵモジュールに、符号３ｃを付すことによって、実施の形態１、実施の形態２、および実施の形態３のＣＰＵモジュールと区別する。また、実施の形態１または実施の形態３と同様の要素には同一の名称および符号を付し、重複する説明を省略する。
【００５６】  ＣＰＵモジュール３ｃは、シーケンス・コア部２２、モーション・コア部２３、入力処理部２４、および出力処理部２５ｃを備えている。出力処理部２５ｃは、出力値制限部３２を備えている。出力値制限部３２は、実施の形態３と同様、モーション・コア部２３からの出力データを制限値で抑制する。
【００５７】  なお、実施の形態４においては、モーション・コア部２３は、シーケンス制御周期とは関連しない任意のタイミングでカムデータ２１の切り替えを実行することができる。出力値制限部３２は、カムデータ２１の切り替えに伴って出力データが非連続に変動した場合であっても、その出力データを制限値で抑制するので、出力データを抑制しない場合に比べてカム動作をスムーズにすることができる。また、モータおよびモータが駆動する機械の故障または破壊を回避できる。また、不意な動作を抑制できるので、安全性が向上する。
【符号の説明】
【００５８】  １  ＰＬＣシステム、２  電源、３，３ａ，３ｂ，３ｃ  ＣＰＵモジュール、４  Ｉ／Ｏモジュール、５  ベースモジュール、６  入力ユニット、７  出力ユニット、８  サーボアンプ、２１  カムデータ、２２  シーケンス・コア部、２３  モーション・コア部、２４  入力処理部、２５，２５ａ，２５ｂ，２５ｃ  出力処理部、２６  スケジューラ、２７  同期情報、３１  出力値補正部、３２  出力値制限部、２００，２０１  プロセッサコア、２０２  メインメモリ、２０３  不揮発性メモリ、２０４  バスインタフェース、２０５  内部バス、２０６  ユーザプログラム、２０７  システムプログラム。
【図１】
2015173886.tif 000003
【図２】
2015173886.tif 000004
【図３】
2015173886.tif 000005
【図４】
2015173886.tif 000006
【図５】
2015173886.tif 000007
【図６】
2015173886.tif 000008
【図７】
2015173886.tif 000009
【図８】
2015173886.tif 000010
【手続補正書】
【提出日】平成27年9月9日(2015.9.9)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００４７
【補正方法】変更
【補正の内容】
【００４７】
なお、補正のアルゴリズムは任意である。例えば、前回値と今回値とを待ち時間を用いて直線外挿近似(一次関数近似)することによって補正値を計算するアルゴリズムが採用可能である。また、主軸の角速度が一定であると見做して、待ち時間分の角度の変位量を求め、カムデータ２１と、求めた角度の変位量とに基づいて出力時点の出力データを補正するアルゴリズムが採用可能である。
【手続補正２】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数のカムデータを含むユーザプログラムを予め記憶する記憶部と、
前記ユーザプログラムに基づいて第１周期のシーケンス制御を繰り返し実行するシーケンス制御部と、
１回転の周期が前記第１周期と異なる第２周期であるモーション制御を前記複数のカムデータのうちの一に基づいて実行するモーション制御部と、
スケジューラと、
を備え、
前記スケジューラは、前記シーケンス制御と前記モーション制御とが同期するように、前記シーケンス制御の周期境界または前記モーション制御の周期境界に待ち時間を挿入し、
前記モーション制御部は、前記シーケンス制御と前記モーション制御とが同期したとき、前記一のカムデータを前記複数のカムデータのうちの他のカムデータに切り替える、
ことを特徴とする制御装置。
【請求項２】
前記第１周期は、前記第２周期よりも大きく、
前記待ち時間は、ｎ回（ｎは１以上の整数）の前記第１周期が経過して以降、最初に前記モーション制御の同期ポイントに至るまでの時間であり、
前記スケジューラは、ｎ回の前記第１周期毎に前記シーケンス制御の周期境界に前記待ち時間を挿入する、
ことを特徴とする請求項１に記載の制御装置。
【請求項３】
前記モーション制御の同期ポイントは、前記モーション制御の周期境界である、
ことを特徴とする請求項２に記載の制御装置。
【請求項４】
前記第１周期は、前記第２周期よりも小さく、
前記待ち時間は、ｎ回（ｎは１以上の整数）の前記第２周期が経過して以降、最初に前記シーケンス制御の周期境界に至るまでの時間であり、
前記スケジューラは、ｎ回の前記第２周期毎に前記モーション制御の周期境界に前記待ち時間を挿入する、
ことを特徴とする請求項１に記載の制御装置。
【請求項５】
前記モーション制御部からの出力値が前記待ち時間の経過中に滑らかに変化するように、前記待ち時間に基づいて補正する補正部をさらに備える、
ことを特徴とする請求項４に記載の制御装置。
【請求項６】
前記モーション制御部からの出力値を制限する制限部をさらに備える、
ことを特徴とする請求項１または請求項５に記載の制御装置。
【請求項７】
制御装置がユーザプログラムに基づいて第１周期のシーケンス制御と１回転の周期が前記第１周期と異なる第２周期のモーション制御とを実行する制御方法であって、
前記シーケンス制御と前記モーション制御とが同期するように、前記シーケンス制御の周期境界または前記モーション制御の周期境界に待ち時間を挿入するステップと、
前記シーケンス制御と前記モーション制御とが同期したとき、前記モーション制御において使用するカムデータを切り替えるステップと、
を備えることを特徴とする制御方法。
【手続補正書】
【提出日】平成28年2月4日(2016.2.4)
【手続補正１】
【補正対象書類名】明細書
【補正対象項目名】００２６
【補正方法】変更
【補正の内容】
【００２６】
図４および図５は、実施の形態１のＣＰＵモジュール３の動作を説明するフローチャートである。図４は、シーケンス制御周期がモーション制御周期よりも大きい場合の動作を示しており、図５は、シーケンス制御周期がモーション制御周期よりも小さい場合の動作を示している。
【国際調査報告】
2015173886.tif 000011
2015173886.tif 000012