JP4349687B2 - プログラマブル・コントローラ - Google Patents
プログラマブル・コントローラ Download PDFInfo
- Publication number
- JP4349687B2 JP4349687B2 JP17098299A JP17098299A JP4349687B2 JP 4349687 B2 JP4349687 B2 JP 4349687B2 JP 17098299 A JP17098299 A JP 17098299A JP 17098299 A JP17098299 A JP 17098299A JP 4349687 B2 JP4349687 B2 JP 4349687B2
- Authority
- JP
- Japan
- Prior art keywords
- cpu
- interrupt
- refresh
- user program
- memory
- 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
Images
Landscapes
- Programmable Controllers (AREA)
- Control By Computers (AREA)
Description
【発明の属する技術分野】
この発明は、プログラマブル・コントローラ(一般に、PLC等と称される)に係り、特に、所謂マルチCPUタイプのプログラマブル・コントローラに関する。
【0002】
【従来の技術】
主CPUに対して副CPUを追加することにより、CPUをオプションとして拡張できるようにしたPLCは、従来より知られている。この種のPLCにおける主CPUと副CPUの役割分担は、主CPUから実行要求を受けて副CPUがコプロセッサとして動作する、若しくは、両CPUが対等の関係で互いに並列に動作すると言ったスケジューリング形態が一般的である。
【0003】
【発明が解決しようとする課題】
しかしながら、従来の拡張可能なCPUを備えたPLCにおいては、以下のような問題点が指摘されている。
【0004】
(1)オプションとして搭載した副CPUの特徴を、PLC全体としての制御動作に反映させることが困難である。また、このような機能を実現するためには、予め主CPU側にその制御動作を実現するためのスケジューリング機能を搭載しておく必要があり、当然に、価格の高騰が招来される。
【0005】
(2)両CPUが並列動作するPLCにおいては、各CPU毎に独立した動作となり、任意のタイミングでデータの受け渡しができない(同期処理が必要となる)。このため、CPUの制御性能を落としているのが通常である。
【0006】
この発明は、このような従来の問題点に着目してなされたものであり、その目的とするところは、拡張性に優れると共に、拡張後にあっては、個々のCPUの機能を最大限に発揮させることができ、さらに、比較的に低価格で製作することが可能なマルチCPUタイプのPLCを提供することにある。
【0007】
【課題を解決するための手段】
上述の課題は以下の構成を有するプログラマブル・コントローラにより解決することが出来ると考えられる。
即ち、このプログラマブル・コントローラ(1)は、第1のCPUと、第2のCPUと、第1のCPUに内蔵されたI/Oメモリに対して第2のCPUからのアクセスを可能とするためのオプションバスと、第2のCPUから第1のCPUに対して割り込みを掛けるための割り込みラインとを有し、
前記第1のCPUには、
ユーザプログラム実行処理とI/Oリフレッシュ実行処理とをサイクリックに行うサイクリック実行制御手段と、
第2のCPUから割り込み要求が到来したときに、I/Oメモリ内の特定I/O領域に関するI/Oリフレッシュ実行処理を割り込みで行い、その後、リフレッシュ完了を第2のCPUへ通知する割り込み実行制御手段と、が少なくとも設けられ、かつ
前記第2のCPUには、第1のCPUに対してサイクリックに割り込み要求を送出すると共に、これに応答して第1のCPUからリフレッシュ完了が通知されるのを待って、ユーザプログラム実行処理を行なうサイクリック実行制御手段が設けられてさらに
前記第1のCPUに設けられた割り込み実行制御手段は、レベルの異なる多重割り込みを受け付ける機能を有し、かつ各レベルの割り込み要求が到来する毎に、I/Oメモリ内の特定I/O領域に関するI/Oリフレッシュ実行処理を割り込みで行い、その後、リフレッシュ完了を第2のCPUへ通知するものであり、かつ
前記第2のCPUに設けられたサイクリック実行制御手段は、それぞれ固有のサイクルでレベルの異なる多重割り込み要求を送出する機能を有し、かつ各レベルの割り込み要求に応答してリフレッシュ完了が通知されるのを待って、それぞれのレベルに対応するユーザプログラム実行処理を行うものである。
【0008】
ここで、『CPU』とは、少なくともユーザプログラム実行機能を有するプログラマブル・コントローラの中央処理装置を言う。また、割り込みでリフレッシュすべき『I/O領域』の特定は、当該割り込みと関連づけて予め固定しておいてもよいし、第2のCPUから送出される割り込み要求で別途に指定するようにしてもよい。また、『プログラマブル・コントローラ』なる語には、CPUユニット、I/Oユニット、電源ユニット等からなるビルディング・ブロック型のものと、すべての回路要素を1個のハウジングに収めた一体型のものとの双方を含んでいる。さらに、特にこの請求項で使用される『プログラマブル・コントローラ』なる語には、ビルディング・ブロック型のプログラマブル・コントローラにおけるCPUユニットそのもの(すなわち、電源ユニットやI/Oユニット等を含まないCPU装置単体)も含めている。
【0009】
そして、このような構成によれば、第1のCPUにおいてユーザプログラムはI/Oリフレッシュを伴ってサイクリックに実行され、同時に、第2のCPUにおいてもユーザプログラムは割り込みによるI/Oリフレッシュを伴ってサイクリックに実行される。そのため、各CPUは非同期で独立してユーザプログラムの実行を行いつつも、入出力データの更新自体は各ユーザプログラムの実行周期で確実に行われることとなり、その結果、個々のCPUの性能を最大限に発揮しつつ、高精度な制御を実現することができる。
【0010】
また、第1のCPUにおいてユーザプログラムはI/Oリフレッシュを伴ってサイクリックに実行され、同時に、第2のCPUにおいても複数のユーザプログラムはそれぞれ割り込みによるI/Oリフレッシュを伴ってかつ固有サイクルでサイクリックに実行される。そのため、各CPUは非同期で独立してユーザプログラムの実行を行いつつも、入出力データの更新自体は各ユーザプログラムの実行サイクル単位で確実に行われることとなり、その結果、個々のCPUの性能を最大限に発揮しつつ、高精度な制御を実現することができる。加えて、第2のCPUで実行される複数のユーザプログラムはそれぞれ最適なサイクルで入出力更新されるため、この面からも、高精度な制御が可能となる。
【0011】
また、好ましい実施形態としてのプログラマブル・コントローラ(2)は、上述のプログラマブル・コントローラ(1)において、第1のCPUに設けられた割り込み制御手段が、I/Oリフレッシュ実行処理に加えて、特定のユーザプログラム実行処理を含むものである。
【0012】
このような構成によれば、第1のCPUにおいてユーザプログラムはI/Oリフレッシュを伴ってサイクリックに実行され、同時に、第2のCPUにおいても複数のユーザプログラムはそれぞれ割り込みによるI/Oリフレッシュ(第1のCPU側で実行)並びに所定のユーザプログラムの実行(第1のCPU側で実行)を伴ってかつ固有サイクルでサイクリックに実行される。そのため、第2のCPU側におけるユーザプログラムの実行は、第1のCPU側におけるユーザプログラムの実行と連動することとなり、より一層多機能な制御が可能となる。
【0013】
また、好ましい実施形態であるプログラマブル・コントローラ(3)は、上述のプログラマブル・コントローラ(1)又は(2)において、第2のCPUは第1のCPU内のI/Oメモリへ通ずるバスライン並びに第1のCPU内の割り込みラインを含むコネクタに対して着脱自在であり、
第1のCPUにて実行されるユーザプログラムは主としてラダータスクであり、かつ第2のCPUにて実行されるユーザプログラムは主としてデータ演算タスクであるものである。
【0014】
ここで、『データ演算タスク』とは、例えば、PID演算や浮動小数点演算等が含まれる。
【0015】
このような構成によれば、第2のCPUは第1のCPUに対する増設用のオプションとして機能することとなり、第1のCPUはI/O制御に特化してリソース(ユーザメモリ等)や機能(高機能な命令サポート)を削減できるため、ローコストでシンプルなPLCを提供できる一方、必要に応じて第2のCPUを増設してデータ演算タスクを実行させることで、高機能化にも容易に対応が可能となる。加えて、オプションとして搭載した第2のCPUに内蔵させたスケジューリング機能から割り込み通知にて、主たるCPUである第1のCPUの処理を実行できるため、第2のCPUの特徴をPLC全体としての制御動作に反映させることができる。
【0016】
上述の課題は、以下の構成を有するプログラマブル・コントローラの増設可能なCPUとして捉えることもできる。このプログラマブル・コントローラの増設可能なCPU(1)は、周辺I/Oバスに通ずる第1の外部接続端子と、少なくともI/Oデータの他に割り込み要求フラグ並びにリフレッシュ完了フラグが格納されるI/Oメモリと、外部からI/Oメモリに対するアクセスを可能とするための第2の外部接続端子と、ユーザプログラムが格納されるユーザプログラムメモリと、を有すると共に、
ユーザプログラムメモリに格納された特定のユーザプログラムに関して、ユーザプログラム実行処理とI/Oリフレッシュ実行処理とをサイクリックに行うサイクリック実行制御手段と、
割り込み要求フラグがセットされたときに、I/Oメモリ内の特定I/O領域に関するI/Oリフレッシュ実行処理を割り込みで行い、その後、リフレッシュ完了フラグをセットする割り込み実行制御手段と、が少なくとも設けられている。
【0017】
このような構成によれば、単独でプログラマブル・コントローラのCPU装置として機能することは勿論のこと、外部より割り込み要求を与えて特定I/O領域に関するI/Oリフレッシュ実行処理を行わせる一方、リフレッシュ完了フラグがセットされたことに応答して、他のCPUからI/Oメモリの内容を参照してユーザ命令を実行することにより、マルチCPU形式のPLCに拡張することができる。
【0018】
好ましい実施の形態であるプログラマブル・コントローラの増設可能なCPU(2)は、プログラマブル・コントローラの増設可能なCPU(1)において、割り込み実行制御手段は、レベルの異なる多重割り込みを受け付ける機能を有し、かつ各レベルの割り込み要求フラグがセットされる毎に、I/Oメモリ内の特定I/O領域に関するI/Oリフレッシュ実行処理を割り込みで行い、その後、リフレッシュ完了フラグをセットするものである。
【0019】
このような構成によれば、外部より多重割り込み要求を与えて当該割り込みレベルに対応する特定I/O領域に関するI/Oリフレッシュ実行処理を行わせる一方、リフレッシュ完了フラグがセットされたことに応答して、他のCPUからI/Oメモリの当該割り込みレベルに対応する内容を参照してユーザ命令を実行することにより、マルチCPU形式のCPU装置に拡張することができる。
【0020】
上述の課題は、以下の構成を有するプログラマブル・コントローラの増設用CPU(1)として捉えることもできる。このプログラマブル・コントローラの増設用CPU(1)は、プログラマブル・コントローラの増設可能なCPU(1)に接続して使用されるものであって、
割り込みラインとデータ入出力バスとを含む外部コネクタと、ユーザプログラムが格納されるユーザプログラムメモリとを有すると共に、
前記外部コネクタに対してサイクリックに割り込み要求を送出すると共に、外部コネクタを介してリフレッシュ完了通知が取得されるのを待って、ユーザプログラムメモリに格納されたユーザプログラムの実行処理を行なうサイクリック実行制御手段が設けられている。
【0021】
そして、このような構成によれば、プログラマブル・コントローラの増設可能なCPU(1)に接続して使用した場合、自分が主導権を握ってI/Oメモリの内容を更新しつつ、その更新内容を参照して自分のユーザプログラムを実行することができ、元のCPUの機能を損ねることなく、目的とする拡張機能を実現することができる。
【0022】
好ましい実施の形態であるプログラマブル・コントローラの増設用CPU(2)は、プログラマブル・コントローラの増設用CPU(1)において、サイクリック実行制御手段は、それぞれ固有のサイクルでレベルの異なる多重割り込み要求を送出する機能を有し、かつ各レベルの割り込み要求に対してリフレッシュ完了が通知されるのを待って、それぞれのレベルに対応するユーザプログラム実行処理を行うものである。
【0023】
このような構成によれば、前項の効果に加えて、入出力応答時間の異なる複数の拡張用ユーザプログラムを最適に実行することができる。
【0024】
【発明の実施の形態】
以下に、この発明の好適な実施の一形態を添付図面に従って詳細に説明する。本発明に係るプログラマブル・コントローラの全体が図1のブロック図に示されている。
【0025】
同図に示されるように、このPLCのCPU装置1は、第1のCPUであるメインCPU2(増設可能なCPU)と第2のCPUであるサブCPU(増設用CPU)3とから構成されている。
【0026】
メインCPU2及びサブCPU3は、この例では、それぞれ専用の回路基板上に後述する各種の回路部品を搭載すると共に、それらの回路基板を専用のハウジングに収容して構成されている。
【0027】
メインCPU2のハウジングには、周辺I/Oバスに通ずるコネクタ21と、外部からI/Oメモリ27に対するアクセス並びにMPU23に対する割り込みを可能とするためのコネクタ22とを備えている。一方、サブCPU3のハウジングには、内部MPUバスB4の導出並びに内部割り込み信号ラインL2の導出を行うためのコネクタ31が設けられている。
【0028】
なお、図において、L1はメインCPU2内に配線された割り込み信号ライン、L2はサブCPU3内に配線された割り込み信号ライン、L3はコネクタ31とコネクタ22とを繋ぐ割り込み信号ライン、B1はメインCPU2内のMPUバス、B2はメインCPU内のI/Oメモリ27とバスアービタ28とを繋ぐバス、B3はバスアービタ28とコネクタ22とを繋ぐオプションバス、B4はサブCPU3内のMPUバス、B5はMPUバスとコネクタ31とを繋ぐオプションバス、B6はコネクタ31とコネクタ22とを繋ぐオプションバスである。
【0029】
メインCPU2内には、MPU(Micro Processer Unitの略)23、システムプログラムメモリ24、システムワークメモリ25、ユーザプログラムメモリ26、I/Oメモリ27、バスアービタ28等が含まれている。
【0030】
MPU23は、メインCPU2の全体を統括制御するものであり、そのMPUバスB1には、システムプログラムメモリ24、システムワークメモリ25、ユーザプログラムメモリ26、I/Oメモリ27、バスアービタ28等が接続されれている。
【0031】
システムプログラムメモリ24は不揮発性のROMで構成され、その内部にはメインCPU2の全体の機能を規定するシステムプログラムが格納されている。先に説明した、MPU23はこのシステムプログラムに従って動作するようになされている。
【0032】
システムワークメモリ25はRAMで構成され、その内部にはメインCPU2の動作状態や処理経過を表わすシステムワークデータが格納される。
【0033】
ユーザプログラムメモリ26はPROMやフラッシュメモリ等で構成され、その内部には、ユーザにより作成されたラダープログラム等のユーザプログラムが格納される。
【0034】
I/Oメモリ27はRAMで構成され、その内部にはメインCPU2に接続された周辺I/Oのオン/オフ状態や、ユーザプログラムで行われたデータ演算結果などが格納される。
【0035】
パスアービタ28は、2つのCPU2,3からI/Oメモリ27に対するメモリアクセスを調整する機能を有するもので、これによりI/Oメモリ27はメインCPU2以外にも、オプションCPUバスB5を介してサブCPUモジュールから参照・更新することが可能とされている。
【0036】
周辺I/Oバス用のコネクタ21は、メインCPU2が周辺I/Oモジュール(図示せず)に対してI/Oリフレッシュをするための機能を果たすものである。
【0037】
一方、サブCPU3内にも、同様にしてMPU31、システムプログラムメモリ32、システムワークメモリ33、ユーザプログラムメモリ34等が格納されている。
【0038】
MPU31はサブCPU3の全体を統括制御するものであり、そのMPUバスB4には、システムプログラムメモリ32、システムワークメモリ33、ユーザプログラムメモリ34が接続されている。
【0039】
システムプログラムメモリ32は不揮発性のROMで構成されており、その内部にはサブCPU3のシステムプログラムが格納されており、MPU31はこのシステムプログラムに従って動作する。
【0040】
システムワークメモリ33はRAMで構成されており、その内部にはサブCPU3の動作状態や処理経過を表わすシステムワークデータが格納される。
【0041】
ユーザプログラムメモリ34はPROMやフラッシュROM等で構成されており、これにはサブCPU3のユーザプログラムが格納されている。
【0042】
メインCPU2とサブCPU3との間には、オプションCPUバスB6並びに割り込み信号ラインL3が配線されている。それらはコネクタ22,31を介して着脱自在に接続される。
【0043】
オプションCPUバスB6は、サブCPU3からメインCPU2内のI/Oメモリ27を参照・更新するためのバスラインである。それに対して、割り込み信号ラインL3はサブCPU3からメインCPU2に対して割り込み処理を依頼するための信号である。
【0044】
次に、メインCPU2並びにサブCPU3のシステムプログラムの構成(すなわちシステムの動作)を図2以下の図面を用いて詳細に説明する。
【0045】
図2に示されるように、メインCPU2は、サイクル処理として、共通処理(ステップ201)・ユーザプログラム実行処理(ステップ202)・I/Oリフレッシュ処理(ステップ203)・周辺サービス処理(ステップ204)を行っており、それぞれの処理の中でI/Oメモリ27に対して参照・更新を行っている(メインCPU単独処理)。ここで、ユーザプログラム実行処理(ステップ202)並びにI/Oリフレッシュ処理(ステップ203)は、図2に示されるように、共有メモリとして機能するI/Oメモリ27の領域Dに関して行われる。すなわち、それらの処理(ステップ202,203)に対しては、予めI/Oメモリ27の領域Dが割り当てられている。
【0046】
また、メインCPU2は、その他の処理として、サブCPU3からの割り込みレベル0と1〜3の連続通知により(ステップ231,232,233)、指定割り込みタスクで使用するI/Oチャネルに対して都度I/Oリフレッシュ処理と該当ラダータスクの実行を行い(ステップ211,212,213)、その時点でI/Oメモリの該当領域(領域A,領域B,領域C)に対する参照・更新を行っている。ここで、I/Oリフレッシュ並びに優先度レベル1のラダータスク(ステップ211)に関しては、共有メモリとして機能するI/Oメモリ27の領域Aが使用される。また、I/Oリフレッシュ並びに優先度レベル2のラダータスク(ステップ212)に関しては、共有メモリとして機能するI/Oメモリ27の領域Bが使用される。さらに、I/Oリフレッシュ並びに優先度レベル3のラダータスク(ステップ213)に関しては、共有メモリとして機能するI/Oメモリ27の領域Cが使用される。
【0047】
一方、サブCPU3は、メインCPU2と同様のサイクル処理としての周辺サービス処理(ステップ221)以外に、サブCPU3の任意のタイミングで実行するI/Oリフレッシュ及び割り込みタスク実行依頼(ステップ231,232,233)を行っている。
【0048】
次に、サブCPU3によるメインCPU2の実行タイミング制御方法について説明する。メインCPU2の処理サイクルとは同期せずに、サブCPU3において10ms、100ms、1000msサイクルの3つの演算ループ処理を行う場合、サブCPU3からメインCPU2に対して、割り込みにて、I/Oリフレッシュ及び優先レベル1〜3のラダータスク実行の依頼を行う。
【0049】
すなわち、図3のフローチャートに示されるように、サブCPU3の側でタイマ割り込み(スケジューリング機能)により割り込みI/Oリフレッシュ実行依頼(ステップ301)が行われると、メインCPU2に対してレベル0の割り込みが掛かり、これに応答してメインCPU2の側ではI/Oリフレッシュ実行処理(ステップ311)が行われる。I/Oリフレッシュ実行処理(ステップ311)が完了すると、サブCPU3に対して割込処理完了通知がなされ、これがサブCPU側で認知されると(ステップ302YES)、サブCPU3の側では割り込みラダータスク実行依頼(ステップ303)が行われ、これを受けてメインCPU2の側では割込ラダータスク実行処理(ステップ312)が行われ、その後、サブCPU3の側では優先レベル1〜3の各ループ演算処理(ステップ304)が実行される。なお、以上の処理のうち、割り込みラダータスク実行依頼(ステップ303)は、必要に応じて選択的に行われる。
【0050】
その結果、メインCPU2とサブCPU3との間でのデータ交換としては、例えばメインCPU2がI/Oリフレッシュした結果を反映したI/Oメモリを、サブCPU3から直接参照したり、サブCPU3からI/Oメモリの内容を直接更新し、その結果をI/Oリフレッシュで周辺I/Oに出力することが可能となる。
【0051】
尚、I/Oメモリは図1に示したパスアービタ28の機能により共有メモリとして使用することができ、各CPU2,3は必要なときにI/Oメモリ27へのアクセスが可能としている。
【0052】
メインCPU2とサブCPU3との処理シーケンスを表わすタイミングチャートが図4に示されている。サブCPU3は10msループ演算処理、100msループ演算処理、1000msループ演算処理の3つの処理を並列で実行しており、各処理の実行タイミングが競合した場合は優先順位(10ms処理>100ms処理>1000ms処理の順)に応じて処理の切り替えを行っている。
【0053】
また、メインCPU2は基本的にはサイクル処理(共通処理・ユーザプログラム実行・I/Oリフレッシュ・イベント処理(ステップ201〜204))を行っており、サブCPU3から割り込み通知(割り込みタスク実行依頼)があった時点で、依頼された割り込みタスクIDに応じた割り込みプログラムを実行している(ステップ211,212,213)。
【0054】
10ms処理、100ms処理、1000ms処理の内容、及びメインCPU側で割り込み通知を受けた際の処理内容が図5のフローチャートに示されている。サブCPU側各ループ処理に関しては、各ループ毎のタイミングでタイマ割り込みが発生し、処理が起動される。
【0055】
処理が起動されると、まず割り込み要求フラグF1に優先度・割り込みタスクIDを設定し、割り込み信号をオンする(ステップ501)。ここでは、割り込みレベル0はI/Oリフレッシュ、割り込みレベル1〜3はラダータスク実行を意味しており、割り込み要求を行う場合にはI/Oリフレッシュとラダータスク実行との両方を起動する。
【0056】
割り込み信号がオンされると、メインCPU2側に対してハードウェアで割り込みが掛かり、その後割り込み要求フラグF1から優先度・割り込みタスクIDを取得する(ステップ511)。その後、優先順位及び割り込みタスクIDに基づいて、I/Oリフレッシュ(ステップ513)、又は割り込みプログラムの実行(ステップ515)が行われる。すなわち、割り込みレベル0の場合には、都度リフレッシュが実行されて(ステップ513)、その後、都度リフレッシュが完了したことが通知されるのに対し(ステップ514)、割り込み1〜3のいずれかの場合には該当するラダータスクが実行される(ステップ515)。
【0057】
このようにしてリフレッシュ完了フラグF2が通知されると、割り込みタスク上の都度リフレッシュが完了したことを確認して(ステップ502)、I/Oメモリからデータの取り込みを行い(ステップ503)、I/Oデータに基づいて演算処理を行う(ステップ504)。この演算処理の内容としては、スケジューリング用パラメータに基づいて該当ループのサブ及びメインCPUのタスクを起動するもので、サブCPU側はPID演算や浮動小数点演算など、メインCPU側はラダーによるシーケンス処理等が含まれる。その後、得られた演算結果はI/Oメモリ27に反映される(ステップ505)。
【0058】
尚、割り込み要求フラグ、リフレッシュ完了フラグ、タスク完了フラグ、スケジューリング用パラメータなどについては、I/Oメモリ(メインCPU・サブCPUともアクセス可能なエリア)上に配置されており、データ仕様としては図6に示されるように設定されている。
【0059】
すなわち、割り込み要求フラグの1ワードは、D0〜D7からなる割り込みタスクIDと、D8〜D11からなる優先レベルと、D12からなる割り込みタスク実行依頼によって構成される。
【0060】
また、リフレッシュ並びにタスク完了フラグの1ワードは、D00に割当たられた1000ms処理リフレッシュ完了、D01に割当たられた100ms処理リフレッシュ完了、D02に割り当てられた10ms処理リフレッシュ完了、D03に割り当てられた1000msタスク実行完了、D04に割り当てられた100msタスク実行完了、D05に割り当てられた10msタスク実行完了となっている。
【0061】
さらに、スケジューリング用パラメータに関しては、各部品(例えば、PID演算子等)毎に、その割込周期種別並びにデータエリア先頭アドレスと、起動ラダータスクIDとが互いに関連づけて記憶されている。
【0062】
以上の説明で明らかなように、この発明の実施形態によれば次のような効果を有する。
【0063】
(1)オプションとして搭載したサブCPUから割り込み通知にて、メインCPUの処理を実行でき、割込通知用フラグやスケジューリング用パラメータを、メインCPUとサブCPUで全領域共有したI/Oメモリ上に配置しているため、プログラムの実行順を容易かつ動的に指定することができる。その結果、サブCPUの特徴をPLCシステム全体としての制御動作に反映させることができる。
【0064】
(2)各CPU毎に独立して動作しつつ、サブCPUの任意の実行タイミングで割り込みにてデータ更新を指示するので、データの受け渡しの同期がとれている。このため、各CPUのスキャン時間の遅れに影響されることなく、PLC全体としての安定した周期精度を確保することができる。
【0065】
(3)メインCPUとしてはI/O制御に特化してリソース(ユーザメモリ等)や機能(高機能な命令サポート)を削減できるため、ローコストでシンプルなPLCを提供できる。
【0066】
なお、以上の実施形態では、いわゆるビルディング・ブロックタイプのPLCに本発明を適用したが、入出力回路や電源回路等をすべて1個のケースに収容したいわゆる一体型のPLCにも適用できることは勿論である。
【発明の効果】
以上の説明で明らかなように、この発明によれば、拡張性に優れると共に、拡張後にあっては、個々のCPUの機能を最大限に発揮させることができ、さらに、比較的に低価格で製作することが可能なマルチCPUタイプのPLCを提供することができる。
【図面の簡単な説明】
【図1】 本発明にかかるCPU装置の構成を概略的に示すブロック図である。
【図2】 メインCPUとサブCPUとの間の処理の概要を示すゼネラルフローチャートである。
【図3】 割り込み要求によるI/Oリフレッシュ並びに割り込みラダータスクの実行手順を示すフローチャートである。
【図4】 メインCPUとサブCPUの処理シーケンスを示すタイミングチャートである。
【図5】 割り込み処理依頼から割り込み処理完了までの動作を示すフローチャートである。
【図6】 割り込み要求フラグとリフレッシュ完了フラグの構成を示すメモリマップである。
【符号の説明】
1 CPU装置
2 メインCPU
3 サブCPU
21 周辺I/Oバス接続用コネクタ
22 コネクタ
23 MPU
24 システムプログラム
25 システムワークメモリ
26 ユーザプログラムメモリ
27 I/Oメモリ
31 コネクタ
32 システムプログラムメモリ
33 システムワークメモリ
34 ユーザプログラムメモリ
F1 割込要求フラグ
F2 リフレッシュ完了フラグ
L1,L2,L3 割込ライン
B3,B5,B6 オプションMPUバス
B2,B4 内部MPUバス
Claims (7)
- 第1のCPUと、第2のCPUと、第1のCPUに内蔵されたI/Oメモリに対して第2のCPUからのアクセスを可能とするためのオプションバスと、第2のCPUから第1のCPUに対して割り込みを掛けるための割り込みラインとを有し、
前記第1のCPUには、
ユーザプログラム実行処理とI/Oリフレッシュ実行処理とをサイクリックに行うサイクリック実行制御手段と、
前記第2のCPUから割り込み要求が到来したときに、I/Oメモリ内の特定I/O領域に関するI/Oリフレッシュ実行処理を割り込みで行い、その後、リフレッシュ完了を第2のCPUへ通知する割り込み実行制御手段と、が少なくとも設けられ、かつ
前記第2のCPUには、第1のCPUに対してサイクリックに割り込み要求を送出すると共に、これに応答して第1のCPUからリフレッシュ完了が通知されるのを待って、ユーザプログラム実行処理を行なうサイクリック実行制御手段が設けられ、さらに
前記第1のCPUに設けられた割り込み実行制御手段は、レベルの異なる多重割り込みを受け付ける機能を有し、かつ各レベルの割り込み要求が到来する毎に、I/Oメモリ内の特定I/O領域に関するI/Oリフレッシュ実行処理を割り込みで行い、その後、リフレッシュ完了を第2のCPUへ通知するものであり、かつ
前記第2のCPUに設けられたサイクリック実行制御手段は、それぞれ固有のサイクルでレベルの異なる多重割り込み要求を送出する機能を有し、かつ各レベルの割り込み要求に応答してリフレッシュ完了が通知されるのを待って、それぞれのレベルに対応するユーザプログラム実行処理を行う、
ことを特徴とするプログラマブル・コントローラ。 - 第1のCPUに設けられた割り込み制御手段は、I/Oリフレッシュ実行処理に加えて、特定のユーザプログラム実行処理を含む、
ことを特徴とする請求項1に記載のプログラマブル・コントローラ。 - 第2のCPUは第1のCPU内のI/Oメモリへ通ずるバスライン並びに第1のCPU内の割り込みラインを含むコネクタに対して着脱自在であり、
第1のCPUにて実行されるユーザプログラムは主としてラダータスクであり、かつ第2のCPUにて実行されるユーザプログラムは主としてデータ演算タスクである、
ことを特徴とする請求項1又は2に記載のプログラマブル・コントローラ。 - 周辺I/Oバスに通ずる第1の外部接続端子と、少なくともI/Oデータの他に割り込み要求フラグ並びにリフレッシュ完了フラグが格納されるI/Oメモリと、外部からI/Oメモリに対するアクセスを可能とするための第2の外部接続端子と、ユーザプログラムが格納されるユーザプログラムメモリと、を有すると共に、
ユーザプログラムメモリに格納された特定のユーザプログラムに関して、ユーザプログラム実行処理とI/Oリフレッシュ実行処理とをサイクリックに行うサイクリック実行制御手段と、
割り込み要求フラグがセットされたときに、I/Oメモリ内の特定I/O領域に関するI/Oリフレッシュ実行処理を割り込みで行い、その後、リフレッシュ完了フラグをセットする割り込み実行制御手段と、が少なくとも設けられている、
ことを特徴とするプログラマブル・コントローラの増設可能なCPU。 - 割り込み実行制御手段は、レベルの異なる多重割り込みを受け付ける機能を有し、かつ各レベルの割り込み要求フラグがセットされる毎に、I/Oメモリ内の特定I/O領域に関するI/Oリフレッシュ実行処理を割り込みで行い、その後、リフレッシュ完了フラグをセットする、
ことを特徴とする請求項4に記載のプログラマブル・コントローラの増設可能なCPU。 - 請求項4に記載のプログラマブル・コントローラのCPUに接続して使用されるものであって、
割り込みラインとデータ入出力バスとを含む外部コネクタと、ユーザプログラムが格納されるユーザプログラムメモリとを有すると共に、
前記外部コネクタに対してサイクリックに割り込み要求を送出すると共に、外部コネクタを介してリフレッシュ完了通知が取得されるのを待って、ユーザプログラムメモリに格納されたユーザプログラムの実行処理を行なうサイクリック実行制御手段が設けられている、
ことを特徴とするプログラマブル・コントローラの増設用CPU。 - サイクリック実行制御手段は、それぞれ固有のサイクルでレベルの異なる多重割り込み要求を送出する機能を有し、かつ各レベルの割り込み要求に対してリフレッシュ完了が通知されるのを待って、それぞれのレベルに対応するユーザプログラム実行処理を行う、
ことを特徴とする請求項6に記載のプログラマブル・コントローラの増設用CPU。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17098299A JP4349687B2 (ja) | 1999-06-17 | 1999-06-17 | プログラマブル・コントローラ |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP17098299A JP4349687B2 (ja) | 1999-06-17 | 1999-06-17 | プログラマブル・コントローラ |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2001005505A JP2001005505A (ja) | 2001-01-12 |
JP4349687B2 true JP4349687B2 (ja) | 2009-10-21 |
Family
ID=15914949
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP17098299A Expired - Fee Related JP4349687B2 (ja) | 1999-06-17 | 1999-06-17 | プログラマブル・コントローラ |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP4349687B2 (ja) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5476913B2 (ja) * | 2009-10-13 | 2014-04-23 | 富士ゼロックス株式会社 | 情報処理装置 |
WO2011125178A1 (ja) * | 2010-04-06 | 2011-10-13 | 三菱電機株式会社 | 制御システム、制御装置および制御方法 |
JP5771114B2 (ja) * | 2011-10-12 | 2015-08-26 | 株式会社日立製作所 | コントローラ、およびタスクとラダーの処理方法 |
-
1999
- 1999-06-17 JP JP17098299A patent/JP4349687B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2001005505A (ja) | 2001-01-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8346378B2 (en) | Programmable controller | |
JP6535459B2 (ja) | プログラマブル・ロジック・コントローラ、基本ユニット、制御方法およびプログラム | |
US8190941B2 (en) | Field control system | |
JPH0376496B2 (ja) | ||
JP4151198B2 (ja) | 割込コントローラ及びマイクロコンピュータ | |
JP4349687B2 (ja) | プログラマブル・コントローラ | |
JP2001265412A (ja) | プログラマブルコントローラ | |
JP3987277B2 (ja) | パルス信号生成装置 | |
JP4299657B2 (ja) | マイクロコントローラ | |
JP2004516547A (ja) | 中断制御装置 | |
JP2008251052A (ja) | I/oユニット及びプログラマブルコントローラシステム | |
JPH11265297A (ja) | 分散シミュレータシステム | |
JP4386852B2 (ja) | 信号処理装置 | |
JPS60218152A (ja) | マイクロ・プロセツサ | |
US20200293429A1 (en) | Semiconductor Apparatus and Debug System | |
JP4190969B2 (ja) | バスシステム及びambaにおけるバス調停システム | |
JP2001084152A (ja) | 割込み信号制御装置 | |
JPH0744492A (ja) | データ転送方式 | |
JP2985092B2 (ja) | 時分割マルチタスク制御装置 | |
JP3632085B2 (ja) | 計測装置 | |
JPH05165541A (ja) | 電子回路 | |
JP3362673B2 (ja) | チャネルコントロール装置 | |
JP2001100812A (ja) | 分散処理方式 | |
JP2014137606A (ja) | データ処理装置 | |
JPH06175859A (ja) | プロセッサ応用装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20060320 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20081210 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20081217 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20090212 |
|
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: 20090715 |
|
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20090721 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120731 Year of fee payment: 3 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130731 Year of fee payment: 4 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |