JP5544099B2 - コントローラ通信方法およびコントローラ通信装置 - Google Patents

コントローラ通信方法およびコントローラ通信装置 Download PDF

Info

Publication number
JP5544099B2
JP5544099B2 JP2009045028A JP2009045028A JP5544099B2 JP 5544099 B2 JP5544099 B2 JP 5544099B2 JP 2009045028 A JP2009045028 A JP 2009045028A JP 2009045028 A JP2009045028 A JP 2009045028A JP 5544099 B2 JP5544099 B2 JP 5544099B2
Authority
JP
Japan
Prior art keywords
controller
block
cpu
request
transmission
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
JP2009045028A
Other languages
English (en)
Other versions
JP2010198520A (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.)
Hitachi Ltd
Original Assignee
Hitachi Ltd
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 Hitachi Ltd filed Critical Hitachi Ltd
Priority to JP2009045028A priority Critical patent/JP5544099B2/ja
Publication of JP2010198520A publication Critical patent/JP2010198520A/ja
Application granted granted Critical
Publication of JP5544099B2 publication Critical patent/JP5544099B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Multi Processors (AREA)
  • Information Transfer Systems (AREA)

Description

本発明は、転写メモリを用いたコントローラ通信方法およびコントローラ通信装置に関する。
複数のコントローラが接続されたネットワークシステムにおいて、各コントローラ間でデータを共有するための手法として、特許文献1に記載のような転写メモリを用いたサイクリックメモリ転写方法がある。
例えば特許文献1記載の通信方法では、複数のコントローラの各々に転写メモリが設けられ、コントローラ間の通信を制御するローカルプロセッサによってコントローラ間の通信を行う。各ローカルプロセッサは、転写メモリ上の自コントローラに割り当てられたデータを他の計算機に向けて周期的にブロードキャストすることにより、転写メモリ領域のデータの一致化を図っている。
このように、転写メモリを用いたサイクリックメモリ転写方法では、一定周期で転写メモリのデータが更新されるため、各コントローラのCPUは転写メモリへの読み出しと書き込みで複数のコントローラ間でデータを共有することができる。これにより、コントローラの通信負荷を軽減しコントローラの運用への影響が少ないため、一定周期での運用が求められるプラントシステム、例えば発電プラント制御システムのコントローラ間通信などに適用されている。
特開平7−219902号公報
一方、プラントシステムのリスク軽減のため、コントローラ間の通信システムには機能安全が求められている。機能安全とは、故障が発生してもシステムや機器の安全性を確保できるように機能を実装しておくという考え方であり、機能安全の通信は1対1の要求−応答パケット通信を想定している。しかし、上記のような従来のサイクリックメモリ転写方法では、ブロードキャスト通信によって実現されていたため、1対1でのデータ授受や、要求−応答パケット通信のような送受信を確認しながらのハンドシェイク通信は実現できず機能安全の要件を満たせない。
本発明は上記課題に鑑み、転写メモリを用いた複数のコントローラ間の通信方法において、データの送受信を確認しながら通信を行うハンドシェイク通信を実現することを目的とする。
本発明は、伝送路に接続されるコントローラと、他の複数のコントローラから前記伝送路を介して周期的に行われるデータ送信によって、受信エリア上のデータが逐次更新される転写メモリと、前記転写メモリの送信エリア上のデータを周期的に前記他の複数のコントローラへ送信する通信プロセッサと、送信元と受信先を設定した送信データを、前記転写メモリ上の前記送信エリアへ書き込むCPUとを有し、前記CPUまたは前記通信プロセッサは、前記転写メモリの前記受信エリアのデータ更新を検出し、前記CPUは、更新データが自コントローラ宛であったときは当該更新データの送信元に対しての応答を前記転写メモリに書き込むことを特徴とするコントローラ通信装置によって解決される。
本発明によれば、転写メモリを介して行うコントローラ通信において、各コントローラがデータの送受信を確認しながら通信を行うため、異常や故障が発生した際の検出精度を向上できる。
第1の実施例であるコントローラシステムの全体構成図である。 転写メモリ104,転写メモリ204および転写メモリ304のデータ構成図およびブロック使用例である。 要求ブロックと応答ブロックの構成図である。 CPU102の構成図である。 本発明によりハンドシェイク通信を行うデータ送信側コントローラとデータ受信側コントローラの処理の流れを示すフロー図である。 第2の実施例の転写メモリのブロック使用例を示した図である。 第3の実施例のデータ送信側コントローラと受信側コントローラの処理フロー図である。 時間経過に伴うCPUとNCPの処理動作を表わした図である。 図8の時刻t1〜t8の各時点における転写メモリ上のデータ構成図である。 第3の実施例における要求ブロックと応答ブロックの構成図である。
以下、図面を用いて本発明の実施例について説明する。
図1は本発明を適用した第1の実施例であるコントローラシステムの全体構成図を示したブロック図である。本発明によるコントローラシステムは、図示しない制御対象の演算・制御を行うコントローラ101と、制御対象を作動するアクチュエータ109と、制御対象の動作状態を検出するセンサ107と、センサ107から検出信号を受信しコントローラ101へ送る入力装置106と、コントローラ101からの制御信号をアクチュエータ109へ送信する出力装置208と、複数のコントローラを接続する伝送路901とによって構成されている。また、制御対象を制御するコントローラは、コントローラの情報処理を行う中央処理装置(CPU)102と、コントローラ間の通信処理を行いCPU102から直接読み書きされる転写メモリ104を具備する通信プロセッサ(NCP)103と、CPU102とNCP103をつなぐシステムバス105によって構成されている。本実施例のコントローラシステムは、コントローラ101,コントローラ201,コントローラ301,コントローラ401,コントローラ501,コントローラ601,コントローラ701,コントローラ801の8台(コントローラ201,コントローラ301,コントローラ401,コントローラ501,コントローラ601,コントローラ701については図示せず)が伝送路901を介して接続される。
次に、本実施例のコントローラシステムにおけるコントローラ間の通信方法について説明する。ここでは、CPU102からデータを送信する例を挙げる。
CPU102はセンサ107から受信した検出信号や、受信した検出信号に基づき演算を行い、伝送路に接続される複数のコントローラ間で共有が必要なデータ、もしくは伝送路に接続される特定のコントローラへのデータを要求ブロックとして作成し、転写メモリ104のコントローラ101に割り当てられた送信ブロックに書き込む。
一方NCP103は、CPU102のタスクとは独立に、一定周期で伝送路に接続される全てのコントローラの転写メモリへ、転写メモリ104上のコントローラ101に割り当てられた送信ブロックのデータを同報送信する。CPU102によって転写メモリに書き込まれた要求ブロックは、上記のNCP103の周期的な転写によってコントローラ201〜コントローラ801の転写メモリ204〜転写メモリ804に転写される。
CPU102〜CPU802は各々の転写メモリに転写された要求ブロックが、自分宛のものであるか判断し、自分宛であった場合に転写メモリから該当ブロックの読み出しを行う。要求ブロックを読み出したCPU202〜CPU802はCPU102に対して要求ブロックが正確に受信されたことを示す応答ブロックを作成し、転写メモリ204,転写メモリ304の各々に割り当てられた送信領域に書き込む。
ここでNCP203〜NCP803は、NCP103と同様に一定周期で順々に伝送路に接続される全てのNCPの転写メモリへデータの転写を行っている。CPU202〜CPU802によって書き込まれた応答ブロックは、NCP203〜NCP803によって他のNCPの転写メモリへ転写される。
CPU102は転写メモリ104に書き込まれた応答ブロックが自分宛であるか判断し、自分宛であった場合に転写メモリ104から応答ブロックを読み出す。CPU102は読み出した応答ブロックが、自身が書き込んだ要求ブロックに対するものか判断し、受信先がエラー無く要求ブロックを受信したことを確認する。
このように、NCP103〜NCP803が各々の転写メモリを一定周期で他の転写メモリへ転写していくことで、データの授受を確認しながら複数のコントローラ間で通信すること、つまりハンドシェイク通信が可能になる。ここで、NCPの転写周期は任意に定めることができ、例えばNCP103,NCP203,NCP303,NCP403,NCP503,NCP603,NCP703,NCP803の順に一定周期で自身の転写メモリの転写を行うよう定める。
図2に、転写メモリ104,転写メモリ204および転写メモリ304のデータ構成図およびブロック使用例を示す。転写メモリ104,転写メモリ204,転写メモリ304は、それぞれ自コントローラのCPUによって書き込まれる送信ブロック(転写メモリ104,転写メモリ204,転写メモリ304の斜線部)と、自コントローラのCPUによって読み出される受信ブロック(転写メモリ104,転写メモリ204,転写メモリ304の無地部)とにブロック分けされている。
転写メモリ104の送信ブロックは要求ブロックを書き込むエリア(CPU1−2〜CPU1−8)と応答ブロックを書き込むエリア(CPU1−A1〜CPU1−A8)に分けられ、さらに受信先のCPUごとにブロック分けされている。受信ブロックも同様に、要求ブロックが転写されるエリア(CPU2−1〜CPU2−8,CPU3−1〜CPU3−8)と応答ブロックが転写されるエリア(CPU2−A1〜CPU2−A8,CPU3−A1〜CPU3−A8)に分けられ、さらに送信元のCPUごとにブロック分けされている。
転写メモリ204の送信ブロックは要求ブロックを書き込むエリア(CPU2−1〜CPU2−8)と応答ブロックを書き込むエリア(CPU2−A1〜CPU2−A8)に分けられ、さらに受信先のCPUごとにブロック分けされている。受信ブロックも同様に、要求ブロックが転写されるエリア(CPU1−2〜CPU1−8,CPU3−1〜CPU3−8)と応答ブロックが転写されるエリア(CPU1−A1〜CPU1−A8,CPU3−A1〜CPU3−A8)に分けられ、さらに送信元のCPUごとにブロック分けされている。
転写メモリ304の送信ブロックは要求ブロックを書き込むエリア(CPU3−1〜CPU3−8)と応答ブロックを書き込むエリア(CPU3−A1〜CP3−A8)に分けられ、さらに受信先のCPUごとにブロック分けされている。受信ブロックも同様に、要求ブロックが転写されるエリア(CPU1−2〜CPU1−8,CPU2−1〜CPU2−8)と応答ブロックが転写されるエリア(CPU1−A1〜CPU1−A8,CPU2−A1〜CPU2−A8)に分けられ、さらに送信元のCPUごとにブロック分けされている。
例えば、CPU1−2はCPU102によってCPU202への要求ブロックが書き込まれるブロックであり、CPU1−A2はCPU102によってCPU202への応答ブロックが書き込まれるブロックである。
次に転写メモリの各ブロックの使用例について説明する。図2の[1]はCPU102からCPU202へのデータを他のCPUの転写メモリに同報送信し、CPU202からCPU102へ応答を返す際のブロック使用例である。
CPU102は転写メモリ104のCPU1−2の領域にCPU202への要求ブロックを書き込む。書き込まれた要求ブロックは、他の転写メモリのCPU1−2に転写される。CPU202は、転写メモリ204のCPU1−2の領域から要求ブロックを読み出し、応答として転写メモリ204のCPU2−A1の領域に応答ブロックを書き込む。書き込まれた応答ブロックは、他の転写メモリのCPU2−A1に転写される。応答ブロックが転写されたことを検出したCPU102は、転写メモリ104のCPU2−A1の領域から応答ブロックを読み出す。
[2]では、CPU102からCPU302へのデータを他のCPUの転写メモリに同報送信し、CPU302からCPU102へ応答を返す際のブロック使用例である。CPU102は転写メモリ104のCPU1−3の領域にCPU302への要求ブロックを書き込む。書き込まれた要求ブロックは、他の転写メモリのCPU1−3に転写される。CPU302は、転写メモリ304のCPU1−3の領域から要求ブロックを読み出し、応答として転写メモリ304のCPU3−A1の領域に応答ブロックを書き込む。書き込まれた応答ブロックは、他の転写メモリのCPU3−A1に転写される。CPU102は、転写メモリ104のCPU3−A1の領域から応答ブロックを読み出す。
同様に[3]に示すCPU202からCPU102へデータを送信する際は、CPU2−1およびCPU1−A2を使用し、[4]に示すCPU202からCPU302へデータを送信する際は、CPU2−3およびCPU3−A2を使用し、[5]に示すCPU302からCPU102へデータを送信する際は、CPU3−1およびCPU1−A3を使用し、[6]に示すCPU302からCPU202へデータを送信する際は、CPU3−2およびCPU2−A3を使用する。
転写メモリ104,転写メモリ204および転写メモリ304上の送信ブロックのデータは各々の転写を制御するNCP103,NCP203およびNCP303によって一定周期で全ての転写メモリの受信ブロックへ転写される。そのため、転写メモリ104,転写メモリ204および転写メモリ304のデータは一致化され、一定周期で行われるメモリ転写によって逐次最新のデータに更新されていく。ここで、上記のようにCPUごとに送信ブロック,受信ブロックに分け、さらに要求ブロックと応答ブロック、受信先のCPUと送信元のCPUごとにブロック分けすることで、使用するデータエリアが重なることがない。そのため、処理前のデータが上書きされることや、他のCPU間のデータ通信によって自CPUが通信待ちになることがなく定周期のタスクを保ったままコントローラ間の通信を行うことができる。
図3は、図2に示す要求ブロックと応答ブロックの構成例を示した図である。図3に示す要求ブロックおよび応答ブロックは、ヘッダーとして受信先アドレスを示すDA、送信元アドレスを示すSA、転写メモリのブロック位置を示すBLK#、シーケンス番号を示すSEQ#を持ち、テーラーとしては、データチェックコードであるCRC32を持つ。
また、要求ブロックには他のCPUへの送信データであるボディを持つ。応答ブロックは、DAに要求ブロックの送信元アドレス設定し、SAに自身のアドレスを設定し、SEQ#に受信した要求ブロックのSEQ#を設定し、BLK#に転写メモリのブロック位置を設定して送信元へ返すことで最小の応答となるためボディは必要ないが、付加情報としてボディを加えることも可能である。
ここでCRC32は、CRC(Cyclic Redundancy Check:巡回冗長検査)の一種であり、データ長が274ビット以下であれば最高8ビットまでのエラー検出が可能である。
本ブロック構成例では、CRC32によるエラー検出を確実に行うため、ヘッダーを32ビット、ボディを192ビットに設定してあり、ヘッダーとボディを合わせたデータ長は224ビットとなっている。これにより、データ転送やCPUによる書き込み,読み出しよってデータ化け等が発生した場合においても8ビットまでのエラーであれば確実に検出できる。
本ブロック構成例では、伝送路に接続されるコントローラの台数が8台であるため、DAおよびSAは8ビットに設定され、ボディは192ビット=24バイトに定められている。本ブロック構成例では、固定長のブロックの例を示したが、データが可変長である場合はヘッダーまたはボディにデータ長情報を加えることもできる。
次に、本実施例のコントローラ間通信におけるCPUとNCPの時間経過に伴う動作について、図8,図9を用いて説明する。図8は、時間経過に伴うCPUとNCPの処理動作を表わした図であり、図9は図8の時刻t1〜t8の各時点における転写メモリ上のデータ構成図である。ここでは、簡易的にコントローラ101,コントローラ102,コントローラ103の三台のコントローラが伝送路を介して接続されるとし、CPU102からCPU202とCPU302へ異なるデータを送信する例を用いる。
それぞれのCPUは所定の周期で、転写メモリからの読み書きを行っている。ここで、CPU102はCPU202への送信データをボディとした要求ブロックReq1−2を作成し、CPU1−2の領域に書き込む(図8のS1)。同様にCPU302への送信データをボディとした要求ブロックReq1−3を作成し、CPU1−3の領域に書き込む(図8のS1)。ここでReq1−2およびReq1−3のSEQ#は、CPU1−2およびCPU1−3の領域上のSEQ#を更新するように定める。これにより各CPUはSEQ#の更新を確認することで、新たにデータが書き込まれたことを検出できる。このとき時刻t1では、図9の(t1)に示すように転写メモリ104のCPU1−2およびCPU1−3の領域に当該要求ブロックが書き込まれた状態になる。
一方、NCP103,NCP203,NCP303はCPUのタスクとは独立に、それぞれの転写メモリの送信ブロックを他の2つの転写メモリへ所定の周期で順々に同報送信している。NCP103は、自分の同報送信のタイミングになると転写メモリ104の送信ブロックを他の2つの転写メモリへ同報送信する(図8のS2)。ここで時刻t2では、図9の(t2)に示すように転写メモリ104の送信ブロックが、転写メモリ204,転写メモリ304の受信ブロックに転写され、データが共有化される。
CPU202は、自身のタスクのタイミングで転写メモリ204の受信ブロックのSEQ#の更新をチェックする。CPU202は、自分宛のブロックであるCPU1−2のSEQ#の更新を検出し、Req1−2を読み出す(図8のS3)。CPU302も同様に、自身のタスクのタイミングで転写メモリ304の受信ブロックのSEQ#の更新をチェックする。CPU302は、自分宛のブロックであるCPU1−3のSEQ#の更新を検出し、Req1−3を読み出す(図8のS4)。
CPU202は、Req1−2を正確に受信したことをCPU102に知らせるため、CPU102に対して応答ブロックAck2−1を作成し、転写メモリ204のCPU2−A1の領域に書き込む(図8のS5)。このとき、時刻t3では図9の(t3)に示すように転写メモリ204のCPU2−A1の領域に当該応答ブロックが書き込まれた状態になる。
同様に、CPU302は、Req1−3を正確に受信したことをCPU102に知らせるため、CPU102に対して応答ブロックAck3−1を作成し、転写メモリ304のCPU3−A1の領域に書き込む(図8のS6)。このとき、時刻t4では図9の(t4)に示すように転写メモリ304のCPU3−A1の領域に当該応答ブロックが書き込まれた状態になる。
NCP203は、自分の同報送信のタイミングになると転写メモリ204の送信ブロックを他の2つの転写メモリへ同報送信する(図8のS7)。ここで時刻t5では、図9の(t5)に示すように、転写メモリ204の送信ブロックが、転写メモリ104,転写メモリ304の受信ブロックに転写され、データが共有化される。
CPU102は、図8のS1で転写メモリ104に書き込みを行った次のタスク周期になると、転写メモリ104の受信ブロックをチェックし、CPU2−A1のSEQ#の更新を検出し、Ack2−1を読み出す(図8のS8)。これにより、Req1−2がCPU202に正しく受信されたことを確認する。
一方、NCP303は、自分の同報送信のタイミングになると転写メモリ304の送信ブロックを他の2つの転写メモリへ同報送信する(図8のS9)。ここで時刻t6では、図9の(t6)に示すように、転写メモリ304の送信ブロックが、転写メモリ104,転写メモリ204の受信ブロックに転写され、データが共有化される。
CPU102は、自身のタスクのタイミングで転写メモリ104の受信ブロックをチェックし、CPU3−A1のSEQ#の更新を検出し、Ack3−1を読み出す(図8のS10)。これにより、Req1−3がCPU302に正しく受信されたことを確認する。
データが正しく受信されたことを確認したCPU102は、次の送信データを転写メモリ104の送信ブロックに書き込み(図8のS11)、NCP103は自分の同報送信のタイミングで転写メモリ104の送信ブロックを他の2つの転写メモリへ同報送信する(図8のS12)。
このように、各CPUは自身の処理周期で転写メモリへの読み書きを行うだけで、各々のコントローラと通信を行うことができる。転写メモリ上のデータは各NCPの周期的な同報送信によって逐次更新されるため、CPUが転写メモリに書き込みを行った次のタスクのタイミングで他のCPUからの応答を受信できる。これにより、CPUの通信待ちを発生させないハンドシェイク通信が可能になり、定周期でのコントローラの運用が可能になる。
また、要求ブロックと応答ブロック、受信先のCPUと送信元のCPUごとにブロック分けすることで、使用するデータエリアが重なることがない。そのため、読み出し前のデータが上書きされることや、他のCPU間のデータ通信による通信待ちを防ぐ事ができる。
ここで、一定周期経過後も応答がない場合にエラーとするタイムアウトを設定すれば、通信途中に生じた異常を検出することも可能である。
図8,図9で示した例では、CPUが一定周期で転写メモリへのポーリングを行うよう設定しているが、NCPが転写メモリ上のSEQ#の更新を検出し、CPUへ通知するようにしてもよい。これによれば、CPUが適宜応答を返すことができるので、ハンドシェイク通信にかかる時間を短縮することができる。
図4はCPU102の構成図である。CPU102は、MPU111と主メモリ112と補助メモリ113とCRC作成部114とによって構成される。またCPU202〜CPU802も同様に、MPU211〜MPU811と主メモリ212〜主メモリ812と補助メモリ213〜補助メモリ813とCRC作成部214〜CRC作成部814とによって構成されるが、図では省略する。主メモリ112には、コントローラ101の制御対象の制御情報や、駆動情報,演算結果、他のコントローラからの通信データ等が格納されている。CPU102は、主メモリ112から他のCPUへ送信が必要なデータを読み出し、DA,SA,BLK#,SEQ#を設定した要求ブロックを作成する。
MPU111は、作成した要求ブロックを補助メモリ113上の転写メモリ104のブロック位置に対応したメモリ位置へ書き込む。ここで、補助メモリ113は、転写メモリ104と同様に要求ブロックを書き込むエリアと応答ブロックを書き込むエリアに分けられ、さらに送信元のCPUおよび受信先のCPUごとにブロック分けされている。
CPU中にハードウェアとして実装されるCRC作成部114は、補助メモリ113への書き込みを検出し、書き込まれた要求ブロックに対してCRC32を算出し、CRC作成部114内のレジスタ115に格納する。MPU111は、レジスタ115からCRC32を読み出し、補助メモリ113に書き込まれた要求ブロックにCRC32を付し、最終的に転写メモリに書き込みを行う要求ブロックを形成する。形成された要求ブロックは、MPUによってNCP103内の転写メモリ104の送信ブロックに書き込まれる。
またMPU111は、転写メモリ104の受信ブロックから、他のコントローラからの要求ブロックまたは応答ブロックを読み出し、補助メモリ113上の転写メモリ104のブロック位置に対応したメモリ位置へ書き込む。CRC作成部114は、補助メモリ113への書き込みを検出し、書き込まれた要求ブロックまたは応答ブロックのヘッダーとボディに対してCRC32を算出しレジスタ115に格納する。MPU111は、CRC作成部114によって算出されたCRC32と、読み出した要求ブロックまたは応答ブロックに付されたCRC32を照合し、データが正しく受信されたものか確認する。
読み出したブロックが要求ブロックであったとき、MPU111は要求ブロックの送信元CPUへデータが正しく受信されたことを通知するため、送信元のCPUに対して応答ブロックを作成し、補助メモリ113に書き込む。CRC作成部114は補助メモリ113への書き込みを検出し、書き込まれた応答ブロックに対してCRC32を算出し、CRC作成部114内のレジスタ115に格納する。MPU111は、レジスタ115からCRC32を読み出し、補助メモリ113に書き込まれた応答ブロックにCRC32を付し、最終的に転写メモリ104に書き込みを行う応答ブロックを形成する。
また、読み出したブロックが応答ブロックであったときは、応答ブロックのヘッダーから自身が送信した要求ブロックが受信先CPUに正しく受信されたことを確認することができる。また、CRC作成部114によって算出されたCRC32と、読み出した応答ブロックに付されたCRC32を照合することで、応答ブロック自体のデータ化けを検出できる。
また、本実施例のCRC作成部114はハードウェアとして実装され、MPU111による補助メモリ113への書き込みを検出し、自動的に書き込まれたデータに対してCRC32を算出し、レジスタ115に格納する。これによりCRC32の照合にかかるMPU111の負荷を軽減することができる。
図5は、本発明によりハンドシェイク通信を行うデータ送信側コントローラとデータ受信側コントローラの処理の流れを示すフロー図である。ここでは、コントローラ101が送信側コントローラ、コントローラ201が受信側コントローラとし、NCP103およびNCP203がSEQ#の更新を検出し、CPU102およびCPU202へ通知する例を用いて説明する。
送信側コントローラ101のCPU102は、送信データをボディとし、ヘッダーとしてDA,SA,BLK#,SEQ#を設定した要求ブロックを作成し補助メモリ113へ格納する(S1)。
CPU102は、ヘッダーとボディに対してCRC32を作成する(S2)。次にCPU102は、テーラーとしてCRC32を付したボディを転写メモリ104の送信ブロックに書き込む(S3)。その後ヘッダーを転写メモリ104へ書き込み(S4)、送信側コントローラのNCP103は、転写メモリ104に書き込まれた要求ブロックを受信側コントローラ202の転写メモリ204へ送信する(S5)。
データを受信した受信側コントローラ102のNCP203は、要求ブロックのSEQ#の更新を検出し、DAが自コントローラであるか判断し、DAが自コントローラであったとき受信側コントローラのCPU202へ通知する(S6)。
通知を受けたCPU202は要求ブロックを補助メモリ213へ読み出す(S7)。CPU202は、読み出した要求ブロックのBLK#と補助メモリ213上の位置の一致を確認する(S8)。位置が一致しなった場合は(S7)から1回リトライする。再度不一致だった場合は、エラーを検出する(S9)。
BLK#と補助メモリ213上の位置が一致したら、要求ブロックのヘッダーとボディに対してCRC32を作成し、要求ブロックに付されたCRC32と照合する(S10)。CRC32が不一致な場合、(S7)から1回リトライする。再度不一致だった場合は、エラーを検出する(S11)。
CRC32が一致した場合、要求ブロックのボディを主メモリ212に格納し、要求ブロックに対する応答ブロックを作成し、補助メモリ213へ格納する(S12)。このとき応答ブロックのヘッダーには、DAへ要求ブロックのSAを複写し、SAへ自コントローラ201のアドレスを設定し、BLK#へ要求ブロックのBLK#を複写し、SEQ#へ要求ブロックのSEQ#を複写する。次に、受信側コントローラ201のCPU202は作成した応答ブロックに対しCRC32を作成し、CRC32を付したボディを転写メモリ204の送信ブロックに書き込む(S14)。その後ヘッダーを転写メモリ204へ書き込み、受信側コントローラ201のNCP203は、転写メモリ204に書き込まれた応答ブロックを送信側コントローラ101の転写メモリ104へ送信する(S15)。
送信側コントローラ104のNCP103は、受信した転写メモリ104上の応答ブロックのSEQ#更新をチェックし、一定時間内に自身が送信した要求ブロックのBLK#とSEQ#が一致するか確認する(S16)。一定時間内に一致しなかった場合は、タイムアウトとなる。
SEQ#の更新を検出し、DAが自コントローラで、自身が送信した要求ブロックのBLK#とSEQ#が一致した場合はCPU102へ通知する(S17)。通知を受けたCPU102は応答ブロックを読み出し(S18)、応答ブロックのヘッダーに対してCRC32を作成し、応答ブロックに付されたCRC32と照合する(S19)。
CRC32が不一致な場合は、(S18)から1回リトライする。再度不一致だった場合は、エラーを検出する(S20)。CRC32が一致した場合に、ハンドシェイク通信完了となる(S21)。
(S1)〜(S21)までの処理で、上記エラーを検出した場合、CPU102およびCPU202はエラーが検出されたデータを主メモリ112および主メモリ212へは格納せず、当該データなしでコントローラの運用が可能か判断する。運用が可能であると判断されたときは、続けてコントローラの運用を維持する。運用が不可能であると判断されたときは、安全にコントローラを停止させる。
ここで、NCPは転写メモリのSEQ#の更新を検出し、CPUへ通知を行っているが、CPUが一定周期で転写メモリ上のSEQ#の更新をポーリングしてもよい。このとき、CPUが転写メモリへ書き込みを行う周期よりも、SEQ#の更新をポーリングする周期を短く設定することで、書き込み周期の間で必ずSEQ#の更新チェックがされるため、応答待ちを軽減できる。
次に、本発明によるエラー検出について具体例を挙げて説明する。発電プラントの制御システムとして、図1のように伝送路に8台のコントローラが接続され、コントローラ101がボイラの駆動制御を行っているとする。
以下、コントローラ101が制御を行うボイラの駆動情報を、コントローラ201に送信する例について図5を用いて説明する。図5において、送信側コントローラはコントローラ101、受信側コントローラはコントローラ201である。コントローラ101はセンサ107から得られたボイラの駆動情報や、駆動情報から演算された制御情報などを主メモリに格納する。コントローラ101のCPU102は、主メモリからボイラの駆動情報を読み出し、駆動情報をボディとして、ヘッダーを設定した要求ブロックを補助メモリへ格納する(S1)。このとき、DAはCPU202、SAはCPU102に設定される。
CPU102は、格納されたヘッダーとボディに対してCRC32を作成する(S2)。次にCPU102は、テーラーとしてCRC32を付したボディを転写メモリ104の送信ブロックに書き込む(S3)。その後ヘッダーを転写メモリへ書き込み(S4)、コントローラ101のNCP103は、転写メモリに書き込まれた要求ブロックをコントローラ201の転写メモリ204へ送信する(S5)。
ここで、コントローラ101からコントローラ201へのデータ送信で異常が発生し、ボディである駆動情報のデータがデータ化けを起こしたとする。データを受信したコントローラ201のNCP203は、要求ブロックのSEQ#の更新を検出し、DAが自コントローラであるか判断し、DAが自コントローラであったときコントローラ201のCPU202へ通知する(S6)。通知を受けたCPU202は要求ブロックを補助メモリへ読み出す(S7)。CPU202は、読み出した要求ブロックのBLK#と補助メモリ上の位置の一致を確認する(S8)。位置の確認後、要求ブロックのヘッダーとボディに対してCRC32を作成し、要求ブロックに付されたCRC32と照合する(S10)。
このとき、ボディである駆動情報はデータ化けを起こしているため、作成したCRC32と要求ブロックに付されたCRC32は不一致となり(S7)から1回リトライする。
再度転写メモリから読み出した要求ブロックに対してCRC32を作成,照合し、不一致によりエラーを検出する。
このように、データの送受信の間で起こるエラーをCRC32の照合により検出することができる。また各CPUは、転写メモリの読み出し、書き込み毎にCRC32を作成し照合・付与を行うので、CPUから転写メモリへのデータ書き込み、転写メモリからCPUへのデータ読み出し、NCP間の通信、いずれの処理で異常が起こってもエラーを検出できるだけでなく、転写メモリ内の時間経過などによるデータ化けに対してもエラーを検出できる。
加えて、本実施例ではシーケンス番号を示すSEQ#の更新を確認しながらデータの送受信を行うため、同じ処理の反復,データの消失,別処理の挿入,処理の誤順等のエラーを検出可能である。同様に、ハンドシェイク通信によって逐次データの送受信を確認しながら処理を行うため、データの消失,処理の遅延,誤データによる成り済まし等のエラーを検出できる。また、上記ハンドシェイク通信のタイムアウトによっても、データの消失、処理の遅延を検出可能である。
以上本実施例では、転写メモリを介して行うコントローラ通信において各CPUが、データが正しく送受信されたか確認しながら通信を行うため、通信上の異常や故障が起きた場合でも、速やかに検出できる。
また、CPUは各転写メモリの特定のブロックへの書き込み、特定のブロックからの読み出しという少ない負荷で、複数のコントローラの中から任意のコントローラと通信できる。ここで、転写メモリは送受信を行うCPUごとにブロックわけされるため、一度の同報送信で、複数のコントローラと1対1の通信を実現できる。同時に要求ブロック,応答ブロックごとに書き込みエリアが分けられるため、一度の同報送信で複数のコントローラとの応答・要求の両方を含むデータ通信が実現できる。さらに、使用するデータエリアが重なることがないため、処理前のデータが上書きされることや、特定のCPUとのデータ通信によって他のCPUとの通信が遅れることがない。
また、通常NCPによる転写周期はCPUの処理周期に比べ速く設定されており、逐次新しいデータに更新されていく。そのため、CPUは通信待ちを軽減でき、定周期のタスクを保ったままコントローラを運用できる。
本発明の第2の実施例を図面を用いて説明する。本実施例では、同一のデータを複数のCPUへ送信するのに、1つの要求ブロックで送信を行う。例えば、CPU102からCPU202とCPU302へと同じデータを渡すには、CPU102から1つの要求ブロックでCPU202,CPU302へ送信する。これには、要求ブロックの受信先アドレスを示すDAを複数のCPUを示すグループアドレスに設定し、受信側はグループアドレスが自CPUを含むものか判定する。8台のコントローラが伝送路に接続され、受信先アドレスを示すDAが8ビットであるとき、各ビットがそれぞれのコントローラを表わし、CPU202とCPU302のビットをONとすることで、CPU202とCPU302への送信データを示すことができる。応答ブロックは、CPU202からCPU102へと、CPU302からCPU102へと1対1で返す。
図6は、本実施例による転写メモリの各ブロックの使用例を示した図である。尚、この他の構成については実施例1と同様である。[1]はCPU102からCPU202とCPU302へデータを送信する際のブロック使用例である。
CPU102はヘッダーのDAにCPU202とCPU302を示すグループアドレスを設定し、転写メモリ104のCPU1−2の領域に要求ブロックを書き込む。書き込まれた要求ブロックは、転写メモリ204および転写メモリ304のCPU1−2の領域に転写される。CPU202は、転写メモリ204のCPU1−2の領域から要求ブロックを読み出し、応答として転写メモリ204のCPU2−A1の領域に応答ブロックを書き込む。同様にCPU302は、転写メモリ304のCPU1−2の領域から要求ブロックを読み出し、応答として転写メモリ304のCPU3−A1の領域に応答ブロックを書き込む。書き込まれた応答ブロックは、転写メモリ104のCPU2−A1およびCPU3−A1の領域に転写される。CPU102は、転写メモリ104のCPU2−A1およびCPU3−A1の領域から応答ブロックを読み出す。
同様に[2]に示すCPU2からCPU102とCPU302へデータを送信する際は、CPU2−1,CPU1−A2およびCPU3−A2を使用し、[3]に示すCPU302からCPU102とCPU202へデータを送信する際は、CPU3−1,CPU1−A3およびCPU2−A3を使用する。
このように、要求ブロックの受信先アドレスを示すDAを複数のCPUを示すグループアドレスに設定することで、効率よく複数のCPUへの通信を行うことができる。また、DAの全ビットをONとすると、全CPUへの送信データを示すことができる。
本発明の第3の実施例を図面を用いて説明する。図10は、本実施例における要求ブロックと応答ブロックの構成図である。本実施例では、送信データ量が多く1つの要求ブロックに収まらない場合に、図10に示すように1つのハンドシェイク通信に要求ブロックを2つ使用しデータの送信を行う。このとき、2つの要求ブロックに対して1つ応答ブロックを返し、ハンドシェイク通信とする。このとき応答ブロックのヘッダーには1つ目の要求ブロックのヘッダー情報を代表して設定する。
図7は、本発明の第3の実施例であるデータ送信側コントローラと受信側コントローラの処理フロー図である。ただし、コントローラ101が送信側コントローラ、コントローラ201が受信側コントローラとする。送信側コントローラ101のCPU102は、1つのブロックに収まらない送信データに対し、送信データを2つにボディに分割して、2つのブロックのDA,SA,BLK#,SEQ#を設定し2つの要求ブロックを補助メモリ113へ格納する(S1)。CPU102は、1つ目の要求ブロックのヘッダーとボディに対してCRC32を作成する(S2)。次に、作成したCRC32を付した1つ目のボディを転写メモリ104の送信ブロックに書き込む(S3)。次にCPU102は、分割した2つ目の要求ブロックのヘッダーとボディに対してCRC32を作成する(S4)。次にCPUは、作成したCRC32を付した2つ目の要求ブロックを転写メモリ104の送信ブロックに書き込む(S5)。その後2つの要求ブロックに設定したヘッダーを転写メモリ104へ書き込み(S6)、送信側コントローラ101のNCP103は、転写メモリ104に書き込まれた要求ブロックを受信側コントローラ201の転写メモリ204へ送信する(S7)。
データを受信した受信側コントローラ201のNCP203は、2つの要求ブロックのSEQ#の更新を検出し、DAが自コントローラであるか判断し、DAが自コントローラであったとき受信側コントローラ201のCPU202へ通知する(S8)。通知を受けたCPU202は2つの要求ブロックを補助メモリ213へ読み出す(S9)。CPU202は、読み出した要求ブロックのBLK#と補助メモリ213上の位置の一致を確認する(S10)。位置が一致しなった場合は(S9)から1回リトライする。再度不一致だった場合は、エラーを検出する(S11)。BLK#と補助メモリ上の位置が一致したら、1つ目の要求ブロックのヘッダーとボディに対してCRC32を作成し、1つ目の要求ブロックに付されたCRC32と照合する(S12)。CRC32が不一致な場合、(S9)から1回リトライする。再度不一致だった場合は、エラーを検出する(S13)。
CRC32が一致した場合、2つ目の要求ブロックのヘッダーとボディに対してCRC32を作成し、2つ目の要求ブロックに付されたCRC32と照合する(S14)。CRC32が不一致な場合、(S15)から1回リトライする。再度不一致だった場合は、エラーを検出する。
CRC32が一致した場合、2つの要求ブロックのボディを主メモリ212に格納し、2つの要求ブロックに対して1つの応答ブロックを作成し、補助メモリ213へ格納する(S16)。
このとき応答ブロックのヘッダーには、DAへ1つ目の要求ブロックのSAを複写し、SAへ自コントローラ201を設定し、BLK#へ1つ目の要求ブロックのBLK#を複写し、SEQ#へ1つ目の要求ブロックのSEQ#を複写する。次に、受信側コントローラ201のCPU202は作成した応答ブロックに対しCRC32を作成し、CRC32を付した応答ブロックを転写メモリ204の送信ブロックに書き込む(S17)。受信側コントローラ201のNCP203は、転写メモリ204に書き込まれた応答ブロックを送信側コントローラ101の転写メモリ104へ送信する(S18)。
その後送信側コントローラ101は、受信側コントローラ201からデータを受信し、図5のS16以降と同様の処理を行う。ハンドシェイク通信過程で、上記エラーを検出した場合、CPU102およびCPU202はエラーが検出されたデータを主メモリ112および主メモリ212へは格納せず、当該データなしでコントローラの運用が可能か判断する。運用が可能であると判断されたときは、続けてコントローラの運用を維持する。運用が不可能であると判断されたときは、安全にコントローラを停止させる。
本実施例では、送信データが大きくなった場合においても要求ブロックを2つ使用することでCRC32によるデータチェック機能を保ったままハンドシェイク通信を行うことができる。また、本実施例では2つの要求ブロックを使用したが、複数個の要求ブロックを使用するよう設定してもよい。
以上本発明によれば、転写メモリを介して行うコントローラ通信において各CPUが、データが正しく送受信されたか確認しながら通信を行うため、通信上の異常や故障が起きた場合でも、速やかに検出できる。ここで、機能安全規格IEC61508で求められる機能安全の1つ要件として以下の故障に対策することが挙げられる。
1.データ化け (Corrupted Date)
2.反復 (Repetition)
3.消失 (Loss)
4.挿入 (Insertion)
5.誤順 (Incorrect Sequence)
6.遅延 (Delay)
7.成り済まし (Masquerade)
これらの対策手段として、本発明では以下の手段を転写メモリの通信に用いて機能安全の要件を満たすコントローラ通信方法を実現できる。
1.CRCによるデータ化け検出
2.シーケンス番号による反復,消失,挿入,誤順の検出
3.タイムアウトによる、消失,遅延の検出
4.受信先,送信元のハンドシェイク通信による消失,遅延,成り済ましの検出
上記のように、転写メモリを用いた複数のコントローラ間の通信方法において、データの送受信を確認しながらのハンドシェイク通信により、機能安全の要件を満たすコントローラ間通信方法を実現可能である。また、CPUは各転写メモリの特定のブロックへの書き込み、特定のブロックからの読み出しという少ない負荷で、任意のコントローラと通信できる。
101〜801 コントローラ
102〜802 CPU
103〜803 NCP
104〜804 転写メモリ
105〜805 システムバス
106〜806 入力装置
107〜807 センサ
108〜808 出力装置
109〜809 アクチュエータ
111〜811 MPU
112〜812 主メモリ
113〜813 補助メモリ
114〜814 CRC作成部
115〜815 レジスタ
901 伝送路

Claims (10)

  1. 伝送路に接続される複数のコントローラのそれぞれに備えられた通信プロセッサは、
    各コントローラが有する転写メモリの受信先のコントローラごとに定められた自コントローラの送信領域上のデータを、
    他の複数のコントローラの転写メモリの送信元のコントローラごとに定められた受信領域へ同報送信し、
    各コントローラの転写メモリ上のデータを逐次更新するように各々のコントローラが所定の周期で順々に前記受信領域へ同報送信する通信方法において、
    一のコントローラに備えられるCPUは、
    送信元アドレス,受信先アドレス,処理順序を示すシーケンス番号を付した要求ブロックを作成し、
    前記転写メモリの受信先のコントローラごとに定められた自コントローラの送信領域上の要求ブロックに前記作成した要求ブロックを上書きし、
    前記一のコントローラの通信プロセッサは、
    前記周期的な同報送信によって複数のコントローラの転写メモリ上の前記要求ブロックを更新し、
    他のコントローラに備えられるCPUは、
    自転写メモリの受信領域上の要求ブロックの前記シーケンス番号が更新され、
    前記受信先アドレスが自コントローラであったとき、
    前記要求ブロックを前記受信領域から読み出し、
    送信元アドレス,受信先アドレスとして前記一のコントローラのアドレス,シーケンス番号を付した応答ブロックを作成し、
    前記転写メモリの受信先のコントローラごとに定められた自コントローラの送信領域上の応答ブロックに前記作成した応答ブロックを上書きし、
    前記他のコントローラの通信プロセッサは、
    前記周期的な同報送信によって複数のコントローラの転写メモリ上の前記応答ブロックを更新し、
    前記一のコントローラに備えられるCPUは、
    自転写メモリの受信領域上の応答ブロックの前記シーケンス番号が更新され、
    前記受信先アドレスが自コントローラであったとき、
    前記応答ブロックを前記受信領域から読み出し、
    前記一の要求ブロックが受けられたことを確認することを特徴とするコントローラ通信方法。
  2. 請求項1において、
    前記送信領域は前記要求ブロックを書き込むエリアと前記応答ブロックを書き込むエリアとからなり、
    それぞれのエリアは受信先のコントローラごとに領域分けされ、
    前記応答ブロックを書き込むエリアは転写メモリ上に集約して配置され、
    前記受信領域は、
    前記要求ブロックが書き込まれるエリアと前記応答ブロックが書き込まれるエリアとからなり、
    それぞれのエリアは送信元のコントローラごとに領域分けされることを特徴とするコントローラ通信方法。
  3. 請求項1において、
    前記要求ブロックおよび前記応答ブロックには、
    前記要求ブロックまたは前記応答ブロックから算出されるデータチェックコードが付されることを特徴とするコントローラ通信方法。
  4. 請求項3において、
    前記データチェックコードは32ビットのCRCであり、
    前記要求ブロックまたは前記応答ブロックからデータチェックコードを除いたデータ長が274ビット以下で、
    8ビットまでのエラーを検出することができることを特徴とするコントローラ通信方法。
  5. 請求項3において、
    前記コントローラにチェックコード算出部をハードウェアとして備え、
    前記チェックコード算出部は、
    指定メモリへの書き込みおよび指定メモリからの読み出しに基づき、
    書き込んだブロックおよび読み出したブロックから前記データチェックコードを算出することを特徴とするコントローラ通信方法。
  6. 請求項1において、
    前記要求ブロックの受信先アドレスを複数のコントローラを示すアドレスに設定し、
    当該要求ブロックを読み出した前記複数のコントローラ各々は、
    前記送信元アドレスに自コントローラを設定し、
    前記受信先アドレスに当該要求ブロックを作成した前記コントローラを設定した前記応答ブロックを作成することを特徴とするコントローラ通信方法。
  7. 請求項1において、
    前記通信プロセッサは、
    前記シーケンス番号の更新を検出し、
    前記シーケンス番号が更新された前記要求ブロックまたは前記応答ブロックの前記受信先アドレスが当該通信プロセッサに接続される前記コントローラであるとき、
    当該コントローラのCPUに割り込みを通知することを特徴とするコントローラ通信方法。
  8. 請求項1において、
    前記コントローラのCPUは、
    所定の周期で前記要求ブロックを前記転写メモリへ上書きし、
    前記転写メモリへ上書きを行う周期より早い周期で前記受信領域のシーケンス番号が更新されたかどうかポーリングを行い、
    前記シーケンス番号が更新され、
    前記受信先アドレスが自コントローラであったとき、
    前記要求ブロックまたは前記応答ブロックを読み出すことを特徴とするコントローラ通信方法。
  9. 請求項1において、
    複数の前記要求ブロックの送信元アドレスが同一のコントローラであり、
    同周期で前記複数の要求ブロックの前記シーケンス番号が更新されたとき、
    前記複数の要求ブロックを読み出した前記コントローラは、
    前記複数の要求ブロックに対し一つの前記応答ブロックを作成することを特徴とするコントローラ通信方法。
  10. 少なくとも3のコントローラが通信回線を介して接続されるものであって、
    前記3のコントローラの各々は演算部と通信部を有し、
    前記各々の通信部は転写メモリを有し、
    前記各々の転写メモリは送信ブロックと受信ブロックを有し、
    前記各々の受信ブロックは、
    前記3のコントローラのうちの他の2のコントローラの一方のコントローラに係る第1の受信領域と、
    他方のコントローラに係る第2の受信領域を有し、
    前記各々の送信ブロックは、
    前記一方のコントローラに係る第1の送信領域と、
    前記他方のコントローラに係る第2の送信領域を有し、
    前記各々の演算部は、
    伝送路に接続されるコントローラへ送信するデータである要求ブロックと要求ブロックが受信されたことを示す応答ブロックと処理順序を示すシーケンス番号を付した前記要求ブロックと前記応答ブロックを作成し、
    自コントローラに係る前記送信ブロックに前記要求ブロック又は前記応答ブロックを書き込むと共に、
    前記受信ブロックから前記要求ブロック又は前記応答ブロックを読み出し、
    前記各々の通信部は互いに衝突しないように所定のタイミングで送信を行い、
    前記送信においては、
    前記通信部のうちの所定のものが自コントローラの前記第1の送信領域と第2の送信領域に格納される前記要求ブロック又は前記応答ブロックを通信回線介して同報的に送信するに際して、
    他の通信部は、
    前記通信回線を介して送信された前記要求ブロック又は前記応答ブロックを対応する前記第1の受信領域あるいは第2の受信領域に格納し、
    前記各々の通信部において、
    前記第1の送信領域に前記一方のコントローラからの前記要求ブロックに対する応答ブロックが、
    前記第2の送信領域に前記他方のコントローラからの前記要求ブロックに対する応答ブロックが格納されることを特徴とするコントローラ通信装置。
JP2009045028A 2009-02-27 2009-02-27 コントローラ通信方法およびコントローラ通信装置 Active JP5544099B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2009045028A JP5544099B2 (ja) 2009-02-27 2009-02-27 コントローラ通信方法およびコントローラ通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2009045028A JP5544099B2 (ja) 2009-02-27 2009-02-27 コントローラ通信方法およびコントローラ通信装置

Publications (2)

Publication Number Publication Date
JP2010198520A JP2010198520A (ja) 2010-09-09
JP5544099B2 true JP5544099B2 (ja) 2014-07-09

Family

ID=42823156

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2009045028A Active JP5544099B2 (ja) 2009-02-27 2009-02-27 コントローラ通信方法およびコントローラ通信装置

Country Status (1)

Country Link
JP (1) JP5544099B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP5377448B2 (ja) * 2010-09-10 2013-12-25 株式会社日立製作所 制御装置用プログラミングツール及び制御装置用プログラムの作成支援方法
JP6678093B2 (ja) * 2016-11-04 2020-04-08 株式会社日立製作所 データ共有システム、データ共有方法

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS626361A (ja) * 1985-07-03 1987-01-13 Hitachi Ltd 複数プロセツサ間デ−タ転送方式
JPH02135831A (ja) * 1988-11-16 1990-05-24 Toshiba Corp 通信プロトコールの冗長化方式
JP2822264B2 (ja) * 1990-04-17 1998-11-11 ソニー株式会社 自動利得制御回路
JPH05265983A (ja) * 1992-03-19 1993-10-15 Fuji Xerox Co Ltd 耐故障機構を有する情報処理装置
JP3029170B2 (ja) * 1993-08-05 2000-04-04 株式会社日立製作所 データ伝送方法と装置および非同期制御システム
JPH0774786A (ja) * 1993-08-31 1995-03-17 Oki Electric Ind Co Ltd 多地点間データ伝送方法
JP3312362B2 (ja) * 1994-08-26 2002-08-05 日本電信電話株式会社 マルチプロセッサシステム
JPH07182293A (ja) * 1993-12-22 1995-07-21 Hitachi Ltd 分散型処理システムおよびデータ転送制御方式
JPH07219902A (ja) * 1994-01-27 1995-08-18 Hitachi Ltd ネットワークアダプタ及びネットワークシステム
JP3312361B2 (ja) * 1994-04-13 2002-08-05 日本電信電話株式会社 分散共有メモリシステム
JP3560662B2 (ja) * 1994-12-06 2004-09-02 富士通株式会社 並列プロセッサ装置
JPH09149060A (ja) * 1995-11-27 1997-06-06 Mitsubishi Electric Corp 多分岐接続ネットワークにおける同報通信方式
JPH09162873A (ja) * 1995-12-05 1997-06-20 Nippon Telegr & Teleph Corp <Ntt> 誤り検出方法および装置
JP3754482B2 (ja) * 1996-02-29 2006-03-15 株式会社日立製作所 メモリ転写機能を有する情報処理装置
JPH1098524A (ja) * 1996-09-20 1998-04-14 Nippon Telegr & Teleph Corp <Ntt> 分散型ネットワーク
JPH11353233A (ja) * 1998-06-09 1999-12-24 Hitachi Ltd 転写メモリのデータキャッシュ方法及びバス変換装置
JP2000099487A (ja) * 1998-09-25 2000-04-07 Nippon Telegr & Teleph Corp <Ntt> マルチプロセッサシステムにおける同報通信方法及び送受信装置及び送信装置及び受信装置及びこの方法を記録した記録媒体
US8160563B2 (en) * 2006-06-30 2012-04-17 Qualcomm Incorporated Method and apparatus for controlling response to service notifications in a network environment
JP4851585B2 (ja) * 2007-02-28 2012-01-11 富士通株式会社 クライアント装置と複数のサーバ装置からなるシステムの通信方法、その通信プログラム、クライアント装置及びサーバ装置

