JP3548780B2 - プログラマブルコントローラ及びその制御方法 - Google Patents
プログラマブルコントローラ及びその制御方法 Download PDFInfo
- Publication number
- JP3548780B2 JP3548780B2 JP2002097793A JP2002097793A JP3548780B2 JP 3548780 B2 JP3548780 B2 JP 3548780B2 JP 2002097793 A JP2002097793 A JP 2002097793A JP 2002097793 A JP2002097793 A JP 2002097793A JP 3548780 B2 JP3548780 B2 JP 3548780B2
- Authority
- JP
- Japan
- Prior art keywords
- processing
- instruction
- general
- execution
- control device
- 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 - Lifetime
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
【発明の属する技術分野】
この発明は、プログラマブルコントローラに関し、特に、ユーザプログラムの実行処理または入出力リフレッシュ処理の実行中に、上位系、通信ユニット等の周辺コンポーネントに対する周辺サービス処理(イベント処理)を並列実行することにより、プログラマブルコントローラのCPUユニットのサイクルタイムを短縮してその応答性を改善したプログラマブルコントローラとその制御方法に関する。
【0002】
【従来の技術】
一般に、プログラマブルコントローラ(PLC)は、センサやスイッチ,アクチュエータが繋がれたI/Oユニットと、予め設定されたユーザプログラムを実行するCPUユニットと、ネットワークを介して上位系と通信する通信ユニットなどが組み合わされて構成されている。そして、プログラマブルコントローラの中型,小型機種では、CPUユニットに1個のMPU(Micro Processing Unit)が設けられ、その1個のMPUによりシーケンス制御が行われていた。そのシーケンス制御は、I/Oユニットからセンサなどの入力信号を取り込んで、ユーザプログラムの論理式に当てはめて演算し、その演算結果を出力信号としてI/Oユニットに送り、アクチュエータなどの制御対象を駆動して製造装置などを制御するというものである。なお、I/OデータはCPUユニットのI/Oメモリに記憶されるようになっている。
【0003】
図3は、この種のプログラマブルコントローラのCPUユニットにおける上記処理の概略を示すものである。この図3の処理においては、プログラマブルコントローラは、電源ONにより、まず、メモリ初期化や組み合わされている各ユニットの認識等の電源ON時処理を行う(ST301)。その後、供給電源の状態を確かめるためにバッテリ異常チェック等の共通処理を行う(ST302)。続いて、ユーザプログラムの実行等の演算処理をする(ST303)。なお、1サイクル目の入力データは、前回電源OFFしたときの入力信号を記憶しておいて、その記憶データをステップ301で呼び戻して演算することができる。こうすると、電源OFFしたときの処理の続きとして演算処理できる。また、別の方法としては、ステップ301を実行して初期化されたメモリ初期化データに基づく演算処理をすることもできる。
【0004】
続いて、外部のスイッチなどの制御機器からの入力データをI/Oメモリに書き込んだり、演算結果に基づいて更新されたI/Oデータを制御対象へ出力データとして送信する入出力リフレッシュ処理を行う(ST304)。その後、ネットワークを介して繋がれた、いわゆるツールとのやりとりや、接続時の通信処理等の周辺サービス処理(イベント処理)を実行する(ST305)。その後、ステップ302から305迄の処理を一連のサイクリック処理として順次繰り返し実行する。ここで、上記共通処理(ST302)から上記周辺サービス処理(ST305)までの時間を一般にこのCPUユニットのサイクルタイムと呼ぶ。
【0005】
また、この種のプログラマブルコントローラにおいては、図4に示すようにパーソナルコンピュータ等から構成される上位系401と複数の子プログラマブルコントローラ(子PLC)403,404,405,……との間に、親プログラマブルコントローラ(親PLC)402を介在させて、各種制御を可能にしたプログラマブルコントローラシステムを構築する場合がある。この場合、親PLC402が、3つの子PLCのデータを収集して、上位系にそのデータを送信することで、上位系でシステム全体の制御状態をモニタすることができる。
【0006】
【発明が解決しようとする課題】
ところで、上記図4に示したようなプログラマブルコントローラシステムを構築する場合に、上記親プログラマブルコントローラ402として、1個のMPUを搭載している機種を採用したとすると、図3に示したような共通処理(ST302)から周辺サービス処理(ST305)までの一連のサイクリック処理時間をサイクルタイムとして動作することになる。この際、上記ステップ303の演算処理のユーザプログラム実行処理時間を経て、入出力リフレッシュ処理が終了しないことには、周辺サービス処理に移行しないので、上位系または通信ユニットを通じてCPUユニットが優先度の高い周辺サービス処理(イベント処理)を行いたくても、周辺サービス処理のサイクルタイミングまで待たなければならず、応答性、すなわち速いイベント応答性が満足できないという問題があった。
【0007】
一方、サイクルタイムを短くするために、プログラマブルコントローラのCPUユニットに従来の1個のMPU(汎用演算処理装置に相当)に加えて専用のハードウェア回路としてのASIC(Application SpecificIntegrated Circuit:特定用途向け制御装置に相当)を実装したものがあった。ここで、特定用途向け制御装置は、ハードウェア回路でユーザプログラムの一部の命令を実行する機能を持たせたものである。ハードウェア回路で実行処理するので、ソフトウェア的に処理実行する汎用演算処理装置の処理スピードに比べて格段に速い特徴をもつ。但し、複雑な応用命令を行おうとすると、そのために専用のハードウェア回路を開発設計する必要が生じ、ASIC上ではなかなか実現することは困難である。よって、ビット演算や基本命令と呼ばれるある程度限られたいくつかの命令コマンドについて処理できるようにハードウェア回路を開発設計し、ASICを作るのが実情である。つまり、ハードウェア処理に適した命令コマンドの実行を行わせるように設計したASICチップを実装するのが実情である。
【0008】
一方、MPUとしての汎用演算処理装置は、ソフトウェア的に処理を行うので、応用命令と呼ばれる複雑な演算を必要とする命令コマンドでも、単純な演算としてのビット演算や基本命令でも処理することができる。但し、ソフトウェア的な処理のため、処理スピードはハードウェア回路に比べて遅い。
【0009】
上述の2つの装置を実装したプログラマブルコントローラでは、ユーザプログラム実行の演算処理時間を少し短くできる。これはユーザプログラムのうち、特定用途向け制御装置で処理できるものは、汎用演算処理装置で処理するのではなく、特定用途向け制御装置にて早く処理しているからである。実際には、ユーザプログラムを実行する際に、実行対象の命令一つずつを特定用途向け制御装置にて実行可能か否かの判断をし、実行可能と判断すれば、そのまま特定用途向け制御装置で実行をし、実行不可と判断すれば実行権を汎用演算処理装置に渡し、その命令を汎用演算処理装置で実行するようにしている。
【0010】
係る構成を採ることにより、サイクルタイムを短くすることはできる。しかし、この場合もユーザプログラム実行処理(演算処理)と、入出力リフレッシュ処理とイベント処理は、一連のサイクリック処理として順次繰り返して、逐次的に処理されているので、ユーザプログラム実行処理と入出力リフレッシュ処理が終了しないことには、イベント処理に移行しない。よって、周辺サービス処理を優先して実行したくてもできず、速いイベント応答性が満足できないという問題があった。
【0011】
そこで、この発明は、汎用演算処理装置と特定用途向け制御装置とを搭載したプログラマブルコントローラにおいて、ユーザプログラム実行処理中に、イベント処理を平行して実行させるようにして、イベント応答性を改善することを目的とする。
【0012】
【課題を解決するための手段】
上記目的を達成するために、この発明に係るプログラマブルコントローラは、汎用演算処理装置と特定用途向け制御装置とを搭載したプログラマブルコントローラにおいて、前記汎用演算処理装置から前記特定用途向け制御装置に対してユーザプログラムの実行処理依頼を行って前記特定用途向け制御装置を起動した場合に、前記汎用演算処理装置は、前記特定用途向け制御装置が依頼されたユーザプログラムを実行中に、イベント処理を実行するようにした。そして、前記特定用途向け制御装置は、実行処理依頼を受け取ると、ユーザプログラム中の命令を順次取り込み、自身で実行可能かどうか判断し、実行可能な場合は取り込んだ前記命令を実行し、自身で実行可能でない命令と判断した場合には、前記汎用演算処理装置に対してその命令の実行依頼を行うようにした。さらに、前記汎用演算処理装置は、前記特定用途向け制御装置が自身で実行可能でないと判断した命令の実行依頼を受けると、実行中の前記イベント処理を終了し、当該命令を実行するように構成した。
【0013】
また、別の解決手段としては、汎用演算処理装置と特定用途向け制御装置とを搭載したプログラマブルコントローラにおいて、前記汎用演算処理装置から前記特定用途向け制御装置に対してI/Oリフレッシュ処理におけるDMA転送処理依頼を行って前記特定用途向け制御装置を起動した場合に、前記汎用演算処理装置は、前記特定用途向け制御装置が依頼されたI/Oリフレッシュ処理におけるDMA転送処理を実行中に、イベント処理を実行するように構成することもできる。
【0014】
また、本発明に係るプログラマブルコントローラの制御方法は、汎用演算処理装置と特定用途向け制御装置とを搭載したプログラマブルコントローラの制御方法において、前記汎用演算処理装置は、ユーザプログラムの演算実行中に、その一部の命令の実行処理依頼を前記特定用途向け制御装置に対して行い、前記特定用途向け制御装置は、受け取った前記実行処理依頼に伴い、前記ユーザプログラム中の所定の命令を実行し、前記汎用演算処理装置は、前記特定用途向け制御装置が前記所定の命令を実行している期間、イベント処理要求の有無を判断し、前記イベント処理要求があった場合にそのイベント処理を実行する。そして、前記汎用演算処理装置は、前記特定用途向け制御装置が前記所定の命令を実行している期間、イベント処理要求の有無を判断し、前記イベント処理要求があった場合にそのイベント処理を実行し、前記特定用途向け制御装置は、実行処理依頼を受け取ると、ユーザプログラム中の命令を順次取り込み、自身で実行可能かどうか判断し、実行可能と判断した場合は、取り込んだ前記命令を実行し、自身で実行可能でない命令と判断した場合には、前記汎用演算処理装置に対してその命令の実行依頼を行う。そして、前記汎用演算処理装置は、前記特定用途向け制御装置が自身で実行可能でないと判断した命令の実行依頼を受けると、実行中の前記イベント処理を終了し、当該命令を実行するようにした。
【0015】
また、別の解決手段としては、汎用演算処理装置と特定用途向け制御装置とを搭載したプログラマブルコントローラの制御方法において、前記汎用演算処理装置は、I/Oリフレッシュ処理中に、DMA転送処理依頼を前記特定用途向け制御装置に対して行い、前記特定用途向け制御装置は、受け取った前記DMA転送処理依頼に伴い、そのDMA転送処理を実行し、前記汎用演算処理装置は、前記特定用途向け制御装置が前記DMA転送処理を実行している期間、イベント処理要求の有無を判断し、前記イベント処理要求があった場合にそのイベント処理を実行することもできる。
【0016】
上記した各発明を前提として、前記汎用演算処理装置が、ユーザプログラムの演算実行処理やI/Oリフレッシュ処理と独立してイベント処理を実行するステップを含むようにしてもよい。
【0017】
ここで、上記汎用演算処理装置とは、このプログラマブルコントローラに搭載されるMPUを含み、また、特定用途向け制御装置とは、このプログラマブルコントローラに搭載されるユーザプログラム実行のための専用ASICを含む。
【0018】
上記イベント処理は周辺コンポーネントに対する周辺サービス処理を含み、この周辺サービス処理には上位系、通信ユニット等の周辺コンポーネントに対するイベント処理が含まれる。
【0019】
上記汎用演算処理装置から特定用途向け制御装置に対して依頼するユーザプログラムとしては、たとえば処理に時間のかかる命令があり、この種の命令を依頼した場合は、汎用演算処理装置の空き時間が増えるので、イベント処理の実行に必要な時間を十分に確保することができる。
【0020】
I/Oリフレッシュは、入出力リフレッシュ処理や、入力リフレッシュ処理並びに出力リフレッシュ処理に対応し、I/Oメモリに対するリフレッシュを行う処理などである。
【0021】
【発明の実施の形態】
以下、この発明に係わるプログラマブルコントローラの好適な実施の形態について添付図面を参照して詳細に説明する。図1は、この発明に係わるプログラマブルコントローラのCPUユニット部の全体構成を示すブロック図である。
【0022】
図1において、このプログラマブルコントローラのCPUユニット部は、MPU(Micro Processing Unit:汎用演算処理装置)101、ROM(Read Only Memory)102、バックアップユーザメモリ(BUM)103,RAM(Random Access Memory)104、ユーザメモリ105、ASIC(Application Specific Integrated Circuit:特定用途向け制御装置)106、I/Oメモリ107、およびI/Oバス108を具備して構成される。
【0023】
ここで、MPU101は、このCPUユニット部の全体の動作を司るマイクロプロセッサユニットであり、従来のプログラマブルコントローラと同様に、ユーザプログラム実行処理と、入出力リフレッシュ処理とイベント処理とをサイクリックに行う。そして、内部バスを介して、ROM102,BUM103,RAM104並びにASIC106と接続されている。
【0024】
ROM102は、このCPUユニット部のシステムファームウェアを格納するメモリである。このROM102には、具体的には入出力リフレッシュやイベント処理などの全体の動作に関わるプログラムや、MPU101で実行されるユーザプログラム命令の実態であるプログラムが格納される。
【0025】
RAM104は、このCPUユニット部のシステムワークとして使用されるメモリである。このRAM104には、上述のシステムが動作するために一時的に使用されるデータが格納される。例えば、演算の中間データを含むデータである。また、ユーザメモリ105は、ユーザがツールを利用してラダー言語などのPLC言語により作成されたユーザプログラムを格納するメモリである。
【0026】
ASIC106は、内部バスを介してMPU101,ROM102,BUM103,RAM104と繋がっている。また、ユーザメモリ105とI/Oメモリ107とは直接接続されている。さらに、I/Oバス108に対しても接続されており、I/Oユニットや通信ユニットとバス通信する。そして、ASIC106は、ユーザメモリ105に格納されたユーザプログラムを読み出し、その命令がASICで実行可能か否かの判断処理,ASICで実行可能な命令の実行処理,I/Oリフレッシュである入出力リフレッシュ処理の内のDMA転送処理,I/Oバス108についてのバスインタフェース処理およびI/Oメモリの調停処理等を実行する専用の制御装置である。なお、このASIC106とMPU101との連係動作については、後述する。
【0027】
I/Oメモリ107は、このプログラマブルコントローラの制御に必要な入出力データ、つまり、ユーザメモリ105に格納されたユーザプログラムを実行するときに使用する入力データや演算結果としての出力データを格納する機能を有する。このI/Oメモリ107のデータを必要とするのは、MPU101,ASIC106,I/Oバス108を介して繋がれたI/Oユニット及び通信ユニット(図示せず)と複数に渡り、メモリアクセスの調停をASIC106が行うことで不具合なくデータのやりとりが成される。
【0028】
さて、本実施の形態のプログラマブルコントローラのCPUユニット部においては、I/Oメモリ107内に、システム設定エリアがあって、そのエリア内にこのプログラマブルコントローラの動作モードを指定するエリアを設ける。MPU101は、プログラマブルコントローラの運転開始時に係るI/Oメモリ107のシステム設定エリアに格納された動作モードの指定内容を読み込み、この読み込んだ動作モードに対応するように内部処理を選択する。なお、具体的な動作モードは以下の通りである。
【0029】
I/Oメモリ107の中で、このエリアに格納される動作モードは、
(1)通常モード
(2)並列実行モード
の2種類である。
【0030】
ここで、通常モードとは、後述するユーザプログラムの実行処理および入出力リフレッシュ処理と、イベント処理とを並列実行しないモードである。つまり、従来と同様に、ユーザプログラムを演算実行する処理と入出力リフレッシュ処理並びにイベント処理(周辺サービス処理)等を順次サイクリックに実行するモードである。
【0031】
一方、並列実行モードは、この発明の特徴であるプログラマブルコントローラの実行処理方法である。その概要は、第1に、従来の一連のサイクリック処理の1つとして行われていたイベント処理を、ASIC106がユーザプログラムを実行している間にMPU101が行うようにした。つまり、通常モードのように、イベント処理の実行を、一連のサイクリック処理の中の入出力リフレッシュ処理が終了した後に行うのではなく、ASIC106がユーザプログラムの実行処理期間中に、MPU101で並列的にイベント処理を行うようにした。
【0032】
係る構成を採ることで、一連のサイクリック処理からイベント処理が無くなり、ユーザプログラムの演算実行処理とイベント実行処理との並列処理と、入出力リフレッシュ処理の2つの処理が順次繰り返し実行されるプログラマブルコントローラとなる。
【0033】
また、概要の第2としては、従来のイベント処理の実行を、ASIC106が入出力リフレッシュ処理中のDMA転送している間に、MPU101が行うようにした。つまり、通常モードのように、イベント処理の実行を、一連のサイクリック処理の中の入出力リフレッシュ処理が終了した後に行うのではなく、ASIC106がDMA転送処理をしている期間中に、MPU101で並列的にイベント処理を行うようにした。
【0034】
係る構成を採ることで、一連のサイクリック処理からイベント処理が無くなり、ユーザプログラムの演算処理と、入出力リフレッシュ処理が順次繰り返し実行されるとともに、各処理の所定のタイミングでイベント処理が並列処理されるプログラマブルコントローラとなる。
【0035】
なお、本実施の形態では、上記した第1の概要ポイントと第2の概要ポイントを併せ持ったプログラマブルコントローラを例に挙げて説明しているが、本発明は、これに限ることはなく、いずれか一方の機能を備えたものでももちろん良い。
【0036】
次に、並列実行モードの具体的な処理手順について説明する。図2は、並列実行モードが選択された場合の図1に示したMPU101並びにASIC106の内部処理を説明する図である。
【0037】
図2に示すように、まず、MPU101は、共通処理201を実行した後、ユーザプログラムの命令実行初期処理202において、ASIC106に対してユーザプログラムの命令の実行依頼を行って、ASIC命令203を起動する。係るMPU101からASIC106に対するASIC命令の実行依頼は、たとえばASIC106の起動用レジスタにMPU101が書き込み処理を行うことによってなされる。
【0038】
ASIC106は、実行依頼を受け取ると、ユーザメモリ105にアクセスし、そのユーザメモリ105に格納されたユーザプログラムを読みに行く。そして、ASIC106は、ユーザプログラム中の命令内容について順次取り込み、ASIC106で実行可能か否かを判断する。係る判断をした結果、実行可能な場合には、ASIC106が係る命令を実行し、その後、次の命令を取り込み実行可能か否かを判断する。本実施の形態では、ASIC106は、多くの命令が実行可能なように設計開発されたものとしているので、実行可能と判断される命令が連続する。よって、ASIC106では、実行可能な命令が次々と処理され、図2に示すように、一定の期間ASIC命令203が実行される。そして、このASIC命令203は、ASIC106で実行可能でない命令が出現するまで継続する。
【0039】
一方、MPU101は、上記ASIC106に対するASIC命令の実行依頼後、ユーザプログラムの演算処理がASIC106で処理している期間(ASIC命令203が実行されている期間)、他の処理ができる。そこで、その期間を利用して周辺周辺サービス処理等のイベント処理204を実行する。すなわち、MPU101は、この期間中、I/Oバス108に繋がれた通信ユニット(図示せず)からイベント処理要求があるか否かをチェックする。そして、イベント要求がない時はそのまま待機状態となり、イベント処理要求がある場合には、その要求を受けたイベント処理を実行する。イベント処理の一例としては、I/Oメモリ107の内容の一部を読み出して通信ユニットやツールなどに送る処理や、逆に通信ユニットが持っているI/OデータをCPUユニットが取り込んでI/Oメモリ107に書き込む処理や、ツールからI/Oメモリ107のデータを書き換える処理などがある。もちろん、このイベント処理204の期間中に複数のイベント要求が来る場合もあるし、1度も来ない場合もある。
【0040】
なお、イベント処理をする際、I/Oメモリ107へのアクセスは、ASIC106が調停をする。この調停処理と、ASIC命令203の実行との関係は、直列処理である。つまり、ASIC106は、1つの命令に対してASICで実行可能か否かの判断処理及び実行可能な命令の実行処理をした後、必要に応じてメモリの調停処理を行う。その調停処理が完了すると、次の命令を読み出し、実行可能か否かの判断等を行う。もちろん、命令処理と、調停処理を独立に並列処理するようにしても良い。いずれにしても、MPU101がイベント処理対応可能とし、かつASIC106がユーザプログラムの命令実行を同時に行うようになるので、この状態では、ASIC106によるユーザプログラムの命令の実行、すなわちASIC命令203の実行と、MPU101によるイベント処理204の実行とが並列実行となっているといえる。
【0041】
そして、ASIC106がユーザプログラムの命令実行を次々とユーザメモリ105から読み出し、ユーザプログラムの命令でASICで実行可能でない命令(当初からASIC処理命令としておらず、MPUで処理する命令としていたもの)だと判断すると、ASIC命令203の実行が中止となり、ASIC106はレジスタにその旨の信号を出し、MPU101に対して実行依頼をする。実際には、ASIC106からMPU101へ割込み通知がなされる。これにより、MPU101は、上記イベント処理204を中止するか、イベント処理の区切りのところまで処理を実行した後、MPU101で実行すべきユーザプログラムの命令の演算実行処理を行う。つまり、図示のMPU命令205を開始する。
【0042】
このMPU命令205としての1つの命令の演算処理の実行が終了すると、MPU101は、再びASIC106に対して実行依頼をする。そして、ASIC106は、次の命令をユーザメモリ105から読み出し、その命令がASICで実行可能か否かを判断する。実行可能な命令で有れば、ASIC106での実行となり、図示のASIC命令206を起動する。そして、読み出した命令がASIC106で実行不可能でMPU101で処理すべきと判断されるまで、ASIC命令206は続き、その期間、MPU101は、周辺サービス処理等のイベント処理207を実行する。
【0043】
この状態でも、上述の並列処理と同様に、ASIC106によるユーザプログラムの命令の実行、すなわちASIC命令206の実行と、MPU101によるイベント処理207の実行との並列実行となる。そして、ASIC106にて実行可能でない命令だと判断すると、ASIC命令206の実行が中止となり、ASIC106はレジスタにその旨の信号を出し、MPU101に対して実行依頼をする。これにより、MPU101は、上記イベント処理207を中止するか、イベント処理の区切りのところまで処理を実行した後、MPU101で実行すべきユーザプログラムの命令の演算実行処理を行う。つまり、図示のMPU命令208を開始する。
【0044】
このように、MPU101によるユーザプログラムの命令実行(演算処理)並びにASIC106とMPU101の並列処理は、ユーザプログラムの命令を全て実行して終了するまで繰り返される。なお、図示の例では、MPU実行命令20で処理が終了しているが、並列処理で終了することももちろんある。
【0045】
そして、ユーザプログラムが終了すると、MPU101は、命令実行終了処理209をしてから入出力リフレッシュ処理210の実行を始める。この処理は、I/Oメモリ107のリフレッシュ更新をするものである。説明すると、I/Oバス108に繋がれたI/Oユニット(図示せず)の入力データを取り込んで、I/Oメモリ107の入力データエリアに書き込むとともに、I/Oメモリ107に記憶されたユーザプログラムの演算実行結果を出力データとしてI/Oユニットに送信する処理を行う。つまり、I/Oメモリ107とI/Oユニットにある共有メモリとの間でデータ交換を行うものである。対象は、I/Oユニットの他に、アナログ演算ユニットなどのいわゆる高機能ユニットがある。
【0046】
この入出力リフレッシュ処理210において、データ交換量が多い場合に、MPU101は、ASIC106のDMA転送211を起動してDMA転送211を行う。ASIC106は、上述のようにメモリのアクセス調停をする機能に加え、DMA転送する機能を持っている。この機能は、例えばI/Oメモリのリフレッシュするデータが、メモリ中の連続したエリアにまとまって存在するときに、そのデータをまとめてI/Oバス108を介して外部のユニットの共有メモリの連続したエリアに転送する場合に、DMA転送の方法を用いる。なお、外部ユニットの共有メモリの連続したエリアのデータを、I/Oメモリ108の連続したエリアに取り込む場合にも、DMA転送を利用する。特に、高機能ユニットとの間でアナログデータを受け渡しする場合には、DMA転送をよく利用する。
【0047】
MPU101は、入出力リフレッシュ処理を行うとき、随時リフレッシュする対象のデータがDMA転送する方が適するか否かを判断する。つまり、I/Oユニットに対する個別のデータリフレッシュならば、「否」と判断し、図示の符号210のようにMPU101にて処理する。アナログ演算ユニットに対するまとまったデータリフレッシュならば「適」と判断し、ASIC106へ処理依頼をし、図示のようにASIC処理としてDMA転送211が実行される。なお、DMA転送を、外部ユニット側で指定しておき、その指定を呼んでMPU101がDMA転送すると判断させるようにしても良い。
【0048】
この場合、ASIC106に処理依頼し、ASIC106がDMA転送処理をしている期間は、MPU101は他の処理をすることが可能となる。よって、その期間、すなわちDMA転送211の開始から終了までの時間を利用してMPU101による周辺サービス処理等のイベント処理212が実行される。
【0049】
このようにDMA転送処理をしている期間、ASIC106によるDMA転送211の実行と、MPU101によるイベント処理212の実行との並列実行となる。このイベント処理212は、上述のイベント処理204,207と同様の処理を行うものである。ASIC106によるDMA転送211が完了すると、ASIC106からMPU101へ割り込みが通知され、これにより、MPU101はイベント処理212を中止するか、1つのイベント処理を終了するかのどちらかをし、再び入出力リフレッシュ処理213に移る。入出力リフレッシュ処理中に、DMA転送をすべき対象データが有れば、MPU101からASIC106に対してDMA転送の処理依頼を送り、それに伴い、上述のようなASIC処理としてDMA転送211とMPU処理としてイベント処理212と同様の並列処理を行う。以後、このような入出力リフレッシュ処理と、DMA転送とイベント処理との並列実行処理とが、必要により繰り返される。
【0050】
入出力リフレッシュ処理が全て完了すると、従来行われていた周辺サービス処理(イベント処理)は行われずに、共通処理に戻る。つまり、このプログラマブルコントローラの一連のサイクリック処理は、動作モードによって異なることになる。繰り返し説明すると、通常モードは、従来通りに共通処理,ユーザプログラムの演算実行処理,入出力リフレッシュ処理,イベント処理を一連のサイクリック処理として順次繰り返し実行する。一方、並列実行モードでは、共通処理,ユーザプログラムの演算実行処理,入出力リフレッシュ処理を一連のサイクリック処理として順次繰り返し実行する。そして、ユーザプログラムの実行処理において、ASIC106が命令実行しているときに、MPU101がイベント処理を並列処理するようにしている。また、入出力リフレッシュ処理において、ASIC106がDMA転送しているときに、MPU101がイベント処理を並列処理するようにしている。
【0051】
なお、本実施の形態では、並列処理によって周辺サービス(イベント処理)を実行しているので、入出力リフレッシュ処理213が完了すると、周辺サービス処理を行わずに共通処理に戻る構成とした。
【0052】
ところで、プログラマブルコントローラのCPUユニットにメモリカードを増設する場合がある。このメモリカードには、コンパクトフラッシュメモリが用いられていて、例えばCPUユニットでの処理履歴や、異常やエラーの履歴に関するデータを記憶させておく場合がある。そして、その履歴データを外部のツールで記憶させておく場合がある。そして、その履歴データを外部のツールで収集したい場合がある。
【0053】
係る場合、通常の通信ユニットとのデータ交換などのイベント処理に比べて、かなりの時間を必要とする。そのような処理を上述の並列処理によるイベント処理(204,207,212など)で行おうとすると、処理の途中で中止となり、ツールでデータ収集できなかったり、イベント処理タイムが通常に比べて大きくなりすぎ、うまく処理できない状況となる。
【0054】
このような時間のかかるイベント処理が必要な場合には、入出力リフレッシュ処理213の後に、イベント処理を例外的に設けるようにすると良い。実際には、MPU101がイベント処理204,207,212の期間中に、時間がかかるイベント処理の要求があると判断すると、その期間中に処理をせずに要求があったことを記憶しておき、そのサイクルの最後の処理である入出力リフレッシュ処理213の完了後に、そのイベント要求によるイベント実行をする。よって、このサイクルでは並列実行モードであるが、入出力リフレッシュ処理の後にイベント処理を行うことになる。このように、イベント処理を直列的に実行する制御方式も、本発明は含む概念である。
【0055】
また動作モードとして、上記した実施の形態では(1)通常モードと(2)並列実行モードの2つを示したが、他の方式として、例えば、
(3)通常モードと同様の一連のサイクリック処理を行うとともに、図2中のASIC実行203,206とイベント処理204,207を行い、さらに、DMA転送処理211とイベント処理212を行うモード;
(4)(2)または(3)のモードと似ているがDMA転送211時にイベント処理を行わないモード;
のようなモードを採用することもできる。
【0056】
さらにまた、上記した実施の形態並びに変形例では一連のサイクリック処理として、共通処理,ユーザプログラム実行処理,入出力リフレッシュ処理(+周辺処理)を繰り返し実行するもので説明したが、他の形態のサイクリック処理ももちろんとりうる。
【0057】
一例としては、
(a)共通処理,入力リフレッシュ処理,ユーザプログラムの演算実行処理,出力リフレッシュ処理,(+周辺処理)
(b)共通処理、入出力リフレッシュ処理,ユーザプログラムの演算実行処理,(+周辺処理)
等がとりうる。すなわち、I/Oリフレッシュ処理は、入力リフレッシュと出力リフレッシュを別々に行っても良いし、一緒に行ってもよい。
【0058】
これら(a),(b)のサイクリック処理を行うプログラマブルコントローラにおいても同様に、ユーザプログラム実行処理がASIC処理として行われている期間を利用して、MPU処理としてイベント処理を行うことで上述の並列実行モードと同様となる。また、入出力リフレッシュ処理、または入力リフレッシュ処理か出力リフレッシュ処理の中でDMA転送をASIC処理として行われている期間を利用して、MPU処理としてイベント処理を行うことでも上述の並列実行モードと同様となる。
【0059】
さらにまた、この(a),(b)のプログラマブルコントローラの並列実行モードにおいても、動作モードとして(1),(2),(3),(4)は適用可能である。
【0060】
上記構成によると、MPU101の処理可能時間を有効に利用するべく、ASIC106が実行中に、MPU101はイベント処理を行う構成としたことにより、プログラマブルコントローラのCPUユニット部のサイクルタイムを短縮することができる。
【0061】
なお、上記実施の形態においては、上記並列実行モードを選択しない場合は従来と同様の動作も可能になる。
【0062】
【発明の効果】
以上説明したようにこの発明によれば、プログラマブルコントローラが保有する汎用演算処理装置と特定用途向け制御装置を同時に処理、つまり、特定用途向け制御装置がユーザプログラムの演算処理及びまたはI/Oリフレッシュ時のDMA転送処理を行っている期間を、汎用演算処理装置におけるイベント処理期間とすることにより、サイクリックに行うイベント処理を無くすか、減少させることができ、イベント応答性を改善することができる。
【図面の簡単な説明】
【図1】この発明に係わるプログラマブルコントローラのCPUユニット部の全体構成を示すブロック図である。
【図2】図1に示したMPUの並列実行モードが選択された場合における内部処理を説明する図である。
【図3】従来のプログラマブルコントローラのCPUユニットの基本サイクル処理を示すフローチャートである。
【図4】従来のプログラマブルコントローラシステムの問題点を説明するためのブロック図である。
【符号の説明】
101 MPU(Micro Processing Unit)
102 ROM(Read Only Memory)
103 BUM
104 RAM(Random Access Memory)
105 ユーザメモリ
106 ASIC(Application Specific Integrated Circuit:特定用途向け制御装置)
107 I/Oメモリ
108 I/Oバス
401 上位系
402 親プログラマブルコントローラ(親PLC)
403,404,405 子プログラマブルコントローラ(子PLC)
Claims (5)
- 汎用演算処理装置と特定用途向け制御装置とを搭載したプログラマブルコントローラにおいて、
前記汎用演算処理装置から前記特定用途向け制御装置に対してユーザプログラムの実行処理依頼を行って前記特定用途向け制御装置を起動した場合に、前記汎用演算処理装置は、前記特定用途向け制御装置が依頼されたユーザプログラムを実行中に、イベント処理を実行するものであり、
前記特定用途向け制御装置は、実行処理依頼を受け取ると、ユーザプログラム中の命令を順次取り込み、自身で実行可能かどうか判断し、実行可能な場合は取り込んだ前記命令を実行し、
自身で実行可能でない命令と判断した場合には、前記汎用演算処理装置に対してその命令の実行依頼を行うものであり、
前記汎用演算処理装置は、前記特定用途向け制御装置が自身で実行可能でないと判断した命令の実行依頼を受けると、実行中の前記イベント処理を終了し、当該命令を実行するものであることを特徴とするプログラマブルコントローラ。 - 汎用演算処理装置と特定用途向け制御装置とを搭載したプログラマブルコントローラにおいて、
前記汎用演算処理装置から前記特定用途向け制御装置に対してI/Oリフレッシュ処理におけるDMA転送処理依頼を行って前記特定用途向け制御装置を起動した場合に、前記汎用演算処理装置は、前記特定用途向け制御装置が依頼されたI/Oリフレッシュ処理におけるDMA転送処理を実行中に、イベント処理を実行することを特徴とするプログラマブルコントローラ。 - 汎用演算処理装置と特定用途向け制御装置とを搭載したプログラマブルコントローラの制御方法において、
前記汎用演算処理装置は、ユーザプログラムの演算実行中に、その一部の命令の実行処理依頼を前記特定用途向け制御装置に対して行い、
前記特定用途向け制御装置は、受け取った前記実行処理依頼に伴い、前記ユーザプログラム中の所定の命令を実行し、
前記汎用演算処理装置は、前記特定用途向け制御装置が前記所定の命令を実行している期間、イベント処理要求の有無を判断し、前記イベント処理要求があった場合にそのイベント処理を実行し、
前記特定用途向け制御装置は、実行処理依頼を受け取ると、ユーザプログラム中の命令を順次取り込み、自身で実行可能かどうか判断し、
実行可能と判断した場合は、取り込んだ前記命令を実行し、
自身で実行可能でない命令と判断した場合には、前記汎用演算処理装置に対してその命令の実行依頼を行い、
前記汎用演算処理装置は、前記特定用途向け制御装置が自身で実行可能でないと判断した命令の実行依頼を受けると、実行中の前記イベント処理を終了し、当該命令を実行することを特徴とするプログラマブルコントローラの制御方法。 - 汎用演算処理装置と特定用途向け制御装置とを搭載したプログラマブルコントローラの制御方法において、
前記汎用演算処理装置は、I/Oリフレッシュ処理中に、DMA転送処理依頼を前記特定用途向け制御装置に対して行い、
前記特定用途向け制御装置は、受け取った前記DMA転送処理依頼に伴い、そのDMA転送処理を実行し、
前記汎用演算処理装置は、前記特定用途向け制御装置が前記DMA転送処理を実行している期間、イベント処理要求の有無を判断し、前記イベント処理要求があった場合にそのイベント処理を実行することを特徴とするプログラマブルコントローラの制御方法。 - 前記汎用演算処理装置が、ユーザプログラムの演算実行処理やI/Oリフレッシュ処理と独立してイベント処理を実行するステップを含むことを特徴とする請求項3または4に記載のプログラマブルコントローラの制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2002097793A JP3548780B2 (ja) | 2001-03-30 | 2002-03-29 | プログラマブルコントローラ及びその制御方法 |
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001-100232 | 2001-03-30 | ||
JP2001100232 | 2001-03-30 | ||
JP2002097793A JP3548780B2 (ja) | 2001-03-30 | 2002-03-29 | プログラマブルコントローラ及びその制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2002358104A JP2002358104A (ja) | 2002-12-13 |
JP3548780B2 true JP3548780B2 (ja) | 2004-07-28 |
Family
ID=26612790
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2002097793A Expired - Lifetime JP3548780B2 (ja) | 2001-03-30 | 2002-03-29 | プログラマブルコントローラ及びその制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3548780B2 (ja) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3961478B2 (ja) | 2002-12-27 | 2007-08-22 | オムロン株式会社 | プログラマブルコントローラ用ユニット及びメモリ自動復旧方法 |
JP4793585B2 (ja) * | 2006-03-15 | 2011-10-12 | オムロン株式会社 | プログラマブル・コントローラ |
JP2008234394A (ja) * | 2007-03-22 | 2008-10-02 | Koyo Electronics Ind Co Ltd | プログラマブルコントローラの高速化方法 |
JP5365875B2 (ja) * | 2009-03-12 | 2013-12-11 | オムロン株式会社 | 産業用コントローラ |
KR102259094B1 (ko) * | 2015-06-01 | 2021-06-01 | 엘에스일렉트릭(주) | Plc용 스캔 프로그램의 구동 방법 |
-
2002
- 2002-03-29 JP JP2002097793A patent/JP3548780B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JP2002358104A (ja) | 2002-12-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20060155960A1 (en) | Programmable controller | |
JP5275414B2 (ja) | リードアドレス可能バーチャルdmaコントロール及び状態レジスタ | |
JP3548780B2 (ja) | プログラマブルコントローラ及びその制御方法 | |
JPS6131485B2 (ja) | ||
JPS6329867A (ja) | Dmaコントロ−ラ | |
JPH0714382A (ja) | マイクロコンピュータ | |
JPS581454B2 (ja) | 入出力制御方式 | |
JP3839068B2 (ja) | 半導体集積回路装置 | |
TWI581103B (zh) | 以精確計時用於實施匯流排操作的方法與系統 | |
JP3943302B2 (ja) | プログラマブルコントローラ | |
JPH08221106A (ja) | プログラマブルコントローラ | |
JPH0452746A (ja) | 情報処理システムの入出力コマンド発行方式 | |
JP4535663B2 (ja) | ステートマシン制御方式およびステートマシン | |
JP2584903B2 (ja) | 外部装置制御方式 | |
JPH03111961A (ja) | マルチcpuのプログラムロード方式 | |
JPH05165541A (ja) | 電子回路 | |
JP3785807B2 (ja) | 制御装置 | |
JPS6022383B2 (ja) | 入出力制御装置 | |
JPH08278939A (ja) | データ転送方法及びデータ転送装置 | |
JPH11134288A (ja) | バスコントローラ | |
JPS6028023B2 (ja) | 入出力命令高速化方式 | |
JPS60252977A (ja) | 情報処理装置 | |
JPH05233525A (ja) | I/o処理装置 | |
JPS6292060A (ja) | 並列処理システム | |
JPH0136138B2 (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: 20040309 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040322 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 Ref document number: 3548780 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090430 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100430 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110430 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130430 Year of fee payment: 9 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20140430 Year of fee payment: 10 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |