(57)【要約】  ＰＬＣのＩ／Ｏデバイスにおいて、複数のデータに対して入出力処理の並列処理を可能にし、Ｉ／Ｏデバイス間の入出力処理の高速化を低コストで実現する。Ｉ／Ｏデバイスの演算データ抽出部（１５０）は、受信した他のＩ／Ｏデバイスの他局入力Ｃと他局出力Ｄとを入力し、また自局入力Ａと自局出力Ｂとを入力する。演算データ抽出部（１５０）は、自局入力Ａ、自局出力Ｂ、他局入力Ｃ、他局出力Ｄのそれぞれを対象として、パラメータ部（１４０）に格納されたパラメータ（選択種別、データ位置、選択局番、自局番）に従って、演算データを抽出する。演算部（１６０）は、演算データ抽出部（１５０）が抽出した演算データを用いて、パラメータ部（１４０）に格納された演算処理（１４１）（複数の演算方式を格納）に従って、複数の演算処理を並列に実行する。
2013187191.tif 000002
【特許請求の範囲】
【請求項１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスにおいて、  前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他の前記Ｉ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、  複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、  前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、  前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部とを備えたことを特徴とするＩ／Ｏデバイス。
【請求項２】
前記演算データ抽出部は、  それぞれが前記演算データを抽出する複数のサブ抽出部を備え、  前記パラメータ部は、  前記サブ抽出部ごとに、前記サブ抽出部に対応する前記抽出条件を格納し、  それぞれの前記サブ抽出部は、  対応する前記パラメータに従って前記演算データを抽出することを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項３】
他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とは、  いずれも、複数のビットからなるビット情報であり、  前記パラメータ部は、  それぞれの前記サブ抽出部に対応する前記抽出条件として、他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とのうちのいずれかを、前記演算データの抽出元として指定すると共に、指定された前記抽出元におけるビット値を抽出すべきビット位置を指定する前記抽出条件を格納し、  それぞれの前記サブ抽出部は、  対応する前記抽出条件に従って、指定された前記抽出元の指定された前記ビット位置から、前記演算データとして、前記ビット値を抽出することを特徴とする請求項２記載のＩ／Ｏデバイス。
【請求項４】
前記インターフェイス部は、  他の全てのＩ／Ｏデバイスから前記入力情報と前記出力情報とを受信したときに、同期信号を前記演算データ抽出部に出力し、  前記演算データ抽出部は、  前記同期信号を入力したときに、前記演算データを前記演算部に出力することを特徴とする請求項１〜３のいずれかに記載のＩ／Ｏデバイス。
【請求項５】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラにおいて、  前記複数のＩ／Ｏデバイスの各Ｉ／Ｏデバイスは、  前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他のＩ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、  複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、  前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って、前記演算データを抽出する演算データ抽出部と、  前記演算データ抽出部が抽出した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部とを備えたことを特徴とするプログラマブルロジックコントローラ。
【請求項６】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスが行う演算方法において、  インターフェイス部が、  前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他のＩ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信し、  パラメータ部が、  複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納し、  演算データ抽出部が、  前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力し、  演算部が、  前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行することを特徴とする演算方法。
【請求項７】
前記パラメータ部は、さらに、  前記演算処理による演算結果を出力する出力タイミングと前記演算処理による演算結果の出力継続時間とを指定する出力期間情報を格納し、  前記Ｉ／Ｏデバイスは、さらに、  前記演算部によって並列に実行された前記複数の演算処理のそれぞれの前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力するそれぞれの前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力したそれぞれの前記演算結果を出力する出力期間決定部を備えたことを特徴とする請求項１〜４のいずれかに記載のＩ／Ｏデバイス。
【請求項８】
前記パラメータ部は、さらに、  前記出力期間決定部から出力されるそれぞれの前記演算結果を用いて行う演算処理を定義する演算定義情報を格納し、  前記Ｉ／Ｏデバイスは、さらに、  前記出力期間決定部から出力されるそれぞれの前記演算結果を入力し、前記パラメータ部に格納された前記演算定義情報に従って、入力した前記演算結果を用いた前記演算処理を実行する第２演算部を備えたことを特徴とする請求項７記載のＩ／Ｏデバイス。
【請求項９】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスにおいて、  前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他の前記Ｉ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、  演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータと、前記演算処理による演算結果を出力する出力タイミングと前記演算処理による演算結果の出力継続時間とを指定する出力期間情報とを格納するパラメータ部と、  前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、  前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記演算処理の方式に従って、前記演算処理を実行する演算部と、  前記演算部の前記演算処理による前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力する前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力した前記演算結果を出力する出力期間決定部とを備えたことを特徴とするＩ／Ｏデバイス。
【請求項１０】
前記パラメータ部は、  複数の演算処理の方式を格納し、  前記演算部は、  前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記演算処理を実行し、  前記出力期間決定部は、  前記演算部によって実行された前記演算処理の前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力する前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力した前記演算結果を出力することを特徴とする請求項９記載のＩ／Ｏデバイス。
【発明の詳細な説明】
【技術分野】
【０００１】  この発明は、プログラマブルロジックコントローラに使用されるＩ／Ｏデバイスに関する。
【背景技術】
【０００２】  図１は、ＣＰＵデバイス１０と複数（３台）のＩ／Ｏデバイスとが、Ｉ／Ｏバス９９で接続されたＰＬＣ１０００（プログラマブルロジックコントローラ）である。Ｉ／Ｏデバイス１００−１〜１００−３の３台がＣＰＵデバイス１０に接続されており、３台の構成は、同じである。図１のように接続されたＰＬＣ１０００におけるＩ／Ｏデバイス間の従来の入出力処理は、まず、ＣＰＵデバイス１０が各Ｉ／Ｏデバイスの「入力端子情報」を収集（入力）する。ここで「入力端子情報」とは、各Ｉ／Ｏデバイスの入力端子１７０−１へ入力される情報である。ＣＰＵデバイス１０は、収集した「入力端子情報」を用いて演算処理を行い、その演算結果をＩ／Ｏデバイスに配送（出力）する。配送される演算結果は、例えば、どのＩ／Ｏデバイスのための演算結果であるかが示されている。そして、自己の演算結果が配送されたＩ／Ｏデバイスは、出力端子１８０−１へ演算結果を出力する。ＣＰＵデバイス１０は全てのＩ／Ｏデバイスに対してこの入出力処理を行い、また、この入出力処理を繰り返す。【０００３】  ＣＰＵデバイス１０が全てのＩ／Ｏデバイスに対する入出力処理を集中して処理しているため、Ｉ／Ｏ間の処理応答が遅くなるという課題がある。この課題に対して、特開平０７−２４４５０６（特許文献１）には、ＣＰＵデバイス１０の処理負担を軽減する方式の記載ある。また、特開２０００−２５９２０８（特許文献２）には、ＣＰＵデバイス１０を経由せずにＩ／Ｏデバイスにおいて入出力処理を行う処理方法の記載がある。【０００４】  特許文献１では、各Ｉ／Ｏデバイスに「共通メモリ」を設け、ＣＰＵデバイス１０を経由せずに各Ｉ／Ｏデバイスの入力端子情報を共通メモリ間で移動しＣＰＵデバイス１０の処理負担を軽減している。しかし、入力端子情報を一旦共通メモリに格納する構成のため、複数のＩ／Ｏデバイス間の入出力処理を行う場合にメモリから一度に複数のいくつものデータを読み出すことができない。このため、入出力処理を並列に処理することができず処理に時間がかかっていた。また、各Ｉ／Ｏデバイスの入力端子情報を全て共通メモリに格納するため、Ｉ／Ｏデバイス間の入出力処理に用いないデータまでも格納することがあり、Ｉ／Ｏデバイスの数が増えるにしたがって必要以上にメモリを実装していた。【０００５】  特許文献２においては、他のＩ／Ｏデバイスと自己のＩ／Ｏデバイスの情報を関連付けたマッピングテーブルを格納するコネクションデータベースと、その格納されたマッピングテーブルに基づいてデータ処理するＭＰＵを設け、各Ｉ／Ｏデバイスの入力端子情報を各Ｉ／Ｏデバイス間で送受信しＣＰＵデバイス１０を経由せずにＩ／Ｏデバイスにおいて入出力処理を行っている。しかし、入力端子情報を受信したコネクションデータごとにＭＰＵがコネクションデータベースに格納されたマッピングテーブルを参照するため、一度に複数のデータを参照できず入出力処理を並列に処理することができない。さらに、入力端子情報に対して演算処理を行うにあたり、作業データをメモリに格納しＭＰＵで処理する構成のため、複数のデータに対して並列に処理することができず、処理に時間がかかっていた。また、Ｉ／Ｏデバイス間の���出力処理を行うにあたりＭＰＵやメモリを必要としているためコスト高となっていた。  また、ＰＬＣのＩ／Ｏデバイスの出力に対しては、ディレイを付加して出力タイミングを遅らせたい場合や、出力値を保持し継続して出力し続けたい場合がある。ディレイ付加の使用法としては、入力に基づく演算が成立した際に、ある処理（例えば退避処理）が完了するまで、外部へ通知したくない場合が挙げられる。値保持の使い方としては、演算が成立した際に、ある処理（例えば退避処理）が完了するまで、外部へ通知し続けたい場合が挙げられる。  特許文献３においては、データの授受の高速化と効率化のため、Ｉ／Ｏデバイスにおいてセンサ等との入出力をデータベースに保持し、テーブルで定義されたタイミングで出力することが開示されている。しかしながら、ディレイ付加や出力値保持の記載や、機器の緊急エラー信号の入力後に、複数の機器の緊急停止順序に従って停止処理を行うような連続的動作を、演算結果にディレイを付けて順に行う記載はない。さらに、特許文献３はデータベースを使用したシステムである。よって、特許文献３は、出力タイミングの条件に適合した出力があるかどうかを、出力の各々に対して、時間を計測し対応テーブルを参照しデータベースを参照するということを繰り返すことによって確認するシーケンシャル処理である。このため、特許文献３では、正確な出力タイミングが実現できないという課題がある。また、データベースを使用したシステムであるので、回路規模が大きくなるという課題がある。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特開平０７−２４４５０６号公報
【特許文献２】特開２０００−２５９２０８号公報
【特許文献３】特開２０１０−２３１４０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】  ＣＰＵデバイス１０を経由せずにＩ／Ｏデバイス間の入出力処理を行う従来の方法は、各Ｉ／Ｏデバイスの入力端子情報を各Ｉ／Ｏデバイス間で送受信する際に、各Ｉ／Ｏデバイスの入力端子情報を一旦メモリに格納し（特許文献１）、あるいは入力端子情報を受信したコネクションデータごとにＭＰＵがコネクションデータベースに格納されたマッピングテーブルを参照（特許文献２）した。そのため、複数のデータに対して入出力処理を並列に処理することができず処理に時間がかかるという課題があった。また、必要以上にメモリを実装する構成であたり、ＭＰＵを必要とするなどコストが高いという課題があった。【０００８】  この発明は、Ｉ／Ｏデバイス内に入力端子情報を格納するためのメモリやＭＰＵを設けることなく、複数のデータに対して入出力処理を並列に処理できるようにすることにより、Ｉ／Ｏデバイス間の入出力処理の高速化を低コストで実現することを目的とする。
【課題を解決するための手段】
【０００９】  この発明のＩ／Ｏデバイスは、  ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスにおいて、  前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他のＩ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、  複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、  前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、  前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部とを備えたことを特徴とする。
【発明の効果】
【００１０】  ＰＬＣのＩ／Ｏデバイスにおいて、複数のデータに対して入出力処理の並列処理を可能にし、Ｉ／Ｏデバイス間の入出力処理の高速化を低コストで実現する。
【図面の簡単な説明】
【００１１】
【図１】実施の形態１のＰＬＣの構成図。
【図２】実施の形態１のＩ／Ｏデバイス１００の構成図。
【図３】実施の形態１の演算データ抽出部１５０のブロック図。
【図４】実施の形態１の演算部１６０の構成例を示すブロック図。
【図５】実施の形態１のＩ／Ｏデバイス１００−１のパラメータ設定を示す図。
【図６】実施の形態１のＩ／Ｏデバイス１００−２のパラメータ設定を示す図。
【図７】実施の形態１のＩ／Ｏデバイス１００−３のパラメータ設定を示す図。
【図８】実施の形態２の演算データ抽出部１５０−２のブロック図。
【図９】実施の形態２の演算データ抽出部１５０−２の動作を示すタイミングチャート。
【図１０】実施の形態３のＩ／Ｏデバイス１００の構成図。
【図１１】実施の形態３のディレイ付加・保持部１９０、パラメータ部１４０のブロック図。
【図１２】実施の形態３のＡＮＤ０、ディレイ付加部１、保持部１の系列を示す図。
【図１３】実施の形態３のディレイ動作を示すタイミングチャート。
【図１４】実施の形態３の保持動作を示す別のタイミングチャート。
【図１５】実施の形態３のディレイ及び保持動作を示すタイミングチャート。
【図１６】実施の形態３のディレイ及び保持動作の効果を示すタイミングチャート。
【図１７】実施の形態４のＩ／Ｏデバイス１００の構成図。
【図１８】実施の形態５のディレイ付加・保持部１９０−５、パラメータ部１４０のブロック図。
【図１９】実施の形態５のディレイ及び保持動作を示すタイミングチャート。
【図２０】実施の形態６のＩ／Ｏデバイス１００の構成図。
【発明を実施するための形態】
【００１２】  実施の形態１．（従来の入力処理）  背景技術で説明した、従来の入力出力処理における、「入力処理」、「出力処理」は以下の意味である。入力処理とは、ＣＰＵデバイス１０が各Ｉ／Ｏデバイスから入力端子情報を収集し、演算を実施する処理である。出力処理とは、ＣＰＵデバイス１０が演算結果をＩ／Ｏデバイスに配送し、自己の演算結果を配送されたＩ／Ｏデバイスが、出力端子から演算結果を出力する処理である。
【００１３】（実施の形態１，２の入力処理）  また、以下の実施の形態１，２で説明する「Ｉ／Ｏデバイス間で特別に高速に入出力処理を行う場合」の入出力処理における、「入力処理」、「出力処理」は以下の意味である。入力処理とは、図１に示す一つのＩ／Ｏデバイス１００−１に着目した場合に、Ｉ／Ｏデバイス１００−１が、他のＩ／Ｏデバイス１００−２、１００−３から入力端子情報及び出力端子情報を収集し、さらに、Ｉ／Ｏデバイス１００−１自身の入力端子情報及び出力端子情報をも用いて演算を実施する処理である。また出力処理とは、Ｉ／Ｏデバイス１００−１が演算結果を自己の出力端子１８０−１から出力する処理である。Ｉ／Ｏデバイス１００−２，１００−３もＩ／Ｏデバイス１００−１と対等であり、同様の「入出力処理」を行う。
【００１４】  実施の形態１のＰＬＣ（プログラマブルロジックコントローラ）を説明する。実施の形態１のＰＬＣの構成は図１と同じ構成とする。つまり実施の形態１のＰＬＣでは、各Ｉ／Ｏデバイス及びＣＰＵデバイス１０の接続関係は図１と同じとする。しかし、各Ｉ／Ｏデバイス及びＣＰＵデバイス１０の動作が異なる。図２は、実施の形態１のＰＬＣ１０００におけるＩ／Ｏデバイス１００の構成図である。なお、図１ではＩ／Ｏデバイス１００は３台あり、これらをＩ／Ｏデバイス１００−１〜１００−３として区別している。各Ｉ／Ｏデバイスの構成は同じとする。また、区別の必要がない場合は、Ｉ／Ｏデバイス１００あるいはＩ／Ｏデバイスと記載する。（１）Ｉ／ＯバスＩ／Ｆ部１１０は、Ｉ／Ｏバス９９とのインターフェイスである。Ｉ／ＯバスＩ／Ｆ部１１０は、ＣＰＵデバイス１０とのデータの送受信や、Ｉ／Ｏデバイス間のデータの送受信の制御を行う。以下、Ｉ／ＯバスＩ／Ｆ部１１０は、簡略化してＩ／Ｆ部１１０と記す。（２）送信部１２０は、Ｉ／Ｏデバイスの入力信号（入力端子１７０−１から入力）や出力信号（出力端子１８０−１から出力）を、Ｉ／Ｆ部１１０を経由してＩ／Ｏバス９９に送る。また、受信部１３０がＩ／Ｆ部１１０を経由してＣＰＵデバイス１０から読み出し要求を受信した際に、送信部１２０は、要求に応答するデータをＣＰＵデバイス１０へ送信する。また、各Ｉ／Ｏデバイスは、いずれも優劣なく、定期的または送信可能なタイミングで、他のＩ／Ｏデバイス全てに対して自身の「入力信号や出力信号」を送信する。（３）受信部１３０は、Ｉ／Ｏバス９９からＩ／Ｆ部１１０を経由して、データを受信する。受信部１３０は、Ｉ／Ｏデバイスの出力信号に対しての書込み（図２のＣＰＵ更新データ）要求の際や、Ｉ／Ｏデバイス内にパラメータを設定（後述する）するときに、ＣＰＵデバイス１０からデータを受信する。また、受信部１３０は、各Ｉ／Ｏデバイスから送信された入力信号や出力信号を受信する。（４）パラメータ１４０部は、パラメータを格納する。パラメータとは、Ｉ／Ｏデバイス間の入出力処理を行うために、他のＩ／Ｏデバイスから受信した「入力信号や出力信号」や、後述の図２に示す「自局入力、自局出力」から、演算部１６０による演算に使うデータのみを抽出するための選択情報である。また、パラメータ部１４０は、演算の種類を選択するパラメータ（演算処理の設定情報）も格納する。（５）演算データ抽出部１５０は、パラメータ部１４０に設定された選択情報（パラメータ）に従って、他のＩ／Ｏデバイスから受信した「入力信号や出力信号」（受信データ）、あるいは「自局入力、自局出力」から、演算部１６０の演算に使うデータのみを抽出し、レジスタ（図３で後述）に保持する。他のＩ／Ｏデバイスから受信した「入力信号や出力信号」、あるいは「自局入力、自局出力」は、いずれも、複数のビットからなるビット情報である。（６）演算部１６０は、演算データ抽出部１５０によって抽出されたデータに対して演算を行う。本実施の形態１の演算部１６０は、２入力または１入力の論理演算回路を複数実装した構成のもので説明するが、一例である。図４には、演算部１６０の例として、２入力のＡＮＤ���路を３２個実装した構成を示した。  演算部１６０は、一定の入力に対して特定の値を出力するようにプログラムされたＥＰＲＯＭや、読み書き可能な不揮発性メモリなどで構成してもよい。なお、不揮発性メモリへの読み書きは、ＣＰＵデバイス１０によりパラメータ部１４０を経由して行うものとする。（７）入力部１７０は、外部のデータを入力信号で入力する。（８）出力部１８０は、演算部１６０からの演算結果データと、受信部１３０からのＣＰＵデバイス１０による書込みデータ（ＣＰＵ更新データ）を、外部へ出力信号として出力する。出力部１８０は、演算部１６０及び受信部１３０からの更新要求があった際に、出力する値を各部からのデータに更新する。
【００１５】  図３は、演算データ抽出部１５０と、演算データ抽出部１５０に関連するパラメータ部１４０の内部を示した構成図である。
【００１６】（演算データ抽出部１５０）（１）「レジスタ１〜レジスタＮ」は、他のＩ／Ｏデバイスから受信した入力信号や出力信号から演算に使うデータのみを抽出したデータを格納する。（２）「書込み制御部１〜書込み制御部Ｎ」は、他のＩ／Ｏデバイスから「入力信号や出力信号」（受信データ）を受信した際に、レジスタ１〜レジスタＮに、抽出したデータの書込み制御を行う。他のＩ／Ｏデバイスから受信データを受信した際に、「受信書込み信号」はイネーブルとなる。送信元のＩ／Ｏデバイスを識別する受信局番と、パラメータ部１４０に設定された選択局番（抽出元）とが一致したとき、書込み制御部は、抽出されたデータをレジスタに書込む。また、書込み制御部は、パラメータ部１４０に設定された選択局番が自Ｉ／Ｏデバイスを示す自局番と一致する場合は、受信書込み信号の値に関係なく抽出されたデータをレジスタに書込む。（３）第１の選択部１５１（１）〜１５１（Ｎ）、第２の選択部１５２（１）〜１５２（Ｎ）は、それぞれ、選択種別１〜Ｎ、データ位置１〜Ｎのパラメータに従って、データを選択する。第１の選択部、第２の選択部は例えばマルチプレクサで実現される。
【００１７】（パラメータ部１４０）（１）「選択種別１〜選択種別Ｎ」は、演算データとして使う抽出データが、自局の入力信号（自局入力Ａ）や出力信号（自局出力Ｂ）か、他のＩ／Ｏデバイスから入力信号（他局入力Ｃ）や出力信号（他局出力Ｄ）かを示すパラメータを格納する。（２）「データ位置１〜データ位置Ｎ」は、入力信号や出力信号が複数ビットある場合に、どのビット位置のデータを演算データとして使うかを示すパラメータを格納する。（３）「選択局番１〜選択局番Ｎ」は、何れの局番のＩ／Ｏデバイスの入力信号や出力信号を演算データとして使うかを示すパラメータを格納する。（４）「自局番」は、自Ｉ／Ｏデバイスを示す局番のパラメータを格納する。（５）「演算処理１４１」は、図５〜図７に示す演算処理が設定（演算出力０、演算出力１等）される。
【００１８】（サブ抽出部）  図３において、第１の選択部１５１（１）、第２の選択部１５２（１）、レジスタ１は、サブ抽出部（１）を構成する。第１の選択部１５１（２）、第２の選択部１５２（２）、レジスタ２は、サブ抽出部（２）を構成する。同様に、第１の選択部１５１（Ｎ）、第２の選択部１５２（Ｎ）、レジスタＮは、サブ抽出部（Ｎ）を構成する。このように、演算データ抽出部１５０は、それぞれが演算データを抽出する複数のサブ抽出部を備える。パラメータ部１４０は、図３に示すように、サブ抽出部ごとに、サブ抽出部に対応する抽出条件を格納している。それぞれのサブ抽出は、対応するパラメータに従って、演算入力データを抽出する。
【００１９】（演算部１６０の構成）  図４は、演算部１６０の構成例を示すブロック図である。図４で、Ｒ（１）等はレジスタである。図４の演算部１６０は、２入力のＡＮＤ回路を３２個実装した構成（Ｎ＝３２）である。各Ｉ／Ｏデバイスは、最大３２本の入力信号線（入力端子１７０−１）と、最大３２本の出力信号線（出力端子１８０−１）があるものとする。これに対応して、図４では、演算部１６０は、２入力、１出力のＡＮＤ回路を３２個実装する。ＡＮＤ回路０〜３１の合計３２の出力が３２本の出力信号線に対応する。図４に示すように、演算データ抽出部１５０におけるレジスタの個数は、６４個である。これは、ＡＮＤ回路の２入力のいずれかが、いずれかのレジスタに対応するからである。つまり、レジスタの個数Ｎは、「ＡＮＤ回路の個数×ＡＮＤ回路の入力数＝３２×２＝６４」である。６４個（Ｎ＝６４）のレジスタに対応して、第１の選択部１５１（Ｎ）、第２の選択部１５２（Ｎ）、書込み制御部Ｎも、６４個（Ｎ＝６４）あるのは当然である。なお、これは演算部１６０の構成を説明するための一例である。演算部１６０は、ＡＮＤ回路とＯＲ回路との両方で構成されても良いし、どのような論理回路を用いても構わない。また、図４の例では一つレジスタの値は、一つのＡＮＤ回路のみに対応したが、一つレジスタの値が、複数の論理回路に使用されても良い。
【００２０】  次に動作について説明する。通常の「入出力処理」では、背景技術で述べた処理と同様に、ＣＰＵデバイス１０は、各Ｉ／Ｏデバイスの入力端子情報を収集して演算処理を行い（入力処理）、その演算結果を出力先のＩ／Ｏデバイスに配送する（出力処理）。演算結果を配送されたＩ／Ｏデバイスは、演算結果を、出力端子１８０−１へ出力する。
【００２１】（パラメータの設定）  Ｉ／Ｏデバイス間で特別に高速に入出力処理を行う場合は、入出力処理を行う前に、あらかじめ、ＣＰＵデバイス１０が、各Ｉ／Ｏデバイス１００のパラメータ部１４０に、Ｉ／Ｏデバイス間の入出力処理を行うためのパラメータを設定する。ＣＰＵデバイス１０は、パラメータとして、Ｉ／Ｏデバイス間の入出力処理で用いる演算データの選択情報や、演算処理（図５の演算出力０、演算出力１など）をパラメータ部１４０の演算処理１４１に設定する。なお、後述する図５〜図７では、演算出力０、演算出力１の２通りを示しているが、図４のように、３２個のＡＮＤ回路が使用される場合は、各ＡＮＤ回路に演算出力が設定される。つまり演算出力０〜演算出力３１の３２個の演算出力がパラメータ部１４０の演算処理１４１に設定されることとなる。  演算出力０〜演算出力３１の３２個の演算出力が、３２本の出力信号線に対応する。
【００２２】  図５〜図７は、Ｉ／Ｏデバイス１００−１〜Ｉ／Ｏデバイス１００−３に設定されるパラメータ例を示す。なお、図４の説明で述べたように、各Ｉ／Ｏデバイスは、最大３２本の入力信号線（入力端子１７０−１）と、最大３２本の出力信号線（出力端子１８０−１）があるものとする。
【００２３】  パラメータ設定後、ＰＬＣ１０００では、通常のＰＬＣにおける入出力処理に移行する。（１）ＣＰＵデバイス１０による「通常の入出力処理」では、ＣＰＵデバイス１０が、Ｉ／Ｏデバイスの入力信号の情報を、Ｉ／ＯデバイスのＩ／Ｆ部１１０を経由して収集する。（２）ＣＰＵデバイス１０は、収集したデータ（入力信号）から演算処理を行い、その演算結果を出力先のＩ／Ｏデバイスに、そのＩ／ＯデバイスのＩ／Ｆ部１１０及び受信部１３０を経由して出力する。Ｉ／Ｏデバイスの受信部１３０が、ＣＰＵデバイス１０による出力更新を受けた際には、つまり受信部１３０がＣＰＵデバイス１０から演算結果を受信した際には、出力部１８０は、ＣＰＵデバイス１０から受信したデータ（演算結果）を、出力端子１８０−１に出力する。
【００２４】  Ｉ／Ｏデバイス間で高速に行う入出力処理では、各Ｉ／Ｏデバイスが、優劣なく、定期的または送信可能なタイミングで、Ｉ／Ｏバス９９のバス権を獲得し、他のＩ／Ｏデバイス全てに、自局の「入力信号と出力信号」のデータを送信する。なお、ＣＰＵデバイス１０のＩ／Ｏバスアクセスと競合した場合は、ＣＰＵデバイス１０にバス権を優先的に与えるものとする。
【００２５】（Ｉ／Ｏデバイス１００−１）  Ｉ／Ｏデバイス１００−１は、Ｉ／Ｏデバイス１００−２とＩ／Ｏデバイス１００−３とから、それぞれの入力信号及び出力信号を順次受信する。入力信号（入力情報）とは、例えばＩ／Ｏデバイス１００−２について着目した場合には、Ｉ／Ｏデバイス１００−１が、Ｉ／Ｏデバイス１００−１の自局入力（図２）に相当するＩ／Ｏデバイス１００−２の自局入力を、Ｉ／Ｏバス９９経由で受信する場合である。同様に出力信号（出力情報）とは、Ｉ／Ｏデバイス１００−２について見た場合には、Ｉ／Ｏデバイス１００−１が、Ｉ／Ｏデバイス１００−１の自局出力（図２）に相当するＩ／Ｏデバイス１００−２の自局出力を、Ｉ／Ｏバス９９経由で受信する場合である。Ｉ／Ｏデバイス１００−３についても同様である。Ｉ／Ｏデバイス１００−１が、Ｉ／Ｏデバイス１００−２から入力信号を受信した際には、図３の「受信データ」である「他局入力Ｃ」にＩ／Ｏデバイス１００−２の「入力信号」が入力される。また、この場合、「受信局番」に「２」が入力され、受信書込み信号がイネーブルになる。
【００２６】（演算入力データ１）  レジスタ１の出力となる演算入力データ１（演算データ）に対するパラメータ設定（選択種別、選択局番、データ位置）は、図５に示すように、選択種別＝他局入力、選択局番＝２、データ位置＝３、と設定されている。このため、第１の選択部１５１（１）は、Ｉ／Ｏデバイス１００−２からの「入力信号」を選択し、第２の選択部１５２（１）は、入力信号のビット３を選択する。受信局番＝選択局番＝２であるので、受信書込みもイネーブルである。このため、書込み制御部１は、抽出されたビット３のデータをレジスタ１に書込む。従って、演算入力データ１は、Ｉ／Ｏデバイス１００−２からの入力信号のビット３の値になる。
【００２７】  同様に、演算入力データ３及び演算入力データ４も、図５において、選択種別＝他局入力、選択局番＝２となっているので、それぞれＩ／Ｏデバイス１００−２からの入力信号のビット５やビット６の値になる。演算入力データが更新されたことにより、演算部１６０は、パラメータ設定された「演算処理１４１」に従い演算結果を出力する。
【００２８】  Ｉ／Ｏデバイス１００−１の演算出力０は、図５に示すように、「演算入力データ１  ＡＮＤ  演算入力データ２」による演算結果となる。  また、演算出力１は、「演算入力データ３  ＯＲ  演算入力データ４」による演算結果となる。なお、図４の構成図では演算出力１は、「演算入力データ３  ＡＮＤ  演算入力データ４」であるが、図５では「ＯＲ」の場合を示した。
【００２９】  Ｉ／Ｏデバイス１００−１の出力部１８０は、演算部１６０から演算結果の出力更新を受けた際には、この演算結果を出力する。
【００３０】  従来では複数のビットの入力信号を受信しても、Ｉ／Ｏデバイス間の入出力処理を並列に処理することができず時間がかかっていた。しかし、以上のように複数のデータ（レジスタ１〜Ｎから出力されるデータ）に対して、Ｉ／Ｏデバイス間の入出力処理を並列に処理することが可能となる。つまり、図４に例示したように、複数のデータ（レジスタ１〜Ｎから出力されるデータ）に対して、３２個のＡＮＤ回路による並列処理が可能になる。よって、処理が高速化する効果がある。
【００３１】  また、Ｉ／Ｏデバイス内に演算に用いないデータを格納するメモリ（特許文献１）や、ＭＰＵ（特許文献２）を設ける必要がない。このため、Ｉ／Ｏデバイス間の入出力処理を低コストで実現できる。
【００３２】（Ｉ／Ｏデバイス１００−２）  次にＩ／Ｏデバイス１００−２は、Ｉ／Ｏデバイス１００−１と、Ｉ／Ｏデバイス１００−３から、それぞれの「入力信号と出力信号」を順次受信する。Ｉ／Ｏデバイス１００−２は、Ｉ／Ｏデバイス１００−３から出力信号を受信した場合は、この出力信号は、他局出力（図３）に入力される。また、受信局番に「３」が入力され、受信書込みがイネーブルになる。演算入力データ３に対するパラメータ設定（選択種別、選択局番、データ位置）は、図６のように設定されている。このため、演算入力データ３の第１の選択部１５１（３）３は、「選択種別」により、他局出力であるＩ／Ｏデバイス１００−３からの出力信号を選択する。「データ位置」は０のため、第２の選択部１５２（３）は、出力信号のビット０を選択する。「受信局番」が「３」であり選択局番も３のため一致しており、受信書込みもイネーブルである。このため、書込み制御部３は、抽出されたビット０のデータを、レジスタ３に書込む。従って、演算入力データ３は、Ｉ／Ｏデバイス１００−３からの出力信号のビット０の値になる。図６により、Ｉ／Ｏデバイス１００−２の演算出力１は、演算入力データ３の値となり、演算部１６０は演算結果を出力する。
【００３３】  以上のように、他のＩ／Ｏデバイスの出力信号に対しても入力信号と同様にＩ／Ｏデバイス間の入出力処理を並列に処理することができる。
【００３４】（Ｉ／Ｏデバイス１００−３）  次にＩ／Ｏデバイス１００−３は、Ｉ／Ｏデバイス１００−２から「入力信号」を受信し、自局（Ｉ／Ｏデバイス１００−３自身）から「入力信号と出力信号」を受信する。Ｉ／Ｏデバイス１００−３が自局から受信した入力信号は、「自局入力Ａ」（図３）に入力され、出力信号は「自局出力Ｂ」に入力される。
【００３５】（演算入力データ１）  演算入力データ１に対するパラメータ設定は、図７のように、選択種別＝自局入力、選択局番＝３、データ位置＝１と設定されている。  このため、第１の選択部１５１（１）は、自局入力であるＩ／Ｏデバイス１００−３からの入力信号を選択し、第２の選択部１５２（１）は、入力信号のビット１を選択する。自局番が３であり選択局番も３で一致しているため、書込み制御部１は、抽出されたビット１のデータを、レジスタ１に書込む。従って、演算入力データ１は、Ｉ／Ｏデバイス１００−３からの入力信号のビット１の値になる。
【００３６】（演算入力データ２）  同様に演算入力データ２においては、Ｉ／Ｏデバイス１００−３からの出力信号のビット１が抽出される。自局番が３であり選択局番も３で一致している。よって、書込み制御部２は、抽出されたビット１のデータを、レジスタ２に書込む。Ｉ／Ｏデバイス１００−３の演算出力０は、「演算入力データ１  ＯＲ  演算入力データ２」による演算結果を出力する。
【００３７】（演算入力データ３，４）  演算入力データ３では、Ｉ／Ｏデバイス１００−２から「入力信号」（他局入力）を受信した際には、「他局入力」から入力される入力信号のビット４の値になる。また、演算入力データ４では、Ｉ／Ｏデバイス１００−３の自局から受信した入力信号は「自局入力Ａ」から入力され、入力信号のビット０の値になる。  Ｉ／Ｏデバイス１００−３の演算出力１は、「演算入力データ３  ＡＮＤ  演算入力データ４」による演算結果を出力する。
【００３８】  以上のように、自局のＩ／Ｏデバイスの入力信号や出力信号に対しても、他のＩ／Ｏデバイスからの入力信号と同様に、入出力処理を並列に処理できる。また、Ｉ／Ｏデバイス１００−３の入力信号のビット０は、Ｉ／Ｏデバイス１００−１〜３の全てのＩ／Ｏデバイスで演算入力データとしている。このＩ／Ｏデバイス１００−３の入力信号のビット０のようなビットを演算入力データに指定し、各Ｉ／Ｏデバイスに入出力処理させることにより、各Ｉ／Ｏデバイスの停止や起動といった動作を高速に制御することができる。
【００３９】  実施の形態２．  図８、図９を参照して実施の形態２を説明する。以上の実施の形態１では、演算データ抽出部１５０が他のＩ／Ｏデバイスや自局のＩ／Ｏデバイスから入力した入力信号や出力信号のデータを、すぐに演算部１６０に伝えていた。しかし、異なるＩ／Ｏデバイスのデータを入力とする演算処理においては、Ｉ／Ｏデバイスによってデータを受信するタイミングが異なるため、各演算入力データの更新が同期しない。Ｉ／Ｏデバイス間において非同期で制御する入出力処理の場合は実施の形態１にて問題ないが、Ｉ／Ｏデバイス間で同期して制御する入出力処理では期待しない演算結果を出力する。そこでＩ／Ｏデバイス間の入力データに対して同期をとる実施形態を示す。
【００４０】  図８は、抽出するデータに同期制御を加えた演算データ抽出部１５０−２と、演算データ抽出部１５０−２に関連するパラメータ部１４０の内部を示した構成図である。図８は、図３に対して演算データ抽出部１５０−２の構成が異なる。演算データ抽出部１５０−２は、図３の演算データ抽出部１５０に対して、同期信号Ｓと、送信信号Ｔと、レジスタ１ａ〜Ｎａが追加された。
【００４１】  レジスタ１ａ〜レジスタＮａは、Ｉ／Ｆ部１１０からの同期信号Ｓがイネーブルになった際にレジスタ１〜レジスタＮに格納したデータを格納する。書込み制御部１〜書込み制御部Ｎは、他のＩ／Ｏデバイスから入力信号や出力信号（受信データ）を受信した際にレジスタ１〜レジスタＮに抽出したデータの書込み制御を行う。他のＩ／Ｏデバイスからデータを受信した際に受信書込み信号はイネーブルとなり、送信元のＩ／Ｏデバイスを識別する受信局番とパラメータ部１４０に設定された選択局番が一致したとき、抽出したデータをレジスタに書込む。また、パラメータ部１４０に設定された選択局番が自Ｉ／Ｏデバイスを示す自局番と一致する場合はＩ／Ｆ部１１０からの送信信号Ｔがイネーブルになった際に抽出したデータをレジスタに書込む。
【００４２】  図２のＩ／Ｏデバイスの構成図において、実施の形態２のＩ／Ｆ部１１０は、他のＩ／Ｏデバイスへ「入力信号と出力信号」のデータを送信した際に送信信号Ｔをイネーブルにする。また、自局から他のＩ／Ｏデバイスへ送信し、さらに全てのＩ／Ｏデバイスからデータを一通り受信した際に同期信号Ｓをイネーブルにする。各Ｉ／Ｏデバイスが均等にＩ／Ｏバス９９のバス権を獲得し、他のＩ／Ｏデバイス全てに対して送信する。このため、Ｉ／Ｆ部１１０は、一定の期間内に全てのＩ／Ｏデバイスから一通りのデータ転送があったことを確認することができる。
【００４３】  次に動作について説明する。図９は、各Ｉ／Ｏデバイスが他のＩ／Ｏデバイスへ入力信号と出力信号のデータを送信し、他のＩ／Ｏデバイスがデータを受信するタイミングチャートを示す。また、図９は、同期信号Ｓや演算入力データの更新に対するタイミングチャートを示している
【００４４】  図９に示すように、Ｉ／Ｏデバイス１００−１からＩ／Ｏデバイス１００−２、Ｉ／Ｏデバイス１００−３と順次各Ｉ／Ｏデバイスのデータを送受信する。Ｉ／Ｏデバイス１００−１がデータ１ｂを送信した際に、Ｉ／Ｏデバイス１００−１では送信信号Ｔがイネーブルになり、選択局番がＩ／Ｏデバイス１００−１に設定されたレジスタは送信したデータに更新する。Ｉ／Ｏデバイス１００−２やＩ／Ｏデバイス１００−３では、データ１ｂを受信した際に受信書込みがイネーブルになり、選択局番がＩ／Ｏデバイス１００−１に設定されたレジスタは受信したデータに更新する。Ｉ／Ｏデバイス１００−２やＩ／Ｏデバイス１００−３がそれぞれデータ２ｂ、データ３ｂを送信した際も同様に、送信したＩ／Ｏデバイスでは送信信号Ｔがイネーブルになり、選択局番が自局番に設定されたレジスタは送信したデータに更新する。また受信したＩ／Ｏデバイスでは受信書込みがイネーブルになり、選択局番が一致したレジスタは受信したデータに更新する。
【００４５】  Ｉ／Ｏデバイス１００−３に対するデータの送受信が完了した際に全てのＩ／Ｏデバイスから一通りのデータ転送が完了する。このため、そのタイミングで同期信号Ｓがイネーブルになる。つまり、そのタイミングで各Ｉ／ＯデバイススのＩ／Ｆ部１１０は、同期信号Ｓをイネーブルにする。同期信号Ｓがイネーブルになることにより、演算入力データは演算入力データ１ａ〜演算入力データＮａから新たな演算入力データ１ｂ〜演算入力データＮｂのデータに更新する。
【００４６】  以上のように同期信号ＳによりＩ／Ｏデバイス間の入力データに対して同期をとることができるため、Ｉ／Ｏデバイス間で同期して入出力処理を行うことができる。また、複数のデータに対してＩ／Ｏデバイス間の入出力処理を並列に処理することが可能なため高速に処理することができる。
【００４７】  以上の実施の形態では、ＣＰＵデバイスと複数のＩ／Ｏデバイスとを備えたプログラマブルロジックコントローラにおいて、上記各Ｉ／Ｏデバイスは、Ｉ／Ｏデバイス間の通信手段と、入出力処理で用いるデータや演算の設定情報であるパラメータを格納する記憶手段と、入出力処理に必要なデータのみを抽出する抽出手段と、入出力処理演算を行う演算手段とを有する。各Ｉ／Ｏデバイスは、受信したデータから、入出力処理に必要なデータのみを抽出した複数のデータに対して、入出力処理を並列に処理できる。
【００４８】  以上の実施の形態では、以下のＩ／Ｏデバイスを説明した。Ｉ／Ｏデバイスは、受信したＩ／Ｏデバイス間のデータに対して同期してデータを入力し入出力処理する制御手段を有する。Ｉ／Ｏデバイスは、受信したデータから入出力処理に必要なデータのみを抽出した複数のデータに対して、同期をとって入出力処理を並列に処理できる。
【００４９】  実施の形態３．  図１０は、実施の形態３のＩ／Ｏデバイス１００の構成図を示す。図１０のＩ／Ｏデバイス１００は、実施の形態１の演算部１６０（図２〜図４）の後段、あるいは実施の形態２（図８）の演算部１６０の後段に、さらに、ディレイ付加・保持部１９０を備える。
【００５０】（ディレイ付加・保持部１９０）  図１１は、図１０のＩ／Ｏデバイス１００のディレイ付加・保持部１９０と、パラメータ部１４０、演算部１６０との関係を示す図である。図１１は図４を前提としている。図１１に示すように、ディレイ付加・保持部１９０（出力期間決定部）は、演算部１６０によって並列に実行された演算結果（Ｍ１）、（Ｍ２）・・・（Ｍ３２）を入力する。ディレイ付加・保持部１９０は、入力する演算結果（Ｍ１）、（Ｍ２）・・・（Ｍ３２）の出力タイミング（後述のディレイ期間、あるいはディレイ時間ともいう）と、出力継続時間（後述の保持期間、あるいは保持時間ともいう）とを決定し、決定に従って、入力したそれぞれの演算結果（Ｍ１）、（Ｍ２）・・・（Ｍ３２）を出力する。
【００５１】（パラメータ部１４０）  パラメータ部１４０は、ディレイ付加・保持部１９０が決定するディレイ時間と保持時間とを、パラメータ（出力期間情報）として、予め格納している。図１１に示すように、パラメータ部１４０は、ディレイ値１〜３２を、それぞれの演算結果（Ｍ１）等のディレイ時間として格納している。また、パラメータ部１４０は、保持期間１〜３２を、それぞれの演算結果（Ｍ１）等の保持時間（保持期間）として格納している。例えば、「ＡＮＤ０」の演算結果（Ｍ１）に対して、ディレイ付加・保持部１９０は次のように処理する。（１）演算結果（Ｍ１）を入力すると、ディレイ付加部１は、パラメータ部１４０が格納するディレイ値１に従って、演算結果（Ｍ１）を入力した時点からディレイ値１の示すディレイ時間経過後に、演算結果（Ｍ１）を出力する。ディレイ値１はゼロ（ディレイなし）でも構わない。（２）保持部１は、ディレイ付加部１の出力である演算データ（Ｍ１）を入力すると、パラメータ部１４０の格納する保持期間１に従って、保持期間１の示す時間の間、演算結果（Ｍ１）の出力を継続する。（３）ディレイ付加・保持部１９０が演算部１６０から入力する演算データ（Ｍ２）〜（Ｍ３２）についても同様である。つまり演算データ（Ｍｉ）（ｉ＝２〜３２）については、ディレイ付加部（ｉ）と保持部（ｉ）によって遅延及び出力継続が実行される。
【００５２】  実施の形態３では、一例として、ディレイ付加部によるディレイ及び保持部による保持について、以下の条件１〜３を設ける。これらの条件を設けることで、出力信号（演算結果）を大量に保持する必要がなく、小さい回路規模で実施の形態３の効果を有するＩ／Ｏデバイス１００を実現できる。
【００５３】＜条件１：ディレイ付加部によるディレイに関する条件＞  演算結果のディレイ期間（後述のディレイ期間３０１）は、演算結果の変化を出力に反映しない。
【００５４】＜条件２：保持部による保持に関する条件＞  保持期間（後述の保持期間３０２）は、保持部は、演算結果が変化した時点で、ディレイさせることなく、すぐに変化後の演算結果の出力を開始し、変化後の演算結果を保持期間継続して出力する。
【００５５】＜条件３：ディレイ及び保持に関する条件＞  実施の形態３の方式のディレイ設定にあたっては、下記の式（１）の制限とする。        ディレイ期間（出力ディレイ）≦保持期間      （１）
【００５６】  図１３〜図１５によって、ディレイ付加部、保持部によるディレイ及び保持の具体例を説明する。なお、図１３〜図１５では、ディレイ付加部、保持部は、それぞれ以下の設定１１〜１３、設定２１〜２２の設定である。
【００５７】＜ディレイ付加部＞（設定１１）ディレイ付加部は、自身への入力の変化を契機にディレイ処理を開始する。（設定１２）ディレイ付加部は、ディレイ期間中は入力を受け付けない（上記の条件１）。（設定１３）ディレイ付加部は、ディレイ期間経過時点で、ディレイ期間開始時の入力値に対して値の変化がないときは、変化の無い入力値の出力を入力変化があるまで継続する。ディレイ期間経過時点で入力変化が有るときは、ディレイ付加部は、設定１１のとおり、入力の変化を契機にディレイ処理を開始する。
【００５８】＜保持部＞（設定２１）保持部は、自身への入力の変化を契機に、すぐに保持処理を開始する（上記の条件２）。（設定２２）保持部は、保持期間は、入力を受け付けない。（設定２３）保持部は、保持期間経過時点で入力に変化がないときは、変化の無い入力値の出力を入力変化があるまで継続する。入力変化が有るときは設定２１のとおり、保持部は、入力の変化を契機に保持処理を開始する。
【００５９】  図１２は、図１１に示す、ＡＮＤ０、ディレイ付加部１、保持部１の系列を示す図である。図１２及び以下の説明はＡＮＤ０の系列についての説明であるが、他のＡＮＤ２〜ＡＮＤ３１の系列についてもＡＮＤ０の説明は該当する。
【００６０】  図１３は、図１２のＡＮＤ演算に対して、２０ｍｓのディレイ設定（出力ディレイ２０ｍｓ）、０ｍｓの保持設定をした場合のタイミングチャートを示す。「保持期間＝０ｍｓ」とは、図１２で保持部１が存在せず、出力（Ｙ１０）がそのまま出力（Ｙ２０）として出力されるのと同じことである。図１３に示すように、ＡＮＤ演算結果のＸ３＝１は、２０ｍｓ遅延してＹ１０＝１として出力する。この場合、ＡＮＤ演算結果（Ｘ３）が１０ｍｓ後に０になっても、２０ｍｓの期間、出力Ｙ１０はそのまま１が出力される。
【００６１】  図１３を、更に詳しく説明する。（１）時間（ｔ０）  時間（ｔ０）においてディレイ付加部１の入力である演算結果（Ｘ３）が、０から１に変化する。よってディレイ付加部１は出力ディレイ＝２０ｍｓのカウントダウンを開始し、ディレイ期間３０１である２０ｍｓのカウントダウンが終了するまで「Ｘ３＝１」は出力しない。またディレイ付加部１は、カウントダウンが終了するまでのディレイ期間３０１である時間（ｔ０）〜時間（ｔ２０）の間は、入力を受け付けない。（２）時間（ｔ２０）（Ｙ１０＝１の出力開始）  カウントダウンの終了する時刻（ｔ２０）において、ディレイ付加部１は、入力である「Ｘ３＝１」を「Ｙ１０＝１」として、出力を開始する。この際、ディレイ付加部１は時間（ｔ０）〜（ｔ２０）のディレイ期間３０１は入力を受け付けない。（３）時間（ｔ２０）（Ｘ＝０の入力の受け付け）  また、時間（ｔ２０）でカウントダウンが終了する。このとき入力（Ｘ３）は前回（時間（ｔ０））のＸ３＝１からＸ３＝０になっている。よってカウントダウンが終了した時点で入力変化があるので、ディレイ付加部１はカウントダウンを開始し、カウントダウンが終了するまで「Ｘ３＝０」は出力しない。（４）時間（ｔ４０）（Ｙ１０＝０の出力開始）  カウントダウンの終了する時刻（ｔ４０）において、ディレイ付加部１は、入力である「Ｘ３＝０」を「Ｙ１０＝０」として、出力を開始する。この際、ディレイ付加部１は時間（ｔ２０）〜（ｔ４０）のディレイ期間３０１は入力を受け付けない。（５）時間（ｔ４０）（Ｘ３の入力処理）  また、時間（ｔ４０）でカウントダウンが終了する。このとき入力（Ｘ３）は前回（時間（ｔ２０））と同じＸ３＝０である。よってカウントダウンが終了した時点で入力変化がないので、ディレイ付加部１は次の入力信号（Ｘ３）の変化があるまで信号変化ディレイ処理を開始することなく、Ｙ１０＝０の出力を継続する。
【００６２】  図１４は、ＡＮＤ演算に対して０ｍｓのディレイ設定、２０ｍｓの保持設定（保持期間３０２＝２０ｍｓ）をした場合のタイミングチャートを示す。０ｍｓのディレイ設定とは、図１２でディレイ付加部１が存在せず、Ｘ３がそのままＹ１０として出力されるのと同じことである。保持部１は、パラメータ部１４０に格納された保持期間１（図１１）だけ、入力（Ｙ１０）の出力を継続する。保持期間１（図１１）は図１４では保持期間３０２が対応する。なお０ｍｓのディレイ設定なので、図１４では、Ｘ３とＹ１０とは同じである。
【００６３】（１）時間（ｔ０）  時間（ｔ０）において保持部１の入力である演算結果（Ｙ１０）が、０から１に変化する。よって保持部１は、保持期間３０２の２０ｍｓの間、「１」の出力を継続する。保持部１は保持期間３０２の間は入力を受け付けない。よって、時間（ｔ１０）で入力（Ｙ１０）が０になってもこれを受け付けず、保持部１は、保持期間３０２である２０ｍｓ（ｔ０〜ｔ２０）は、そのまま１を出力する。このように保持期間３０２は演算結果（入力（Ｙ１０））を継続して出力し、保持期間３０２の経過後に演算結果の０を受付け、その値を出力する。（２）時間（ｔ２０）  保持期間３０２の経過した時間（ｔ２０）に、保持部１は入力（Ｙ１０）を受け付ける。時間（ｔ２０）では入力（Ｙ１０）が１から０に変化している。よって保持部１は、保持期間３０２の２０ｍｓ（ｔ２０〜ｔ４０）の間、「０」の出力を継続する。（３）時間（ｔ４０）  保持期間３０２の経過した時間（ｔ４０）に、保持部１は入力（Ｙ１０）を受け付ける。時間（ｔ４０）において、入力（Ｙ１０）は時間（ｔ２０）から０のまま変化していない。よって保持部１は、時間（ｔ４０）以降の期間４０２の間、入力（Ｙ１０）の変化があるまで、現在の入力であるＹ１０＝０の出力を継続する。
【００６４】  図１５は、図１２のもとで、ＡＮＤ演算に対して出力ディレイ２０ｍｓ、保持期間を３０ｍｓの設定とした場合のタイミングチャートを示す。出力ディレイ２０ｍｓであるので、図１５はＹ１０まで図１３と同じであり、Ｙ２０のみ異なる。ディレイ設定においては、条件（３）上述した下記の式（１）を満たすものとする。ディレイ期間３０１（出力ディレイ）≦保持期間３０２      （１）式（１）の条件を満たさない場合は、保持期間が０ｍｓの場合と同じ動作になる。図１５では出力ディレイ（ディレイ値）は２０ｍｓであり、保持期間は３０ｍｓであるので上記の式（１）を満たしている。図１５のＹ２０を簡単に説明する。Ｘ１，Ｘ２，Ｘ３，Ｙ１０は図１３と同一なので説明は省力する。
【００６５】（１）時間（ｔ０）  時間（ｔ２０）において保持部１の入力である演算結果（Ｙ１０）が、０から１に変化する。よって保持部１は、保持期間３０２の３０ｍｓの間、「１」の出力を継続する（ｔ２０〜ｔ５０）。保持部１は保持期間３０２の間は入力を受け付けない。よって、時間（ｔ４０）で入力（Ｙ１０）が０になってもこれを受け付けず、保持部１は、保持期間３０２である３０ｍｓ（ｔ２０〜ｔ５０）は、そのまま１を出力する。（２）時間（ｔ５０）  保持期間３０２の経過した時間（ｔ５０）に、保持部１は入力（Ｙ１０）を受け付ける。時間（５０）では入力（Ｙ１０）が１から０に変化している。よって保持部１は、保持期間３０２の３０ｍｓ（ｔ５０〜ｔ８０）の間、「０」の出力を継続する。（３）時間（ｔ８０）  保持期間３０２の経過した時間（ｔ８０）に、保持部１は入力（Ｙ１０）を受け付ける。時間（ｔ８０）において、入力（Ｙ１０）は時間（ｔ５０）から０のまま変化していない。よって保持部１は、時間（ｔ８０）以降の期間４０２の間、入力（Ｙ１０）の変化があるまで、現在の入力であるＹ１０＝０の出力を継続する。
【００６６】  実施の形態３では、Ｉ／Ｏデバイス１００は、「自局入力、自局出力」及び「他局入力、他局出力」を対象とする演算結果に対して、ディレイ付加及び値保持を行って出力する。その際、ディレイ時間及び保持時間は、それぞれパラメータ部１４０に格納されたパラメータ（ディレイ値、保持期間）により定まる。入出力が同一のＩ／Ｏデバイスの場合は、他のデバイスと通信せず、自身であるＩ／Ｏデバイス内で演算後、ディレイ付加及び保持を行い、演算結果を出力する。入力と出力のＩ／Ｏデバイスが異なる場合は、Ｉ／Ｏデバイス間で通信し、出力側のＩ／Ｏデバイスが演算後、ディレイ付加及び保持を行い出力する。
【００６７】  図１６は、ディレイ付加部によるディレイ付加と、保持部による保持との効果を説明する図である。図１６では、「ディレイ付加及び保持」を「ディレイ付加」と記載している。上側の３つのグラフ５０１〜５０３が、実施の形態３の「ディレイ付加及び保持」が無い場合を示す。下側の３つのグラフ６０２〜６０４が、実施の形態３の「ディレイ付加及び保持」がある場合を示す。グラフ５０１はＩ／Ｏデバイス１００への入力を示す。グラフ５０２はＩ／Ｏデバイス１００の「ディレイなし」の出力を示す。グラフ５０２は、グラフ５０１に対して出力が１ｍｓ遅れている。これはデバイス間通信に要する時間である。図１６に示すように、デバイス間通信の周期は１ｍｓである。グラフ５０３はＣＰＵデバイス１０を介することによる「ディレイ付加」の出力を示す。ＣＰＵデバイス１０を介する「ディレイ付加」の場合、ＣＰＵデバイス１０との通信周期５ｍｓより早く出力できないので、Ｉ／Ｏデバイス１００の演算結果の出力タイミングは、ＣＰＵデバイス１０との通信周期５ｍｓの粒度となる。つまり、ＣＰＵデバイス１０を介する「ディレイ付加」の場合、「ディレイ無し」の出力７０１に対して、「ディレイ付加」の出力７０２は、ＣＰＵデバイス１０との通信周期５ｍｓの後である。
【００６８】  一方、実施の形態３を示すグラフ６０２〜６０４は、次の様である。グラフ６０２はグラフ５０２と同じ内容を示すので説明は省略する。グラフ６０３は、第１のディレイ設定量８０１を設定した場合の出力を示す。グラフ６０４は、第２のディレイ設定量８０２を設定した場合の出力を示す。グラフ６０３に示すように、Ｉ／Ｏデバイス１００は、ＣＰＵデバイス１０との通信周期５ｍｓより早く出力できる。つまり、出力タイミングは通信周期の粒度に限定されない。またグラフ６０４に示すように、ディレイ設定量８０１に対して異なるディレイ設定のディレイ設定量８０２を設定することで、連続的な動作を短時間で順に行うことができる。つまり図１６に示すようにディレイ設定量８０１とディレイ設定量８０１との出力８０３と出力８０４との間隔は、自由に設定できる。
【００６９】  以上のように実施の形態３のＩ／Ｏデバイス１００は、ＣＰＵデバイス１０との通信を行わずにディレイ付加・保持部１９０によってディレイ付加及び遅延ができる。このため、以下の効果がある。（１）短い時間のディレイ付加及び演算値の保持が実現できる。（２）出力側のＩ／Ｏデバイス１００でディレイ付加及び保持を行うため、出力タイミングは、通信周期の粒度に限定されない。（３）また、ディレイ付加及び保持の設定値レジスタの値は、ＣＰＵデバイス１０によって、パラメータ部１４０にパラメータとして設定するので、Ｉ／Ｏバス９９経由で変更できる。この結果、例えば、機器の緊急エラー信号が入力端子１７０−１からＩ／Ｏデバイス１００に入力された後、Ｉ／Ｏデバイスの複数の出力信号（図１２において、Ｙ１０として出力される演算結果Ｘ３）を所定の順序で変更し、複数の機器の緊急停止順序に従って、できるだけ短時間で停止処理を行うという要求に対応することができる。
【００７０】  実施の形態３のディレイ付加・保持部１９０は、図１１に示すように、Ｉ／Ｏデバイス１００の出力信号（演算結果）毎に、ディレイ用、保持用に、カウンタを有するディレイ付加部、保持部を備える。このカウンタが、ディレイ期間、保持期間をカウントダウンする。ディレイ付加部１〜３２及び保持部１〜３２は、パラメータ部１４０に格納された対応するディレイ値１〜３２、対応する保持期間１〜３２のカウントダウンが完了するまで、ディレイ及び保持を行う。この構成であれば、データベース等のためのメモリを必要とせず、構成が簡易となる。
【００７１】  実施の形態４．  図１７は、実施の形態４のＩ／Ｏデバイス１００の構成図である。実施の形態４のＩ／Ｏデバイス１００は、実施の形態３のＩ／Ｏデバイス１００において、ディレイ付加・保持部１９０の後段に、複合演算部１９５（第２演算部）を加えた構成である。図１７に示すように、実施の形態４のＩ／Ｏデバイス１００は、演算データ抽出部１５０Ａ、演算部１６０Ａ、ディレイ付加・保持部１９０Ａからなる第１系列１０１と、演算データ抽出部１５０Ｂ、演算部１６０Ｂ、ディレイ付加・保持部１９０Ｂからなる第２系列１０２とを備える。受信部１３０は、演算データ抽出部１５０Ａ，１５０Ｂに他局入力と他局出力を出力する。入力部１７０は、演算データ抽出部１５０Ａ，１５０Ｂに自局入力を出力する。出力部１８０は、演算データ抽出部１５０Ａ，１５０Ｂに自局出力を出力する。ディレイ付加・保持部１９０Ａ，１９０Ｂは、複合演算部１９５に演算結果（図１２に示す遅延、保持されたＹ２０）を出力する。複合演算部１９５は、ディレイ付加・保持部１９０Ａ，１９０Ｂから出力された演算結果を用いて演算処理を実行する。パラメータ部１４０は、演算データ抽出部１５０Ａ、１５０Ｂ等にパラメータを提供する。この場合、パラメータ部１４０は、パラメータとして、ディレイ付加・保持部１９０Ａ，１９０Ｂから出力される各演算結果を用いて行う演算処理の方式を定義する演算定義情報を格納しており、複合演算部１９５は、パラメータ部１４０の演算定義情報に従って演算を実行する。
【００７２】  複合演算部１９５は、論理和（ＯＲ）等の論理演算を行うことが可能であり、以上のように演算部１６０が演算処理を行い、ディレイ付加・保持部１９０Ａ、１９０Ｂがディレイ付加や保持を行った後に、複合演算部１９５が演算を行うことが可能である。このため、少ない回路規模で複雑な出力が得られる。
【００７３】  なお、図１７では第１系列１０１、第２系列１０２の２系列あるが、第１系列１０１のみの構成でも構わない。この場合、ディレイ付加・保持部１９０Ａからは図４に示すようにＭ（１）〜Ｍ（３２）の演算結果が出力されるので、複合演算部１９５は、これら３２個の演算結果を用いることにより、パラメータ部１４０の演算定義情報に従って演算してもよい。
【００７４】  また、実施の形態３においては、図１１に示すように「ディレイ付加部１及び保持部１」〜「ディレイ付加部３２及び保持部３２」の３２系列の場合を示したが例示である。系列は１系列でもよいし、３３系列以上でも構わない。
【００７５】  実施の形態５．  図１８、図１９を参照して実施の形態５のＩ／Ｏデバイス１００の構成を説明する。実施の形態５のＩ／Ｏデバイス１００は、実施の形態３におけるＩ／Ｏデバイス１００のディレイ付加・保持部１９０（図１１）を、図１８に示すディレイ付加・保持部１９０−５に置き換えた構成である。図１８は図１１に対応する。実施の形態３のディレイ付加・保持部１９０では、図１１に示すように、ディレイ付加部と保持部とが、独立してそれぞれカウンタを持つ構成である。これに対して実施の形態５のディレイ付加・保持部１９０−５では、図１８に示すように、ディレイ付加と保持とを、１つのカウンタで実現する。例えば図１８のサブディレイ付加・保持部１−５は、図１１のディレイ付加部１と保持部１とを併せた機能を有する。他のサブディレイ付加・保持部２−５〜３２−５についても同様である。ディレイのみ、保持のみを行う場合は実施の形態３と同じ動作であるが、ディレイ及び保持の両方を行う場合は、以下の動作となる。
【００７６】  図１９は、図１２のＡＮＤ演算に対して、出力ディレイ２０ｍｓ、保持期間３０ｍｓのディレイ設定とした場合のタイミングチャートである。このディレイ設定は図１５と同じである。図１８のサブディレイ付加・保持部１−５を例に説明する。この場合、図１２のディレイ付加部１と保持部１とがサブディレイ付加・保持部１−５となる。サブディレイ付加・保持部１−５は、図１９に示すように、ＡＮＤ０の演算結果の’１’（時間ｔ０）を２０ｍｓ遅延して出力（時間ｔ２０）し、ＡＮＤ演算結果が１０ｍｓ後（時間ｔ１０）に’０’になっても、３０ｍｓ（時間ｔ２０〜ｔ５０）は、そのまま’１’を出力する。このように、サブディレイ付加・保持部１−５は、演算結果を遅延させている期間（ディレイ期間５５１のｔ０〜ｔ２０）の演算結果の変化を受付けず、出力に反映しない。つまり、サブディレイ付加・保持部１−５は、ディレイ期間５５１（ｔ０〜ｔ１０）に入力Ｘ２に変化があっても、時間ｔ０における演算結果’１’を、ディレイ期間５５１（ｔ０〜ｔ１０）の入力Ｘ２とする。またサブディレイ付加・保持部１−５は、ディレイ期間５５１後、保持期間５５２の３０ｍｓから、ディレイ期間５５１の２０ｍｓを差し引いた時間ΔＴ＝１０ｍｓまでの間は、入力Ｘ２である演算結果を受付けない。ここでΔＴ＝保持期間５５２−ディレイ期間５５１である。つまり、図１９に示すように、ディレイ付加・保持部１−５は、時間ｔ０の入力’１’を、「ディレイ期間５５１＋ΔＴ」の期間（ｔ０〜ｔ３０）維持することになるが、この維持する入力’１’はディレイ期間５５１の経過後（ｔ２０）から出力され、その期間は「ディレイ期間５５１＋ΔＴ」＝ディレイ期間５５１＋保持期間５５２−ディレイ期間５５１＝保持期間５５２ということになる。サブディレイ付加・保持部１−５は、ディレイ期間５５１の経過後、差し引いた時間ΔＴ（この例では１０ｍｓ）が経った時点の時間ｔ３０（保持期間５５２の終了の２０ｍｓ前）において、ＡＮＤ演算結果である’０’を受付け、２０ｍｓ（保持期間５５２−ΔＴ＝ディレイ期間５５１）遅延させて時間ｔ５０で出力する。
【００７７】  ディレイ設定においては、下記の条件を満たす必要がある。ディレイ期間（出力ディレイ）≦保持期間  この条件をなくすためには、出力ディレイの設定により遅延させる値を一時的に複数保持する必要があるため、回路規模が著しく大きくなってしまう。
【００７８】  実施の形態６．  図２０は実施の形態６のＩ／Ｏデバイス１００の構成を示す図である。図２０は実施の形態４のＩ／Ｏデバイス１００の構成を示す図１７に相当する。図２０は、実施の形態４の図１７において、ディレイ付加・保持部１９０を、実施の形態５のディレイ付加・保持部１９０−５に置き換えた構成である。図２０では、ディレイ付加・保持部１９０Ａ−５、１９０Ｂ−５が、共に図１８のディレイ付加・保持部１９０−５の構成である。
【００７９】  図２０の構成とすることで、図１７の場合と同様に、少ない回路規模で複雑な出力が得られる。
【００８０】  なお、図２０では第１系列１０１−５、第２系列１０２−５の２系列あるが、第１系列１０１−５のみの構成でも構わない。この場合、ディレイ付加・保持部１９０Ａ−５からは図４に示すようにＭ（１）〜Ｍ（３２）の演算結果が出力されるのは、図１７の場合と同様である。
【００８１】  また、図１７の場合と同様に、実施の形態６においても、「サブディレイ付加・保持部１−５」〜「サブディレイ付加・保持部３２−５」の３２系列は例示である。系列は１系列でもよいし、３３系列以上でも構わない。
【符号の説明】
【００８２】  １０  ＣＰＵデバイス、１００−１，１００−２，１００−３  Ｉ／Ｏデバイス、１１０  Ｉ／Ｆ部、１２０  送信部、１３０  受信部、１４０  パラメータ部、１４１  演算処理、１５０，１５０−２  演算データ抽出部、１５１  第１の選択部、１５２  第２の選択部、１６０  演算部、１７０  入力部、１８０  出力部、１７０−１  入力端子、１８０−１  出力端子、１９０，１９０−５  ディレイ付加・保持部、１９５  複合演算部、１０００  ＰＬＣ、９９  Ｉ／Ｏバス。
【図１】
2013187191.tif 000003
【図２】
2013187191.tif 000004
【図３】
2013187191.tif 000005
【図４】
2013187191.tif 000006
【図５】
2013187191.tif 000007
【図６】
2013187191.tif 000008
【図７】
2013187191.tif 000009
【図８】
2013187191.tif 000010
【図９】
2013187191.tif 000011
【図１０】
2013187191.tif 000012
【図１１】
2013187191.tif 000013
【図１２】
2013187191.tif 000014
【図１３】
2013187191.tif 000015
【図１４】
2013187191.tif 000016
【図１５】
2013187191.tif 000017
【図１６】
2013187191.tif 000018
【図１７】
2013187191.tif 000019
【図１８】
2013187191.tif 000020
【図１９】
2013187191.tif 000021
【図２０】
2013187191.tif 000022
【手続補正書】
【提出日】平成26年4月28日(2014.4.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスにおいて、
前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他の前記Ｉ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部と
を備えたことを特徴とするＩ／Ｏデバイス。
【請求項２】
前記演算データ抽出部は、
それぞれが前記演算データを抽出する複数のサブ抽出部を備え、
前記パラメータ部は、
前記サブ抽出部ごとに、前記サブ抽出部に対応する前記抽出条件を格納し、
それぞれの前記サブ抽出部は、
対応する前記パラメータに従って前記演算データを抽出することを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項３】
他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とは、
いずれも、複数のビットからなるビット情報であり、
前記パラメータ部は、
それぞれの前記サブ抽出部に対応する前記抽出条件として、他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とのうちのいずれかを、前記演算データの抽出元として指定すると共に、指定された前記抽出元におけるビット値を抽出すべきビット位置を指定する前記抽出条件を格納し、
それぞれの前記サブ抽出部は、
対応する前記抽出条件に従って、指定された前記抽出元の指定された前記ビット位置から、前記演算データとして、前記ビット値を抽出することを特徴とする請求項２記載のＩ／Ｏデバイス。
【請求項４】
前記インターフェイス部は、
他の全てのＩ／Ｏデバイスから前記入力情報と前記出力情報とを受信したときに、同期信号を前記演算データ抽出部に出力し、
前記演算データ抽出部は、
前記同期信号を入力したときに、前記演算データを前記演算部に出力することを特徴とする請求項１〜３のいずれかに記載のＩ／Ｏデバイス。
【請求項５】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラにおいて、
前記複数のＩ／Ｏデバイスの各Ｉ／Ｏデバイスは、
前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他のＩ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って、前記演算データを抽出する演算データ抽出部と、
前記演算データ抽出部が抽出した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部と
を備えたことを特徴とするプログラマブルロジックコントローラ。
【請求項６】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスが行う演算方法において、
インターフェイス部が、
前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他のＩ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信し、
パラメータ部が、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納し、
演算データ抽出部が、
前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力し、
演算部が、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行することを特徴とする演算方法。
【請求項７】
前記パラメータ部は、さらに、
前記演算処理による演算結果を出力する出力タイミングと前記演算処理による演算結果の出力継続時間とを指定する出力期間情報を格納し、
前記Ｉ／Ｏデバイスは、さらに、
前記演算部によって並列に実行された前記複数の演算処理のそれぞれの前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力するそれぞれの前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力したそれぞれの前記演算結果を出力する出力期間決定部
を備えたことを特徴とする請求項１〜４のいずれかに記載のＩ／Ｏデバイス。
【請求項８】
前記パラメータ部は、さらに、
前記出力期間決定部から出力されるそれぞれの前記演算結果を用いて行う演算処理を定義する演算定義情報を格納し、
前記Ｉ／Ｏデバイスは、さらに、
前記出力期間決定部から出力されるそれぞれの前記演算結果を入力し、前記パラメータ部に格納された前記演算定義情報に従って、入力した前記演算結果を用いた前記演算処理を実行する第２演算部を備えたことを特徴とする請求項７記載のＩ／Ｏデバイス。
【請求項９】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスにおいて、
前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他の前記Ｉ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、
演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータと、前記演算処理による演算結果を出力する出力タイミングと前記演算処理による演算結果の出力継続時間とを指定する出力期間情報とを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記演算処理の方式に従って、前記演算処理を実行する演算部と、
前記演算部の前記演算処理による前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力する前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力した前記演算結果を出力する出力期間決定部と
を備えたことを特徴とするＩ／Ｏデバイス。
【請求項１０】
前記パラメータ部は、
複数の演算処理の方式を格納し、
前記演算部は、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記演算処理を実行し、
前記出力期間決定部は、
前記演算部によって実行された前記演算処理の前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力する前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力した前記演算結果を出力することを特徴とする請求項９記載のＩ／Ｏデバイス。
【請求項１１】
複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスにおいて、
他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他の前記Ｉ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを取得し、取得した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とから、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を実行する演算部と
を備えたことを特徴とするＩ／Ｏデバイス。
【手続補正書】
【提出日】平成27年3月2日(2015.3.2)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスにおいて、
前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他の前記Ｉ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部と
を備えたことを特徴とするＩ／Ｏデバイス。
【請求項２】
前記演算データ抽出部は、
それぞれが前記演算データを抽出する複数のサブ抽出部を備え、
前記パラメータ部は、
前記サブ抽出部ごとに、前記サブ抽出部に対応する前記抽出条件を格納し、
それぞれの前記サブ抽出部は、
対応する前記パラメータに従って前記演算データを抽出することを特徴とする請求項１記載のＩ／Ｏデバイス。
【請求項３】
他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とは、
いずれも、複数のビットからなるビット情報であり、
前記パラメータ部は、
それぞれの前記サブ抽出部に対応する前記抽出条件として、他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とのうちのいずれかを、前記演算データの抽出元として指定すると共に、指定された前記抽出元におけるビット値を抽出すべきビット位置を指定する前記抽出条件を格納し、
それぞれの前記サブ抽出部は、
対応する前記抽出条件に従って、指定された前記抽出元の指定された前記ビット位置から、前記演算データとして、前記ビット値を抽出することを特徴とする請求項２記載のＩ／Ｏデバイス。
【請求項４】
前記インターフェイス部は、
他の全てのＩ／Ｏデバイスから前記入力情報と前記出力情報とを受信したときに、同期信号を前記演算データ抽出部に出力し、
前記演算データ抽出部は、
前記同期信号を入力したときに、前記演算データを前記演算部に出力することを特徴とする請求項１〜３のいずれかに記載のＩ／Ｏデバイス。
【請求項５】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラにおいて、
前記複数のＩ／Ｏデバイスの各Ｉ／Ｏデバイスは、
前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他のＩ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って、前記演算データを抽出する演算データ抽出部と、
前記演算データ抽出部が抽出した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部と
を備えたことを特徴とするプログラマブルロジックコントローラ。
【請求項６】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスが行う演算方法において、
インターフェイス部が、
前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他のＩ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信し、
パラメータ部が、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納し、
演算データ抽出部が、
前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力し、
演算部が、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行することを特徴とする演算方法。
【請求項７】
前記パラメータ部は、さらに、
前記演算処理による演算結果を出力する出力タイミングと前記演算処理による演算結果の出力継続時間とを指定する出力期間情報を格納し、
前記Ｉ／Ｏデバイスは、さらに、
前記演算部によって並列に実行された前記複数の演算処理のそれぞれの前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力するそれぞれの前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力したそれぞれの前記演算結果を出力する出力期間決定部
を備えたことを特徴とする請求項１〜４のいずれかに記載のＩ／Ｏデバイス。
【請求項８】
前記パラメータ部は、さらに、
前記出力期間決定部から出力されるそれぞれの前記演算結果を用いて行う演算処理を定義する演算定義情報を格納し、
前記Ｉ／Ｏデバイスは、さらに、
前記出力期間決定部から出力されるそれぞれの前記演算結果を入力し、前記パラメータ部に格納された前記演算定義情報に従って、入力した前記演算結果を用いた前記演算処理を実行する第２演算部を備えたことを特徴とする請求項７記載のＩ／Ｏデバイス。
【請求項９】
ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）デバイスと、複数のＩ／Ｏ（Ｉｎｐｕｔ／Ｏｕｔｐｕｔ）デバイスとを備えたプログラマブルロジックコントローラで使用される前記Ｉ／Ｏデバイスにおいて、
前記ＣＰＵデバイスと通信すると共に他の前記Ｉ／Ｏデバイスと通信するインターフェイス部であって、他の前記Ｉ／Ｏデバイスから、前記他のＩ／Ｏデバイスへの入力情報と他のＩ／Ｏデバイスからの出力情報とを受信するインターフェイス部と、
演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータと、前記演算処理による演算結果を出力する出力タイミングと前記演算処理による演算結果の出力継続時間とを指定する出力期間情報とを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記Ｉ／Ｏデバイスの入力情報と出力情報とを入力すると共に、自身である前記Ｉ／Ｏデバイスへの入力情報と、自身である前記Ｉ／Ｏデバイスからの出力情報とを入力し、入力した他の前記Ｉ／Ｏデバイスの入力情報と出力情報と、入力した自身である前記Ｉ／Ｏデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記演算処理の方式に従って、前記演算処理を実行する演算部と、
前記演算部の前記演算処理による前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力する前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力した前記演算結果を出力する出力期間決定部とを備えたことを特徴とするＩ／Ｏデバイス。
【請求項１０】
前記パラメータ部は、
複数の演算処理の方式を格納し、
前記演算部は、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記演算処理を実行し、
前記出力期間決定部は、
前記演算部によって実行された前記演算処理の前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力する前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力した前記演算結果を出力することを特徴とする請求項９記載のＩ／Ｏデバイス。
【国際調査報告】
2013187191.tif 000023
2013187191.tif 000024
2013187191.tif 000025
2013187191.tif 000026