JP5788093B2 - I/oデバイス、プログラマブルロジックコントローラ及び演算方法 - Google Patents
I/oデバイス、プログラマブルロジックコントローラ及び演算方法 Download PDFInfo
- Publication number
- JP5788093B2 JP5788093B2 JP2014521226A JP2014521226A JP5788093B2 JP 5788093 B2 JP5788093 B2 JP 5788093B2 JP 2014521226 A JP2014521226 A JP 2014521226A JP 2014521226 A JP2014521226 A JP 2014521226A JP 5788093 B2 JP5788093 B2 JP 5788093B2
- Authority
- JP
- Japan
- Prior art keywords
- calculation
- output
- unit
- input
- information
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Expired - Fee Related
Links
- 238000004364 calculation method Methods 0.000 title claims description 244
- 238000012545 processing Methods 0.000 claims description 98
- 238000000034 method Methods 0.000 claims description 41
- 238000013075 data extraction Methods 0.000 claims description 37
- 238000000605 extraction Methods 0.000 claims description 29
- 238000003672 processing method Methods 0.000 claims description 12
- 239000000284 extract Substances 0.000 claims description 7
- 238000010586 diagram Methods 0.000 description 26
- 230000015654 memory Effects 0.000 description 15
- 238000004891 communication Methods 0.000 description 11
- 230000005540 biological transmission Effects 0.000 description 10
- 230000014759 maintenance of location Effects 0.000 description 6
- 230000000694 effects Effects 0.000 description 5
- 239000002131 composite material Substances 0.000 description 4
- 230000003111 delayed effect Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 230000004044 response Effects 0.000 description 4
- 230000001360 synchronised effect Effects 0.000 description 3
- 230000001934 delay Effects 0.000 description 2
- 238000012546 transfer Methods 0.000 description 2
- 230000001960 triggered effect Effects 0.000 description 2
- 238000007796 conventional method Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
Images
Landscapes
- Programmable Controllers (AREA)
Description
この発明は、プログラマブルロジックコントローラに使用されるI/Oデバイスに関する。
図1は、CPUデバイス10と複数(3台)のI/Oデバイスとが、I/Oバス99で接続されたPLC1000(プログラマブルロジックコントローラ)である。I/Oデバイス100−1〜100−3の3台がCPUデバイス10に接続されており、3台の構成は、同じである。図1のように接続されたPLC1000におけるI/Oデバイス間の従来の入出力処理は、まず、CPUデバイス10が各I/Oデバイスの「入力端子情報」を収集(入力)する。ここで「入力端子情報」とは、各I/Oデバイスの入力端子170−1へ入力される情報である。CPUデバイス10は、収集した「入力端子情報」を用いて演算処理を行い、その演算結果をI/Oデバイスに配送(出力)する。配送される演算結果は、例えば、どのI/Oデバイスのための演算結果であるかが示されている。そして、自己の演算結果が配送されたI/Oデバイスは、出力端子180−1へ演算結果を出力する。CPUデバイス10は全てのI/Oデバイスに対してこの入出力処理を行い、また、この入出力処理を繰り返す。
CPUデバイス10が全てのI/Oデバイスに対する入出力処理を集中して処理しているため、I/O間の処理応答が遅くなるという課題がある。この課題に対して、特開平07−244506(特許文献1)には、CPUデバイス10の処理負担を軽減する方式の記載ある。また、特開2000−259208(特許文献2)には、CPUデバイス10を経由せずにI/Oデバイスにおいて入出力処理を行う処理方法の記載がある。
特許文献1では、各I/Oデバイスに「共通メモリ」を設け、CPUデバイス10を経由せずに各I/Oデバイスの入力端子情報を共通メモリ間で移動しCPUデバイス10の処理負担を軽減している。しかし、入力端子情報を一旦共通メモリに格納する構成のため、複数のI/Oデバイス間の入出力処理を行う場合にメモリから一度に複数のいくつものデータを読み出すことができない。このため、入出力処理を並列に処理することができず処理に時間がかかっていた。また、各I/Oデバイスの入力端子情報を全て共通メモリに格納するため、I/Oデバイス間の入出力処理に用いないデータまでも格納することがあり、I/Oデバイスの数が増えるにしたがって必要以上にメモリを実装していた。
特許文献2においては、他のI/Oデバイスと自己のI/Oデバイスの情報を関連付けたマッピングテーブルを格納するコネクションデータベースと、その格納されたマッピングテーブルに基づいてデータ処理するMPUを設け、各I/Oデバイスの入力端子情報を各I/Oデバイス間で送受信しCPUデバイス10を経由せずにI/Oデバイスにおいて入出力処理を行っている。しかし、入力端子情報を受信したコネクションデータごとにMPUがコネクションデータベースに格納されたマッピングテーブルを参照するため、一度に複数のデータを参照できず入出力処理を並列に処理することができない。さらに、入力端子情報に対して演算処理を行うにあたり、作業データをメモリに格納しMPUで処理する構成のため、複数のデータに対して並列に処理することができず、処理に時間がかかっていた。また、I/Oデバイス間の入出力処理を行うにあたりMPUやメモリを必要としているためコスト高となっていた。
また、PLCのI/Oデバイスの出力に対しては、ディレイを付加して出力タイミングを遅らせたい場合や、出力値を保持し継続して出力し続けたい場合がある。ディレイ付加の使用法としては、入力に基づく演算が成立した際に、ある処理(例えば退避処理)が完了するまで、外部へ通知したくない場合が挙げられる。値保持の使い方としては、演算が成立した際に、ある処理(例えば退避処理)が完了するまで、外部へ通知し続けたい場合が挙げられる。
特許文献3においては、データの授受の高速化と効率化のため、I/Oデバイスにおいてセンサ等との入出力をデータベースに保持し、テーブルで定義されたタイミングで出力することが開示されている。しかしながら、ディレイ付加や出力値保持の記載や、機器の緊急エラー信号の入力後に、複数の機器の緊急停止順序に従って停止処理を行うような連続的動作を、演算結果にディレイを付けて順に行う記載はない。さらに、特許文献3はデータベースを使用したシステムである。よって、特許文献3は、出力タイミングの条件に適合した出力があるかどうかを、出力の各々に対して、時間を計測し対応テーブルを参照しデータベースを参照するということを繰り返すことによって確認するシーケンシャル処理である。このため、特許文献3では、正確な出力タイミングが実現できないという課題がある。また、データベースを使用したシステムであるので、回路規模が大きくなるという課題がある。
また、PLCのI/Oデバイスの出力に対しては、ディレイを付加して出力タイミングを遅らせたい場合や、出力値を保持し継続して出力し続けたい場合がある。ディレイ付加の使用法としては、入力に基づく演算が成立した際に、ある処理(例えば退避処理)が完了するまで、外部へ通知したくない場合が挙げられる。値保持の使い方としては、演算が成立した際に、ある処理(例えば退避処理)が完了するまで、外部へ通知し続けたい場合が挙げられる。
特許文献3においては、データの授受の高速化と効率化のため、I/Oデバイスにおいてセンサ等との入出力をデータベースに保持し、テーブルで定義されたタイミングで出力することが開示されている。しかしながら、ディレイ付加や出力値保持の記載や、機器の緊急エラー信号の入力後に、複数の機器の緊急停止順序に従って停止処理を行うような連続的動作を、演算結果にディレイを付けて順に行う記載はない。さらに、特許文献3はデータベースを使用したシステムである。よって、特許文献3は、出力タイミングの条件に適合した出力があるかどうかを、出力の各々に対して、時間を計測し対応テーブルを参照しデータベースを参照するということを繰り返すことによって確認するシーケンシャル処理である。このため、特許文献3では、正確な出力タイミングが実現できないという課題がある。また、データベースを使用したシステムであるので、回路規模が大きくなるという課題がある。
CPUデバイス10を経由せずにI/Oデバイス間の入出力処理を行う従来の方法は、各I/Oデバイスの入力端子情報を各I/Oデバイス間で送受信する際に、各I/Oデバイスの入力端子情報を一旦メモリに格納し(特許文献1)、あるいは入力端子情報を受信したコネクションデータごとにMPUがコネクションデータベースに格納されたマッピングテーブルを参照(特許文献2)した。そのため、複数のデータに対して入出力処理を並列に処理することができず処理に時間がかかるという課題があった。また、必要以上にメモリを実装する構成であたり、MPUを必要とするなどコストが高いという課題があった。
この発明は、I/Oデバイス内に入力端子情報を格納するためのメモリやMPUを設けることなく、複数のデータに対して入出力処理を並列に処理できるようにすることにより、I/Oデバイス間の入出力処理の高速化を低コストで実現することを目的とする。
この発明のI/Oデバイスは、
CPU(Central Processing Unit)デバイスと、複数のI/O(Input/Output)デバイスとを備えたプログラマブルロジックコントローラで使用される前記I/Oデバイスにおいて、
前記CPUデバイスと通信すると共に他の前記I/Oデバイスと通信するインターフェイス部であって、他のI/Oデバイスから、前記他のI/Oデバイスへの入力情報と他のI/Oデバイスからの出力情報とを受信するインターフェイス部と、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記I/Oデバイスの入力情報と出力情報とを入力すると共に、自身である前記I/Oデバイスへの入力情報と、自身である前記I/Oデバイスからの出力情報とを入力し、入力した他の前記I/Oデバイスの入力情報と出力情報と、入力した自身である前記I/Oデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部と
を備えたことを特徴とする。
CPU(Central Processing Unit)デバイスと、複数のI/O(Input/Output)デバイスとを備えたプログラマブルロジックコントローラで使用される前記I/Oデバイスにおいて、
前記CPUデバイスと通信すると共に他の前記I/Oデバイスと通信するインターフェイス部であって、他のI/Oデバイスから、前記他のI/Oデバイスへの入力情報と他のI/Oデバイスからの出力情報とを受信するインターフェイス部と、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記I/Oデバイスの入力情報と出力情報とを入力すると共に、自身である前記I/Oデバイスへの入力情報と、自身である前記I/Oデバイスからの出力情報とを入力し、入力した他の前記I/Oデバイスの入力情報と出力情報と、入力した自身である前記I/Oデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部と
を備えたことを特徴とする。
PLCのI/Oデバイスにおいて、複数のデータに対して入出力処理の並列処理を可能にし、I/Oデバイス間の入出力処理の高速化を低コストで実現する。
実施の形態1.
(従来の入力処理)
背景技術で説明した、従来の入力出力処理における、「入力処理」、「出力処理」は以下の意味である。入力処理とは、CPUデバイス10が各I/Oデバイスから入力端子情報を収集し、演算を実施する処理である。出力処理とは、CPUデバイス10が演算結果をI/Oデバイスに配送し、自己の演算結果を配送されたI/Oデバイスが、出力端子から演算結果を出力する処理である。
(従来の入力処理)
背景技術で説明した、従来の入力出力処理における、「入力処理」、「出力処理」は以下の意味である。入力処理とは、CPUデバイス10が各I/Oデバイスから入力端子情報を収集し、演算を実施する処理である。出力処理とは、CPUデバイス10が演算結果をI/Oデバイスに配送し、自己の演算結果を配送されたI/Oデバイスが、出力端子から演算結果を出力する処理である。
(実施の形態1,2の入力処理)
また、以下の実施の形態1,2で説明する「I/Oデバイス間で特別に高速に入出力処理を行う場合」の入出力処理における、「入力処理」、「出力処理」は以下の意味である。入力処理とは、図1に示す一つのI/Oデバイス100−1に着目した場合に、I/Oデバイス100−1が、他のI/Oデバイス100−2、100−3から入力端子情報及び出力端子情報を収集し、さらに、I/Oデバイス100−1自身の入力端子情報及び出力端子情報をも用いて演算を実施する処理である。また出力処理とは、I/Oデバイス100−1が演算結果を自己の出力端子180−1から出力する処理である。I/Oデバイス100−2,100−3もI/Oデバイス100−1と対等であり、同様の「入出力処理」を行う。
また、以下の実施の形態1,2で説明する「I/Oデバイス間で特別に高速に入出力処理を行う場合」の入出力処理における、「入力処理」、「出力処理」は以下の意味である。入力処理とは、図1に示す一つのI/Oデバイス100−1に着目した場合に、I/Oデバイス100−1が、他のI/Oデバイス100−2、100−3から入力端子情報及び出力端子情報を収集し、さらに、I/Oデバイス100−1自身の入力端子情報及び出力端子情報をも用いて演算を実施する処理である。また出力処理とは、I/Oデバイス100−1が演算結果を自己の出力端子180−1から出力する処理である。I/Oデバイス100−2,100−3もI/Oデバイス100−1と対等であり、同様の「入出力処理」を行う。
実施の形態1のPLC(プログラマブルロジックコントローラ)を説明する。実施の形態1のPLCの構成は図1と同じ構成とする。つまり実施の形態1のPLCでは、各I/Oデバイス及びCPUデバイス10の接続関係は図1と同じとする。しかし、各I/Oデバイス及びCPUデバイス10の動作が異なる。図2は、実施の形態1のPLC1000におけるI/Oデバイス100の構成図である。なお、図1ではI/Oデバイス100は3台あり、これらをI/Oデバイス100−1〜100−3として区別している。各I/Oデバイスの構成は同じとする。また、区別の必要がない場合は、I/Oデバイス100あるいはI/Oデバイスと記載する。
(1)I/OバスI/F部110は、I/Oバス99とのインターフェイスである。I/OバスI/F部110は、CPUデバイス10とのデータの送受信や、I/Oデバイス間のデータの送受信の制御を行う。以下、I/OバスI/F部110は、簡略化してI/F部110と記す。
(2)送信部120は、I/Oデバイスの入力信号(入力端子170−1から入力)や出力信号(出力端子180−1から出力)を、I/F部110を経由してI/Oバス99に送る。また、受信部130がI/F部110を経由してCPUデバイス10から読み出し要求を受信した際に、送信部120は、要求に応答するデータをCPUデバイス10へ送信する。また、各I/Oデバイスは、いずれも優劣なく、定期的または送信可能なタイミングで、他のI/Oデバイス全てに対して自身の「入力信号や出力信号」を送信する。
(3)受信部130は、I/Oバス99からI/F部110を経由して、データを受信する。受信部130は、I/Oデバイスの出力信号に対しての書込み(図2のCPU更新データ)要求の際や、I/Oデバイス内にパラメータを設定(後述する)するときに、CPUデバイス10からデータを受信する。また、受信部130は、各I/Oデバイスから送信された入力信号や出力信号を受信する。
(4)パラメータ140部は、パラメータを格納する。パラメータとは、I/Oデバイス間の入出力処理を行うために、他のI/Oデバイスから受信した「入力信号や出力信号」や、後述の図2に示す「自局入力、自局出力」から、演算部160による演算に使うデータのみを抽出するための選択情報である。また、パラメータ部140は、演算の種類を選択するパラメータ(演算処理の設定情報)も格納する。
(5)演算データ抽出部150は、パラメータ部140に設定された選択情報(パラメータ)に従って、他のI/Oデバイスから受信した「入力信号や出力信号」(受信データ)、あるいは「自局入力、自局出力」から、演算部160の演算に使うデータのみを抽出し、レジスタ(図3で後述)に保持する。他のI/Oデバイスから受信した「入力信号や出力信号」、あるいは「自局入力、自局出力」は、いずれも、複数のビットからなるビット情報である。
(6)演算部160は、演算データ抽出部150によって抽出されたデータに対して演算を行う。本実施の形態1の演算部160は、2入力または1入力の論理演算回路を複数実装した構成のもので説明するが、一例である。図4には、演算部160の例として、2入力のAND回路を32個実装した構成を示した。
演算部160は、一定の入力に対して特定の値を出力するようにプログラムされたEPROMや、読み書き可能な不揮発性メモリなどで構成してもよい。なお、不揮発性メモリへの読み書きは、CPUデバイス10によりパラメータ部140を経由して行うものとする。
(7)入力部170は、外部のデータを入力信号で入力する。
(8)出力部180は、演算部160からの演算結果データと、受信部130からのCPUデバイス10による書込みデータ(CPU更新データ)を、外部へ出力信号として出力する。出力部180は、演算部160及び受信部130からの更新要求があった際に、出力する値を各部からのデータに更新する。
(1)I/OバスI/F部110は、I/Oバス99とのインターフェイスである。I/OバスI/F部110は、CPUデバイス10とのデータの送受信や、I/Oデバイス間のデータの送受信の制御を行う。以下、I/OバスI/F部110は、簡略化してI/F部110と記す。
(2)送信部120は、I/Oデバイスの入力信号(入力端子170−1から入力)や出力信号(出力端子180−1から出力)を、I/F部110を経由してI/Oバス99に送る。また、受信部130がI/F部110を経由してCPUデバイス10から読み出し要求を受信した際に、送信部120は、要求に応答するデータをCPUデバイス10へ送信する。また、各I/Oデバイスは、いずれも優劣なく、定期的または送信可能なタイミングで、他のI/Oデバイス全てに対して自身の「入力信号や出力信号」を送信する。
(3)受信部130は、I/Oバス99からI/F部110を経由して、データを受信する。受信部130は、I/Oデバイスの出力信号に対しての書込み(図2のCPU更新データ)要求の際や、I/Oデバイス内にパラメータを設定(後述する)するときに、CPUデバイス10からデータを受信する。また、受信部130は、各I/Oデバイスから送信された入力信号や出力信号を受信する。
(4)パラメータ140部は、パラメータを格納する。パラメータとは、I/Oデバイス間の入出力処理を行うために、他のI/Oデバイスから受信した「入力信号や出力信号」や、後述の図2に示す「自局入力、自局出力」から、演算部160による演算に使うデータのみを抽出するための選択情報である。また、パラメータ部140は、演算の種類を選択するパラメータ(演算処理の設定情報)も格納する。
(5)演算データ抽出部150は、パラメータ部140に設定された選択情報(パラメータ)に従って、他のI/Oデバイスから受信した「入力信号や出力信号」(受信データ)、あるいは「自局入力、自局出力」から、演算部160の演算に使うデータのみを抽出し、レジスタ(図3で後述)に保持する。他のI/Oデバイスから受信した「入力信号や出力信号」、あるいは「自局入力、自局出力」は、いずれも、複数のビットからなるビット情報である。
(6)演算部160は、演算データ抽出部150によって抽出されたデータに対して演算を行う。本実施の形態1の演算部160は、2入力または1入力の論理演算回路を複数実装した構成のもので説明するが、一例である。図4には、演算部160の例として、2入力のAND回路を32個実装した構成を示した。
演算部160は、一定の入力に対して特定の値を出力するようにプログラムされたEPROMや、読み書き可能な不揮発性メモリなどで構成してもよい。なお、不揮発性メモリへの読み書きは、CPUデバイス10によりパラメータ部140を経由して行うものとする。
(7)入力部170は、外部のデータを入力信号で入力する。
(8)出力部180は、演算部160からの演算結果データと、受信部130からのCPUデバイス10による書込みデータ(CPU更新データ)を、外部へ出力信号として出力する。出力部180は、演算部160及び受信部130からの更新要求があった際に、出力する値を各部からのデータに更新する。
図3は、演算データ抽出部150と、演算データ抽出部150に関連するパラメータ部140の内部を示した構成図である。
(演算データ抽出部150)
(1)「レジスタ1〜レジスタN」は、他のI/Oデバイスから受信した入力信号や出力信号から演算に使うデータのみを抽出したデータを格納する。
(2)「書込み制御部1〜書込み制御部N」は、他のI/Oデバイスから「入力信号や出力信号」(受信データ)を受信した際に、レジスタ1〜レジスタNに、抽出したデータの書込み制御を行う。他のI/Oデバイスから受信データを受信した際に、「受信書込み信号」はイネーブルとなる。送信元のI/Oデバイスを識別する受信局番と、パラメータ部140に設定された選択局番(抽出元)とが一致したとき、書込み制御部は、抽出されたデータをレジスタに書込む。また、書込み制御部は、パラメータ部140に設定された選択局番が自I/Oデバイスを示す自局番と一致する場合は、受信書込み信号の値に関係なく抽出されたデータをレジスタに書込む。
(3)第1の選択部151(1)〜151(N)、第2の選択部152(1)〜152(N)は、それぞれ、選択種別1〜N、データ位置1〜Nのパラメータに従って、データを選択する。第1の選択部、第2の選択部は例えばマルチプレクサで実現される。
(1)「レジスタ1〜レジスタN」は、他のI/Oデバイスから受信した入力信号や出力信号から演算に使うデータのみを抽出したデータを格納する。
(2)「書込み制御部1〜書込み制御部N」は、他のI/Oデバイスから「入力信号や出力信号」(受信データ)を受信した際に、レジスタ1〜レジスタNに、抽出したデータの書込み制御を行う。他のI/Oデバイスから受信データを受信した際に、「受信書込み信号」はイネーブルとなる。送信元のI/Oデバイスを識別する受信局番と、パラメータ部140に設定された選択局番(抽出元)とが一致したとき、書込み制御部は、抽出されたデータをレジスタに書込む。また、書込み制御部は、パラメータ部140に設定された選択局番が自I/Oデバイスを示す自局番と一致する場合は、受信書込み信号の値に関係なく抽出されたデータをレジスタに書込む。
(3)第1の選択部151(1)〜151(N)、第2の選択部152(1)〜152(N)は、それぞれ、選択種別1〜N、データ位置1〜Nのパラメータに従って、データを選択する。第1の選択部、第2の選択部は例えばマルチプレクサで実現される。
(パラメータ部140)
(1)「選択種別1〜選択種別N」は、演算データとして使う抽出データが、自局の入力信号(自局入力A)や出力信号(自局出力B)か、他のI/Oデバイスから入力信号(他局入力C)や出力信号(他局出力D)かを示すパラメータを格納する。
(2)「データ位置1〜データ位置N」は、入力信号や出力信号が複数ビットある場合に、どのビット位置のデータを演算データとして使うかを示すパラメータを格納する。
(3)「選択局番1〜選択局番N」は、何れの局番のI/Oデバイスの入力信号や出力信号を演算データとして使うかを示すパラメータを格納する。
(4)「自局番」は、自I/Oデバイスを示す局番のパラメータを格納する。
(5)「演算処理141」は、図5〜図7に示す演算処理が設定(演算出力0、演算出力1等)される。
(1)「選択種別1〜選択種別N」は、演算データとして使う抽出データが、自局の入力信号(自局入力A)や出力信号(自局出力B)か、他のI/Oデバイスから入力信号(他局入力C)や出力信号(他局出力D)かを示すパラメータを格納する。
(2)「データ位置1〜データ位置N」は、入力信号や出力信号が複数ビットある場合に、どのビット位置のデータを演算データとして使うかを示すパラメータを格納する。
(3)「選択局番1〜選択局番N」は、何れの局番のI/Oデバイスの入力信号や出力信号を演算データとして使うかを示すパラメータを格納する。
(4)「自局番」は、自I/Oデバイスを示す局番のパラメータを格納する。
(5)「演算処理141」は、図5〜図7に示す演算処理が設定(演算出力0、演算出力1等)される。
(サブ抽出部)
図3において、第1の選択部151(1)、第2の選択部152(1)、レジスタ1は、サブ抽出部(1)を構成する。第1の選択部151(2)、第2の選択部152(2)、レジスタ2は、サブ抽出部(2)を構成する。同様に、第1の選択部151(N)、第2の選択部152(N)、レジスタNは、サブ抽出部(N)を構成する。このように、演算データ抽出部150は、それぞれが演算データを抽出する複数のサブ抽出部を備える。パラメータ部140は、図3に示すように、サブ抽出部ごとに、サブ抽出部に対応する抽出条件を格納している。それぞれのサブ抽出は、対応するパラメータに従って、演算入力データを抽出する。
図3において、第1の選択部151(1)、第2の選択部152(1)、レジスタ1は、サブ抽出部(1)を構成する。第1の選択部151(2)、第2の選択部152(2)、レジスタ2は、サブ抽出部(2)を構成する。同様に、第1の選択部151(N)、第2の選択部152(N)、レジスタNは、サブ抽出部(N)を構成する。このように、演算データ抽出部150は、それぞれが演算データを抽出する複数のサブ抽出部を備える。パラメータ部140は、図3に示すように、サブ抽出部ごとに、サブ抽出部に対応する抽出条件を格納している。それぞれのサブ抽出は、対応するパラメータに従って、演算入力データを抽出する。
(演算部160の構成)
図4は、演算部160の構成例を示すブロック図である。図4で、R(1)等はレジスタである。図4の演算部160は、2入力のAND回路を32個実装した構成(N=32)である。各I/Oデバイスは、最大32本の入力信号線(入力端子170−1)と、最大32本の出力信号線(出力端子180−1)があるものとする。これに対応して、図4では、演算部160は、2入力、1出力のAND回路を32個実装する。AND回路0〜31の合計32の出力が32本の出力信号線に対応する。図4に示すように、演算データ抽出部150におけるレジスタの個数は、64個である。これは、AND回路の2入力のいずれかが、いずれかのレジスタに対応するからである。つまり、レジスタの個数Nは、「AND回路の個数×AND回路の入力数=32×2=64」
である。64個(N=64)のレジスタに対応して、第1の選択部151(N)、第2の選択部152(N)、書込み制御部Nも、64個(N=64)あるのは当然である。なお、これは演算部160の構成を説明するための一例である。演算部160は、AND回路とOR回路との両方で構成されても良いし、どのような論理回路を用いても構わない。また、図4の例では一つレジスタの値は、一つのAND回路のみに対応したが、一つレジスタの値が、複数の論理回路に使用されても良い。
図4は、演算部160の構成例を示すブロック図である。図4で、R(1)等はレジスタである。図4の演算部160は、2入力のAND回路を32個実装した構成(N=32)である。各I/Oデバイスは、最大32本の入力信号線(入力端子170−1)と、最大32本の出力信号線(出力端子180−1)があるものとする。これに対応して、図4では、演算部160は、2入力、1出力のAND回路を32個実装する。AND回路0〜31の合計32の出力が32本の出力信号線に対応する。図4に示すように、演算データ抽出部150におけるレジスタの個数は、64個である。これは、AND回路の2入力のいずれかが、いずれかのレジスタに対応するからである。つまり、レジスタの個数Nは、「AND回路の個数×AND回路の入力数=32×2=64」
である。64個(N=64)のレジスタに対応して、第1の選択部151(N)、第2の選択部152(N)、書込み制御部Nも、64個(N=64)あるのは当然である。なお、これは演算部160の構成を説明するための一例である。演算部160は、AND回路とOR回路との両方で構成されても良いし、どのような論理回路を用いても構わない。また、図4の例では一つレジスタの値は、一つのAND回路のみに対応したが、一つレジスタの値が、複数の論理回路に使用されても良い。
次に動作について説明する。通常の「入出力処理」では、背景技術で述べた処理と同様に、CPUデバイス10は、各I/Oデバイスの入力端子情報を収集して演算処理を行い(入力処理)、その演算結果を出力先のI/Oデバイスに配送する(出力処理)。演算結果を配送されたI/Oデバイスは、演算結果を、出力端子180−1へ出力する。
(パラメータの設定)
I/Oデバイス間で特別に高速に入出力処理を行う場合は、入出力処理を行う前に、あらかじめ、CPUデバイス10が、各I/Oデバイス100のパラメータ部140に、I/Oデバイス間の入出力処理を行うためのパラメータを設定する。CPUデバイス10は、パラメータとして、I/Oデバイス間の入出力処理で用いる演算データの選択情報や、演算処理(図5の演算出力0、演算出力1など)をパラメータ部140の演算処理141に設定する。なお、後述する図5〜図7では、演算出力0、演算出力1の2通りを示しているが、図4のように、32個のAND回路が使用される場合は、各AND回路に演算出力が設定される。つまり演算出力0〜演算出力31の32個の演算出力がパラメータ部140の演算処理141に設定されることとなる。
演算出力0〜演算出力31の32個の演算出力が、32本の出力信号線に対応する。
I/Oデバイス間で特別に高速に入出力処理を行う場合は、入出力処理を行う前に、あらかじめ、CPUデバイス10が、各I/Oデバイス100のパラメータ部140に、I/Oデバイス間の入出力処理を行うためのパラメータを設定する。CPUデバイス10は、パラメータとして、I/Oデバイス間の入出力処理で用いる演算データの選択情報や、演算処理(図5の演算出力0、演算出力1など)をパラメータ部140の演算処理141に設定する。なお、後述する図5〜図7では、演算出力0、演算出力1の2通りを示しているが、図4のように、32個のAND回路が使用される場合は、各AND回路に演算出力が設定される。つまり演算出力0〜演算出力31の32個の演算出力がパラメータ部140の演算処理141に設定されることとなる。
演算出力0〜演算出力31の32個の演算出力が、32本の出力信号線に対応する。
図5〜図7は、I/Oデバイス100−1〜I/Oデバイス100−3に設定されるパラメータ例を示す。なお、図4の説明で述べたように、各I/Oデバイスは、最大32本の入力信号線(入力端子170−1)と、最大32本の出力信号線(出力端子180−1)があるものとする。
パラメータ設定後、PLC1000では、通常のPLCにおける入出力処理に移行する。
(1)CPUデバイス10による「通常の入出力処理」では、CPUデバイス10が、I/Oデバイスの入力信号の情報を、I/OデバイスのI/F部110を経由して収集する。
(2)CPUデバイス10は、収集したデータ(入力信号)から演算処理を行い、その演算結果を出力先のI/Oデバイスに、そのI/OデバイスのI/F部110及び受信部130を経由して出力する。I/Oデバイスの受信部130が、CPUデバイス10による出力更新を受けた際には、つまり受信部130がCPUデバイス10から演算結果を受信した際には、出力部180は、CPUデバイス10から受信したデータ(演算結果)を、出力端子180−1に出力する。
(1)CPUデバイス10による「通常の入出力処理」では、CPUデバイス10が、I/Oデバイスの入力信号の情報を、I/OデバイスのI/F部110を経由して収集する。
(2)CPUデバイス10は、収集したデータ(入力信号)から演算処理を行い、その演算結果を出力先のI/Oデバイスに、そのI/OデバイスのI/F部110及び受信部130を経由して出力する。I/Oデバイスの受信部130が、CPUデバイス10による出力更新を受けた際には、つまり受信部130がCPUデバイス10から演算結果を受信した際には、出力部180は、CPUデバイス10から受信したデータ(演算結果)を、出力端子180−1に出力する。
I/Oデバイス間で高速に行う入出力処理では、各I/Oデバイスが、優劣なく、定期的または送信可能なタイミングで、I/Oバス99のバス権を獲得し、他のI/Oデバイス全てに、自局の「入力信号と出力信号」のデータを送信する。なお、CPUデバイス10のI/Oバスアクセスと競合した場合は、CPUデバイス10にバス権を優先的に与えるものとする。
(I/Oデバイス100−1)
I/Oデバイス100−1は、I/Oデバイス100−2とI/Oデバイス100−3とから、それぞれの入力信号及び出力信号を順次受信する。入力信号(入力情報)とは、例えばI/Oデバイス100−2について着目した場合には、I/Oデバイス100−1が、I/Oデバイス100−1の自局入力(図2)に相当するI/Oデバイス100−2の自局入力を、I/Oバス99経由で受信する場合である。同様に出力信号(出力情報)とは、I/Oデバイス100−2について見た場合には、I/Oデバイス100−1が、I/Oデバイス100−1の自局出力(図2)に相当するI/Oデバイス100−2の自局出力を、I/Oバス99経由で受信する場合である。I/Oデバイス100−3についても同様である。I/Oデバイス100−1が、I/Oデバイス100−2から入力信号を受信した際には、図3の「受信データ」である「他局入力C」にI/Oデバイス100−2の「入力信号」が入力される。また、この場合、「受信局番」に「2」が入力され、受信書込み信号がイネーブルになる。
I/Oデバイス100−1は、I/Oデバイス100−2とI/Oデバイス100−3とから、それぞれの入力信号及び出力信号を順次受信する。入力信号(入力情報)とは、例えばI/Oデバイス100−2について着目した場合には、I/Oデバイス100−1が、I/Oデバイス100−1の自局入力(図2)に相当するI/Oデバイス100−2の自局入力を、I/Oバス99経由で受信する場合である。同様に出力信号(出力情報)とは、I/Oデバイス100−2について見た場合には、I/Oデバイス100−1が、I/Oデバイス100−1の自局出力(図2)に相当するI/Oデバイス100−2の自局出力を、I/Oバス99経由で受信する場合である。I/Oデバイス100−3についても同様である。I/Oデバイス100−1が、I/Oデバイス100−2から入力信号を受信した際には、図3の「受信データ」である「他局入力C」にI/Oデバイス100−2の「入力信号」が入力される。また、この場合、「受信局番」に「2」が入力され、受信書込み信号がイネーブルになる。
(演算入力データ1)
レジスタ1の出力となる演算入力データ1(演算データ)に対するパラメータ設定(選択種別、選択局番、データ位置)は、図5に示すように、
選択種別=他局入力、選択局番=2、データ位置=3、
と設定されている。このため、第1の選択部151(1)は、I/Oデバイス100−2からの「入力信号」を選択し、第2の選択部152(1)は、入力信号のビット3を選択する。受信局番=選択局番=2であるので、受信書込みもイネーブルである。このため、書込み制御部1は、抽出されたビット3のデータをレジスタ1に書込む。従って、演算入力データ1は、I/Oデバイス100−2からの入力信号のビット3の値になる。
レジスタ1の出力となる演算入力データ1(演算データ)に対するパラメータ設定(選択種別、選択局番、データ位置)は、図5に示すように、
選択種別=他局入力、選択局番=2、データ位置=3、
と設定されている。このため、第1の選択部151(1)は、I/Oデバイス100−2からの「入力信号」を選択し、第2の選択部152(1)は、入力信号のビット3を選択する。受信局番=選択局番=2であるので、受信書込みもイネーブルである。このため、書込み制御部1は、抽出されたビット3のデータをレジスタ1に書込む。従って、演算入力データ1は、I/Oデバイス100−2からの入力信号のビット3の値になる。
同様に、演算入力データ3及び演算入力データ4も、図5において、選択種別=他局入力、選択局番=2となっているので、それぞれI/Oデバイス100−2からの入力信号のビット5やビット6の値になる。演算入力データが更新されたことにより、演算部160は、パラメータ設定された「演算処理141」に従い演算結果を出力する。
I/Oデバイス100−1の演算出力0は、図5に示すように、
「演算入力データ1 AND 演算入力データ2」
による演算結果となる。
また、演算出力1は、
「演算入力データ3 OR 演算入力データ4」
による演算結果となる。なお、図4の構成図では演算出力1は、
「演算入力データ3 AND 演算入力データ4」であるが、図5では「OR」の場合を示した。
「演算入力データ1 AND 演算入力データ2」
による演算結果となる。
また、演算出力1は、
「演算入力データ3 OR 演算入力データ4」
による演算結果となる。なお、図4の構成図では演算出力1は、
「演算入力データ3 AND 演算入力データ4」であるが、図5では「OR」の場合を示した。
I/Oデバイス100−1の出力部180は、演算部160から演算結果の出力更新を受けた際には、この演算結果を出力する。
従来では複数のビットの入力信号を受信しても、I/Oデバイス間の入出力処理を並列に処理することができず時間がかかっていた。しかし、以上のように複数のデータ(レジスタ1〜Nから出力されるデータ)に対して、I/Oデバイス間の入出力処理を並列に処理することが可能となる。つまり、図4に例示したように、複数のデータ(レジスタ1〜Nから出力されるデータ)に対して、32個のAND回路による並列処理が可能になる。よって、処理が高速化する効果がある。
また、I/Oデバイス内に演算に用いないデータを格納するメモリ(特許文献1)や、MPU(特許文献2)を設ける必要がない。このため、I/Oデバイス間の入出力処理を低コストで実現できる。
(I/Oデバイス100−2)
次にI/Oデバイス100−2は、I/Oデバイス100−1と、I/Oデバイス100−3から、それぞれの「入力信号と出力信号」を順次受信する。I/Oデバイス100−2は、I/Oデバイス100−3から出力信号を受信した場合は、この出力信号は、他局出力(図3)に入力される。また、受信局番に「3」が入力され、受信書込みがイネーブルになる。演算入力データ3に対するパラメータ設定(選択種別、選択局番、データ位置)は、図6のように設定されている。このため、演算入力データ3の第1の選択部151(3)3は、「選択種別」により、他局出力であるI/Oデバイス100−3からの出力信号を選択する。「データ位置」は0のため、第2の選択部152(3)は、出力信号のビット0を選択する。「受信局番」が「3」であり選択局番も3のため一致しており、受信書込みもイネーブルである。このため、書込み制御部3は、抽出されたビット0のデータを、レジスタ3に書込む。従って、演算入力データ3は、I/Oデバイス100−3からの出力信号のビット0の値になる。図6により、I/Oデバイス100−2の演算出力1は、演算入力データ3の値となり、演算部160は演算結果を出力する。
次にI/Oデバイス100−2は、I/Oデバイス100−1と、I/Oデバイス100−3から、それぞれの「入力信号と出力信号」を順次受信する。I/Oデバイス100−2は、I/Oデバイス100−3から出力信号を受信した場合は、この出力信号は、他局出力(図3)に入力される。また、受信局番に「3」が入力され、受信書込みがイネーブルになる。演算入力データ3に対するパラメータ設定(選択種別、選択局番、データ位置)は、図6のように設定されている。このため、演算入力データ3の第1の選択部151(3)3は、「選択種別」により、他局出力であるI/Oデバイス100−3からの出力信号を選択する。「データ位置」は0のため、第2の選択部152(3)は、出力信号のビット0を選択する。「受信局番」が「3」であり選択局番も3のため一致しており、受信書込みもイネーブルである。このため、書込み制御部3は、抽出されたビット0のデータを、レジスタ3に書込む。従って、演算入力データ3は、I/Oデバイス100−3からの出力信号のビット0の値になる。図6により、I/Oデバイス100−2の演算出力1は、演算入力データ3の値となり、演算部160は演算結果を出力する。
以上のように、他のI/Oデバイスの出力信号に対しても入力信号と同様にI/Oデバイス間の入出力処理を並列に処理することができる。
(I/Oデバイス100−3)
次にI/Oデバイス100−3は、I/Oデバイス100−2から「入力信号」を受信し、自局(I/Oデバイス100−3自身)から「入力信号と出力信号」を受信する。I/Oデバイス100−3が自局から受信した入力信号は、「自局入力A」(図3)に入力され、出力信号は「自局出力B」に入力される。
次にI/Oデバイス100−3は、I/Oデバイス100−2から「入力信号」を受信し、自局(I/Oデバイス100−3自身)から「入力信号と出力信号」を受信する。I/Oデバイス100−3が自局から受信した入力信号は、「自局入力A」(図3)に入力され、出力信号は「自局出力B」に入力される。
(演算入力データ1)
演算入力データ1に対するパラメータ設定は、図7のように、
選択種別=自局入力、選択局番=3、データ位置=1
と設定されている。
このため、第1の選択部151(1)は、自局入力であるI/Oデバイス100−3からの入力信号を選択し、第2の選択部152(1)は、入力信号のビット1を選択する。自局番が3であり選択局番も3で一致しているため、書込み制御部1は、抽出されたビット1のデータを、レジスタ1に書込む。従って、演算入力データ1は、I/Oデバイス100−3からの入力信号のビット1の値になる。
演算入力データ1に対するパラメータ設定は、図7のように、
選択種別=自局入力、選択局番=3、データ位置=1
と設定されている。
このため、第1の選択部151(1)は、自局入力であるI/Oデバイス100−3からの入力信号を選択し、第2の選択部152(1)は、入力信号のビット1を選択する。自局番が3であり選択局番も3で一致しているため、書込み制御部1は、抽出されたビット1のデータを、レジスタ1に書込む。従って、演算入力データ1は、I/Oデバイス100−3からの入力信号のビット1の値になる。
(演算入力データ2)
同様に演算入力データ2においては、I/Oデバイス100−3からの出力信号のビット1が抽出される。自局番が3であり選択局番も3で一致している。よって、書込み制御部2は、抽出されたビット1のデータを、レジスタ2に書込む。I/Oデバイス100−3の演算出力0は、
「演算入力データ1 OR 演算入力データ2」
による演算結果を出力する。
同様に演算入力データ2においては、I/Oデバイス100−3からの出力信号のビット1が抽出される。自局番が3であり選択局番も3で一致している。よって、書込み制御部2は、抽出されたビット1のデータを、レジスタ2に書込む。I/Oデバイス100−3の演算出力0は、
「演算入力データ1 OR 演算入力データ2」
による演算結果を出力する。
(演算入力データ3,4)
演算入力データ3では、I/Oデバイス100−2から「入力信号」(他局入力)を受信した際には、「他局入力」から入力される入力信号のビット4の値になる。また、演算入力データ4では、I/Oデバイス100−3の自局から受信した入力信号は「自局入力A」から入力され、入力信号のビット0の値になる。
I/Oデバイス100−3の演算出力1は、
「演算入力データ3 AND 演算入力データ4」
による演算結果を出力する。
演算入力データ3では、I/Oデバイス100−2から「入力信号」(他局入力)を受信した際には、「他局入力」から入力される入力信号のビット4の値になる。また、演算入力データ4では、I/Oデバイス100−3の自局から受信した入力信号は「自局入力A」から入力され、入力信号のビット0の値になる。
I/Oデバイス100−3の演算出力1は、
「演算入力データ3 AND 演算入力データ4」
による演算結果を出力する。
以上のように、自局のI/Oデバイスの入力信号や出力信号に対しても、他のI/Oデバイスからの入力信号と同様に、入出力処理を並列に処理できる。また、I/Oデバイス100−3の入力信号のビット0は、I/Oデバイス100−1〜3の全てのI/Oデバイスで演算入力データとしている。このI/Oデバイス100−3の入力信号のビット0のようなビットを演算入力データに指定し、各I/Oデバイスに入出力処理させることにより、各I/Oデバイスの停止や起動といった動作を高速に制御することができる。
実施の形態2.
図8、図9を参照して実施の形態2を説明する。以上の実施の形態1では、演算データ抽出部150が他のI/Oデバイスや自局のI/Oデバイスから入力した入力信号や出力信号のデータを、すぐに演算部160に伝えていた。しかし、異なるI/Oデバイスのデータを入力とする演算処理においては、I/Oデバイスによってデータを受信するタイミングが異なるため、各演算入力データの更新が同期しない。I/Oデバイス間において非同期で制御する入出力処理の場合は実施の形態1にて問題ないが、I/Oデバイス間で同期して制御する入出力処理では期待しない演算結果を出力する。そこでI/Oデバイス間の入力データに対して同期をとる実施形態を示す。
図8、図9を参照して実施の形態2を説明する。以上の実施の形態1では、演算データ抽出部150が他のI/Oデバイスや自局のI/Oデバイスから入力した入力信号や出力信号のデータを、すぐに演算部160に伝えていた。しかし、異なるI/Oデバイスのデータを入力とする演算処理においては、I/Oデバイスによってデータを受信するタイミングが異なるため、各演算入力データの更新が同期しない。I/Oデバイス間において非同期で制御する入出力処理の場合は実施の形態1にて問題ないが、I/Oデバイス間で同期して制御する入出力処理では期待しない演算結果を出力する。そこでI/Oデバイス間の入力データに対して同期をとる実施形態を示す。
図8は、抽出するデータに同期制御を加えた演算データ抽出部150−2と、演算データ抽出部150−2に関連するパラメータ部140の内部を示した構成図である。図8は、図3に対して演算データ抽出部150−2の構成が異なる。演算データ抽出部150−2は、図3の演算データ抽出部150に対して、同期信号Sと、送信信号Tと、レジスタ1a〜Naが追加された。
レジスタ1a〜レジスタNaは、I/F部110からの同期信号Sがイネーブルになった際にレジスタ1〜レジスタNに格納したデータを格納する。書込み制御部1〜書込み制御部Nは、他のI/Oデバイスから入力信号や出力信号(受信データ)を受信した際にレジスタ1〜レジスタNに抽出したデータの書込み制御を行う。他のI/Oデバイスからデータを受信した際に受信書込み信号はイネーブルとなり、送信元のI/Oデバイスを識別する受信局番とパラメータ部140に設定された選択局番が一致したとき、抽出したデータをレジスタに書込む。また、パラメータ部140に設定された選択局番が自I/Oデバイスを示す自局番と一致する場合はI/F部110からの送信信号Tがイネーブルになった際に抽出したデータをレジスタに書込む。
図2のI/Oデバイスの構成図において、実施の形態2のI/F部110は、他のI/Oデバイスへ「入力信号と出力信号」のデータを送信した際に送信信号Tをイネーブルにする。また、自局から他のI/Oデバイスへ送信し、さらに全てのI/Oデバイスからデータを一通り受信した際に同期信号Sをイネーブルにする。各I/Oデバイスが均等にI/Oバス99のバス権を獲得し、他のI/Oデバイス全てに対して送信する。このため、I/F部110は、一定の期間内に全てのI/Oデバイスから一通りのデータ転送があったことを確認することができる。
次に動作について説明する。図9は、各I/Oデバイスが他のI/Oデバイスへ入力信号と出力信号のデータを送信し、他のI/Oデバイスがデータを受信するタイミングチャートを示す。また、図9は、同期信号Sや演算入力データの更新に対するタイミングチャートを示している
図9に示すように、I/Oデバイス100−1からI/Oデバイス100−2、I/Oデバイス100−3と順次各I/Oデバイスのデータを送受信する。I/Oデバイス100−1がデータ1bを送信した際に、I/Oデバイス100−1では送信信号Tがイネーブルになり、選択局番がI/Oデバイス100−1に設定されたレジスタは送信したデータに更新する。I/Oデバイス100−2やI/Oデバイス100−3では、データ1bを受信した際に受信書込みがイネーブルになり、選択局番がI/Oデバイス100−1に設定されたレジスタは受信したデータに更新する。I/Oデバイス100−2やI/Oデバイス100−3がそれぞれデータ2b、データ3bを送信した際も同様に、送信したI/Oデバイスでは送信信号Tがイネーブルになり、選択局番が自局番に設定されたレジスタは送信したデータに更新する。また受信したI/Oデバイスでは受信書込みがイネーブルになり、選択局番が一致したレジスタは受信したデータに更新する。
I/Oデバイス100−3に対するデータの送受信が完了した際に全てのI/Oデバイスから一通りのデータ転送が完了する。このため、そのタイミングで同期信号Sがイネーブルになる。つまり、そのタイミングで各I/OデバイススのI/F部110は、同期信号Sをイネーブルにする。同期信号Sがイネーブルになることにより、演算入力データは演算入力データ1a〜演算入力データNaから新たな演算入力データ1b〜演算入力データNbのデータに更新する。
以上のように同期信号SによりI/Oデバイス間の入力データに対して同期をとることができるため、I/Oデバイス間で同期して入出力処理を行うことができる。また、複数のデータに対してI/Oデバイス間の入出力処理を並列に処理することが可能なため高速に処理することができる。
以上の実施の形態では、CPUデバイスと複数のI/Oデバイスとを備えたプログラマブルロジックコントローラにおいて、上記各I/Oデバイスは、I/Oデバイス間の通信手段と、入出力処理で用いるデータや演算の設定情報であるパラメータを格納する記憶手段と、入出力処理に必要なデータのみを抽出する抽出手段と、入出力処理演算を行う演算手段とを有する。各I/Oデバイスは、受信したデータから、入出力処理に必要なデータのみを抽出した複数のデータに対して、入出力処理を並列に処理できる。
以上の実施の形態では、以下のI/Oデバイスを説明した。I/Oデバイスは、受信したI/Oデバイス間のデータに対して同期してデータを入力し入出力処理する制御手段を有する。I/Oデバイスは、受信したデータから入出力処理に必要なデータのみを抽出した複数のデータに対して、同期をとって入出力処理を並列に処理できる。
実施の形態3.
図10は、実施の形態3のI/Oデバイス100の構成図を示す。図10のI/Oデバイス100は、実施の形態1の演算部160(図2〜図4)の後段、あるいは実施の形態2(図8)の演算部160の後段に、さらに、ディレイ付加・保持部190を備える。
図10は、実施の形態3のI/Oデバイス100の構成図を示す。図10のI/Oデバイス100は、実施の形態1の演算部160(図2〜図4)の後段、あるいは実施の形態2(図8)の演算部160の後段に、さらに、ディレイ付加・保持部190を備える。
(ディレイ付加・保持部190)
図11は、図10のI/Oデバイス100のディレイ付加・保持部190と、パラメータ部140、演算部160との関係を示す図である。図11は図4を前提としている。図11に示すように、ディレイ付加・保持部190(出力期間決定部)は、演算部160によって並列に実行された演算結果(M1)、(M2)・・・(M32)を入力する。ディレイ付加・保持部190は、入力する演算結果(M1)、(M2)・・・(M32)の出力タイミング(後述のディレイ期間、あるいはディレイ時間ともいう)と、出力継続時間(後述の保持期間、あるいは保持時間ともいう)とを決定し、決定に従って、入力したそれぞれの演算結果(M1)、(M2)・・・(M32)を出力する。
図11は、図10のI/Oデバイス100のディレイ付加・保持部190と、パラメータ部140、演算部160との関係を示す図である。図11は図4を前提としている。図11に示すように、ディレイ付加・保持部190(出力期間決定部)は、演算部160によって並列に実行された演算結果(M1)、(M2)・・・(M32)を入力する。ディレイ付加・保持部190は、入力する演算結果(M1)、(M2)・・・(M32)の出力タイミング(後述のディレイ期間、あるいはディレイ時間ともいう)と、出力継続時間(後述の保持期間、あるいは保持時間ともいう)とを決定し、決定に従って、入力したそれぞれの演算結果(M1)、(M2)・・・(M32)を出力する。
(パラメータ部140)
パラメータ部140は、ディレイ付加・保持部190が決定するディレイ時間と保持時間とを、パラメータ(出力期間情報)として、予め格納している。図11に示すように、パラメータ部140は、ディレイ値1〜32を、それぞれの演算結果(M1)等のディレイ時間として格納している。また、パラメータ部140は、保持期間1〜32を、それぞれの演算結果(M1)等の保持時間(保持期間)として格納している。例えば、「AND0」の演算結果(M1)に対して、ディレイ付加・保持部190は次のように処理する。(1)演算結果(M1)を入力すると、ディレイ付加部1は、パラメータ部140が格納するディレイ値1に従って、演算結果(M1)を入力した時点からディレイ値1の示すディレイ時間経過後に、演算結果(M1)を出力する。ディレイ値1はゼロ(ディレイなし)でも構わない。
(2)保持部1は、ディレイ付加部1の出力である演算データ(M1)を入力すると、パラメータ部140の格納する保持期間1に従って、保持期間1の示す時間の間、演算結果(M1)の出力を継続する。
(3)ディレイ付加・保持部190が演算部160から入力する演算データ(M2)〜(M32)についても同様である。つまり演算データ(Mi)(i=2〜32)については、ディレイ付加部(i)と保持部(i)によって遅延及び出力継続が実行される。
パラメータ部140は、ディレイ付加・保持部190が決定するディレイ時間と保持時間とを、パラメータ(出力期間情報)として、予め格納している。図11に示すように、パラメータ部140は、ディレイ値1〜32を、それぞれの演算結果(M1)等のディレイ時間として格納している。また、パラメータ部140は、保持期間1〜32を、それぞれの演算結果(M1)等の保持時間(保持期間)として格納している。例えば、「AND0」の演算結果(M1)に対して、ディレイ付加・保持部190は次のように処理する。(1)演算結果(M1)を入力すると、ディレイ付加部1は、パラメータ部140が格納するディレイ値1に従って、演算結果(M1)を入力した時点からディレイ値1の示すディレイ時間経過後に、演算結果(M1)を出力する。ディレイ値1はゼロ(ディレイなし)でも構わない。
(2)保持部1は、ディレイ付加部1の出力である演算データ(M1)を入力すると、パラメータ部140の格納する保持期間1に従って、保持期間1の示す時間の間、演算結果(M1)の出力を継続する。
(3)ディレイ付加・保持部190が演算部160から入力する演算データ(M2)〜(M32)についても同様である。つまり演算データ(Mi)(i=2〜32)については、ディレイ付加部(i)と保持部(i)によって遅延及び出力継続が実行される。
実施の形態3では、一例として、ディレイ付加部によるディレイ及び保持部による保持について、以下の条件1〜3を設ける。これらの条件を設けることで、出力信号(演算結果)を大量に保持する必要がなく、小さい回路規模で実施の形態3の効果を有するI/Oデバイス100を実現できる。
<条件1:ディレイ付加部によるディレイに関する条件>
演算結果のディレイ期間(後述のディレイ期間301)は、演算結果の変化を出力に反映しない。
演算結果のディレイ期間(後述のディレイ期間301)は、演算結果の変化を出力に反映しない。
<条件2:保持部による保持に関する条件>
保持期間(後述の保持期間302)は、保持部は、演算結果が変化した時点で、ディレイさせることなく、すぐに変化後の演算結果の出力を開始し、変化後の演算結果を保持期間継続して出力する。
保持期間(後述の保持期間302)は、保持部は、演算結果が変化した時点で、ディレイさせることなく、すぐに変化後の演算結果の出力を開始し、変化後の演算結果を保持期間継続して出力する。
<条件3:ディレイ及び保持に関する条件>
実施の形態3の方式のディレイ設定にあたっては、下記の式(1)の制限とする。
ディレイ期間(出力ディレイ)≦保持期間 (1)
実施の形態3の方式のディレイ設定にあたっては、下記の式(1)の制限とする。
ディレイ期間(出力ディレイ)≦保持期間 (1)
図13〜図15によって、ディレイ付加部、保持部によるディレイ及び保持の具体例を説明する。なお、図13〜図15では、ディレイ付加部、保持部は、それぞれ以下の設定11〜13、設定21〜22の設定である。
<ディレイ付加部>
(設定11)ディレイ付加部は、自身への入力の変化を契機にディレイ処理を開始する。(設定12)ディレイ付加部は、ディレイ期間中は入力を受け付けない(上記の条件1)。
(設定13)ディレイ付加部は、ディレイ期間経過時点で、ディレイ期間開始時の入力値に対して値の変化がないときは、変化の無い入力値の出力を入力変化があるまで継続する。ディレイ期間経過時点で入力変化が有るときは、ディレイ付加部は、設定11のとおり、入力の変化を契機にディレイ処理を開始する。
(設定11)ディレイ付加部は、自身への入力の変化を契機にディレイ処理を開始する。(設定12)ディレイ付加部は、ディレイ期間中は入力を受け付けない(上記の条件1)。
(設定13)ディレイ付加部は、ディレイ期間経過時点で、ディレイ期間開始時の入力値に対して値の変化がないときは、変化の無い入力値の出力を入力変化があるまで継続する。ディレイ期間経過時点で入力変化が有るときは、ディレイ付加部は、設定11のとおり、入力の変化を契機にディレイ処理を開始する。
<保持部>
(設定21)保持部は、自身への入力の変化を契機に、すぐに保持処理を開始する(上記の条件2)。
(設定22)保持部は、保持期間は、入力を受け付けない。
(設定23)保持部は、保持期間経過時点で入力に変化がないときは、変化の無い入力値の出力を入力変化があるまで継続する。入力変化が有るときは設定21のとおり、保持部は、入力の変化を契機に保持処理を開始する。
(設定21)保持部は、自身への入力の変化を契機に、すぐに保持処理を開始する(上記の条件2)。
(設定22)保持部は、保持期間は、入力を受け付けない。
(設定23)保持部は、保持期間経過時点で入力に変化がないときは、変化の無い入力値の出力を入力変化があるまで継続する。入力変化が有るときは設定21のとおり、保持部は、入力の変化を契機に保持処理を開始する。
図12は、図11に示す、AND0、ディレイ付加部1、保持部1の系列を示す図である。図12及び以下の説明はAND0の系列についての説明であるが、他のAND2〜AND31の系列についてもAND0の説明は該当する。
図13は、図12のAND演算に対して、20msのディレイ設定(出力ディレイ20ms)、0msの保持設定をした場合のタイミングチャートを示す。「保持期間=0ms」とは、図12で保持部1が存在せず、出力(Y10)がそのまま出力(Y20)として出力されるのと同じことである。図13に示すように、AND演算結果のX3=1は、20ms遅延してY10=1として出力する。この場合、AND演算結果(X3)が10ms後に0になっても、20msの期間、出力Y10はそのまま1が出力される。
図13を、更に詳しく説明する。
(1)時間(t0)
時間(t0)においてディレイ付加部1の入力である演算結果(X3)が、0から1に変化する。よってディレイ付加部1は出力ディレイ=20msのカウントダウンを開始し、ディレイ期間301である20msのカウントダウンが終了するまで「X3=1」は出力しない。またディレイ付加部1は、カウントダウンが終了するまでのディレイ期間301である時間(t0)〜時間(t20)の間は、入力を受け付けない。
(2)時間(t20)(Y10=1の出力開始)
カウントダウンの終了する時刻(t20)において、ディレイ付加部1は、入力である「X3=1」を「Y10=1」として、出力を開始する。この際、ディレイ付加部1は時間(t0)〜(t20)のディレイ期間301は入力を受け付けない。
(3)時間(t20)(X=0の入力の受け付け)
また、時間(t20)でカウントダウンが終了する。このとき入力(X3)は前回(時間(t0))のX3=1からX3=0になっている。よってカウントダウンが終了した時点で入力変化があるので、ディレイ付加部1はカウントダウンを開始し、カウントダウンが終了するまで「X3=0」は出力しない。
(4)時間(t40)(Y10=0の出力開始)
カウントダウンの終了する時刻(t40)において、ディレイ付加部1は、入力である「X3=0」を「Y10=0」として、出力を開始する。この際、ディレイ付加部1は時間(t20)〜(t40)のディレイ期間301は入力を受け付けない。
(5)時間(t40)(X3の入力処理)
また、時間(t40)でカウントダウンが終了する。このとき入力(X3)は前回(時間(t20))と同じX3=0である。よってカウントダウンが終了した時点で入力変化がないので、ディレイ付加部1は次の入力信号(X3)の変化があるまで信号変化ディレイ処理を開始することなく、Y10=0の出力を継続する。
(1)時間(t0)
時間(t0)においてディレイ付加部1の入力である演算結果(X3)が、0から1に変化する。よってディレイ付加部1は出力ディレイ=20msのカウントダウンを開始し、ディレイ期間301である20msのカウントダウンが終了するまで「X3=1」は出力しない。またディレイ付加部1は、カウントダウンが終了するまでのディレイ期間301である時間(t0)〜時間(t20)の間は、入力を受け付けない。
(2)時間(t20)(Y10=1の出力開始)
カウントダウンの終了する時刻(t20)において、ディレイ付加部1は、入力である「X3=1」を「Y10=1」として、出力を開始する。この際、ディレイ付加部1は時間(t0)〜(t20)のディレイ期間301は入力を受け付けない。
(3)時間(t20)(X=0の入力の受け付け)
また、時間(t20)でカウントダウンが終了する。このとき入力(X3)は前回(時間(t0))のX3=1からX3=0になっている。よってカウントダウンが終了した時点で入力変化があるので、ディレイ付加部1はカウントダウンを開始し、カウントダウンが終了するまで「X3=0」は出力しない。
(4)時間(t40)(Y10=0の出力開始)
カウントダウンの終了する時刻(t40)において、ディレイ付加部1は、入力である「X3=0」を「Y10=0」として、出力を開始する。この際、ディレイ付加部1は時間(t20)〜(t40)のディレイ期間301は入力を受け付けない。
(5)時間(t40)(X3の入力処理)
また、時間(t40)でカウントダウンが終了する。このとき入力(X3)は前回(時間(t20))と同じX3=0である。よってカウントダウンが終了した時点で入力変化がないので、ディレイ付加部1は次の入力信号(X3)の変化があるまで信号変化ディレイ処理を開始することなく、Y10=0の出力を継続する。
図14は、AND演算に対して0msのディレイ設定、20msの保持設定(保持期間302=20ms)をした場合のタイミングチャートを示す。0msのディレイ設定とは、図12でディレイ付加部1が存在せず、X3がそのままY10として出力されるのと同じことである。保持部1は、パラメータ部140に格納された保持期間1(図11)だけ、入力(Y10)の出力を継続する。保持期間1(図11)は図14では保持期間302が対応する。なお0msのディレイ設定なので、図14では、X3とY10とは同じである。
(1)時間(t0)
時間(t0)において保持部1の入力である演算結果(Y10)が、0から1に変化する。よって保持部1は、保持期間302の20msの間、「1」の出力を継続する。保持部1は保持期間302の間は入力を受け付けない。よって、時間(t10)で入力(Y10)が0になってもこれを受け付けず、保持部1は、保持期間302である20ms(t0〜t20)は、そのまま1を出力する。このように保持期間302は演算結果(入力(Y10))を継続して出力し、保持期間302の経過後に演算結果の0を受付け、その値を出力する。
(2)時間(t20)
保持期間302の経過した時間(t20)に、保持部1は入力(Y10)を受け付ける。時間(t20)では入力(Y10)が1から0に変化している。よって保持部1は、保持期間302の20ms(t20〜t40)の間、「0」の出力を継続する。
(3)時間(t40)
保持期間302の経過した時間(t40)に、保持部1は入力(Y10)を受け付ける。時間(t40)において、入力(Y10)は時間(t20)から0のまま変化していない。よって保持部1は、時間(t40)以降の期間402の間、入力(Y10)の変化があるまで、現在の入力であるY10=0の出力を継続する。
時間(t0)において保持部1の入力である演算結果(Y10)が、0から1に変化する。よって保持部1は、保持期間302の20msの間、「1」の出力を継続する。保持部1は保持期間302の間は入力を受け付けない。よって、時間(t10)で入力(Y10)が0になってもこれを受け付けず、保持部1は、保持期間302である20ms(t0〜t20)は、そのまま1を出力する。このように保持期間302は演算結果(入力(Y10))を継続して出力し、保持期間302の経過後に演算結果の0を受付け、その値を出力する。
(2)時間(t20)
保持期間302の経過した時間(t20)に、保持部1は入力(Y10)を受け付ける。時間(t20)では入力(Y10)が1から0に変化している。よって保持部1は、保持期間302の20ms(t20〜t40)の間、「0」の出力を継続する。
(3)時間(t40)
保持期間302の経過した時間(t40)に、保持部1は入力(Y10)を受け付ける。時間(t40)において、入力(Y10)は時間(t20)から0のまま変化していない。よって保持部1は、時間(t40)以降の期間402の間、入力(Y10)の変化があるまで、現在の入力であるY10=0の出力を継続する。
図15は、図12のもとで、AND演算に対して出力ディレイ20ms、保持期間を30msの設定とした場合のタイミングチャートを示す。出力ディレイ20msであるので、図15はY10まで図13と同じであり、Y20のみ異なる。ディレイ設定においては、条件(3)上述した下記の式(1)を満たすものとする。
ディレイ期間301(出力ディレイ)≦保持期間302 (1)
式(1)の条件を満たさない場合は、保持期間が0msの場合と同じ動作になる。図15では出力ディレイ(ディレイ値)は20msであり、保持期間は30msであるので上記の式(1)を満たしている。図15のY20を簡単に説明する。X1,X2,X3,Y10は図13と同一なので説明は省力する。
ディレイ期間301(出力ディレイ)≦保持期間302 (1)
式(1)の条件を満たさない場合は、保持期間が0msの場合と同じ動作になる。図15では出力ディレイ(ディレイ値)は20msであり、保持期間は30msであるので上記の式(1)を満たしている。図15のY20を簡単に説明する。X1,X2,X3,Y10は図13と同一なので説明は省力する。
(1)時間(t0)
時間(t20)において保持部1の入力である演算結果(Y10)が、0から1に変化する。よって保持部1は、保持期間302の30msの間、「1」の出力を継続する(t20〜t50)。保持部1は保持期間302の間は入力を受け付けない。よって、時間(t40)で入力(Y10)が0になってもこれを受け付けず、保持部1は、保持期間302である30ms(t20〜t50)は、そのまま1を出力する。
(2)時間(t50)
保持期間302の経過した時間(t50)に、保持部1は入力(Y10)を受け付ける。時間(50)では入力(Y10)が1から0に変化している。よって保持部1は、保持期間302の30ms(t50〜t80)の間、「0」の出力を継続する。
(3)時間(t80)
保持期間302の経過した時間(t80)に、保持部1は入力(Y10)を受け付ける。時間(t80)において、入力(Y10)は時間(t50)から0のまま変化していない。よって保持部1は、時間(t80)以降の期間402の間、入力(Y10)の変化があるまで、現在の入力であるY10=0の出力を継続する。
時間(t20)において保持部1の入力である演算結果(Y10)が、0から1に変化する。よって保持部1は、保持期間302の30msの間、「1」の出力を継続する(t20〜t50)。保持部1は保持期間302の間は入力を受け付けない。よって、時間(t40)で入力(Y10)が0になってもこれを受け付けず、保持部1は、保持期間302である30ms(t20〜t50)は、そのまま1を出力する。
(2)時間(t50)
保持期間302の経過した時間(t50)に、保持部1は入力(Y10)を受け付ける。時間(50)では入力(Y10)が1から0に変化している。よって保持部1は、保持期間302の30ms(t50〜t80)の間、「0」の出力を継続する。
(3)時間(t80)
保持期間302の経過した時間(t80)に、保持部1は入力(Y10)を受け付ける。時間(t80)において、入力(Y10)は時間(t50)から0のまま変化していない。よって保持部1は、時間(t80)以降の期間402の間、入力(Y10)の変化があるまで、現在の入力であるY10=0の出力を継続する。
実施の形態3では、I/Oデバイス100は、「自局入力、自局出力」及び「他局入力、他局出力」を対象とする演算結果に対して、ディレイ付加及び値保持を行って出力する。その際、ディレイ時間及び保持時間は、それぞれパラメータ部140に格納されたパラメータ(ディレイ値、保持期間)により定まる。入出力が同一のI/Oデバイスの場合は、他のデバイスと通信せず、自身であるI/Oデバイス内で演算後、ディレイ付加及び保持を行い、演算結果を出力する。入力と出力のI/Oデバイスが異なる場合は、I/Oデバイス間で通信し、出力側のI/Oデバイスが演算後、ディレイ付加及び保持を行い出力する。
図16は、ディレイ付加部によるディレイ付加と、保持部による保持との効果を説明する図である。図16では、「ディレイ付加及び保持」を「ディレイ付加」と記載している。上側の3つのグラフ501〜503が、実施の形態3の「ディレイ付加及び保持」が無い場合を示す。下側の3つのグラフ602〜604が、実施の形態3の「ディレイ付加及び保持」がある場合を示す。グラフ501はI/Oデバイス100への入力を示す。グラフ502はI/Oデバイス100の「ディレイなし」の出力を示す。グラフ502は、グラフ501に対して出力が1ms遅れている。これはデバイス間通信に要する時間である。図16に示すように、デバイス間通信の周期は1msである。グラフ503はCPUデバイス10を介することによる「ディレイ付加」の出力を示す。CPUデバイス10を介する「ディレイ付加」の場合、CPUデバイス10との通信周期5msより早く出力できないので、I/Oデバイス100の演算結果の出力タイミングは、CPUデバイス10との通信周期5msの粒度となる。つまり、CPUデバイス10を介する「ディレイ付加」の場合、「ディレイ無し」の出力701に対して、「ディレイ付加」の出力702は、CPUデバイス10との通信周期5msの後である。
一方、実施の形態3を示すグラフ602〜604は、次の様である。グラフ602はグラフ502と同じ内容を示すので説明は省略する。グラフ603は、第1のディレイ設定量801を設定した場合の出力を示す。グラフ604は、第2のディレイ設定量802を設定した場合の出力を示す。グラフ603に示すように、I/Oデバイス100は、CPUデバイス10との通信周期5msより早く出力できる。つまり、出力タイミングは通信周期の粒度に限定されない。またグラフ604に示すように、ディレイ設定量801に対して異なるディレイ設定のディレイ設定量802を設定することで、連続的な動作を短時間で順に行うことができる。つまり図16に示すようにディレイ設定量801とディレイ設定量801との出力803と出力804との間隔は、自由に設定できる。
以上のように実施の形態3のI/Oデバイス100は、CPUデバイス10との通信を行わずにディレイ付加・保持部190によってディレイ付加及び遅延ができる。このため、以下の効果がある。
(1)短い時間のディレイ付加及び演算値の保持が実現できる。
(2)出力側のI/Oデバイス100でディレイ付加及び保持を行うため、出力タイミングは、通信周期の粒度に限定されない。
(3)また、ディレイ付加及び保持の設定値レジスタの値は、CPUデバイス10によって、パラメータ部140にパラメータとして設定するので、I/Oバス99経由で変更できる。この結果、例えば、機器の緊急エラー信号が入力端子170−1からI/Oデバイス100に入力された後、I/Oデバイスの複数の出力信号(図12において、Y10として出力される演算結果X3)を所定の順序で変更し、複数の機器の緊急停止順序に従って、できるだけ短時間で停止処理を行うという要求に対応することができる。
(1)短い時間のディレイ付加及び演算値の保持が実現できる。
(2)出力側のI/Oデバイス100でディレイ付加及び保持を行うため、出力タイミングは、通信周期の粒度に限定されない。
(3)また、ディレイ付加及び保持の設定値レジスタの値は、CPUデバイス10によって、パラメータ部140にパラメータとして設定するので、I/Oバス99経由で変更できる。この結果、例えば、機器の緊急エラー信号が入力端子170−1からI/Oデバイス100に入力された後、I/Oデバイスの複数の出力信号(図12において、Y10として出力される演算結果X3)を所定の順序で変更し、複数の機器の緊急停止順序に従って、できるだけ短時間で停止処理を行うという要求に対応することができる。
実施の形態3のディレイ付加・保持部190は、図11に示すように、I/Oデバイス100の出力信号(演算結果)毎に、ディレイ用、保持用に、カウンタを有するディレイ付加部、保持部を備える。このカウンタが、ディレイ期間、保持期間をカウントダウンする。ディレイ付加部1〜32及び保持部1〜32は、パラメータ部140に格納された対応するディレイ値1〜32、対応する保持期間1〜32のカウントダウンが完了するまで、ディレイ及び保持を行う。この構成であれば、データベース等のためのメモリを必要とせず、構成が簡易となる。
実施の形態4.
図17は、実施の形態4のI/Oデバイス100の構成図である。実施の形態4のI/Oデバイス100は、実施の形態3のI/Oデバイス100において、ディレイ付加・保持部190の後段に、複合演算部195(第2演算部)を加えた構成である。図17に示すように、実施の形態4のI/Oデバイス100は、演算データ抽出部150A、演算部160A、ディレイ付加・保持部190Aからなる第1系列101と、演算データ抽出部150B、演算部160B、ディレイ付加・保持部190Bからなる第2系列102とを備える。受信部130は、演算データ抽出部150A,150Bに他局入力と他局出力を出力する。入力部170は、演算データ抽出部150A,150Bに自局入力を出力する。出力部180は、演算データ抽出部150A,150Bに自局出力を出力する。ディレイ付加・保持部190A,190Bは、複合演算部195に演算結果(図12に示す遅延、保持されたY20)を出力する。複合演算部195は、ディレイ付加・保持部190A,190Bから出力された演算結果を用いて演算処理を実行する。パラメータ部140は、演算データ抽出部150A、150B等にパラメータを提供する。この場合、パラメータ部140は、パラメータとして、ディレイ付加・保持部190A,190Bから出力される各演算結果を用いて行う演算処理の方式を定義する演算定義情報を格納しており、複合演算部195は、パラメータ部140の演算定義情報に従って演算を実行する。
図17は、実施の形態4のI/Oデバイス100の構成図である。実施の形態4のI/Oデバイス100は、実施の形態3のI/Oデバイス100において、ディレイ付加・保持部190の後段に、複合演算部195(第2演算部)を加えた構成である。図17に示すように、実施の形態4のI/Oデバイス100は、演算データ抽出部150A、演算部160A、ディレイ付加・保持部190Aからなる第1系列101と、演算データ抽出部150B、演算部160B、ディレイ付加・保持部190Bからなる第2系列102とを備える。受信部130は、演算データ抽出部150A,150Bに他局入力と他局出力を出力する。入力部170は、演算データ抽出部150A,150Bに自局入力を出力する。出力部180は、演算データ抽出部150A,150Bに自局出力を出力する。ディレイ付加・保持部190A,190Bは、複合演算部195に演算結果(図12に示す遅延、保持されたY20)を出力する。複合演算部195は、ディレイ付加・保持部190A,190Bから出力された演算結果を用いて演算処理を実行する。パラメータ部140は、演算データ抽出部150A、150B等にパラメータを提供する。この場合、パラメータ部140は、パラメータとして、ディレイ付加・保持部190A,190Bから出力される各演算結果を用いて行う演算処理の方式を定義する演算定義情報を格納しており、複合演算部195は、パラメータ部140の演算定義情報に従って演算を実行する。
複合演算部195は、論理和(OR)等の論理演算を行うことが可能であり、以上のように演算部160が演算処理を行い、ディレイ付加・保持部190A、190Bがディレイ付加や保持を行った後に、複合演算部195が演算を行うことが可能である。このため、少ない回路規模で複雑な出力が得られる。
なお、図17では第1系列101、第2系列102の2系列あるが、第1系列101のみの構成でも構わない。この場合、ディレイ付加・保持部190Aからは図4に示すようにM(1)〜M(32)の演算結果が出力されるので、複合演算部195は、これら32個の演算結果を用いることにより、パラメータ部140の演算定義情報に従って演算してもよい。
また、実施の形態3においては、図11に示すように「ディレイ付加部1及び保持部1」〜「ディレイ付加部32及び保持部32」の32系列の場合を示したが例示である。系列は1系列でもよいし、33系列以上でも構わない。
実施の形態5.
図18、図19を参照して実施の形態5のI/Oデバイス100の構成を説明する。実施の形態5のI/Oデバイス100は、実施の形態3におけるI/Oデバイス100のディレイ付加・保持部190(図11)を、図18に示すディレイ付加・保持部190−5に置き換えた構成である。図18は図11に対応する。実施の形態3のディレイ付加・保持部190では、図11に示すように、ディレイ付加部と保持部とが、独立してそれぞれカウンタを持つ構成である。これに対して実施の形態5のディレイ付加・保持部190−5では、図18に示すように、ディレイ付加と保持とを、1つのカウンタで実現する。例えば図18のサブディレイ付加・保持部1−5は、図11のディレイ付加部1と保持部1とを併せた機能を有する。他のサブディレイ付加・保持部2−5〜32−5についても同様である。ディレイのみ、保持のみを行う場合は実施の形態3と同じ動作であるが、ディレイ及び保持の両方を行う場合は、以下の動作となる。
図18、図19を参照して実施の形態5のI/Oデバイス100の構成を説明する。実施の形態5のI/Oデバイス100は、実施の形態3におけるI/Oデバイス100のディレイ付加・保持部190(図11)を、図18に示すディレイ付加・保持部190−5に置き換えた構成である。図18は図11に対応する。実施の形態3のディレイ付加・保持部190では、図11に示すように、ディレイ付加部と保持部とが、独立してそれぞれカウンタを持つ構成である。これに対して実施の形態5のディレイ付加・保持部190−5では、図18に示すように、ディレイ付加と保持とを、1つのカウンタで実現する。例えば図18のサブディレイ付加・保持部1−5は、図11のディレイ付加部1と保持部1とを併せた機能を有する。他のサブディレイ付加・保持部2−5〜32−5についても同様である。ディレイのみ、保持のみを行う場合は実施の形態3と同じ動作であるが、ディレイ及び保持の両方を行う場合は、以下の動作となる。
図19は、図12のAND演算に対して、出力ディレイ20ms、保持期間30msのディレイ設定とした場合のタイミングチャートである。このディレイ設定は図15と同じである。図18のサブディレイ付加・保持部1−5を例に説明する。この場合、図12のディレイ付加部1と保持部1とがサブディレイ付加・保持部1−5となる。サブディレイ付加・保持部1−5は、図19に示すように、AND0の演算結果の’1’(時間t0)を20ms遅延して出力(時間t20)し、AND演算結果が10ms後(時間t10)に’0’になっても、30ms(時間t20〜t50)は、そのまま’1’を出力する。このように、サブディレイ付加・保持部1−5は、演算結果を遅延させている期間(ディレイ期間551のt0〜t20)の演算結果の変化を受付けず、出力に反映しない。つまり、サブディレイ付加・保持部1−5は、ディレイ期間551(t0〜t10)に入力X2に変化があっても、時間t0における演算結果’1’を、ディレイ期間551(t0〜t10)の入力X2とする。またサブディレイ付加・保持部1−5は、ディレイ期間551後、保持期間552の30msから、ディレイ期間551の20msを差し引いた時間ΔT=10msまでの間は、入力X2である演算結果を受付けない。
ここで
ΔT=保持期間552−ディレイ期間551
である。
つまり、図19に示すように、ディレイ付加・保持部1−5は、時間t0の入力’1’を、
「ディレイ期間551+ΔT」の期間(t0〜t30)維持することになるが、この維持する入力’1’はディレイ期間551の経過後(t20)から出力され、その期間は
「ディレイ期間551+ΔT」=ディレイ期間551+保持期間552−ディレイ期間551=保持期間552ということになる。サブディレイ付加・保持部1−5は、ディレイ期間551の経過後、差し引いた時間ΔT(この例では10ms)が経った時点の時間t30(保持期間552の終了の20ms前)において、AND演算結果である’0’を受付け、20ms(保持期間552−ΔT=ディレイ期間551)遅延させて時間t50で出力する。
ここで
ΔT=保持期間552−ディレイ期間551
である。
つまり、図19に示すように、ディレイ付加・保持部1−5は、時間t0の入力’1’を、
「ディレイ期間551+ΔT」の期間(t0〜t30)維持することになるが、この維持する入力’1’はディレイ期間551の経過後(t20)から出力され、その期間は
「ディレイ期間551+ΔT」=ディレイ期間551+保持期間552−ディレイ期間551=保持期間552ということになる。サブディレイ付加・保持部1−5は、ディレイ期間551の経過後、差し引いた時間ΔT(この例では10ms)が経った時点の時間t30(保持期間552の終了の20ms前)において、AND演算結果である’0’を受付け、20ms(保持期間552−ΔT=ディレイ期間551)遅延させて時間t50で出力する。
ディレイ設定においては、下記の条件を満たす必要がある。
ディレイ期間(出力ディレイ)≦保持期間
この条件をなくすためには、出力ディレイの設定により遅延させる値を一時的に複数保持する必要があるため、回路規模が著しく大きくなってしまう。
ディレイ期間(出力ディレイ)≦保持期間
この条件をなくすためには、出力ディレイの設定により遅延させる値を一時的に複数保持する必要があるため、回路規模が著しく大きくなってしまう。
実施の形態6.
図20は実施の形態6のI/Oデバイス100の構成を示す図である。図20は実施の形態4のI/Oデバイス100の構成を示す図17に相当する。図20は、実施の形態4の図17において、ディレイ付加・保持部190を、実施の形態5のディレイ付加・保持部190−5に置き換えた構成である。図20では、ディレイ付加・保持部190A−5、190B−5が、共に図18のディレイ付加・保持部190−5の構成である。
図20は実施の形態6のI/Oデバイス100の構成を示す図である。図20は実施の形態4のI/Oデバイス100の構成を示す図17に相当する。図20は、実施の形態4の図17において、ディレイ付加・保持部190を、実施の形態5のディレイ付加・保持部190−5に置き換えた構成である。図20では、ディレイ付加・保持部190A−5、190B−5が、共に図18のディレイ付加・保持部190−5の構成である。
図20の構成とすることで、図17の場合と同様に、少ない回路規模で複雑な出力が得られる。
なお、図20では第1系列101−5、第2系列102−5の2系列あるが、第1系列101−5のみの構成でも構わない。この場合、ディレイ付加・保持部190A−5からは図4に示すようにM(1)〜M(32)の演算結果が出力されるのは、図17の場合と同様である。
また、図17の場合と同様に、実施の形態6においても、「サブディレイ付加・保持部1−5」〜「サブディレイ付加・保持部32−5」の32系列は例示である。系列は1系列でもよいし、33系列以上でも構わない。
10 CPUデバイス、100−1,100−2,100−3 I/Oデバイス、110 I/F部、120 送信部、130 受信部、140 パラメータ部、141 演算処理、150,150−2 演算データ抽出部、151 第1の選択部、152 第2の選択部、160 演算部、170 入力部、180 出力部、170−1 入力端子、180−1 出力端子、190,190−5 ディレイ付加・保持部、195 複合演算部、1000 PLC、99 I/Oバス。
Claims (10)
- CPU(Central Processing Unit)デバイスと、複数のI/O(Input/Output)デバイスとを備えたプログラマブルロジックコントローラで使用される前記I/Oデバイスにおいて、
前記CPUデバイスと通信すると共に他の前記I/Oデバイスと通信するインターフェイス部であって、他の前記I/Oデバイスから、前記他のI/Oデバイスへの入力情報と他のI/Oデバイスからの出力情報とを受信するインターフェイス部と、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記I/Oデバイスの入力情報と出力情報とを入力すると共に、自身である前記I/Oデバイスへの入力情報と、自身である前記I/Oデバイスからの出力情報とを入力し、入力した他の前記I/Oデバイスの入力情報と出力情報と、入力した自身である前記I/Oデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部と
を備えたことを特徴とするI/Oデバイス。 - 前記演算データ抽出部は、
それぞれが前記演算データを抽出する複数のサブ抽出部を備え、
前記パラメータ部は、
前記サブ抽出部ごとに、前記サブ抽出部に対応する前記抽出条件を格納し、
それぞれの前記サブ抽出部は、
対応する前記パラメータに従って前記演算データを抽出することを特徴とする請求項1記載のI/Oデバイス。 - 他の前記I/Oデバイスの入力情報と出力情報と、自身である前記I/Oデバイスへの入力情報と、自身である前記I/Oデバイスからの出力情報とは、
いずれも、複数のビットからなるビット情報であり、
前記パラメータ部は、
それぞれの前記サブ抽出部に対応する前記抽出条件として、他の前記I/Oデバイスの入力情報と出力情報と、自身である前記I/Oデバイスへの入力情報と、自身である前記I/Oデバイスからの出力情報とのうちのいずれかを、前記演算データの抽出元として指定すると共に、指定された前記抽出元におけるビット値を抽出すべきビット位置を指定する前記抽出条件を格納し、
それぞれの前記サブ抽出部は、
対応する前記抽出条件に従って、指定された前記抽出元の指定された前記ビット位置から、前記演算データとして、前記ビット値を抽出することを特徴とする請求項2記載のI/Oデバイス。 - 前記インターフェイス部は、
他の全てのI/Oデバイスから前記入力情報と前記出力情報とを受信したときに、同期信号を前記演算データ抽出部に出力し、
前記演算データ抽出部は、
前記同期信号を入力したときに、前記演算データを前記演算部に出力することを特徴とする請求項1〜3のいずれかに記載のI/Oデバイス。 - CPU(Central Processing Unit)デバイスと、複数のI/O(Input/Output)デバイスとを備えたプログラマブルロジックコントローラにおいて、
前記複数のI/Oデバイスの各I/Oデバイスは、
前記CPUデバイスと通信すると共に他の前記I/Oデバイスと通信するインターフェイス部であって、他のI/Oデバイスから、前記他のI/Oデバイスへの入力情報と他のI/Oデバイスからの出力情報とを受信するインターフェイス部と、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記I/Oデバイスの入力情報と出力情報とを入力すると共に、自身である前記I/Oデバイスへの入力情報と、自身である前記I/Oデバイスからの出力情報とを入力し、入力した他の前記I/Oデバイスの入力情報と出力情報と、入力した自身である前記I/Oデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って、前記演算データを抽出する演算データ抽出部と、
前記演算データ抽出部が抽出した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行する演算部と
を備えたことを特徴とするプログラマブルロジックコントローラ。 - CPU(Central Processing Unit)デバイスと、複数のI/O(Input/Output)デバイスとを備えたプログラマブルロジックコントローラで使用される前記I/Oデバイスが行う演算方法において、
インターフェイス部が、
前記CPUデバイスと通信すると共に他の前記I/Oデバイスと通信するインターフェイス部であって、他のI/Oデバイスから、前記他のI/Oデバイスへの入力情報と他のI/Oデバイスからの出力情報とを受信し、
パラメータ部が、
複数の演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータとを格納し、
演算データ抽出部が、
前記インターフェイス部が受信した他の前記I/Oデバイスの入力情報と出力情報とを入力すると共に、自身である前記I/Oデバイスへの入力情報と、自身である前記I/Oデバイスからの出力情報とを入力し、入力した他の前記I/Oデバイスの入力情報と出力情報と、入力した自身である前記I/Oデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力し、
演算部が、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記複数の演算処理を並列に実行することを特徴とする演算方法。 - 前記パラメータ部は、さらに、
前記演算処理による演算結果を出力する出力タイミングと前記演算処理による演算結果の出力継続時間とを指定する出力期間情報を格納し、
前記I/Oデバイスは、さらに、
前記演算部によって並列に実行された前記複数の演算処理のそれぞれの前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力するそれぞれの前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力したそれぞれの前記演算結果を出力する出力期間決定部
を備えたことを特徴とする請求項1〜4のいずれかに記載のI/Oデバイス。 - 前記パラメータ部は、さらに、
前記出力期間決定部から出力されるそれぞれの前記演算結果を用いて行う演算処理を定義する演算定義情報を格納し、
前記I/Oデバイスは、さらに、
前記出力期間決定部から出力されるそれぞれの前記演算結果を入力し、前記パラメータ部に格納された前記演算定義情報に従って、入力した前記演算結果を用いた前記演算処理を実行する第2演算部を備えたことを特徴とする請求項7記載のI/Oデバイス。 - CPU(Central Processing Unit)デバイスと、複数のI/O(Input/Output)デバイスとを備えたプログラマブルロジックコントローラで使用される前記I/Oデバイスにおいて、
前記CPUデバイスと通信すると共に他の前記I/Oデバイスと通信するインターフェイス部であって、他の前記I/Oデバイスから、前記他のI/Oデバイスへの入力情報と他のI/Oデバイスからの出力情報とを受信するインターフェイス部と、
演算処理の方式と、前記演算処理に使用される演算データを抽出するための抽出条件を示すパラメータと、前記演算処理による演算結果を出力する出力タイミングと前記演算処理による演算結果の出力継続時間とを指定する出力期間情報とを格納するパラメータ部と、
前記インターフェイス部が受信した他の前記I/Oデバイスの入力情報と出力情報とを入力すると共に、自身である前記I/Oデバイスへの入力情報と、自身である前記I/Oデバイスからの出力情報とを入力し、入力した他の前記I/Oデバイスの入力情報と出力情報と、入力した自身である前記I/Oデバイスの入力情報と出力情報とのそれぞれを対象として、前記パラメータ部に格納された前記パラメータに従って前記演算データを抽出し、抽出した前記演算データを出力する演算データ抽出部と、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記演算処理の方式に従って、前記演算処理を実行する演算部と、
前記演算部の前記演算処理による前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力する前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力した前記演算結果を出力する出力期間決定部とを備えたことを特徴とするI/Oデバイス。 - 前記パラメータ部は、
複数の演算処理の方式を格納し、
前記演算部は、
前記演算データ抽出部が出力した前記演算データを用いることにより、前記パラメータ部に格納された前記複数の演算処理の方式に従って、前記演算処理を実行し、
前記出力期間決定部は、
前記演算部によって実行された前記演算処理の前記演算結果を入力すると共に、前記パラメータ部に格納された前記出力期間情報に従って、入力する前記演算結果の出力タイミングと出力継続時間とを決定し、決定に従って、入力した前記演算結果を出力することを特徴とする請求項9記載のI/Oデバイス。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2014521226A JP5788093B2 (ja) | 2012-06-14 | 2013-05-21 | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 |
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JPPCT/JP2012/065207 | 2012-06-14 | ||
PCT/JP2012/065207 WO2013186889A1 (ja) | 2012-06-14 | 2012-06-14 | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 |
PCT/JP2013/064120 WO2013187191A1 (ja) | 2012-06-14 | 2013-05-21 | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 |
JP2014521226A JP5788093B2 (ja) | 2012-06-14 | 2013-05-21 | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5788093B2 true JP5788093B2 (ja) | 2015-09-30 |
JPWO2013187191A1 JPWO2013187191A1 (ja) | 2016-02-04 |
Family
ID=54207214
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2014521226A Expired - Fee Related JP5788093B2 (ja) | 2012-06-14 | 2013-05-21 | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP5788093B2 (ja) |
-
2013
- 2013-05-21 JP JP2014521226A patent/JP5788093B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JPWO2013187191A1 (ja) | 2016-02-04 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2013187191A1 (ja) | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 | |
TWI570744B (zh) | 積體電路、包含該積體電路之系統、及該系統之操作方法 | |
US10282343B2 (en) | Semiconductor device | |
JP2007220046A (ja) | バス装置、バスシステムおよび情報転送方法 | |
WO2015176475A1 (zh) | Fifo数据缓存器及其进行时延控制的方法、计算机存储介质 | |
US20140359195A1 (en) | Crossbar switch, information processing apparatus, and information processing apparatus control method | |
JPH0784863A (ja) | 情報処理装置およびそれに適した半導体記憶装置 | |
KR100631778B1 (ko) | 데이터 버퍼 회로, 인터페이스 회로 및 그 제어 방법 | |
CN114047955A (zh) | 指令发射装置、方法、芯片、计算机设备及存储介质 | |
US20090013144A1 (en) | Integrated circuit, and integrated circuit system | |
JP5788093B2 (ja) | I/oデバイス、プログラマブルロジックコントローラ及び演算方法 | |
US9880961B2 (en) | Asynchronous bridge circuitry and a method of transferring data using asynchronous bridge circuitry | |
JP6757717B2 (ja) | マルチプロセッサシステムにおけるメモリの管理 | |
JP2006164070A5 (ja) | ||
CN106815175A (zh) | 数据传输设备 | |
JP6493044B2 (ja) | マルチプロセッサシステム | |
US8462167B2 (en) | Memory access control circuit and image processing system | |
JP2019101969A (ja) | 演算処理装置および演算処理装置の制御方法 | |
JP5970958B2 (ja) | 情報処理装置、遅延差測定方法、及び遅延差測定プログラム | |
JP4765003B2 (ja) | マルチプロセッサシステム | |
JP2013120587A (ja) | シリアル転送装置及びシリアル転送方法 | |
JP2012168773A (ja) | バスシステムおよびアクセス制御方法 | |
JP6384359B2 (ja) | 分散共有メモリを有する情報処理装置、方法、および、プログラム | |
JP2018032320A (ja) | バスシステム及びバスシステムの制御方法 | |
JP2015197898A (ja) | アレイ型演算装置の制御装置及び方法。 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20150630 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20150728 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5788093 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |