(57)【特許請求の範囲】
【請求項１】
被制御機器と、プログラムに基づいて該被制御機器を制御するプログラマブルコントローラとを組み合わせた制御ユニットを複数備えた制御システムであって、
前記プログラマブルコントローラは、
他のプログラマブルコントローラおよび前記被制御機器と通信を確立する通信部と、
前記通信部を介して他のプログラマブルコントローラとデータを共有するためのコモンメモリと、
をそれぞれ備え、
前記プログラマブルコントローラには、マスターとして機能するマスタープログラマブルコントローラと、スレーブとして機能するスレーブプログラマブルコントローラとが存在し、
前記マスタープログラマブルコントローラは、さらに、
前記マスタープログラマブルコントローラと前記スレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、該スレーブプログラマブルコントローラに送信し、該伝送遅延時間リクエストフレームに対する応答である受信完了フレームを受信すると、該伝送遅延時間リクエストフレームを送信したときの時刻と該受信完了フレームを受信したときの時刻との差分から該伝送遅延時間を計算し、該伝送遅延時間を含む伝送遅延時間通知フレームを該スレーブプログラマブルコントローラに送信する遅延時間計測部を備え、
前記スレーブプログラマブルコントローラは、さらに、
前記伝送遅延時間リクエストフレームを受信すると、前記受信完了フレームを前記マスタープログラマブルコントローラに送信し、前記伝送遅延時間通知フレームを受信すると、該伝送遅延時間通知フレームに含まれる前記伝送遅延時間を取得する遅延時間受信部と、
前記伝送遅延時間に基づいて、前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させる同期補正部と、
を備えることを特徴とする制御システム。
【請求項２】
前記プログラマブルコントローラは、
前記プログラマブルコントローラ内で生成されたデータで自己のプログラマブルコントローラのコモンメモリを更新するとともに、他のプログラマブルコントローラのコモンメモリを更新するデータ更新部をさらに備えることを特徴とする請求項１に記載の制御システム。
【請求項３】
前記プログラマブルコントローラを制御する管理装置をさらに含み、
前記プログラマブルコントローラは、
前記データを前記管理装置に送信するデータ送信部をさらに備えることを特徴とする請求項１または２に記載の制御システム。
【請求項４】
前記データは、前記被制御機器での検出結果または制御結果であり、前記コモンメモリを通じて他のプログラマブルコントローラが参照可能であることを特徴とする請求項１から３のいずれか１項に記載の制御システム。
【請求項５】
前記プログラマブルコントローラは、
予め設定された基準値に計数値が達することで基準信号を生成する基準信号生成部と、
前記基準信号に応じて実行プログラムを実行するアプリケーション実行部と、
をさらに備え、
前記同期補正部は、前記基準信号生成部の基準信号の生成タイミングを前記伝送遅延時間分だけ調整することで前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させることを特徴とする請求項１から４のいずれか１項に記載の制御システム。
【請求項６】
前記マスタープログラマブルコントローラは、前記スレーブプログラマブルコントローラに同期化フレームを送信する同期化フレーム送信部をさらに備え、
前記同期補正部は、
前記同期化フレームを受信したときの前記基準信号生成部の計数値を取得し、前記伝送遅延時間と該計数値との差分である補正量を算出し、前記基準値から該補正量を減算して補正基準値を導出し、該補正基準値を新たな基準値として一時的に該基準信号生成部に設定することを特徴とする請求項５に記載の制御システム。
【請求項７】
前記基準値は、前記プログラマブルコントローラを制御する管理装置から設定できることを特徴とする請求項５または６に記載の制御システム。
【請求項８】
前記スレーブプログラマブルコントローラは、該スレーブプログラマブルコントローラにおける演算を実行するＣＰＵを含み、
前記基準信号生成部は、前記ＣＰＵのみがアクセスできるカウンタであることを特徴とする請求項１から７のいずれか１項に記載の制御システム。
【請求項９】
プログラムに基づいて被制御機器を制御し、マスターとして機能するマスタープログラマブルコントローラであって、
スレーブとして機能するスレーブプログラマブルコントローラおよび前記被制御機器と通信を確立する通信部と、
前記通信部を介して前記スレーブプログラマブルコントローラとデータを共有するためのコモンメモリと、
前記マスタープログラマブルコントローラと前記スレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、前記スレーブプログラマブルコントローラに送信し、該伝送遅延時間リクエストフレームに対する応答である受信完了フレームを受信すると、該伝送遅延時間リクエストフレームを送信したときの時刻と該受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、該伝送遅延時間を含む伝送遅延時間通知フレームを該スレーブプログラマブルコントローラに送信する遅延時間計測部と、
を備えることを特徴とするマスタープログラマブルコントローラ。
【請求項１０】
プログラムに基づいて被制御機器を制御し、スレーブとして機能するスレーブプログラマブルコントローラであって、
マスターとして機能するマスタープログラマブルコントローラを含む他のプログラマブルコントローラおよび前記被制御機器と通信を確立する通信部と、
前記通信部を介して他のプログラマブルコントローラとデータを共有するためのコモンメモリと、
前記マスタープログラマブルコントローラと前記スレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを受信すると、該伝送遅延時間リクエストフレームに対する応答である受信完了フレームを前記マスタープログラマブルコントローラに送信し、該伝送遅延時間を含む伝送遅延時間通知フレームを受信すると、伝送遅延時間通知フレームに含まれる該伝送遅延時間を取得する遅延時間受信部と、
前記伝送遅延時間に基づいて、前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させる同期補正部と、
を備えることを特徴とするスレーブプログラマブルコントローラ。
【請求項１１】
被制御機器と、プログラムに基づいて該被制御機器を制御するプログラマブルコントローラとを組み合わせた制御ユニットを複数用いて制御する制御方法であって、
前記プログラマブルコントローラは、
他のプログラマブルコントローラおよび前記被制御機器と通信を確立し、
他のプログラマブルコントローラとコモンメモリを用いてデータを共有し、
前記プログラマブルコントローラのうち、マスターとして機能するマスタープログラマブルコントローラは、
前記マスタープログラマブルコントローラと、スレーブとして機能するスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、該スレーブプログラマブルコントローラに送信し、
前記スレーブプログラマブルコントローラは、
前記伝送遅延時間リクエストフレームを受信すると、該伝送遅延時間リクエストフレームに対する応答である受信完了フレームを前記マスタープログラマブルコントローラに送信し、
前記マスタープログラマブルコントローラは、
前記受信完了フレームを受信すると、該伝送遅延時間リクエストフレームを送信したときの時刻と該受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、該伝送遅延時間を含む伝送遅延時間通知フレームを前記スレーブプログラマブルコントローラに送信し、
前記スレーブプログラマブルコントローラは、
前記伝送遅延時間通知フレームを受信すると、該伝送遅延時間通知フレームに含まれる前記伝送遅延時間を取得し、
前記伝送遅延時間に基づいて、前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させることを特徴とする制御方法。
【請求項１２】
前記プログラマブルコントローラは、
前記プログラマブルコントローラ内で生成されたデータで自己のプログラマブルコントローラのコモンメモリを更新するとともに、他のプログラマブルコントローラのコモンメモリを更新することを特徴とする請求項１１に記載の制御方法。
【請求項１３】
前記プログラマブルコントローラは、
前記プログラマブルコントローラを制御する管理装置にデータを送信することを特徴とする請求項１１または１２に記載の制御方法。
【請求項１４】
前記データは、前記被制御機器での検出結果または制御結果であり、前記コモンメモリを通じて他のプログラマブルコントローラが参照可能であることを特徴とする請求項１１から１３のいずれか１項に記載の制御方法。
【請求項１５】
前記プログラマブルコントローラは、
予め設定された基準値に計数値が達することで基準信号を生成し、
前記基準信号に応じて実行プログラムを実行し、
前記基準信号の生成タイミングを前記伝送遅延時間分だけ調整することで前記スレーブプログラマブルコントローラを前記マスタープログラマブルコントローラに同期させることを特徴とする請求項１１から１４のいずれか１項に記載の制御方法。
【請求項１６】
前記マスタープログラマブルコントローラは、前記スレーブプログラマブルコントローラに同期化フレームを送信し、
前記スレーブプログラマブルコントローラでは、
前記同期化フレームを受信したときの前記基準信号生成部の計数値を取得し、前記伝送遅延時間と該計数値との差分である補正量を算出し、前記基準値から該補正量を減算して補正基準値を導出し、該補正基準値を新たな基準値とすることを特徴とする請求項１５に記載の制御方法。
【請求項１７】
前記基準値は、前記プログラマブルコントローラを制御する管理装置から設定できることを特徴とする請求項１５または１６に記載の制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、それぞれ被制御機器を制御する複数のプログラマブルコントローラが互いに通信可能に接続された制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法に関する。
【背景技術】
【０００２】
大規模な制御システムでは、システムの構築やメンテナンスの容易性の観点からコントローラの階層構造がとられ、階層間はネットワークにより接続される。例えば、制御システムでは、１の管理装置に対して複数のプログラマブルコントローラがネットワークを介して接続され、それぞれのプログラマブルコントローラに１または複数の被制御機器が接続される。そして、プログラマブルコントローラは、上位の管理装置から制御指令を受けて、その制御指令を解析し、下位の被制御機器を制御する。【０００３】
このような制御システムでは、プログラマブルコントローラが管理装置から制御指令を受けると、後は、プログラマブルコントローラと被制御機器とのクローズした範囲で制御処理が進行する。そして、プログラマブルコントローラは、その制御結果のみを管理装置に送信する。したがって、管理装置では、プログラマブルコントローラ内部における個々のタイミングで制御結果を収集することとなる。【０００４】
また、同一の管理装置下にあるプログラマブルコントローラ同士で通信を確立し、制御結果を送受信することもできる。例えば、プログラマブルコントローラ間で制御データを送受信するスケジューリングを行い、そのスケジューリングに従ってプログラマブルコントローラ間に設けられたスイッチを切り替える技術が知られている（例えば、特許文献１）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１２−１０８６９６号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
上述した技術を用いることで、管理装置のみならず、プログラマブルコントローラ同士も情報を交換することができる。しかし、制御システムにおける複数のプログラマブルコントローラは、管理装置の制御指令に従い、それぞれ独立したタイミングで動作するため、プログラマブルコントローラと被制御機器との間は同期がとれているが、プログラマブルコントローラ間では同期がとれていない状態となる。【０００７】
例えば、管理装置が複数のプログラマブルコントローラから情報を収集する場合、情報が生成されるタイミングがプログラマブルコントローラ毎に異なるため、情報の前後関係が明確ではなく、厳密な制御が困難であった。【０００８】
また、複数のプログラマブルコントローラ同士では、他のプログラマブルコントローラの情報と自己の情報とのいずれが先に生成されたか、また、生成タイミングがどの程度異なるのか明確ではなく、他のプログラマブルコントローラの情報を安易に利用できなかった。【０００９】
さらに、被制御機器の配置変更によって、被制御機器を他のプログラマブルコントローラに移植すると、アクセス先のアドレスや制御指令の内容等を変更しなければならなかった。また、被制御機器に関する情報が配置変更前と同一のタイミングで生成されるとは限らないので、どのプログラマブルコントローラに接続されており、どの程度の遅れが生じるのかを意識して設計しなければならなかった。さらに、その設計変更によって不具合が生じないことを再度確認する必要があった。【００１０】
したがって、実質的に機能が等しい制御システムであっても、エンドユーザにおける被制御機器の配置や運用上の要望によっては、構築したアプリケーションを汎用的に利用することができず、被制御機器の移植に対する個々の対応を余儀なくされていた。【００１１】
そこで、本発明は、このような課題に鑑み、移植性を高め、制御精度や安定性の向上を図ることが可能な制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法を提供することを目的としている。
【課題を解決するための手段】
【００１２】
上記課題を解決するために、被制御機器と、プログラムに基づいて被制御機器を制御するプログラマブルコントローラとを組み合わせた制御ユニットを複数備えた本発明の制御システムでは、プログラマブルコントローラは、他のプログラマブルコントローラおよび被制御機器と通信を確立する通信部と、通信部を介して他のプログラマブルコントローラとデータを共有するためのコモンメモリと、をそれぞれ備え、プログラマブルコントローラには、マスターとして機能するマスタープログラマブルコントローラと、スレーブとして機能するスレーブプログラマブルコントローラとが存在し、マスタープログラマブルコントローラは、さらに、マスタープログラマブルコントローラとスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、スレーブプログラマブルコントローラに送信し、伝送遅延時間リクエストフレームに対する応答である受信完了フレームを受信すると、伝送遅延時間リクエストフレームを送信したときの時刻と受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、伝送遅延時間を含む伝送遅延時間通知フレームをスレーブプログラマブルコントローラに送信する遅延時間計測部を備え、スレーブプログラマブルコントローラは、さらに、伝送遅延時間リクエストフレームを受信すると、受信完了フレームをマスタープログラマブルコントローラに送信し、伝送遅延時間通知フレームを受信すると、伝送遅延時間通知フレームに含まれる伝送遅延時間を取得する遅延時間受信部と、伝送遅延時間に基づいて、スレーブプログラマブルコントローラをマスタープログラマブルコントローラに同期させる同期補正部と、を備えることを特徴とする。【００１３】
また、上記課題を解決するために、プログラムに基づいて被制御機器を制御し、マスターとして機能する本発明のマスタープログラマブルコントローラは、スレーブとして機能するスレーブプログラマブルコントローラおよび被制御機器と通信を確立する通信部と、通信部を介してスレーブプログラマブルコントローラとデータを共有するためのコモンメモリと、マスタープログラマブルコントローラとスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、スレーブプログラマブルコントローラに送信し、伝送遅延時間リクエストフレームに対する応答である受信完了フレームを受信すると、伝送遅延時間リクエストフレームを送信したときの時刻と受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、伝送遅延時間を含む伝送遅延時間通知フレームをスレーブプログラマブルコントローラに送信する遅延時間計測部と、を備えることを特徴とする。【００１４】
また、上記課題を解決するために、プログラムに基づいて被制御機器を制御し、スレーブとして機能する本発明のスレーブプログラマブルコントローラは、マスターとして機能するマスタープログラマブルコントローラを含む他のプログラマブルコントローラおよび被制御機器と通信を確立する通信部と、通信部を介して他のプログラマブルコントローラとデータを共有するためのコモンメモリと、マスタープログラマブルコントローラとスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを受信すると、伝送遅延時間リクエストフレームに対する応答である受信完了フレームをマスタープログラマブルコントローラに送信し、伝送遅延時間を含む伝送遅延時間通知フレームを受信すると、伝送遅延時間通知フレームに含まれる伝送遅延時間を取得する遅延時間受信部と、伝送遅延時間に基づいて、スレーブプログラマブルコントローラをマスタープログラマブルコントローラに同期させる同期補正部と、を備えることを特徴とする。【００１５】
また、上記課題を解決するために、被制御機器と、プログラムに基づいて被制御機器を制御するプログラマブルコントローラとを組み合わせた制御ユニットを複数用いて制御する本発明の制御方法では、プログラマブルコントローラは、他のプログラマブルコントローラおよび被制御機器と通信を確立し、通信部を介して他のプログラマブルコントローラとコモンメモリを用いてデータを共有し、プログラマブルコントローラのうち、マスターとして機能するマスタープログラマブルコントローラは、マスタープログラマブルコントローラと、スレーブとして機能するスレーブプログラマブルコントローラとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、スレーブプログラマブルコントローラに送信し、スレーブプログラマブルコントローラは、伝送遅延時間リクエストフレームを受信すると、伝送遅延時間リクエストフレームに対する応答である受信完了フレームをマスタープログラマブルコントローラに送信し、マスタープログラマブルコントローラは、受信完了フレームを受信すると、伝送遅延時間リクエストフレームを送信したときの時刻と受信完了フレームを受信したときの時刻との差分から伝送遅延時間を計算し、伝送遅延時間を含む伝送遅延時間通知フレームをスレーブプログラマブルコントローラに送信し、スレーブプログラマブルコントローラは、伝送遅延時間通知フレームを受信すると、伝送遅延時間通知フレームに含まれる伝送遅延時間を取得し、伝送遅延時間に基づいて、スレーブプログラマブルコントローラをマスタープログラマブルコントローラに同期させることを特徴とする。
【発明の効果】
【００１６】
本発明によれば、制御システムの移植性を高め、制御精度や安定性の向上を図ることが可能となる。
【図面の簡単な説明】
【００１７】
【図１】制御システムを構成する各装置の概略的な関係を示した説明図である。
【図２】制御システムの概略的な構成を示した説明図である。
【図３】ＣＰＵモジュールのハードウェア構成の一例を示す図である。
【図４】ＣＰＵモジュールの各機能部を説明するための機能ブロック図である。
【図５】同期補正処理例を説明するためのタイムチャート図である。
【図６】同期補正処理の概略的なシーケンス例を示す図である。
【図７】ＣＰＵモジュールにおけるデータの送受信を説明するためのタイムチャート図である。
【図８】被制御機器の配置変更について説明するための説明図である。
【図９】コモンメモリ内のメモリマップを示した説明図である。
【図１０】コモンメモリの応用例を示した説明図である。
【発明を実施するための形態】
【００１８】
以下に添付図面を参照しながら、本発明の好適な実施形態について詳細に説明する。かかる実施形態に示す寸法、材料、その他具体的な数値などは、発明の理解を容易とするための例示にすぎず、特に断る場合を除き、本発明を限定するものではない。なお、本明細書および図面において、実質的に同一の機能、構成を有する要素については、同一の符号を付することにより重複説明を省略し、また本発明に直接関係のない要素は図示を省略する。
【００１９】
大規模なプラント等に適用される制御システムでは、そのシステム全体の処理の複雑さや物理的配置の関係により、複数の制御ユニット（コンフィグレーションともいう）による制御アプリケーションの分割制御が行われる。ここで、制御ユニットは、主として、プログラマブルコントローラ、および、プログラマブルコントローラに制御される被制御機器との組み合わせを示す。制御システムでは、このような制御ユニットが複数準備され、当該制御システム全体の制御を担う管理装置に接続される。以下、制御システムを構成する各装置を説明する。
【００２０】
（制御システム１００）
図１は、制御システム１００を構成する各装置の概略的な関係を示した説明図であり、図２は、制御システム１００の概略的な構成を示した説明図である。制御システム１００は、管理装置１１０と、複数のプログラマブルコントローラ１２０と、複数の被制御機器１３０とを含んで構成される。また、管理装置１１０と複数のプログラマブルコントローラ１２０とは、コントローラレベルのネットワークとして、例えば、ギガ（Ｇ）ベース等のＥｔｈｅｒｎｅｔ（登録商標）によるネットワーク配線１４０によって互いに接続される。さらに、複数のプログラマブルコントローラ１２０と複数の被制御機器１３０とは、それぞれ、デバイスレベルのネットワークとして、例えば、専用の接続配線１４２を通じて通信可能に接続されている。
【００２１】
管理装置１１０は、制御システム１００全体がアプリケーションに定められた工程の流れに沿って動作するように、複数のプログラマブルコントローラ１２０を一括して制御する。例えば、管理装置１１０は、個々のプログラマブルコントローラ１２０からステータス情報や制御結果を収集したり、その収集した内容に応じて、個々のプログラマブルコントローラ１２０に各種制御指令を出力したりする。
【００２２】
プログラマブルコントローラ１２０は、ＰＬＣ（Programmable Logic Controller）とも呼ばれ、図２に示すように、ＣＰＵモジュール１２２、通信モジュール１２４、入出力（Ｉ／Ｏ）モジュール１２６、電源モジュール１２８等の複数のモジュールを含んで構成される。
【００２３】
ここで、ＣＰＵモジュール１２２は、アプリケーションを実現するために、それぞれの制御ユニット用に分割された実行プログラムを管理装置１１０からダウンロードし、その実行プログラムを遂行したり、制御ユニットの動作状況を不図示のモニタに表示したりする。その際、管理装置１１０から受信した制御指令、入出力モジュール１２６を通じて入力された被制御機器１３０のセンサ検出結果、および、他のプログラマブルコントローラ１２０が有する情報等に基づいて被制御機器１３０を制御する。また、ＣＰＵモジュール１２２は、自己の状態を示すステータス情報、センサの検出結果、制御結果等のデータを管理装置１１０に送信する。
【００２４】
通信モジュール１２４は、コントローラレベルのネットワークとしての、例えば、ギガ（Ｇ）ベース等のＥｔｈｅｒｎｅｔ（登録商標）を通じて、管理装置１１０、他のプログラマブルコントローラ１２０、および、他のモジュールに接続され、それぞれと通信を確立することができる。ただし、各モジュール間は、ベースボードに設けられたバスによってデータを交換するとしてもよい。本実施形態において、通信モジュール１２４は、ＣＰＵモジュール１２２と一体的に形成されている。
【００２５】
入出力モジュール１２６は、被制御機器１３０に対して入出力の管理を行う。例えば、被制御機器１３０がセンサであれば、センサ検出結果を収集し、電動機であれば、ディスクリートで表される制御指令を送信するとともに、その制御結果を収集する。電源モジュール１２８は、ＣＰＵモジュール１２２、通信モジュール１２４、入出力モジュール１２６等の各モジュールに電力を供給する。
【００２６】
図１に戻って、被制御機器１３０は、ＦＡ（Factory Automation）における様々な状態を検知するセンサ、そのセンサの検知結果に応じて動作する電動機、エンコーダ等の電気機器で構成される。
【００２７】
このような制御システム１００は、様々な制御対象に適用できる。例えば、生産実行システム（ＭＥＳ：Manufacturing Execution System）に制御システム１００を適用した場合、被制御機器１３０としての、センタシーラユニット（Center Sealer Unit）やフィルムユニット（Film Unit）、圧延ユニット等の生産機器にプログラマブルコントローラ１２０を接続する。
【００２８】
例えば、プログラマブルコントローラ１２０は、入出力モジュール１２６等から生産機器の動作状態を読み出し、モータドライバ等を通じて生産機器内の電動機を回転制御する。管理装置１１０は、各プログラマブルコントローラ１２０単位の情報の収集および制御指令の送信を実行する。こうして、制御システム１００全体として、工程管理、品質管理、製造量管理等の生産支援管理を総合的に行うことが可能となる。以下、プログラマブルコントローラ１２０の特にＣＰＵモジュール１２２について詳述する。
【００２９】
（ＣＰＵモジュール１２２）
図３は、ＣＰＵモジュール１２２のハードウェア構成の一例を示す図である。図３に示すＣＰＵモジュール１２２は、入力部１５０と、出力部１５２と、通信部１５４と、ロジック回路１５６と、基準信号生成部１５８と、ＣＰＵ１６０と、ＲＯＭ１６２と、ＲＡＭ１６４と、コモンメモリ１６６とを含んで構成される。このうち、入力部１５０と、出力部１５２と、ロジック回路１５６と、ＣＰＵ１６０と、ＲＯＭ１６２と、ＲＡＭ１６４と、コモンメモリ１６６とは、共通バス１６８によりデータ移動が可能となるように接続されている。
【００３０】
入力部１５０は、キーボードや、マウス、タッチパネル等のポインティングデバイス、音声入力デバイス等で構成され、例えば、ユーザによるプログラムの実行等、各種操作を受け付ける。
【００３１】
出力部１５２は、液晶ディスプレイ、有機ＥＬ(Electro Luminescence)ディスプレイ等で構成され、本実施形態における処理を行うＣＰＵモジュール１２２を操作するのに必要な各種ウィンドウ、データ、制御プログラムの進行状況や制御結果等を表示する。
【００３２】
通信部１５４は、上述した通信モジュール１２４として機能し、Ｅｔｈｅｒｎｅｔ（登録商標）を通じて管理装置１１０、他のプログラマブルコントローラ１２０、入出力モジュール１２６との通信を確立する。本実施形態において通信部１５４はＣＰＵ１６０に内蔵されている。
【００３３】
ロジック回路１５６は、ＣＰＬＤ（Complex Programmable Logic Device）やＦＰＧＡ（Field-Programmable Gate Array）等の論理回路を書き換え可能な集積回路で構成され、ＣＰＵ１６０を補助する様々な論理回路が組み込まれる。
【００３４】
基準信号生成部１５８は、ハードウェア的なカウンタで構成され、計数を行い、予め設定された基準値に計数値が達することでＣＰＵ１６０に対して基準信号を生成する。かかる計数値は、基準値に基づいて周期的にカウントされている。ここで、基準値は、各ＣＰＵモジュール１２２それぞれに予め設定されており、管理装置１１０や入力部１５０から変更することができる。また、ここでは、基準信号生成部１５８をＣＰＵ１６０と別体で表しているが、ＣＰＵ１６０に内蔵されたタイマカウンタを用いて、基準信号生成部１５８を実現してもよい。ここで、「内蔵された」とは、例えば基準信号生成部１５８に対して、ＣＰＵ１６０で用いられる各機能部のみがアクセスできることを意味する。
【００３５】
ＣＰＵ１６０は、ＯＳ（Operating System）等の基本プログラムおよび実行プログラムに基づいて、各種演算やデータの入出力等、ＣＰＵモジュール１２２全体の処理を制御する。また、ＣＰＵ１６０は、ＲＯＭ１６２に格納された実行プログラムを遂行し、ワークエリアとしてのＲＡＭ１６４を利用することで、遅延時間計測部１８０、同期化フレーム送信部１８２、遅延時間受信部１８４、同期補正部１８６、アプリケーション実行部１８８、データ更新部１９０、データ送信部１９２といった機能部として機能する。また、ＣＰＵ１６０は、通信部１５４を内蔵し、割込処理に基づいて管理装置１１０、他のプログラマブルコントローラ１２０、および、入出力モジュール１２６と通信を行う。
【００３６】
ＲＯＭ１６２は、上述した基本プログラムや実行プログラムを格納する。また、補助記憶装置として、ハードディスク等のストレージ手段を有していてもよい。ＲＡＭ１６４は、基本プログラムや実行プログラムの一部や、実行プログラムを遂行することにより生じるデータ（例えば、ステータス情報、センサの検出結果、制御結果等）を一時的に格納する。コモンメモリ１６６は、他のＣＰＵモジュール１２２と情報を共有するための記憶領域であり、ＲＡＭ１６４の一部として形成されていてもよい。
【００３７】
（ＣＰＵモジュール１２２の各機能部）
図４は、ＣＰＵモジュール１２２の各機能部を説明するための機能ブロック図である。上述したようにＣＰＵ１６０は、遅延時間計測部１８０、同期化フレーム送信部１８２、遅延時間受信部１８４、同期補正部１８６、アプリケーション実行部１８８、データ更新部１９０、データ送信部１９２としても機能する。また、これらの各機能部は、プログラマブルコントローラ１２０がマスターとして動作するか（マスタープログラマブルコントローラ）、あるいは、スレーブとして動作するか（スレーブプログラマブルコントローラ）に応じて機能する場合と機能しない場合がある。ここでは、マスタープログラマブルコントローラにおけるＣＰＵモジュール１２２をマスターＣＰＵモジュール１２２ａとし、スレーブプログラマブルコントローラにおけるＣＰＵモジュール１２２をスレーブＣＰＵモジュール１２２ｂとする。また、図４中、マスターであるかスレーブであるかによって機能しない機能部については破線で示している。
【００３８】
なお、本実施形態は、上記の構成に限定されるものではなく、１つのＣＰＵモジュール１２２がマスターＣＰＵモジュール１２２ａにもスレーブＣＰＵモジュール１２２ｂにもなり得るように同一の構成を有している。
【００３９】
遅延時間計測部１８０は、ＣＰＵモジュール１２２がマスターＣＰＵモジュール１２２ａとして機能する場合に、マスターＣＰＵモジュール１２２ａとスレーブＣＰＵモジュール１２２ｂとの伝送遅延時間を計測するための伝送遅延時間リクエストフレームを、任意のスレーブＣＰＵモジュール１２２ｂに送信する。この伝送遅延時間リクエストフレームは、後述の同期化フレームとフォーマットが実質的に等しく、同期化フレーム内の所定部分（例えば、コマンド部）のデータが異なるフレームである。かかる伝送遅延時間リクエストフレームは、マスターＣＰＵモジュール１２２ａ内の基準信号生成部１５８によって生成された基準信号に同期して送信される。
【００４０】
また、遅延時間計測部１８０は、伝送遅延時間リクエストフレームを送信後、任意のスレーブＣＰＵモジュール１２２ｂから受信完了フレームを受信すると、受信完了フレームを受信したときの時刻を取得する。そして、遅延時間計測部１８０は、伝送遅延時間リクエストフレームを送信したときの時刻と受信完了フレームを受信したときの時刻との差分から、マスターＣＰＵモジュール１２２ａと任意のスレーブＣＰＵモジュール１２２ｂ間の往復伝送遅延時間を計算する。そして、遅延時間計測部１８０は、計算した往復伝送遅延時間を２で除算し、その結果である伝送遅延時間を含む伝送遅延時間通知フレームを次の基準信号に同期させて任意のスレーブＣＰＵモジュール１２２ｂに送信する。こうして、任意のスレーブＣＰＵモジュール１２２ｂに、ネットワーク配線１４０による伝送遅延時間を通知することができる。
【００４１】
同期化フレーム送信部１８２は、ＣＰＵモジュール１２２がマスターＣＰＵモジュール１２２ａとして機能する場合に、基準信号に同期して、予め用意された同期化フレームを複数のスレーブＣＰＵモジュール１２２ｂに送信する。かかる同期化フレームは、スレーブＣＰＵモジュール１２２ｂの基準信号生成部１５８の計数値をマスターＣＰＵモジュール１２２ａの基準信号生成部１５８の計数値に合わせるための信号である。
【００４２】
遅延時間受信部１８４は、ＣＰＵモジュール１２２がスレーブＣＰＵモジュール１２２ｂとして機能する場合に、マスターＣＰＵモジュール１２２ａから伝送遅延時間リクエストフレームを受信し、その伝送遅延時間リクエストフレームに応じて、受信完了フレームをマスターＣＰＵモジュール１２２ａに送信する。また、遅延時間受信部１８４は、マスターＣＰＵモジュール１２２ａから伝送遅延時間通知フレームを受信すると、そのフレームに含まれる伝送遅延時間をＲＡＭ１６４等に退避する。このようにして、スレーブＣＰＵモジュール１２２ｂは、マスターＣＰＵモジュール１２２ａとスレーブＣＰＵモジュール１２２ｂ間の伝送遅延時間を得ることができる。
【００４３】
同期補正部１８６は、ＣＰＵモジュール１２２がスレーブＣＰＵモジュール１２２ｂとして機能する場合に、スレーブＣＰＵモジュール１２２ｂ内の基準信号生成部１５８によって生成された基準信号を伝送遅延時間分進める。具体的に、同期補正部１８６は、マスターＣＰＵモジュール１２２ａから同期化フレームを受信すると、基準信号生成部１５８から計数値を取得し、伝送遅延時間に相当する値（基準信号生成部１５８の時間換算値）と、取得した計数値との差分である補正量を算出し、基準値から補正量を減算して補正基準値を導出し、その補正基準値を新たな基準値として一時的に基準信号生成部１５８に設定する。したがって、補正基準値は、基準値−（伝送遅延時間に相当する値−基準信号生成部１５８の計数値）で表される。
【００４４】
そして、補正基準値を設定し、基準信号生成部１５８において、その補正基準値での計数が完了すると、同期補正部１８６は、速やかに、元の基準値を、基準信号生成部１５８に設定する。こうして、一時的に基準値を伝送遅延時間分だけ進めることができる。ここでは、伝送遅延時間分の補正を一度に実行する例を挙げているが、かかる場合に限らず、複数回に分けて実行してもよい。なお、本実施形態において、同期補正部１８６が、マスターＣＰＵモジュール１２２ａから伝送遅延時間を得ることなく同期化フレームを受信した場合でも、伝送遅延時間をゼロ（０）として上記の補正処理を行えばよい。
【００４５】
こうして、本実施形態では、マスターＣＰＵモジュール１２２ａの基準信号生成部１５８とスレーブＣＰＵモジュール１２２ｂの基準信号生成部１５８とを高精度に同期させることができる。なお、このような同期補正処理は、連続的に行ってもよいし、所定の時間毎に間欠的に行ってもよい。
【００４６】
アプリケーション実行部１８８は、マスターＣＰＵモジュール１２２ａおよびスレーブＣＰＵモジュール１２２ｂのいずれにおいても、基準信号生成部１５８で生成された基準信号に応じて（基準信号を割込信号として受けて）、実行プログラムを実行し、入出力モジュール１２６を通じて被制御機器１３０を制御する。したがって、当該実行プログラムは、基準信号に応じて周期的に実行されることとなる。
【００４７】
データ更新部１９０は、マスターＣＰＵモジュール１２２ａおよびスレーブＣＰＵモジュール１２２ｂのいずれにおいても、データ（例えば、ステータス情報、センサの検出結果、制御結果等）が生成されると、生成されたデータで、自己のＣＰＵモジュール１２２内のコモンメモリ１６６の内容を更新する。また、データ更新部１９０は、他のＣＰＵモジュール１２２にそのデータを転送する。また、データ更新部１９０は、他のＣＰＵモジュール１２２からデータが転送されると、かかるデータに基づいて自己のＣＰＵモジュール１２２内のコモンメモリ１６６の内容を更新する。こうして、他のＣＰＵモジュール１２２とデータを共有化できる。また、データ更新部１９０がデータを他のＣＰＵモジュール１２２に送信する送信タイミングは、基準信号生成部１５８に基づいてＣＰＵモジュール１２２毎に予め定められている。かかる送信タイミングについては、後程詳述する。
【００４８】
データ送信部１９２は、マスターＣＰＵモジュール１２２ａおよびスレーブＣＰＵモジュール１２２ｂのいずれにおいても、アプリケーション実行部１８８が実行プログラムを遂行することで生成されたデータのうち、管理装置１１０に収集要求されているデータを、管理装置１１０に送信する。かかる送信タイミングは、データ更新部１９０の送信タイミングに倣う。本実施形態では、ＣＰＵモジュール１２２同士が同期しているので、管理装置１１０に、生成タイミングの等しいデータが収集される。
【００４９】
以下、制御システム１００の具体的な制御方法について、同期補正処理とデータの共有化処理とに分けて説明する。
【００５０】
（同期補正処理）
図５は、同期補正処理例を説明するためのタイムチャート図である。ここでは、仮に、スレーブＣＰＵモジュール１２２ｂの基準信号が、マスターＣＰＵモジュール１２２ａの基準信号より１０μｓｅｃ遅れているとする。なお、基準値（処理周期）は、１０００μｓｅｃとするが、これに限定されるものではなく、例えば管理装置１１０により適宜設定を変更することができる。また、図中、簡略のためμｓｅｃをμｓと表現する。
【００５１】
図５では、マスターＣＰＵモジュール１２２ａの基準信号生成部１５８が計数を行っている。その計数値が図５の（１）時点で基準値に達すると、マスターＣＰＵモジュール１２２ａ内において基準信号を出力する。そして、アプリケーション実行部１８８は、当該基準信号に応じて実行プログラムを遂行する。図５中、ハッチングで示した三角形の領域は、計数値の推移を示し、時間の経過に従い計数値が増加し、計数目標（例えば基準値）に達するとリセットされる。
【００５２】
また、マスターＣＰＵモジュール１２２ａと並行して、スレーブＣＰＵモジュール１２２ｂの基準信号生成部１５８も計数を行っている。その計数値が図５の（２）時点で基準値に達すると基準信号を出力する。そして、アプリケーション実行部１８８は、当該基準信号に応じて実行プログラムを遂行する。このように、マスターＣＰＵモジュール１２２ａおよびスレーブＣＰＵモジュール１２２ｂでは、それぞれ、独立した基準信号に応じて所定の処理が遂行されている。
【００５３】
また、マスターＣＰＵモジュール１２２ａにおいて同期補正処理が開始されると、マスターＣＰＵモジュール１２２ａの遅延時間計測部１８０は、伝送遅延時間を算出するために伝送遅延時間リクエストフレームを送信する（図５の（３））。スレーブＣＰＵモジュール１２２ｂの遅延時間受信部１８４は、マスターＣＰＵモジュール１２２ａから伝送遅延時間リクエストフレームを受信すると、その伝送遅延時間リクエストフレームに応じて受信完了フレームをマスターＣＰＵモジュール１２２ａに送信する（図５の（４））。
【００５４】
続いて、マスターＣＰＵモジュール１２２ａの遅延時間計測部１８０は、受信完了フレームを受信すると、マスターＣＰＵモジュール１２２ａとスレーブＣＰＵモジュール１２２ｂ間の往復伝送遅延時間を計算する。そして、遅延時間計測部１８０は、計算した往復伝送遅延時間（４００μｓｅｃ）を２で除算した伝送遅延時間（２００μｓｅｃ）を含む伝送遅延時間通知フレームをスレーブＣＰＵモジュール１２２ｂに送信する（図５の（５））。スレーブＣＰＵモジュール１２２ｂの遅延時間受信部１８４は、伝送遅延時間通知フレームを受信すると、そのフレームに含まれる往復伝送遅延時間（相当値）をＲＡＭ１６４等に退避する（図５の（６））。
【００５５】
同期補正処理が開始後、マスターＣＰＵモジュール１２２ａの同期化フレーム送信部１８２は、同期化フレームを割り込み信号としてスレーブＣＰＵモジュール１２２ｂに送信する（図５の（７））。そして、スレーブＣＰＵモジュール１２２ｂは、ネットワーク配線１４０の片道の伝送遅延時間（２００μｓ）を経て図５の（８）の時点で同期化フレームを受信すると、同期補正部１８６は、基準信号生成部１５８から計数値（１９０μｓｅｃに相当）を取得する（図５の（９））。そして、同期補正部１８６は、伝送遅延時間（２００μｓｅｃ）と、基準値（１０００μｓｅｃ）を用いて、基準値−（伝送遅延時間に相当する値−基準信号生成部１５８の計数値）＝１０００−（２００−１９０）から補正基準値９９０μｓｅｃを得る。そして、同期補正部１８６は、その補正基準値を新たな基準値として一時的に基準信号生成部１５８に設定する（図５の（１０））。
【００５６】
その後、基準信号生成部１５８は、図５の（１１）の時点で計数値が一時的な補正基準値９９０μｓに達したため、リスタートしている。こうして、スレーブＣＰＵモジュール１２２ｂの基準信号が、マスターＣＰＵモジュール１２２ａの基準信号と同期する。
【００５７】
図６は、同期補正処理の概略的なシーケンス例を示す図である。図６の例では、説明の便宜上、マスターＣＰＵモジュール１２２ａとスレーブＣＰＵモジュール１２２ｂとを用いた同期について説明するが、本実施形態においてはこれに限定されるものではなく、１つのマスターＣＰＵモジュール１２２ａに対して複数のスレーブＣＰＵモジュール１２２ｂを同期させることができる。
【００５８】
図６の同期補正処理において、まず、マスターＣＰＵモジュール１２２ａの基準信号生成部１５８は基準信号を生成し（Ｓ１１）、スレーブＣＰＵモジュール１２２ｂの基準信号生成部１５８は、マスターＣＰＵモジュール１２２ａと独立して基準信号を生成する（Ｓ１２）。また、この処理は、周期的に行われる。
【００５９】
マスターＣＰＵモジュール１２２ａの同期補正処理が開始されると、マスターＣＰＵモジュール１２２ａの遅延時間計測部１８０は、伝送遅延時間を算出するために伝送遅延時間リクエストフレームをスレーブＣＰＵモジュール１２２ｂに送信する（Ｓ１３）。スレーブＣＰＵモジュール１２２ｂの遅延時間受信部１８４は、伝送遅延時間リクエストフレームを受信すると、マスターＣＰＵモジュール１２２ａに受信完了フレームを送信する（Ｓ１４）。
【００６０】
マスターＣＰＵモジュール１２２ａの遅延時間計測部１８０は、受信完了フレームを受信すると、例えば伝送遅延時間を算出し（Ｓ１５）、算出した伝送遅延時間等を含む伝送遅延時間通知フレームを生成する（Ｓ１６）。そして、遅延時間計測部１８０は、生成した伝送遅延時間通知フレームを、ネットワーク配線１４０を介してスレーブＣＰＵモジュール１２２ｂに送信する（Ｓ１７）。スレーブＣＰＵモジュール１２２ｂの遅延時間受信部１８４は、伝送遅延時間通知フレームを受信すると、その伝送遅延時間通知フレームに含まれる伝送遅延時間（換算値）をＲＡＭ１６４等に退避する（Ｓ１８）。
【００６１】
そして、マスターＣＰＵモジュール１２２ａの同期化フレーム送信部１８２は、基準信号に同期させて、同期化フレームを割り込み信号としてスレーブＣＰＵモジュール１２２ｂに送信する（Ｓ１９）。
【００６２】
スレーブＣＰＵモジュール１２２ｂが同期化フレームを受信すると、同期補正部１８６は、基準信号生成部１５８から計数値を取得する（Ｓ２０）。そして、同期補正部１８６は、伝送遅延時間と基準値を用いて、基準値−（伝送遅延時間に相当する値−基準信号生成部１５８の計数値）を計算し補正基準値を得る（Ｓ２１）。そして、その補正基準値を新たな基準値として一時的に基準信号生成部１５８に設定する（Ｓ２２）。また、補正基準値を設定し、その補正基準値での計数が完了すると、同期補正部１８６は、速やかに、元の基準値を基準信号生成部１５８に設定する（Ｓ２３）。
【００６３】
このような同期補正処理を、制御システム１００に含まれる全てのスレーブＣＰＵモジュール１２２ｂに対して実行する。こうして、スレーブＣＰＵモジュール１２２ｂの基準信号は、マスターＣＰＵモジュール１２２ａの基準信号に同期する。すなわち、各ＣＰＵモジュール１２２上で動作する実行プログラム（アプリケーション）を同期させることができる。
【００６４】
（データの共有化処理）
上述した構成により、制御システム１００に含まれる全てのＣＰＵモジュール１２２が同期することとなる。また、上述したように、ＣＰＵモジュール１２２同士は帯域の広いギガ（Ｇ）ベース等のＥｔｈｅｒｎｅｔ（登録商標）で接続されているため、情報の交換に時間を要さない。ここでは、このようにＣＰＵモジュール１２２が同期されていることを前提に、広帯域のネットワークを介して、複数のＣＰＵモジュール１２２間でデータの共有化を図る。
【００６５】
図７は、ＣＰＵモジュール１２２におけるデータの送受信を説明するためのタイムチャート図である。図７においては、複数のＣＰＵモジュール１２２として３つのＣＰＵモジュール（図７中、ＣＰＵモジュールＡ、ＣＰＵモジュールＢ、ＣＰＵモジュールＣ）を挙げる。ここでは、既に同期補正処理が完了し、３つのＣＰＵモジュールＡ、Ｂ、Ｃは同期している。ただし、ＣＰＵモジュールの数が３つに限られないのは言うまでもない。
【００６６】
例えば、ＣＰＵモジュールＡに着目すると、アプリケーション実行部１８８は、基準信号に同期して周期的に動作する。具体的に、基準信号生成部１５８が基準信号を生成したタイミング、すなわち、基準信号生成部１５８の計数値が０にリセットされたタイミングで、実行プログラムを遂行開始し、被制御機器１３０のデータ（センサの検出結果、制御結果等）をラッチ（保持）させる。ただし、ここでは、計数値が０のときに実行プログラムを開始しているが、実行プログラムに先立つ管理機能処理のオーバーヘッドを考慮し、所定の時間後に処理を起動させてもよい。
【００６７】
そして、アプリケーション実行部１８８は、ラッチしたデータを、入出力モジュール１２６を介して入力し、実行プログラムに基づいて所定の演算を行う。そして、その演算した制御結果を加えたデータ（ステータス情報、センサの検出結果、制御結果等）で、ＣＰＵモジュールＡ内のコモンメモリ１６６を更新する。所定の演算が終了すると、次の基準信号まで、プログラマブルコントローラ１２０の異常監視やシステム制御処理等が実行される。
【００６８】
また、データ更新部１９０は、次の基準信号が生じると、基準信号生成部１５８の計数値を参照して、当該ＣＰＵモジュールＡに対して予め割り当てられた送信タイミングを計る（ここでは０）。そして、送信タイミングが到来すると、データ更新部１９０は、コモンメモリ１６６に記憶されたデータを、他のＣＰＵモジュールＢ、Ｃに送信し、ＣＰＵモジュールＢ、Ｃにおけるコモンメモリ１６６を更新させる。
【００６９】
ＣＰＵモジュールＡ、Ｂ、Ｃでは、それぞれ異なる送信タイミングが割り当てられる。ここでは、データを送信完了するのに十分な時間を空けて、ＣＰＵモジュールＡからＣＰＵモジュールＢ、Ｃに、ＣＰＵモジュールＢからＣＰＵモジュールＡ、Ｃに、ＣＰＵモジュールＣからＣＰＵモジュールＡ、Ｂにといった順でデータが送信される。そして、１のＣＰＵモジュールからデータが送信されると、他のＣＰＵモジュールはそのデータを受信するとともに、それぞれのコモンメモリ１６６にそのデータを反映する。
【００７０】
ここでは、各ＣＰＵモジュールＡ、Ｂ、Ｃでデータが生成される毎に、データ更新部１９０が他のＣＰＵモジュールに反映させる例を挙げているが、制御システム１００内でコモンメモリ１６６を同期させ、自己のコモンメモリ１６６のデータを更新しさえすれば、自動的に他のＣＰＵモジュールのデータも更新される構成を採用してもよい。
【００７１】
本実施形態では、データ更新部１９０が、各ＣＰＵモジュールＡ、Ｂ、Ｃにおける基準信号生成部１５８の計数値を参照して、各ＣＰＵモジュールＡ、Ｂ、Ｃに割り当てられた送信タイミングにデータを送信しているが、基準信号生成部１５８に限らず、基準信号に応じて計数を開始する別途のカウンタを用いることもできる。
【００７２】
ところで、本実施形態におけるコモンメモリ１６６を用いたコモンメモリ方式では、各ＣＰＵモジュールＡ、Ｂ、Ｃそれぞれから送信されるデータを全てのＣＰＵモジュールＡ、Ｂ、Ｃで受信し、他のＣＰＵモジュールから受信したデータを自己のＣＰＵモジュールに展開する。こうして、各ＣＰＵモジュールＡ、Ｂ、Ｃ内において、同一のメモリマップを用いて実行プログラムを実行することが可能となる。
【００７３】
したがって、このようなコモンメモリ方式を採用し、さらに、他のＣＰＵモジュールのデータも、デバイスレベルのネットワークで同期された状態で共有化することで、被制御機器１３０をいずれのＣＰＵモジュールにも容易に移植することができる。
【００７４】
例えば、被制御機器１３０の配置変更によって、自己が属するＣＰＵモジュールが変更されたとしても、変更後のＣＰＵモジュールにおいてコモンメモリ１６６の同一のメモリアドレスにデータを反映することで、変更前と同等の環境を形成することができる。以下、データ更新部１９０のコモンメモリ１６６へのアクセスについて詳述する。
【００７５】
図８は、被制御機器１３０の配置変更について説明するための説明図である。図８においては、複数のＣＰＵモジュール１２２として３つのＣＰＵモジュール（図８中、ＣＰＵモジュールＡ、ＣＰＵモジュールＢ、ＣＰＵモジュールＣ）を挙げている。
【００７６】
例えば、ＣＰＵモジュールＢに着目すると、図８（ａ）に示すように、ＣＰＵモジュールＢには、センサに相当する被制御機器Ｄ、Ｅと、電動機に相当する被制御機器Ｆとが接続されている。ここで、電動機に相当する被制御機器Ｆには、センサに相当する被制御機器Ｄ、Ｅの検出結果ＩＮｄ、ＩＮｅに基づいて制御指令ＯＵＴｆが送られるとする。
【００７７】
図８（ａ）の例では、被制御機器Ｄ、Ｅ、Ｆが同一の制御ユニットに含まれ、全て、同一のＣＰＵモジュールＢに属しているので、その制御ユニット内で制御指令ＯＵＴｆを生成すれば足りる。すなわち、ＣＰＵモジュールＢ内において、アプリケーション実行部１８８が、入出力モジュール１２６を介して被制御機器Ｄ、Ｅからセンサの検出結果ＩＮｄ、ＩＮｅを取得し、その検出結果から制御指令ＯＵＴｆを生成し、生成された制御指令ＯＵＴｆを被制御機器Ｆに出力すればよい。
【００７８】
ここで、被制御機器Ｄ、Ｅの配置変更が生じ、図８（ｂ）のように、被制御機器Ｆはそのままで、被制御機器ＤがＣＰＵモジュールＡに属し、被制御機器ＥがＣＰＵモジュールＣに属すようになったとする。本実施形態では、こうした場合であっても、コモンメモリ１６６によってデータを共有化することで、ＣＰＵモジュールＢは、被制御機器Ｄ、Ｅのデータをこれまで通りのタイミングで容易に参照することができる。
【００７９】
図９は、コモンメモリ１６６内のメモリマップを示した説明図である。ここでは、ＣＰＵモジュールＡ、Ｂ、Ｃにそれぞれコモンメモリ１６６ａ、１６６ｂ、１６６ｃが配されている。図８（ｂ）に示したように、被制御機器ＤがＣＰＵモジュールＡに属し、被制御機器ＦがＣＰＵモジュールＢに属し、被制御機器ＥがＣＰＵモジュールＣに属す場合を想定する。
【００８０】
本実施形態では、コモンメモリ１６６を用いているので、図９に示すように、ＣＰＵモジュールＡにおいて被制御機器Ｄから取得したセンサの検出結果ＩＮｄが、自己のＣＰＵモジュールＡのコモンメモリ１６６ａに記憶されるとともに、他のＣＰＵモジュールＢ、Ｃのコモンメモリ１６６ｂ、１６６ｃにも記憶される。ここでは、自己のデータを実線で、複製されたデータを破線で示している。また、同期した状態で、ＣＰＵモジュールＣにおいて被制御機器Ｅから取得したセンサの検出結果ＩＮｅが、自己のＣＰＵモジュールＣのコモンメモリ１６６ｃに記憶されるとともに、他のＣＰＵモジュールＡ、Ｂのコモンメモリ１６６ａ、１６６ｂにも記憶される。
【００８１】
ＣＰＵモジュールＢのアプリケーション実行部１８８は、ＣＰＵモジュールＢのコモンメモリ１６６ｂから被制御機器Ｄ、Ｅのセンサ検出結果ＩＮｄ、ＩＮｅを読み出し、所定の演算を行って、被制御機器Ｆの制御指令ＯＵＴｆを生成する。そして、アプリケーション実行部１８８は、入出力モジュール１２６を介して、自己のＣＰＵモジュールＢに属す被制御機器Ｆに制御指令ＯＵＴｆを出力する。
【００８２】
ここでは、図８（ａ）から図８（ｂ）のように被制御機器Ｄ、Ｅの配置が変更された場合であっても、ＣＰＵモジュールＢにおけるセンサ検出結果ＩＮｄ、ＩＮｅの読み出し先をコモンメモリ１６６ｂに変更するだけで、構築したアプリケーションの不要な改修を回避することが可能となる。
【００８３】
図１０は、コモンメモリ１６６の応用例を示した説明図である。ここでは、図９同様、ＣＰＵモジュールＡ、Ｂ、Ｃにそれぞれコモンメモリ１６６ａ、１６６ｂ、１６６ｃが配されている。そして、被制御機器ＤがＣＰＵモジュールＡに属し、被制御機器ＦはＣＰＵモジュールＢに属し、被制御機器ＥがＣＰＵモジュールＣに属している。
【００８４】
図１０に示すコモンメモリ１６６では、ＣＰＵモジュールＡにおいて被制御機器Ｄから取得したセンサの検出結果ＩＮｄ、および、ＣＰＵモジュールＣにおいて被制御機器Ｅから取得したセンサの検出結果ＩＮｅに加え、ＣＰＵモジュールＢにおいて被制御機器Ｆに出力する制御指令ＯＵＴｆも記憶されている。したがって、ＣＰＵモジュールＢのアプリケーション実行部１８８は、ＣＰＵモジュールＢのコモンメモリ１６６ｂから制御指令ＯＵＴｆを読み出し、そのまま、入出力モジュール１２６を介して、自己のＣＰＵモジュールＢに属す被制御機器Ｆに制御指令ＯＵＴｆを出力すればよい。
【００８５】
また、かかる応用例では、ＣＰＵモジュールＢのコモンメモリ１６６ｂから被制御機器Ｄ、Ｅのセンサ検出結果ＩＮｄ、ＩＮｅを読み出し、所定の演算を行って、被制御機器Ｆの制御指令ＯＵＴｆを生成する処理を、どの装置で行ってもよい。すなわち、ＣＰＵモジュールＡ、Ｂ、Ｃ、さらに他のＣＰＵモジュール、または、管理装置１１０のいずれかで実行しさえすればよいので、処理負荷を分散することが可能となる。図１０では、ＣＰＵモジュールＡが実行する例を挙げている。
【００８６】
このようにして実装されたアプリケーションは、その入出力としてコモンメモリ１６６の変数のみを取り扱うので、入出力モジュール１２６の実装位置がどのプログラマブルコントローラ１２０の配下となったとしてもアプリケーションそのものは修正する必要がない。
【００８７】
また、データ送信部１９２は、アプリケーション実行部１８８が実行プログラムを遂行することで生成されたデータのうち、管理装置１１０に収集要求されているデータを、図７に示したデータの送信タイミングで管理装置１１０に送信する。本実施形態では、ＣＰＵモジュール１２２同士が同期しているので、管理装置１１０に、生成タイミングの等しいデータが収集される。
【００８８】
したがって、情報が生成されるタイミングがプログラマブルコントローラ１２０毎に異なることがないので、情報の前後関係が明確となり、厳密な制御が可能となる。
【００８９】
以上、説明したプログラマブルコントローラ１２０によると、ＣＰＵモジュール１２２同士が同期され、広帯域のネットワークを介して、複数のＣＰＵモジュール１２２間でデータの共有化が図られる。したがって、制御ユニット間でアプリケーションや被制御機器１３０の情報を同期でき、被制御機器１３０等の移植性を高め、制御システム１００全体の制御精度や安定性の向上を図ることが可能となる。
【００９０】
当該制御システム１００を採用することで、例えば、圧延システム等の鉄鋼プラントや紙パルプ製造プラント等、複数の電動機を同時に高速制御するようなシステムでは、より高い精度で電動機を同期することができ、ひいては製品品質や歩留まりが向上する。
【００９１】
また、当該アプリケーションを設計する上でも、プログラマブルコントローラ１２０の位置や、被制御機器１３０の配置を考慮する必要がなくなるので、移植性および汎用性の高い実行プログラムを作成することが可能となる。
【００９２】
また、コンピュータを、制御システム１００、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラとして機能させるプログラムや当該プログラムを記録した、コンピュータで読み取り可能なフレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ、ＤＶＤ、ＢＤ等の記憶媒体も提供される。ここで、プログラムは、任意の言語や記述方法にて記述されたデータ処理手段をいう。
【００９３】
以上、添付図面を参照しながら本発明の好適な実施形態について説明したが、本発明はかかる実施形態に限定されないことは言うまでもない。当業者であれば、特許請求の範囲に記載された範疇において、各種の変更例または修正例に想到し得ることは明らかであり、それらについても当然に本発明の技術的範囲に属するものと了解される。
【００９４】
なお、本明細書の制御方法の各工程は、必ずしもフローチャートとして記載された順序に沿って時系列に処理する必要はなく、並列的あるいはサブルーチンによる処理を含んでもよい。
【産業上の利用可能性】
【００９５】
本発明は、それぞれ被制御機器を制御する複数のプログラマブルコントローラが互いに通信可能に接続された制御システム、マスタープログラマブルコントローラ、スレーブプログラマブルコントローラ、および、制御方法に利用することができる。
【符号の説明】
【００９６】
１００  …制御システム
１１０  …管理装置
１２０  …プログラマブルコントローラ
１２２  …ＣＰＵモジュール
１２２ａ  …マスターＣＰＵモジュール
１２２ｂ  …スレーブＣＰＵモジュール
１３０  …被制御機器
１５４  …通信部
１５８  …基準信号生成部
１６０  …ＣＰＵ
１６６  …コモンメモリ
１８０  …遅延時間計測部
１８２  …同期化フレーム送信部
１８４  …遅延時間受信部
１８６  …同期補正部
１８８  …アプリケーション実行部
１９０  …データ更新部
１９２  …データ送信部
【図１】
0005935903.tif 000002
【図２】
0005935903.tif 000003
【図３】
0005935903.tif 000004
【図４】
0005935903.tif 000005
【図５】
0005935903.tif 000006
【図６】
0005935903.tif 000007
【図７】
0005935903.tif 000008
【図８】
0005935903.tif 000009
【図９】
0005935903.tif 000010
【図１０】
0005935903.tif 000011