JP6381501B2 - 二重化システム - Google Patents

二重化システム Download PDF

Info

Publication number
JP6381501B2
JP6381501B2 JP2015178121A JP2015178121A JP6381501B2 JP 6381501 B2 JP6381501 B2 JP 6381501B2 JP 2015178121 A JP2015178121 A JP 2015178121A JP 2015178121 A JP2015178121 A JP 2015178121A JP 6381501 B2 JP6381501 B2 JP 6381501B2
Authority
JP
Japan
Prior art keywords
cpu
transmission
dmac
data
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.)
Active
Application number
JP2015178121A
Other languages
English (en)
Other versions
JP2017054321A5 (ja
JP2017054321A (ja
Inventor
武郎 細見
武郎 細見
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2015178121A priority Critical patent/JP6381501B2/ja
Publication of JP2017054321A publication Critical patent/JP2017054321A/ja
Publication of JP2017054321A5 publication Critical patent/JP2017054321A5/ja
Application granted granted Critical
Publication of JP6381501B2 publication Critical patent/JP6381501B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Hardware Redundancy (AREA)
  • Information Transfer Systems (AREA)
  • Safety Devices In Control Systems (AREA)

Description

本発明は、例えば水処理プラントの監視制御を行うシステム等において、通信ネットワークの異常が発生した時に監視制御を行う系の切替えを行う二重化システムに関する。
二重化システムは、互いに並列に動作可能な2系統のCPU(Central Processing Unit)を備えるシステムであり、システムダウンによって甚大な損害が生じ得る高度な信頼性が要求されるプロセス制御等の用途に広く使用されている。
具体的には、二重化システムは、制御系システムおよび待機系システムの2系統のシステムを備えている。制御系システムは、演算手段を有する第1のCPUと、外部機器との通信手段を有する第1のネットワーク機能とを備えている。待機系システムは、演算手段を有する第2のCPUと、外部機器との通信手段を有する第2のネットワーク機能とを備えている。通常は、制御系システムが制御対象の制御を行っているが、制御系システムに異常が発生した場合は、第2のネットワーク機能が第1のネットワーク機能から異常情報を受信し、制御系システムから待機系システムに系を切替える。これにより、システムダウンを防止し、制御系システムの動作を待機系システムが継続することができる。
制御系システムの動作を待機系システムが継続するためには、制御系システムと待機系システムとが同じ状態になる(すなわち、制御系システムと待機系システムとを同期する)必要がある。制御系システムと待機系システムとを同じ状態にするために、制御系システムは、当該制御系システムにおけるCPUのプログラム演算結果を、ネットワーク機能を介して待機系システムに送信している。
近年の二重化システムでは、制御データの大容量化に伴ってプログラム演算結果であるデータが増加し、システム間でデータの送信に要する時間が長くなるという問題があった。
従来、DMAC(Direct Memory Access Controller)を用いてデータの転送を行う二重化システムが開示されている(例えば、特許文献1参照)。特許文献1では、他の系のシステムからデータを受信した場合において、CPUが途中で処理を行うことなく、DMACが受信したデータをメモリに転送する。これにより、システム間の通信に係るオーバーヘッドを軽減し、速度性能を向上させている。
特開2004−70642号公報
しかし、特許文献1では、各システム間を接続する手段が、割込みの専用線と共有メモリに接続する線とに分かれている方式に限定されており、通常のネットワーク通信で用いられるシリアル通信によってシステム間を接続することができないという問題があった。
また、二重化システムでは、高度な信頼性を保障するために、他の通信機器からシステムが異常または正常であるかを確認する処理、他の通信機器からの送信に対して応答を送信する処理、およびデータの送信ができなかった場合に同じデータを再送信する処理等が必要である。これらの処理を特許文献1で行う場合は、他の通信機器からシステムが異常または正常であるかを確認する処理を追加する必要があり、データの送信に要する時間が長くなるという問題があった。
本発明は、このような問題を解決するためになされたものであり、データの送信に要する時間を短縮してデータの送信に係る効率を向上させることが可能な二重化システムを提供することを目的とする。
上記の課題を解決するために、本発明による二重化システムは、制御対象の制御を行う制御系システムと、当該制御系システムに代えて制御対象の制御を行うことが可能な待機系システムとを備える二重化システムであって、制御系システムおよび待機系システムの各々は、CPUユニットと、ネットワークユニットと、CPUユニットおよびネットワークユニットを通信可能に接続するバスとを備え、ネットワークユニットは、ネットワークユニットを制御するCPUと、他方のネットワークユニットに対してデータを送信する送信DMACと、他方のネットワークユニットからデータを受信する受信DMACと、バスを介してCPUユニットとの間でデータの送受信を行うバス用DMACと、データを記憶するメモリとを備え、受信DMACは、他方のネットワークユニットから受信したデータをメモリ内の予め定められた領域に転送し、当該転送の完了をCPUに割込みにより通知し、割込みは、優先度が可変であることを特徴とする。
本発明によると、二重化システムは、制御対象の制御を行う制御系システムと、当該制御系システムに代えて制御対象の制御を行うことが可能な待機系システムとを備える二重化システムであって、制御系システムおよび待機系システムの各々は、CPUユニットと、ネットワークユニットと、CPUユニットおよびネットワークユニットを通信可能に接続するバスとを備え、ネットワークユニットは、ネットワークユニットを制御するCPUと、他方のネットワークユニットに対してデータを送信する送信DMACと、他方のネットワークユニットからデータを受信する受信DMACと、バスを介してCPUユニットとの間でデータの送受信を行うバス用DMACと、データを記憶するメモリとを備え、受信DMACは、他方のネットワークユニットから受信したデータをメモリ内の予め定められた領域に転送し、当該転送の完了をCPUに割込みにより通知し、割込みは、優先度が可変であるため、データの送信に要する時間を短縮してデータの送信に係る効率を向上させることが可能となる。
本発明の実施の形態1による二重化システムの構成の一例を示すブロック図である。 本発明の実施の形態1によるメモリのヘッダ領域の一例を示す図である。 本発明の実施の形態1による受信DMACの機能を説明するための図である。 本発明の実施の形態1による二重化システムの動作の一例を示すシーケンス図である。 本発明の実施の形態1による二重化システムの動作の一例を示すシーケンス図である。 本発明の実施の形態1による各メモリおよび各FIFOの初期状態を説明するための図である。 本発明の実施の形態1による制御系システムにおけるCPUユニットからネットワークユニットにデータを転送した時の各メモリおよび各FIFOの状態を説明するための図である。 本発明の実施の形態1による送信FIFOにデータを転送した時の各メモリおよび各FIFOの状態を説明するための図である。 本発明の実施の形態1による待機系システムのネットワークユニットから制御系システムのネットワークユニットへの応答前の各メモリおよび各FIFOの状態を説明するための図である。 本発明の実施の形態1による待機系システムのネットワークユニットから制御系システムのネットワークユニットへの応答後の各メモリおよび各FIFOの状態を説明するための図である。 本発明の実施の形態2による二重化システムの動作の一例を示すシーケンス図である。 本発明の実施の形態2による二重化システムの動作の一例を示すシーケンス図である。 本発明の実施の形態2による送信FIFOに3回目のデータの転送を開始する前の各メモリおよび各FIFOの状態を説明するための図である。 本発明の実施の形態2による送信FIFOに3回目のデータの転送を開始した後の各メモリおよび各FIFOの状態を説明するための図である。 本発明の実施の形態3による二重化システムの動作の一例を示すシーケンス図である。 本発明の実施の形態3による二重化システムの動作の一例を示すシーケンス図である。 本発明の実施の形態3による二重化システムの動作の一例を示すシーケンス図である。 本発明の実施の形態3による送信FIFOに5回目のデータの転送を開始した後の各メモリおよび各FIFOの状態を説明するための図である。 本発明の実施の形態3による待機系システムのネットワークユニットから制御系システムのネットワークユニットへの2回目の応答後の各メモリおよび各FIFOの状態を説明するための図である。 本発明の実施の形態3による送信FIFOに6回目のデータの転送を開始した後の各メモリおよび各FIFOの状態を説明するための図である。 本発明の実施の形態4による二重化システムの動作の一例を示すシーケンス図である。 本発明の実施の形態4による二重化システムの動作の一例を示すシーケンス図である。
本発明の実施の形態について、図面に基づいて以下に説明する。
<実施の形態1>
まず、本発明の実施の形態1による二重化システムの構成について説明する。
図1は、本実施の形態1による二重化システム100の構成の一例を示すブロック図である。
図1に示すように、二重化システム100は、制御系システム101aと待機系システム101bとを備えている。制御系システム101aは、制御対象を制御するためのプログラムを実行する。待機系システム101bは、制御系システム101aに異常が発生した場合において、制御系システム101aに代わって制御対象を制御するためのプログラムを実行する。
制御系システム101aは、CPUユニット102aと、ネットワークユニット103aと、ユニット間接続バス104aとを備えている。待機系システム101bは、CPUユニット102bと、ネットワークユニット103bと、ユニット間接続バス104bとを備えている。なお、制御系システム101aと待機系システム101bとは同じ構成であるため、以下では代表して制御系システム101aの構成について説明する。
CPUユニット102aは、CPU110aと、メモリ111aと、バス用DMAC112aとを備えている。CPU110a、メモリ111a、およびバス用DMAC112aは、バス113aで互いに通信可能に接続されている。
ネットワークユニット103aは、CPU120aと、メモリ121aと、バス用DMAC122aと、送信制御部123aと、受信制御部124aとを備えている。
メモリ121aは、データ領域とヘッダ領域とを有している。図2に示すように、ヘッダ領域には、宛先番号130、シーケンス番号131、確認応答番号132、フレーム種別133、データ量134、およびチェックサム135を各々設定するための領域が設けられている。また、メモリ121aは、2ポート設けられており、バス用DMAC122aおよびCPU120aの各々から同時にアクセスが可能である。
送信制御部123aは、送信DMAC125aと送信FIFO(First in, First out)126aとを備えている。
送信DMAC125aは、送信FIFO126aの空き数を確認する機能と、メモリ121aから送信FIFO126aにデータおよびそのヘッダ情報(ヘッダ領域に設定された情報)を転送する機能と、当該転送する機能が動作中または停止中であるかを示す機能とを有している。
送信FIFO126aは、本領域にデータおよびそのヘッダ情報が書き込まれると、当該データおよびそのヘッダ情報を送信先のネットワークユニット103bの受信FIFO128bに送信する機能を有している。
受信制御部124aは、受信DMAC127aと受信FIFO128aとを備えている。受信DMAC127aは、図3に示すように、フレーム種別宛先アドレス140および割込み番号141をフレーム種別ごとに有している。CPU120aは、フレーム種別アドレス140に対応するレジスタに任意の値を書き込む(設定する)ことが可能である。受信DMAC127aは、ネットワークユニット103bからデータを受信した時に、受信FIFO128aのヘッダ情報に含まれるフレーム種別133に応じて、フレーム種別宛先アドレス140が示すメモリ121aのデータ領域にデータを送信する機能を有している。
制御系システム101aのCPUユニット102aにおけるバス用DMAC112aの機能は、処理回路により実現される。すなわち、制御系システム101aのCPUユニット102aは、メモリ111aに格納されたデータをメモリ121aに転送するための処理回路を備える。処理回路は、メモリ111aに格納されるプログラムを実行する図示しないCPU(中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSP(Digital Signal Processor)ともいう)である。
制御系システム101aのCPUユニット102aにおけるバス用DMAC112aの機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアは、プログラムとして記述され、メモリ111aに格納される。処理回路は、メモリ111aに記憶されたプログラムを読み出して実行することにより、バス用DMAC112aの機能を実現する。すなわち、制御系システム101aのCPUユニット102aは、メモリ111aに格納されたデータをメモリ121aに転送するステップが結果的に実行されることになるプログラムを格納するためのメモリ111aを備える。また、これらのプログラムは、バス用DMAC112aの手順または方法をコンピュータに実行させるものであるともいえる。ここで、メモリとは、例えば、RAM(Random Access Memory)、ROM(Read Only Memory)、フラッシュメモリー、EPROM(Erasable Programmable Read Only Memory)、EEPROM(Electrically Erasable Programmable Read Only Memory)等の不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD(Digital Versatile Disk)等が該当する。
制御系システム101aのネットワークユニット103aにおけるバス用DMAC122a、送信制御部123a、受信制御部124a、送信DMAC125a、送信FIFO126a、受信DMAC127a、および受信FIFO128aの各機能は、処理回路により実現される。すなわち、制御系システム101aのネットワークユニット103aは、メモリ121aに格納されたデータをメモリ111aに転送し、待機系システム101bのネットワークユニット103bへのデータの送信を制御し、待機系システム101bのネットワークユニット103bからのデータの受信を制御し、メモリ121aに格納されたデータを送信FIFO126aに転送し、メモリ121aから転送されたデータを待機系システム101bのネットワークユニット103bに送信し、受信FIFO128aが受信したデータをメモリ121aに転送し、待機系システム101bのネットワークユニット103bからのデータを受信するための処理回路を備える。処理回路は、メモリ121aに格納されるプログラムを実行する図示しないCPU(中央処理装置、処理装置、演算装置、マイクロプロセッサ、マイクロコンピュータ、DSPともいう)である。
制御系システム101aのネットワークユニット103aにおけるバス用DMAC122a、送信制御部123a、受信制御部124a、送信DMAC125a、送信FIFO126a、受信DMAC127a、および受信FIFO128aの各機能は、ソフトウェア、ファームウェア、またはソフトウェアとファームウェアとの組み合わせにより実現される。ソフトウェアまたはファームウェアは、プログラムとして記述され、メモリ121aに格納される。処理回路は、メモリ121aに記憶されたプログラムを読み出して実行することにより、各機能を実現する。すなわち、制御系システム101aのネットワークユニット103aは、メモリ121aに格納されたデータをメモリ111aに転送するステップ、待機系システム101bのネットワークユニット103bへのデータの送信を制御するステップ、待機系システム101bのネットワークユニット103bからのデータの受信を制御するステップ、メモリ121aに格納されたデータを送信FIFO126aに転送するステップ、メモリ121aから転送されたデータを待機系システム101bのネットワークユニット103bに送信するステップ、受信FIFO128aが受信したデータをメモリ121aに転送するステップ、待機系システム101bのネットワークユニット103bからのデータを受信するステップが結果的に実行されることになるプログラムを格納するためのメモリ121aを備える。また、これらのプログラムは、バス用DMAC122a、送信制御部123a、受信制御部124a、送信DMAC125a、送信FIFO126a、受信DMAC127a、および受信FIFO128aの手順または方法をコンピュータに実行させるものであるともいえる。ここで、メモリとは、例えば、RAM、ROM、フラッシュメモリー、EPROM、EEPROM等の不揮発性または揮発性の半導体メモリ、磁気ディスク、フレキシブルディスク、光ディスク、コンパクトディスク、ミニディスク、DVD等が該当する。
次に、二重化システム100の動作について説明する。
図4,5は、二重化システム100の動作の一例を示すシーケンス図であり、制御系システム101aのCPUユニット102aから待機系システム101bのCPUユニット102bに対して大量のデータを複数回に分けて送信するときの動作を示している。なお、図4と図5との境界はBL1で示されている。
図4,5において、ステップS101〜ステップS104は制御系システム101aにおけるCPUユニット102aのバス用DMAC112aの動作を示し、ステップS111〜ステップS116は制御系システム101aにおけるネットワークユニット103aのCPU120aの動作を示し、ステップS121〜ステップS123は制御系システム101aにおけるネットワークユニット103aの送信DMAC125aの動作を示し、ステップS131〜ステップS133は待機系システム101bにおけるネットワークユニット103bの受信DMAC127bの動作を示し、ステップS141およびステップS142は待機系システム101bにおけるネットワークユニット103bの送信DMAC125bの動作を示し、ステップS151〜ステップS154は待機系システム101bにおけるネットワークユニット103bのCPU120bの動作を示し、ステップS161およびステップS162は待機系システム101bにおけるネットワークユニット103bのバス用DMAC122bの動作を示し、ステップS171は待機系システム101bにおけるCPUユニット102bのCPU110bの動作を示している。
図6は、メモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの初期状態を示す図である。
まず、DATA1の送信について説明する。
DATA1の送信は、ステップS101、ステップS111、ステップS113、ステップS121、ステップS131、ステップS141、ステップS151、ステップS152、ステップS161、およびステップS171の処理を実行することによって実現される。
ステップS101において、CPUユニット102aは、制御系システム101aと待機系システム101bとを同期するためのDATA1を、ネットワークユニット103aに転送する。具体的には、CPUユニット102aのバス用DMAC112aは、メモリ111aに格納されているDATA1を、ユニット間接続バス104aを介してネットワークユニット103aのメモリ121aに転送する。このとき、DATA1は、メモリ121aの送信DMAC125aがアクセス可能なデータ領域に格納される。そして、バス用DMAC112aは、メモリ121aにDATA1を転送した後に、ネットワークユニット103aのCPU120aに対してバス通信した旨を割込みにより通知する。
図7は、CPUユニット102aからネットワークユニット103aにDATA1を転送した時のメモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの状態を示す図である。図7に示すように、メモリ121aにはDATA1が格納されている。
ステップS111において、ネットワークユニット103aのCPU120aは、CPUユニット102aのバス用DMAC112aからバス通信した旨の割込みの通知を受けると、送信FIFO126aの空き数が1以上であり、かつ送信DMAC125aの動作が停止中であることを確認する。具体的には、CPU120aは、送信FIFO126aの空き数の情報、および送信DMAC125aの動作が動作中または停止中であるかの情報を送信DMAC125aから取得し、取得した情報に基づいて上記の確認を行う。
上記の確認後、CPU120aは、メモリ121aのヘッダ領域(ステップS101でメモリ121aに格納されたDATA1に対応するヘッダ領域)において、宛先番号130として「待機系システム101bのネットワークユニット103bのID」を設定し(書き込み)、シーケンス番号131として「1」を設定し、確認応答番号132として「無し」を設定し、フレーム種別133として「トラッキングデータフレーム1」を設定し、データ量134として「DATA1のデータ量」を設定する。その後、CPU120aは、送信FIFO126aの空き数を−1とし(空き数を5から4に変更し)、送信DMAC125aを起動する。
ステップS121において、送信DMAC125aは、メモリ121aのヘッダ領域(ステップS101でメモリ121aに格納されたDATA1に対応するヘッダ領域)において、チェックサム135を生成する。そして、送信DMAC125aは、メモリ121aに格納されているDATA1およびそのヘッダ情報を、送信FIFO126aに転送する。図8は、送信FIFO126aにDATA1を転送した時のメモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの状態を示す図である。
送信FIFO126aは、メモリ121aから転送されたDATA1およびそのヘッダ情報を、ネットワークユニット103bの受信FIFO128bに送信する。転送終了後、送信DMAC125aは、転送終了の旨をCPU120aに割込みにより通知し、動作を停止する。
ステップS131において、ネットワークユニット103bの受信DMAC127bは、受信FIFO128bがDATA1およびそのヘッダ情報を受信したことを確認するとともに、ヘッダ情報に含まれるチェックサム135を参照して正常なデータを受信したことを確認する。その後、受信DMAC127bは、ヘッダ情報に含まれるフレーム種別133を参照し、フレーム種別133に対応するメモリ121b内のフレーム種別宛先アドレス140にDATA1を転送する。なお、フレーム種別宛先アドレス140は、後にバス用DMAC122bを起動したときに、メモリ121bに格納されたデータをCPUユニット102bに転送可能なアドレスに予め設定されているものとする。これにより、後のステップS152の処理を短時間で行うことが可能となる。受信DMAC127bは、DATA1をメモリ121bに転送した後、当該転送が完了した旨をCPU120bに割込みにより通知し、フレーム種別宛先アドレス140を更新する(他のアドレスを設定する)。
ステップS151において、CPU120bは、メモリ121bに格納されたDATA1のヘッダ情報に含まれるシーケンス番号131が「1」であることを確認することにより、DATA1を正常に受信したことを認識する。その後、CPU120bは、DATA1を正常に受信した旨をネットワークユニット103aに応答すべく応答データを生成する。このとき、CPU120bは、応答データのヘッダ情報において、宛先番号130として「制御系システム101aのネットワークユニット103aのID」を設定し、シーケンス番号131として「無し」を設定し、確認応答番号132として「1」を設定し、フレーム種別133として「応答フレーム」を設定し、データ量134として「受信した回数」を設定する。その後、CPU120bは、送信DMAC125bを起動する。
ステップS152において、CPU120bは、メモリ121bに格納されたDATA1をメモリ111bに転送するために、バス用DMAC122bを起動する。
ステップS161において、バス用DMAC122bは、メモリ121bに格納されたDATA1をメモリ111bに転送する。
ステップS171において、CPUユニット102bは、ネットワークユニット103bから転送されメモリ111bに格納されたDATA1の内容を確認し、DATA1に係る全ての情報を受信した後、制御系システム101aのCPUユニット102aと同じ状態となるように(CPUユニット102aとCPUユニット102bとの同期をとるために)、データ情報(ここでは、DATA1の情報)を展開する。
上記の動作を行うことにより、制御系システム101aから待機系システム101bにDATA1が送信される。次に、当該DATA1の送信に関連して実行する動作について説明する。
ステップS141において(ステップS152とほぼ同じタイミングで)、送信DMAC125bは、ステップS151でCPU120bが生成した応答データを、ネットワークユニット103aの受信FIFO128aに送信する。
その後、ネットワークユニット103aの受信DMAC127aは、受信した応答データのヘッダ情報に含まれるフレーム種別133が「応答フレーム」であることを確認して、応答データを受信した旨をCPU120aに割込みにより通知する。
ステップS113において、CPU120aは、応答データを受信した旨が割込みにより通知されると、ヘッダ情報に含まれる確認応答番号132が「1」であることを確認することにより、応答データを正常に受信したことを認識する。その後、CPU120aは、送信FIFO126aの空き数を+1とする(空き数を3から4に変更する)。図9は、応答データを受信する前のメモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの状態を示している。また、図10は、応答データを受信した後のメモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの状態を示している。図9,10に示すように、本実施の形態1では、送信FIFO126aの空き数を増加させることにより、送信FIFO126aの空きが常にあるため、制御系システム101aから待機系システム101bへのデータの送信動作が中断されることはない。
上記では、DATA1の送信に関する動作について説明した。次に、DATA2の送信に関する動作について説明する。
DATA2の送信は、ステップS102、ステップS112、ステップS115、ステップS121、ステップS132、ステップS142、ステップS153、ステップS154、およびステップS161の処理を実行することによって実現される。以下では、DATA1の送信に関する動作と異なる動作について説明し、DATA1の送信に関する動作と同様の動作については説明を省略する。
ステップS112において、CPU120aは、メモリ121aのヘッダ領域(ステップS102でメモリ121aに格納されたDATA2に対応するヘッダ領域)において、シーケンス番号131として「2」を設定する。
ステップS153において、CPU120bは、DATA2を正常に受信した旨をネットワークユニット103aに応答すべく応答データを生成する。このとき、CPU120bは、応答データのヘッダ情報において、確認応答番号132として「2」を設定する。
上記の動作を行うことにより、制御系システム101aから待機系システム101bにDATA2が送信される。また、図4に示すように、ステップS102はステップS121と並列して動作し、ステップS122はステップS113、ステップS141、ステップS152と並列して動作している。これにより、二重化システム100全体のオーバーヘッドを少なくすることが可能となる。
以上のことから、本実施の形態1によれば、制御系システム101aにおけるCPU110a、CPU120a、および送信DMAC125aと、待機系システム101bにおける受信DMAC127b、送信DMAC125b、CPU120b、およびバス用DMAC122bとを並列に動作させることにより、送信の動作に要する時間を短縮することができる。従って、制御系システム101aから待機系システム101bにデータを高速に送信することができ、データの送信に係る効率を向上させることが可能となる。
<実施の形態2>
本発明の実施の形態2では、CPUユニット102aとネットワークユニット103a
(CPUユニット102bとネットワークユニット103b)との間におけるデータの転送速度(バス転送速度)が、ネットワークユニット103aとネットワークユニット103bとの間におけるデータの転送速度(ネットワーク転送速度)よりも速い場合について説明する。
図11,12は、本実施の形態2による二重化システムの動作の一例を示すシーケンス図である。なお、図11と図12との境界はBL2で示されている。
図11,12において、ステップS181〜ステップS189は、CPU120aの動作を示している。その他の構成および動作については、実施の形態1と同様であるため、ここでは説明を省略する。
ステップS181において、CPU120aは、バス用DMAC112aからバス通信した旨の割込みの通知を受けると、送信FIFO126aの空き数が1以上であり、かつ送信DMAC125aの動作が動作中であることを確認する。また、CPU120aは、メモリ121aのヘッダ領域(ステップS102でメモリ121aに格納されたDATA2に対応するヘッダ領域)において、宛先番号130として「待機系システム101bのネットワークユニット103bのID」を設定し、シーケンス番号131として「2」を設定し、確認応答番号132として「無し」を設定し、フレーム種別133として「トラッキングデータフレーム1」を設定し、データ量134として「DATA2のデータ量」を設定する。
このとき、CPU120aは、送信DMAC125aを起動しない。すなわち、送信DMAC125aは、メモリ121aに格納されているDATA2およびそのヘッダ情報を、送信FIFO126aに転送しない。
ステップS182において、CPU120aは、送信DMAC125aから転送終了の旨の割込みの通知を受けると、送信FIFO126aの空き数が1以上であり、かつ送信DMAC125aの動作が停止中であることを確認する。その後、CPU120aは、送信FIFO126aの空き数を−1とし、送信DMAC125aを起動する。
ステップS183において、CPU120aは、バス用DMAC112aからバス通信した旨の割込みの通知を受けると、送信FIFO126aの空き数が1以上であり、かつ送信DMAC125aの動作が動作中であることを確認する。また、CPU120aは、メモリ121aのヘッダ領域(ステップS103でメモリ121aに格納されたDATA3に対応するヘッダ領域)において、宛先番号130として「待機系システム101bのネットワークユニット103bのID」を設定し、シーケンス番号131として「3」を設定し、確認応答番号132として「無し」を設定し、フレーム種別133として「トラッキングデータフレーム1」を設定し、データ量134として「DATA3のデータ量」を設定する。
このとき、CPU120aは、送信DMAC125aを起動しない。すなわち、送信DMAC125aは、メモリ121aに格納されているDATA3およびそのヘッダ情報を、送信FIFO126aに転送しない。
ステップS184において、CPU120aは、バス用DMAC112aからバス通信した旨の割込みの通知を受けると、送信FIFO126aの空き数が3であり、かつ送信DMAC125aの動作が動作中であることを確認する。また、CPU120aは、メモリ121aのヘッダ領域(ステップS104でメモリ121aに格納されたDATA4に対応するヘッダ領域)において、宛先番号130として「待機系システム101bのネットワークユニット103bのID」を設定し、シーケンス番号131として「4」を設定し、確認応答番号132として「無し」を設定し、フレーム種別133として「トラッキングデータフレーム1」を設定し、データ量134として「DATA4のデータ量」を設定する。
このとき、CPU120aは、送信DMAC125aを起動しない。すなわち、送信DMAC125aは、メモリ121aに格納されているDATA4およびそのヘッダ情報を、送信FIFO126aに転送しない。
また、CPU120aは、送信DMAC125aの動作中にCPUユニット102aから連続してデータ(DATA3およびDATA4)が転送されてきたため、次に送信DMAC125aを起動する際には、DATA3およびDATA4の2つのデータをメモリ121aから送信FIFO126aに転送できるように設定する。設定後、CPU120aは、送信FIFO126aの空き数が転送するデータ数よりも大きい値であることを確認する。なお、CPU120aは、送信FIFO126aの空き数よりも転送するデータ数の方が大きい値である場合は、送信FIFO126aの空き数分のデータだけ転送できるようにする。
ステップS185において、CPU120aは、応答データを受信した旨が割込みにより通知されると、ヘッダ情報に含まれる確認応答番号132が「1」であることを確認することにより、応答データを正常に受信したことを認識する。その後、CPU120aは、送信FIFO126aの空き数を+1とする。
ステップS186において、CPU120aは、送信DMAC125aから転送終了の旨の割込みの通知を受けると、送信FIFO126aの空き数が4であって、当該空き数が転送するデータ数よりも大きい値であり、かつ送信DMAC125aの動作が停止中であることを確認する(図13参照)。その後、CPU120aは、送信FIFO126aの空き数を−2とし、送信DMAC125aを起動する(図14参照)。図13は、ステップS186の動作前のメモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの状態を示している。また、図14は、ステップS186の動作後のメモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの状態を示している。図13,14において、送信FIFO126aでは、DATA1は送信済みであるため空きとみなされる。本実施の形態2では、バス転送速度とネットワーク転送速度との差によって送信FIFO126aの空き数が少なくなるため、送信FIFO126aの空き数を参照することによりデータが上書きされることを防いでいる。
以上のことから、本実施の形態2によれば、複数のデータを連結して転送することによって、二重化システム100全体のオーバーヘッドを少なくすることが可能となる。また、制御系システム101aから待機系システム101bにデータを高速に送信することができ、データの送信に係る効率を向上させることが可能となる。
<実施の形態3>
本発明の実施の形態3では、制御系システム101aから待機系システム101bにデータを送信することができなかった場合に、送信できなかったデータを再送信する場合について説明する。
図15〜17は、本実施の形態3による二重化システムの動作の一例を示すシーケンス図である。なお、図15と図16との境界はBL3で示され、図16と図17との境界はBL4で示されている。
図15〜17において、ステップS191〜ステップS207はCPU120aの動作を示し、ステップS211〜ステップS216は送信DMAC125bの動作を示し、ステップS221〜ステップS229はCPU120bの動作を示している。その他の構成および動作については、実施の形態1と同様であるため、ここでは説明を省略する。
ステップS122において、送信DMAC125aは、メモリ121aに格納されているDATA2およびそのヘッダ情報を、送信FIFO126aに転送する。転送終了後、送信DMAC125aは、転送終了の旨をCPU120aに割込みにより通知し、動作を停止する。
ここで、送信FIFO126aは、メモリ121aから転送されたDATA2およびそのヘッダ情報を、ネットワークユニット103bの受信FIFO128bに送信するが、ノイズの影響によって受信FIFO128bにはDATA2およびそのヘッダ情報が届いていないものとする。このように、データがネットワークユニット103bに届かない場合は、図4のステップS132、ステップS153、ステップS154、およびステップS142の動作を行うことができない。
ステップS191において、CPU120aは、応答データを受信した旨が割込みにより通知されると、ヘッダ情報に含まれる確認応答番号132が「1」であることを確認することにより、応答データを正常に受信したことを認識する。その後、CPU120aは、送信FIFO126aの空き数を+1とする。
なお、ステップS191の処理中に、CPU120aは、バス用DMAC112aからバス通信した旨の割込みの通知を受ける場合がある。このような場合において、PU120aは、応答データを受信した旨の割込みによる通知よりも、バス通信した旨の割込みによる通知の方が、優先度が高くなるように予め設定しておくことによって、応答データを受信した旨の割込みによる通知を受けたときの処理(ステップS191の処理)を中断し、バス通信した旨の割込みによる通知を受けたときの処理(ステップS192の処理)に移行する。
ステップS192において、CPU120aは、送信FIFO126aの空き数が1以上であり、かつ送信DMAC125aの動作が停止中であることを確認する。また、CPU120aは、メモリ121aのヘッダ領域(ステップS103でメモリ121aに格納されたDATA3に対応するヘッダ領域)において、宛先番号130として「待機系システム101bのネットワークユニット103bのID」を設定し、シーケンス番号131として「3」を設定し、確認応答番号132として「無し」を設定し、フレーム種別133として「トラッキングデータフレーム1」を設定し、データ量134として「DATA3のデータ量」を設定する。その後、CPU120aは、送信FIFO126aの空き数を−1とし、送信DMAC125aを起動する。
ステップS193において、CPU120aは、送信DMAC125aを起動した後、中断したステップS191の処理を再開する。
上記より、割込みの優先度を変更することによって、二重化システム100全体のオーバーヘッドを少なくすることが可能となる。
次に、DATA2の送信の失敗後、DATA2を再送信するまでの動作について説明する。
ステップS221において、CPU120bは、メモリ121bに格納されたDATA3のヘッダ情報に含まれるシーケンス番号131が「3」であることを確認する。このとき、CPU120bは、シーケンス番号131が「1」のデータ(DATA1)を受信した後に、シーケンス番号131が「2」のデータではなく、シーケンス番号131が「3」のデータ(DATA3)を受信したことから、データの受信が異常であると判断する。
そして、CPU120bは、データの受信が異常である旨をネットワークユニット103aに応答すべく応答データを生成する。このとき、CPU120bは、応答データのヘッダ情報において、宛先番号130として「制御系システム101aのネットワークユニット103aのID」を設定し、シーケンス番号131として「無し」を設定し、確認応答番号132として「1」を設定し、フレーム種別133として「応答フレーム」を設定し、データ量134として「受信した回数」を設定する。その後、CPU120bは、送信DMAC125を起動する。なお、ステップS222およびステップS223についても同様の処理を行う。
ステップS211において、送信DMAC125bは、ステップS221でCPU120bが生成した応答データを、ネットワークユニット103aの受信FIFO128aに送信する。なお、ステップS212およびステップS213についても同様の処理を行う。
ステップS196において、CPU120aは、応答データを受信した旨が割込みにより通知されると、ヘッダ情報に含まれる確認応答番号132が「1」であることを確認する。このとき、ステップS191で確認応答番号132が「1」である応答データを受信しているため、今回(ステップS196)は2度目の確認応答番号132が「1」である応答データを受信したことになる。同じ確認応答番号132を受信した場合は、次の番号以降のシーケンス番号131のデータの送信、すなわちシーケンス番号131が「2」以降のデータの送信は失敗であると判断する。ここでは、DATA2およびDATA3の送信が失敗であると判断する。
上記の判断の後、CPU120aは、送信FIFO126aの空き数を−2とする。図18は、ステップS196の動作前(5回目のデータの転送を開始した後)のメモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの状態を示している。また、図19は、ステップS196の動作後(2回目の応答後)のメモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの状態を示している。図18において、送信FIFO126aでは、DATA1は送信済みであるため空きとみなされる。また、図19において、送信FIFO126aでは、DATA1は送信済みであるため空きとみなされ、DATA2およびDATA3が送信済みであると認識されて空きとみなされる。図19に示すように、送信FIFO126aの空き数が3となり、CPUユニット102aから4つのデータが送られている状態となっている。従って、CPU120aは、次に送信DMAC125aを起動する際には、DATA2、DATA3、およびDATA4の3つのデータをメモリ121aから送信FIFO126aに転送できるように設定する。
ステップS197において、CPU120aは、転送終了の旨が割込みにより通知されると、再び送信DMAC125aを起動する。その後、送信DMAC125aは、メモリ121aに格納されているDATA2〜4およびそれらのヘッダ情報を、送信FIFO126aに転送する(ステップS126〜ステップS128)。送信FIFO126aは、メモリ121aから転送されたDATA2〜4およびそれらのヘッダ情報を、ネットワークユニット103bの受信FIFO128bに送信する。その後、CPU120aは、送信FIFO126aの空き数を−3とし、空き数を0とする。図20は、ステップS197の動作後(6回目のデータの転送を開始した後)のメモリ111a、メモリ121a、送信FIFO126a、および受信FIFO128bの状態を示している。図20において、送信FIFO126aでは、DATA4,5は送信中であり、DATA2〜4は送信を開始したため、空きは0となる。
ステップS198において、CPU120aは、応答データを受信した旨が割込みにより通知されると、ヘッダ情報に含まれる確認応答番号132が「1」であることを確認する。今回(ステップS198)は、ステップS191およびステップS196に続いて、確認応答番号132が「1」のデータを受信したことになる(3度目)。CPU120aは、送信FIFO126aの空き数を+1とする。
以上のことから、本実施の形態3によれば、送信に失敗したデータの再送信を行うことが可能となる。
<実施の形態4>
本発明の実施の形態4では、制御系システム101aから待機系システム101bに系を切替える場合について説明する。
図21,22は、本実施の形態4による二重化システムの動作の一例を示すシーケンス図である。なお、図21と図22との境界はBL5で示されている。
図21,22において、ステップS231はバス用DMAC112aの動作を示し、ステップS241〜ステップS244はCPU120aの動作を示し、ステップS251およびステップS252は送信DMAC125aの動作を示し、ステップS261は受信DMAC127bの動作を示し、ステップS271は送信DMAC125bの動作を示し、ステップS282およびステップS283はCPU120bの動作を示し、ステップS291はバス用DMAC122bの動作を示し、ステップS301はCPU110bの動作を示している。その他の構成および動作については、実施の形態2と同様であるため、ここでは説明を省略する。なお、以下では、CPUユニット102aにおいて、DATA5の転送後(ステップS105の後)に何らかの異常が発生したため、制御系システム101aから待機系システム101bに系を切替える場合について説明する。
ステップS231において、バス用DMAC112aは、系の切替え要求をCPU120aに送信する。
ステップS241において、CPU120aは、送信DMAC125aが動作中であるか否かを確認し、動作中であれば送信DMAC125aに対して停止要求を行う。このとき、DATA4の送信は中断されるため、CPU120aは、送信FIFO126aの空き数を+1とする。
ステップS251において、送信DMAC125aは、CPU120aからの停止要求を受けて、DATA3を転送した後に動作を停止する。
ステップS242において、CPU120aは、送信DMAC125aから転送終了の旨の割込みの通知を受けると、メモリ121aのヘッダ領域において、宛先番号130として「待機系システム101bのネットワークユニット103bのID」を設定し、シーケンス番号131として「4」を設定し、確認応答番号132として「無し」を設定し、フレーム種別133として「系切替えフレーム」を設定し、データ量134として「系切替え情報のデータ量」を設定する。その後、CPU120aは、送信FIFO126aの空き数を−1とし(空き数を5から4に変更し)、送信DMAC125aを起動する。
ステップS252において、送信DMAC125aは、メモリ121aのヘッダ領域(系切替え情報に対応するヘッダ領域)において、チェックサム135を生成する。そして、送信DMAC125aは、メモリ121aに格納されている系切替え情報およびそのヘッダ情報を、送信FIFO126aに転送する。
送信FIFO126aは、メモリ121aから転送された系切替え情報およびそのヘッダ情報を、ネットワークユニット103bの受信FIFO128bに送信する。転送終了後、送信DMAC125aは、転送終了の旨をCPU120aに割込みにより通知し、動作を停止する。
ステップS261において、受信DMAC127bは、受信FIFO128bが系切替え情報およびそのヘッダ情報を受信したことを確認するとともに、ヘッダ情報に含まれるチェックサム135を参照して正常なデータを受信したことを確認する。その後、受信DMAC127bは、ヘッダ情報に含まれるフレーム種別133を参照し、フレーム種別133に対応するメモリ121b内のフレーム種別宛先アドレス140に系切替え情報を転送する。なお、フレーム種別宛先アドレス140は、後にバス用DMAC122bを起動したときに、メモリ121bに格納された系切替え情報をCPUユニット102bに転送可能なアドレスに予め設定されているものとする。これにより、後のステップS282の処理を短時間で行うことが可能となる。受信DMAC127bは、系切替え情報をメモリ121bに転送した後、当該転送が完了した旨をCPU120bに割込みにより通知し、フレーム種別宛先アドレス140を更新する(他のアドレスを設定する)。
ステップS282において、CPU120bは、メモリ121bに格納された系切替え情報のヘッダ情報に含まれるシーケンス番号131が「4」であることを確認することにより、系切替え情報を正常に受信したことを認識する。その後、CPU120bは、系切替え情報をCPUユニット102bのメモリ111bに転送すべく、バス用DMAC122bを起動する。
なお、ステップS282において、データを受信した旨の割込みによる通知よりも、系を切替える旨の割込みによる通知の方が、優先度が高くなるように予め設定しておくことによって、ステップS283におけるDATA3の転送処理を中断し、系の切替えの通知を早く行うことが可能となる。
ステップS291において、バス用DMAC122bは、メモリ121bに格納された系切替え情報をメモリ111bに転送する。
ステップS301において、CPUユニット102bは、ネットワークユニット103bから転送されメモリ111bに格納された系切替え情報の内容を確認し、最後に制御系システム101aと同期がとれた状態を最新の状態として、制御系システム101aから待機系システム101bに系を切替える。
系を切替えた後の待機系システム101bは、ステップS283において、CPU120bは、系の切替えが正常に行われた旨をネットワークユニット103aに応答すべく応答データを生成する。このとき、CPU120bは、応答データのヘッダ情報において、宛先番号130として「制御系システム101aのネットワークユニット103aのID」を設定し、シーケンス番号131として「無し」を設定し、確認応答番号132として「1」を設定し、フレーム種別133として「系切替え応答フレーム」を設定し、データ量134として「系切替え応答データ」を設定する。その後、CPU120bは、送信DMAC125bを起動する。
以上のことから、本実施の形態4によれば、ステップS282において系の切替えに関する処理の優先度を高めることによって、系の切替えを高速に行うことが可能となる。
なお、本発明は、その発明の範囲内において、各実施の形態を自由に組み合わせたり、各実施の形態を適宜、変形、省略することが可能である。
1,100 二重化システム、101a 制御系システム、101b 待機系システム、102a,102b CPUユニット、103a,103b ネットワークユニット、104a,104b ユニット間接続バス、110a,110b CPU、111a,111b メモリ、112a,112b バス用DMAC、113a,113b バス、120a,120b CPU、121a,121b メモリ、122a,122b バス用DMAC、123a,123b 送信制御部、124a,124b 受信制御部、125a,125b 送信DMAC、126a,126b 送信FIFO、127a,127b 受信DMAC、128a,128b 受信FIFO、129a,129b バス、130 宛先番号、131 シーケンス番号、132 確認応答番号、133 フレーム種別、134 データ量、135 チェックサム、140 フレーム種別宛先アドレス、141 割込み番号。

Claims (6)

  1. 制御対象の制御を行う制御系システムと、当該制御系システムに代えて前記制御対象の制御を行うことが可能な待機系システムとを備える二重化システムであって、
    前記制御系システムおよび前記待機系システムの各々は、CPUユニットと、ネットワークユニットと、前記CPUユニットおよび前記ネットワークユニットを通信可能に接続するバスとを備え、
    前記ネットワークユニットは、
    前記ネットワークユニットを制御するCPUと、
    他方の前記ネットワークユニットに対してデータを送信する送信DMACと、
    他方の前記ネットワークユニットからデータを受信する受信DMACと、
    前記バスを介して前記CPUユニットとの間でデータの送受信を行うバス用DMACと、
    データを記憶するメモリと、
    を備え、
    前記受信DMACは、他方の前記ネットワークユニットから受信した前記データを前記メモリ内の予め定められた領域に転送し、当該転送の完了を前記CPUに割込みにより通知し、
    前記割込みは、優先度が可変であることを特徴とする、二重化システム。
  2. 前記制御系システムにおける前記CPUユニットと、前記制御系システムにおける前記ネットワークユニットの前記CPUおよび前記送信DMACと、前記待機系システムにおける前記ネットワークユニットの前記送信DMAC、前記受信DMAC、および前記バス用DMACと、前記待機系システムにおける前記CPUユニットとは、同時に動作することを特徴とする、請求項1に記載の二重化システム。
  3. 前記送信DMACは、複数のデータを連結して他方の前記ネットワークユニットに送信することを特徴とする、請求項1または2に記載の二重化システム。
  4. 前記送信DMACは、前記連結した複数のデータの送信を中断する機能を有することを特徴とする、請求項3に記載の二重化システム。
  5. 前記送信DMACの送信に対して他方の前記ネットワークユニットから応答がない場合において、
    前記送信DMACは、前記応答がないときに他方の前記ネットワークユニットに送信したデータを再送信することを特徴とする、請求項1から4のいずれか1項に記載の二重化システム。
  6. 前記CPUユニットから前記CPUへの割込みによる通知の優先度は、前記CPUに対する前記転送の完了の割込みによる通知の優先度よりも高いことを特徴とする、請求項1からのいずれか1項に記載の二重化システム。
JP2015178121A 2015-09-10 2015-09-10 二重化システム Active JP6381501B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2015178121A JP6381501B2 (ja) 2015-09-10 2015-09-10 二重化システム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2015178121A JP6381501B2 (ja) 2015-09-10 2015-09-10 二重化システム

Publications (3)

Publication Number Publication Date
JP2017054321A JP2017054321A (ja) 2017-03-16
JP2017054321A5 JP2017054321A5 (ja) 2017-11-30
JP6381501B2 true JP6381501B2 (ja) 2018-08-29

Family

ID=58320848

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2015178121A Active JP6381501B2 (ja) 2015-09-10 2015-09-10 二重化システム

Country Status (1)

Country Link
JP (1) JP6381501B2 (ja)

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006185000A (ja) * 2004-12-27 2006-07-13 Hitachi Ltd ストレージ装置
CN105934720B (zh) * 2014-01-23 2017-10-31 三菱电机株式会社 可编程控制器以及可编程控制器系统

Also Published As

Publication number Publication date
JP2017054321A (ja) 2017-03-16

Similar Documents

Publication Publication Date Title
CN109964215B (zh) 具有环形缓冲区镜像的远程直接存储器访问数据通信中的流控制
JP5549574B2 (ja) 並列計算機システム、同期装置、並列計算機システムの制御方法
WO2007068650A2 (en) Simultaneous download to multiple targets
JP2007122117A (ja) ストレージシステム及び記憶制御方法
JP5035176B2 (ja) 伝送システム、伝送装置および伝送方法
US9495178B2 (en) Electronics apparatus able to revise micro-program and algorithm to revise micro-program
JP6083480B1 (ja) 監視装置、フォールトトレラントシステムおよび方法
JP5151500B2 (ja) コンピュータシステム、障害処理方法および障害処理プログラム
JP6381501B2 (ja) 二重化システム
JP5034979B2 (ja) 起動装置、起動方法、及び、起動プログラム
CN113626235A (zh) 容错处理的方法、装置和服务器
JP2014178828A (ja) 二重化システム
US9252922B2 (en) System and method for improved error response in data mirroring
JP6554989B2 (ja) ストレージ制御装置
CN112398762B (zh) 一种网元及网元中的通信方法
JP4810488B2 (ja) 二重化制御装置、及びそのトラッキング方法
US8667243B2 (en) Storage apparatus, controller, and method of controlling controller
JP5900360B2 (ja) 二重化プログラマブルコントローラ及びその同期化方法
US20180076933A1 (en) Usb device, data transfer system and data transfer method
JP2001007893A (ja) 情報処理システム及びそれに用いる障害処理方式
JP2017054174A (ja) 受信装置、受信方法、及び、転送装置
US11232197B2 (en) Computer system and device management method
WO2008062511A1 (fr) Système multiprocesseur
JP2007164451A (ja) 入出力制御方法、入出力制御プログラムおよび磁気ディスク装置
JP6217192B2 (ja) ストレージ制御装置、制御プログラムおよび制御方法

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171016

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20171016

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20180607

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: 20180703

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180731

R150 Certificate of patent or registration of utility model

Ref document number: 6381501

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

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