JP3887989B2 - プログラマブルコントローラ、及びその入出力制御方法 - Google Patents
プログラマブルコントローラ、及びその入出力制御方法 Download PDFInfo
- Publication number
- JP3887989B2 JP3887989B2 JP09027899A JP9027899A JP3887989B2 JP 3887989 B2 JP3887989 B2 JP 3887989B2 JP 09027899 A JP09027899 A JP 09027899A JP 9027899 A JP9027899 A JP 9027899A JP 3887989 B2 JP3887989 B2 JP 3887989B2
- Authority
- JP
- Japan
- Prior art keywords
- data
- module
- frame
- identification number
- output
- 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
【発明の属する技術分野】
本発明は、プログラマブルコントローラ、及びその入出力制御方法に関する。
【0002】
【従来の技術】
近年、プラント、工場などでは、機械や装置のシーケンス制御に多くのプログラマブルコントローラ(以下PCという)を用い、FA(ファクトリーオートメーション)化を実現している。
【0003】
あるPCシステムは、プログラムの実行やデータの演算処理等を行うCPUモジュールや、制御機器とプロセスデータの入出力を行うI/Oモジュールがバス(システムバス等)で接続されて成る構成となっている。これら各モジュールは、システムバスを介して互いにデータのやりとりを行い、接続機器の制御処理を行う。
【0004】
PCシステムが複数のCPUモジュールを備える構成の場合、各CPUモジュールはそれぞれ非同期に動作処理を行っており、またI/Oモジュールに対するプロセスデータの入出力処理もそれぞれ非同期に行っている。このような各CPUモジュールそれぞれが非同期に処理を行うと、CPUモジュール間で入出力処理に対する競合が発生する場合がある。この場合は1つのCPUモジュールのみが入出力処理を行うことが出来、他のCPUモジュールはその間処理の実行を待たされることになる。
【0005】
また、各I/Oモジュールは、リアルタイムで接続機器からのプロセスデータの出力を行い、またCPUモジュールからのデータを必要としているので、複数のCPUモジュールが連携して処理を行う場合に、CPUモジュール間やタスク間で同期が行われていないと、異なるデータを同じデータと認識して処理してしまうなどの問題が生じる場合がある。
【0006】
このような問題に対して、本発明の出願人は、先出願(特願平10−148648)において、CPUモジュール間やマルチタスク処理時のタスク間で同期してデータのやり取りを行うことが可能なPC及びその入出力制御方式を提案している。
【0007】
【発明が解決しようとする課題】
上記本発明の出願人による先出願(特願平10−148648)の方式では、以下に述べる問題点があった。
【0008】
すなわち、上記先出願の方式では、1タクト周期の間に全I/Oモジュール分のデータ転送を行っている。この為、システムに接続されるI/Oモジュールの数が多くなってくるとデータ量が増える為、例えばタクト周期を延ばさないと1タクト周期の間に処理しきれなくなる。
【0009】
また、マルチCPUを構築した場合、上記先出願の方式では各CPUはタクト周期に同期して動作するが、各CPUのタスクの動作までは同期しないものであった。
【0010】
本発明の課題は、I/Oモジュール数が多くなってもタクト周期を比較的短くすることができ、またマルチCPUを構築した場合に各CPUのタスク間の同期までとることができるプログラマブルコントローラ、及びその入出力制御方法を提供することである。
【0011】
【課題を解決するための手段】
本発明による第1のプログラマブルコントローラは、少なくとも1つ以上のCPUモジュールと複数のI/Oモジュールがバスに接続されて成るプログラマブルコントローラにおいて、前記バス上のデータ転送に用いられるフレームに、タクト周期毎に所定の規則で更新される識別番号を付加し、前記各I/Oモジュールは、受信するフレームの前記識別番号に応じて前記CPUモジュールへのデータ出力タイミングであるか否かを判断し、該データ出力タイミングであると判断した場合には前記フレームにデータを付加して転送させるデータ出力制御手段を有する。
【0012】
上記第1のプログラマブルコントローラによれば、例えばトータルフレーム方式のデータ転送において、各I/Oモジュールは、各々、フレームに付加される識別番号に基づいて、自モジュールがデータ出力するタイミングであるか否かを判断し、そうである場合のみフレームにデータを付加して出力する。このように、あるフレームに対して、全てのI/Oモジュールのデータを付加するのではなく、一部のI/Oモジュールのデータのみ付加して転送させることにより、バス上を流れるデータ量を削減することができ、これを以てI/Oモジュールの数が多くても比較的タクト周期を短く設定することができる。
【0013】
本発明による第2のプログラマブルコントローラは、少なくとも1つ以上のCPUモジュールと複数のI/Oモジュールがバスに接続されて成るプログラマブルコントローラにおいて、前記バス上を巡回するトークンに、タクト周期毎に所定の規則で更新される識別番号を付加し、前記CPUモジュールは、前記トークンを受け取ってI/Oモジュールに対するデータ出力を行う際に、該トークンに付加されている識別番号に応じてデータ出力対象のI/Oモジュールを判断し、前記タクト周期毎に該データ出力対象のI/Oモジュールに対するデータの出力処理を行う出力処理手段を有する。
【0014】
上記第2のプログラマブルコントローラによれば、例えばマルチキャスト方式のデータ転送において、CPUモジュールは、タクト周期毎に、全てのI/Oモジュールに対してデータ出力するのではなく、一部のI/Oモジュールに対してのみデータ出力することにより、バス上を流れるデータ量を削減することができ、これを以てI/Oモジュールの数が多くても比較的タクト周期を短く設定することができる。
【0015】
また、前記CPUモジュールの出力処理手段により出力されるデータは、前記識別番号を付加したフレームにより前記バス上を転送され、前記各I/Oモジュールは、受信するフレーム内に自モジュール宛のデータが存在する場合には該データを取込み、受信するフレームの前記識別番号と予め設定/記憶されている出力タイミングデータとに基づいて、所定の条件が成立したときに前記取込んだデータを自モジュールの制御機器に出力する。
【0016】
このように、各I/Oモジュール側において、上記CPUモジュール側で決定される各I/Oモジュールへのデータ出力のタイミングとは関係なく、自モジュールの制御機器へのデータ出力タイミングを判断させることで、例えば複数のI/Oモジュールが同期して自モジュールの制御機器にデータ出力する必要性がある場合でも、これら各I/Oモジュールに対する上記CPUモジュール側でのデータ出力タイミングが異なっていても関係なく、同期してデータ出力させることができる。
【0017】
本発明による第3のプログラマブルコントローラは、複数のCPUモジュールと複数のI/Oモジュールがバスに接続されて成るプログラマブルコントローラにおいて、前記バス上のデータ転送に用いられるフレームに、タクト周期毎に所定の規則で更新される識別番号を付加し、前記各CPUモジュールは、自モジュールの各タスクの起動条件を格納する起動条件格納手段と、該起動条件格納手段に格納される起動条件と受信するフレームの前記識別番号とに基づいて起動条件が成立するか否かを判定し、起動条件が成立するタスクを起動するタスク起動制御手段とを有する。
【0018】
上記第3のプログラマブルコントローラによれば、特にマルチCPUを構築した場合において、各CPUのタスクの動作までタクト周期に同期して行わせることができる。
【0019】
また、例えば、前記識別番号はビットパターンデータとして構成され、前記各I/OモジュールまたはCPUモジュールは、該識別番号に基づいて前記判断または判定を行う為に設定/記憶されているデータをビットパターンデータとしてもつようにすることで、前記判断または判定を行う為の構成を、識別番号を数字データとしてもつ場合に比べて、より簡単なハードウェアで実現することが可能となる。
【0020】
【発明の実施の形態】
以下、図面を参照して、本発明の実施形態について説明する。
図1は、本実施形態を適用するPCシステム全体の構成を示す図である。
【0021】
同図に示すPCシステムは、1または複数のCPUモジュール2と複数のI/Oモジュール3がリング型の伝送トポロジーをもつシリアルリンクバス1によって接続されるネットワーク構成をもつ。このシリアルリンクバス1に接続されている各モジュールには、そのネットワーク上での局としてそれぞれを一意に識別する局番が設定されている。同図では、CPUモジュール2とI/Oモジュール3とを合わせて16局接続されており、各局にその局番として#0〜#16が設定されているものとする。
【0022】
ここで、同図に示すPCシステムの基本的な構成/動作は、上記先出願(特願平10−148648)に記載されているシステムと略同様であるので、ここでは概略的にのみ説明する。
【0023】
まず、ネットワーク上の局となるCPUモジュール2、I/Oモジュール3等のPC内の各モジュールは、内部にシリアルリンク制御LSI(不図示)を備え、このシリアルリンク制御LSIを介してシリアルリンクバス1と接続されている。
【0024】
ネットワーク上を流れるフレームは、シリアルリンクバス1上を一定方向に巡回し(例えば図1において“矢印”で示す方向)、シリアルリンク制御LSIは、上流局から送信されたフレームを自己の受信バッファに取込み、自局に対するデータがなければそのまま下流局に送り、また自局に対するデータがあればそれを取込む。このようにして、シリアルリンクバス1上をフレームデータが一定方向に巡回する。
【0025】
そして、CPUモジュール2がI/Oモジュール3等からデータを受信する“受信処理”のときのデータ転送は、トータルフレーム方式により行う。またCPUモジュール2からI/Oモジュール3などへデータを出力する“送信処理”のときのデータ転送は、マルチキャスト方式により行う。
【0026】
トータルフレーム方式は、リング上のトポロジーを持つシリアルリンクバス1において、巡回する1つのフレームに対してI/Oモジュール3の各局が自局データを追加してゆき、フレームがシリアルリンクバス1を2巡回することで、自局データの送信及び他局データの受信を行い、各局が他局のデータの共有化を図ると共に伝送効率を上げるようにした伝送方式である。
【0027】
マルチキャスト方式は、シリアルリンクバス1上にマルチキャスト通信用のフリートークンを巡回させ、データ伝送を要求する局(出力装置に出力するための送信データが用意されており、また当該送信帯域の送信許可設定がされている局)は、フリートークンを確保して代わりにマルチキャストフレームの送信を行う。マルチキャストフレームはシリアルリンクバス1上を巡回し、このマルチキャストフレームを受信したネットワーク上の局は、それを下流へ中継して巡回させると共に、フレーム内の出力データの設定内容に基づいて自局宛のデータの取込みを行う。
【0028】
トータルフレーム方式、マルチキャスト方式の詳細については、上記先出願で説明されているので、ここでの説明は省略する。
以下、まず、図2〜図5を参照して、本実施形態におけるトータルフレーム方式によるCPUモジュール2のデータ受信処理について説明する。
【0029】
上記先出願ではタクト周期の時間は、例えば1msec*N(Nの値はシリアルリンクバス1上の局数に応じて変動する)としており、局数が多くなるにしたがってタクト周期の時間を延ばさなければならなかったが、本実施形態では局数が多くなってもタクト周期を比較的短く設定できる。
【0030】
尚、これは、第1の実施例とする。
尚、CPUモジュール2には、定周期タスクが4種類定義され、それぞれの周期が1ms、2ms、5ms、10msであるものとする。また、タクト周期は1msとする。換言すれば、タクト周期の1倍、2倍、5倍、10倍の周期の定周期タスクが存在する。
【0031】
図2は、CPUモジュール2内での入力データに対する制御処理を示す図である。すなわち、特にトータルフレーム方式に係わる構成を示してある。
同図において、CPUモジュール2は、データの入力制御を行うための構成要素として、入力バッファ21、I/O領域22、入力バッファ転送テーブル23及び入力データ転送テーブル24を有する。また、CPUモジュール2は、シリアルリンク制御LSI10を備えており、これはデータの入力制御に係わる構成要素として、受信バッファ11を有する。
【0032】
入力バッファ21は、上流局から流れてきたデータの中で自モジュールで必要な局からのプロセスデータを取込む為のバッファである。
I/O領域22は、自局で実行されているアプリケーションプログラムの各タスク25が、直接アクセスすることが出来るメモリ領域である。CPUモジュール2内にあるプログラム処理を行う実行プロセッサ(不図示)は、このI/O領域22内から自己が必要とするデータを読み出したり、あるいはI/Oモジュール3への出力データをI/O領域22に書込む。
【0033】
シリアルリンク制御LSI10は、シリアルリンクバス1からトータルフレーム方式により送信されてくるフレーム(トータルフレーム)を受信すると、これを自己の受信バッファ11に取込むと共に下流局のモジュールに流す。そして、CPUモジュール2は、入力バッファ転送テーブル23を参照して、必要なデータを受信バッファ11から入力バッファ21に取込む。詳しくは、受信バッファ11に一時的に記憶されたデータの中で自局が必要とするデータは、タクト周期(シリアルリンクバス1の転送周期と同一周期)で、受信バッファ11から入力バッファ21に転送される。そして、タスク25起動時に、そのタスクに対応する入力データ転送テーブル24が参照されて、そのタスクが必要とするデータが入力バッファ21からI/O領域22に転送される。
【0034】
図3は、I/Oモジュール3の構成の一例を示す図であり、特に入力装置DiとしてのI/Oモジュールの構成を示す。
ここで、I/Oモジュール3の役割は、自局が接続している制御機器からのデータを入力してCPUモジュール2に渡す入力装置Diとしての役割と、CPUモジュール2からの制御指示情報等を自己が接続される制御機器等に渡す出力装置Doとしての役割とに大別される。ここでは、トータルフレーム方式に係わり、入力装置DiとしてのI/Oモジュールの構成/動作について説明する。
【0035】
図3に示す入力装置(Di)30は、シリアルリンク制御LSI31、バッファ32等を有する。また、同図に示す(自局の)“局番情報”、“構成情報”等を記憶する記憶部等も備えている。
【0036】
シリアルリンク制御LSI31は、シリアルリンクバス1よりトータルフレーム方式のフレーム(1巡目のフレーム)を受信すると、後述する自局のデータ出力タイミング(CPUモジュールへのデータ出力)である場合のみ、受信したフレームの末尾に自局のデータを付加して出力する。この出力データは、当該入力装置(Di)30に接続されている制御機器からの入力データに基づいて、事前に出力バッファ32内に生成しておいたものである。また、このデータには、上記自局の局番情報、構成情報(データサイズ、ステータス情報等)が付加される。
【0037】
I/Oモジュール3のシリアルリンク制御LSI31は、その内部の不図示のメモリ等に周期情報と位相情報の格納領域を備えており、上記フレームを受信すると、このフレームに含まれる“タクトNO. ”(後述する)と、当該周期情報と位相情報とに基づいて、自局の出力タイミングであるか否かを判定し、そうである場合のみデータ出力を行う。尚、これらの情報は、例えば電源ON時やリセットスタート時等のイニシャル処理時に、CPUモジュール2が各I/Oモジュール3に対して設定する。設定内容は、プログラム作成ツール(ローダ)によるプログラム作成時やシステム構成作成時に、自動あるいは手動により作成される。
【0038】
本実施形態の“受信処理”においては、各I/Oモジュールが、少なくとも全て同じ頻度でデータ更新する必要はないことに着目し、上記各I/Oモジュール毎に個別に周期情報と位相情報を設定することで、各I/Oモジュール毎に必要とされる適切な頻度でデータ出力できるようにして、不必要なデータ転送を避ける。そして、これを以て、各フレームに付加されるI/Oモジュールの出力データ量を減少させることで、I/Oモジュール点数が多くなっても、その分タクト周期の時間を延ばさなければならないということがなくなるようにする。各I/Oモジュール毎の適切なデータ転送頻度とは、例えば、高速性が要求されるI/Oモジュールは短い周期でデータ転送し、高速性が要求されないI/Oモジュールは長い周期でデータ転送するように設定する。
【0039】
例えば、図4に示すようにシリアルリンクバス1に一台のCPUモジュール2(局番#0)と17台のI/Oモジュール(#1〜#17)(入力装置(Di))が接続されて成るPCシステムにおいて、上記プログラム作成ツール(ローダ)によるプログラム作成時やシステム構成作成時に、各I/Oモジュール(#1〜#17)の制御周期を、I/O#1〜I/O#2を1ms、I/O#3〜I/O#5を1ms、I/O#6〜I/O#9を5ms、I/O#10〜I/O#17を10msと設定した場合、各I/Oモジュールの周期情報と位相情報は、図4の図上の下側に示すような内容となる(尚、位相情報は、同一の制御周期のI/Oモジュールの出力タイミングが分散されるように適宜決められるようにプログラムされる。すなわち、“位相情報”とは、“制御周期”が同じであるI/Oモジュールが複数ある場合に、同じタイミングで出力されることで特定のフレームにデータが集中しないように、出力タイミングをズラす為の情報である)。
【0040】
図5は、図4に示す様に各I/Oモジュール毎に“周期情報”と“位相情報”が設定された場合に、CPUモジュール(#0)に転送されるトータルフレームに付加されるデータ内容を示す図である。
【0041】
トータルフレームには、図5に示すように、その先頭部分にタクトNO. が設定される。タクトNO. は、例えばCPUモジュール(#0)(リングマスター局)がフレームをシリアルリンクバス1上に送出する毎に+1インクリメントされる。勿論これに限るものではなく、タクトNO. は何等かの所定の規則にしたがって更新されていくものである。また、タクトNO. は例えば0〜9まで更新されると次は0に戻るというように、ある周期でローテートさせるようにしてもよい。
【0042】
各I/Oモジュール(#1〜#17)は、受信したフレームのタクトNO. を参照し、図4に示すように設定された“周期情報”と“位相情報”とに基づいて、自局のデータ出力タイミングであるか否かを判定し、そうである場合は受信したフレームの末尾に自局のデータを付加して出力する。
【0043】
上記判定の方法は、例えば、受信したフレームのタクトNO. を“周期情報”で割り、その余りが“位相情報”と一致するか否かで行う。例えば、タクトNO. が‘3’のフレームを受信した場合、I/Oモジュール#1、#2は、“周期情報”が‘1’で“位相情報”が‘0’であり、3÷1の演算の余り‘0’が“位相情報”と一致するので、自局のデータを出力する。また、I/Oモジュール#4、#9、#13も、それぞれ、タクトNO. と“周期情報”に基づく演算(3÷2)、(3÷5)、(3÷10)の余り‘1’、‘3’、‘3’が、自己の“位相情報”と一致するので、自局のデータを出力する。これによって、図5に示すように、タクトNO. (=3)のフレームには、I/Oモジュール#1、#2、#4、#9、及び#13の出力データが付加されて、CPUモジュール(#0)に転送される。
【0044】
このように、多数のI/Oモジュール(#1〜#17)が存在する場合でも、従来のようにフレームに#1〜#17の全ての出力データを付加することなく、シリアルリンク1上を転送させるデータ量を少なくすることができるので、データ転送処理時間を短縮させることができ、以てタクト周期を短くすることができる。これは、換言すれば、I/Oモジュールの数が増えても従来と比較してタクト周期を延ばす割合を小さくでき(またはタクト周期を延ばす必要なく)、また従来と比較して、同じタクト周期で扱えるI/O点数を大幅に増やすことが可能となると言える。
【0045】
このような効果は、“位相情報”を用いることにより、出力頻度(周期情報)が同じである複数のI/Oモジュールが存在する場合に、例えば図4に示すような周期情報が‘5’であるI/Oモジュール#6、#7、#8、及び#9の出力を、図5に示すようにタクトNO. 0〜4のフレームに分散させることにより、更に顕著になる。
【0046】
次に、以下、図6〜図11を参照して、本実施形態におけるマルチキャスト方式によるCPUモジュール2のデータ出力処理について説明する。
上記先出願ではタクト周期の時間は1msec*N(Nの値はシリアルリンクバス1上の局数に応じて変動する)としており、局数が多くなるにしたがってタクト周期の時間を延ばさなければならなかったが、本実施形態では局数が多くなってもタクト周期を比較的短く設定できる。
【0047】
尚、これは、第2の実施例とする。
以下の説明では、例えば、図6に示すように、シリアルリンクバス1には、CPUモジュール2(局番#0)と、#21〜#37までの17局のI/Oモジュール3(全て出力装置とする)が接続されているものとする。
【0048】
図7は、CPUモジュール2内でのデータ出力に関する制御処理を示す図である。すなわち、特にマルチキャスト方式に係わる構成を示してある。
CPUモジュール2内には、データの出力制御を行うための構成要素として、出力バッファ26、出力データ転送テーブル27、及び出力バッファ転送テーブル28を有し、またシリアルリンク制御LSI10内に送信バッファ12を有する。
【0049】
出力バッファ26は、出力データ転送テーブル27の参照結果によりデータを出力する局毎にタスク25が出力処理を行うデータを、出力先のI/Oモジュールの局番、データのサイズ及びマスク情報と共に蓄積するバッファである。
【0050】
出力データ転送テーブル27は、タスク毎に存在し、そのタスクが出力する出力データをI/O領域22から出力バッファ26へ転送を行う際に参照されるものである。
【0051】
出力バッファ転送テーブル28は、各タクトNO. に対応する形式でタクトNO. 毎に存在する。すなわち、本実施形態のマルチキャスト方式においては、マルチキャスト用のトークンの中にタクトNO. が設定されている。そして、CPUモジュール2(シリアルリンクLSI10)は、受信したマルチキャスト用のトークンの中にあるタクトNO. より、出力バッファ転送テーブル28の中でこのタクトNO. に対応するテーブルを用いて、出力バッファ26から送信バッファ12に必要なデータを転送させる。
【0052】
これについて、更に、図8、図9に示す具体的な一例を参照しながら説明する。
図8は、図7の出力バッファ転送テーブル28による出力バッファ26から送信バッファ12へのデータの転送を詳細に説明する為の図である。
【0053】
出力データ転送テーブル27は、上記の様に、各タスク毎に複数存在し、I/O領域22から出力バッファ26へのデータの転送を行う際に参照されるものである。これは、例えば図8に示すように、入力データ転送テーブル27には、各タスクが出力処理を行うデータ毎に、そのデータのI/O領域22における格納位置である「アドレス1」と、出力バッファ26における格納位置である「アドレス2」とが対応付けられて格納されている。
【0054】
また、出力バッファ26は、同図に示すように、データを出力すべき局(I/Oモジュール3)毎に、タスク25が出力処理を行うデータと、その局の局番(例えば#21等)、データのサイズ及びマスク情報とを格納する。
【0055】
出力バッファ転送テーブル28は、上記の様にタクトNO. 毎に対応する各テーブルより成り、例えば同図に示すように、タクト0用、タクト1用、タクト2用、・・・のテーブルが存在する。各タクトNO. 用のテーブルには、そのタクトNO. を持つマルチキャスト用のトークンを受信したときに各局(I/Oモジュール)に出力すべきデータが格納されている(出力バッファ26内の)アドレス(アドレス3)が格納されている。尚、同図では、一律に、「アドレス3」として示しているが、実際には、例えば図9に示すようになる。
【0056】
図9は、出力バッファ転送テーブル28の一例を示す図である。
同図では、例えば、タクトNO. が0〜9まであるものとし、各タクトNO. に対応したテーブルの一例を示している。各テーブルには、上記の様に、各局(I/Oモジュール)への出力データが格納されている(出力バッファ26内の)アドレスが格納されており、例えばタクト0用のテーブルでは、I/Oモジュール#21、#22、#23、#25、#26、#30のデータが格納されている(出力バッファ26内の)各アドレスが格納されている。また、各テーブルの最後には「終了コード」が格納されている。
【0057】
これら各テーブルの内容は、例えば、コンパイル時に、プログラム作成ツール(ローダ)がPCのシステムの定義情報を参照し、自動生成する(例えば、図9に示す例は、図6の下側に示すような制御周期、周期情報、位相情報に対応する形で生成されている)。そして、アプリケーションプログラムをCPUモジュール2にダウンロードする時に同時にシステム定義としてダウンロードされ、アプリケーションプログラムが実行される前に予めCPUモジュール2内に格納される。
【0058】
このような出力バッファ転送テーブル28を参照するデータ出力処理について、以下、図10を参照して説明する。
図10において、マルチキャスト用のトークンを受信すると、そのタクトNO. に対応するテーブルを参照して、以下の処理を行う(ステップS1)。
【0059】
すなわち、そのテーブルより1データ読み出す毎に、そのデータが上記「終了コード」であるか否かを判定し(ステップS2)、そうである場合には(ステップS2、YES)処理を終了する。「終了コード」ではない場合には(ステップS2、NO)、上記読み出したデータは、いずれかの局に対する出力データの(出力バッファ26内の)格納アドレスであるので、出力バッファ26内の当該アドレスに格納されているデータを送信バッファ12に転送する。これは、まず、このアドレスにおける上記「サイズ」情報を参照し、この情報により示されるササイズ分だけこのアドレスにおける「データ」を送信バッファ12に転送する(ステップS3)。転送が完了すると、テーブルのポインタを進めて(ステップS4)、上記ステップS2の処理に戻り、「終了コード」になるまでステップS2〜ステップS4の処理を繰り返す。
【0060】
例えば受信したトークンのタクトNO. が‘0’であった場合、図9におけるタクト0用のテーブルを用いて上記図10の処理を行うことにより、図11の一番上側に示すように、#21、#22、#23、#25、#26、#30のI/Oモジュールに対するマルチキャストフレームが出力される。
【0061】
このように、CPUモジュール2は、タクトNO. に応じて所定のI/Oモジュール3に対するデータのみ有するマルチキャストフレームを出力する。
これより、各I/Oモジュール3(出力装置DO )における入力処理は、単に、出力装置であるI/Oモジュール3がシリアルリンクバス1より受信したマルチキャストフレームの中から、自局に対するデータを取込み、自局に接続されている制御機器等に出力するだけでよい。すなわち上記先出願の入力処理と略同様であってよい。
【0062】
上述した第2の実施例では、“制御周期”が同じであるI/Oモジュールが複数ある場合に、“位相”をズラして、特定のフレームにデータが集中しないようにしているが、一方で、PCシステムにおいては、何等かの事情により、“制御周期”が同じである複数のI/Oモジュールが同期して自局に接続されている制御機器にデータ出力しなければならない場合がある。
【0063】
このような場合、上述した第2の実施例の方法だけでは、“位相情報”を同一にするしかないが、これでは特定のフレームにデータが集中してしまい、シリアルバス1上を流れるデータ量の削減効果が小さくなってしまう。
【0064】
以下、このような場合に対応する方法の一例について、図12〜図14を参照して説明する。尚、これは第3の実施例とする。
図12は、第3の実施例におけるI/Oモジュール3(出力装置DO )の構成の一例を示す図である。
【0065】
同図において、出力装置(DO )40は、シリアルリンク制御LSI41とバッファ42等を有する。
シリアルリンク制御LSI41は、シリアルリンクバス1よりマルチキャストフレームを受信すると、自己の受信バッファ(不図示)内にそのフレームを取込むと共に下流局へ送信する。
【0066】
ここで、シリアルリンク制御LSI41は、その内部の不図示のメモリ等に周期情報格納領域と位相情報格納領域を備えており、上記フレームを受信すると、当該フレームに自局宛のデータが含まれている場合にはデータを取り出し、またこのフレームに含まれる“タクトNO. ”と、当該周期情報及び位相情報とに基づいて、自局の制御機器に対するデータ出力タイミングであるか否かを判定する。
【0067】
判定方法は、例えば、受信したマルチキャストフレームの先頭部分に設定されている“タクトNO. ”を取込み、このNO. の値を上記周期情報の値で除算し、その余りが上記位相情報の値と一致したとき、自局の制御機器に対するデータ出力タイミングであると判定する。
【0068】
そして、データ出力タイミングではない場合には、上記フレームより取り出したデータを一時的に記憶しておく。一方、データ出力タイミングである場合には、上記フレームより取り出したデータまたは上記一時的に記憶してあったデータを、自局の制御機器に出力する。
【0069】
尚、これらの情報は、例えば電源ON時やリセットスタート時等のイニシャル処理時に、CPUモジュール2が各I/Oモジュール3に対して設定する。設定内容は、プログラム作成ツール(ローダ)によるプログラム作成時やシステム構成作成時に、自動あるいは手動により作成される。
【0070】
図13、図14は、上記各I/Oモジュール3(出力装置DO )の周期情報と位相情報の設定内容の一例を示す図である。
図13では、同図に示すように、全てのI/Oモジュール3の位相情報を‘0’に設定している。これは、上述した同一の制御周期のI/Oモジュール3の出力を、同期したタイミングで行わせる為の設定である。
【0071】
例えば、同図において、図11における“タクトNO. ”(=3)のフレームがバス上を転送されている場合、I/Oモジュール#24は自局宛のデータを受信するが、“タクトNO. ”(=3)を周期情報(=2)で割った余り‘1’が、位相情報(=0)と一致しないので、このときは未だ自局が接続されている制御機器にデータ出力せずに、一時的に記憶しておく。そして、次に“タクトNO. =4”のフレームが転送されてくると、出力タイミングであると判断して、上記データを出力する。このとき、I/Oモジュール#23、#25でも、自局宛のデータを受信すると共に出力タイミングであると判断して受信データを制御機器に出力する。このようにして、制御周期が同じである3つのI/Oモジュール#23、#24、#25が、同期したタイミングでデータ出力するようにできる。
【0072】
このように、第3の実施例によれば、CPUモジュール2側で位相をズラして(特定のフレームにデータが集中しないようにして)送信しても、I/Oモジュール3側では受信したデータの出力タイミングを、“タクトNO. ”と自局内に格納されている周期情報と位相情報とに基づいて判断するので、同一の制御周期のI/Oモジュール3の出力を、同期したタイミングで行わせることができる。
【0073】
また、図14に示すような位相情報の設定の仕方により、同一の制御周期のI/Oモジュール3の出力タイミングを、意識的にズラすこともできる。尚、同図に示す設定内容では、図11に示すようなフレームを受信する場合は、自局宛のデータを受信するときが出力タイミングとなっているが、これに限るものではない。
【0074】
次に、第4の実施例について、図15〜図17を参照して説明する。
第4の実施例では、例えば図15に示すようなマルチCPUシステムにおいて、各CPU内のタスクの動作まで同期させる方法を示す。
【0075】
以後、図15に示すようなCPU#0、CPU#1、CPU#2の3台のCPUを有するマルチCPUシステムを一例として説明する。
また、各CPUには、図16に示すような定周期タスクが登録されているものとする。すなわち、CPU#0には、タスク0(2ms周期)及びタスク1(5ms周期)という定周期タスクが登録されている。CPU#1には、タスク2(2ms周期)及びタスク3(5ms周期)が登録されている。CPU#2には、タスク4(5ms周期)が登録されている。
【0076】
そして、本実施例では、同図に示すように、各CPUモジュール毎に、各定周期タスクに関する周期情報と位相情報が設定されている。尚、これら周期情報、位相情報は、例えば各CPU毎に各タスクの制御情報として予めローダから設定されている。
【0077】
これより、例えば上記第1の実施例におけるトータルフレーム受信時に、当該トータルフレームに付加されている“タクトNO. ”に応じて上記各定周期タスクの起動タイミングも制御される。すなわち、上記各CPUモジュールの各タスク毎に、上記“タクトNO. ”の値を周期情報の値で除算して、その余りが位相情報の値と一致する場合にそのタスクを起動する。
【0078】
例えば、図16に示すように各定周期タスクの周期情報と位相情報が設定されている場合、当該マルチCPUシステムのタスクの動作シーケンスは、図17に示すようになる。例えば、タクト2(“タクトNO. ”=2)のトータルフレーム受信時には、CPU0のタスク0が、2÷2の余りがその位相情報‘0’と一致し、またCPU2のタスク4が、2÷5の余りがその位相情報‘2’と一致するので、これらタスク0及びタスク4が起動する。
【0079】
このように、トータルフレームの“タクトNO. ”と、各CPUモジュール2において各定周期タスクに対して設定されている周期情報及び位相情報とを用いて、上述した方法により各タスクの起動タイミングを制御することにより、マルチCPUシステムにおける各タスク間で完全に同期した制御を行うことが可能となる。また、各CPU間のタスク制御をパイプライン化して制御することも可能となる。
【0080】
上述した各実施例の説明では、“タクトNO. ”や周期情報、位相情報等を、数値データとして扱うような説明としたが、これに限るものではない。
例えば、図18に示すようなビットパターンとして構成することもできる。
【0081】
図18(a)には、トータルフレームに付加するビットパターンの一例を示す。これは、“タクトNO. ”に相当するものであり、以後「タクトパターンデータ」という。
【0082】
図18(b)には、各I/Oモジュールにおいて設定/格納されるビットパターンの一例を示す。これは、周期情報、位相情報に相当するものであり、以後「処理パターンデータ」と呼ぶ。
【0083】
尚、同図では、タクトパターンデータ、処理パターンデータを16bit としているが、これに限るものではない。
上記ビットパターンを用いる構成によって、上述した各実施例における「自モジュールのデータ入力/出力タイミングであるか否かを判定すること」を実現する方法について、以下に説明する。
【0084】
すなわち、各I/Oモジュールは、受信したトータルフレームに付加されているタクトパターンデータを取り出して、このタクトパターンデータと自己の処理パターンデータとで論理積(AND)処理を行い、この結果が‘0’(0000000000000000)でなければ上記データ入力/出力タイミングであると判定して、上記所定の処理を実行する。例えば、同図(a)におけるタクトNO. 0に相当する「タクトパターンデータ」を、同図(b)におけるI/O#1に相当する「処理パターンデータ」とで論理積(AND)処理を行うと、その結果は‘0’にはならない(別の言い方をすれば、AND処理結果が、タクトNO. 0の「タクトパターンデータ」と同じになる)ので、上記データ入力/出力タイミングであると判定する。
【0085】
尚、同図に示す「処理パターンデータ」は、図4に示す周期情報、位相情報に対応するものとなっている。例えば、I/O#1、#2は周期情報が‘1’であるので、いずれの「タクトパターンデータ」に対してもAND処理結果が‘0’にはならないように設定されている(尚、これらの上位ビット側が‘1’になっていないのは、タクトNO. 0〜9までしか対応させていないからであり、これらは必要であれば、16bit 全てを‘1’にすべき性質のものである)。
【0086】
このような方法を用いることにより、各I/Oモジュール毎に剰余算の為の回路を設ける必要はなく、簡単なハードウェアで実現することができるようになる。
【0087】
【発明の効果】
以上、詳細に説明したように、本発明のプログラマブルコントローラ及びその入出力制御方法によれば、システムバス上を流れるフレームに、所定の規則にしたがって更新される識別番号を付加し、この識別番号に基づいて自モジュールのデータ入力またはデータ出力タイミング、あるいは出力先のモジュールを決定する為の情報を各モジュール毎に設定/格納しておくことにより、各I/Oモジュール毎に適切なデータ更新周期を設定することができ、以て不必要なデータ転送を抑止してバス上を流れるデータ量を削減することができ、これよりI/Oモジュール数が増えてもタクト周期を比較的短く設定することができるようになる。
【0088】
また、上記フレームに付加される識別番号に基づいて、CPUモジュールの各タスクの起動タイミングも制御でき、複数のCPUモジュールより成るマルチCPUシステムにおいてはタスク間の同期を完全に取ることが可能となる。
【図面の簡単な説明】
【図1】本実施形態を適用するPCシステム全体の構成を示す図である。
【図2】CPUモジュール内での入力データに対する制御処理を示す図である。
【図3】I/Oモジュール(入力装置DiとしてのI/Oモジュール)の構成の一例を示す図である。
【図4】各I/Oモジュールの制御周期に応じた周期情報、位相情報の設定の一例を示す図である。
【図5】図4に示す設定内容に応じてトータルフレームにより転送されるデータの一例を示す図である。
【図6】図1に示すPCシステムにおいて、特にマルチキャスト方式に係わる構成を示すシステム構成図である。
【図7】CPUモジュール内でのデータ出力に関する制御処理を示す図である。
【図8】図7の出力バッファ転送テーブルを用いた出力バッファから送信バッファへのデータの転送を詳細に説明する為の図である。
【図9】出力バッファ転送テーブルの一例を示す図である。
【図10】CPUモジュールのデータ出力処理を説明する為のフローチャートである。
【図11】図9に示す設定内容に応じてマルチキャストフレームにより転送されるデータの一例を示す図である。
【図12】I/Oモジュール(出力装置DO )の構成の一例を示す図である。
【図13】各I/Oモジュール(出力装置DO )の周期情報及び位相情報の設定内容の一例(その1)を示す図である。
【図14】各I/Oモジュール(出力装置DO )の周期情報及び位相情報の設定内容の一例(その2)を示す図である。
【図15】マルチCPUシステムであるPCシステムの構成の一例を示す図である。
【図16】マルチCPUシステムにおける各CPUの定周期タスクに関する周期情報及び位相情報の設定内容の一例を示す図である。
【図17】図16に示す各定周期タスクの設定内容に応じたタスクの動作シーケンスの一例を示す図である。
【図18】タクトNO. 、周期情報、位相情報等を、ビットパターンとして構成する変形例を説明する為の図である。
【符号の説明】
1 シリアルリンク
2 CPUモジュール
3 I/Oモジュール
10 シリアルリンクLSI
11 受信バッファ
12 送信バッファ
21 入力バッファ
22 I/O領域
23 入力バッファ転送テーブル
24 入力データ転送テーブル
25 タスク
26 出力バッファ
27 出力データ転送テーブル
28 出力バッファ転送テーブル
30 入力装置(I/Oモジュール)
31 シリアルリンクLSI
32 バッファ
40 出力装置(I/Oモジュール)
41 シリアルリンクLSI
42 バッファ
Claims (7)
- 少なくとも1つ以上のCPUモジュールと複数のI/Oモジュールがバスに接続されて成るプログラマブルコントローラにおいて、
前記バス上のデータ転送に用いられるフレームに、タクト周期毎に所定の規則に従って更新される識別番号を付加し、
前記各I/Oモジュールは、
予め自局の周期情報と位相情報とを記憶しておく記憶手段と、
前記フレームを受信する毎に、該フレームに付加されている前記識別番号と前記記憶してある周期情報と位相情報とに基づいて、前記識別番号と前記周期情報とを用いた所定の演算の結果が前記位相情報と一致した場合には、前記CPUモジュールへのデータ出力タイミングであると判定して前記フレームにデータを付加して転送させるデータ出力制御手段と、
を有することを特徴とするプログラマブルコントローラ。 - 少なくとも1つ以上のCPUモジュールと複数のI/Oモジュールがバスに接続されて成るプログラマブルコントローラにおいて、
前記バス上を巡回するトークンに、タクト周期毎に所定の規則に従って更新される識別番号を付加し、
前記CPUモジュールは、
予め前記各識別番号毎に対応付けて、該識別番号を有するトークンを受信したときにデータ出力対象とする1又は複数のI/Oモジュールを記憶する記憶手段と、
前記トークンを受信する毎に、該トークンに付加されている前記識別番号を取得し、前記記憶手段を参照してデータ出力対象のI/Oモジュールを判別し、該データ出力対象のI/Oモジュールに対するデータの出力処理を行う出力処理手段とを有し、
前記CPUモジュールの出力処理手段は、前記識別番号を付加したフレームに、前記データ出力対象のI/Oモジュールの局番とデータとを格納して、該フレームを前記バス上を送出し、
前記各I/Oモジュールは、
予め自局の周期情報と位相情報とを記憶しておく記憶手段と、
前記フレームを受信する毎に、該受信したフレーム内に格納された前記局番に基づいて該フレーム内に自モジュール宛のデータが存在するか否かを判定し、存在する場合には該データを取込むと共に該フレームに付加されている前記識別番号を取得し、該識別番号と前記記憶してある周期情報と位相情報とに基づいて、前記識別番号と前記周期情報とを用いた所定の演算の結果が前記位相情報と一致した場合には、自モジュールの制御機器に対するデータ出力タイミングであると判定し、前記取込んだデータを自モジュールの制御機器に出力する制御手段と、
を有することを特徴とするプログラマブルコントローラ。 - 複数のCPUモジュールと複数のI/Oモジュールがバスに接続されて成るプログラマブルコントローラにおいて、
前記バス上のデータ転送に用いられるフレームに、タクト周期毎に所定の規則に従って更新される識別番号を付加し、
前記各CPUモジュールは、
自モジュールが有する定周期タスクに関する周期情報と位相情報とを記憶する記憶手段と、
前記フレームを受信する毎に、該フレームに付加されている前記識別番号と前記記憶してある周期情報と位相情報とに基づいて、前記識別番号と前記周期情報とを用いた所定の演算の結果が前記位相情報の値と一致した場合には、前記定周期タスクを起動するタスク起動制御手段と、
を有することを特徴とするプログラマブルコントローラ。 - 前記識別番号と前記周期情報とを用いた所定の演算の結果は、前記識別番号を前記周期情報の値で除算した余りであることを特徴とする請求項1,2、3の何れかに記載のプログラマブルコントローラ。
- 前記識別番号は、前記タクト周期毎に+1インクリメントされることを特徴とする請求項1〜4の何れかに記載のプログラマブルコントローラ。
- 前記識別番号、周期情報、及び位相情報は、ビットパターンデータとして構成されることを特徴とする請求項1、2、3のいずれかに記載のプログラマブルコントローラ。
- 少なくとも1つ以上のCPUモジュールと複数のI/Oモジュールがバスに接続されて成るプログラマブルコントローラにおける各I/Oモジュールの入出力制御方法であって、
受信したフレームに付加されている識別番号を予め設定される周期情報で除算し、該除算の余りが予め設定される位相情報と一致する場合に自モジュールのデータ出力またはデータ入力を行うことを特徴とする入出力制御方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09027899A JP3887989B2 (ja) | 1999-03-30 | 1999-03-30 | プログラマブルコントローラ、及びその入出力制御方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP09027899A JP3887989B2 (ja) | 1999-03-30 | 1999-03-30 | プログラマブルコントローラ、及びその入出力制御方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2000284812A JP2000284812A (ja) | 2000-10-13 |
JP3887989B2 true JP3887989B2 (ja) | 2007-02-28 |
Family
ID=13994063
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP09027899A Expired - Lifetime JP3887989B2 (ja) | 1999-03-30 | 1999-03-30 | プログラマブルコントローラ、及びその入出力制御方法 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3887989B2 (ja) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423543B2 (en) | 2012-09-05 | 2019-09-24 | Mitsubishi Electric Corporation | Input/output response control setting device |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP7083268B2 (ja) * | 2018-03-30 | 2022-06-10 | パナソニック デバイスSunx株式会社 | マルチコントローラシステム |
-
1999
- 1999-03-30 JP JP09027899A patent/JP3887989B2/ja not_active Expired - Lifetime
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10423543B2 (en) | 2012-09-05 | 2019-09-24 | Mitsubishi Electric Corporation | Input/output response control setting device |
Also Published As
Publication number | Publication date |
---|---|
JP2000284812A (ja) | 2000-10-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US8219216B2 (en) | Method and apparatus for synchronizing configuration changes across multiple components of an industrial control system | |
US7360002B2 (en) | Method of arbitrating access to a data bus | |
JP4154853B2 (ja) | 制御データを等値化する冗長化プログラマブルコントローラ及び等値化方法。 | |
JP3551905B2 (ja) | 管理局及びネットワークシステム並びにネットワークシステムにおける通信方法 | |
JP3887989B2 (ja) | プログラマブルコントローラ、及びその入出力制御方法 | |
US11269313B2 (en) | Controller and control system that stores data in current control cycle for output in next control cycle | |
JP2008146541A (ja) | Dma転送システム、dmaコントローラ及びdma転送方法 | |
JP3959845B2 (ja) | プログラマブルコントローラにおける入出力制御方式 | |
JP2008077265A (ja) | プログラマブルコントローラのプログラム更新方法 | |
EP1476986B1 (en) | Information communication controller interface apparatus and method | |
JP2006171833A (ja) | Plcのデータ交換システム、及びplcのデータ交換システムの制御方法 | |
JPH11265297A (ja) | 分散シミュレータシステム | |
JPS6377685A (ja) | 工業用ロボツトシステム | |
JP2001147905A (ja) | プログラマブルコントローラシステム | |
JP7231073B2 (ja) | 制御装置および制御システム | |
US10623201B2 (en) | Device for coupling two bus systems | |
JPH045748A (ja) | 情報処理装置 | |
JPS60117998A (ja) | プログラマブルコントロ−ラ | |
JPH1185518A (ja) | 制御装置 | |
JPH11288307A (ja) | Faシステム | |
JPH03127104A (ja) | プログラマブルコントローラのデータリンク装置 | |
JP2745464B2 (ja) | トークンパッシング方式のlan装置 | |
JP2005122514A (ja) | プログラム共通制御のソフトウェア及びハードウェアで成る装置 | |
JPH0337719A (ja) | マスタフアイルの主記憶装置展開方式 | |
JPH05216808A (ja) | データ処理装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
RD02 | Notification of acceptance of power of attorney |
Free format text: JAPANESE INTERMEDIATE CODE: A7422 Effective date: 20040218 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20051017 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20051101 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20051228 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060815 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060929 |
|
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: 20061107 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20061120 |
|
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: 20091208 Year of fee payment: 3 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20091208 Year of fee payment: 3 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20101208 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
S111 | Request for change of ownership or part of ownership |
Free format text: JAPANESE INTERMEDIATE CODE: R313111 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20111208 Year of fee payment: 5 |
|
R350 | Written notification of registration of transfer |
Free format text: JAPANESE INTERMEDIATE CODE: R350 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121208 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20121208 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20131208 Year of fee payment: 7 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
EXPY | Cancellation because of completion of term |