Also Published As

Publication number Publication date
JP2010198520A (ja) 2010-09-09

Similar Documents

Publication Publication Date Title
CN101876963B (zh) PCI.Express通信系统及其通信方法
FI92262B (fi) Joustava väyläjärjestelmä
US11108499B2 (en) System and method for transferring data and a data check field
US7383377B2 (en) Method and apparatus for transferring data
US7120846B2 (en) Data transmission device, data receiving device, data transfer device and method
JP5019983B2 (ja) 車載通信システム、中継装置及び通信方法
JP5544099B2 (ja) コントローラ通信方法およびコントローラ通信装置
US20050144339A1 (en) Speculative processing of transaction layer packets
JP4834722B2 (ja) 演算処理装置及び演算処理装置の制御方法
JP5966243B2 (ja) ストレージ装置及びストレージ装置の制御方法
JP4723265B2 (ja) エラー検出訂正装置の制御方法、エラー検出訂正装置、情報処理システム、エラー検出訂正装置の制御プログラム、データ処理装置
JPH0691513B2 (ja) データ伝送誤り検出方式
US8433952B2 (en) Memory access control device, memory access control method and memory access control program
CN113722770B (zh) 基于分级的数据完整性的端到端的保护方法及系统
US8264948B2 (en) Interconnection device
JP2016059012A (ja) 受信装置、送信装置およびデータ転送システム
JP4284339B2 (ja) 受信装置,受信方法及び通信システム
US6487679B1 (en) Error recovery mechanism for a high-performance interconnect
JP5145860B2 (ja) メモリ二重化システム及び情報処理装置
JP2007323190A (ja) データ通信を行う計算制御システム及びその通信方法
JP5076348B2 (ja) 共有メモリのアクセス方式
JP2658813B2 (ja) 入出力チャネル障害復旧装置
CN116804952A (zh) 基于客户端和网络的擦除码恢复
JP2009042855A (ja) 回路間データ転送方法およびシステム
JPWO2008050456A1 (ja) コンピュータシステム、データ中継装置およびコンピュータシステム制御方法

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110120

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121127

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130128

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20130717

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20130917

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20140128

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20140331

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140512

R151 Written notification of patent or utility model registration

Ref document number: 5544099

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R151