(57)【要約】【課題】割り込み処理が発生しても、管理プロセッサとプログラム実行用プロセッサとが並列に処理を実行することができ、以て高速にスキャン処理を実行することができる。【解決手段】特殊Ｉ／Ｏモジュール１０２ｉ（ｉ＝ａ，ｂ，…，ｎ）は、バンク切替部１０４ｉ（ｉ＝ａ，ｂ，…，ｎ）を設けており、これにより、自己へのアクセスを許可している。プログラム実行用プロセッサ１２には、全ての特殊Ｉ／Ｏモジュール１０２ｉへのアクセスを統括的に制御する統括バンク制御部１８が設けられており、管理用プロセッサ１１又はプログラム実行用プロセッサ１２が特殊Ｉ／Ｏモジュール１０２にアクセスする際には、アクセスしたい特殊Ｉ／Ｏモジュール１０２ｉのアドレスを統括バンク制御部１８にセットし、これに基づき、プログラム実行用プロセッサ１２が該当特殊Ｉ／Ｏモジュール１０２ｉのバンク切替部１０４ｉのフラグをセットするようになっている。【選択図】      図１
2004164406.tif 000002
【特許請求の範囲】
【請求項１】
一括入出力処理及び通信処理を実行する管理プロセッサと、ユーザプログラムを実行するプログラム実行用プロセッサとがそれぞれ、Ｉ／Ｏモジュール内に記憶する前記Ｉ／Ｏモジュールへのアクセス可否を示すアクセス可否情報に基づいて、前記Ｉ／Ｏモジュールにアクセスするプログラマブルコントローラにおいて、
前記アクセス可否情報を一元的に管理するために、前記プログラム実行用プロセッサは、
前記管理プロセッサ又は前記プログラム実行用プロセッサが所望のＩ／Ｏモジュールにアクセスする場合には、前記所望のＩ／Ｏモジュールのアドレスを記憶するアドレス記憶手段と、
前記アドレス記憶手段に記憶されたアドレスを持つ前記所望のＩ／Ｏモジュールの前記アクセス可否情報をアクセス可とするアクセス管理手段と、
を有することを特徴とするプログラマブルコントローラ。
【請求項２】
通信処理を実行する通信処理プロセッサを有し、
前記アドレス記憶手段は、
前記通信処理プロセッサが所望のＩ／Ｏモジュールにアクセスする場合には、前記所望のＩ／Ｏモジュールのアドレスを記憶することを特徴とする請求項１記載のプログラマブルコントローラ。
【請求項３】
一括入出力処理を実行する一括入出力処理プロセッサを有し、
前記アドレス記憶手段は、
前記一括入出力処理プロセッサが所望のＩ／Ｏモジュールにアクセスする場合には、前記所望のＩ／Ｏモジュールのアドレスを記憶することを特徴とする請求項１又は２記載のプログラマブルコントローラ。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、加工、組立て等のマシン制御、製造ラインの制御、鉄鋼や製紙などのプラント制御、上下水道、ビル管理などの公共システムの制御など、産業システムの制御に広く利用されているプログラマブルコントローラに関する。
【０００２】
【従来の技術】
図１０はＣＰＵモジュール９０、Ｉ／Ｏモジュール群１００を有する従来のプログラマブルコントローラ９の構成を示している。このような構成のプログラマブルコントローラ９においては、ＣＰＵモジュール９０が特殊Ｉ／Ｏモジュール１０２ｉ（ｉ＝ａ，ｂ，…，ｎ）とアクセスする場合には、特殊Ｉ／Ｏモジュール１０２ｉに設けられたバンク切替部１０４ｉ（ｉ＝ａ，ｂ，…，ｎ）を用いて、アクセスを制御するようになっている。このバンク切替部１０４ｉとは、特殊Ｉ／Ｏモジュール１０２ｉへのアクセス可否を示すバンク切替フラグを記憶するものであり、ＣＰＵモジュール９０によって、複数ある特殊Ｉ／Ｏモジュール１０２ｉのうちある１つの特殊Ｉ／Ｏモジュール１０２ｉのバンク切替部１０４ｉのバンク切替フラグがセットされると、それ以降その特殊Ｉ／Ｏモジュール１０２ｉのＩ／Ｏメモリ１０３ｉ（ｉ＝ａ，ｂ，…，ｎ）にアクセスできるようになっている。そして、ＣＰＵモジュール９０から特殊Ｉ／Ｏモジュール１０２ｉへの必要なアクセスが終了すると、バンク切替フラグがリセットされるようになっている。
【０００３】
図１１は、上述したバンク切替フラグをセット、リセットする際のバンク切替部１０４ｉへのアクセスの様子を示している。この図によれば、管理用プロセッサ１１及びプログラム実行用プロセッサ１２は、ともに特殊Ｉ／Ｏモジュール１０２ｉ内のバンク切替フラグを書き換えることができ、同時に特殊Ｉ／Ｏモジュール１０２ｉへのアクセスが可能となるので、このようなアクセス競合の事態を避けるため、従来のプログラマブルコントローラ９においては、両プロセッサそれぞれに処理命令がある場合には、両プロセッサが同時に並列処理をすることがないように、一方のプロセッサの処理を中断するようにしている。
【０００４】
このことをプログラマブルコントローラ９のスキャン処理に基づいて具体的に説明する。プログラマブルコントローラ９は、ＣＰＵモジュール９０内にある管理用プロセッサ１１が、まず実装されたＩ／Ｏモジュール全てに対して、一括入出力処理を行い、ユーザデータメモリ１３のデータを更新する。次に、管理用プロセッサ１１は、プログラム実行用プロセッサ１２に対して、ユーザプログラムメモリに格納されたユーザプログラムを実行するように起動処理をし、起動要求を受け付けたプログラム実行用プロセッサ１２はユーザプログラムを実行する。このユーザプログラムの中には、演算対象としてユーザデータや各Ｉ／Ｏモジュールが指定されている。そのため、一括入出力処理やユーザプログラム実行処理においては、両プロセッサは、Ｉ／Ｏモジュールにアクセスする可能性がある。
【０００５】
このようなスキャン処理において、割り込みがあった場合を示しているのが図１２である。図１２では、管理用プロセッサ１１が一括入出力処理中に割り込みがあった場合には、管理用プロセッサ１１は、プログラム実行用プロセッサ１２に割り込みプログラムを起動させるが、割り込みプログラム実行中にユーザプログラム実行用プロセッサ１２は特殊Ｉ／Ｏモジュール１０２ｉへアクセスする可能性があるため、自らは、一括処理を中止して、割り込みプログラムが終了するのを待つ。
【０００６】
また、スキャン中に通信割り込みがあった場合を示しているのが図１３である。図１３では、プログラム実行用プロセッサ１２がメインプログラム実行中に通信割り込みがあった場合には、通信割り込み処理中に管理用プロセッサ１１が特殊Ｉ／Ｏモジュール１０２ｉをアクセスする可能性があるため、管理用プロセッサ１１は実行中のメインプログラムを中断させて、通信処理を行う。そして、通信処理が終了すると、再びメインプログラムを実行させるため、プログラム実行プロセッサ１２を再開させる処理を行う。
【０００７】
【発明が解決しようとする課題】
以上のことから、一括入出力処理中に割り込みがあった場合には、割り込みプログラム実行処理と一括入出力処理を並列に処理することができないという課題がある。また、プログラム実行中に通信割り込みがあった場合には、通信処理とプログラム実行処理を並列に処理することができないという課題がある。
【０００８】
本発明は、上記の課題を解決するためになされたものであり、割り込み処理が発生しても、管理用プロセッサとプログラム実行用プロセッサとがそれぞれの処理を並列に実行することができ、以て高速にスキャン処理を実行することができるプログラマブルコントローラを提供することを目的とする。
【０００９】
【課題を解決するための手段】
上記目的を達成するため、本発明は、一括入出力処理及び通信処理を実行する管理プロセッサと、ユーザプログラムを実行するプログラム実行用プロセッサとがそれぞれ、Ｉ／Ｏモジュール内に記憶する前記Ｉ／Ｏモジュールへのアクセス可否を示すアクセス可否情報に基づいて、前記Ｉ／Ｏモジュールにアクセスするプログラマブルコントローラにおいて、前記アクセス可否情報を一元的に管理するために、前記プログラム実行用プロセッサは、前記管理プロセッサ又は前記プログラム実行用プロセッサが所望のＩ／Ｏモジュールにアクセスする場合には、前記所望のＩ／Ｏモジュールのアドレスを記憶するアドレス記憶手段と、前記アドレス記憶手段に記憶されたアドレスを持つ前記所望のＩ／Ｏモジュールの前記アクセス可否情報をアクセス可とするアクセス管理手段と、を有することを要旨とする。
【００１０】
本発明にあっては、管理プロセッサとプログラム実行用プロセッサとがそれぞれ、Ｉ／Ｏモジュール内に記憶するアクセス可否情報に基づいて、Ｉ／Ｏモジュールにアクセスするプログラマブルコントローラにおいて、管理プロセッサ又はプログラム実行用プロセッサが所望のＩ／Ｏモジュールにアクセスする場合には、プログラム実行用プロセッサのアドレス記憶手段に所望のＩ／Ｏモジュールのアドレスを書き込み、プログラム実行用プロセッサは、このアドレスに従って、所望のＩ／Ｏモジュールのアクセス可否情報をアクセス可とする。これにより、アクセス可否情報を有するＩ／Ｏモジュールへのアクセスを統括的に制御できるので、一括入出力処理と割り込みプログラム実行処理、通信処理とプログラム実行処理を並列に処理することができ、高速なスキャン処理が可能となる。
【００１１】
【発明の実施の形態】
以下、本発明の実施の形態を図面を用いて説明する。
【００１２】
＜第１の実施の形態＞
図１は、本発明の第１の実施の形態に係るプログラマブルコントローラ１の構成を示している。このプログラマブルコントローラ１は、ＣＰＵモジュール１０とＩ／Ｏモジュール群１００とがバス１１０を介して接続されている。
【００１３】
ＣＰＵモジュール１０は、プログラマブルコントローラ１全体を管理して、一括入出力処理や通信処理を行う管理用プロセッサ１１と、プログラム実行用プロセッサ１２  と、プログラムを格納するためのユーザプログラムメモリ１３  と、演算対象とするデータを停電時も保持するユーザデータメモリ１４と、Ｉ／Ｏ空間をアクセスするためのＩ／Ｏインタフェース１５  と、管理用プロセッサ１１とプログラム実行用プロセッサ１２とが独立に実行できるようにするバス間バッファ１６とバス１７とを備えている。
【００１４】
Ｉ／Ｏモジュール群１００は、広大なＩ／Ｏメモリを持たない一般Ｉ／Ｏモジュール１０１ｉ（ｉ＝ａ，ｂ，…，ｎ）と広大なＩ／Ｏメモリ１０３ｉ（ｉ＝ａ，ｂ，…，ｎ）を持つ特殊Ｉ／Ｏモジュール１０２ｉ（ｉ＝ａ，ｂ，…，ｎ）とを備えている。特殊Ｉ／Ｏモジュール１０２ｉ（ｉ＝ａ，ｂ，…，ｎ）は、バンク切替部１０４ｉ（ｉ＝ａ，ｂ，…，ｎ）を設けており、このバンク切替部１０４ｉに記憶されたアクセス可否情報としてのバンク切替フラグにより、自己へのアクセスを許可している。
【００１５】
プログラム実行用プロセッサ１２には、アドレス記憶手段及びアクセス管理手段としての統括バンク制御部１８が設けられており、全ての特殊Ｉ／Ｏモジュール１０２ｉへのアクセスを統括的に制御するようになっている。即ち、管理用プロセッサ１１又はプログラム実行用プロセッサ１２が特殊Ｉ／Ｏモジュール１０２ｉにアクセスする際には、アクセスしたい特殊Ｉ／Ｏモジュール１０２ｉのアドレスを統括バンク制御部１８にセットし、これに基づき、プログラム実行用プロセッサ１２が該当特殊Ｉ／Ｏモジュール１０２ｉのバンク切替フラグをセットするようになっている。従って、本発明においては、図２に示すように、統括バンク制御部１８に記憶されたアドレスに基づいて、プログラム実行用プロセッサ１２だけが特殊Ｉ／Ｏモジュール１０２ｉのバンク切替フラグ部１０４ｉにアクセスできるようになっているので、統括的に特殊Ｉ／Ｏモジュール１０２ｉへのアクセスを管理することができ、管理用プロセッサ１１とプログラム実行用プロセッサ１２の特殊Ｉ／Ｏモジュール１０２ｉへのアクセスが競合することが回避されるようになっている。
【００１６】
次に、特殊Ｉ／Ｏモジュール１０２ｉにアクセスする場合のＣＰＵモジュール１０の動作を示す図４のフローチャートを用いて、本実施の形態の作用を説明する。
【００１７】
まず、管理用プロセッサ１１又はプログラム実行用プロセッサ１２は、特殊Ｉ／Ｏモジュール１０２ｉとアクセスする場合には、プログラム実行用プロセッサ１２に設けられた統括バンク制御部１８に特殊Ｉ／Ｏモジュール１０２ｉのアドレスがセットされているか否かを参照する（ステップＳ１、Ｓ２）。特殊Ｉ／Ｏモジュール１０２ｉのアドレスがセットされていない場合には、特殊Ｉ／Ｏモジュール１０２ｉへのアクセス競合はないと判断して、統括バンク制御部１８にアクセスしたい特殊Ｉ／Ｏモジュール１０２ｉのアドレスをセットする（ステップＳ３）。
【００１８】
次に、プログラム実行用プロセッサ１２は、アクセスしたい特殊Ｉ／Ｏモジュール１０２ｉのバンク切替フラグをセットする（ステップＳ４）。これにより、管理用プロセッサ１１又はプログラム実行用プロセッサ１２は、所望の特殊Ｉ／Ｏモジュール１０２とアクセスが可能となるので、以後、データのやりとりを行う（ステップＳ５）。
【００１９】
アクセスが終了すると、プログラム実行用プロセッサ１２は、アクセスしていた特殊Ｉ／Ｏモジュール１０２ｉのバンク切替フラグをリセットする（ステップＳ６）。そして、バンク切替フラグがリセットされると、プログラム実行用プロセッサ１２は、統括バンク制御部１８に記憶されているアドレスをリセットする（ステップＳ７）。
【００２０】
一方、特殊Ｉ／Ｏモジュール１０２ｉのアドレスがセットされている場合には、特殊Ｉ／Ｏモジュール１０２ｉへのアクセス競合が発生するので、この状態で待ち状態となる（ステップＳ２、Ｓ８）。
【００２１】
従って、本実施の形態のプログラマブルコントローラ１によれば、プログラム実行用プロセッサ１２に統括バンク制御部１８を設けることにより、特殊Ｉ／Ｏモジュール１０２ｉへのアクセスを統括的に制御できるので、管理用プロセッサ１１とプログラム実行用プロセッサ１２のアクセス競合を一方のプロセッサの処理を中断することなく回避することができる。よって、図４に示すように管理用プロセッサ１１が一括入出力処理中に割り込みが発生しても、一括入出力処理を中断することなく、一括入出力処理と割り込みプログラム実行処理を同時に並列処理することができる。また、図５に示すようにプログラム実行用プロセッサ１２がメインプログラム実行中に通信割り込みが発生しても、メインプログラム実行処理を中断することなく、通信処理とメインプログラム実行処理を同時に並列処理することができる。
【００２２】
そして、並列処理が可能となることにより、スキャンに要する時間は削減され、高速にスキャン処理を実行することができる。
【００２３】
＜第２の実施の形態＞
図６は、本発明の第２の実施の形態に係るプログラマブルコントローラ２の構成を示している。本実施の形態のプログラマブルコントローラ２は、第１の実施の形態のプログラマブルコントローラ１に通信処理プロセッサ２１を付加したものである。通信処理プロセッサ２１は、管理用プロセッサ１１が行っていた通信処理を代替して行うプロセッサであり、特殊Ｉ／Ｏモジュール１０２ｉとアクセスする際には、アクセスしたい特殊Ｉ／Ｏモジュール１０２ｉのアドレスを統括バンク制御部１８にセットするようになっている。尚、第１の実施の形態のプログラマブルコントローラ１の構成と同一部分には同一符号を付して説明を省略する。
【００２４】
図７は、一括入出力処理と通信処理が重なった場合の各プロセッサの動作を示しているが、この図によれば、一括入出力処理と通信処理の重なりがあっても、管理用プロセッサ１１が一括入出力処理を、通信プロセッサ２１が通信処理を行うことができるので、一括入出力処理と通信処理を並列に処理することができる。
【００２５】
従って、本実施の形態のプログラマブルコントローラ２によれば、通信処理プロセッサ２１を付加することにより、第１の実施の形態のプログラマブルコントローラ１の効果に加えて、さらに一括入出力処理と通信処理を同時に並列処理することができる。
【００２６】
そして、並列処理が可能となることにより、スキャンに要する時間は削減され、高速にスキャン処理を実行することができる。
【００２７】
＜その他の実施の形態＞
図８は、本発明の第３の実施の形態に係るプログラマブルコントローラ３の構成を示している。本実施の形態のプログラマブルコントローラ３は、第１の実施の形態のプログラマブルコントローラ１に一括入出力処理プロセッサ３１を付加したものである。一括入出力処理プロセッサ３１は、管理用プロセッサ１１が行っていた一括入出力処理を代替して行うプロセッサであり、特殊Ｉ／Ｏモジュール１０２ｉとアクセスする際には、アクセスしたい特殊Ｉ／Ｏモジュール１０２ｉのアドレスを統括バンク制御部１８にセットするようになっている。尚、第１の実施の形態のプログラマブルコントローラ１の構成と同一部分には同一符号を付して説明を省略する。
【００２８】
このような構成により、プログラマブルコントローラ３は第２の実施の形態のプログラマブルコントローラ２と同様に、一括入出力処理と通信処理の重なりがあっても、一括入出力処理プロセッサ３１が一括入出力処理を、管理用プロセッサ１１が通信処理を行うことができるので、一括入出力処理と通信処理を並列に処理することができる。
【００２９】
従って、本実施の形態のプログラマブルコントローラ３によれば、一括入出力処理プロセッサ３１を付加することにより、第１の実施の形態のプログラマブルコントローラ１の効果に加えて、さらに一括入出力処理と通信処理を同時に並列処理することができる。
【００３０】
そして、並列処理が可能となることにより、スキャンに要する時間は削減され、高速にスキャン処理を実行することができる。
【００３１】
また、図９は、本発明の第４の実施の形態に係るプログラマブルコントローラ４の構成を示している。本実施の形態のプログラマブルコントローラ４は、第１の実施の形態のプログラマブルコントローラ１に通信処理プロセッサ２１及び一括入出力処理プロセッサ３１を付加したものである。尚、第１、第２及び第３の実施の形態のプログラマブルコントローラの構成と同一部分には同一符号を付して説明を省略する。
【００３２】
従って、本実施の形態のプログラマブルコントローラ４によれば、通信処理プロセッサ２１及び一括入出力処理プロセッサ３１を付加することにより、第１の実施の形態のプログラマブルコントローラ１の効果に加えて、さらに一括入出力処理と通信処理を同時に並列処理することができる。
【００３３】
そして、並列処理が可能となることにより、スキャンに要する時間は削減され、高速にスキャン処理を実行することができる。
【００３４】
【発明の効果】
以上説明したように、本発明のプログラマブルコントローラによれば、プログラム実行用プロセッサに統括バンク制御部を設けることにより、特殊Ｉ／Ｏモジュールへのアクセスを統括的に制御することができるので、管理用プロセッサとプログラム実行用プロセッサとがそれぞれの処理を並列に実行することが可能となり、以て高速なスキャン処理を実行することができる。
【図面の簡単な説明】
【図１】本発明の第１の実施の形態に係るプログラマブルコントローラの概略構成図である。
【図２】本発明の第１の実施の形態に係るプログラマブルコントローラのバンク切替部へのアクセスを説明する図である。
【図３】本発明の第１の実施の形態に係るプログラマブルコントローラの特殊Ｉ／Ｏモジュールにアクセスする場合の動作を説明するフローチャートである。
【図４】本発明の第１の実施の形態に係るプログラマブルコントローラにおいて、割り込み処理があった場合の管理用プロセッサ及びプログラム実行用プロセッサの動作を説明する図である。
【図５】本発明の第１の実施の形態に係るプログラマブルコントローラにおいて、通信割り込み処理があった場合の管理用プロセッサ及びプログラム実行用プロセッサの動作を説明する図である。
【図６】本発明の第２の実施の形態に係るプログラマブルコントローラの概略構成図である。
【図７】本発明の第２の実施の形態に係るプログラマブルコントローラにおいて、管理用プロセッサ、プログラム実行用プロセッサ及び通信プロセッサの動作を説明する図である。
【図８】本発明の第３の実施の形態に係るプログラマブルコントローラの概略構成図である。
【図９】本発明の第４の実施の形態に係るプログラマブルコントローラの概略構成図である。
【図１０】従来のプログラマブルコントローラの概略構成図である。
【図１１】従来のプログラマブルコントローラのバンク切替部へのアクセスを説明する図である。
【図１２】従来のプログラマブルコントローラにおいて、割り込み処理があった場合の管理用プロセッサ及びプログラム実行用プロセッサの動作を説明する図である。
【図１３】従来のプログラマブルコントローラにおいて、通信割り込み処理があった場合の管理用プロセッサ及びプログラム実行用プロセッサの動作を説明する図である。
【符号の説明】
１，２，３，４，９  プログラマブルコントローラ
１０，２０，３０，４０，９０  ＣＰＵモジュール
１１  管理用プロセッサ
１２  プログラム実行用プロセッサ
１３  ユーザプログラムメモリ
１４  ユーザデータメモリ
１５  Ｉ／Ｏインターフェース
１６  バッファ
１８  統括バンク制御部
１７，１１０  バス
２１  通信処理プロセッサ
３１  一括入出力処理プロセッサ
１００  Ｉ／Ｏモジュール群
１０１  一般Ｉ／Ｏモジュール
１０２  特殊Ｉ／Ｏモジュール
１０３  Ｉ／Ｏメモリ
１０４  バンク切替部
【図１】
2004164406.tif 000003
【図２】
2004164406.tif 000004
【図３】
2004164406.tif 000005
【図４】
2004164406.tif 000006
【図５】
2004164406.tif 000007
【図６】
2004164406.tif 000008
【図７】
2004164406.tif 000009
【図８】
2004164406.tif 000010
【図９】
2004164406.tif 000011
【図１０】
2004164406.tif 000012
【図１１】
2004164406.tif 000013
【図１２】
2004164406.tif 000014
【図１３】
2004164406.tif 000015