(57)【要約】【課題】既設のマスタ装置の性能を超える処理の負荷があった場合でも、負荷を分散させるために、ネットワークの分割や新たな設計作業が不要な仕組みを提供する。【解決手段】ネットワークシステムは、周期毎に、第１のスレーブ装置からデータを受信する処理と、受信したデータを対象とする第１の処理のうちの一部を事前の割り当てに従い実行する処理と、第１の処理の残りに対応するデータを事前の割り当てに従い外部に送信するとともに第１の処理の残りに対応する結果を受信する処理と、第１のスレーブ装置に対して第１の処理に対応する結果を送信する処理と、を実行する第１のマスタ装置と、第１のマスタ装置から受信したデータに対する第１の処理の残りに対応する結果を、周期内の第１の処理に割り当てられた期間が終了する前に、第１のマスタ装置に送信する第２のマスタ装置と、第１のスレーブ装置と第１のマスタ装置の間でデータを伝送する第１のネットワークと、第１のマスタ装置と第２のマスタ装置の間でデータを伝送する第２のネットワークとを有する。【選択図】図５
2019161523.tif 000002
【特許請求の範囲】
【請求項１】
周期毎に、第１のスレーブ装置からデータを受信する処理と、受信したデータを対象とする第１の処理のうちの一部を事前の割り当てに従い実行する処理と、当該第１の処理の残りに対応するデータを事前の割り当てに従い外部に送信するとともに当該第１の処理の残りに対応する結果を受信する処理と、当該第１のスレーブ装置に対して当該第１の処理に対応する結果を送信する処理と、を実行する第１のマスタ装置と、
前記第１のマスタ装置から受信したデータに対する前記第１の処理の残りに対応する前記結果を、前記周期内の前記第１の処理に割り当てられた期間が終了する前に、当該第１のマスタ装置に送信する第２のマスタ装置と、
前記第１のスレーブ装置と前記第１のマスタ装置の間でデータを伝送する第１のネットワークと、
前記第１のマスタ装置と前記第２のマスタ装置の間でデータを伝送する第２のネットワークと
を有するネットワークシステム。
【請求項２】
前記第２のマスタ装置は、第２のスレーブ装置からデータを受信して第２の処理を実行する処理と、当該第２のスレーブ装置に対してデータを送信する処理とが実行されない空き時間を利用して、前記第１のマスタ装置からのデータの受信と、前記第１の処理の残りに対応する処理と、当該第１の処理の残りに対応する前記結果の当該第１のマスタ装置への送信とを実行する、請求項１に記載のネットワークシステム。
【請求項３】
前記周期は、基準とする周期に対して定数倍の長さを有する、請求項１又は２に記載のネットワークシステム。
【請求項４】
前記第２のマスタ装置が前記第１の処理の残りとして実行する処理には、周期の長さが異なる複数の処理が含まれる、請求項１又は２に記載のネットワークシステム。
【請求項５】
前記第２のマスタ装置を複数用いる場合、同じ周期の長さを有する複数の処理のそれぞれが、異なる第２のマスタ装置に割り当てられる、請求項１又は２に記載のネットワークシステム。
【請求項６】
前記第２のマスタ装置を複数用いる場合、当該複数の第２のマスタ装置はそれぞれ、周期の長さが異なる処理を実行する、請求項１又は２に記載のネットワークシステム。
【請求項７】
前記第２のマスタ装置を複数用いる場合、当該複数の第２のマスタ装置はそれぞれ、異なるタスクに対応する処理を実行する、請求項１又は２に記載のネットワークシステム。
【請求項８】
前記第２のマスタ装置は、前記第２の処理の実行と、前記第１の処理の残りに対応する処理の実行とを、前記周期内に実行する、請求項２に記載のネットワークシステム。
【請求項９】
前記第１のマスタ装置は、前記第１の処理の残りに対応する結果を前記第２のマスタ装置から受信するまで、前記第１の処理のうち当該結果を利用する処理を中断する、請求項１又は２に記載のネットワークシステム。
【請求項１０】
前記第１の処理が対応する周期内に収まるように、前記第１のマスタ装置と前記第２のマスタ装置の動作スケジュールを設定する管理装置を更に有する
請求項１に記載のネットワークシステム。
【請求項１１】
前記第１の処理が対応する周期内に収まり、かつ、前記第２の処理についても対応する周期内に収まるように、前記第１のマスタ装置と前記第２のマスタ装置の動作スケジュールを設定する管理装置を更に有する
請求項２に記載のネットワークシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ネットワークシステムに関する。
【背景技術】
【０００２】
特許文献１には、１つのアプリケーションプログラムを複数の分割プログラムに分割して複数のコントローラに分散するコントローラシステムを効率よく、かつ、少ない負担で構築するための技術が記載されている。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００１−３２５０１１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
ネットワークシステムの運用中には、システムの変更や増設が必要になることがある。例えば既設のネットワークシステムを増設する場合、その管理に使用されるプログラマブルロジックコントローラ（以下「ＰＬＣ」という）のハードウェア上の能力が不足することがある。このような場合、一般には、性能がより高いＰＬＣへの変更やネットワークシステムの分割が行われる。
ただし、その場合には、新たな設備投資が必要となり、分割後の各ネットワークシステムの通信の周期とこれらネットワークシステムを制御する複数のＰＬＣの制御の周期を相互に同期させるための設計作業が必要になる。
【０００５】
本発明は、既設のマスタ装置の性能を超える処理の負荷があった場合でも、負荷を分散させるために、ネットワークの分割や新たな設計作業が不要な仕組みを提供する。
【課題を解決するための手段】
【０００６】
請求項１に記載の発明は、周期毎に、第１のスレーブ装置からデータを受信する処理と、受信したデータを対象とする第１の処理のうちの一部を事前の割り当てに従い実行する処理と、当該第１の処理の残りに対応するデータを事前の割り当てに従い外部に送信するとともに当該第１の処理の残りに対応する結果を受信する処理と、当該第１のスレーブ装置に対して当該第１の処理に対応する結果を送信する処理と、を実行する第１のマスタ装置と、前記第１のマスタ装置から受信したデータに対する前記第１の処理の残りに対応する前記結果を、前記周期内の前記第１の処理に割り当てられた期間が終了する前に、当該第１のマスタ装置に送信する第２のマスタ装置と、前記第１のスレーブ装置と前記第１のマスタ装置の間でデータを伝送する第１のネットワークと、前記第１のマスタ装置と前記第２のマスタ装置の間でデータを伝送する第２のネットワークとを有するネットワークシステムである。
請求項２に記載の発明は、前記第２のマスタ装置は、第２のスレーブ装置からデータを受信して第２の処理を実行する処理と、当該第２のスレーブ装置に対してデータを送信する処理とが実行されない空き時間を利用して、前記第１のマスタ装置からのデータの受信と、前記第１の処理の残りに対応する処理と、当該第１の処理の残りに対応する前記結果の当該第１のマスタ装置への送信とを実行する、請求項１に記載のネットワークシステムである。
請求項３に記載の発明は、前記周期は、基準とする周期に対して定数倍の長さを有する、請求項１又は２に記載のネットワークシステムである。
請求項４に記載の発明は、前記第２のマスタ装置が前記第１の処理の残りとして実行する処理には、周期の長さが異なる複数の処理が含まれる、請求項１又は２に記載のネットワークシステムである。
請求項５に記載の発明は、前記第２のマスタ装置を複数用いる場合、同じ周期の長さを有する複数の処理のそれぞれが、異なる第２のマスタ装置に割り当てられる、請求項１又は２に記載のネットワークシステムである。
請求項６に記載の発明は、前記第２のマスタ装置を複数用いる場合、当該複数の第２のマスタ装置はそれぞれ、周期の長さが異なる処理を実行する、請求項１又は２に記載のネットワークシステムである。
請求項７に記載の発明は、前記第２のマスタ装置を複数用いる場合、当該複数の第２のマスタ装置はそれぞれ、異なるタスクに対応する処理を実行する、請求項１又は２に記載のネットワークシステムである。
請求項８に記載の発明は、前記第２のマスタ装置は、前記第２の処理の実行と、前記第１の処理の残りに対応する処理の実行とを、前記周期内に実行する、請求項２に記載のネットワークシステムである。
請求項９に記載の発明は、前記第１のマスタ装置は、前記第１の処理の残りに対応する結果を前記第２のマスタ装置から受信するまで、前記第１の処理のうち当該結果を利用する処理を中断する、請求項１又は２に記載のネットワークシステムである。
請求項１０に記載の発明は、前記第１の処理が対応する周期内に収まるように、前記第１のマスタ装置と前記第２のマスタ装置の動作スケジュールを設定する管理装置を更に有する請求項１に記載のネットワークシステムである。
請求項１１に記載の発明は、前記第１の処理が対応する周期内に収まり、かつ、前記第２の処理についても対応する周期内に収まるように、前記第１のマスタ装置と前記第２のマスタ装置の動作スケジュールを設定する管理装置を更に有する請求項２に記載のネットワークシステムである。
【発明の効果】
【０００７】
請求項１記載の発明によれば、既設のマスタ装置の性能を超える処理の負荷があった場合でも、負荷を分散させるために、ネットワークの分割や新たな設計作業を不要にできる。
請求項２記載の発明によれば、既設の第２のマスタ装置の処理能力を有効に活用できる。
請求項３記載の発明によれば、基準とする周期の定数倍の長さを有する周期内に処理すべき第１の処理が増加しても対応する周期内に処理を終わらせることができる。
請求項４記載の発明によれば、１台の第２のマスタ装置で複数の周期に対応する複数の処理を分担できる。
請求項５記載の発明によれば、複数台の第２のマスタ装置に１つの周期に対応する複数の処理を分散できる。
請求項６記載の発明によれば、複数台の第２のマスタ装置に複数の周期に対応する複数の処理を分散できる。
請求項７記載の発明によれば、複数台の第２のマスタ装置で異なるタスクの実行を分担できる。
請求項８記載の発明によれば、第２のマスタ装置の既存の処理スケジュールの部分はそのままに第１のマスタ装置における第１の処理の一部を第２のマスタ装置で分担できる。
請求項９記載の発明によれば、処理の一部を第２のマスタ装置に分担させる場合でも１つの周期内で処理動作を収めることができる。
請求項１０記載の発明によれば、ネットワークの分割や新たな設計作業を不要にできる。
請求項１１記載の発明によれば、ネットワークの分割や新たな設計作業を不要にできる。
【図面の簡単な説明】
【０００８】
【図１】増設前のネットワークシステムの構成例を示す図である。
【図２】ＰＬＣのハードウェア構成の例を説明する図である。
【図３】ＰＬＣで実行される制御シーケンスの一例を説明する図である。
【図４】タスクの構成例を説明する図である。
【図５】増設後のネットワークシステムの構成例を説明する図である。
【図６】主ＰＬＣの制御シーケンスと補助ＰＬＣの制御シーケンスの関係の一例を説明する図である。
【図７】既設のＰＬＣを主ＰＬＣとし、既設の他のＰＬＣを補助ＰＬＣとして利用するための事前準備の際に使用するシステム構成の一例を示す図である。
【図８】事前準備の過程で実行される作業動作の一例を説明するフローチャートである。
【図９】主ＰＬＣの処理の一部を補助ＰＬＣで代行させるための設定を決定するために実行する負荷シミュレータの処理動作を説明するフローチャートである。
【図１０】増設後のネットワークシステムを構成する主ＰＬＣの制御シーケンスと補助ＰＬＣの制御シーケンスとの関係の一例を説明する図である。
【図１１】増設後のネットワークシステムの他の構成例を説明する図である。
【図１２】増設後のネットワークシステムを構成する主ＰＬＣの制御シーケンスと補助ＰＬＣの制御シーケンスとの関係の一例を説明する図である。
【図１３】増設後のネットワークシステムを構成する主ＰＬＣの制御シーケンスと２台の補助ＰＬＣの制御シーケンスとの関係の一例を説明する図である。
【発明を実施するための形態】
【０００９】
以下、添付図面を参照して、本発明の実施の形態について詳細に説明する。
【００１０】
＜実施の形態１＞
＜増設前のネットワークシステムの構成例＞
図１は、増設前のネットワークシステム１Ａ（以下「ネットワークシステム１Ａ」という）の構成例を示す図である。
ネットワークシステム１Ａは、ノード間の通信に、リアルタイムでの応答性や高い耐久性が要求されるプロセスオートメーションの分野、ファクトリーオートメーションの分野、モーションコントロールの分野等での使用を想定する。
【００１１】
図１に示すネットワークシステム１Ａは、互いに独立した２つの産業用ネットワークによって構成されている。本実施の形態の場合、独立したとは、２つの産業用ネットワークが分離していることをいう。
産業用ネットワークは、前述したプロセスオートメーション、ファクトリーオートメーション、モーションコントロール等に用いられるネットワークの総称である。
ここでは、２つの産業用ネットワークのうちの一方を第１の産業用ネットワーク１０Ａと呼び、他方を第２の産業用ネットワーク１０Ｂと呼ぶ。
【００１２】
第１の産業用ネットワーク１０Ａは、制御や管理の対象である複数のデバイス１１Ａとそれらを接続する通信ケーブル１１Ｃとで構成される。デバイス１１Ａは、例えばモータ、アクチュエータ、信号やデータを入力又は出力する入出力機器、各種のセンサ、センサ通信ユニット、インバータ、サーボ等である。
第１の産業用ネットワーク１０Ａには、分岐スレーブ１２Ａが２つ設けられており、個々の分岐スレーブ１２Ａには複数のデバイス１１Ａが直列に接続されている。各ラインに対応する複数のデバイス１１Ａは、通信ケーブル１１Ｃを通じて互いに接続されている。第１の産業用ネットワーク１０Ａを複数のラインに分割することで、デバイス１１Ａに故障が生じた場合でも、故障の影響が及ぶ範囲を限定することができる。
【００１３】
第１の産業用ネットワーク１０Ａには、個々のデバイス１１Ａに対するデータの送信と、個々のデバイス１１Ａからのデータの受信と、各デバイス１１Ａから受信したデータの処理とを時間順次に実行するＰＬＣ２０Ａが接続されている。
換言すると、ＰＬＣ２０Ａは、デバイス１１Ａの制御やデバイス１１Ａで発生される情報の収集に用いられる。
ＰＬＣ２０Ａは、デバイス１１Ａに対するマスタ装置として動作する。なお、デバイス１１ＡはＰＬＣ２０Ａに対するスレーブ装置として動作する。
図１に示すように、第１の産業用ネットワーク１０Ａのマスタ装置は１つである。
【００１４】
第２の産業用ネットワーク１０Ｂも、制御や管理の対象である複数のデバイス１１Ｂとそれらを接続する通信ケーブル１１Ｃとで構成される。
ただし、図１における第２の産業用ネットワーク１０Ｂは、単一のライン上に複数のデバイス１１Ｂを直列に接続して構成される。
デバイス１１Ｂも、例えばモータ、アクチュエータ、信号やデータを入力又は出力する入出力機器、各種のセンサ、センサ通信ユニット、インバータ、サーボ等である。ここでのデバイス１１Ｂは、デイジーチェーン接続されている。
【００１５】
第２の産業用ネットワーク１０Ｂには、個々のデバイス１１Ｂに対するデータの送信と、個々のデバイス１１Ｂからのデータの受信と、各デバイス１１Ｂから受信したデータの処理とを時間順次に実行するＰＬＣ２０Ｂが接続されている。ＰＬＣ２０Ｂも、デバイス１１Ｂの制御やデバイス１１Ｂで発生される情報の収集に用いられる。
ＰＬＣ２０Ｂは、デバイス１１Ｂに対するマスタ装置として動作する。なお、デバイス１１ＢはＰＬＣ２０Ｂに対するスレーブ装置として動作する。
図１に示すように、第２の産業用ネットワーク１０Ｂのマスタ装置は１つである。
【００１６】
第１の産業用ネットワーク１０Ａは、第１のネットワークの一例であり、第２の産業用ネットワーク１０Ｂは、第２のネットワークの一例である。
また、ＰＬＣ２０Ａは、第１のマスタ装置の一例であり、ＰＬＣ２０Ｂは、第２のマスタ装置の一例である。
また、デバイス１１Ａは、第１のスレーブ装置の一例であり、デバイス１１Ｂは、第２のスレーブ装置の一例である。
なお、第１の産業用ネットワーク１０Ａと第２の産業用ネットワーク１０Ｂの物理的なネットワーク構成や論理的なネットワーク構成（トポロジー）は任意であり、図１の構成に限らない。
第１の産業用ネットワーク１０Ａと第２の産業用ネットワーク１０Ｂを構成するデバイス１１Ａ及び１１Ｂの種類や個数も任意である。
【００１７】
第１の産業用ネットワーク１０Ａ上での通信と第２の産業用ネットワーク１０Ｂ上での通信には、例えば産業用イーサネットの一例であるＥｔｈｅｒＣＡＴ（登録商標）（Ethernet for Control Automation Technology）を使用する。
ＥｔｈｅｒＣＡＴを用いた接続により、ＰＬＣ２０Ａによる制御の周期と第１の産業用ネットワーク１０Ａ上における通信の周期との同期が確保される。また、ＰＬＣ２０Ｂによる制御の周期と第２の産業用ネットワーク１０Ｂ上における通信の周期との同期が保証される。
【００１８】
マスタ装置として動作するＰＬＣ２０Ａは、１つのフレームを用い、個々のスレーブ（デバイス１１Ａ）に対して生成されたデータを送信する。
一方、スレーブ装置として動作するデバイス１１Ａは、受信したフレームに含まれる自機を宛先とするデータの読み出しと、前フレームの通過後に発生したデータの書き込みを実行する。すなわち、各デバイス１１Ａは、フレームが自機を通過する瞬間にそれぞれのデータを交換する。この動作はオンザフライと呼ばれる。
【００１９】
第１の産業用ネットワーク１０Ａ上では、例えば全二重通信方式でデータが伝送され、２００（＝２×１００）Ｍビット／ｓの帯域幅での通信が可能である。例えば１００個のノードに分散した１０００点のデジタルＩ／Ｏを３０μｓで更新できる。また、第１の産業用ネットワーク１０Ａに接続された複数のデバイス１１Ａの時刻を１μs以内で同期させることができる。
規格上、第１の産業用ネットワーク１０Ａには、最大で６５５３５台のデバイス１１Ａを接続することができる。
第２の産業用ネットワーク１０Ｂを構成するＰＬＣ２０Ｂ及びデバイス１１Ｂについても同様である。
【００２０】
図２は、ＰＬＣ２０Ａ及び２０Ｂのハードウェア構成の例を説明する図である。
以下では、代表して、ＰＬＣ２０Ａについて説明する。
ＰＬＣ２０Ａは、演算プロセッサ（ＣＰＵ：Central Processing Unit）２１、システムプログラムメモリ２２、ユーザプログラムメモリ２３、パラメータメモリ２４、ワークメモリ２５、入出力メモリ（Ｉ／Ｏメモリ）２６、通信インタフェース（通信Ｉ／Ｆ）２７、入出力インタフェース（入出力Ｉ／Ｆ）２８等により構成されている。
【００２１】
演算プロセッサ２１は、システムプログラムやユーザプログラムの実行を通じてＰＬＣ２０Ａの動作の全体を制御する。
システムプログラムメモリ２２は、システムプログラムを記憶するメモリである。
ユーザプログラムメモリ２３は、ユーザが作成したユーザプログラム（ここではＰＬＣ２０Ａの実行プログラム）を記憶するメモリである。
パラメータメモリ２４は、ＰＬＣ２０Ａにおける各種の演算や処理で使用する各種のパラメータを記憶するメモリである。
ワークメモリ２５は、各種の演算や処理で使用するデータを一時的に記憶するメモリである。
入出力メモリ（Ｉ／Ｏメモリ）２６は、プログラムの実行を通じて入出力される情報の代用として参照や書き換えに用いられるメモリである。入出力メモリ２６には、プログラムブロック毎のパラメータも格納される。
【００２２】
通信インタフェース２７は、例えば第１の産業用ネットワーク１０Ａとの接続に使用される通信ポート、他のコントローラ（管理用のコンピュータや他のＰＬＣ）との接続に使用される通信ポートなどで構成される。
本実施の形態の場合、ＰＬＣ２０Ａと第１の産業用ネットワーク１０Ａとの通信には、約２００Ｍの通信帯域を有するＥｔｈｅｒＣＡＴを使用する。
ＰＬＣ２０Ａと管理用のコンピュータとの通信には、例えば産業用のオープンネットワークであるＥｔｈｅｒＮｅｔ／ＩＰ（登録商標）を使用する。管理用のコンピュータとの通信は、非同期でよく、通信速度も高速である必要はない。
入出力インタフェース２８は、入力装置や出力装置との接続に使用される通信ポートで構成される。
【００２３】
図３は、ＰＬＣ２０Ａ及びＰＬＣ２０Ｂで実行される制御シーケンスの一例を説明する図である。
以下では、制御シーケンスの代表例としてＰＬＣ２０Ａの動作を説明する。
ＰＬＣ２０Ａで実行される処理（以下「タスク」という）は、処理の実行に割り当てられる周期（サイクル）の違いにより区別される。本実施の形態では、周期が最短のタスクを基準タスクという。他のタスクは、定周期タスクという。定周期タスクの周期は、基準タスクの周期（基準周期）の定数倍（２倍、３倍…）で与えられる。
【００２４】
従って、基準タスクは、データの入力から出力までの応答時間に求められる要求が最も厳しい（換言すると、最も速い処理が要求される）タスクに割り当てられる。一方、定数倍タスクは、基準タスクに比して応答時間に余裕があるタスクに使用される。勿論、定数倍の値が小さい定周期タスクほど、周期の長さは短くなる。因みに定数が「１」の定周期タスクが基準タスクにあたる。
本実施の形態では、タスク間に優先度が設定されており、優先度が高いほど短い周期が割り当てられる。従って、基準タスクは最も優先度が高いタスクである。図３には、基準タスクの他に、実行優先度が５番目、１６番目、１７番目の定周期タスクと、システムサービスとを表している。
【００２５】
本実施の形態におけるＰＬＣ２０Ａは、これら複数のタスクを並列に実行する。すなわち、ＰＬＣ２０Ａは、マルチタスク処理を実行する。各デバイス１１Ａ（図１参照）の制御や管理には、１つまたは複数のタスクが割り当てられる。
各タスクは、実行条件の成立により開始される。定周期タスクの一部は、他のタスクの開始や完了をトリガとする。図３に示すように、各タスクは、各デバイス１１Ａとの間でデータを送受信する期間（ＩＯ）と、各デバイス１１Ａから受信したデータをユーザプログラムの実行を通じて処理する期間（ＵＰＧ）と、モーション制御の実行期間（ＭＣ）とで構成される。このうち、モーション制御の実行期間（ＭＣ）では、ユーザプログラムに含まれるモーション制御命令からの指示が実行される。なお、ＩＯは、後述するＩ／Ｏリフレッシュ期間の略である。
【００２６】
図４は、タスクの構成例を説明する図である。
図４に示すように、１つのタスクは、先頭側から順番に、Ｉ／Ｏリフレッシュ期間３１と制御処理期間３２の２つで構成される。
Ｉ／Ｏリフレッシュ期間３１は、先頭側から順番に、通信インタフェース２７（図２参照）によるデータの送信に備える出力データ処理３１Ａと、通信インタフェース２７から第１の産業用ネットワーク１０Ａへのデータの送信と第１の産業用ネットワーク１０Ａからのデータの受信とを実行するリフレッシュ実行３１Ｂと、各タスクの実行に関する条件式との一致の判定や通信インタフェース２７から受信したデータの取り込み等を実行する入力データ処理３１Ｃとで構成される。
制御処理期間３２は、先頭側から順番に、１つ目のシステム共通処理３２Ａと、ユーザプログラム（ＵＰＧ）実行３２Ｂと、モーション制御（ＭＣ）３２Ｃと、２つ目のシステム共通処理３２Ｄとで構成される。
システム共通処理では、自己診断（例えば故障の検知など）が実行される。
【００２７】
＜増設後のネットワークシステムの構成＞
図５は、増設後のネットワークシステム１Ｂ（以下「ネットワークシステム１Ｂ」という）の構成例を説明する図である。
図５には、図１と対応する部分に対応する符号を付している。
ネットワークシステム１Ｂがネットワークシステム１Ａ（図１参照）と異なる点は、ネットワークシステム１Ｂでは、第１の産業用ネットワーク１０Ａのライン数がネットワークシステム１Ａ（図１参照）のライン数よりも増えている点である。図５では、増設されたライン部分を太枠の破線で示している。
【００２８】
ＰＬＣ２０Ａには、増設前のデバイス１１Ａ及び分岐スレーブ１２Ａに加え、増設されたデバイス１１Ａや分岐スレーブ１２Ａを制御するための演算能力が必要になる。
また、新たなプログラムの追加やプログラムの更新に伴ってプログラムの格納に必要なデータサイズが増加する場合には、ＰＬＣ２０Ａに、これらのプログラムの記憶に必要なメモリ資源が必要になる。
【００２９】
ここでは、既設のＰＬＣ２０Ａのメモリ資源や演算能力の余力が、増設されたデバイス１１Ａ等の制御に必要なメモリ資源や演算能力を充足しない場合を想定する。
メモリ資源の不足とは、デバイス１１Ａの制御に使用するプログラムを記憶するための容量が不足することをいう。
演算能力の不足とは、対応する周期（サイクル）内にタスク（ＩＯリフレッシュ、共通処理、プログラム実行処理、周辺サービス処理など）が終わらないことをいう。
【００３０】
このため、本実施の形態では、増設後の第１の産業用ネットワーク１０Ａの制御に不足するＰＬＣ２０Ａの性能（演算能力やメモリ資源）を、第２の産業用ネットワーク１０Ｂを制御するために使用される既設のＰＬＣ２０Ｂで補助する仕組みを採用する。
本実施の形態では、第１の産業用ネットワーク１０Ａを制御するＰＬＣ２０Ａを主ＰＬＣと呼び、第２の産業用ネットワーク１０Ｂを制御するＰＬＣ２０Ｂを補助ＰＬＣと呼ぶ。
【００３１】
ただし、既設のＰＬＣ２０Ｂを補助ＰＬＣとして使用するには、満たすべき条件がある。
条件の１つ目は、ＰＬＣ２０Ｂの演算能力に余力があることである。ＰＬＣ２０Ｂは、第２の産業用ネットワーク１０Ｂを制御する必要があり、この制御に支障が及ぶようでは、補助ＰＬＣとして動作させることはできない。
条件の２つ目は、演算能力の余力が、代行する処理（ＰＬＣ２０Ａの演算能力を超える部分）に要求される演算能力よりも大きいことである。なお、ＰＬＣ２０Ｂだけでは演算能力が不足する場合には、更なる補助ＰＬＣの設定を検討する。
【００３２】
本実施の形態の場合、主ＰＬＣとしてのＰＬＣ２０Ａと補助ＰＬＣとしてのＰＬＣ２０Ｂとは、高速／同期ネットワーク３０を通じて接続される。
ここでの高速／同期ネットワーク３０には、例えばＩＥＥＥ８０２．１のＴＳＮ（Time Sensitive Networking）タスクグループによって規格化が進められているＴＳＮ規格を使用する。ＴＳＮ規格は、例えば１Ｇビット／秒以上の帯域幅での通信と、数十ナノ秒以内でのノード間（すなわち、ＰＬＣ間）の同期とを実現できる。
すなわち、高速／同期ネットワーク３０は、主ＰＬＣ（ＰＬＣ２０Ａ）における制御の周期と補助ＰＬＣ（ＰＬＣ２０Ｂ）の制御の周期と通信の周期とを互いに同期させる。
【００３３】
本実施の形態では、ＰＬＣ２０Ａの演算能力を超える一部分の処理として、例えばラダー等のシーケンス制御、モーション軸制御、安全制御、ロボット制御を想定する。
もっとも、一部分の処理は、プログラムの全体である必要はない。例えば一部分の処理は、分割可能な演算処理の単位であれば、画像解析アルゴリズムの演算処理の一部でもよい。
【００３４】
図６は、主ＰＬＣの制御シーケンスと補助ＰＬＣの制御シーケンスの関係の一例を説明する図である。
主ＰＬＣの制御シーケンスでは、補助ＰＬＣが代行する処理で必要になるデータを補助ＰＬＣに送信する期間（入力データ送信５０）と、補助ＰＬＣが代行した処理の結果を補助ＰＬＣから受信する期間（処理結果受信５１）とが、同じタスク内に配置される。
換言すると、主ＰＬＣは、ある周期（第Ｎ周期）に受信したデータに対する処理の結果（補助ＰＬＣでの処理の結果を含む）を次の周期（第Ｎ＋１周期）の送信に反映することができる。
【００３５】
ここで、補助ＰＬＣへのデータの送信（入力データ送信５０）を実行するタイミングは、補助ＰＬＣが代行する処理で必要とされるデータの受信後に行われればよい。従って、入力データ送信５０を配置する場所は、ＩＯリフレッシュ期間（ＩＯ処理）３１の後に限らない。例えばＩＯリフレッシュ期間（ＩＯ処理）３１と重複するように、入力データ送信５０を配置することも可能である。また例えば制御処理期間３２と重複するように、入力データ送信５０を配置することも可能である。
ただし、主ＰＬＣにおけるＩＯリフレッシュ期間（ＩＯ処理）３１や補助ＰＬＣにおけるＩＯリフレッシュ期間（不図示）の処理に影響しないことが前提となる。影響が及ぶと、デバイス１１Ａ及び１１Ｂとのデータの送受信が正しく行われなくなる。
【００３６】
図６の場合、処理結果受信５１の後に、ユーザプログラム（ＵＰＧ）実行３２Ｂ（図４参照）とモーション制御（ＭＣ）実行３２Ｃ（図４参照）の一部に対応する期間５２が配置されている。この期間５２は、補助ＰＬＣが代行した処理の結果を利用するユーザプログラム（ＵＰＧ）やモーション制御（ＭＣ）がある場合に配置される。換言すると、補助ＰＬＣが代行する処理の結果を必要とするユーザプログラム（ＵＰＧ）やモーション制御（ＭＣ）は、対応する処理の結果が受信されるまで中断される。
従って、補助ＰＬＣが代行した処理の結果をそのまま次の周期（第Ｎ＋１周期）の送信に用いることができる場合には、期間５２を配置する必要はない。このため、図６では、期間５２を破線で示している。
【００３７】
一方、補助ＰＬＣの制御シーケンスは、主ＰＬＣからのデータを受信する期間（入力データ受信６０）と、代行するユーザプログラム実行（ＵＰＧ処理６１）と、代行するモーション制御実行（ＭＣ処理６２）と、これらの処理の結果を主ＰＬＣに送信する期間（処理結果送信６３）とを有している。
これらの処理は、補助ＰＬＣが優先的に実行すべきデバイス１１Ｂ（図５参照）の制御に用いられていない期間を利用して実行される。従って、各期間は連続しているとは限らない。例えば入力データ受信６０とユーザプログラム実行（ＵＰＧ処理６１）とは時間的に離れていてもよい。また、モーション制御実行（ＭＣ処理６２）と処理結果送信６３とは時間的に離れていてもよい。
なお、分担する処理によっては、ユーザプログラム実行（ＵＰＧ処理６１）及びモーション制御実行（ＭＣ処理６２）のうち一方だけが実行されてもよい。
【００３８】
＜事前準備＞
続いて、増設後の第１の産業用ネットワーク１０Ａ（図５参照）の運用を開始する前に実行する事前準備について説明する。
図７は、既設のＰＬＣ２０Ａを主ＰＬＣとし、既設の他のＰＬＣ２０Ｂを補助ＰＬＣとして利用するための事前準備の際に使用するシステム構成の一例を示す図である。
図７に示すように、ＰＬＣ２０ＡとＰＬＣ２０Ｂは、コンピュータ４０に接続されている。
コンピュータ４０では、後述する負荷シミュレーションを通じて各ＰＬＣで使用する制御シーケンスを決定する処理が実行される。
また、コンピュータ４０では、決定された制御シーケンスをＰＬＣ２０Ａ及び２０Ｂにダウンロードする処理も実行される。
【００３９】
コンピュータ４０は、汎用のコンピュータでもよいし、ＰＬＣであってもよい。ここでのコンピュータ４０は、管理装置の一例である。
事前準備に必要な情報は、設定用のコンピュータ４１やクラウド上のデータベース４２を通じてコンピュータ４０に取り込まれる。
ここで、事前準備に必要な情報は、例えばＰＬＣ２０Ａ及び２０Ｂのハードウェア上の性能、ＰＬＣ２０Ａ及び２０Ｂで実行させる制御処理の内容、第１の産業用ネットワーク１０Ａと第２の産業用ネットワーク１０Ｂの構成、個々の制御が満たすべき条件などである。
コンピュータ４０は、負荷シミュレータ（プログラム）に取り込んだ情報を与えて負荷シミュレーションを実行し、ＰＬＣ２０ＡとＰＬＣ２０Ｂのそれぞれに対して設定の情報（制御シーケンスやプログラム等）４３及び４４をダウンロードする。情報４３は主ＰＬＣ用であり、情報４４は補助ＰＬＣ用である。
【００４０】
図８は、事前準備の過程で実行される作業動作の一例を説明するフローチャートである。
まず、ユーザは、コンピュータ４０（図７参照）を操作して負荷シミュレータを実行させ、主ＰＬＣの処理の一部を補助ＰＬＣで代行させるための設定を決定する（ステップ１）。この動作の詳細については後述する。
設定が決定すると、ユーザは、ネットワークシステム１Ｂ（図５参照）を停止させる（ステップ２）。具体的には、主ＰＬＣとして動作させるＰＬＣ２０Ａ（図５参照）が制御する第１の産業用ネットワーク１０Ａ（図５参照）と、補助ＰＬＣとして動作させるＰＬＣ２０Ｂ（図５参照）が制御する第２の産業用ネットワーク１０Ｂ（図５参照）が停止される。
【００４１】
この後、ユーザは、補助ＰＬＣとして動作させるＰＬＣ２０Ｂを、高速／同期ネットワーク３０（図５参照）を介して、主ＰＬＣとして動作させるＰＬＣ２０Ａに同期接続する（ステップ３）。
次に、ユーザは、コンピュータ４０を操作して、決定した設定を主ＰＬＣとして動作するＰＬＣ２０Ａと補助ＰＬＣとして動作するＰＬＣ２０Ｂにそれぞれダウンロードする（ステップ４）。
ダウンロードが終了すると、ユーザは、ネットワークシステム１Ｂの試運転を実行する（ステップ５）。試運転に成功すると、ユーザは、ネットワークシステム１Ｂを本運転に切り替える（ステップ６）。
【００４２】
図９は、主ＰＬＣの処理の一部を補助ＰＬＣで代行させるための設定を決定するために実行する負荷シミュレータの処理動作を説明するフローチャートである。
まず、負荷シミュレータは、補助ＰＬＣとして使用するＰＬＣの指定を受け付ける（ステップ１１）。
次に、負荷シミュレータは、主ＰＬＣの制御処理の一部を補助ＰＬＣに割り当てる（ステップ１２）。割り当ての対象には、例えばユーザプログラム、モーション制御演算処理、安全制御処理、画像解析処理などがある。割り当てられる処理は無作為に決定される。ここでの割り当ては、分割可能な単位であればよく、処理の一部でよい。なお、同期設定は、増設前と同じである。
【００４３】
次に、負荷シミュレータは、主ＰＬＣの制御シーケンスを設定する（ステップ１３）。具体的には、主ＰＬＣの制御周期と、高速／同期ネットワーク３０（図５参照）の通信タイミングとが設定される。
続いて、負荷シミュレータは、主ＰＬＣにおける制御タスクの処理時間を計算する（ステップ１４）。
処理時間が計算されると、負荷シミュレータは、処理時間がタスク周期内に収まるか否かを判定する（ステップ１５）。
ステップ１５で否定結果が得られた場合、負荷シミュレータは、ステップ１２に戻り、補助ＰＬＣに割り当てる制御処理の一部を変更する。この変更は、ステップ１５で肯定結果が得られるまで繰り返される。
【００４４】
ステップ１５で肯定結果が得られると、負荷シミュレータは、補助ＰＬＣの制御シーケンスを設定する（ステップ１６）。具体的には、補助ＰＬＣの制御周期と、高速／同期ネットワーク３０（図５参照）の通信タイミングとが設定される。
ここで、補助ＰＬＣの処理結果を主ＰＬＣが演算に使用する場合（図６の処理５２がある場合）には、補助ＰＬＣの制御周期の設定が主ＰＬＣの制御周期に収まるかについても確認される。なお、同期設定は、増設前と同じである。
続いて、負荷シミュレータは、補助ＰＬＣにおける制御タスクの処理時間を計算する（ステップ１７）。
処理時間が計算されると、負荷シミュレータは、処理時間がタスク周期内に収まるか否かを判定する（ステップ１８）。
【００４５】
ステップ１８で肯定結果が得られた場合、負荷シミュレータは、一連の処理を終了する。この場合、主ＰＬＣの制御シーケンスと補助ＰＬＣの制御シーケンスが決定される。制御シーケンスには、各ＰＬＣで実行される処理の決定も含まれる。
ステップ１８で否定結果が得られた場合、負荷シミュレータは、別の補助ＰＬＣを追加し（ステップ１９）、その後、ステップ１６に戻る。この際、１つ目の補助ＰＬＣがタスク周期を満たす範囲で引き受け可能な制御処理が決定され、残りを追加する補助ＰＬＣに割り当てる。なお、主ＰＬＣの制御処理を分担できる補助ＰＬＣを探してもよい。
【００４６】
＜動作例＞
図１０は、増設後のネットワークシステム１Ｂ（図５参照）を構成する主ＰＬＣ（ＰＬＣ２０Ａ）の制御シーケンスと補助ＰＬＣ（ＰＬＣ２０Ｂ）の制御シーケンスの関係の一例を説明する図である。
図１０の場合、主ＰＬＣでは、２種類のタスク（基準タスクと定周期タスク）が実行され、補助ＰＬＣでは、１種類のタスク（基準タスク）が実行されている。なお、図示しているタスクは、主ＰＬＣと補助ＰＬＣで実行されるタスクの一部である。
また、図１０の場合、主ＰＬＣで実行される定周期タスク（非基準タスク）の処理の一部を、補助ＰＬＣに割り当てている。
【００４７】
ここで、主ＰＬＣの個々のタスクにおけるＩＯリフレッシュ期間（ＩＯ処理）の直後に実行されるユーザプログラム処理（ＵＰＧ処理）とモーション制御処理（ＭＣ処理）は第１の処理の一例である。
また、補助ＰＬＣのタスク内のうちＩＯリフレッシュ期間（ＩＯ処理）の直後に配置されるユーザプログラム処理（ＵＰＧ処理）とモーション制御処理（ＭＣ処理）は第２の処理の一例である。
【００４８】
この例の場合、処理の一部を分散する定周期タスクのタスク周期は、基準周期の２倍である。基準周期の時間長は、主ＰＬＣと補助ＰＬＣと共通である。従って、補助ＰＬＣは、基準周期の２回に１回の割合で主ＰＬＣからデータを受信する。すなわち、処理の代行は、基準周期の２回に１回の割合で実行される。
この例の場合、補助ＰＬＣは、データを受信した基準周期で、マスタ装置としてのタスク処理を完了した後に、代行する処理６０〜６３（図６参照）を実行している。また、主ＰＬＣは、同じタスク周期内に、処理の結果を受信している。
このため、主ＰＬＣは、ラインを増設する前の制御シーケンスを基本的に維持したまま、第１の産業用ネットワーク１０Ａ（図５参照）の制御に支障は生じない。
また、補助ＰＬＣも、代行する処理を含め、基準タスクを基準周期内に完了できる。このため、補助ＰＬＣによる第２の産業用ネットワーク１０Ｂ（図５参照）の制御に支障は生じない。
【００４９】
なお、図１０における補助ＰＬＣは、マスタ装置としての通信と主ＰＬＣとの通信とを独立に実行できるものとする。このため、補助ＰＬＣがスレーブ装置のＩＯリフレッシュ期間（ＩＯ処理）に、主ＰＬＣからデータを受信しても補助ＰＬＣは支障なく動作する。
また、図１０では、主ＰＬＣにおける定周期タスクの実行が完了した後に、補助ＰＬＣから処理結果の通知を受信している場合があるが、これは、定周期タスクの処理時間が変動するために生じている。因みに、定周期タスクの処理時間の変動は、基準タスクよりも優先順位が低いことで発生する。
このような変動があっても、補助ＰＬＣからの処理結果の受信や処理結果を利用したユーザプログラム（ＵＰＧ）やモーション制御（ＭＣ）の実行が、１つのタスク周期内に完了するように、コンピュータ４０（図７参照）は、制御シーケンスを決定する。想定される処理時間の変動分は、コンピュータ４０が計算してもよいし、ユーザが予めコンピュータ４０に指示してもよい。
【００５０】
このように、本実施の形態では、第１の産業用ネットワーク１０Ａ（図５参照）のマスタ装置として、増設前に比して性能（メモリ容量や演算能力）が高いＰＬＣを新たに用意せずにすむ。すなわち、追加の設備投資が不要になる。
また、本実施の形態の場合、第１の産業用ネットワーク１０Ａを複数に分割せずに済むので、敷設されたネットワークを変更する作業、分割後のネットワークでマスタとして動作する複数のＰＬＣ装置間で制御を同期させるための設計作業が不要になる。
なお、本実施の形態でも、事前に、主ＰＬＣのどの処理を補助ＰＬＣに代行させるかを決定する処理が必要になる。しかし、この処理自体は、図９を用いて説明したように、コンピュータ４０が実行する。
【００５１】
因みに、図１０に示す制御シーケンスは、補助ＰＬＣで代行される処理の結果を、主ＰＬＣのユーザプログラム（ＵＰＧ）やモーション制御（ＭＣ）で利用しない場合について表している。このため、主ＰＬＣによるタスクの終了後に補助ＰＬＣから処理の結果が受信されている。
なお、補助ＰＬＣで代行される処理の結果を主ＰＬＣのユーザプログラム（ＵＰＧ）やモーション制御（ＭＣ）で利用する必要がある場合には、補助ＰＬＣからのデータを受信した後（受信期間５１（図６参照）の後）に、補助ＰＬＣで代行する処理をユーザプログラム（ＵＰＧ）やモーション制御（ＭＣ）を実行する期間５２（図６参照）を設ければよい。
【００５２】
＜実施の形態２＞
＜ネットワークシステムの構成＞
図１１は、増設後のネットワークシステム１Ｃ（以下「ネットワークシステム１Ｃ」という）の他の構成例を説明する図である。
図１１には、図５との対応部分に対応する符号を付して示している。
図１１も、第１の産業用ネットワーク１０Ａにラインが増設されている。従って、第１の産業用ネットワーク１０Ａのマスタ装置として動作するＰＬＣ２０Ａが主ＰＬＣとして使用される。
この実施の形態の特徴は、補助ＰＬＣとして既設のＰＬＣを用いない点である。このため、図１１では、補助ＰＬＣとして用いられるＰＬＣ２０Ｃにネットワークが接続されていない。
すなわち、実施の形態２では、補助ＰＬＣ専用のＰＬＣ２０Ｃを新たに追加する場合について説明する。
【００５３】
＜動作例＞
図１２は、増設後のネットワークシステム１Ｃ（図１１参照）を構成する主ＰＬＣ（ＰＬＣ２０Ａ）の制御シーケンスと補助ＰＬＣ（ＰＬＣ２０Ｃ）の制御シーケンスとの関係の一例を説明する図である。
図１２の場合、主ＰＬＣでは、２種類のタスク（基準タスクと定周期タスク）が実行されているが、補助ＰＬＣにはタスクは実行されていない。
図１２の場合も、定周期タスクに対応するタスク周期は、基準周期の２倍である。なお、図１２では、主ＰＬＣで実行されるタスクの一部のみを表している。
図１２の場合、主ＰＬＣで実行される基準タスクの処理の一部と、定周期タスク（非基準タスク）の処理の一部の両方を、１台の補助ＰＬＣに割り当てている。
【００５４】
本実施の形態の場合、補助ＰＬＣは、実行する基準タスクの一部の処理を、定周期タスクの一部の処理よりも優先して実行する。なお、基準タスクの一部の処理と定周期タスクの一部の処理を並行に実行することも可能である。
図１２の場合、基準タスクの一部の処理の結果の通知は、基準タスクの実行に支障が生じないように実行されていればよく、定周期タスクの一部の処理の結果の通知は、定周期タスクの実行に支障が生じないように実行されていればよい。
この動作例の場合、専用の補助ＰＬＣを１台で用意すればよいので、追加の配線や制御シーケンスの決定が容易である。
【００５５】
図１３は、増設後のネットワークシステム１Ｃ（図１１参照）を構成する主ＰＬＣ（ＰＬＣ２０Ａ）の制御シーケンスと２台の補助ＰＬＣ（ＰＬＣ２０Ｃ１及び２０Ｃ２）の制御シーケンスとの関係の一例を説明する図である。
すなわち、図１３に示す制御シーケンスは、補助ＰＬＣを２台用意する点で前述の動作例と異なっている。
図１３の場合も、主ＰＬＣでは、２種類のタスク（基準タスクと定周期タスク）が実行されているが、補助ＰＬＣであるＰＬＣ２０Ｃ１とＰＬＣ２０Ｃ２ではタスクが実行されていない。
図１３の場合も、定周期タスクに対応するタスク周期は、基準周期の２倍である。なお、図１３では、主ＰＬＣで実行されるタスクの一部のみを表している。
【００５６】
図１３の場合、主ＰＬＣで実行される基準タスクの処理の一部をＰＬＣ２０Ｃ１に割り当て、定周期タスク（非基準タスク）の処理の一部をＰＬＣ２０Ｃ２に割り当てている。
この場合、補助ＰＬＣとして動作するＰＬＣ２０Ｃ１とＰＬＣ２０Ｃ２のそれぞれに要求される性能は１台の補助ＰＬＣを用いる場合よりも低く済む。このため、既存の設備の有効活用が可能になる。
【００５７】
＜他の実施の形態＞
以上、本発明の実施の形態について説明したが、本発明の技術的範囲は上記実施の形態に記載の範囲には限定されない。前述した実施の形態に、種々の変更又は改良を加えたものも、本発明の技術的範囲に含まれることは、特許請求の範囲の記載から明らかである。
【００５８】
前述の実施の形態１の場合には、定周期タスクの一部の処理を既設の補助ＰＬＣに分担させているが、実施の形態２の場合のように、基準タスクの一部の処理を既設の補助ＰＬＣに分担させてもよい。
前述の実施の形態の説明では、１つのタスクの一部の処理を１つの補助ＰＬＣに分担させているが、１つのタスクの一部の処理を複数の補助ＰＬＣに分担させてもよい。
前述の実施の形態の説明では、タスク周期が異なる２つのタスク（すなわち基準タスクと定周期タスク）における処理の一部をそれぞれ異なる補助ＰＬＣに分担させているが、タスク周期が同じ複数のタスクにおける処理の一部をそれぞれ異なる補助ＰＬＣに割り当ててもよい。
【符号の説明】
【００５９】
１Ａ…増設前のネットワークシステム、１Ｂ、１Ｃ…増設後のネットワークシステム、１０Ａ…第１の産業用ネットワーク、１０Ｂ…第２の産業用ネットワーク、１１Ａ、１１Ｂ…デバイス、１１Ｃ…通信ケーブル、１２Ａ…分岐スレーブ、２０Ａ、２０Ｂ…ＰＬＣ、３０…高速／同期ネットワーク、４０…コンピュータ
【図１】
2019161523.tif 000003
【図２】
2019161523.tif 000004
【図３】
2019161523.tif 000005
【図４】
2019161523.tif 000006
【図５】
2019161523.tif 000007
【図６】
2019161523.tif 000008
【図７】
2019161523.tif 000009
【図８】
2019161523.tif 000010
【図９】
2019161523.tif 000011
【図１０】
2019161523.tif 000012
【図１１】
2019161523.tif 000013
【図１２】
2019161523.tif 000014
【図１３】
2019161523.tif 000015