(57)【特許請求の範囲】
【請求項１】
シーケンスプログラムを格納するプログラムメモリと、前記シーケンスプログラムの命令コードの内容に従った演算を行う演算部とを有するプログラマブルコントローラと、前記プログラマブルコントローラから受信した前記演算部の演算データを用いて、制御対象機器を目標位置に位置決めする位置決め装置とを備えたコントローラシステムにおいて、
前記プログラマブルコントローラは、
前記演算部の演算データ及びこの演算データの前記位置決め装置への送信周期を示す周期フラグが格納されるデータメモリと、
前記データメモリのメモリアドレスに対応付けて、前記演算部の演算データ及びその周期フラグに基づく送信周期のカウント値が登録された変更データテーブルと、
前記データメモリのメモリアドレスとこれに対応するデータを識別するためのＩＤ番号が登録された第１の変換表と、
前記位置決め装置へ送信する送信周期ごとに前記演算データ及びそのＩＤ番号が、周期送信データとして格納される周期送信用バッファと、
前記周期送信用バッファの内容を前記位置決め装置へ送信する送信処理部と、
前記プログラマブルコントローラから、前記位置決め装置が前記プログラマブルコントローラから受信したデータで処理内容を補間するタイミングを示す補間周期信号が入力されると、前記変更データテーブルの送信周期のカウント値を更新する更新処理部と、
前記位置決め装置へ送信する演算データ及びそのメモリアドレスで前記第１の変換表から取得したＩＤ番号を、周期送信データとして前記周期送信用バッファに格納する登録処理部と、
前記周期送信データの送信及び前記変更データテーブルの送信周期のカウント値の更新がなされる度に、更新後の送信周期のカウント値に基づいて前記変更データテーブルから次周期に送信する演算データを特定し、この演算データ及びメモリアドレスを周期送信データとして前記登録処理部に通知する次周期処理部とを有し、
前記位置決め装置は、
前記制御対象機器の位置決めに用いるデータが格納される位置決め装置用メモリと、
前記プログラマブルコントローラから受信した周期送信データが格納される周期受信用バッファと、
前記位置決め装置用メモリのメモリアドレスとこれに対応するデータのＩＤ番号とが登録された第２の変換表と、
前記周期送信データのＩＤ番号に対応するメモリアドレスを前記第２の変換表から取得し、このメモリアドレスに前記周期送信データを書き込む解析処理部とを有することを特徴とするコントローラシステム。
【請求項２】
更新処理部は、位置決め装置へのデータ送信周期を示す周期信号の入力に応じて、変更データテーブルの送信周期のカウント値を減算するとともに、このカウント値に対応する演算データ及びＩＤ番号が周期送信用バッファに格納されると、このカウント値にカウントの初期値を設定し、
登録処理部は、前記更新処理部による減算処理により前記変更データテーブルの送信周期のカウント値が所定値になると、このカウント値に対応する演算データ及びそのＩＤ番号を前記周期送信用バッファに格納することを特徴とする請求項１記載のコントローラシステム。
【請求項３】
データメモリに格納された演算データの周期フラグの内容に基づいて、変更データテーブル、第１及び第２の変換表を作成するとともに、外部から指定された演算データ及びその周期フラグをデータメモリに格納する開発装置を備えたことを特徴とする請求項１または請求項２記載のコントローラシステム。
【請求項４】
ＩＤ番号は、メモリアドレスよりもデータサイズが小さいデータ形態であることを特徴とする請求項１から請求項３のうちのいずれか１項記載のコントローラシステム。
【請求項５】
シーケンスプログラムを格納するプログラムメモリと、前記シーケンスプログラムの命令コードの内容に従った演算を行う演算部とを備えたプログラマブルコントローラにおいて、
前記演算部の演算データ及びこの演算データの位置決め装置への送信周期を示す周期フラグが格納されるデータメモリと、
前記データメモリのメモリアドレスに対応付けて、前記演算部の演算データ及びその周期フラグに基づく送信周期のカウント値が登録された変更データテーブルと、
前記データメモリのメモリアドレスとこれに対応するデータを識別するためのＩＤ番号が登録された第１の変換表と、
前記位置決め装置へ送信する送信周期ごとに前記演算データ及びそのＩＤ番号が、周期送信データとして格納される周期送信用バッファと、
前記周期送信用バッファの内容を前記位置決め装置へ送信する送信処理部と、
前記プログラマブルコントローラから、前記位置決め装置が前記プログラマブルコントローラから受信したデータで処理内容を補間するタイミングを示す補間周期信号が入力されると、前記変更データテーブルの送信周期のカウント値を更新する更新処理部と、
前記位置決め装置へ送信する演算データ及びそのメモリアドレスで前記第１の変換表から取得したＩＤ番号を、周期送信データとして前記周期送信用バッファに格納する登録処理部と、
前記周期送信データの送信及び前記変更データテーブルの送信周期のカウント値の更新がなされる度に、更新後の送信周期のカウント値に基づいて前記変更データテーブルから次周期に送信する演算データを特定し、この演算データ及びメモリアドレスを周期送信データとして前記登録処理部に通知する次周期処理部とを備えたことを特徴とするプログラマブルコントローラ。
【請求項６】
プログラマブルコントローラから受信した演算データを用いて、制御対象機器を目標位置に位置決めする位置決め装置において、
前記制御対象機器の位置決めに用いるデータが格納される位置決め装置用メモリと、
前記プログラマブルコントローラから自装置へ送信される送信周期ごとに受信した前記演算データ及びそのＩＤ番号を含む周期送信データが格納される周期受信用バッファと、
前記位置決め装置用メモリのメモリアドレスとこれに対応するデータのＩＤ番号とが登録された第２の変換表と、
前記周期送信データのＩＤ番号に対応するメモリアドレスを前記第２の変換表から取得し、このメモリアドレスに前記周期送信データを書き込む解析処理部とを備えたことを特徴とする位置決め装置
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、工作機械等の制御対象機器を目標位置に位置決めする位置決め装置と、この位置決め装置の動作を制御するプログラマブルコントローラとを備えたコントローラシステムに関するものである。
【背景技術】
【０００２】
例えば、特許文献１には、位置決め装置であるモーションコントローラとこのモーションコントローラの動作を制御するプログラマブルコントローラとを備えたコントローラシステムにおいて、モーションコントローラとプログラマブルコントローラとの間のデータ授受方法が開示されている。このデータ授受方法では、プログラマブルコントローラのスキャン周期とは独立した一定周期のクロック信号ごとにプログラマブルコントローラの割り込みプログラムを動作させることにより、プログラマブルコントローラとモーションコントローラとの間で上記一定周期ごとに直接データの授受を行っている。
【０００３】
【特許文献１】特許第３３５０９０４号公報
【発明の開示】
【発明が解決しようとする課題】
【０００４】
従来のコントローラシステムでは、位置決め装置が制御対象機器の移動速度や位置を算出する周期とは無関係な一定周期のクロック信号ごとにデータが授受される。この場合、プログラマブルコントローラから位置決め装置へ送られるデータ量や通信オーバヘッドが多くなると、位置決め装置が処理を補間するタイミングでプログラマブルコントローラから必要なデータを受け取ることができない。このため、位置決め装置の応答速度が遅くなるという課題があった。
【０００５】
このように、従来では、プログラマブルコントローラから別ユニットの位置決め装置へデータを送るとき、位置決め装置が速度や位置を計算する周期ごとにプログラマブルコントローラから必要なデータを受け取るための最適な方法が検討されていなかった。
【０００６】
この発明は、上記のような課題を解決するためになされたもので、位置決め装置の応答遅延を抑制することができるコントローラシステムを得ることを目的とする。
【課題を解決するための手段】
【０００７】
この発明に係るコントローラシステムは、シーケンスプログラムを格納するプログラムメモリと、シーケンスプログラムの命令コードの内容に従った演算を行う演算部とを有したプログラマブルコントローラと、プログラマブルコントローラから受信した演算部の演算データを用いて、制御対象機器を目標位置に位置決めする位置決め装置とを備えたコントローラシステムにおいて、プログラマブルコントローラが、演算部の演算データ及びこの演算データの位置決め装置への送信周期を示す周期フラグが格納されるデータメモリと、データメモリのメモリアドレスに対応付けて、演算部の演算データ及びその周期フラグに基づく送信周期のカウント値が登録された変更データテーブルと、データメモリのメモリアドレスとこれに対応するデータを識別するためのＩＤ番号が登録された第１の変換表と、位置決め装置へ送信する周期ごとに演算データ及びそのＩＤ番号が、周期送信データとして格納される周期送信用バッファと、周期送信用バッファの内容を位置決め装置へ送信する送信処理部と、プログラマブルコントローラから、位置決め装置がプログラマブルコントローラから受信したデータで処理内容を補間するタイミングを示す補間周期信号が入力されると、変更データテーブルの送信周期のカウント値を更新する更新処理部と、位置決め装置へ送信する演算データ及びそのメモリアドレスで第１の変換表から取得したＩＤ番号を、周期送信データとして周期送信用バッファに格納する登録処理部と、周期送信データの送信及び変更データテーブルの送信周期のカウント値の更新がなされる度に、更新後の送信周期のカウント値に基づいて変更データテーブルから次周期で送信する演算データを特定し、この演算データ及びそのメモリアドレスを周期送信データとして登録処理部へ通知する次周期処理部とを有し、位置決め装置が、制御対象機器の位置決めに用いるデータが格納される位置決め装置用メモリと、プログラマブルコントローラから受信した周期送信データが格納される周期受信用バッファと、位置決め装置用メモリのメモリアドレスとこれに対応するデータのＩＤ番号とが登録された第２の変換表と、周期送信データのＩＤ番号に対応するメモリアドレスを第２の変換表から取得し、このメモリアドレスに周期送信データを書き込む解析処理部とを有するものである。
【発明の効果】
【０００８】
この発明によれば、上述の構成を有することにより、位置決め装置が、制御対象機器の移動速度や位置を算出するタイミングで、その処理に必要なデータをプログラマブルコントローラから取得することができるという効果がある。また、送信すべき周期になるまでデータ送信が行われないので、必要最小限のデータ送信で済み、プログラマブルコントローラと位置決め装置の間の通信帯域の利用率を低減させることができ、他の通信用に帯域を空けることが可能である。これにより、通信オーバヘッドを抑制でき、位置決め装置の応答遅延を低減することができるという効果がある。
【発明を実施するための最良の形態】
【０００９】
実施の形態１．
図１は、この発明の実施の形態１によるコントローラシステムの構成を示すブロック図である。図１において、実施の形態１によるコントローラシステムは、プログラマブルコントローラ１及び位置決め装置２を備える。プログラマブルコントローラ１と位置決め装置２とはバスで接続されており、このバスを介してプログラマブルコントローラ１と位置決め装置２との間でデータ送受が行われる。
【００１０】
プログラマブルコントローラ１は、プログラムメモリ３、演算部４、ライト処理部５、データメモリ６、周期送信バッファ送信処理部（送信処理部）７、変更データ書き換え処理部（書き換え処理部）８、周期カウントチェック処理部９、周期送信用バッファデータ登録処理部（登録処理部）１０、周期送信用バッファ１１、変更データテーブル１２、変更データテーブル更新処理部（更新処理部）１３、デバイス名変換表（第１の変換表）１４ａ、次周期送信データコピー処理部（次周期処理部）１５、周期送信完了チェック処理部１６及び初期化処理部１７を備える。
【００１１】
プログラムメモリ３は、制御対象機器（不図示）をシーケンス制御するためのシーケンスプログラムを格納する。シーケンスプログラムは、ラダープログラム言語で設計されている。ラダープログラムでは、母線間に、スイッチ、コイル等の記号、機能を表した図形、これらに関連するデータやラベル等を、シーケンスに沿って順に配置したラダーコードで、制御の内容及び手順が表現される。演算部４は、プログラムメモリ３から取得（フェッチ）したシーケンスプログラムの命令コードをデコードし、命令コードの内容に従った演算処理を実行する。この演算処理に生じた演算結果データは、ライト処理部５に出力される。
【００１２】
ライト処理部５は、演算部４から入力した演算結果データをデータメモリ６に書き込むとともに、演算結果データのうち、周期フラグを有するデータ及びそのアドレスデータ（メモリアドレスを示すデバイス番号）を変更データ書き換え処理部８へ出力する。周期フラグとは、何周期ごとに位置決め装置２へ送信するデータであるかを示すデータである。ここで、位置決め装置２へ送信される演算データとしては、例えば位置決め装置２で実行される位置決めプログラムの起動指令等がある。
【００１３】
データメモリ６は、演算部４による演算結果の演算データをそのメモリアドレス（デバイス番号）に対応付けて記憶する記憶部である。なお、演算データが周期フラグを有する場合は、演算データ及びその周期フラグをメモリアドレスに対応付けて記憶する。図２は、図１中のデータメモリの記憶内容を示す図である。図２に示すように、データメモリ６には、周期フラグを設定する領域と周期フラグを設定しない領域がある。
【００１４】
周期フラグを設定しない領域には、シーケンスプログラムを実行して得られた演算データｎ０，ｎ１，・・・，ｎ１０，・・・，ｎ２０が、メモリアドレスｘ０，ｘ１，・・・，ｘ１０，・・・，ｘ２０に対応付けて記憶される。これにより、メモリアドレスごとにデータが管理される。
【００１５】
また、周期フラグを設定する領域には、演算データｎ０，ｎ１，・・・，ｎ１０，・・・，ｎ２０及びその周期フラグ１，０，・・・，２，・・・，３が、メモリアドレスＤ０，Ｄ１，・・・，Ｄ１０，・・・，Ｄ２０に対応付けて記憶される。これにより、メモリアドレスごとに周期フラグとデータが管理される。なお、図２の例では、メモリアドレスをラダーコードのデバイス番号で示している。
【００１６】
また、図２に示す周期フラグは、位置決め装置２へのデータ送信周期として１０進数の数値が設定されている。例えば、周期フラグが１である場合、１周期ごとに位置決め装置２へ送信すべきデータであることを示している。なお、データメモリ６や変更データテーブル１２に実際に設定される周期フラグのデータ形態は、送信周期を示す２進数の数値を設定したビットデータである。
【００１７】
周期送信バッファ送信処理部７は、周期送信用バッファ１１に一時記憶された周期送信データである演算データ及びそのデータＩＤを位置決め装置２へ送信する処理を行う。変更データ書き換え処理部８は、ライト処理部５から取得したメモリアドレスが変更データテーブル１２にあるか否かを判定する。
【００１８】
図３は、図１中の変更データテーブルの内容を示す図である。図３において、変更データテーブル１２には、レコードごとにデータＩＤ、変更フラグ、周期カウント、データ及びメモリアドレスが設定される。データＩＤとしては、同一レコードのデータを識別するためのＩＤ番号が設定される。データＩＤとしては、図３に示すような通し番号が考えられるが、周期送信データを構成した際にメモリアドレスよりもデータサイズが小さいデータ形態であればよい。
【００１９】
変更フラグには、同一レコードのデータが変更（書き換え）されたか否かを示すデータが設定される。ここでは、変更フラグとしてデジタル値１を設定することで変更フラグがオン、即ちデータ変更ありとなり、デジタル値０を設定することで変更フラグをオフ、即ちデータ変更なしとなる。この変更フラグがオンで、かつ送信周期に達したデータが周期送信用バッファ１１に登録され、周期送信データとして位置決め装置２へ送信される。
【００２０】
周期カウントには、同一レコードのデータを位置決め装置２へ送信する周期のカウント値が設定される。例えば、カウント値として所定の初期値が設定しておき、周期送信用バッファ１１のデータが送信されるたびにカウント値が減算され、カウント値が０等の所定値になると、位置決め装置２へ送信する周期になったものとして対応するデータを周期送信用バッファ１１に登録する。メモリアドレスは、同一レコードのデータに対応するメモリアドレス（デバイス番号）である。
【００２１】
変更データ書き換え処理部８は、ライト処理部５から取得したメモリアドレスが変更データテーブル１２にある場合、そのメモリアドレスに対応するレコードの周期カウント値を変更データテーブル１２から取得して、上記メモリアドレス、これに対応するデータ及び周期カウント値を周期カウントチェック処理部９へ出力する。また、変更データ書き換え処理部８は、周期カウントチェック処理部９から今周期で位置決め装置２へ送信するデータではないと判定されたデータを取得すると、この判定結果を受けたデータで変更データテーブル１２の対応するデータ内容を書き換え、このデータに対応する変更フラグをオンにする。
【００２２】
周期カウントチェック処理部９は、変更データ書き換え処理部８から取得した周期カウントの値から、この周期カウント値に対応するデータが今周期で位置決め装置２へ送信するデータであるか否かを判定し、今周期で位置決め装置２へ送信するデータである場合、この周期カウント値に対応するデータ及びそのメモリアドレスを周期送信用バッファデータ登録処理部１０へ出力する。一方、今周期で位置決め装置２へ送信するデータではない場合、この周期カウント値に対応するデータを変更データ書き換え処理部８へ出力する。
【００２３】
周期送信用バッファデータ登録処理部１０は、周期カウントチェック処理部９若しくは次周期送信データコピー処理部１５から取得したデータを周期送信用バッファ１１に登録する。周期送信用バッファ１１は、位置決め装置２へ送信するデータを一時記憶する。図４は、図１中の周期送信用バッファの内容を示す図である。図４に示すように、周期送信用バッファ１１には、周期送信データとしてデータＩＤ及びこれに対応するデータが登録される。また、図５は、図１中のデバイス名変換表の内容を示す図である。図５に示すように、デバイス名変換表１４ａ，１４ｂには、データＩＤ及びこれに対応するデータのメモリアドレスが登録される。
【００２４】
周期送信用バッファデータ登録処理部１０は、周期カウントチェック処理部９若しくは次周期送信データコピー処理部１５から取得したメモリアドレスでデバイス名変換表１４ａを検索して、このメモリアドレスに対応するデータＩＤを取得し、このデータＩＤとこれに対応するデータを周期送信用バッファ１１に登録する。これにより、位置決め装置２には、データＩＤとこれに対応するデータが周期送信データとして送信される。
【００２５】
変更データテーブル更新処理部１３は、プログラマブルコントローラ１が受信した補間周期信号（位置決め装置２がプログラマブルコントローラ１から受信したデータで処理内容を補間するタイミングを示す信号）を入力すると、変更データテーブル１２の周期カウントの値を更新する。周期送信完了チェック処理部１６は、周期送信バッファ送信処理部７から周期送信用バッファ１１内のデータ送信完了が通知され、かつ、変更データテーブル更新処理部１３から変更データテーブル１２の周期カウント値の更新完了が通知されると、その旨を次周期送信データコピー処理部１５へ通知する。
【００２６】
次周期送信データコピー処理部１５は、周期送信完了チェック処理部１６から通知を受けると、変更データテーブル１２の各レコードの周期カウント値をモニタし、今周期で位置決め装置２へ送信するデータがあるか否かを判定する。ここで、今周期で位置決め装置２へ送信するデータであると判定された場合、このデータ及びメモリアドレスを周期送信用バッファデータ登録処理部１０へ出力する。
【００２７】
初期化処理部１７は、プログラマブルコントローラ１の変更データテーブル１２と、プログラマブルコントローラ１及び位置決め装置２のデバイス名変換表１４ａ，１４ｂの内容を設定する。例えば、データメモリ６の記憶内容のうち、周期フラグが付与された命令コードに対応するデータ及びそのメモリアドレスに基づいて、変更データテーブル１２、デバイス名変換表１４ａ，１４ｂを作成する。
【００２８】
位置決め装置２は、制御対象機器の位置決めを行う構成要素（不図示）を制御するための構成として、デバイス名変換表（第２の変換表）１４ｂ、周期受信用バッファ１８、周期データ解析処理部（解析処理部）１９及び位置決め装置用メモリ２０を備える。デバイス名変換表１４ｂは、図５で示したように、データＩＤとこれに対応するデータのメモリアドレスが登録されるテーブルデータである。デバイス名変換表１４ｂのメモリアドレスには、位置決め装置用メモリ２０のアドレス番号を示すデバイス番号が設定される。
【００２９】
周期受信用バッファ１８は、バスを介してプログラマブルコントローラ１から受信したデータ及びそのデータＩＤを一時記憶する。周期データ解析処理部１９は、周期受信用バッファ１８から受信データ及びそのデータＩＤを取得し、このデータＩＤに対応するメモリアドレスをデバイス名変換表１４ｂから特定して、位置決め装置用メモリ２０の上記メモリアドレスに受信データを書き込む。
【００３０】
位置決め装置用メモリ２０は、制御対象機器の位置決め処理に必要なデータをメモリアドレスに対応付けて記憶する。図６は、図１中の位置決め装置用メモリの内容を示す図である。図６に示す例では、位置決め装置用メモリ２０が、プログラマブルコントローラ１から受信したデータｎ０，ｎ１，・・・，ｎ１０，・・・，ｎ２０を、メモリアドレスＤ０，Ｄ１，・・・，Ｄ１０，・・・，Ｄ２０に対応付けて記憶する。位置決め装置２では、位置決め装置用メモリ２０に格納されたプログラマブルコントローラ１からの受信データで処理を補間することにより、制御対象機器の位置決め処理が実行される。
【００３１】
次に実施の形態１によるコントローラシステムのデータ構成の概要を説明する。
図７は、図１中のプログラマブルコントローラと位置決め装置のデータ構成を示す図である。図７において、データメモリ６には、図２の周期フラグを有するデータが書き込まれたレコード内容を記載しており、周期送信用バッファ１１、変更データテーブル１２、デバイス名変換表１４ａ，１４ｂ、周期受信用バッファ１８及び位置決め装置用メモリ２０には、図３〜６に示したレコード内容をそれぞれ記載している。
【００３２】
図８は、実施の形態１によるコントローラシステムで扱われるユーザラダーコードの一例を示す図である。ユーザラダーコードは、図１２で後述する開発環境装置であるプログラミング装置を用いて、開発者であるユーザが記載するコードである。図８に示すコイル出力命令＋Ｄ１  Ｄ２  Ｄ０（ｃｙｃ）コード１８中の（ｃｙｃ）は、デバイス番号Ｄ０（Ｄ０を実行した演算データ）に付与された周期フラグである。このコード１８を実行することにより、Ｄ０＝Ｄ１＋Ｄ２の結果が毎周期位置決め装置２へ送信される。
【００３３】
ラダーコード１８のデバイス番号Ｄ０に対応する処理は、接点命令Ｘ０がオンのときに実行される。従って、Ｄ０に対応する処理が実行されると、図７に示すように、変更データテーブル１２のＤ０に対応するレコードの変更フラグがオン（デジタル値１を設定）となり、データｎ０としてＤ１＋Ｄ２の演算結果が設定される。
【００３４】
ラダーコード１８をデータメモリ６に配置する場合、図７に示すように、デバイス番号Ｄ０に対応するレコードの周期フラグには１が設定されている。この場合、データメモリ６におけるＤ０に対応する周期フラグの設定領域には、０１のデジタル値が設定される。また、デバイス番号Ｄ１の場合は、対応するレコードの周期フラグが０であるため、デジタル値００が設定される。
【００３５】
図９は、実施の形態１によるコントローラシステムで扱われるユーザラダーコードの他の例を示す図である。図９に示すラダーコードは３本のラングにより構成される。第１のラングにおけるコード１８は、図８に示したものと同様である。第２のラングにおけるコイル出力命令＋Ｄ８  Ｄ９  Ｄ１０（２ｃｙｃ）コード１８ａ中の（２ｃｙｃ）は、デバイス番号Ｄ１０（Ｄ１０を実行した演算データ）に付与された周期フラグである。このコード１８ａを実行することにより、Ｄ１０＝Ｄ８＋Ｄ９の結果が２周期に１回位置決め装置２へ送信される。同様に、第３のラングにおけるコイル出力命令＋Ｄ５  Ｄ６  Ｄ２０（３ｃｙｃ）コード１８ｂを実行することにより、Ｄ２０＝Ｄ５＋Ｄ６の結果が３周期に１回位置決め装置２へ送信される。
【００３６】
ラダーコード１８ａのデバイス番号Ｄ１０に対応する処理は、接点命令Ｘ１がオンのときに実行される。従って、Ｄ１０に対応する処理が実行されると、図７に示すように、変更データテーブル１２のＤ１０に対応するレコードの変更フラグがオンとなり、データｎ１０としてＤ８＋Ｄ９の演算結果が設定される。また、同様に、ラダーコード１８ｂのデバイス番号Ｄ２０に対応する処理は、接点命令Ｘ２がオンのときに実行される。従って、Ｄ２０に対応する処理が実行されると、図７に示すように、変更データテーブル１２のＤ２０に対応するレコードの変更フラグがオンとなり、データｎ２０としてＤ５＋Ｄ６の演算結果が設定される。
【００３７】
ラダーコード１８ａ，１８ｂをデータメモリ６に配置する場合、図７に示すように、デバイス番号Ｄ１０に対応するレコードの周期フラグには２が設定されており、Ｄ２０に対応するレコードの周期フラグには３が設定されている。この場合、データメモリ６におけるＤ１０に対応する周期フラグの設定領域には値１０が設定され、Ｄ２０に対応する周期フラグの設定領域には値１１が設定される。また、デバイス番号Ｄ１の場合は、対応するレコードの周期フラグが０であるため、デジタル値００が設定される。
【００３８】
次に動作について説明する。
実施の形態１によるコントローラシステムでは、大きく分けて、初期化処理、プログラマブルコントローラ１によるデータライト処理、補間周期信号の受信後処理、及び周期送信用バッファ送信後処理、周期受信用バッファ受信時処理が実行される。
（１）初期化処理
図１０は、変更データテーブル及びデバイス名変換表の初期化処理を説明するための図である。図１０の例では、初期化処理部１７が変更データテーブル１２とデバイス名変換表１４ａ，１４ｂを作成し、デバイス名変換表１４ｂを位置決め装置２へ送信する場合を示している。また、図１１は、初期化処理の流れを示すフローチャートであり、この図に沿って説明する。
【００３９】
先ず、初期化処理部１７は、変更データテーブル１２の変更データテーブルＩＤインデックスに０を設定する（ステップＳＴ１）。変更データテーブルＩＤインデックスとは、変更データテーブル１２とデバイス名変換表１４ａ，１４ｂのどのレコードにデータを挿入するかを示すインデックスである。変更データテーブルＩＤインデックスとしては、例えば各レコードにそれぞれ設定した通し番号が考えられる。
【００４０】
次に、初期化処理部１７は、図１０に示すように、データメモリ６から周期フラグを有するレコードを順に検出し、その周期フラグの値が０か否かを判定する（ステップＳＴ２）。ここで、周期フラグの値が０である場合、そのレコードのデータは周期に依存しないデータであるので、ステップＳＴ６の処理に移行する。ステップＳＴ６において、データメモリ６の全レコードを処理していないと判定された場合、初期化処理部１７は、ステップＳＴ２に戻って、次のメモリアドレスに対応するレコードを処理する。
【００４１】
一方、周期フラグの値が０以外である場合、初期化処理部１７は、この周期フラグに対応するメモリアドレスに該当する変更データテーブル１２の変更フラグをオフ（デジタル値０を設定）とし、この周期フラグの値を周期カウントに設定する（ステップＳＴ３）。
【００４２】
続いて、初期化処理部１７は、現在の変更データテーブルＩＤインデックスに対応するレコードのメモリアドレスを、デバイス名変換表１４ａの空きレコードに登録する（ステップＳＴ４）。この後、初期化処理部１７は、現在の変更データテーブルＩＤインデックスの値をインクリメントする（ステップＳＴ５）。ステップＳＴ２からステップＳＴ５までの一連の処理は、ステップＳＴ６における判定処理によって、データメモリ６における周期フラグがある全てのレコードに対して実行される。
【００４３】
このようにして変更データテーブル１２及びデバイス名変換表１４ａが作成されると、初期化処理部１７は、バスを介してデバイス名変換表１４ａのデータを位置決め装置２へ送信し、同一内容をデバイス名変換表１４ｂに設定する（ステップＳＴ７）。
【００４４】
なお、入力装置（不図示）を用いてデータ及びその周期フラグを初期化処理部１７に指定することで、初期化処理部１７が、データメモリ６内の該当するデータに周期フラグを設定して、変更データテーブル及びデバイス名変換表を作成するように構成してもよい。このようにすることで、ユーザが、データメモリ６内のデータに周期フラグを適宜設定することができる。
【００４５】
図１２は、実施の形態１によるコントローラシステムの他の構成例での初期化処理を説明するための図である。図１２に示すプログラマブルコントローラ１は、初期化処理部１７を備えておらず、プログラマブルコントローラ１の外部に設けたプログラミング装置等の開発環境装置２１が、開発者であるユーザにより記述されたユーザラダーコード２１ａを有するシーケンスプログラムに基づいて、変更データテーブル及びデバイス名変換表を作成する。ユーザラダーコード２１ａには、図８や図９に示したように周期フラグを設定することができる。
【００４６】
開発環境装置２１は、例えばバスを介してプログラマブルコントローラ１と位置決め装置２に接続しており、作成した変更データテーブル及びデバイス名変換表をプログラマブルコントローラ１及び位置決め装置２に送信して、プログラマブルコントローラ１内の変更データテーブル１２及びデバイス名変換表１４ａに書き込み、位置決め装置２内のデバイス名変換表１４ｂに書き込む。
【００４７】
また、入力装置（不図示）を用いてデータ及びその周期フラグを開発環境装置２１に指定することで、開発環境装置２１が、データメモリ６内の該当するデータに周期フラグを設定して、変更データテーブル及びデバイス名変換表を作成するように構成してもよい。
【００４８】
（２）データライト処理
図１３は、図１中のプログラマブルコントローラによるデータライト処理を説明するための図であり、データライト処理における各構成要素間でのデータの流れを矢印で示している。また、図１４は、データライト処理の流れを示すフローチャートであり、この図に沿って説明する。
【００４９】
演算部４は、プログラムメモリ３から取得（フェッチ）したシーケンスプログラムの命令コードをデコードし、命令コードの内容に従った演算処理を実行する。この演算処理に生じた演算結果データは、演算部４からライト処理部５に出力される。ライト処理部５では、図１３に示すように、演算部４から入力した演算結果データをデータメモリ６に書き込むとともに、演算結果データのうち、周期フラグを有するデータ及びそのアドレスデータ（メモリアドレスを示すデバイス番号）を変更データ書き換え処理部８へ出力する（ステップＳＴ１ａ）。
【００５０】
変更データ書き換え処理部８は、ライト処理部５から取得したメモリアドレスが変更データテーブル１２にあるか否かを判定する（ステップＳＴ２ａ）。ここで、該当するメモリアドレスがない場合、データライト処理を終了する。
【００５１】
一方、変更データテーブル１２に該当するメモリアドレスがある場合、変更データ書き換え処理部８は、そのメモリアドレスに対応するレコードの周期カウント値を変更データテーブル１２から取得して、上記メモリアドレス、これに対応するデータ及び周期カウント値を周期カウントチェック処理部９へ出力する。
【００５２】
周期カウントチェック処理部９は、変更データ書き換え処理部８から取得した周期カウントの値から、この周期カウント値に対応するデータが今周期で位置決め装置２へ送信するデータであるか否かを判定する（ステップＳＴ３ａ）。ここで、今周期で位置決め装置２へ送信するデータではない場合（次周期以降に送信すべき非送信周期である場合）、周期カウントチェック処理部９は、この周期カウント値に対応するデータを変更データ書き換え処理部８へ出力する。
【００５３】
変更データ書き換え処理部８は、周期カウントチェック処理部９から非送信周期であると判定されたデータを取得すると、この判定結果を受けたデータで変更データテーブル１２の対応するデータ内容を書き換え、このデータに対応する変更フラグをオンにする（ステップＳＴ４ａ）。
【００５４】
また、ステップＳＴ３ａにおいて今周期で位置決め装置２へ送信するデータである（送信周期）と判定されると、周期カウントチェック処理部９は、この周期カウント値に対応するデータ及びそのメモリアドレスを周期送信用バッファデータ登録処理部１０へ出力する。周期送信用バッファデータ登録処理部１０では、周期カウントチェック処理部９からのデータに対応するデータＩＤをデバイス名変換表１４ａから取得し、このデータＩＤ及びそのデータを周期送信用バッファ１１に登録する（ステップＳＴ５ａ）。
【００５５】
（３）補間周期信号の受信後処理及び周期送信用バッファ送信後処理
図１５は、図１中のコントローラシステムによる補間周期信号の受信後処理、周期送信用バッファ送信後処理及び周期受信用バッファ受信時処理を説明するための図である。図１５において、各処理における各構成要素間でのデータの流れを矢印で示している。また、図１６は、補間周期信号の受信後処理及び周期送信用バッファ送信後処理の流れを示すフローチャートであり、この図に沿って説明する。
【００５６】
プログラマブルコントローラ１が補間周期信号を受信すると（ステップＳＴ１ｂ）、図１５に示すように周期送信バッファ送信処理部７及び変更データテーブル更新処理部１３に入力される。周期送信バッファ送信処理部７では、補間周期信号を入力すると、周期送信用バッファ１１に記憶された演算データ及びそのデータＩＤを、周期送信データとして位置決め装置２へ送信する（ステップＳＴ２ｂ）。位置決め装置２では、このデータ及びデータＩＤを周期受信用バッファ１８に格納する。
【００５７】
また、変更データテーブル更新処理部１３は、上記補間周期信号を入力すると、変更データテーブル１２の各レコードの周期カウント値を更新する（ステップＳＴ３ｂ）。更新内容としては、周期カウント値をデクリメントする。ここまでの処理が補間周期信号の受信後処理に相当する。
【００５８】
周期送信完了チェック処理部１６は、ステップＳＴ３ｂまでの処理が実行されると、周期送信バッファ送信処理部７及び変更データテーブル更新処理部１３からの通知待ち状態に移行する。ここで、周期送信バッファ送信処理部７から周期送信用バッファ１１内のデータ送信完了、及び、変更データテーブル更新処理部１３から変更データテーブル１２の周期カウント値の更新完了が通知されると、周期送信完了チェック処理部１６は、その旨を次周期送信データコピー処理部１５へ通知する（ステップＳＴ４ｂ）。
【００５９】
次周期送信データコピー処理部１５では、周期送信完了チェック処理部１６から通知を受けると、変更データテーブル１２の各レコードの周期カウント値をモニタし、今周期で位置決め装置２へ送信するデータがあるか否かを判定する。判定内容としては、周期カウント値が０になっているレコードを特定し、このレコードのデータを送信周期データと判定する。ここで、今周期で位置決め装置２へ送信するデータ（送信周期である）であると判定されると、次周期送信データコピー処理部１５は、このデータ及びメモリアドレスを周期送信用バッファデータ登録処理部１０へ出力する。
【００６０】
周期送信用バッファデータ登録処理部１０は、次周期送信データコピー処理部１５から取得したメモリアドレスでデバイス名変換表１４ａを検索して、このメモリアドレスに対応するデータＩＤを取得し、このデータＩＤとこれに対応するデータを周期送信用バッファ１１に登録する（ステップＳＴ５ｂ）。この登録処理の後、変更データテーブル更新処理部１３は、周期送信用バッファデータ登録処理部１０によって周期送信用バッファ１１に登録されたデータに対応する変更データテーブル１２の変更フラグをオフとし、その周期カウント値を初期値に戻す。ここまでの処理が周期送信用バッファ送信後処理に相当する。
【００６１】
なお、変更データテーブル１２で送信周期にあるデータは、変更データ書き換え処理部８によって変更フラグがオンにされている。つまり、次周期送信データコピー処理部１５は、今周期に送信すべきであって、かつ変更フラグがオンのデータ及びメモリアドレスを、周期送信用バッファデータ登録処理部１０へ出力する。これにより、データ内容の書き換えが無く、位置決め装置２へ送信済みのデータを再度送信することがなく、データ内容の書き換えがあったデータのみを位置決め装置２へ送信することができる。
【００６２】
（４）周期受信用バッファ受信時処理
図１７は、周期受信用バッファ受信時処理の流れを示すフローチャートであり、この図に沿って説明する。上述のようにして送信された周期送信データは、バスを介して位置決め装置２に受信され、周期受信用バッファ１８に格納される（ステップＳＴ１ｃ）。次に、周期データ解析処理部１９は、受信されたレコード数分の周期送信データを周期受信用バッファ１８から取得（データコピー）する（ステップＳＴ２ｃ）。
【００６３】
続いて、周期データ解析処理部１９は、上記周期送信データのレコードごとに内容を解析してデータ及びそのデータＩＤを抽出し、このデータＩＤに対応するメモリアドレスをデバイス名変換表１４ｂから特定する（ステップＳＴ３ｃ）。この後、周期データ解析処理部１９は、特定したメモリアドレスに対応する位置決め装置用メモリ２０の記憶領域に受信データを書き込む（ステップＳＴ４ｃ）。
【００６４】
周期データ解析処理部１９は、周期受信用バッファ１８に格納された周期送信データの全レコードに対して、ステップＳＴ２ｃからステップＳＴ４ｃまでの処理がなされたかを判定する（ステップＳＴ５ｃ）。ここで、全ての受信データについて処理がなされていれば、処理を終了する。一方、未処理のデータがある場合は、ステップＳＴ２ｃに戻って、ステップＳＴ２ｃからステップＳＴ４ｃまでの処理を繰り返す。
【００６５】
このように、プログラマブルコントローラ１及び位置決め装置２では、互いに同一のデバイス番号で、プログラマブルコントローラ１と位置決め装置２との間で送受されるデータのメモリアドレスを管理している。また、プログラマブルコントローラ１は、演算部４による演算の結果、変更データテーブル１２で管理しているメモリアドレスに対応するデータに変更があったか否か及び位置決め装置２への送信周期のデータであるか否かをモニタし、送信周期のデータであると、デバイス名変換表１４ａを用いてメモリアドレスをデータＩＤに変換し、このデータＩＤとデータ内容を位置決め装置２へ送信する。位置決め装置２では、プログラマブルコントローラ１と同一内容のデバイス名変換表１４ｂを用いて、受信データのデータＩＤからメモリアドレスを復元し、そのデータ内容を位置決め装置用メモリ２０に書き込む。これにより、位置決め装置２では、送信周期（位置決め装置２側でプログラマブルコントローラ１からの周期送信データを用いて処理を補間する周期）で必要なデータを取得して処理を行うことができる。
【００６６】
以上のように、この実施の形態１によれば、プログラマブルコントローラ１が、演算部４の演算データ及びその周期フラグが格納されるデータメモリ３と、データメモリ３のメモリアドレスに対応付けて、演算部４の演算データ及びその周期フラグに基づく送信周期のカウント値が登録された変更データテーブル１２と、データメモリ３のメモリアドレスとこれに対応するデータのデータＩＤが登録されたデバイス名変換表１４ａと、位置決め装置２へ送信する周期ごとに演算データ及びそのデータＩＤが、周期送信データとして格納される周期送信用バッファ１１と、周期送信用バッファ１１の内容を位置決め装置２へ送信する周期送信バッファ送信処理部７と、周期送信バッファ送信処理部７によって周期送信データが送信されるごとに、変更データテーブル１２の送信周期のカウント値を更新する変更データテーブル更新処理部１３と、位置決め装置２へ送信する演算データ及びそのメモリアドレスでデバイス名変換表１４ａから取得したデータＩＤを、周期送信データとして周期送信用バッファ１１に格納する周期送信バッファデータ登録処理部１０と、周期送信データの送信及び変更データテーブル１２の送信周期のカウント値の更新がなされる度に、更新後の送信周期のカウント値に基づいて変更データテーブル１２から次周期で送信する演算データを特定し、この演算データ及びそのメモリアドレスを周期送信データとして登録処理部へ通知する次周期送信データコピー処理部１５とを有し、位置決め装置２が、制御対象機器の位置決めに用いるデータが格納される位置決め装置用メモリ２０と、プログラマブルコントローラ１から受信した周期送信データが格納される周期受信用バッファ１８と、位置決め装置用メモリ２０のメモリアドレスとこれに対応するデータを識別するデータＩＤとが登録されたデバイス名変換表１４ｂと、デバイス名変換表１４ｂから取得した周期送信データのデータＩＤに対応するメモリアドレスに、制御対象機器の位置決めに用いるデータとして周期送信データを書き込む周期データ解析処理部１９とを有するので、位置決め装置２が、制御対象機器の移動速度や位置を算出するタイミングで、その処理に必要なデータをプログラマブルコントローラ１から取得することができる。また、送信すべき周期になるまでデータ送信が行われないので、必要最小限のデータ送信で済み、プログラマブルコントローラ１と位置決め装置２の間の通信帯域の利用率を低減させることができ、他の通信用に帯域を空けることが可能である。これにより、通信オーバヘッドを抑制でき、位置決め装置２の応答遅延を低減することができる。
【００６７】
また、この実施の形態１によれば、変更データテーブル１２に、データメモリ３のメモリアドレスに対応付けて、演算部４の演算データ及びその送信周期のカウント値に加え、演算データの書き換えの有無を示す変更フラグを登録し、プログラマブルコントローラ１が、演算部４の演算データに対応する送信周期のカウント値に基づいて、この演算データが今周期に位置決め装置２への送信すべきデータか否かを判定する周期カウントチェック処理部９と、演算部４の演算データのうち、周期カウントチェック処理部９により今周期に送信すべきと判定されたデータ及びそのメモリアドレスを、周期送信データとして周期送信バッファデータ登録処理部１０へ通知するとともに、次周期以降に送信すべきと判定されたデータ内容で変更データテーブル１２の対応するメモリアドレスのデータを書き換え、その変更フラグにデータ書き換え有りを示す値を設定する変更データ書き換え処理部８とを備え、変更データテーブル更新処理部１３が、周期送信用バッファ１１に周期送信データが格納されると、この周期送信データに対応する変更フラグにデータ書き換え無しを示す値を設定するので、データ内容の書き換えが無く、位置決め装置２へ送信済みのデータを再度送信することがなく、データ内容の書き換えがあったデータのみを位置決め装置２へ送信することができる。これにより、プログラマブルコントローラ１と位置決め装置２の間の通信帯域の利用率を低減させることができ、他の通信用に帯域を空けることが可能である。これにより、通信オーバヘッドを抑制でき、位置決め装置２の応答遅延を低減することができる。
【００６８】
さらに、この実施の形態１によれば、変更データテーブル更新処理部１３が、位置決め装置２へのデータ送信周期を示す周期信号の入力に応じて、変更データテーブル１２の送信周期のカウント値を減算するとともに、このカウント値に対応する演算データ及びデータＩＤが周期送信用バッファ１１に格納されると、このカウント値にカウントの初期値を設定し、周期送信バッファデータ登録処理部１０が、変更データテーブル更新処理部１３による減算処理により変更データテーブル１２の送信周期のカウント値が所定値（例えば、０）になると、このカウント値に対応する演算データ及びそのデータＩＤを周期送信用バッファ１１に格納するので、ユーザがカウントの初期値を適宜指定してやることにより、特定のデータのみを所望の周期で位置決め装置２へ送信することができ、プログラマブルコントローラ１と位置決め装置２の間の通信帯域の利用率を低減できる。
【００６９】
さらに、この実施の形態１によれば、データメモリ３に格納された演算データの周期フラグの内容に基づいて、変更データテーブル１２、デバイス名変換表１４ａ，１４ｂを作成するとともに、外部から指定された演算データ及びその周期フラグをデータメモリ３に格納する開発環境装置２１を備えたので、ユーザが指定したデータのみを所望の周期で位置決め装置２へ送信することができ、プログラマブルコントローラ１と位置決め装置２の間の通信帯域の利用率を低減できる。
【００７０】
さらに、この実施の形態１によれば、データＩＤがメモリアドレスよりもデータサイズが小さいデータ形態であるので、プログラマブルコントローラ１と位置決め装置２の間の通信帯域の利用率を低減できる。
【図面の簡単な説明】
【００７１】
【図１】この発明の実施の形態１によるコントローラシステムの構成を示すブロック図である。
【図２】図１中のデータメモリの記憶内容を示す図である。
【図３】図１中の変更データテーブルの内容を示す図である。
【図４】図１中の周期送信用バッファの内容を示す図である。
【図５】図１中のデバイス名変換表の内容を示す図である。
【図６】図１中の位置決め装置用メモリの内容を示す図である。
【図７】図１中のプログラマブルコントローラと位置決め装置のデータ構成を示す図である。
【図８】実施の形態１によるコントローラシステムで扱われるユーザラダーコードの一例を示す図である。
【図９】実施の形態１によるコントローラシステムで扱われるユーザラダーコードの他の例を示す図である。
【図１０】変更データテーブル及びデバイス名変換表の初期化処理を説明するための図である。
【図１１】初期化処理の流れを示すフローチャートである。
【図１２】実施の形態１によるコントローラシステムの他の構成例での初期化処理を説明するための図である。
【図１３】図１中のプログラマブルコントローラによるデータライト処理を説明するための図である。
【図１４】データライト処理の流れを示すフローチャートである。
【図１５】補間周期信号の受信後処理、周期送信用バッファ送信後処理及び周期受信用バッファ受信時処理を説明するための図である。
【図１６】補間周期信号の受信後処理及び周期送信用バッファ送信後処理の流れを示すフローチャートである。
【図１７】周期受信用バッファ受信時処理の流れを示すフローチャートである。
【符号の説明】
【００７２】
１  プログラマブルコントローラ、２  位置決め装置、３  プログラムメモリ、４  演算部、５  ライト処理部、６  データメモリ、７  周期送信バッファ送信処理部（送信処理部）、８  変更データ書き換え処理部（書き換え処理部）、９  周期カウントチェック処理部、１０  周期送信用バッファデータ登録処理部（登録処理部）、１１  周期送信用バッファ、１２  変更データテーブル、１３  変更データテーブル更新処理部（更新処理部）、１４ａ，１４ｂ  デバイス名変換表（第１の変換表、第２の変換表）、１５  次周期送信データコピー処理部（次周期処理部）、１６  周期送信完了チェック処理部、１７  初期化処理部、１８  周期受信用バッファ、１９  周期データ解析処理部（解析処理部）、２０  位置決め装置用メモリ、２１  開発環境装置（開発装置）、２１ａ  ユーザラダーコード。
【図１】
0004823207.tif 000002
【図２】
0004823207.tif 000003
【図３】
0004823207.tif 000004
【図４】
0004823207.tif 000005
【図５】
0004823207.tif 000006
【図６】
0004823207.tif 000007
【図７】
0004823207.tif 000008
【図８】
0004823207.tif 000009
【図９】
0004823207.tif 000010
【図１０】
0004823207.tif 000011
【図１１】
0004823207.tif 000012
【図１２】
0004823207.tif 000013
【図１３】
0004823207.tif 000014
【図１４】
0004823207.tif 000015
【図１５】
0004823207.tif 000016
【図１６】
0004823207.tif 000017
【図１７】
0004823207.tif 000018