(57)【要約】【課題】本発明は、シリアル通信プロトコルについて熟練を要することなく、簡易なラダープログラムによってモータに所望の動作をさせることができるプログラマブルコントローラ、拡張ユニット及びプログラム作成支援システムを提供する。【解決手段】制御プログラム及びパラメータ情報の入力を受け付け、入力を受け付けた制御プログラム及びパラメータ情報、並びに制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスに記憶される、モータドライバに対して指令を実行するか否かを示す指令デバイスのオンオフに関する情報を含むデバイス情報を記憶する。記憶された制御プログラムの実行中にデバイス情報が記憶されているデバイスを監視し、オン状態であることが検出された場合、パラメータ情報に基づいて、指令デバイスに対応する指令を実行する通信コマンドを生成し、モータドライバへ送信する。【選択図】図３
2015087897.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークに接続された少なくとも一のモータドライバの機能又は動作を設定するパラメータ情報を変更するプログラマブルコントローラにおいて、
前記プログラマブルコントローラを制御するために所定の周期で繰り返し実行される制御プログラム、及び前記モータドライバが駆動するモータに所望の動作をさせるパラメータ情報の入力を受け付ける入力受付部と、
入力を受け付けた制御プログラム及びパラメータ情報、並びに前記制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスに記憶される、前記モータドライバに対して指令を実行するか否かを示す指令デバイスのオンオフに関する情報を含むデバイス情報を記憶する情報記憶部と、
記憶された制御プログラムを実行する制御プログラム実行部と、
前記制御プログラムの実行中に前記デバイス情報が記憶されているデバイスを監視し、前記指令デバイスがオン状態であることを検出する指令検出部と、
前記指令デバイスがオン状態であることが検出された場合、記憶されているパラメータ情報に基づいて、少なくとも前記モータドライバに対するパラメータ設定指令を含む、前記指令デバイスに対応する指令を実行する通信コマンドを生成する通信コマンド生成部と、
生成された通信コマンドを前記モータドライバへ送信する通信コマンド送信部と
を備えることを特徴とするプログラマブルコントローラ。
【請求項２】
ＣＰＵユニットと、
該ＣＰＵユニットとデータ通信することが可能に接続された一又は複数の拡張ユニットと
で構成されており、
前記ＣＰＵユニットは、前記入力受付部、前記情報記憶部及び前記制御プログラム実行部を備え、
前記拡張ユニットは、前記指令検出部、前記通信コマンド生成部及び前記通信コマンド送信部を備えることを特徴とする請求項１に記載のプログラマブルコントローラ。
【請求項３】
前記ＣＰＵユニットの前記情報記憶部は、所定の前記デバイスに記憶されている前記パラメータ情報を記憶し、
前記拡張ユニットの前記通信コマンド生成部は、所定の前記デバイスに記憶されているパラメータ情報を読み出し、読み出したパラメータ情報に基づいて前記通信コマンドを生成することを特徴とする請求項２に記載のプログラマブルコントローラ。
【請求項４】
前記指令検出部は、さらに、前記モータドライバに対する動作開始指令の指令デバイスがオン状態であることを検出し、
前記通信コマンド生成部は、前記パラメータ情報の前記モータドライバへの書込指令を実行させる第１の通信コマンド、及び前記モータの動作指令を実行させる第２の通信コマンドを生成することを特徴とする請求項１乃至３のいずれか一項に記載のプログラマブルコントローラ。
【請求項５】
前記通信コマンド生成部は、前記拡張ユニットが前記モータドライバの現在の状態に関する情報を読み出す第３の通信コマンドを生成し、
前記通信コマンド送信部は、前記第１の通信コマンド又は前記第２の通信コマンドを前記第３の通信コマンドよりも優先して送信することを特徴とする請求項４に記載のプログラマブルコントローラ。
【請求項６】
前記ＣＰＵユニットのデバイスから読み出したパラメータ情報と、前記拡張ユニットに読み出して記憶されている前記モータドライバのパラメータ情報との間に差分が存在するか否かを判断し、
差分が存在すると判断した場合、前記拡張ユニットは、差分のみを前記モータドライバに書き込み、前記ＣＰＵユニットのデバイスから読み出したパラメータ情報を記憶することを特徴とする請求項１乃至５のいずれか一項に記載のプログラマブルコントローラ。
【請求項７】
モータを駆動するモータドライバが接続されるプログラマブルコントローラと、
該プログラマブルコントローラとデータ通信することが可能に接続されたプログラム作成支援装置と
を有するプログラム作成支援システムにおいて、
前記プログラム作成支援装置は、
ユーザ操作に基づいて、前記プログラマブルコントローラを制御するために所定の周期で繰り返し実行される制御プログラム及び前記モータドライバが駆動するモータに所望の動作をさせるパラメータ情報の入力を受け付ける手段と、
前記制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスであって、前記モータドライバに対して指令を実行するか否かを示す指令デバイスの指定を受け付ける手段と、
入力を受け付けた前記制御プログラム及び前記パラメータ情報を前記プログラマブルコントローラへ送信する手段と
を備え、
前記プログラマブルコントローラは、
前記制御プログラム及び前記パラメータ情報の入力を受け付ける入力受付部と、
入力を受け付けた制御プログラム及びパラメータ情報、並びに前記指令デバイスのオンオフに関する情報を含むデバイス情報を記憶する情報記憶部と、
記憶された制御プログラムを実行する制御プログラム実行部と、
前記制御プログラムの実行中に前記デバイス情報が記憶されているデバイスを監視し、前記指令デバイスがオン状態であることを検出する指令検出部と、
前記指令デバイスがオン状態であることが検出された場合、記憶されているパラメータ情報に基づいて、少なくとも前記モータドライバに対するパラメータ設定指令を含む、前記指令デバイスに対応する指令を実行する通信コマンドを生成する通信コマンド生成部と、
生成された通信コマンドを前記モータドライバへ送信する通信コマンド送信部と
を備えることを特徴とするプログラム作成支援システム。
【請求項８】
ネットワークに接続された少なくとも一のモータドライバの機能又は動作を設定するパラメータ情報を変更するプログラマブルコントローラに含まれており、所定の周期で制御プログラムを繰り返し実行するＣＰＵユニットとデータ通信することが可能に接続された一又は複数の拡張ユニットにおいて、
前記ＣＰＵユニットには、前記制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスに記憶される、前記モータドライバに対して指令を実行するか否かを示す指令デバイスのオンオフに関する情報を含むデバイス情報が記憶されており、
前記ＣＰＵユニットによる前記制御プログラムの実行中に前記デバイス情報が記憶されているデバイスを監視し、前記指令デバイスがオン状態であることを検出する指令検出部と、
前記指令デバイスがオン状態であることが検出された場合、前記ＣＰＵユニットの前記メモリ領域に記憶されているパラメータ情報に基づいて、少なくとも前記モータドライバに対するパラメータ設定指令を含む、前記指令デバイスに対応する指令を実行する通信コマンドを生成する通信コマンド生成部と、
生成された通信コマンドを前記モータドライバへ送信する通信コマンド送信部と
を備えることを特徴とする拡張ユニット。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、簡易なラダープログラムによって、モータドライバのパラメータを設定することができるプログラマブルコントローラ、拡張ユニット及びプログラム作成支援システムに関する。
【背景技術】
【０００２】
従来、各種のアクチュエータを駆動するモータ等の駆動源に対しては、モータドライバが駆動電流を供給する。製造現場では、モータドライバのパラメータ設定を変更することにより、モータに所望の動作をさせることができる。
【０００３】
モータドライバのパラメータ設定の変更は、様々な手段で行うことができる。例えばモータドライバに直接設定しても良いが、その場合にはすべてのモータドライバにコンピュータ（プログラム作成支援装置）を接続して設定する必要があり、作業が煩雑になるうえ、プログラマブルコントローラからパラメータ設定を動的に変更することもできない。また、パルス列入力によりパラメータ設定を変更する場合には、ラダープログラムの難易度が高くなり、フィールドネットワーク接続を用いる場合には、モータドライバ自体がフィールドネットワーク接続に対応している必要があるという問題があった。
【０００４】
そこで、例えばＲＳ−２３２Ｃ接続のようなシリアル通信を用いてプログラマブルコントローラとデータ通信することにより、モータドライバのパラメータ設定の変更を行うことが多い。例えば特許文献１に開示されたプログラマブルコントローラ（シリアル通信ユニットと接続されたＣＰＵユニット）は、モータドライバにパラメータ設定の変更コマンドを送信することで、モータドライバのパラメータ設定を変更することができる。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００６−２７７７３３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかし、プログラマブルコントローラからパラメータ設定の変更コマンドを送信する場合、パラメータを送受信するためのシリアル通信プログラムを含むラダープログラムを作成する必要がある。シリアル通信プログラムを含むラダープログラムの作成には、シリアル通信プロトコルについてある程度の熟練を要し、またラダープログラムの作成にも相当の時間を要するという問題点があった。
【０００７】
本発明は斯かる事情に鑑みてなされたものであり、シリアル通信プロトコルについて熟練を要することなく、簡易なラダープログラムによってモータに所望の動作をさせることができるプログラマブルコントローラ、拡張ユニット及びプログラム作成支援システムを提供することを目的とする。
【課題を解決するための手段】
【０００８】
上記目的を達成するために第１発明に係るプログラマブルコントローラは、ネットワークに接続された少なくとも一のモータドライバの機能又は動作を設定するパラメータ情報を変更するプログラマブルコントローラにおいて、前記プログラマブルコントローラを制御するために所定の周期で繰り返し実行される制御プログラム、及び前記モータドライバが駆動するモータに所望の動作をさせるパラメータ情報の入力を受け付ける入力受付部と、入力を受け付けた制御プログラム及びパラメータ情報、並びに前記制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスに記憶される、前記モータドライバに対して指令を実行するか否かを示す指令デバイスのオンオフに関する情報を含むデバイス情報を記憶する情報記憶部と、記憶された制御プログラムを実行する制御プログラム実行部と、前記制御プログラムの実行中に前記デバイス情報が記憶されているデバイスを監視し、前記指令デバイスがオン状態であることを検出する指令検出部と、前記指令デバイスがオン状態であることが検出された場合、記憶されているパラメータ情報に基づいて、少なくとも前記モータドライバに対するパラメータ設定指令を含む、前記指令デバイスに対応する指令を実行する通信コマンドを生成する通信コマンド生成部と、生成された通信コマンドを前記モータドライバへ送信する通信コマンド送信部とを備えることを特徴とする。
【０００９】
また、第２発明に係るプログラマブルコントローラは、第１発明において、ＣＰＵユニットと、該ＣＰＵユニットとデータ通信することが可能に接続された一又は複数の拡張ユニットとで構成されており、前記ＣＰＵユニットは、前記入力受付部、前記情報記憶部及び前記制御プログラム実行部を備え、前記拡張ユニットは、前記指令検出部、前記通信コマンド生成部及び前記通信コマンド送信部を備えることを特徴とする。
【００１０】
また、第３発明に係るプログラマブルコントローラは、第２発明において、前記ＣＰＵユニットの前記情報記憶部は、所定の前記デバイスに記憶されている前記パラメータ情報を記憶し、前記拡張ユニットの前記通信コマンド生成部は、所定の前記デバイスに記憶されているパラメータ情報を読み出し、読み出したパラメータ情報に基づいて前記通信コマンドを生成することを特徴とする。
【００１１】
また、第４発明に係るプログラマブルコントローラは、第１乃至第３発明のいずれか１つにおいて、前記指令検出部は、さらに、前記モータドライバに対する動作開始指令の指令デバイスがオン状態であることを検出し、前記通信コマンド生成部は、前記パラメータ情報の前記モータドライバへの書込指令を実行させる第１の通信コマンド、及び前記モータの動作指令を実行させる第２の通信コマンドを生成することを特徴とする。
【００１２】
また、第５発明に係るプログラマブルコントローラは、第４発明において、前記通信コマンド生成部は、前記拡張ユニットが前記モータドライバの現在の状態に関する情報を読み出す第３の通信コマンドを生成し、前記通信コマンド送信部は、前記第１の通信コマンド又は前記第２の通信コマンドを前記第３の通信コマンドよりも優先して送信することを特徴とする。
【００１３】
また、第６発明に係るプログラマブルコントローラは、第１乃至第５発明のいずれか１つにおいて、前記ＣＰＵユニットのデバイスから読み出したパラメータ情報と、前記拡張ユニットに読み出して記憶されている前記モータドライバのパラメータ情報との間に差分が存在するか否かを判断し、差分が存在すると判断した場合、前記拡張ユニットは、差分のみを前記モータドライバに書き込み、前記ＣＰＵユニットのデバイスから読み出したパラメータ情報を記憶することを特徴とする。
【００１４】
次に、上記目的を達成するために第７発明に係るプログラム作成支援システムは、モータを駆動するモータドライバが接続されるプログラマブルコントローラと、該プログラマブルコントローラとデータ通信することが可能に接続されたプログラム作成支援装置とを有するプログラム作成支援システムにおいて、前記プログラム作成支援装置は、ユーザ操作に基づいて、前記プログラマブルコントローラを制御するために所定の周期で繰り返し実行される制御プログラム及び前記モータドライバが駆動するモータに所望の動作をさせるパラメータ情報の入力を受け付ける手段と、前記制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスであって、前記モータドライバに対して指令を実行するか否かを示す指令デバイスの指定を受け付ける手段と、入力を受け付けた前記制御プログラム及び前記パラメータ情報を前記プログラマブルコントローラへ送信する手段とを備え、前記プログラマブルコントローラは、前記制御プログラム及び前記パラメータ情報の入力を受け付ける入力受付部と、入力を受け付けた制御プログラム及びパラメータ情報、並びに前記指令デバイスのオンオフに関する情報を含むデバイス情報を記憶する情報記憶部と、記憶された制御プログラムを実行する制御プログラム実行部と、前記制御プログラムの実行中に前記デバイス情報が記憶されているデバイスを監視し、前記指令デバイスがオン状態であることを検出する指令検出部と、前記指令デバイスがオン状態であることが検出された場合、記憶されているパラメータ情報に基づいて、少なくとも前記モータドライバに対するパラメータ設定指令を含む、前記指令デバイスに対応する指令を実行する通信コマンドを生成する通信コマンド生成部と、生成された通信コマンドを前記モータドライバへ送信する通信コマンド送信部とを備えることを特徴とする。
【００１５】
次に、上記目的を達成するために第８発明に係る拡張ユニットは、ネットワークに接続された少なくとも一のモータドライバの機能又は動作を設定するパラメータ情報を変更するプログラマブルコントローラに含まれており、所定の周期で制御プログラムを繰り返し実行するＣＰＵユニットとデータ通信することが可能に接続された一又は複数の拡張ユニットにおいて、前記ＣＰＵユニットには、前記制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスに記憶される、前記モータドライバに対して指令を実行するか否かを示す指令デバイスのオンオフに関する情報を含むデバイス情報が記憶されており、前記ＣＰＵユニットによる前記制御プログラムの実行中に前記デバイス情報が記憶されているデバイスを監視し、前記指令デバイスがオン状態であることを検出する指令検出部と、前記指令デバイスがオン状態であることが検出された場合、前記ＣＰＵユニットの前記メモリ領域に記憶されているパラメータ情報に基づいて、少なくとも前記モータドライバに対するパラメータ設定指令を含む、前記指令デバイスに対応する指令を実行する通信コマンドを生成する通信コマンド生成部と、生成された通信コマンドを前記モータドライバへ送信する通信コマンド送信部とを備えることを特徴とする。
【００１６】
第１発明では、プログラマブルコントローラは、ネットワークに接続された少なくとも一のモータドライバの機能又は動作を設定するパラメータ情報を変更する。プログラマブルコントローラは、プログラマブルコントローラを制御するために所定の周期で繰り返し実行される制御プログラム、及びモータドライバが駆動するモータに所望の動作をさせるパラメータ情報の入力を受け付け、入力を受け付けた制御プログラム及びパラメータ情報、並びに制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスに記憶される、モータドライバに対して指令を実行するか否かを示す指令デバイスのオンオフに関する情報を含むデバイス情報を記憶する。プログラマブルコントローラは、記憶された制御プログラムを実行し、制御プログラムの実行中にデバイス情報が記憶されているデバイスを監視し、指令デバイスがオン状態であることを検出する。指令デバイスがオン状態であることが検出された場合、記憶されているパラメータ情報に基づいて、少なくともモータドライバに対するパラメータ設定指令を含む、指令デバイスに対応する指令を実行する通信コマンドを生成し、生成された通信コマンドをモータドライバへ送信する。これにより、記憶されているデバイス情報から指令デバイスがオン状態であることを検出した時点で、記憶されているパラメータ情報に基づいて指令デバイスに対応する指令を実行する通信コマンドを生成してモータドライバへ送信するので、指令デバイスをオン／オフする簡易なラダープログラムで、モータドライバのパラメータ情報を変更することができ、シリアル通信プロトコルについて熟練を要することなく、容易にモータに所望の動作をさせることが可能となる。また、簡易なラダープログラムでパラメータ情報を変更することができるので、プログラマブルコントローラの使い勝手を向上させることも可能となる。
【００１７】
第２発明では、プログラマブルコントローラは、ＣＰＵユニットと、該ＣＰＵユニットとデータ通信することが可能に接続された一又は複数の拡張ユニットとで構成されており、ＣＰＵユニットは、入力受付部、情報記憶部及び制御プログラム実行部を備え、拡張ユニットは、指令検出部、通信コマンド生成部及び通信コマンド送信部を備えるので、ＣＰＵユニットで実行されるラダープログラムは、ＣＰＵユニットの指令デバイスをオン／オフする簡易なプログラムで良く、拡張ユニットが、ＣＰＵユニットに記憶されているパラメータ情報を取得してモータドライバに書き込むことでモータドライバのパラメータ情報を変更することができ、モータに所望の動作をさせることが可能となる。また、既存のＣＰＵユニットに本発明に係る拡張ユニットを接続することで本発明の効果を奏することができ、既存のＣＰＵユニットを汎用的に用いることが可能となる。
【００１８】
第３発明では、ＣＰＵユニットの情報記憶部は、所定のデバイスに記憶されているパラメータ情報を記憶し、拡張ユニットの通信コマンド生成部は、所定のデバイスに記憶されているパラメータ情報を読み出し、読み出したパラメータ情報に基づいて指令を実行する通信コマンドを生成するので、拡張ユニットは、ＣＰＵユニットのデバイス情報の読み出しを通じてモータドライバのパラメータ情報を容易に取得することができ、ラダープログラムによりモータドライバのパラメータ情報を容易に変更することが可能となる。また、拡張ユニットが主体的に、ＣＰＵユニットのデバイス情報を読み出すようにすることで、プログラマブルロジックコントローラ（ＰＬＣ）のシステム設計が複雑化するのを未然に防止することも可能となる。
【００１９】
第４発明では、さらに、モータドライバに対する動作開始指令の指令デバイスがオン状態であることを検出し、パラメータ情報のモータドライバへの書込指令を実行させる第１の通信コマンド、及びモータの動作指令を実行させる第２の通信コマンドを生成するので、パラメータ情報の設定と、モータの動作の開始とを同時に行うことが可能となる。特に、ユーザはモータの動作を開始させる通信コマンドの生成を意識することなく、所望のパラメータ情報にてモータを動作させることが可能となる。
【００２０】
第５発明では、拡張ユニットは、モータドライバの現在の状態に関する情報を読み出す第３の通信コマンドを生成し、第１の通信コマンド又は第２の通信コマンドを第３の通信コマンドよりも優先して送信するので、モータドライバの現在の状態に関する情報（例えば設定されているパラメータ情報）を読み出す第３の通信コマンドよりも、モータの動作に関する第１又は第２の通信コマンドを優先して実行することができ、モータの動作待ち状態の発生を未然に回避することが可能となる。また、ネットワーク上における通信コマンドのコリジョン（衝突）を未然に防止することができ、プログラマブルコントローラの動作が不安定になることを回避することが可能となる。
【００２１】
第６発明では、ＣＰＵユニットのデバイスから読み出したパラメータ情報と、拡張ユニットに読み出して記憶されているモータドライバのパラメータ情報との間に差分が存在するか否かを判断し、差分が存在すると判断した場合、拡張ユニットは、差分のみをモータドライバに書き込み、ＣＰＵユニットのデバイスから読み出したパラメータ情報を記憶する。これにより、差分に関する情報のみを拡張ユニットとモータドライバとの間でデータ通信すれば足りるので、全体としてデータ通信量を減らすことができ、ひいては通信効率を向上させることが可能となる。
【００２２】
第７発明では、モータを駆動するモータドライバが接続されるプログラマブルコントローラと、該プログラマブルコントローラとデータ通信することが可能に接続されたプログラム作成支援装置とを有する。プログラム作成支援装置は、ユーザ操作に基づいて、プログラマブルコントローラを制御するために所定の周期で繰り返し実行される制御プログラム及びモータドライバが駆動するモータに所望の動作をさせるパラメータ情報の入力を受け付け、制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスであって、モータドライバに対して指令を実行するか否かを示す指令デバイスの指定を受け付ける。入力を受け付けた制御プログラム及びパラメータ情報をプログラマブルコントローラへ送信する。プログラマブルコントローラは、制御プログラム及び前記パラメータ情報の入力を受け付け、入力を受け付けた制御プログラム及びパラメータ情報、並びに指令デバイスのオンオフに関する情報を含むデバイス情報を記憶しておく。記憶された制御プログラムを実行し、制御プログラムの実行中にデバイス情報が記憶されているデバイスを監視し、指令デバイスがオン状態であることを検出する。指令デバイスがオン状態であることが検出された場合、記憶されているパラメータ情報に基づいて、少なくともモータドライバに対するパラメータ設定指令を含む、指令デバイスに対応する指令を実行する通信コマンドを生成し、生成された通信コマンドをモータドライバへ送信する。これにより、プログラム作成支援装置で入力を受け付けたパラメータ情報をプログラマブルコントローラへ送信することができ、プログラム作成支援装置からモータの動作を制御することが可能となる。
【００２３】
第８発明では、拡張ユニットは、ネットワークに接続された少なくとも一のモータドライバの機能又は動作を設定するパラメータ情報を変更するプログラマブルコントローラに含まれており、所定の周期で制御プログラムを繰り返し実行するＣＰＵユニットとデータ通信することが可能に接続される。ＣＰＵユニットには、制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスに記憶される、モータドライバに対して指令を実行するか否かを示す指令デバイスのオンオフに関する情報を含むデバイス情報が記憶されており、拡張ユニットは、ＣＰＵユニットによる制御プログラムの実行中にデバイス情報が記憶されているデバイスを監視し、指令デバイスがオン状態であることを検出する。指令デバイスがオン状態であることが検出された場合、ＣＰＵユニットのメモリ領域に記憶されているパラメータ情報に基づいて、少なくともモータドライバに対するパラメータ設定指令を含む、指令デバイスに対応する指令を実行する通信コマンドを生成し、生成された通信コマンドをモータドライバへ送信するので、指令デバイスをオン／オフする簡易なラダープログラムで、モータドライバのパラメータ情報を変更することができ、シリアル通信プロトコルについて熟練を要することなく、容易にモータに所望の動作をさせることが可能となる。
【発明の効果】
【００２４】
本発明によれば、記憶されているデバイス情報から指令デバイスがオン状態であることを検出した時点で、記憶されているパラメータ情報に基づいて指令デバイスに対応する指令を実行する通信コマンドを生成してモータドライバへ送信するので、指令デバイスをオン／オフする簡易なラダープログラムで、モータドライバのパラメータ情報を変更することができ、シリアル通信プロトコルについて熟練を要することなく、容易にモータに所望の動作をさせることが可能となる。また、簡易なラダープログラムでパラメータ情報を変更することができるので、プログラマブルコントローラの使い勝手を向上させることも可能となる。
【図面の簡単な説明】
【００２５】
【図１】本発明の実施の形態に係るプログラム作成支援システムの構成を示す模式図である。
【図２】本発明の実施の形態に係るプログラマブルコントローラのＣＰＵユニットの構成を示すブロック図である。
【図３】本発明の実施の形態に係るプログラマブルコントローラの拡張ユニットの構成を示すブロック図である。
【図４】本発明の実施の形態に係るモータドライバの構成を示すブロック図である。
【図５】本発明の実施の形態に係るモータドライバのポイントパラメータの説明図である。
【図６】本発明の実施の形態に係るプログラム作成支援システムのプログラム作成支援装置の構成を示すブロック図である。
【図７】本発明の実施の形態に係るプログラム作成支援システムのプログラム作成支援装置のパラメータ情報設定画面の例示図である。
【図８】本発明の実施の形態に係るプログラム作成支援システムのプログラム作成支援装置の制御部の処理手順を示すフローチャートである。
【図９】位置決め開始指令のラダープログラムの部分例示図である。
【図１０】本発明の実施の形態に係るプログラム作成支援システムの拡張ユニットの制御部の処理手順を示すフローチャートである。
【図１１】本発明の実施の形態に係るプログラム作成支援システムの拡張ユニットの制御部のパラメータ情報の書込処理の手順を示すフローチャートである。
【図１２】通信コマンドの種類及びその優先度の例示図である。
【図１３】本発明の実施の形態に係るプログラム作成支援システムの拡張ユニットの制御部のパラメータ書込指令のスケジューリング処理の手順を示すフローチャートである。
【図１４】本発明の実施の形態に係るプログラム作成支援システムの拡張ユニットの制御部の位置決め開始指令のスケジューリング処理の手順を示すフローチャートである。
【発明を実施するための形態】
【００２６】
以下、本発明の実施の形態に係るプログラマブルコントローラ（プログラマブルロジックコントローラ）、拡張ユニット及びプログラマブルコントローラを用いるプログラム作成支援システムについて、図面に基づいて具体的に説明する。本実施の形態では、プログラマブルコントローラが、ＣＰＵユニットと拡張ユニットとで構成された例について説明するが、ＣＰＵユニットと拡張ユニットとが一体化されたプログラマブルコントローラであっても良いことは言うまでもない。
【００２７】
図１は、本発明の実施の形態に係るプログラム作成支援システムの構成を示す模式図である。図１に示すように、プログラム作成支援システム１０は、プログラマブルコントローラ１と、プログラム作成支援装置４とで構成されている。
【００２８】
プログラマブルコントローラ１は、詳細は後述するが、制御プログラムを実行するＣＰＵユニット２と、例えばＩ／Ｏユニット、電源ユニット、イーサネット（登録商標）通信ユニット、位置決めユニット等、機能ごとに独立した一又は複数の拡張ユニット３、３、・・・（図１では一の拡張ユニット３）とで構成されている。また、プログラマブルコントローラ１は、ネットワーク網７を介してデータ通信することが可能なモータドライバ５、５、・・・と接続してある。本実施の形態では、ネットワーク網７は、ＲＳ−４８５シリアル通信網であるが、特にこれに限定されるものではなく、指令を実行する通信コマンド及びパラメータ情報をデータ通信できれば良い。また、プログラマブルコントローラ１は、複数のモータドライバ５、５、・・・からの通信線を集約する中継装置を介して各モータドライバ５に接続されていても良い。
【００２９】
そして、各モータドライバ５は、制御対象（駆動対象）となるモータ６にそれぞれ接続されており、指令に応じてモータ６の動作を制御する。ＣＰＵユニット２は、プログラム作成支援装置４で作成されたラダープログラム等のシーケンシャルプログラム（以下、制御プログラム）を実行する。本実施の形態では、位置決めユニットとして機能する一の拡張ユニット３が、複数のモータドライバ５、５、・・・に対して指令を実行する通信コマンドを送信する機能を有している。
【００３０】
なお、ＣＰＵユニット２は、センサ等の入力機器から入力データを取り込む入力リフレッシュ処理、取り込んだ入力データを用いて制御プログラムを実行（演算）する演算処理、演算処理した結果である出力データをモータ等の出力機器に出力する出力リフレッシュ処理、エラーチェック等のＥＮＤ処理、の各処理を所定の周期で繰り返し実行する（１周期を１スキャンと呼ぶ）。したがって、制御プログラムは、ＣＰＵユニット２によって、所定の周期で繰り返し実行されることになる。
【００３１】
ＣＰＵユニット２は、内蔵するメモリ２０（後述）に記憶してある制御プログラムに従って、接続してある拡張ユニット３に対して指令を送出するＣＰＵ（プロセッサ）を備えている。ＣＰＵユニット２のメモリ２０には、制御プログラムだけでなく、制御プログラムで認識することが可能なメモリ領域に割り当てられた領域（デバイス）に記憶される、各モータドライバ５に対して指令を実行するか否かを示す指令デバイスのオンオフに関する情報を含むデバイス情報、モータドライバ５に設定するパラメータ値の集合であるパラメータ情報も記憶される。
【００３２】
なお、詳細は後述するが、デバイスにはビットデバイスとワードデバイスとがあり、本実施の形態では、ビットデバイスの一種であるリレーデバイスのオンオフに関する情報を用いて、モータドライバ５に対して指令を実行するか否かを決定している。ただし、例えばワードデバイスの数値データに関する情報を用いて、モータドライバ５に対して指令を実行するか否かを決定しても良いことは言うまでもない。
【００３３】
図２は、本発明の実施の形態に係るプログラマブルコントローラ１のＣＰＵユニット２の構成を示すブロック図である。図２に示すように、ＣＰＵユニット２は、少なくとも制御プログラムを実行するＣＰＵ等の制御部２１、記憶部（メモリ）２０、拡張ユニットインタフェース２２、プログラム作成支援装置インタフェース２３を備えている。
【００３４】
制御部２１は、入力受付部２１１、情報記憶部２１２、及び制御プログラム実行部２１３を備えている。入力受付部２１１は、プログラム作成支援装置４から受信した制御プログラム２０１、及びモータドライバ５、５、・・・に設定するパラメータ情報２０３の入力を受け付ける。
【００３５】
情報記憶部２１２は、入力を受け付けた制御プログラム２０１、パラメータ情報２０３、及び制御プログラムで認識することが可能なメモリ領域に割り当てられた領域であるデバイスに記憶される、モータドライバ５に対して指令を実行するか否かを示す指令デバイスのオンオフに関する情報を含むデバイス情報２０２を記憶する。制御プログラム実行部２１３は、記憶された制御プログラム２０１を実行する。
【００３６】
なお、本実施の形態では、記憶部２０はＥＥＰＲＯＭ等の不揮発性メモリで構成されているが、別途ＳＲＡＭ等のキャッシュメモリを設けても良い。例えば、プログラマブルコントローラ１の通常運転に先立って、必要に応じて記憶部２０の記憶内容をキャッシュメモリに展開する。そして、プログラマブルコントローラ１の通常運転（ラダープログラムの繰り返し実行）時には、キャッシュメモリに対して制御プログラム２０１、デバイス情報２０２等のデータを読み書きするので、高速なデータ処理を実現することができる。なお、通常運転時、制御部２１の情報記憶部２１２が記憶部（メモリ）２０に対してデータを読み書きする構成であっても良いし、設けられたキャッシュメモリに対してデータを読み書きする構成であっても良い。また、情報記憶部２１２は、記憶部２０やキャッシュメモリに対してデータを読み書きする処理を実行するものであり、情報記憶処理部と言っても良い。
【００３７】
なお、デバイスとは、リレー、タイマ、カウンタ、データメモリなど、プログラマブルコントローラ１に接続される各入出力機器の監視や制御のために制御プログラム２０１で用いられる要素（仮想的なメモリ領域）であり、命令で使用するデータを与えたり、命令の実行結果を記憶したりするために用いられる。デバイスには、入力機器からの入力信号に基づいてオン／オフされるビットデバイス（入力ビットデバイス）や、出力機器の動作を制御するためにオン／オフされるビットデバイス（出力ビットデバイス）、オン／オフされるのではなく数値データが記憶されるワードデバイスなどがある。また、デバイスは、ビットデバイスであるかワードデバイスであるかを示すデバイス種別と、同一のデバイス種別を有する複数のデータを管理するためのデバイス番号とを有している。例えば、“ＤＭ００００”というデバイスは、デバイス種別が“ＤＭ”であり、デバイス番号が“００００”であることを示している。また、デバイスは、制御プログラム２０１上（制御プログラム２０１内）で認識することが可能である。
【００３８】
プログラム作成支援装置インタフェース２３は、プログラム作成支援装置４とデータ通信することが可能に接続され、プログラム作成支援装置４上で作成されたラダープログラム（制御プログラム）２０１及び入力を受け付けたパラメータ情報の転送、読み出しを行う。拡張ユニットインタフェース２２は、拡張ユニット３とデータ通信することが可能に接続され、拡張ユニット３との間でデバイス情報２０２及びパラメータ情報２０３をデータ送受信する。プログラム作成支援装置インタフェース２３、拡張ユニットインタフェース２２等は、例えばＡＳＩＣ、ＦＰＧＡ等として別個に実装されていても良いし、制御部２１と一体的に実装されていても良い。
【００３９】
拡張ユニット３は、制御プログラム２０１の実行中に、ＣＰＵユニット２のメモリ２０に記憶されているデバイス情報２０２を監視、例えば一定時間間隔（例えば上述した１スキャンごと）で読み出し、パラメータ書込指令（パラメータ設定指令）、位置決め開始指令（動作開始指令）等の指令デバイスがオン状態であることを検出する。各指令に対応する指令デバイスがオン状態であることを検出した場合、ＣＰＵユニット２のメモリ２０に記憶されているパラメータ情報２０３を読み出して、パラメータ情報２０３のモータドライバ５への書込指令を実行させる通信コマンド（第１の通信コマンド）、又はモータ６の動作指令を実行させる通信コマンド（第２の通信コマンド）を生成し、モータドライバ５へ送信する。もちろん、通信コマンドはこれらに限定されるものではなく、例えばモータドライバ５の現在の状態に関する情報（例えば、記憶されているパラメータ情報２０３、モータの現在位置、速度、アラーム発生状態等）を定期的に読み出す通信コマンド（第３の通信コマンド）を生成しても良い。なお、本実施の形態では、指令デバイスとしてリレーデバイス（指令リレーデバイス）を用いており、指令リレーデバイスのデバイス値が‘０’から‘１’に変わった場合、すなわち指令フラグが立った場合にオン状態であると検出するようにしているが、指令リレーデバイスの代わりにワードデバイス（指令ワードデバイス）を用いる場合には、例えばデバイス値が所定の値に到達したか否かを監視しておき、到達した時点でオン状態であることを検出するようにしても良い。
【００４０】
図３は、本発明の実施の形態に係るプログラマブルコントローラ１の拡張ユニット３の構成を示すブロック図である。図３に示すように、本実施の形態に係る拡張ユニット３は、少なくともＣＰＵ等で構成された制御部３１、メモリ３０、ＣＰＵユニットインタフェース３２、及びシリアル通信部３３を備えている。
【００４１】
制御部３１は、指令検出部３１１、通信コマンド生成部３１２、通信コマンド送信部３１３、通信スケジューリング部３１４、及び通信レスポンス処理部３１５を備えている。指令検出部３１１は、ＣＰＵユニット２のメモリ２０に記憶されているデバイス情報２０２を監視し、パラメータ書込指令（パラメータ設定指令）、位置決め開始指令（動作開始指令）等の指令デバイスがオン状態であることを検出する。各指令に対応する指令デバイスがオン状態であることを検出した場合、オン状態であることが検出された指令を実行する通信コマンドの生成を通信コマンド生成部３１２へ要求する。
【００４２】
通信コマンド生成部３１２は、オン状態であることが検出された指令デバイスに対応する指令を実行する通信コマンドを生成し、通信コマンド送信部３１３は、生成された通信コマンドを、シリアル通信部３３を介してモータドライバ５へ送信する。なお、「オン状態であることを検出した指令」としては、上述したように、パラメータ書込指令（パラメータ設定指令）及び位置決め開始指令（動作開始指令）等が挙げられるが、少なくともパラメータ設定指令を含んでいる。通信スケジューリング部３１４は、通信コマンドの優先度に応じて、どのモータドライバ５にどのタイミングで、どの通信コマンドを送信するかを決定する。スケジューリング方法の詳細については後述する。
【００４３】
通信レスポンス処理部３１５は、シリアル通信部３３を介して受信した、モータドライバ５に設定されているパラメータ情報２０３を読み出して、パラメータ情報３０１としてメモリ３０へ記憶するとともに、ＣＰＵユニットインタフェース３２を介してＣＰＵユニット２へ送信する。
【００４４】
ＣＰＵユニットインタフェース３２は、ＣＰＵユニット２との間でデバイス情報、パラメータ情報等をデータ送受信する。シリアル通信部３３は、モータドライバ５との間でパラメータ情報３０１をデータ送受信する。メモリ３０は、送受信するパラメータ情報３０１を記憶する。
【００４５】
図４は、本発明の実施の形態に係るモータドライバ５の構成を示すブロック図である。図４に示すように、モータドライバ５は、少なくとも制御部５１、パラメータ情報記憶部（メモリ）５０、シリアル通信部５３、指令情報生成部５２、駆動信号出力部５４、操作部５５、及び表示部５６を備える。モータドライバ５の制御部５１は、モータドライバ５の各部の動作を制御し、指令情報生成部５２と協働して、制御対象となるモータ６に所望の動作をさせるよう演算処理を実行する。
【００４６】
指令情報生成部５２は、パラメータ情報記憶部（メモリ）５０に記憶されているパラメータ情報を読み出し、読み出したパラメータ情報に基づいて、モータ６に所望の動作をさせる指令情報を生成する。生成された指令情報は、駆動信号出力部５４へ送信される。
【００４７】
パラメータ情報記憶部（メモリ）５０は、各種のパラメータ情報を記憶する。具体的にはポイントパラメータ及びシステムパラメータという後述する２種類のパラメータを記憶する。なお、パラメータ情報記憶部（メモリ）５０は、ＥＥＰＲＯＭのような不揮発性メモリであっても良いし、ＲＡＭのような揮発性メモリであっても良い。モータドライバ５にポイントパラメータが１ポイント分しかない場合（直値移動指令の場合）、モータ６を動作させる都度、拡張ユニット３からモータドライバ５へパラメータ情報が送信される。したがって、ポイント番号によりパラメータ情報を特定する必要がないので、パラメータ番号を送信することなくモータ６に所望の動作をさせることができる。
【００４８】
ポイントパラメータとは、一連の動作ごとにポイント番号を付しておき、制御プログラム（ラダープログラム）でポイント番号を指定することによりモータ６に所望の動作をさせるためのパラメータである。図５は、本発明の実施の形態に係るモータドライバ５のポイントパラメータの説明図である。
【００４９】
図５では、縦軸がモータ６の移動速度Ｖ（パルス／秒）を、横軸が経過時間ｔ（秒）を、それぞれ示しており、モータ６の一連の動作を例示している。したがって、ハッチング部分が、モータ６の総移動距離（パルス）となる。図５の例では、まずモータ６は頂点Ｔ１から動作を開始する。したがって、ハッチング部分の頂点Ｔ１では、モータ６の初速、例えば５０パルス／秒等の値がポイントパラメータとしてポイント番号に対応付けられて記憶されている。
【００５０】
同様に頂点Ｔ２では、モータ６の初速、モータ６の目標速度Ｖ０、例えば１００パルス／秒等の値、及びモータ６の加速レート、例えば１０パルス／秒2 等の値がポイントパラメータとしてポイント番号に対応付けられて記憶されている。頂点Ｔ３では、移動距離、例えば５００パルス等の値がポイントパラメータとしてポイント番号に対応付けられて記憶されている。
【００５１】
頂点Ｔ４では、モータ６の減速レート、例えば１０パルス／秒2 等の値がポイントパラメータとしてポイント番号に対応付けられて記憶されている。頂点Ｔ５では、モータ６の終速、例えば１００パルス／秒等の値がポイントパラメータとしてポイント番号に対応付けられて記憶されている。頂点Ｔ６では、モータ６が完全に停止、すなわち速度、加速度ともに０（ゼロ）等の値がポイントパラメータとしてポイント番号に対応付けられて記憶されている。
【００５２】
これらのポイントパラメータを一のポイント番号に対応付けて記憶しておき、ポイント番号の指定を受け付けることにより、図５に示すような六角形の面積データ（ハッチング部分）に沿って移動するようにモータ６を動作させることができる。したがって、ユーザは、ポイント番号の指定を変更することにより、容易にモータ６の動作を変更することができる。
【００５３】
一方、システムパラメータとは、モータ６のハードウェア仕様等に基づく限界値等を指定するパラメータを意味している。例えばモータ６の運転時の電流の上限値として、最大電流値の８０％を設定する。そのほか、停止電流値として、モータ６の停止状態において、不用意に動作することがないようにするための電流値を設定しても良いし、分解能としてモータ６を一回転させるのに必要なパルス数を設定しても良い。
【００５４】
図４に戻って、シリアル通信部５３は、拡張ユニット３から、生成された通信コマンドをシリアル通信にて受信し、制御部５１に転送する。操作部５５は、方向キー、実行キー、ストップキー等で構成される。モータドライバ５単体でも、操作部５５を介してパラメータ情報を変更することができる。表示部５６は、現在設定されているパラメータ情報を表示する。
【００５５】
駆動信号出力部５４は、指令情報生成部５２で生成された指令情報を受信し、モータ６に対して駆動信号（パルス列等）又は駆動電流を供給する。モータ６は、特に形式が問われるものではなく、サーボモータであっても良いし、ステッピングモータであっても良い。
【００５６】
プログラム作成支援装置４は、必要に応じてプログラマブルコントローラ１とデータ通信することが可能に接続され、作成した制御プログラムをプログラマブルコントローラ１へ出力する。また、プログラム作成支援装置４は、モータドライバ５ごとに設定するパラメータ情報の入力を受け付けて、プログラマブルコントローラ１へ出力する。
【００５７】
図６は、本発明の実施の形態に係るプログラム作成支援システム１０のプログラム作成支援装置４の構成を示すブロック図である。図６に示すように、プログラム作成支援装置４は、少なくとも制御部（ＣＰＵ）４１、メモリ４２、ハードディスク等の記憶装置４３、Ｉ／Ｏインタフェース４４、通信インタフェース４５、可搬型ディスクドライブ４６及び上述したハードウェアを接続する内部バス４９で構成されている。
【００５８】
制御部４１は、内部バス４９を介してプログラム作成支援装置４の上述したようなハードウェア各部と接続されており、上述したハードウェア各部の動作を制御するとともに、記憶装置４３に記憶しているコンピュータプログラムに従って、種々のソフトウェア的機能を実行する。メモリ４２は、ＳＲＡＭ、ＳＤＲＡＭ等の揮発性メモリで構成され、コンピュータプログラムの実行時にロードモジュールが展開され、コンピュータプログラムの実行時に発生する一時的なデータ等を記憶する。
【００５９】
記憶装置４３は、内蔵される固定型記憶装置（ハードディスク）、ＲＯＭ等で構成されている。記憶装置４３に記憶しているコンピュータプログラムは、例えばプログラム及びデータ等の情報を記録したＤＶＤ、ＣＤ−ＲＯＭ等の可搬型記録媒体から、可搬型ディスクドライブ４６によりダウンロードされ、実行時には記憶装置４３からメモリ４２へ展開して実行される。もちろん、通信インタフェース４５を介してネットワークに接続されている外部のコンピュータからダウンロードされたコンピュータプログラムであっても良い。
【００６０】
Ｉ／Ｏインタフェース４４は、キーボード４７、マウス４８等の入力装置と接続され、データの入力を受け付ける。また、ＣＲＴモニタ、ＬＣＤ等の表示装置４０と接続することにより、モータドライバ５に設定されているパラメータ情報等を表示することができ、目視で確認することができる。ユーザは、表示装置４０上にて、マウス４８等を操作することにより、命令語を示すシンボルとデバイスを示すシンボルとを組み合わせ、これらを梯子状に配置し、ラダー図を作成することができる。そして、制御部４１が、ラダー図をプログラマブルコントローラ１が実行することが可能な形式にプログラム変換することで、制御プログラムを生成することができる。なお、プログラム変換は、プログラム作成支援装置４側で行っても良いし、プログラマブルコントローラ１側で行っても良い。
【００６１】
通信インタフェース４５は内部バス４９に接続されており、インターネット、ＬＡＮ、ＷＡＮ等の外部のネットワークに接続されることにより、外部のコンピュータ等とデータ送受信することが可能となっている。また、通信線を介してプログラマブルコントローラ１のＣＰＵユニット２とデータ送受信することが可能となっている。
【００６２】
図７は、本発明の実施の形態に係るプログラム作成支援システム１０のプログラム作成支援装置４のパラメータ情報設定画面の例示図である。図７では、ポイントパラメータの設定入力を受け付ける画面の一例を示しており、３つの軸（モータドライバ５）についてポイントパラメータの入力を、それぞれ受け付けている。
【００６３】
ポイント番号表示領域７１に表示されているポイント番号（Ｎｏ．）ごとに、各軸の動作モードの入力を動作モード設定領域７２にて受け付け、位置指定領域７３にて目標位置（パルス）の入力を、速度指定領域７４にて移動速度（Ｈｚ）の入力を、それぞれ受け付ける。
【００６４】
例えば軸１に着目した場合、ポイント番号「１」において、動作モードが「位置決めＩＮＣ」、位置が「−１０００（パルス）」、速度が「２０００（Ｈｚ）」と入力を受け付けている。つまり、ポイント番号「１」については、現在の位置から相対的に１０００パルス分だけ、２０００Ｈｚの速度で逆方向（マイナス方向）に動作させるためのパラメータとなっている。
【００６５】
同様に、ポイント番号「２」において、動作モードが「位置決めＡＢＳ」、位置が「２０００（パルス）」、速度が「２０００（Ｈｚ）」と入力を受け付けている。つまり、ポイント番号「２」については、現在の位置から絶対位置である２０００パルスの位置まで、２０００Ｈｚの速度で動作させるためのパラメータとなっている。以下、ポイント番号「３」についても同様である。また、他の軸２、３についても同様に、ユーザは位置及び速度を設定することができるようになっている。
【００６６】
このように、プログラム作成支援装置４においてパラメータ情報の設定入力を受け付け、パラメータ情報に従ってモータ６の動作を制御する制御プログラムを作成することにより、モータ６に所望の動作をさせることが可能となる。
【００６７】
図８は、本発明の実施の形態に係るプログラム作成支援システム１０のプログラム作成支援装置４の制御部４１の処理手順を示すフローチャートである。図８において、プログラム作成支援装置４の制御部４１は、パラメータ情報の設定入力を受け付ける（ステップＳ８０１）。入力を受け付けるパラメータ情報は、上述したポイントパラメータ及びシステムパラメータである。ポイントパラメータは、図７に示すパラメータ情報設定画面から設定入力を受け付ける。
【００６８】
制御部４１は、入力を受け付けたパラメータ情報に従って作成された、制御プログラム（ラダープログラム）の入力を受け付ける（ステップＳ８０２）。図９は、位置決め開始指令のラダープログラムの部分例示図である。
【００６９】
まず図９に示すラダープログラムをＣＰＵユニット２が実行することにより、デバイスの割り当て情報が拡張ユニット３に伝達される。例えば図９の例では、デバイスＤＭ０は、位置決め開始ポイント番号が記憶されるデバイスであること、デバイスＤＭ１００００は、ポイントパラメータが記憶されるデバイスであること、及び指令デバイスＲ３００００は、位置決め開始指令の指令デバイスであることが、拡張ユニット３へ伝達される。
【００７０】
ラダープログラムに従ってデバイスＤＭ０にポイント番号を記憶することにより、モータドライバ５が位置決め制御を行うポイント番号及びポイントパラメータを指定することができる。また、デバイスＤＭ１００００に記憶されるポイントパラメータは、図９に示すラダープログラムによって指定されても良いし、図７に示すプログラム作成支援装置４のパラメータ情報設定画面で受け付けた設定入力により指定されても良い。
【００７１】
指令デバイスＲ３００００は、拡張ユニット３により常時監視されており、オン状態になったことを拡張ユニット３が検出した場合、拡張ユニット３は、デバイスＤＭ０及びデバイスＤＭ１００００からポイント番号、ポイントパラメータを読み出して、位置決め開始指令を実行する通信コマンドを生成する。また、モータ６を動作させるタイミングで指令デバイスＲ１０００がオン状態となるよう、ラダープログラムを作成する。
【００７２】
図９に示すラダープログラムの１行目は、指令デバイスＲ１０００がオン状態となった場合に、デバイスＤＭ０にポイント番号「１」を記憶する旨を示している。２行目は、デバイスＤＭ１００００にポイントパラメータ‘１０００’を記憶する、すなわち移動先の目標位置として１０００パルスを設定する旨を示している。３行目は、指令デバイスＲ１０００がオン状態となった場合だけ、指令デバイスＲ３００００をオン状態にする旨を示している。
【００７３】
なお、図９に例示したようなラダープログラムは、ＣＰＵユニット２において繰り返し実行される。
【００７４】
図８に戻って、プログラム作成支援装置４の制御部４１は、パラメータ情報及び制御プログラム（ラダープログラム）をＣＰＵユニット２へ送信し（ステップＳ８０３）、ＣＰＵユニット２の動作モードを「設定モード」から「実行モード（通常運転モード、ＲＵＮモード）」に変更する（ステップＳ８０４）。ＣＰＵユニット２の制御部２１は、受信したパラメータ情報及び制御プログラムを記憶するとともに（情報記憶部２１２）、制御プログラムを実行する（制御プログラム実行部２１３）。つまり、プログラマブルコントローラ１は、制御プログラムやパラメータ情報をプログラム作成支援装置４から入力を受け付けるための「設定モード」と、ＣＰＵユニット２において制御プログラムが所定の周期で繰り返し実行される「運転モード」とを切り換えるモード切替手段を備えている。
【００７５】
例えば図９に示す制御プログラムを実行した場合、ポイント番号及びポイントパラメータのデバイス値が変更され、位置決め開始指令の指令デバイスがオン状態となる。もちろん、ポイント番号及びポイントパラメータを変更する必要がない場合には、位置決め開始指令の指令デバイスをオン状態にするだけで良い。拡張ユニット３は、ＣＰＵユニット２の位置決め開始指令の指令デバイスがオン状態であることを検出した時点でモータドライバ５へのパラメータ情報の書き込みを開始する。パラメータ書込指令の処理手順については後述する。
【００７６】
以下、図９に示す制御プログラムのように、モータドライバ５に対する指令として位置決め開始指令が出される場合を一例として、処理手順について詳細に説明する。図１０は、本発明の実施の形態に係るプログラム作成支援システム１０の拡張ユニット３の制御部３１の処理手順を示すフローチャートである。
【００７７】
図１０において、拡張ユニット３の制御部３１は、ＣＰＵユニット２のデバイスを常時監視し（ステップＳ１００１）、位置決め開始指令の指令デバイス（以下、位置決め開始指令デバイス）がオン状態であるか否かを判断する（ステップＳ１００２）。制御部３１が、位置決め開始指令デバイスがオフ状態であると判断した場合（ステップＳ１００２：ＮＯ）、制御部３１は、処理待ち状態となる。
【００７８】
制御部３１が、位置決め開始指令デバイスがオン状態であると判断した場合（ステップＳ１００２：ＹＥＳ）、制御部３１は、ポイント番号及びポイントパラメータ（パラメータ情報）をＣＰＵユニット２から取得し（ステップＳ１００３）、取得したパラメータ情報をモータドライバ５へ書き込む（ステップＳ１００４）。
【００７９】
パラメータ情報のモータドライバ５への書き込みは、取得したパラメータ情報全体を書き込むことで更新しても良いし、変更された部分のみ（差分）を抽出して書き込むことで更新するようにしても良い。差分を抽出する場合、モータドライバ５のメモリ５０に記憶されているパラメータ情報と拡張ユニット３のメモリ３０に記憶されているパラメータ情報とを同期させた後、変更された部分を差分パラメータとして抽出する。
【００８０】
モータドライバ５のメモリ５０に記憶されているパラメータ情報と拡張ユニット３のメモリ３０に記憶されているパラメータ情報とを同期させる方法は、特に限定されるものではない。例えば、拡張ユニット３のメモリ３０に記憶されているパラメータ情報のすべてをモータドライバ５のメモリ５０へ書き込んでも良いし、モータドライバ５のメモリ５０に記憶されているパラメータ情報のすべてを拡張ユニット３が読み出しても良い。
【００８１】
また、同期するタイミングとしては、電源投入後、拡張ユニット３とモータドライバ５とが最初に通信するタイミング、通信異常が発生したタイミング、パラメータ値が許容範囲外等であったことによりモータドライバ５から異常応答が返ってきたタイミング、モータドライバ５が再起動されたタイミング等が考えられる。以下、同期された後の処理手順として、パラメータ情報の差分のみを書き込む手順について説明する。
【００８２】
図１１は、本発明の実施の形態に係るプログラム作成支援システム１０の拡張ユニット３の制御部３１のパラメータ情報の書込処理の手順を示すフローチャートである。拡張ユニット３の制御部３１は、パラメータ情報をＣＰＵユニット２のデバイスから読み出し（取得し）（ステップＳ１００３）、読み出した（取得した）パラメータ情報が、メモリ３０に記憶されているパラメータ情報と同一であるか否かを判断する（ステップＳ１１０１）。なお、同一であるか否かは、全てのパラメータ情報を総当たりで比較しても良いし、カテゴリごとにパラメータ情報を比較しても良い。
【００８３】
制御部３１が、ＣＰＵユニット２から読み出した（取得した）パラメータ情報が、メモリ３０に記憶されているパラメータ情報と同一であると判断した場合（ステップＳ１１０１：ＹＥＳ）、制御部３１は、以下の処理をスキップして図１０のステップＳ１００５へ処理を進ませる。制御部３１が、ＣＰＵユニット２から読み出したパラメータ情報が、メモリ３０に記憶されているパラメータ情報と同一ではないと判断した場合（ステップＳ１１０１：ＮＯ）、制御部３１は、ＣＰＵユニット２から読み出したパラメータ情報と、メモリ３０に記憶されているモータドライバ５のパラメータ情報との間の差分パラメータ（差分）を抽出する（ステップＳ１１０２）。
【００８４】
制御部３１は、抽出した差分パラメータをモータドライバ５へ書き込むパラメータ書込指令（通信コマンド）を生成し（ステップＳ１１０３）、生成したパラメータ書込指令をモータドライバ５へ送信する（ステップＳ１１０４）。制御部３１は、ＣＰＵユニット２から読み出したパラメータ情報を、新たなパラメータ情報として拡張ユニット３のメモリ３０に記憶する（ステップＳ１１０５）。
【００８５】
なお、ＣＰＵユニット２から読み出したパラメータ情報を、新たなパラメータ情報として拡張ユニット３のメモリ３０に記憶するタイミングは、ＣＰＵユニット２から読み出した後であれば、特に限定されるものではなく、差分パラメータを抽出する前であっても良い。ＣＰＵユニット２から読み出したパラメータ情報を、新たなパラメータ情報として拡張ユニット３のメモリ３０に記憶することにより、モータドライバ５のメモリ５０に記憶されているパラメータ情報と拡張ユニット３のメモリ３０に記憶されているパラメータ情報とを確実に同期させることができ、差分パラメータ送信時にモータドライバ５のメモリ５０に記憶されているパラメータ情報を読み出す必要がなくなる。
【００８６】
図１０に戻って、拡張ユニット３の制御部３１は、位置決め開始指令（通信コマンド）を生成して（ステップＳ１００５）、生成した位置決め開始指令をモータドライバ５へ送信する（ステップＳ１００６）。位置決め開始指令を受信したモータドライバ５は、メモリ５０に記憶されているパラメータ情報に従って、モータ６の動作制御を開始する。
【００８７】
なお、拡張ユニット３とモータドライバ５との間には様々な種類の通信コマンドが用いられるが、実行されるそれぞれの通信コマンドに優先度を設定しておくことが好ましい。同時に複数の通信コマンドが送信される場合も生じ得るからである。
【００８８】
図１２は、通信コマンドの種類及びその優先度の例示図である。図１２の例に示すように、拡張ユニット３で生成される通信コマンドの種類別に、通信の優先度が設定されている。例えば、モータドライバ５のメモリ５０に記憶されているパラメータ情報を拡張ユニット３へ読み出すモニタ指令は、他の通信コマンドのいずれよりも優先度を低く設定してある。また、モータ６を停止する指令である停止指令は、他の通信コマンドのいずれよりも優先度を高く設定してある。
【００８９】
以下、パラメータ書込指令及び位置決め開始指令を例に挙げて、通信コマンドのスケジューリング処理の手順を説明する。図１３は、本発明の実施の形態に係るプログラム作成支援システム１０の拡張ユニット３の制御部３１のパラメータ書込指令のスケジューリング処理の手順を示すフローチャートである。
【００９０】
拡張ユニット３の制御部３１は、通信中の通信コマンドが存在するか否かを判断する（ステップＳ１３０１）。制御部３１が、通信中の通信コマンドが存在すると判断した場合（ステップＳ１３０１：ＹＥＳ）、制御部３１は、処理待ち状態となる。制御部３１が、通信中のコマンドが存在しないと判断した場合（ステップＳ１３０１：ＮＯ）、制御部３１は、通信を保留中の通信コマンドが存在するか否かを判断する（ステップＳ１３０２）。
【００９１】
制御部３１が、保留中の通信コマンドが存在しないと判断した場合（ステップＳ１３０２：ＮＯ）、制御部３１は、処理をステップＳ１３０１に戻して上述した処理を繰り返す。制御部３１が、保留中の通信コマンドが存在すると判断した場合（ステップＳ１３０２：ＹＥＳ）、制御部３１は、保留中の通信コマンドはパラメータ書込指令より優先度が低いか否かを判断する（ステップＳ１３０３）。
【００９２】
制御部３１が、保留中の通信コマンドがパラメータ書込指令より優先度が高いと判断した場合（ステップＳ１３０３：ＮＯ）、制御部３１は、処理をステップＳ１３０１に戻して上述した処理を繰り返す。制御部３１が、保留中の通信コマンドがパラメータ書込指令より優先度が低いと判断した場合（ステップＳ１３０３：ＹＥＳ）、制御部３１は、モータドライバ５にパラメータ書込指令を送信する（ステップＳ１３０４）。
【００９３】
図１４は、本発明の実施の形態に係るプログラム作成支援システム１０の拡張ユニット３の制御部３１の位置決め開始指令のスケジューリング処理の手順を示すフローチャートである。
【００９４】
拡張ユニット３の制御部３１は、通信中のコマンドが存在するか否かを判断する（ステップＳ１４０１）。制御部３１が、通信中のコマンドが存在すると判断した場合（ステップＳ１４０１：ＹＥＳ）、制御部３１は、処理待ち状態となる。制御部３１が、通信中のコマンドが存在しないと判断した場合（ステップＳ１４０１：ＮＯ）、制御部３１は、実行を保留中の通信コマンドが存在するか否かを判断する（ステップＳ１４０２）。
【００９５】
制御部３１が、保留中の通信コマンドが存在しないと判断した場合（ステップＳ１４０２：ＮＯ）、制御部３１は、処理をステップＳ１４０１に戻して上述した処理を繰り返す。制御部３１が、保留中の通信コマンドが存在すると判断した場合（ステップＳ１４０２：ＹＥＳ）、制御部３１は、保留中の通信コマンドが位置決め開始指令より優先度が低いか否かを判断する（ステップＳ１４０３）。
【００９６】
制御部３１が、保留中の通信コマンドが位置決め開始指令より優先度が高いと判断した場合（ステップＳ１４０３：ＮＯ）、制御部３１は、処理をステップＳ１４０１に戻して上述した処理を繰り返す。制御部３１が、保留中の通信コマンドが位置決め開始指令より優先度が低いと判断した場合（ステップＳ１４０３：ＹＥＳ）、制御部３１は、モータドライバ５に位置決め開始指令を送信する（ステップＳ１４０４）。
【００９７】
以上のように、本実施の形態によれば、ＣＰＵユニット２に記憶されているデバイス情報２０２から指令デバイスがオン状態であることを検出した時点で、記憶されているパラメータ情報に基づいて指令を実行する通信コマンドを生成してモータドライバ５に対して送信するので、指令デバイスをオン／オフする簡易なラダープログラムで、モータドライバ５のパラメータ情報を変更することができ、シリアル通信プロトコルについて熟練を要することなく、容易にモータ６に所望の動作をさせることが可能となる。
【００９８】
なお、本発明は上記実施例に限定されるものではなく、本発明の趣旨の範囲内であれば多種の変更、改良等が可能である。例えば上述した実施例では、通信コマンドとしてパラメータ書込指令、位置決め開始指令等について詳述しているが、特にこれらに限定されるものではなく、また動作の制御対象もモータ６に限定されるものではなく、プログラマブルコントローラ１を用いるあらゆるシステムに適用することが可能であることは言うまでもない。
【符号の説明】
【００９９】
１  プログラマブルコントローラ
２  ＣＰＵユニット
３  拡張ユニット
４  プログラム作成支援装置
５  モータドライバ
６  モータ
１０  プログラム作成支援システム
２０、３０、４２、５０  メモリ
２１、３１、４１、５１  制御部
【図２】
2015087897.tif 000003
【図３】
2015087897.tif 000004
【図４】
2015087897.tif 000005
【図５】
2015087897.tif 000006
【図６】
2015087897.tif 000007
【図８】
2015087897.tif 000008
【図１０】
2015087897.tif 000009
【図１１】
2015087897.tif 000010
【図１２】
2015087897.tif 000011
【図１３】
2015087897.tif 000012
【図１４】
2015087897.tif 000013
【図１】
2015087897.tif 000014
【図７】
2015087897.tif 000015
【図９】
2015087897.tif 000016