(57)【要約】【課題】モータの起動ずれを少なくするプログラマブルコントローラ、制御方法及び制御プログラムを提供すること。【解決手段】制御部は、複数のモータの駆動を制御する際、複数のモータに関する準備処理の少なくとも一部の処理をまとめて実行した後、モータ毎に残りの準備処理及び出力処理を実行する。より詳しくは、全てのモータに関する命令実行条件確認や、全てのモータに関する命令パラメータチェックを、各モータの出力処理の前にまとめて行う。その後、モータ毎に残りの準備処理及び出力処理を実行する。【選択図】図２
2015210751.tif 000002
【特許請求の範囲】
【請求項１】
複数のモータと接続可能に構成されるプログラマブルコントローラにおいて、
各モータを駆動させるための制御を行う制御部と、
信号を出力する出力部を備え、
前記制御部は、ＣＰＵによるものであり、
前記制御部は、モータを駆動させるための事前準備を実行する準備処理を実行した後、当該事前準備に基づき、モータを駆動させるための信号を前記出力部に出力させる出力処理を実行するように構成されており、
前記制御部は、複数のモータの駆動を制御する際、複数のモータに関する準備処理の少なくとも一部の処理をまとめて実行した後、モータ毎に残りの準備処理及び出力処理を実行することを特徴とするプログラマブルコントローラ。
【請求項２】
複数のモータの駆動を制御する際、前記制御部がまとめて実行する準備処理の一部は、モータを駆動させる際のパラメータのチェック処理であることを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
複数のモータの駆動を制御する際、前記制御部がまとめて実行する準備処理の一部は、前記パラメータに基づき、モータを駆動させるための信号の出力態様を決定するための決定処理であることを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記制御部は、複数のモータの駆動を制御する際、複数のモータに関する準備処理の全てをまとめて実行した後、モータ毎に出力処理を実行することを特徴とする請求項１〜請求項３のうちいずれか一項に記載のプログラマブルコントローラ。
【請求項５】
前記制御部は、複数のモータの駆動を制御する際、複数のモータに関する準備処理をまとめて実行した後、複数のモータに関する出力処理を連続して実行するように構成されており、
出力処理を連続して実行する際に、他の処理の割込を禁止することを特徴とする請求項１〜請求項４のうちいずれか一項に記載のプログラマブルコントローラ。
【請求項６】
前記制御部は、複数のモータの駆動を制御する際、準備処理を実行させるための準備命令の入力を契機に、予め全ての準備処理を実行するように構成され、
出力処理を実行させるための出力命令の入力を契機に、モータ毎に出力処理を実行するように構成されていることを特徴とする請求項１〜請求項５のうちいずれか一項に記載のプログラマブルコントローラ。
【請求項７】
複数のモータと接続可能に構成され、各モータを駆動させるための制御を行う制御部と、信号を出力する出力部を備えたプログラマブルコントローラに実行させる制御方法において、
前記制御部は、ＣＰＵによるものであり、
前記制御部に、モータを駆動させるための事前準備を実行する準備処理を実行させた後、当該事前準備に基づき、モータを駆動させるための信号を前記出力部に出力させる出力処理を実行させるように構成されていると共に、
複数のモータの駆動を制御させる際、前記制御部に、複数のモータに関する準備処理の少なくとも一部の処理をまとめて実行させた後、モータ毎に残りの準備処理及び出力処理を実行させることを特徴とする制御方法。
【請求項８】
複数のモータの駆動を制御させる際、前記制御部にまとめて実行させる準備処理の一部は、モータを駆動させる際のパラメータのチェック処理であることを特徴とする請求項７に記載の制御方法。
【請求項９】
複数のモータの駆動を制御させる際、前記制御部にまとめて実行させる準備処理の一部は、前記パラメータに基づき、モータを駆動させるための信号の出力態様を決定するための決定処理であることを特徴とする請求項８に記載の制御方法。
【請求項１０】
前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理の全てをまとめて実行させた後、モータ毎に出力処理を実行させることを特徴とする請求項７〜請求項９のうちいずれか一項に記載の制御方法。
【請求項１１】
前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理をまとめて実行させた後、複数のモータに関する出力処理を連続して実行させると共に、
出力処理を連続して実行させる際に、他の処理の割込を禁止することを特徴とする請求項７〜請求項１０のうちいずれか一項に記載の制御方法。
【請求項１２】
前記制御部に、複数のモータの駆動を制御させる際、準備処理を実行させるための準備命令の入力を契機に、予め全ての準備処理を実行させると共に、出力処理を実行させるための出力命令の入力を契機に、モータ毎に出力処理を実行させることを特徴とする請求項７〜請求項１１のうちいずれか一項に記載の制御方法。
【請求項１３】
複数のモータと接続可能に構成され、各モータを駆動させるための制御を行う制御部と、信号を出力する出力部を備えたプログラマブルコントローラに実行させる制御プログラムにおいて、
前記制御部は、ＣＰＵによるものであり、
前記制御部に、モータを駆動させるための事前準備を実行する準備処理を実行させた後、当該事前準備に基づき、モータを駆動させるための信号を前記出力部に出力させる出力処理を実行させるように構成されていると共に、
前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理の少なくとも一部の処理をまとめて実行させた後、モータ毎に残りの準備処理及び出力処理を実行させることを特徴とする制御プログラム。
【請求項１４】
複数のモータの駆動を制御させる際、前記制御部にまとめて実行させる準備処理の一部は、モータを駆動させる際のパラメータのチェック処理であることを特徴とする請求項１３に記載の制御プログラム。
【請求項１５】
複数のモータの駆動を制御させる際、前記制御部にまとめて実行させる準備処理の一部は、前記パラメータに基づき、モータを駆動させるための制御情報として信号の出力態様を決定するための決定処理であることを特徴とする請求項１４に記載の制御プログラム。
【請求項１６】
前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理の全てをまとめて実行させた後、モータ毎に出力処理を実行させることを特徴とする請求項１３〜請求項１５のうちいずれか一項に記載の制御プログラム。
【請求項１７】
前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理をまとめて実行させた後、複数のモータに関する出力処理を連続して実行させると共に、
出力処理を連続して実行させる際に、他の処理の割込を禁止することを特徴とする請求項１３〜請求項１６のうちいずれか一項に記載の制御プログラム。
【請求項１８】
前記制御部に、複数のモータの駆動を制御させる際、準備処理を実行させるための準備命令の入力を契機に、予め全ての準備処理を実行させると共に、
出力処理を実行させるための出力命令の入力を契機に、モータ毎に出力処理を実行させることを特徴とする請求項１３〜請求項１７のうちいずれか一項に記載の制御プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、プログラマブルコントローラ、制御方法及び制御プログラムに関するものである。
【背景技術】
【０００２】
従来、モータなどの外部機器をシーケンス制御するためにプログラマブルコントローラが用いられている。プログラマブルコントローラは、制御プログラムに基づき、所定のパルスをモータに出力することでモータの位置決め制御を行っていた（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開平１１−６５６２０号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ところで、従来のプログラマブルコントローラにおいては、複数のモータに対して位置決め制御をする際、モータ毎に命令パラメータに基づき、パルスの出力態様（パルス列の周波数切替テーブル）を演算により作成する。その後、その出力態様に基づきパルスを出力させていた。このため、命令パラメータのチェックや演算などに係る時間分だけ、各モータに対するパルスの出力開始タイミングが遅れることとなる。これにより、複数のモータを同時に起動させたくても、起動タイミングにずれが生じることとなっていた。
【０００５】
この発明は、このような従来の技術に存在する問題点に着目してなされたものであり、その目的は、モータの起動ずれを少なくするプログラマブルコントローラ、制御方法及び制御プログラムを提供することにある。
【課題を解決するための手段】
【０００６】
上記問題点を解決するプログラマブルコントローラは、複数のモータと接続可能に構成されるプログラマブルコントローラにおいて、各モータを駆動させるための制御を行う制御部と、信号を出力する出力部を備え、前記制御部は、ＣＰＵによるものであり、前記制御部は、モータを駆動させるための事前準備を実行する準備処理を実行した後、当該事前準備に基づき、モータを駆動させるための信号を前記出力部に出力させる出力処理を実行するように構成されており、前記制御部は、複数のモータの駆動を制御する際、複数のモータに関する準備処理の少なくとも一部の処理をまとめて実行した後、モータ毎に残りの準備処理及び出力処理を実行することを要旨とする。
【０００７】
この構成によれば、モータ毎に、モータに関する準備処理及び出力処理を全て実行させる場合と比較して、出力処理の間に実行される準備処理に係わる時間が少なくなるため、各モータに対する信号の出力開始の間隔（起動ずれ）を少なくすることができる。
【０００８】
上記プログラマブルコントローラにおいて、複数のモータの駆動を制御する際、前記制御部がまとめて実行する準備処理の一部は、モータを駆動させる際のパラメータのチェック処理であるようにしてもよい。
【０００９】
この構成によれば、出力処理とは関係ないパラメータのチェック処理を事前にまとめて実行することにより、各モータに関する出力処理の間に、当該チェック処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００１０】
上記プログラマブルコントローラにおいて、複数のモータの駆動を制御する際、前記制御部がまとめて実行する準備処理の一部は、前記パラメータに基づき、モータを駆動させるための信号の出力態様を決定するための決定処理であるようにしてもよい。
【００１１】
この構成によれば、出力処理とは関係ない決定処理を事前にまとめて実行することにより、各モータに関する出力処理の間に、当該決定処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００１２】
上記プログラマブルコントローラにおいて、前記制御部は、複数のモータの駆動を制御する際、複数のモータに関する準備処理の全てをまとめて実行した後、モータ毎に出力処理を実行するようにしてもよい。
【００１３】
この構成によれば、出力処理とは関係ない複数のモータに係わる準備処理の全てを事前にまとめて実行することにより、各モータに関する出力処理の間に、準備処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００１４】
上記プログラマブルコントローラにおいて、前記制御部は、複数のモータの駆動を制御する際、複数のモータに関する準備処理をまとめて実行した後、複数のモータに関する出力処理を連続して実行するように構成されており、出力処理を連続して実行する際に、他の処理の割込を禁止するようにしてもよい。
【００１５】
この構成によれば、割込処理により、各モータに対する信号出力開始の間に割込処理のための時間が割かれることがなくなる。
上記プログラマブルコントローラにおいて、前記制御部は、複数のモータの駆動を制御する際、準備処理を実行させるための準備命令の入力を契機に、予め全ての準備処理を実行するように構成され、出力処理を実行させるための出力命令の入力を契機に、モータ毎に出力処理を実行するように構成されているようにしてもよい。
【００１６】
この構成によれば、準備処理を事前に実行させ、出力命令の入力を契機に、準備処理を挟むことなく、各モータの出力処理を連続して実行させるため、出力命令の入力から、モータが起動するまでの時間を短縮することができる。
【００１７】
上記問題点を解決する制御方法は、複数のモータと接続可能に構成され、各モータを駆動させるための制御を行う制御部と、信号を出力する出力部を備えたプログラマブルコントローラに実行させる制御方法において、前記制御部は、ＣＰＵによるものであり、前記制御部に、モータを駆動させるための事前準備を実行する準備処理を実行させた後、当該事前準備に基づき、モータを駆動させるための信号を前記出力部に出力させる出力処理を実行させるように構成されていると共に、複数のモータの駆動を制御させる際、前記制御部に、複数のモータに関する準備処理の少なくとも一部の処理をまとめて実行させた後、モータ毎に残りの準備処理及び出力処理を実行させることを要旨とする。
【００１８】
この構成によれば、モータ毎に、当該モータに関する準備処理及び出力処理を全て実行させる場合と比較して、出力処理の間に実行される準備処理に係わる時間が少なくなるだけ、各モータに対する信号の出力開始の間隔（起動ずれ）を少なくすることができる。
【００１９】
上記制御方法において、複数のモータの駆動を制御させる際、前記制御部にまとめて実行させる準備処理の一部は、モータを駆動させる際のパラメータのチェック処理であるようにしてもよい。
【００２０】
この構成によれば、出力処理とは関係ないパラメータのチェック処理を事前にまとめて実行することにより、各モータに関する出力処理の間に、当該チェック処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００２１】
上記制御方法において、複数のモータの駆動を制御させる際、前記制御部にまとめて実行させる準備処理の一部は、前記パラメータに基づき、モータを駆動させるための信号の出力態様を決定するための決定処理であるようにしてもよい。
【００２２】
この構成によれば、出力処理とは関係ない決定処理を事前にまとめて実行することにより、各モータに関する出力処理の間に、当該決定処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００２３】
上記制御方法において、前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理の全てをまとめて実行させた後、モータ毎に出力処理を実行させるようにしてもよい。
【００２４】
この構成によれば、出力処理とは関係ない複数のモータに係わる準備処理の全てを事前にまとめて実行させることにより、各モータに関する出力処理の間に、準備処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００２５】
上記制御方法において、前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理をまとめて実行させた後、複数のモータに関する出力処理を連続して実行させると共に、出力処理を連続して実行させる際に、他の処理の割込を禁止するようにしてもよい。
【００２６】
この構成によれば、割込処理により、各モータに対する信号出力開始の間に割込処理のための時間が割かれることがなくなる。
上記制御方法において、前記制御部に、複数のモータの駆動を制御させる際、準備処理を実行させるための準備命令の入力を契機に、予め全ての準備処理を実行させると共に、出力処理を実行させるための出力命令の入力を契機に、モータ毎に出力処理を実行させるようにしてもよい。
【００２７】
この構成によれば、準備処理を事前に実行させ、出力命令の入力を契機に、準備処理を挟むことなく、各モータの出力処理を連続して実行させるため、出力命令の入力から、モータが起動するまでの時間を短縮することができる。
【００２８】
上記問題点を解決する制御プログラムは、複数のモータと接続可能に構成され、各モータを駆動させるための制御を行う制御部と、信号を出力する出力部を備えたプログラマブルコントローラに実行させる制御プログラムにおいて、前記制御部は、ＣＰＵによるものであり、前記制御部に、モータを駆動させるための事前準備を実行する準備処理を実行させた後、当該事前準備に基づき、モータを駆動させるための信号を前記出力部に出力させる出力処理を実行させるように構成されていると共に、前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理の少なくとも一部の処理をまとめて実行させた後、モータ毎に残りの準備処理及び出力処理を実行させることを要旨とする。
【００２９】
この構成によれば、モータ毎に、当該モータに関する準備処理及び出力処理を全て実行させる場合と比較して、出力処理の間に実行される準備処理に係わる時間が少なくなるだけ、各モータに対する信号の出力開始の間隔（起動ずれ）を少なくすることができる。
【００３０】
上記制御プログラムにおいて、複数のモータの駆動を制御させる際、前記制御部にまとめて実行させる準備処理の一部は、モータを駆動させる際のパラメータのチェック処理であるようにしてもよい。
【００３１】
この構成によれば、出力処理とは関係ないパラメータのチェック処理を事前にまとめて実行することにより、各モータに関する出力処理の間に、当該チェック処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００３２】
上記制御プログラムにおいて、複数のモータの駆動を制御させる際、前記制御部にまとめて実行させる準備処理の一部は、前記パラメータに基づき、モータを駆動させるための制御情報として信号の出力態様を決定するための決定処理であるようにしてもよい。
【００３３】
この構成によれば、出力処理とは関係ない決定処理を事前にまとめて実行することにより、各モータに関する出力処理の間に、当該決定処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００３４】
上記制御プログラムにおいて、前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理の全てをまとめて実行させた後、モータ毎に出力処理を実行させるようにしてもよい。
【００３５】
この構成によれば、出力処理とは関係ない複数のモータに係わる準備処理の全てを事前にまとめて実行させることにより、各モータに関する出力処理の間に、準備処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００３６】
上記制御プログラムにおいて、前記制御部に、複数のモータの駆動を制御させる際、複数のモータに関する準備処理をまとめて実行させた後、複数のモータに関する出力処理を連続して実行させると共に、出力処理を連続して実行させる際に、他の処理の割込を禁止するようにしてもよい。
【００３７】
この構成によれば、割込処理により、各モータに対する信号出力開始の間に割込処理のための時間が割かれることがなくなる。
上記制御プログラムにおいて、前記制御部に、複数のモータの駆動を制御させる際、準備処理を実行させるための準備命令の入力を契機に、予め全ての準備処理を実行させると共に、出力処理を実行させるための出力命令の入力を契機に、モータ毎に出力処理を実行させるようにしてもよい。
【００３８】
この構成によれば、準備処理を事前に実行させ、出力命令の入力を契機に、準備処理を挟むことなく、各モータの出力処理を連続して実行させるため、出力命令の入力から、モータが起動するまでの時間を短縮することができる。
【発明の効果】
【００３９】
本発明によれば、モータの起動ずれを少なくすることができる。
【図面の簡単な説明】
【００４０】
【図１】プログラマブルコントローラのブロック図。
【図２】準備処理及び出力処理の流れを示すタイムチャート。
【図３】準備処理及び出力処理の流れを示すタイムチャート。
【図４】準備処理及び出力処理の流れを示すタイムチャート。
【図５】準備処理及び出力処理の流れを示すタイムチャート。
【発明を実施するための形態】
【００４１】
（第１実施形態）
以下、本実施形態のプログラマブルコントローラ（ＰＬＣ）について説明する。
図１に示すように、ＰＬＣ１０は、各種情報に基づき、各種処理を実行するＣＰＵ等からなる制御部１１と、各種情報や制御プログラムを記憶保持するＲＡＭやＲＯＭ等からなる記憶部１２を備えている。また、ＰＬＣ１０は、モータ１５を制御するパルスを生成し、出力するパルス出力部１３を備えている。なお、制御部１１は、同時に複数の処理を実行できないものでよく、安価なＣＰＵ等で実現可能となっている。具体的には、１つのＣＰＵ（セントラル・プロセッシング・ユニット、中央演算装置）によるものである。
【００４２】
また、パルス出力部１３には、外部機器としてのモータ１５と接続可能な出力ポート１４が複数設けられている。そして、モータ１５と出力ポート１４が接続されることにより各出力ポート１４とモータ１５の間に通信チャンネルＣＨが形成される。当該通信チャンネルＣＨを介して、パルス出力部１３は、モータ１５に対してモータ制御用のパルス（信号）を出力可能に構成されている。また、接続されるモータ１５は、ステッピングモータやサーボモータなどであり、入力したパルスに対してステップ状に一定角度ずつ回転するように構成されている。
【００４３】
以下の説明において、第１出力ポート１４ａに接続されてパルスが出力されるモータ１５を第１モータ１５ａとし、第１出力ポート１４ａと第１モータ１５ａ間の通信チャンネルＣＨを第１通信チャンネルＣＨ０とする。同様に、第２出力ポート１４ｂに接続されてパルスが出力されるモータ１５を第２モータ１５ｂとし、第２出力ポート１４ｂと第２モータ１５ｂ間の通信チャンネルＣＨを第２通信チャンネルＣＨ１とする。同様に、第３出力ポート１４ｃに接続されてパルスが出力されるモータ１５を第３モータ１５ｃとし、第３出力ポート１４ｃと第３モータ１５ｃ間の通信チャンネルＣＨを第３通信チャンネルＣＨ２とする。
【００４４】
次に、モータ１５を動作させるための制御について説明する。
最初に、モータ１５が１つのみ接続されており、当該モータ１５を制御する場合（第１出力ポート１４ａに第１モータ１５ａが接続されている場合）について説明する。
【００４５】
まず、制御部１１は、記憶部１２に記憶されている制御プログラムに基づき、第１モータ１５ａを制御するための命令やその実行条件などを読み込み、確認する（命令実行条件確認）を行う。
【００４６】
そして、制御部１１は命令パラメータチェックを行う。命令パラメータチェックでは、制御プログラムに基づき、実行すべき命令（回転命令など）と、当該命令を行うときにより細かな設定をするための情報としてのパラメータ（初速、最高速、加減速時間、移動量など）が正常であるかチェックする。例えば、第１モータ１５ａを制御する際に無理な動作や無理な命令が存在しないかチェックする。
【００４７】
次に、制御部１１は、第１モータ１５ａの状態をチェックする（チャンネル状態チェックを行う）。第１モータ１５ａの状態のチェックとは、例えば、第１モータ１５ａの動作中であるか否かについてチェックしたり、第１モータ１５ａに異常が生じているか否かについてチェックしたりする。各モータ１５の状態は、記憶部１２に記憶される。
【００４８】
そして、制御部１１は、第１モータ１５ａの位置決めテーブルを作成する（チャンネル位置決めテーブル作成を行う）。第１モータ１５ａの位置決めテーブルとは、パルス波形（信号の出力態様）を特定するためのテーブル（パルス列の周波数切替テーブル）であり、当該位置決めテーブルに基づき、パルスを生成することができる。言い換えると、パルスの出力態様を決定するためのテーブルである。
【００４９】
すなわち、制御部１１は、命令を実行するためのパラメータ（初速、最高速、加減速時間、移動量など）に基づき、そのパラメータに適合するように第１モータ１５ａを回転させるための位置決めテーブル（パルス列の周波数切替テーブル）を演算して作成することとなる。この位置決めテーブルに基づき、第１モータ１５ａを制御することができる。なお、モータ１５を壊さないために、モータ１５の起動時及び停止時には、低速で動作させる必要がある。つまり、一般的には、モータ１５を起動させた後、徐々に加速させ、その後、一定速度で動作させる。その後、徐々に減速させ、停止させるというような台形制御を行うようになっている。位置決めテーブルは、そのようなことを考慮した上で、演算により作成される。
【００５０】
その後、制御部１１は、作成した位置決めテーブルに基づきパルス出力部１３に当該パルスを出力させるように制御する（パルス出力許可を行う）。
これにより、パルス出力部１３は、位置決めテーブルに基づき、パルスを生成し、第１出力ポート１４ａを介して、作成されたパルスを第１モータ１５ａに順次出力する。このため、第１モータ１５ａは、パルスに基づき、起動を開始する。
【００５１】
なお、命令実行条件確認と、命令パラメータチェックと、チャンネル状態チェックと、チャンネル位置決めテーブル作成は、モータ１５との信号の出力を必要としない処理であり、モータを駆動させるための事前準備を実行する準備処理である。また、出力処理は、事前準備（モータ１５の状態チェックや、パラメータチェック並びに位置決めテーブルの作成）に基づき、モータを駆動させるための信号をパルス出力部１３に出力させる処理である。また、命令パラメータチェックは、準備処理の一部であり、モータを駆動させる際のパラメータのチェック処理となる。また、チャンネル位置決めテーブル作成は、準備処理の一部であり、モータを駆動させるための信号の出力態様を決定するための決定処理となる。
【００５２】
次に、図２に基づき、モータ１５が３つ接続されており、当該３つのモータ１５を制御する場合について説明する。すなわち、第１出力ポート１４ａに第１モータ１５ａが接続され、第２出力ポート１４ｂに第２モータ１５ｂが接続され、第３出力ポート１４ｃに第３モータ１５ｃが接続されている場合について説明する。
【００５３】
まず、制御部１１は、記憶部１２に記憶されている制御プログラムに基づき、各モータ１５を制御するための命令や実行条件を確認する（命令実行条件確認）。この際、接続されている３つのモータ１５に関する命令や実行条件をまとめて確認する。
【００５４】
そして、制御部１１は命令パラメータチェックを行う。この際、接続されている３つのモータ１５に関する命令パラメータチェックをまとめて行う。すなわち、３つのモータ１５を制御するための命令及びパラメータのチェックをまとめて行う。
【００５５】
次に、制御部１１は、接続されているモータ１５毎の制御を予め決められた順番に従って個別に行う。本実施形態では、第１通信チャンネルＣＨ０に接続された第１モータ１５ａに関する制御（チャンネルＣＨ０演算・起動）を最初に実行する。次に第２通信チャンネルＣＨ１に接続された第２モータ１５ｂに関する制御を実行する（チャンネルＣＨ１演算・起動）。最後に第３通信チャンネルＣＨ２に接続された第３モータ１５ｃに関する制御を実行する（チャンネルＣＨ２演算・起動）。
【００５６】
より詳しく説明すると、制御部１１は、第１通信チャンネルＣＨ０の第１モータ１５ａに関する制御を行う際、まず、第１通信チャンネルＣＨ０に接続された第１モータ１５ａの状態をチェックする（チャンネルＣＨ０状態チェック）。そして、制御部１１は、第１モータ１５ａ用のパラメータに基づき、第１通信チャンネルＣＨ０に接続された第１モータ１５ａ用の位置決めテーブルを演算により作成する（チャンネルＣＨ０位置決めテーブル作成）。その後、制御部１１は、作成した第１モータ１５ａの位置決めテーブルに基づき、パルス出力部１３に第１モータ１５ａ用のパルスを出力させるように制御する（チャンネルＣＨ０パルス出力許可）。
【００５７】
これにより、パルス出力部１３は、作成された第１モータ１５ａ用の位置決めテーブルに基づき、パルスを生成し、第１出力ポート１４ａを介して、作成されたパルスを第１通信チャンネルＣＨ０に接続された第１モータ１５ａに順次出力する。そして、第１通信チャンネルＣＨ０に接続された第１モータ１５ａは、当該パルスに基づき、起動を開始する。
【００５８】
次に、制御部１１は、順番に従って、第２通信チャンネルＣＨ１に接続された第２モータ１５ｂに関する制御を行う。この際、まず、第２モータ１５ｂの状態をチェックする（チャンネルＣＨ１状態チェック）。そして、制御部１１は、第２モータ１５ｂ用のパラメータに基づき、第２モータ１５ｂ用の位置決めテーブルを作成する（チャンネルＣＨ１位置決めテーブル作成）。その後、制御部１１は、作成した第２モータ１５ｂ用の位置決めテーブルに基づき、パルス出力部１３に第２モータ１５ｂ用のパルスを出力させるように制御する（チャンネルＣＨ１パルス出力許可）。
【００５９】
これにより、パルス出力部１３は、作成された第２モータ１５ｂ用の位置決めテーブルに基づき、パルスを生成し、第２出力ポート１４ｂを介して、作成されたパルスを第２通信チャンネルＣＨ１に接続された第２モータ１５ｂに順次出力する。これにより、第２通信チャンネルＣＨ１に接続された第２モータ１５ｂは、当該パルスに基づき、起動を開始する。
【００６０】
次に、制御部１１は、順番に従って、第３通信チャンネルＣＨ２の第３モータ１５ｃに関する制御を行う。この際、まず、第３通信チャンネルＣＨ２の第３モータ１５ｃの状態をチェックする（チャンネルＣＨ２状態チェック）。そして、制御部１１は、第３モータ１５ｃ用のパラメータに基づき、第３通信チャンネルＣＨ２の第３モータ１５ｃ用の位置決めテーブルを作成する（チャンネルＣＨ２位置決めテーブル作成）。その後、制御部１１は、作成した位置決めテーブルに基づきパルス出力部１３に第３通信チャンネルＣＨ２の第３モータ１５ｃ用のパルスを出力させるように制御する（チャンネルＣＨ２パルス出力許可）。
【００６１】
これにより、パルス出力部１３は、作成された第３モータ１５ｃ用の位置決めテーブルに基づき、パルスを生成し、第３出力ポート１４ｃを介して、作成されたパルスを第３通信チャンネルＣＨ２に接続された第３モータ１５ｃに順次出力する。そして、第３通信チャンネルＣＨ２に接続された第３モータ１５ｃは、当該パルスに基づき、起動を開始する。
【００６２】
このように、外部との通信（信号の入出力）を必要としない準備処理の少なくとも一部、具体的には、全てのモータ１５を制御するための命令実行条件確認や、全てのモータ１５に関する命令パラメータチェックを、各モータ１５の出力処理の前にまとめて行う。
【００６３】
このため、図２と図５に示すように、モータ１５毎に、当該モータ１５に関する準備処理及び出力処理を全て実行させる場合（図５）と比較して、複数のモータに関する準備処理の一部をまとめて行う方が（図２）、各モータ１５におけるパルスの出力開始の間隔（起動ずれ）を短くすることができる。
【００６４】
より詳しく説明すると、図２におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ１パルス出力許可までの間隔Ｔ２１は、図５におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ１パルス出力許可までの間隔Ｔ５１と比較して、命令パラメータチェックが行われない分、短くなっている。
【００６５】
また、図２におけるチャンネルＣＨ１パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ２２は、図５におけるチャンネルＣＨ１パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ５２と比較して、命令パラメータチェックが行われない分、短くなっている。
【００６６】
同様に、図２におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ２３は、図５におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ５３と比較して、２回の命令パラメータチェックが行われない分、短くなっている。
【００６７】
以上詳述したように、本実施形態は、以下の効果を有する。
（１）制御部１１は、複数のモータ１５の駆動を制御する際、複数のモータ１５に関する準備処理の少なくとも一部の処理をまとめて実行した後、モータ１５毎に残りの準備処理及び出力処理を実行する。より詳しくは、制御部１１は、複数のモータ１５の駆動を制御する際、出力処理の間に実行される準備処理に係る時間が短くなるように、複数のモータ１５に関する準備処理の少なくとも一部の処理をいずれの出力処理よりも前にまとめて実行した後、モータ１５毎に残りの準備処理及び出力処理を実行する。このため、モータ１５毎に、当該モータ１５に関する準備処理及び出力処理を全て実行させる場合（図５）と比較して、複数のモータに関する準備処理の一部（命令実行条件確認及び命令パラメータチェック）をまとめて行う方が（図２）、各モータ１５におけるパルスの出力開始の間隔（起動ずれ）を短くすることができる。
【００６８】
（２）複数のモータ１５の駆動を制御する際、制御部１１がまとめて実行する準備処理の一部は、モータ１５を駆動させる際のパラメータのチェック処理（命令パラメータチェック）である。このように、出力処理とは関係ないチェック処理を事前にまとめて実行することにより、各モータ１５に関する出力処理の間に、当該チェック処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。
【００６９】
（３）処理の順番を変更して、準備処理をまとめて実行しているだけであるため、制御部１１は、複数の処理を同時に行うことができない安価なＣＰＵでも実現可能となっている。すなわち、１つの汎用のＣＰＵによって実現することができ、コストを低減することができる。
【００７０】
（第２実施形態）
次に、本発明を具体化した第２実施形態を説明する。なお、第１実施形態と同様の構成は、第１実施形態と同じ符号を付してその詳細な説明及び図面は省略又は簡略する。
【００７１】
本実施形態において、モータ１５が３つ接続されている。当該３つのモータ１５を制御する場合について説明する。
図３に示すように、まず、制御部１１は、記憶部１２に記憶されている制御プログラムに基づき、各モータ１５を制御するための命令や実行条件を確認する（命令実行条件確認）。この際、接続されている３つのモータ１５に関する命令や実行条件をまとめて確認する。
【００７２】
そして、制御部１１は命令パラメータチェックを行う。この際、接続されている３つのモータ１５に関する命令パラメータチェックをまとめて行う。すなわち、３つのモータ１５を制御するための命令及びパラメータのチェックをまとめて行う。
【００７３】
次に、制御部１１は、パルスを出力させるための出力処理以外の処理、すなわち、残りの準備処理を予め決められた順番に従って個別に行う。本実施形態では、第１通信チャンネルＣＨ０に接続された第１モータ１５ａに関する残りの準備処理を最初に実行する（チャンネルＣＨ０演算）。次に第２通信チャンネルＣＨ１に接続された第２モータ１５ｂに関する残りの準備処理を実行する（チャンネルＣＨ１演算）。最後に第３通信チャンネルＣＨ２に接続された第３モータ１５ｃに関する制御を実行する（チャンネルＣＨ２演算）。
【００７４】
より詳しく説明すると、制御部１１は、第１モータ１５ａに関して、残りの準備処理を行う際、まず、第１通信チャンネルＣＨ０に接続された第１モータ１５ａの状態をチェックする（チャンネルＣＨ０状態チェック）。そして、制御部１１は、第１モータ１５ａ用のパラメータに基づき、第１通信チャンネルＣＨ０に接続された第１モータ１５ａの位置決めテーブルを演算により作成する（チャンネルＣＨ０位置決めテーブル作成）。
【００７５】
次に、制御部１１は、順番に従って、第２モータ１５ｂに関して、残りの準備処理を行う際、まず、第２通信チャンネルＣＨ１に接続された第２モータ１５ｂの状態をチェックする（チャンネルＣＨ１状態チェック）。そして、制御部１１は、第２モータ１５ｂ用のパラメータに基づき、第２通信チャンネルＣＨ１に接続された第２モータ１５ｂの位置決めテーブルを演算により作成する（チャンネルＣＨ１位置決めテーブル作成）。
【００７６】
次に、制御部１１は、順番に従って、第３モータ１５ｃに関して、残りの準備処理を行う際、まず、第３通信チャンネルＣＨ２に接続された第３モータ１５ｃの状態をチェックする（チャンネルＣＨ２状態チェック）。そして、制御部１１は、第３モータ１５ｃ用のパラメータに基づき、第３通信チャンネルＣＨ２に接続された第３モータ１５ｃの位置決めテーブルを演算により作成する（チャンネルＣＨ２位置決めテーブル作成）。
【００７７】
各モータ１５について、残りの準備処理をそれぞれ実行した後、制御部１１は、パルスを出力させるための出力処理を予め決められた順番に従って個別に行う（チャンネルＣＨ０〜ＣＨ２起動）。本実施形態では、第１通信チャンネルＣＨ０に接続された第１モータ１５ａに関する出力処理を最初に実行する。次に第２通信チャンネルＣＨ１に接続された第２モータ１５ｂに関する出力処理を実行し、最後に第３通信チャンネルＣＨ２に接続された第３モータ１５ｃに関する出力処理を実行する。
【００７８】
すなわち、制御部１１は、作成した第１モータ１５ａの位置決めテーブルに基づき、パルス出力部１３に第１モータ１５ａ用のパルスを出力させるように制御する（チャンネルＣＨ０パルス出力許可）。これにより、パルス出力部１３は、作成された第１モータ１５ａ用の位置決めテーブルに基づき、パルスを生成し、第１出力ポート１４ａを介して、作成されたパルスを第１通信チャンネルＣＨ０に接続された第１モータ１５ａに順次出力する。そして、第１通信チャンネルＣＨ０に接続された第１モータ１５ａは、当該パルスに基づき、起動を開始する。
【００７９】
次に、制御部１１は、作成した第２モータ１５ｂの位置決めテーブルに基づき、パルス出力部１３に第２モータ１５ｂ用のパルスを出力させるように制御する（チャンネルＣＨ１パルス出力許可）。これにより、パルス出力部１３は、作成された第２モータ１５ｂ用の位置決めテーブルに基づき、パルスを生成し、第２出力ポート１４ｂを介して、作成されたパルスを第２通信チャンネルＣＨ１に接続された第２モータ１５ｂに順次出力する。そして、第２通信チャンネルＣＨ１に接続された第２モータ１５ｂは、当該パルスに基づき、起動を開始する。
【００８０】
最後に、制御部１１は、作成した第３モータ１５ｃの位置決めテーブルに基づき、パルス出力部１３に第３モータ１５ｃ用のパルスを出力させるように制御する（チャンネルＣＨ２パルス出力許可）。これにより、パルス出力部１３は、作成された第３モータ１５ｃ用の位置決めテーブルに基づき、パルスを生成し、第３出力ポート１４ｃを介して、作成されたパルスを第３通信チャンネルＣＨ２に接続された第３モータ１５ｃに順次出力する。そして、第３通信チャンネルＣＨ２に接続された第３モータ１５ｃは、当該パルスに基づき、起動を開始する。
【００８１】
なお、本実施形態において、各モータ１５に関する出力処理を連続している間、割込処理が禁止されるように構成されている。
このように、外部との通信（信号の入出力）を必要としない位置決めテーブルの準備処理の少なくとも一部、具体的には、全てのモータ１５の命令実行条件確認や、全てのモータ１５に関する命令パラメータチェックを、各モータ１５の出力処理の前にまとめて行う。また、複数のモータ１５の状態チェックや、複数のモータ１５の位置決めテーブルの作成を、各モータ１５の出力処理の前にまとめて行う。すなわち、出力処理の間に、外部との通信（信号の入出力）を必要としない準備処理を極力挟まないように、事前にまとめて実行させている。
【００８２】
このため、図３と図５に示すように、モータ１５毎に、当該モータ１５に関する準備処理及び出力処理を全て実行させる場合（図５）と比較して、複数のモータに関する準備処理をまとめて行う方が（図３）、各モータ１５におけるパルスの出力開始の間隔（起動ずれ）を短くすることができる。
【００８３】
より詳しく説明すると、図３におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ１パルス出力許可までの間隔Ｔ３１は、図５におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ１パルス出力許可までの間隔Ｔ５１と比較して、準備処理が行われない分、短くなっている。
【００８４】
また、図３におけるチャンネルＣＨ１パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ３２は、図５におけるチャンネルＣＨ１パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ５２と比較して、準備処理が行われない分、短くなっている。
【００８５】
同様に、図３におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ３３は、図５におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ５３と比較して、２つの準備処理が行われない分、短くなっている。
【００８６】
以上詳述したように、本実施形態は、第１実施形態における（１）〜（３）と同様の効果と共に、以下の効果を有する。
（４）複数のモータ１５の駆動を制御させる際、制御部１１にまとめて実行させる準備処理の一部は、パラメータに基づき、モータ１５を駆動させるための信号の出力態様（位置決めテーブル）を決定するための決定処理である。このように、出力処理とは関係ない決定処理を事前にまとめて実行することにより、各モータ１５に関する出力処理の間に、当該決定処理をする必要が無くなり、その分だけ出力開始の間隔を少なくすることができる。従って、各モータ１５に対するパルス出力開始の間隔を少なくすることができ、各モータ１５の起動ずれを少なくすることができる。
【００８７】
（５）各モータ１５に関する出力処理が連続して実行されている間、割込処理が禁止される。このため、割込処理により、各モータ１５に対するパルス出力開始の間に割込処理のための時間が割かれることがなくなる。
【００８８】
（第３実施形態）
次に、本発明を具体化した第３実施形態を説明する。なお、第１実施形態と同様の構成は、第１実施形態と同じ符号を付してその詳細な説明及び図面は省略又は簡略する。
【００８９】
本実施形態において、モータ１５が３つ接続されており、当該３つのモータ１５を制御する場合について説明する。本実施形態では、モータ１５の位置決めテーブルを作成するための準備処理と、パルスを出力させるための出力処理が分けられており、別の命令により実行されるように構成されている。すなわち、実行契機を異なるものとしており、準備処理を実行させるための準備命令を受けても、出力処理を実行させないように構成されている。そして、出力処理を実行させるため出力命令を受けても、準備処理を実行させないように構成されている。以下、詳しく説明する。
【００９０】
図４に示すように、まず、制御部１１は、記憶部１２に記憶されている制御プログラムに基づき、各モータ１５を制御するための命令や実行条件を確認する（命令実行条件確認）。接続されている３つのモータ１５に関する命令や実行条件をまとめて確認する。
【００９１】
この際、制御部１１は、準備処理の実行を示す準備命令の入力を確認することを契機に、命令パラメータチェックを行う。この際、接続されている３つのモータ１５に関する命令パラメータチェックをまとめて行う。すなわち、３つのモータ１５を制御するための命令及びパラメータのチェックをまとめて行う。
【００９２】
次に、制御部１１は、パルスを出力させるための出力処理以外の処理、すなわち、残りの準備処理を予め決められた順番に従って個別に行う。本実施形態では、第１通信チャンネルＣＨ０に接続された第１モータ１５ａに関する残りの準備処理を最初に実行する（チャンネルＣＨ０演算）。次に第２通信チャンネルＣＨ１に接続された第２モータ１５ｂに関する残りの準備処理を実行する（チャンネルＣＨ１演算）。最後に第３通信チャンネルＣＨ２に接続された第３モータ１５ｃに関する制御を実行する（チャンネルＣＨ２演算）。これらの制御を全て終了すると、準備命令に基づく処理を終了する。なお、これらの制御は、第２実施形態と同様であるため、詳細な説明を省略する。
【００９３】
そして、制御部１１は、記憶部１２に記憶されている制御プログラムに基づき、各モータ１５を制御するための命令や実行条件を確認した際、出力処理の実行を示す出力命令の入力を確認することを契機に、パルスを出力させるための出力処理を予め決められた順番に従って個別に行う（チャンネルＣＨ０〜ＣＨ２起動）。本実施形態では、第１通信チャンネルＣＨ０に接続された第１モータ１５ａに関する出力処理を最初に実行する。次に第２通信チャンネルＣＨ１に接続された第２モータ１５ｂに関する出力処理を実行する。最後に第３通信チャンネルＣＨ２に接続された第３モータ１５ｃに関する出力処理を実行する。なお、これらの出力処理は、第２実施形態と同様であるため、詳細な説明を省略する。
【００９４】
このように、外部との通信（信号の入出力）を必要としない位置決めテーブルの準備処理の少なくとも一部、具体的には、全てのモータ１５を制御するための命令や実行条件の確認や、全てのモータ１５に関する命令パラメータチェックを、各モータ１５の出力処理の前にまとめて行う。また、複数のモータ１５の状態チェックや、複数のモータ１５の位置決めテーブルの作成を、各モータ１５の出力処理の前にまとめて行う。すなわち、出力処理の間に、外部との通信（信号の入出力）を必要としない準備処理を極力挟まないように、事前にまとめて実行させている。このため、図４と図５に示すように、モータ１５毎に、当該モータ１５に関する準備処理及び出力処理を全て実行させる場合（図５）と比較して、複数のモータに関する準備処理をまとめて行う方が（図４）、各モータ１５におけるパルスの出力開始の間隔（起動ずれ）を短くすることができる。
【００９５】
より詳しく説明すると、図４におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ１パルス出力許可までの間隔Ｔ４１は、図５におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ１パルス出力許可までの間隔Ｔ５１と比較して、準備処理が行われない分、短くなっている。
【００９６】
また、図４におけるチャンネルＣＨ１パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ４２は、図５におけるチャンネルＣＨ１パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ５２と比較して、準備処理が行われない分、短くなっている。
【００９７】
同様に、図４におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ４３は、図５におけるチャンネルＣＨ０パルス出力許可からチャンネルＣＨ２パルス出力許可までの間隔Ｔ５３と比較して、２つの準備処理が行われない分、短くなっている。
【００９８】
また、準備命令の入力を契機に準備処理を事前に実行させ、出力命令の入力を契機に、準備処理を挟むことなく、各モータ１５の出力処理を連続して実行させた。これにより、出力命令の入力から、モータ１５が起動するまでの時間を短縮することができる。
【００９９】
すなわち、図４において、命令実行条件確認からチャンネルＣＨ０パルス出力許可までの間隔Ｔ４４は、図３における命令実行条件確認からチャンネルＣＨ０パルス出力許可までの間隔Ｔ３４と比較して、準備処理が行われない分、短くなっている。
【０１００】
以上詳述したように、本実施形態は、第１実施形態の（１）〜（３）、第２実施形態の（３）の効果と共に、以下の効果を有する。
（６）制御部１１は、複数のモータ１５の駆動を制御する際、準備処理を実行させるための準備命令の入力を契機に、まとめて実行すると決められた準備処理をまとめて実行する。そして、制御部１１は、出力処理を実行させるための出力命令の入力を契機に、モータ１５毎に出力処理を実行する。このように、準備処理を事前に実行させ、出力命令の入力を契機に、準備処理を挟むことなく、各モータ１５の出力処理を連続して実行させた。これにより、出力命令の入力から、モータ１５が起動するまでの時間を短縮することができる。
【０１０１】
なお、上記実施形態は、次のような別の実施形態（別例）にて具体化できる。
・上記実施形態において、出力ポート１４の数、通信チャンネルＣＨの数、モータ１５の数は任意に変更しても良い。
【０１０２】
・上記実施形態において、モータの状態チェックは、準備処理の中に含ませたが、出力処理の中に含ませても良い。
・上記第２実施形態及び第３実施形態において、モータ毎に、モータの状態チェックを行った後、位置決めテーブルの作成を行っていたが、モータの状態チェックをまとめて実行すると共に、位置決めテーブルの作成をまとめて行っても良い。
【０１０３】
・上記実施形態において、準備処理の内容は、モータ１５を駆動させるためのパルスを出力するものでないのであれば、任意に変更、追加してもよい。
・上記実施形態において、モータ１５を駆動させるための信号は、パルス信号でなくてもよい。
【０１０４】
・上記実施形態において、事前にまとめて実行する準備処理の一部は、任意に変更してもよい。
・上記第３実施形態において、出力命令の入力を契機に出力処理のみを連続して実行させたが、準備処理の一部を実行させても良い。
【０１０５】
次に、上記実施形態及び別例から把握できる技術的思想を以下に追記する。
（イ）複数のモータと接続可能に構成されるプログラマブルコントローラにおいて、各モータを駆動させるための制御を行う制御部と、信号を出力する出力部を備え、前記制御部は、モータを駆動させるための事前準備を実行する準備処理を実行した後、当該事前準備に基づき、モータを駆動させるための信号を前記出力部に出力させる出力処理を実行するように構成されており、前記制御部は、複数のモータの駆動を制御する際、複数のモータに関する準備処理の少なくとも一部の処理を、途中に出力処理を挟むことなく、まとめて実行した後、残りの準備処理がある場合には、モータ毎に残りの準備処理及び出力処理を実行し、残りの準備処理がない場合には、モータ毎に出力処理を連続して実行することを特徴とするプログラマブルコントローラ。
【符号の説明】
【０１０６】
１０…プログラマブルコントローラ（ＰＬＣ）、１１…制御部、１２…記憶部、１３…パルス出力部、１４…出力ポート、１４ａ〜１４ｃ…第１出力ポート〜第３出力ポート、１５…モータ、１５ａ〜１５ｃ…第１モータ〜第３モータ、ＣＨ０〜ＣＨ２…第１通信チャンネル〜第３通信チャンネル。
【図１】
2015210751.tif 000003
【図２】
2015210751.tif 000004
【図３】
2015210751.tif 000005
【図４】
2015210751.tif 000006
【図５】
2015210751.tif 000007