(57)【要約】  制御システムは、演算部および通信処理部を含むマスター装置と、マスター装置とネットワークを介して接続された１つ以上のスレーブ装置とを含む。通信処理部は、マスター装置および１つ以上のスレーブ装置が扱うデータを含むデータ列のネットワーク上での巡回的な伝送を管理するように構成されている。通信処理部は、演算部での出力処理の実行と連動して、１つ以上のスレーブ装置に対して出力データを含む第１のデータ列の巡回的な伝送を開始し、演算部での入力処理の実行開始から予め定められた期間だけ前に、１つ以上のスレーブ装置が制御対象から収集している情報を取得するための第２のデータ列の巡回的な伝送を開始する、ように構成されている。
2015133175.tif 000002
【特許請求の範囲】
【請求項１】
制御対象を制御するための制御システムであって、
演算部および通信処理部を含むマスター装置と、
前記マスター装置とネットワークを介して接続された１つ以上のスレーブ装置とを備え、
前記通信処理部は、前記マスター装置および前記１つ以上のスレーブ装置が扱うデータを含むデータ列の前記ネットワーク上での巡回的な伝送を管理するように構成されており、
前記演算部は、出力処理および入力処理を予め定められた実行周期で繰り返し実行するとともに、前記出力処理および前記入力処理の非実行期間にプログラム実行処理を繰り返すように構成されており、前記入力処理は、前記１つ以上のスレーブ装置で収集された前記制御対象からの情報に応じて入力データを更新する処理を含み、前記出力処理は、前記プログラム実行処理の実行結果を含む出力データを生成する処理を含み、
前記通信処理部は、
前記演算部での前記出力処理の実行と連動して、前記１つ以上のスレーブ装置に対して前記出力データを含む第１のデータ列の巡回的な伝送を開始し、
前記演算部での前記入力処理の実行開始から予め定められた期間だけ前に、前記１つ以上のスレーブ装置が前記制御対象から収集している情報を取得するための第２のデータ列の巡回的な伝送を開始する、ように構成されている、制御システム。
【請求項２】
前記通信処理部は、前記第１のデータ列の送出後、当該第１のデータ列の前記マスター装置への到着に依存することなく、前記第２のデータ列を送出する、請求項１に記載の制御システム。
【請求項３】
前記第１のデータ列および前記第２のデータ列は、同一のデータ構造を有する、請求項１または２に記載の制御システム。
【請求項４】
前記第１のデータ列および前記第２のデータ列は、いずれも、前記１つ以上のスレーブ装置から情報を取得するためのコマンドおよび前記出力データを含む、請求項１〜３のいずれか１項に記載の制御システム。
【請求項５】
前記第２のデータ列に含まれる前記出力データは、無効化されている、請求項４に記載の制御システム。
【請求項６】
前記１つ以上のスレーブ装置の各々は、前記第２のデータ列に含まれる前記出力データを破棄するように構成されている、請求項４に記載の制御システム。
【請求項７】
前記マスター装置は、予め格納されたオフセット値に基づいて、前記入力処理の実行開始のタイミングを基準として、前記第２のデータ列を送出するタイミングを決定する、請求項１〜５のいずれか１項に記載の制御システム。
【請求項８】
前記マスター装置は、前記ネットワークの初期構成結果に基づいて、前記オフセット値を決定する、請求項７に記載の制御システム。
【請求項９】
制御対象を制御するための制御装置であって、
演算部と、
前記演算部に結合された通信処理部とを含み、
前記制御装置は、ネットワークを介して１つ以上のスレーブ装置と接続されており、
前記通信処理部は、自装置および前記１つ以上のスレーブ装置が扱うデータを含むデータ列の前記ネットワーク上での巡回的な伝送を管理するように構成されており、
前記演算部は、出力処理および入力処理を予め定められた実行周期で繰り返し実行するとともに、前記出力処理および前記入力処理の非実行期間にプログラム実行処理を繰り返すように構成されており、前記入力処理は、前記１つ以上のスレーブ装置で収集された前記制御対象からの情報に応じて入力データを更新する処理を含み、前記出力処理は、前記プログラム実行処理の実行結果を含む出力データを生成する処理を含み、
前記通信処理部は、
前記演算部での前記出力処理の実行と連動して、前記１つ以上のスレーブ装置に対して前記出力データを含む第１のデータ列の巡回的な伝送を開始し、
前記演算部での前記入力処理の実行開始から予め定められた期間だけ前に、前記１つ以上のスレーブ装置が前記制御対象から収集している情報を取得するための第２のデータ列の巡回的な伝送を開始する、ように構成されている、制御装置。
【請求項１０】
制御対象を制御するための制御装置における制御方法であって、
前記制御装置は、ネットワークを介して１つ以上のスレーブ装置と接続されており、当該制御装置および前記１つ以上のスレーブ装置が扱うデータを含むデータ列の前記ネットワーク上での巡回的な伝送を管理するように構成されており、前記制御方法は、
出力処理および入力処理を予め定められた実行周期で繰り返し実行するとともに、前記出力処理および前記入力処理の非実行期間にプログラム実行処理を繰り返すステップを含み、前記入力処理は、前記１つ以上のスレーブ装置で収集された前記制御対象からの情報に応じて入力データを更新する処理を含み、前記出力処理は、前記プログラム実行処理の実行結果を含む出力データを生成する処理を含み、
前記出力処理の実行と連動して、前記１つ以上のスレーブ装置に対して前記出力データを含む第１のデータ列の巡回的な伝送を開始するステップと、
前記入力処理の実行開始から予め定められた期間だけ前に、前記１つ以上のスレーブ装置が前記制御対象から収集している情報を取得するための第２のデータ列の巡回的な伝送を開始するステップとを含む、制御方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、機械や設備などの動作を制御するために用いられる制御システム、制御装置および制御方法に関する。
【背景技術】
【０００２】
多くの生産現場で使用される機械や設備は、典型的には、プログラマブルコントローラ（Programmable  Logic  Controller；以下「ＰＬＣ」とも称す）などからなる制御システムによって制御される。このような制御システムは、外部のスイッチやセンサなどから情報を収集し、所定の制御演算によって得られる指令値を出力する。【０００３】
このようなフィールド情報の収集および指令値の出力は、ネットワークを介して行われる場合が多い。例えば、特開２００１−１４７９０５号公報（特許文献１）には、少なくとも１つ以上のＣＰＵモジュールと複数のＩ／Ｏモジュールが、リング型のバスに接続されて成るプログラマブルコントローラシステムが開示されている。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００１−１４７９０５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
上述のように、ネットワークを介して、フィールド情報や指令値（以下、「ＩＯ（Input/Output）データ」とも総称する。）を伝送する場合には、ある程度の伝送時間が必要になる。制御に係るプログラムの実行周期に対して、伝送時間が十分に小さい場合には、大きな問題にはならないが、プログラム実行周期をより短くしようとすると、その伝送時間が問題になり得る。上述の特開２００１−１４７９０５号公報（特許文献１）には、このような課題についての言及はない。【０００６】
すなわち、制御対象を制御するために必要なプログラムをより短い周期で繰り返し実行できるための仕組みが要望されている。
【課題を解決するための手段】
【０００７】
本発明のある局面によれば、制御対象を制御するための制御システムが提供される。制御システムは、演算部および通信処理部を含むマスター装置と、マスター装置とネットワークを介して接続された１つ以上のスレーブ装置とを含む。通信処理部は、マスター装置および１つ以上のスレーブ装置が扱うデータを含むデータ列のネットワーク上での巡回的な伝送を管理するように構成されている。演算部は、出力処理および入力処理を予め定められた実行周期で繰り返し実行するとともに、出力処理および入力処理の非実行期間にプログラム実行処理を繰り返すように構成されている。入力処理は、１つ以上のスレーブ装置で収集された制御対象からの情報に応じて入力データを更新する処理を含む。出力処理は、プログラム実行処理の実行結果を含む出力データを生成する処理を含む。通信処理部は、演算部での出力処理の実行と連動して、１つ以上のスレーブ装置に対して出力データを含む第１のデータ列の巡回的な伝送を開始し、演算部での入力処理の実行開始から予め定められた期間だけ前に、１つ以上のスレーブ装置が制御対象から収集している情報を取得するための第２のデータ列の巡回的な伝送を開始する、ように構成されている。【０００８】
好ましくは、通信処理部は、第１のデータ列の送出後、当該第１のデータ列のマスター装置への到着に依存することなく、第２のデータ列を送出する。【０００９】
好ましくは、記第１のデータ列および第２のデータ列は、同一のデータ構造を有する。
好ましくは、第１のデータ列および第２のデータ列は、いずれも、１つ以上のスレーブ装置から情報を取得するためのコマンドおよび出力データを含む。【００１０】
さらに好ましくは、第２のデータ列に含まれる出力データは、無効化されている。
あるいは、さらに好ましくは、１つ以上のスレーブ装置の各々は、第２のデータ列に含まれる出力データを破棄するように構成されている。【００１１】
好ましくは、マスター装置は、予め格納されたオフセット値に基づいて、入力処理の実行開始のタイミングを基準として、第２のデータ列を送出するタイミングを決定する。【００１２】
さらに好ましくは、マスター装置は、ネットワークの初期構成結果に基づいて、オフセット値を決定する。【００１３】
本発明の別の局面に係る制御対象を制御するための制御装置は、演算部と、演算部に結合された通信処理部とを含む。制御装置は、ネットワークを介して１つ以上のスレーブ装置と接続されている。通信処理部は、自装置および１つ以上のスレーブ装置が扱うデータを含むデータ列のネットワーク上での巡回的な伝送を管理するように構成されている。演算部は、出力処理および入力処理を予め定められた実行周期で繰り返し実行するとともに、出力処理および入力処理の非実行期間にプログラム実行処理を繰り返すように構成されている。入力処理は、１つ以上のスレーブ装置で収集された制御対象からの情報に応じて入力データを更新する処理を含み、出力処理は、プログラム実行処理の実行結果を含む出力データを生成する処理を含む。通信処理部は、演算部での出力処理の実行と連動して、１つ以上のスレーブ装置に対して出力データを含む第１のデータ列の巡回的な伝送を開始し、演算部での入力処理の実行開始から予め定められた期間だけ前に、１つ以上のスレーブ装置が制御対象から収集している情報を取得するための第２のデータ列の巡回的な伝送を開始する、ように構成されている。【００１４】
本発明のさらに別の局面に係る制御対象を制御するための制御装置における制御方法において、制御装置は、ネットワークを介して１つ以上のスレーブ装置と接続されており、当該制御装置および１つ以上のスレーブ装置が扱うデータを含むデータ列のネットワーク上での巡回的な伝送を管理するように構成されている。制御方法は、出力処理および入力処理を予め定められた実行周期で繰り返し実行するとともに、出力処理および入力処理の非実行期間にプログラム実行処理を繰り返すステップを含む。入力処理は、１つ以上のスレーブ装置で収集された制御対象からの情報に応じて入力データを更新する処理を含み、出力処理は、プログラム実行処理の実行結果を含む出力データを生成する処理を含む。制御方法は、さらに、出力処理の実行と連動して、１つ以上のスレーブ装置に対して出力データを含む第１のデータ列の巡回的な伝送を開始するステップと、入力処理の実行開始から予め定められた期間だけ前に、１つ以上のスレーブ装置が制御対象から収集している情報を取得するための第２のデータ列の巡回的な伝送を開始するステップとを含む。
【発明の効果】
【００１５】
本発明のある局面に係る制御システムによれば、制御対象を制御するために必要なプログラムをより短い周期で繰り返し実行できる。
【図面の簡単な説明】
【００１６】
【図１】本実施の形態に係るＰＬＣシステムの全体構成を示す模式図である。
【図２】本実施の形態に係るＰＬＣシステムに含まれるＣＰＵユニットの装置構成を示す模式図である。
【図３】本実施の形態に係るＰＬＣシステムに含まれるリモート装置の装置構成の一例を示す模式図である。
【図４】本実施の形態に係るフィールドネットワーク上を伝送される通信フレームを説明するための図である。
【図５】本実施の形態に係るＰＬＣシステムに含まれる処理の概要を説明するための図である。
【図６】本実施の形態に係るＰＬＣシステムで使用される通信フレームのデータ構造の例を示す図である。
【図７】本実施の形態に係るＣＰＵユニットの実装例を示す図である。
【図８】本実施の形態の変形例に係るＰＬＣシステムの全体構成を示す模式図である。
【発明を実施するための形態】
【００１７】
本発明の実施の形態について、図面を参照しながら詳細に説明する。なお、図中の同一または相当部分については、同一符号を付してその説明は繰り返さない。
【００１８】
本実施の形態では、制御システムの一例として、ＰＬＣを中心とするシステムについて例示する。但し、このような制御システムとしては、ＰＬＣだけではなく、各種の産業用コンピュータを中心として構成を採用することもできる。さらに、技術の進展によって、新たな処理装置（演算装置）が開発された場合には、そのような新たな処理装置を採用することもできる。
【００１９】
＜Ａ．ＰＬＣシステムの全体構成＞
まず、制御システムの一形態である、本実施の形態に係るＰＬＣシステム１の全体構成について説明する。図１は、本実施の形態に係るＰＬＣシステム１の全体構成を示す模式図である。
【００２０】
図１を参照して、ＰＬＣシステム１は、制御対象を制御するための制御システムであって、メイン処理装置２と、１つ以上のリモート装置４０＿１，４０＿２，４０＿３，…，４０＿Ｎ（以下、「リモート装置４０」と総称する場合もある。）とを含む。メイン処理装置２およびリモート装置４０は、ＰＬＣシステム１の少なくとも一部を構成する制御装置であり、フィールドネットワーク４を介して接続されている。
【００２１】
フィールドネットワーク４を介した通信は、メイン処理装置２によって主体的に制御される。具体的には、メイン処理装置２は、予め定められたタイミングまたは規則に従って、フィールドネットワーク４上を順次伝送されるデータを送出する。以下の説明においては、フィールドネットワーク４上を順次伝送されるデータを「通信フレーム」とも称す。このような意味において、メイン処理装置２を「マスター装置」と称し、リモート装置４０＿１，４０＿２，４０＿３，…，４０＿Ｎの各々を「スレーブ装置」とも称す。
【００２２】
メイン処理装置２は、制御対象を制御するために必要なプログラム（後述するように、ユーザプログラムやシステムプログラムなどを含む）を実行することで、外部のスイッチやセンサなどからの入力信号（以下、「フィールド情報」または「ＩＮデータ」とも称す。）を収集処理、収集したフィールド情報に基づいて制御演算を行なう処理、制御演算によって算出された指令値（以下、「ＯＵＴデータ」とも称す。）を外部のリレーやアクチュエータへ与える処理などを実現する。
【００２３】
メイン処理装置２は、その装置構成として、ＣＰＵユニット１０と、１つ以上のＩＯユニット２０と、電源ユニット３０とを含む。ＣＰＵユニット１０およびＩＯユニット２０は、図示しない内部バスを介して互いにデータ通信可能に接続されている。電源ユニット３０は、ＣＰＵユニット１０およびＩＯユニット２０へ適切な電圧の電力を供給する。
【００２４】
ＣＰＵユニット１０は、制御対象を制御するために必要なプログラムを実行する演算部と、フィールドネットワーク４を介したリモート装置４０との通信を制御するための通信処理部に相当する通信コントローラ１１０とを含む。
【００２５】
リモート装置４０は、外部のスイッチやセンサからのフィールド情報を受信し、フィールドネットワーク４を介して、その受信したフィールド情報号（ＩＮデータ）をメイン処理装置２へ送信する。併せて、リモート装置４０は、メイン処理装置２からフィールドネットワーク４を介して受信した指令値（ＯＵＴデータ）を、外部のリレーやアクチュエータへ出力する。あるいは、リモート装置４０は、フィールドネットワーク４を介して受信した指令値（ＯＵＴデータ）に従って自身で動作するものであってもよい。例えば、リモート装置４０としては、演算機能を持たない単純なＩＯユニット、演算機能を有するＩＯユニット、モーションコントローラのようなアクチュエータを含む装置、などが想定される。
【００２６】
ＣＰＵユニット１０の通信コントローラ１１０は、メイン処理装置２（マスター装置）および１つ以上のリモート装置４０（スレーブ装置）が扱うデータを含むデータ列（本実施の形態では、「通信フレーム」とも称す。）のフィールドネットワーク４上での巡回的な伝送を管理するように構成されている。なお、図１には、いわゆるリング形式のネットワークを模式的に示すが、後述するようなデイジーチェーン接続のネットワークであってもよい。つまり、本実施の形態に係るネットワークとしては、データ列（通信フレーム）を巡回的に伝送できる構成であれば、どのような構成を採用してもよい。典型的には、本実施の形態に係る通信処理は、トータルフレーム方式のネットワークにも適用できる。
【００２７】
＜Ｂ．ＣＰＵユニット１０の装置構成＞
次に、本実施の形態に係るＰＬＣシステム１に含まれるＣＰＵユニット１０の装置構成について説明する。図２は、本実施の形態に係るＰＬＣシステム１に含まれるＣＰＵユニット１０の装置構成を示す模式図である。
【００２８】
図２を参照して、ＣＰＵユニット１０は、通信処理部である通信コントローラ１１０に加えて、演算部であるプロセッサ１００と、主メモリ１０２と、不揮発性メモリ１０４と、内部バスコントローラ１０６とを含む。これらのコンポーネントは、内部バス１０８を介して、互いにデータ通信可能に構成される。
【００２９】
プロセッサ１００は、制御に係るプログラムを実行する。プロセッサ１００は、不揮発性メモリ１０４などから必要なプログラムを読み出すとともに、主メモリ１０２に展開して実行する。制御に係るプログラムとしては、典型的には、ユーザプログラムおよびシステムプログラムを含む。
【００３０】
内部バスコントローラ１０６は、内部バス１０９を介してＩＯユニット２０と接続され、プロセッサ１００とＩＯユニット２０との間のデータ（ＩＮデータおよびＯＵＴデータ）の遣り取りを仲介する。
【００３１】
通信コントローラ１１０は、フィールドネットワーク４を介してリモート装置４０と接続され、ＣＰＵユニット１０とリモート装置４０との間のデータ（ＩＮデータおよびＯＵＴデータ）の遣り取りを仲介する。より具体的には、通信コントローラ１１０は、共有メモリ１１２と、送信バッファ１２０と、送信回路１２２と、受信バッファ１３０と、受信回路１３２とを含む。
【００３２】
送信バッファ１２０および送信回路１２２は、通信コントローラ１１０から外部装置へのフレーム送出に係る処理を実現し、受信バッファ１３０および受信回路１３２は、外部装置から通信コントローラ１１０へのフレーム送出に係る処理を実現する。通信コントローラ１１０は共有メモリ１１２を有しており、プロセッサ１００は、直接的には、共有メモリ１１２にアクセスして、ＯＵＴデータを書き込むとともに、ＩＮデータを取得する。つまり、共有メモリ１１２に書き込まれたＯＵＴデータは、送信バッファ１２０へ転送され、送信バッファ１２０から外部装置へ送出される。また、外部装置から取得したＩＮデータは、受信バッファ１３０で受信された後、共有メモリ１１２へ転送される。
【００３３】
通信コントローラ１１０は、ソフトウェアを用いて、その一部または全部を実現してもよい。あるいは、ＡＳＩＣ（Application  Specific  Integrated  Circuit：特定用途向集積回路）やＦＰＧＡ（Field-Programmable  Gate  Array）などのハード回路を用いて、その一部または全部を実現してもよい。
【００３４】
＜Ｃ．リモート装置４０の装置構成＞
次に、本実施の形態に係るＰＬＣシステム１に含まれるリモート装置４０の装置構成について説明する。図３は、本実施の形態に係るＰＬＣシステム１に含まれるリモート装置４０の装置構成の一例を示す模式図である。
【００３５】
本実施の形態に係るリモート装置４０としては、各種の構成を採用することができるが、図３には、演算機能およびＩＯ機能を有する構成例を示す。図３を参照して、リモート装置４０は、演算処理部４００と、入力回路４０２と、出力回路４０４と、通信コントローラ４１０とを含む。
【００３６】
演算処理部４００は、フィールドネットワーク４を介して送信されたデータに基づいて、予め定められた処理を実行するとともに、処理の結果得られるデータを、フィールドネットワーク４を介して送出させる。
【００３７】
入力回路４０２は、フィールド側から入力された信号値（ＩＮデータ）を示す情報（デジット値）を演算処理部４００へ出力する。出力回路は、演算処理部４００から与えられたＯＵＴデータに応じた信号をフィールド側へ出力する。
【００３８】
通信コントローラ４１０は、フィールドネットワーク４を介してＣＰＵユニット１０と接続され、リモート装置４０とＣＰＵユニット１０との間のデータ（ＩＮデータおよびＯＵＴデータ）の遣り取りを仲介する。より具体的には、通信コントローラ４１０は、共有メモリ４１２と、受信バッファ４２０と、受信回路４２２と、送信バッファ４３０と、送信回路４３２とを含む。これらのコンポーネントは、上述の共有メモリ１１２、送信バッファ１２０、送信回路１２２、受信バッファ１３０、および、受信回路１３２（いずれも図２）と同様の機能を有しているので、詳細な説明は繰り返さない。但し、スレーブ装置の一部である通信コントローラ４１０での通信フレームを受信した際の処理、および、通信フレームを送信する際の処理については、マスター装置の一部であるＣＰＵユニット１０の通信コントローラ１１０での処理とは異なっている。
【００３９】
リモート装置４０（演算処理部４００、入力回路４０２、出力回路４０４、および通信コントローラ４１０）については、ソフトウェアを用いてその機能の全部または一部を実現してもよいが、ＡＳＩＣやＦＰＧＡなどのハード回路を用いて、その一部または全部を実現するのが好ましい。
【００４０】
＜Ｄ．フィールドネットワーク＞
次に、フィールドネットワーク４における通信処理について説明する。
【００４１】
フィールドネットワーク４での通信方式としては、予め定められた通信周期でデータ伝送が可能な（つまり、リアルタイム通信可能な）方式が好ましい。一例として、フィールドネットワーク４としては、各種の産業用イーサネット（登録商標）を用いることができる。産業用イーサネット（登録商標）の具体例としては、例えば、ＥｔｈｅｒＣＡＴ（登録商標）、ＰＲＯＦＩＮＥＴ  ＩＲＴ、ＭＥＣＨＡＴＲＯＬＩＮＫ（登録商標）−ＩＩＩ、Ｐｏｗｅｒｌｉｎｋ、ＳＥＲＣＯＳ（登録商標）−ＩＩＩ、ＣＩＰ  Ｍｏｔｉｏｎなどがある。以下の説明では、典型例として、ＥｔｈｅｒＣＡＴ（登録商標）を用いた構成例について説明する。
【００４２】
図４は、本実施の形態に係るフィールドネットワーク４上を伝送される通信フレームを説明するための図である。図４を参照して、通信フレーム５０は、フィールドネットワーク４上で巡回的に伝送される。つまり、マスター装置であるメイン処理装置２から送出された通信フレーム５０は、スレーブ装置であるリモート装置４０＿１，４０＿２，４０＿３に順次転送されることになる。すべてのリモート装置４０を転送された通信フレーム５０は、メイン処理装置２へ戻る。つまり、通信フレーム５０は、メイン処理装置２およびリモート装置４０＿１，４０＿２，４０＿３，…，４０＿Ｎを巡回的に伝送される。
【００４３】
より具体的には、通信フレーム５０は、ヘッダ５１と、各スレーブ装置に割り当てられたデータエリア５２，５３，５４と、フッタ５５とを含む。ヘッダ５１には、その通信フレームの宛先や各種属性情報が格納される。データエリア５２，５３，５４の各々には、対応するスレーブ装置についてのＯＵＴデータおよびＩＮデータが格納される。フッタ５５には、終了コードやパリティビットなどの情報が格納される。
【００４４】
マスター装置は、各スレーブ装置に対して与えるＯＵＴデータを対象のスレーブ装置に割り当てられたデータエリアへ書き込むことで通信フレーム５０を生成して送出する。各スレーブ装置は、上位側から通信フレーム５０を受信すると、当該受信した通信フレーム５０のうち、自局に割り当てられたデータエリアから自局宛のＯＵＴデータを抽出するとともに、自局で収集しているＩＮデータを自局に割り当てられたデータエリアに書き込んで通信フレーム５０を再生成し、下位側へ送出する。このように、通信フレーム５０が巡回的に転送されることで、ＯＵＴデータおよびＩＮデータが順次更新される。
【００４５】
つまり、本実施の形態に係るフィールドネットワーク４では、すべてのスレーブ装置宛のＯＵＴデータ（指令値）を格納した通信フレーム５０がマスター装置から送出されるとともに、各スレーブ装置において、ＯＵＴデータ（指令値）およびＩＮデータ（フィードバック値）が交換された後の通信フレーム５０がマスター装置へ戻される。つまり、通信フレーム５０が一巡することで、マスター装置と各スレーブ装置との間でのデータの遣り取りが完了する。
【００４６】
＜Ｅ．概要＞
次に、本実施の形態に係るＰＬＣシステム１における処理の概要について説明する。図５は、本実施の形態に係るＰＬＣシステム１に含まれる処理の概要を説明するための図である。図５（ａ）は、関連技術に係るＣＰＵユニットにおけるプログラムの繰り返し実行を説明するための図であり、図５（ｂ）は、本実施の形態に係るＣＰＵユニット１０におけるプログラムの繰り返し実行を説明するための図である。
【００４７】
図５（ａ）に示すように、ＣＰＵユニット１０では、制御に係るプログラムが周期的に繰り返し実行される。このプログラムの実行周期を、以下では「ＰＬＣシステム周期」とも称す。実行されるプログラムは、システムプログラム６０と、ユーザプログラム７０とを含む。システムプログラム６０は、ＰＬＣシステム１が適切に動作するために必須の処理を実行するためのものであり、典型的には、出力処理６２と、通信処理６４と、入力処理６６とを含む。
【００４８】
出力処理６２は、ユーザプログラム７０などの実行によって算出されたＯＵＴデータを集約して通信フレーム５０を生成する処理（「フレーミング処理」などとも称される。）を含む。通信処理６４は、生成された通信フレーム５０をスレーブ装置へ送出する処理、およびすべてのスレーブ装置を巡回後に戻ってきた通信フレーム５０からＩＮデータを収集する処理を含む。入力処理６６は、戻ってきた通信フレーム５０から収集したＩＮデータに基づいて内部データ（または、内部変数）を更新する処理を含む。
【００４９】
ユーザプログラム７０は、ＰＬＣシステム１のユーザが目的や用途に応じて任意に作成したプログラムであり、制御内容、制御対象、制御用途などに応じて１または複数に細分されてもよい。例えば、ユーザプログラム７０は、シーケンス制御ロジック、モーション制御ロジック、およびＰＩＤ制御ロジック等を含み得る。また、複数に細分されたユーザプログラムに対しては、実行周期や実行の優先順位を設定してもよい。このとき、ユーザプログラムに対して設定される実行周期は、ＰＬＣシステム周期より長い場合（通常は、ＰＬＣシステム周期の整数倍）もあり、この場合には、当該プログラムは、ＰＬＣシステム周期の複数周期に亘って実行されることになる。図５（ａ）に示す例では、ユーザプログラム７０は、Ａ処理７２と、Ｂ処理７４と、Ｃ処理７６とを含む。
【００５０】
図５に示すように、演算部であるプロセッサ１００は、出力処理６２および入力処理６６を予め定められた実行周期（ＰＬＣシステム周期）で繰り返し実行するとともに、出力処理６２および入力処理６６の非実行期間にプログラム実行処理（ユーザプログラム７０の実行処理）を繰り返すように構成されている。ここで、入力処理６６は、１つ以上のスレーブ装置（リモート装置４０）で収集された制御対象からの情報（フィールド情報またはＩＮデータ）に応じて入力データを更新する処理を含む。出力処理６２は、プログラム実行処理（ユーザプログラム７０の実行処理）の実行結果を含む出力データ（通信フレームまたはＯＵＴデータ）を生成する処理を含む。
【００５１】
システムプログラム６０は、ＰＬＣシステム周期毎に必ず１回実行される。図５（ａ）に示すように、システムプログラム６０の通信処理６４では、マスター装置から通信フレーム５０が送出され、その通信フレーム５０がすべてのスレーブ装置を巡ってマスター装置へ戻ってこなければ、マスター装置とスレーブ装置との間のＯＵＴデータおよびＩＮデータの更新を完了できない。
【００５２】
つまり、各スレーブ装置は、通信フレーム５０から指令値（ＯＵＴデータ）を受け取り、フィードバック値（ＩＮデータ）を通信フレーム５０に乗せる。このとき、マスター装置は、通信フレーム５０が戻ってくるまで待ち状態になる。マスター装置から送出された通信フレーム５０がマスター装置へ戻ってくるまでに要する時間（以下、「通信フレーム一巡周期Ｄ」とも称す。）は、フィールドネットワーク４に接続されているスレーブ装置の数に依存して長くなる。
【００５３】
ＰＬＣシステム周期Ｔ２は、システムプログラム６０の実行に要する時間（ｘ１＋ｘ２＋ｘ３）と、ユーザプログラム７０の実行に要する時間（ｘ４＋ｘ５＋ｘ６）との合計に相当する。ここで、ユーザプログラム７０には、例えば、モーション制御ロジック（多軸ロボットなどの位置（角度）の連続制御ロジック）のような、高速実行（より短い周期での繰り返し実行）が要求される処理が含まれている場合もある。そのため、ＰＬＣシステム周期Ｔ２を可能な限り短くしたいという要望がある。
【００５４】
このようなＰＬＣシステム周期Ｔ２の高速化を考えると、図５（ａ）に示すように、システムプログラム６０の通信処理６４の実行に要する時間が相対的に長くなっている。これは、送出した通信フレーム５０が戻ってくるまで待ち状態になるためである。
【００５５】
本願発明者らは、このような通信処理における待ち状態に着目し、この待ち状態になっている時間を可能な限り小さくまたはゼロにすることで、ＰＬＣシステム周期Ｔ２を短縮化するという新規な解決手段に想到した。この新規な解決手段について、図５（ｂ）を参照して説明する。
【００５６】
図５（ｂ）を参照して、本実施の形態に係るＣＰＵユニット１０は、１つのＰＬＣシステム周期内で、主としてＩＮデータを収集するための通信フレーム５０Ａと、図５（ａ）と同様の通信フレーム５０とを送出する。この通信フレーム５０Ａの送出タイミングを適切に設定することで、実質的に通信処理に要する時間を無視することができる。つまり、各スレーブ装置から収集したＩＮデータを必要とする入力処理６６の実行開始前に、ＩＮデータを収集するための通信フレーム５０Ａがマスター装置へ戻ってきていれば、入力処理６６を即座に実行できる。
【００５７】
本実施の形態に係るＣＰＵユニット１０においては、通信処理に要する時間を実質的にゼロとすることができ、実行されるシステムプログラム６５は、実質的に、出力処理６２および入力処理６６のみを含むことになる。つまり、図５（ａ）に示す関連技術における通信フレーム５０がマスター装置から送出される前に、ＩＮデータ（フィードバック値）を収集するための通信フレーム５０Ａを送出する。これによって、入力処理６６の実行開始が待たされることなく、かつ、出力処理６２によって生成された通信フレーム５０を即座に送出することができる。
【００５８】
すなわち、通信コントローラ１１０（通信処理部）は、プロセッサ１００（演算部）での出力処理６２の実行と連動して、１つ以上のリモート装置４０（スレーブ装置）に対してＯＵＴデータ（出力データまたは指令値）を含む通信フレーム５０（第１のデータ列）の巡回的な伝送を開始する。併せて、通信コントローラ１１０（通信処理部）は、プロセッサ１００（演算部）での入力処理６６の実行開始から予め定められた期間だけ前に、１つ以上のリモート装置４０（スレーブ装置）が制御対象から収集している情報（フィールド情報またはＩＮデータ）を取得するための通信フレーム５０Ａ（第２のデータ列）の巡回的な伝送を開始する。なお、通信フレーム５０Ａの送出開始タイミングは、その送出された通信フレーム５０Ａがすべてのスレーブ装置からＩＮデータを収集して、対応するＰＬＣシステム周期における入力処理６６の開始前に、マスター装置へ戻ってくるものであれば、どのようなタイミングであってもよい。但し、通信フレーム５０の送出に影響を与えないようにしなければならないので、送出された後に通信フレーム５０Ａがマスター装置へ戻ってくるタイミングが入力処理６６の開始直前になるように設定されることが好ましい。
【００５９】
また、マスター装置から送出された通信フレーム５０Ａが送出された後、マスター装置経戻ってくる前に、マスター装置から通信フレーム５０を送出するようにしてもよい。反対に、マスター装置からの通信フレーム５０の送出された後、マスター装置へ戻ってくる前に、マスター装置から通信フレーム５０Ａを送出するようにしてもよい。つまり、通信フレーム５０の送出期間と通信フレーム５０Ａとが重複さえしなければ、両者の送出開始タイミングは任意に設定できる。
【００６０】
すなわち、一方の通信フレームが送出された後、当該通信フレームがフィールドネットワーク４を一巡してマスター装置への到着に依存することなく、他方の通信フレームを送出することができる。言い換えれば、一方の通信フレームが一巡した後のマスター装置への到着タイミングと、他方の通信フレームの送出タイミングとは、互いに独立して決定できる。
【００６１】
このような処理によって、マスター装置における待ち時間を実質的にゼロにできる。図５（ａ）と図５（ｂ）に示すタイムチャートを比較すれば明らかなように、通信処理６４に要していた時間分だけ、ＰＬＣシステム周期の長さを短縮できる。
【００６２】
＜Ｆ．送出タイミングの決定方法＞
次に、通信フレーム５０Ａの送出タイミングを決定するいくつかの方法について例示する。
【００６３】
（１）通信フレーム一巡周期を実測により決定する方法
図５（ｂ）に示すように、通信フレーム５０Ａがマスター装置から送出されて、すべてのスレーブ装置を一巡した後にマスター装置へ戻ってくるまでの時間、すなわち通信フレーム一巡周期Ｄ２が既知であれば、通信フレーム５０Ａの送出タイミングを決定できる。すなわち、入力処理６６の開始タイミングから通信フレーム一巡周期Ｄ２の時間分だけ前のタイミングで、通信フレーム５０Ａを送出すればよい。
【００６４】
プロセッサ１００において、制御に係るプログラム（システムプログラム６５およびユーザプログラム７０）の実行タイミングは既知であるので、入力処理６６の開始タイミングを予め知ることができる。そのため、システムプログラム６５およびユーザプログラム７０の実行に同期させて、通信フレーム一巡周期Ｄ２の長さに応じて、通信フレーム５０Ａの送出タイミングが決定される。つまり、通信フレーム一巡周期Ｄ２は、通信フレーム５０Ａの送出タイミングを決定するためのオフセット値に相当する。
【００６５】
通信フレーム一巡周期Ｄ２は、典型的には、マスター装置および１つ以上のスレーブ装置でフィールドネットワーク４を構成する際に実行さる初期化処理において実測される。つまり、マスター装置と１つ以上のスレーブ装置との間で、ネットワークを確立するために、初期化処理として装置間で必要な情報が遣り取りされ、この情報の遣り取りにおいて、通信フレーム一巡周期Ｄ２も実測される。この実測された通信フレーム一巡周期Ｄ２の長さは、ＣＰＵユニット１０内に保持され、この値を用いて、通信フレーム５０Ａの送出タイミングが都度決定される。つまり、通信フレーム一巡周期Ｄ２の長さは、ネットワークの初期構成結果に含まれる。
【００６６】
このように、メイン処理装置２（マスター装置）は、予め格納されたオフセット値に基づいて、入力処理６６の実行開始のタイミングを基準として、通信フレーム５０Ａ（第２のデータ列）を送出するタイミングを決定する。典型的には、メイン処理装置２（マスター装置）は、ネットワークの初期構成結果に基づいて、オフセット値を決定する。
【００６７】
（２）通信フレーム一巡周期をシミュレーションにより決定する方法
上述したように、通信フレーム一巡周期を実測により決定する方法に代えて、シミュレーションなどを用いて、通信フレーム一巡周期を予測的に算出してもよい。より具体的には、フィールドネットワーク４に接続されているスレーブ装置の数および各スレーブ装置の種類（各スレーブ装置における処理能力およびデータ処理量を推定できる）などに基づいて、通信フレーム５０Ａがフィールドネットワーク４を一巡するのに要する時間を見積もることができる。実測しなくとも、通信フレーム一巡周期Ｄを予め推定できるので、プログラムの設計をより容易化できる。
【００６８】
このときも、通信フレーム一巡周期Ｄ２は、通信フレーム５０Ａの送出タイミングを決定するためのオフセット値として用いられる。つまり、メイン処理装置２（マスター装置）は、予め格納されたオフセット値に基づいて、入力処理６６の実行開始のタイミングを基準として、通信フレーム５０Ａ（第２のデータ列）を送出するタイミングを決定する。このオフセット値（通信フレーム一巡周期Ｄ２）は、上述したように、シミュレーションによって決定されてもよい。
【００６９】
なお、フィールドネットワーク４では、マスター装置および各スレーブ装置の間で同期を取れるように、共通のタイマー（カウンター）が設けられているものとする。そのため、通信フレーム５０Ａ（第２のデータ列）を送出するタイミングは、当該共通のタイマー（カウンター）でカウントされる時間（カウント数）の絶対値として決定されてもよいし、入力処理６６の実行開始タイミングを基準とする相対値として決定されてもよい。
【００７０】
＜Ｇ．通信フレームのデータ構造およびスレーブ装置での処理＞
次に、通信フレーム５０および５０Ａ、ならびにスレーブ装置での処理について説明する。上述したように、基本的には、通信フレーム５０Ａは、ＩＮデータの収集ができれば十分である。そのため、通信フレーム５０Ａのデータ構造としては、ＩＮデータの収集に特化した構造を採用してもよいし、通信フレーム５０と同様の構造を採用してもよい。
【００７１】
以下、通信フレーム５０および５０Ａのデータ構造のいくつか、および各データ構造に対応するスレーブ装置における処理について説明する。
【００７２】
図６は、本実施の形態に係るＰＬＣシステム１で使用される通信フレームのデータ構造の例を示す図である。
【００７３】
（１）通信フレーム５０Ａとして短縮化された通信フレームが採用される場合
図６（ａ）には、通信フレーム５０Ａのデータ構造として、通信フレーム５０のデータ構造に比較して短縮化された構造を採用する例を示す。より具体的には、通常の通信フレーム５０では、ヘッダおよびフッタの間に、各スレーブ装置に割り当てられたＯＵＴデータおよびＩＮデータ用のデータエリアがそれぞれ設けられている。そして、ヘッダには、各スレーブ装置に対して、自局に入力されているフィールド情報を割り当てられたＩＮデータのデータエリアに書き込むことを指示する命令（ＩＮデータリフレッシュ命令）が格納されている。各スレーブ装置は、ヘッダにあるＩＮデータリフレッシュ命令に従って、自局に割り当てられたＩＮデータのデータエリアに最新のフィードバック値を書き込む。同時に、各スレーブ装置は、自局に割り当てられたＯＵＴデータのデータエリアからＯＵＴデータ（指令値）を読み出して処理を実行する。
【００７４】
これに対して、図６（ａ）に示される短縮化された通信フレーム５０Ａでは、ＯＵＴデータのデータエリアが削除されており、ＩＮデータのデータエリアのみが存在する。ヘッダには、各スレーブ装置に対して、ＩＮデータリフレッシュ命令が格納されているので、各スレーブ装置は、ヘッダにあるＩＮデータリフレッシュ命令に従って、自局に割り当てられたＩＮデータのデータエリアに最新のフィードバック値を書き込む。これによって、通信フレーム５０Ａを用いたＩＮデータの収集を実現できる。併せて、ＯＵＴデータのデータエリアが存在しないので、通信フレーム５０Ａのフレーム長さ（データ量）を小さくできる。つまり、通信フレーム５０Ａの通信フレーム一巡周期をより短くでき、通信フレーム５０に対する時間的なマージンをより大きくとることができる。
【００７５】
（２）通信フレーム５０ＡのＯＵＴデータとして無効な値が設定されている場合
次に、図６（ｂ）に示す通信フレーム５０Ａは、通信フレーム５０と同一のデータ構造を有する例を示す。つまり、図６（ｂ）に示す例では、通信フレーム５０（第１のデータ列）および通信フレーム５０Ａ（第２のデータ列）は、同一のデータ構造を有している。
【００７６】
ここで、通信フレーム５０ＡのＯＵＴデータとしては、無効な値が設定される。図６（ｂ）に示す例では、通信フレーム５０ＡのＯＵＴデータの各データエリアには、「ｎｕｌｌ値」が格納されており、各スレーブ装置は、通信フレーム５０Ａを受信したとしても、有効なＯＵＴデータを読み出すことができないようになっている。すなわち、通信フレーム５０Ａ（第２のデータ列）に含まれるＯＵＴデータ（出力データ）は、無効化されている。
【００７７】
なお、ＯＵＴデータの各データエリアには、「ｎｕｌｌ値」ではなく、ＯＵＴデータとしてはあり得ない値（例えば、負値など）を格納することで、無効化してもよい。
【００７８】
通信フレーム５０と通信フレーム５０Ａとは、どのデータ構造が同一であるので、いずれもＩＮデータリフレッシュ命令を含む。つまり、通信フレーム５０（第１のデータ列）および通信フレーム５０Ａ（第２のデータ列）は、いずれも、スレーブ装置から情報を取得するためのコマンド（ＩＮデータリフレッシュ命令）およびＯＵＴデータ（出力データ）を含む。
【００７９】
このように、通信フレーム５０と通信フレーム５０Ａとの間でデータ構造を共通化することで、マスター装置での通信フレーム作成の処理を共通化でき、本実施の形態に係る処理の実現のために、実装形態が複雑化することを避けることができる。
【００８０】
（３）通信フレーム５０ＡのＯＵＴデータが無効な値であると宣言されている場合
図６（ｃ）にも、通信フレーム５０Ａが通信フレーム５０と同一のデータ構造を有する例を示す。つまり、図６（ｂ）に示す例では、通信フレーム５０（第１のデータ列）および通信フレーム５０Ａ（第２のデータ列）は、同一のデータ構造を有している。
【００８１】
通信フレーム５０ＡのＯＵＴデータにも、通信フレーム５０と同様に、制御対象を制御するために必要なプログラムの直近の実行によって算出された指令値（ＯＵＴデータ）が格納される。但し、ヘッダには、各スレーブ装置に対して、ＯＵＴデータのデータエリアに格納されている命令値が無効であることを示す宣言（ＯＵＴデータ無効化宣言）が格納されている。このＯＵＴデータ無効化宣言に従って、各スレーブ装置は、受信した指令値（ＯＵＴデータ）を破棄する処理を実行する。すなわち、スレーブ装置の各々は、通信フレーム５０Ａ（第２のデータ列）に含まれる出力データを破棄するように構成される。図６（ｃ）に示す例では、ＯＵＴデータ無効化宣言を用いることで、通信フレーム５０Ａ（第２のデータ列）に含まれるＯＵＴデータ（出力データ）を実質的に無効化する。
【００８２】
なお、ＯＵＴデータ無効化宣言によって、ＯＵＴデータのデータエリアに格納されるどのような値であっても無効化されるので、ランダムな値を当該データエリアに格納するようにしてもよい。但し、実装上は、最も直近のプログラム実行によって算出されたＯＵＴデータを用いるようにするのが好ましい。
【００８３】
通信フレーム５０と通信フレーム５０Ａとは、どのデータ構造が同一であるので、いずれも、スレーブ装置から情報を取得するためのコマンド（ＩＮデータリフレッシュ命令）およびＯＵＴデータ（出力データ）を含む。
【００８４】
このように、通信フレーム５０と通信フレーム５０Ａとの間でデータ構造を共通化することで、マスター装置での通信フレーム作成の処理を共通化でき、本実施の形態に係る処理の実現のために、実装形態が複雑化することを避けることができる。
【００８５】
（４）通信フレーム５０Ａとして前回送出された通信フレーム５０を再送出する場合
図６（ａ）〜図６（ｃ）には、通常の通信フレーム５０とは異なるデータ構造を有する通信フレーム５０Ａを用いる例について示したが、通信フレーム５０Ａとして、直近に送出された通信フレーム５０と全く同じ通信フレームを用いてもよい。つまり、１つ前のＰＬＣシステム周期において送出した通信フレーム５０を、現ＰＬＣシステム周期において再送出するようにしてもよい。いずれの通信フレームにも、最新であるＯＵＴデータの組が共通に含まれるので、各スレーブ装置としては、異常な挙動になることはない。
【００８６】
このような構成を採用することで、本実施の形態に係る通信処理を実現するための実装構成をより簡素化できる。
【００８７】
（５）その他の構成
なお、通信フレーム５０Ａと通信フレーム５０との間のデータ構造を必ずしも同一にする必要はない。さらに、各通信フレームに格納されるＩＮデータとＯＵＴデータとのデータ長さについても同一にする必要はない。通信フレームの転送に要する時間を短縮するために、必要最小限のデータ長さを動的に選択するようにしてもよい。あるいは、ネットワーク上の通信フレームの統計情報などから、ＩＮデータおよびＯＵＴデータのデータ長さの最適値を予め推測し、その推測したデータ長さになるように、通信フレームを決定しておいてもよい。
【００８８】
＜Ｈ．実装例＞
次に、上述のような通信フレームの送出に係るいくつかの実装例について例示する。
【００８９】
図７は、本実施の形態に係るＣＰＵユニット１０の実装例を示す図である。
（１）通信コントローラ１１０の内部で通信フレームの送出をトリガーする実装例
図７（ａ）に示す実装例において、通信コントローラ１１０は、制御エンジンが実装されたＦＰＧＡ、およびアナログ／デジタル変換やメモリなどの信号処理回路が実装されたＡＳＩＣを含む。この実装例においては、制御エンジンが実装されたＦＰＧＡが内部的な信号を発することで、通信フレーム５０Ａが生成されて送出される。このようなＦＰＧＡを用いることで、プロセッサ１００でタイミングの管理などを行なう必要がなく、かつより高速な制御が可能になる。
【００９０】
（２）プロセッサ１００が通信フレームの送出をトリガーする実装例
図７（ａ）に示す実装例において、制御対象を制御するために必要なプログラム（ユーザプログラムやシステムプログラムなど）を実行するプロセッサ１００において、タイミングを管理するスレッドを実行させて、そのスレッドから通信フレーム５０Ａをトリガーしてもよい。この場合には、通信フレーム５０Ａの生成および送出に係る内部コマンドが、プロセッサ１００から通信コントローラ１１０へ与えられる。
【００９１】
（３）別のプロセッサが通信フレームの送出をトリガーする実装例
図７（ｂ）に示す実装例において、制御対象を制御するために必要なプログラム（ユーザプログラムやシステムプログラムなど）を実行するプロセッサ１００＿１に加えて、タイミングを管理するスレッドを実行する、別のプロセッサ１００＿２が実装されている。プロセッサ１００＿２が通信フレーム５０Ａをトリガーする。
【００９２】
（４）専用プロセッサが通信フレームの送出をトリガーする実装例
図７（ｂ）には、通信コントローラ１１０と接続された専用プロセッサ１６０が設けられている実装例を示す。この実装例においては、専用プロセッサ１６０がタイミングを管理し、プロセッサ１００とは独立して、通信コントローラ１１０に対して、通信フレーム５０Ａを送出するための内部コマンドを与える。
【００９３】
以上では、典型的な４つの実装例について例示したが、これらの実装例に限られることなく、要求される用途やスペックなどに応じて、任意のソフトウェアおよび／またはハードウェアの組み合わせを用いて実装することができる。
【００９４】
＜Ｉ．変形例＞
上述の実施の形態においては、いわゆるリング形式のネットワークを例示したが、デイジーチェーン形式のネットワークにも適用できる。このようなデイジーチェーン形式のネットワークについて、図８を参照して例示する。
【００９５】
図８は、本実施の形態の変形例に係るＰＬＣシステム１Ａの全体構成を示す模式図である。図８を参照して、ＰＬＣシステム１Ａは、メイン処理装置２（マスター装置）と、１つ以上のリモート装置４０（スレーブ装置）とを含み、これらは、デイジーチェーン形式のフィールドネットワークを介して接続されている。フィールドネットワークでは、マスター装置から各スレーブ装置へ通信フレームが順次転送され（ダウンフレーム）、終端部で折り返した後、各スレーブ装置からマスター装置へ通信フレームが順次転送される（アップフレーム）。
【００９６】
このようなデイジーチェーン形式を採用した場合には、ＣＰＵユニット１０は、デイジーチェーン形式に適合した通信コントローラ１１０Ａを有することになる。その他の構成や処理などについては、上述したものと同様であるので、詳細な説明は繰り返さない。
【００９７】
また、上述の実施の形態およびその変形例では、フィールドネットワークにおけるデータ伝送について例示したが、ＰＬＣ内における、ＣＰＵユニット１０とＩＯユニット２０とを繋ぐ内部バスにも適用できる。
【００９８】
＜Ｊ．利点＞
本実施の形態によれば、マスター装置と１つ以上のスレーブ装置とがネットワーク接続された構成において、マスター装置が１つ以上のスレーブ装置からネットワークを介してフィールド情報を収集するための処理が先行して実行される。そのため、フィールド情報の収集の完了後に実行される入力処理が待たされることがない。つまり、ＯＵＴデータ（指令値）を各スレーブ装置へ送信する処理と、各スレーブ装置からＩＮデータを収集する処理との間に、待ち時間が発生しないので、制御対象を制御するために必要なプログラム（ユーザプログラムおよびシステムプログラムを含む）を実行する周期（ＰＬＣシステム周期）を短くできる。つまり、ユーザプログラムをより高速に実行するための環境を提供することができる。これによって、モーション制御ロジックなどをより高速に実行できるので、制御精度を高めることができる。
【００９９】
今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は、上記した説明ではなく、請求の範囲によって示され、請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
【符号の説明】
【０１００】
１，１Ａ  ＰＬＣシステム、２  メイン処理装置、４  フィールドネットワーク、１０  ＣＰＵユニット、２０  ＩＯユニット、３０  電源ユニット、４０  リモート装置、５０，５０Ａ  通信フレーム、５１  ヘッダ、５２，５３，５４  データエリア、５５  フッタ、６０，６５  システムプログラム、６２  出力処理、６４  通信処理、６６  入力処理、７０  ユーザプログラム、１００  プロセッサ、１０２  主メモリ、１０４  不揮発性メモリ、１０６  内部バスコントローラ、１０８，１０９  内部バス、１１０，１１０Ａ，４１０  通信コントローラ、１１２，４１２  共有メモリ、１２０，４３０  送信バッファ、１２２，４３２  送信回路、１３０，４２０  受信バッファ、１３２，４２２  受信回路、１６０  専用プロセッサ、４００  演算処理部、４０２  入力回路、４０４  出力回路。
【図１】
2015133175.tif 000003
【図２】
2015133175.tif 000004
【図３】
2015133175.tif 000005
【図４】
2015133175.tif 000006
【図５】
2015133175.tif 000007
【図６】
2015133175.tif 000008
【図７】
2015133175.tif 000009
【図８】
2015133175.tif 000010
【国際調査報告】
2015133175.tif 000011
2015133175.tif 000012