JP4517263B2 - データ伝送方法及びデータ伝送システム並びに通信装置 - Google Patents

データ伝送方法及びデータ伝送システム並びに通信装置 Download PDF

Info

Publication number
JP4517263B2
JP4517263B2 JP2000392909A JP2000392909A JP4517263B2 JP 4517263 B2 JP4517263 B2 JP 4517263B2 JP 2000392909 A JP2000392909 A JP 2000392909A JP 2000392909 A JP2000392909 A JP 2000392909A JP 4517263 B2 JP4517263 B2 JP 4517263B2
Authority
JP
Japan
Prior art keywords
data
received
area
stored
communication
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
Application number
JP2000392909A
Other languages
English (en)
Other versions
JP2002199040A (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.)
Omron Corp
Original Assignee
Omron 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 Omron Corp filed Critical Omron Corp
Priority to JP2000392909A priority Critical patent/JP4517263B2/ja
Publication of JP2002199040A publication Critical patent/JP2002199040A/ja
Application granted granted Critical
Publication of JP4517263B2 publication Critical patent/JP4517263B2/ja
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Images

Landscapes

  • Small-Scale Networks (AREA)
  • Communication Control (AREA)
  • Computer And Data Communications (AREA)

Description

【0001】
【発明の属する技術分野】
この発明は、データ伝送方法及びデータ伝送システム並びに通信装置に関するものである。
【0002】
【発明の背景】
図1に示すように、複数の機器1がLANその他のネットワーク2に接続され、所定の機器1間でデータの送受を行うようなシステムの場合、各機器1は、1つのマスタと複数のスレーブのように、マスタによってシステム全体の通信がコントロールされるものもあれば、各機器が所定のタイミングで通信を行うものもある。
【0003】
機器1の内部構造を見ると、図2に示すように、ネットワーク2に接続され、実際にデータの送受を行う通信機器5と、その機器1の本来の動作を行うためのコントローラ6とを備えている。そして、コントローラ6は通信機器5を介して自己宛てのデータを取得する。また、コントローラ6が、ネットワーク2を介して他の機器1にデータを送信する場合には、一旦通信機器5にデータを渡し、通信機器5が所定のデータ変換を行った後、目的とする送信先に向けてデータを送信するようになっている。
【0004】
ここで、機器1として代表されるのは、ファクトリオートメーションで利用されている「プログラマブルコントローラ(PLC)」がある。このPLCは、CPUユニット(コントローラ6に相当),I/Oユニット,高機能ユニットなどがバス接続されている。さらに、いわゆるリモートI/Oを実現する場合には、通信ユニット(通信機器5に相当)を用い、CPUユニットに対してバス接続する。そして通信ユニットにつながれた通信回線ケーブルには、スイッチやセンサ,通信装置(通信スレーブ装置,センサターミナルやリレーターミナル,他のPLCに備えられた通信ユニット)などが接続される。そして、このPLCは、I/Oユニットに接続されたセンサやスイッチからの入力信号或いは通信ユニットを介して取得した入力信号を入力し、その入力信号に基づいて演算処理(ラダープログラム実行処理)を実行し、実行結果に基づいてI/Oユニットに接続されたモータやアクチュエータへ直接、または通信ユニットを介して出力信号を出す。つまり、信号の入出力はI/Oユニットまたは通信マスタユニットを介して、いわゆるI/O接点点数(I/Oチャンネル数)ごとに独立した信号で行われる。
【0005】
また、PLCのCPUユニットのシーケンス制御は、「INリフレッシュ→演算処理→OUTリフレッシュ→周辺処理」をサイクリックに繰返し実行をする。一方で通信ユニットは、通信回線に接続された他の通信装置との間で所定時間ごとにデータ通信をする。係るシーケンス制御の1サイクルの時間とデータ通信の1サイクルの時間は、異なり、非同期で動作するものがある。
【0006】
そこで、このCPUユニット(コントローラ6)と通信ユニット(通信機器5)間のインタフェース部としてDual−Port RAMや、競合制御する仕組みを持ったSRAMなどの共有メモリ7を用意し、コントローラ6と通信機器5の一方が共有メモリ7にデータを書き込み、他方がその書き込んだデータを読み出すようになる。なお、上記のリモートI/Oを実現するときにおけるCPUユニットと通信ユニット間でのデータ授受の場合も、同様となる。
【0007】
ところで、従来の共有メモリ7は、データ転送のためのメモリ領域を1つしか持っていなかったため、高速処理ができないという問題があった。すなわち、コントローラ6と通信機器5の一方が共有メモリ7にデータを書き込んでいるときは、他方はデータの読み出しができず、係るデータの書き込み終了後にデータの読み出しが行われる。同様に、データが読み出されている最中には、新たなデータを書き込むことができない。その結果、必ずどちらかを待たせる方式となり、一方の処理が終わるまで、他方は、待ち時間が生じてしまう。
【0008】
さらに、一定の通信サイクル時間を保証するような通信機器においては、通信回線から、連続的にデータが送受信されるため、上記のようにインタフェース部(共有メモリ7)で待たされると通信データをリアルタイムに交換できなくなる。そのため、内部に別バッファ(ローカルメモリ)を持ち、受信したデータを一時的に格納し、次の通信処理を実行し、インタフェース部のアクセスが許可された時にデータ交換するなどの対策が必要となる。
【0009】
係る構成をとると、機器内部に余分なメモリ(ローカルメモリ)を必要とするとともに、コントローラと通信の処理速度が異なる場合に、高速に動作しているシステム側に待ち時間の影響を与えるという欠点になる。しかも、一旦ローカルメモリにデータを保存する処理と、そのローカルメモリから保存したデータを読み出すとともに、共有メモリに格納する処理が必要となり、処理手順が煩雑となり、高速なデータ交換が阻害される。
【0010】
係る問題を解決するため、本発明者は、共有メモリ7に送信データ用,受信データ用にそれぞれ3つずつ用意し、データの読み書きのルールを以下のようにすることにより、相手の動作状態に関係なく自己の都合でデータの読み出しや書き込みが行えるようにしたシステムを発明した。簡単にそのルールを説明すると、最新のデータが書き込まれたエリアを特定するための情報Xと、読み出し側が読み出し対象としているエリアを特定する情報Yを保有する。データ書き込み側は、読み出し対象でなく(情報Yから知得)、かつ、最新のデータが格納されていないデータ記憶エリアに対して新たなデータを書き込む。データの読み出し側は、情報Xから知得した最新のデータが書き込まれたデータ記憶エリアに格納されたデータを読み出す。データ書き込み対象のエリア並びにデータ読み出し対象のエリアはそれぞれ相手側がアクセスしないので、相手を待たすことなく所定のデータ処理が行える。
【0011】
このように、データの記憶エリアを複数設けたことにより、リアルタイムでのデータの読み/書きを行うことができるものの、たとえば、受信したデータの一部にエラーが生じた場合に、以下に示す問題があった。
【0012】
通信機器5からコントローラ6にデータを渡す場合について説明する。説明を簡単にするために、図3に示すように、共有メモリ7に2つのエリア7a,7bを持ち、通信機器5は、第1エリア7aと第2エリア7bに対して交互にでデータを書き込み、コントローラ6はその書き込みに伴い第1,第2エリア7a,7bから交互にデータを読み出し、自己が管理するメモリ6aに格納する場合を想定する。そして、通信機器5は、1回の通信サイクルでA〜Dの4つのデータを受信するとともにいずれかのエリアに書き込むようにする。
【0013】
上記した前提において、各通信サイクルで図4に示すようなデータを受信したとする。すなわち、1回目と2回目の通信サイクルでは、いずれも正常なデータを受信し、3回目の通信サイクルでは、B,Dの2つのデータが異常であり、4回目の通信サイクルではBのデータが異常であったとする。
【0014】
そして、通信機器5は、1回目と3回目の通信サイクルで取得したデータを第1エリア7aに書き込みをし、2回目と4回目の通信サイクルで取得したデータを第2エリア7bに書き込みをする。各データの書き込みは上書きをすることにより、前のデータを更新する。このとき、一部のデータに異常があった場合には、正常なデータのみを書き込むように動作する。従って、異常データがあった場合には、それ以前の通信サイクルで正常に取得したデータが残ることになる。
【0015】
その結果、第1エリア7aと第2エリア7bに格納されたデータは、図5に示すようになる。すなわち、1回目の通信サイクルでは第1エリア7aにデータA〜Dの正常な値が記憶される。第2エリア7bは何もデータが記憶されていない。
【0016】
次に、2回目の通信サイクルで受信した正常なデータA〜Dは、第2エリア7bに書き込まれる。この時、第1エリア7aに対しては書き込み処理がされないので、前回の1回目の通信サイクルで書き込まれたデータが保持される。
【0017】
次に3回目の通信サイクルで受信したデータは、A,Cのみが正常であったため、第1エリア7aのうち、A,Cについてのデータは更新されるが、データB,Dを格納する領域については書き込まれないので、1回目の通信サイクルの際に格納されたデータがそのまま保持される。
【0018】
同様に、4回目の通信サイクルで受信したデータは、Bのみ異常であったため、受信したA,C,Dのデータが第2エリア7bの所定領域に格納される。そして、データBを格納する領域については書き込まれないので、2回目の通信サイクルの際に格納されたデータがそのまま保持される。
【0019】
上記したように第1,第2エリア7a,7bに対してデータの書き込みが行われた場合、コントローラ6は、第1,第2エリア7a,7bから交互にデータを読み出して、自己のメモリ6aに格納するので、メモリ6aに格納されるデータの推移は、図6に示すようになる。すなわち、コントローラ6は、通信機器5がデータを書き込んだあとで、そのデータを読み出すが、その読み出しの際には通信機器5は読み出しエリアに対して書き込み処理をしていない必要がある。つまり、通信機器5があるエリアに書き込んでいる際に、書き込みをしていないエリアからコントローラ6がデータを読み出す。これにより1サイクルずつ遅れて読み出しが行われる。
【0020】
具体的には、2回目の通信サイクルでの受信データを通信機器5が第2エリア7bに書き込んでいる際に、コントローラ6は第1エリア7aからデータを読み出し、A〜Dの各データをメモリ6a内の各記憶エリアに格納する。次に、3回目の通信サイクルの際に、第2エリア7bからデータを読み出し、メモリ6aに格納する。これにより、「A,B,C,D」の各データは「0,1,1,0」に更新される。
【0021】
ところで、4回目の通信サイクルの時には、コントローラ6は第1エリア7aに格納されたデータを読み出すことになる。このとき読み出すデータは、3回目の通信サイクルの際に通信機器5が書き込んだデータであるが、B,Dについてのデータは異常であったために更新されず、1回目の通信サイクルの際に書き込まれたデータとなっている。
【0022】
同様に、5回目の通信サイクルの時には、コントローラ6は第2エリア7bに格納されたデータを読み出すことになる。このとき読み出すデータは、4回目の通信サイクルの際に通信機器5が書き込んだデータであるが、Bについてのデータは異常であったために更新されず、2回目の通信サイクルの際に書き込まれたデータとなっている。
【0023】
従って、A,Dのデータについては、常に最新のデータに更新されている。しかし、たとえばDのデータを見ると、まず、通信機器5が1回目に受信したデータ「1」を読み込み、次に通信機器5が2回目に受信したデータ「0」を読み込んでいる。ここまでは最新のデータの更新がされている。しかし、その次に第1エリアから読み込んだデータは、通信機器5が1回目に受信したデータ「1」であり、前回読み込んだデータよりも古いデータとなっている。また、その次に読み込んだデータは、通信機器5が4回目に受信したデータ「1」となっている。このように、時系列で過去のデータに一旦戻ることになり、このデータに基づいて各種制御を行おうとすると、制御対象の動作も不安定になるおそれがあり好ましくなる。
【0024】
同様のことは、Bのデータにおいても発生している。つまり、通信機器5が1回目に受信したデータ「0」→通信機器5が2回目に受信したデータ「1」→通信機器5が1回目に受信したデータ「0」→通信機器5が2回目に受信したデータ「1」というように時間の経過と異なる順序でデータが更新される。
【0025】
この発明は、受信データを伝送するに際し送受する場合に、複数の一時記憶エリアを用い、その複数の記憶エリアの任意の記憶エリアに受信データを書き込み、その書き込み終了後に最新の受信データが書き込まれた記憶エリアを一括して読み込むに際し、時系列で古いデータを読み込むことがないようにしたデータ伝送方法及びデータ伝送システム並びに通信装置を提供することを目的とする。
【0026】
【課題を解決するための手段】
この発明によるデータ伝送方法は、通信手段が受信した受信データを、複数の一時記憶エリアのいずれかに書き込み、前記一時記憶エリアに対して格納された前記受信データを、時系列に沿って順次読み出して単一のメモリに格納するデータ伝送方法であって、前記通信手段側で受信データの一部に異常があったか否かを判断し、異常があった場合には、前回格納した一時記憶エリアから、前記異常のあったデータについての正常受信データを読み出し、その読み出した正常受信データを今回受信したデータとして、正常に受信した受信データとともに前記一時記憶エリアに格納するようにしたものである。
【0027】
この方法を実施するのに適した通信装置としては、たとえば、受信データを取得する手段と、その取得した受信データを複数の一時記憶エリアのいずれかに対して順次書き込む受信データ書き込み手段とを備え、その受信データ書き込み手段は、前記受信データの一部に異常があった場合に、前回格納した一時記憶エリアから、前記異常のあったデータについての正常受信データを読み出し、その読み出した正常受信データを今回受信したデータとして、正常に受信した受信データとともに前記一時記憶エリアに格納する機能を備えて構成することである。ここで、「取得する手段」は、実施の形態では「通信チップ11」に対応する。また、受信データ書き込み手段は、実施の形態ではINデータ書き込み部により実現される。
【0028】
「読み出した正常受信データを今回正常に受信した受信データとともに格納する」とは、物理的に同時刻に格納するものに限らない。つまり、受信データの一部に受信異常があった場合に、その異常があったデータは書き込まずに、正常に受信した受信データのみを格納するのではなく、受信異常があったデータは代替のデータを格納することを意味する。一例を示すと、1つの通信サイクル中に複数回データを受信するような場合、その通信サイクル中に受信すべきすべてのデータが上記で言う受信データの全体となり、複数回にわたって受信した個々のデータが、それぞれ一部のデータに対応する。1回の受信データの一部に異常があるようなものの場合、1回の受信データ全体を異常なデータと判断してもよいし、データ構造上可能であれば、異常な部分に対して過去に格納した正常なデータに置き換えるようにしてもよい。
【0029】
また、前回格納した一時記憶エリアに記憶されている正常データであるが、必ずしも前回の受信時に取得したデータとは限らない。つまり、前回の受信時にも受信異常があった場合には、さらにその前に取得した正常データが代わりに書き込まれている可能性もある。
【0030】
いずれにしても、上記した構成をとることにより、前回格納した一時記憶エリアには、同一対象についてのデータにとって正常受信した最新のデータが記憶されることになる。よって、前回格納した一時記憶エリアには、各データの正常な最新情報が格納されるので、係る一時記憶エリアに格納されたデータを、単一のメモリに順次書き込むようにすると、同一対処についてのデータに着目した場合、時系列で前後することはない。よって、読み出し側は、受信データが正常受信したか否かを判断する必要がなく、一括して読み出すことができるので、処理が高速化される。そして、読み出したデータに基づき処理をする場合にも、時系列で前後関係が正しいので、正常な制御等が行える。
【0031】
この発明の一実施態様においては、通信手段からコントローラへのデータ伝送を、共有メモリに対する読み出しと書き込みを行うことで実行するデータ伝送方法において、前記複数の一時記憶エリアが、前記共有メモリにより構成され、前記単一のメモリは、前記コントローラに備えるようにすることができる。
【0032】
この方法を実施するために適した通信装置としては、受信データを取得する手段と、その取得した受信データを複数の一時記憶エリアのいずれかに対して順次書き込む受信データ書き込み手段とを備え、その受信データ書き込み手段は、前記受信データの一部に異常があった場合に、前回格納した一時記憶エリアから、前記異常のあったデータについての正常受信データを読み出し、その読み出した正常受信データを今回受信したデータとして、正常に受信した受信データとともに前記一時記憶エリアに格納する機能を備えて構成することを前提とする。そして、係る前提の通信装置において、コントローラに対して共有メモリを介してデータ伝送を行う通信装置において、前記複数の一時記憶エリアが、前記共有メモリにより構成することである。
【0033】
また、上記した伝送方法により実現されるデータ伝送システムの一例としては、通信手段と、コントローラと、それら通信手段とコントローラの間で伝送するデータを一時的に格納する共有メモリを備えたデータ伝送システムにおいて、前記共有メモリは、前記通信手段が取得した受信データを書き込むための複数の受信データ記憶エリアを備え、前記通信手段は、最新の受信データが格納されていない受信データ記憶エリアに対して受信データを書き込む処理を行う受信データ書き込み手段を備え、前記受信データ書き込み手段は、受信データの一部に異常があった場合に、前記最新の受信データが格納された受信データ記憶エリアから前記異常のあったデータについての正常受信データを読み出し、その読み出した正常受信データを今回受信したデータとして、正常に受信した受信データとともに前記書き込む処理を行う機能を持ち、前記コントローラは、最新の受信データが書き込まれた受信データ記憶エリアに格納された受信データを読み出す受信データ読み出し手段を備えることである。
【0034】
上記した各発明によれば、コントローラは、共有メモリの複数の一時記憶エリアに対し、最新の受信データが格納された一時記憶エリアに記憶されたデータを一括して読み込むことになる。
【0035】
また、別の実施態様としては、通信手段からコントローラへのデータ伝送を、共有メモリに対する読み出しと書き込みを行うことで実行するデータ伝送方法において、前記複数の一時記憶エリアが、前記通信手段が持つ内部メモリにより構成され、前記単一のメモリは、前記共有メモリとすることができる。
【0036】
この方法を実施するために適した通信装置としては、上記したのと同様の前提を備えた通信装置において、前記複数の一時記憶エリアが、前記通信装置が持つ内部メモリにより構成され、最新の受信データが書き込まれた受信データ記憶エリアに格納された受信データを前記共有メモリに転送する転送手段を備えることである。
【0037】
そして、上記した伝送方法により実現されるデータ伝送システムの一例としては、通信手段と、コントローラと、それら通信手段とコントローラの間で伝送するデータを一時的に格納する共有メモリを備えたデータ伝送システムにおいて、前記通信手段は、内部メモリに受信データを格納する複数の一時記憶エリアを持ち、最新の受信データが格納されていない前記一時記憶エリアに対して受信データを書き込む処理を行う受信データ書き込み手段と、最新の受信データが書き込まれた受信データ記憶エリアに格納された受信データを前記共有メモリに転送する転送手段を備え、前記受信データ書き込み手段は、受信データの一部に異常があった場合に、前記最新の受信データが格納された受信データ記憶エリアから前記異常のあったデータについての正常受信データを読み出し、その読み出した正常受信データを今回受信したデータとして、正常に受信した受信データとともに前記書き込む処理を行う機能を持ち、前記コントローラは、前記共有メモリに格納された受信データを読み出す受信データ読み出し手段を備えて構成することである。
【0038】
上記した各発明によれば、コントローラが読み出し対象となる共有メモリ内の受信データが書き込まれたエリアは1つであるので、コントローラは、所定のタイミングで共有メモリに格納されたデータを一括して読み出せばよい。なお、共有メモリの記憶エリアが1とすると、通信手段(通信装置)側とコントローラ側では、排他的にアクセスするような制御を行う必要がある。つまり、通信手段側がデータを書き込んでいる最中はコントローラ側ではデータの読み出しができず、コントローラ側でデータの読み出しが行われているときは通信手段はデータの書き込みができない。よって、待ち時間が多くなるので、リアルタイムでの迅速なデータ伝送を図るためには、共有メモリ内に複数の一時記憶エリアを設けることである。
【0039】
なお、共有メモリは、通信装置に実装してもよいし、コントローラ側に実装してもよい。但し、通信装置側に実装したほうが、データの書き込み側である通信装置にとっては制御が容易になるので好ましい。
【0040】
この発明の以上説明した構成要素は可能な限り組み合わせることができる。この発明による通信装置並びにコントローラを構成する各手段を専用のハードウエア回路によって実現することができるし、プログラムされたコンピュータによって実現することもできる。この発明によるデータ伝送方法は、コンピュータを動作させるソフトウエア(プログラム)によっても、専用のハードウエア回路によっても実現できる。
【0041】
【発明の実施の形態】
図7は、本発明が適用される機器1を含むネットワークシステムを示している。すなわち、マスタとしての機器1とスレーブとしての複数の機器1′がLANその他のネットワーク(通信回線)2に接続される。このネットワークシステムでは、マスタである機器1によりシステム全体の通信がコントロールされる。そして、1回の通信サイクルで、4つの機器1′(A,B,C,D)から順にデータを取得するようになっている。
【0042】
機器1の内部構造を見ると、図8に示すように、ネットワーク2に接続され、実際にデータの送受を行う通信機器10と、その機器1の本来の動作を行うためのコントローラ20とを備えている。そして、コントローラ20は通信機器10を介して自己宛てのデータを取得する。また、コントローラ20が、ネットワーク2を介して他の機器1にデータを送信する場合には、一旦通信機器10にデータを渡し、通信機器10が所定のデータ変換を行った後、目的とする送信先に向けてデータを送信するようになっている。
【0043】
より具体的には、通信機器10は、ネットワーク2に接続される通信チップ11と、所定の動作を行うMPU12とローカルメモリ13とを備えている。通信チップ11は、ネットワーク2を流れる自己宛ての受信データを取得し、必要なデータ部分を抽出し、MPU12に渡したり、MPU12から受け取った送信データに対して、送信先や送信元などの情報をヘッダに付加するとともに、所定のプロトコル変換を行い、ネットワーク2に向けて送信する機能を有する。この通信チップ11自体は従来と同様であるので、その詳細な説明を省略する。
【0044】
ローカルメモリ13には、MPU12が動作するためのプログラムが格納されており、そのプログラムに従ってMPU12は、共有メモリ30に対してデータの読み出し(リード)/書き込み(ライト)を行ったり、通信チップ11との間でデータの送受を行うようになっている。
【0045】
つまり、共有メモリ30に格納されたデータ(コントローラ20が書き込んだデータ)を所定のタイミングで読み出すとともに、通信チップ11に渡す機能と、ネットワーク2を介して通信チップ11が取得した自己宛てのデータを受け取るとともに、所定のタイミングで共有メモリ30に書き込む機能を持つ。すなわち、通常であれば、通信チップ11から受け取ったデータは一旦ローカルメモリ13に格納するようにしていたが、本形態では、直接共有メモリ30に書き込むようにしている。これにより、通信機器10内でのデータ転送回数が削減され、高速処理が行える。また、ローカルメモリ13にとっても、従来は受信したデータを一時的に保存するためのメモリ領域を確保していたが、係るデータ保存のためのメモリ領域がなくなる。もちろん、従来と同様に一旦ローカルメモリ13に格納するようにしても良い。
【0046】
一方、コントローラ20は、MPU21とローカルメモリ22を備えている。MPU21は、機器1自体の本来の動作を行う機能と、共有メモリ30に対してデータの読み出し(リード)/書き込み(ライト)を行う機能を持っている。ローカルメモリ22は、MPU21が動作するためのプログラムが格納されていたり、MPU21の動作のためのワークメモリとして機能する。なお、共有メモリ30に対するデータの読み書き以外のMPU21の処理機能や、ローカルメモリ22は従来と同様であるので、その詳細な説明を省略する。
【0047】
共有メモリ30は、図9に示すように、通信機器10が取得した受信データを格納する領域として2つのINデータエリア31a,31bを用意する。さらに、I/Oセマフォ領域として、INカレント指定エリア32を有している。通信機器10のMPU12は、後述するアルゴリズムに従って2つのINデータエリア31a,31bに対し、交互に受信したデータを書き込む。そして、INカレント指定エリア32は、書き込みが完了した最新のINデータエリア31a,31bを特定する情報を格納する。これにより、コントローラ20側では、このINカレント指定エリア32を見ることにより、最新のI/Oデータが格納されているINデータエリアを知ることができる。
【0048】
同様に、コントローラ20から通信機器10に渡すデータを一時的に保有するOUTデータエリア35a,35bも2つ確保する。そして、書き込みが完了した最新のOUTデータエリアを特定するOUTカレント指定エリア36を備えている。コントローラ20のMPU21は、2つのOUTデータエリアに対して交互に送信データを書き込む。そして、OUTカレント指定エリア36は、書き込みが完了した最新のOUTデータエリア35a,35bを特定する情報を格納する。これにより、通信機器10側では、このOUTカレント指定エリア36を見ることにより、最新のI/Oデータが格納されているOUTデータエリアを確認し、最新の送信データを読み出す。
【0049】
次に、通信機器10のMPU12について詳述する。本発明の要部となる共有メモリ30に対するデータの読み書き制御を行うための処理部としては、図10に示すように、共有メモリ30のINデータエリア31a,31bに対してデータ(受信データ)を格納するINデータ書き込み部12aと、共有メモリ30のOUTデータエリア35a,35bに格納されたデータ(送信データ)を読み出すとともに、その読み出した送信データを通信チップ11に送るOUTデータ読み出し部12bを有する。
【0050】
同様に、コントローラ20におけるMPU21は、図11に示すように、本発明の要部となる共有メモリ30に対するデータの読み書き制御を行うための処理部としては、共有メモリ30のINデータエリア31a,31bに格納されたデータ(受信データ)を読み出すとともに、ローカルメモリ22に格納するINデータ読み出し部21aと、共有メモリ30のOUTデータエリア35a,35bに対してデータ(送信データ)を格納するOUTデータ書き込み部21bとを有する。もちろん、MPU21には、コントローラ20本来の機能を実行する処理部21dも備えている。
【0051】
次に、上記したMPUの各処理部の機能を説明する。本発明では、異常データの受信があった場合でも時系列で正しいデータの転送が行えるようにするものであるので、受信データの転送を主に説明する。まず、前提として、図12に示すように、1回の通信サイクルで機器A,機器B,機器C,機器Dからデータを順に取得し、4つの機器についての受信データを共有メモリの1つのINデータエリアに格納するようにしている。そして、次の通信サイクルでは、同様にして取得した4つの機器からの受信データを別のINデータエリアに格納するようにしている。このように、4つの機器からの受信データを、INデータ第1,第2エリア31a,31bに対して交互に格納するようなっている。
【0052】
具体例をあげて説明すると、PLCは、I/Oのチャンネル接点のひとつひとつが、1つのデータとなり、例えば図12に示す場合、A〜Dが4チャンネル分のデータとなる。そして、機器1がPLCとすると、機器1′がスイッチ,センサ(或いはそれらをネットワークに接続するリモートI/Oターミナル)となり、係るスイッチ,センサの一系統ごとの接点4つ分がA〜Dそれぞれのデータとなる。そして、この例では、この4チャンネル分のデータを(あるタイミングで)まとめて機器1内の1つのメモリエリアに格納する。もちろん、データの送受は、上記したように1チャンネル分が1データのものに限らないのは言うまでもない。
【0053】
そして、係る処理を行う通信機器10のINデータ書き込み部12aの機能は、図13〜図16に示すフローチャートのようになっている。すなわち、まず、電源が投入されたならば、初期設定として、INカレント指定エリア32に「不定」を特定するコード情報(例えば「00」)を格納するとともに、今回受信データを書き込むカレントエリアとして、INデータ第1エリア31aを設定する(ST1)。そして、INデータ第1,第2エリア31a,31bに「0000」を格納する(ST2)。本形態では、各機器1′からの受信データは「1」/「0」であり、1回のサイクルで送られてくる受信データは、4つの機器1′と既知である。そこで、各INデータエリアは、それぞれ4ビット確保され、先頭から順に「A,B,C,D」の受信データを格納する領域とする。つまり、上記した「0000」を格納するとは、全ての機器1′からの受信データが「0」であることを意味する。
【0054】
次に、機器Aからのデータを受信したならば、正常受信か異常受信かを判断する(ST3)。ここで、異常とは、回線異常の場合もあれば、特定の機器がダウンしたりして、その特定の機器からの正常なデータが受信できない状態を示す。そして、そのままでは、データの更新できず、前回そのINデータエリアに格納した時のデータが残ってしまうことになる。
【0055】
そして、正常受信の場合には、取得した機器Aからの受信データをカレントエリアに設定されたINデータ第1エリア31aの所定領域(先頭のビット)に書き込む(ST4)。一方、機器Aから受信データが異常受信の場合には、INデータ第2エリア31bに格納された機器Aのデータを、INデータ第1エリア31aの機器Aの記憶領域にコピーする(ST5)。
【0056】
このように、正常受信か否かを判断し、正常であれば受信データを該当する領域に書き込み、異常受信の場合には、INデータ第2エリア31bに格納された対応する機器についてのデータをコピーする処理を、機器B(ST6〜ST8),機器C(ST9〜ST11),機器D(ST12〜ST14)について順番に実行する。そして、1回のサイクルの終わりである機器Dについての処理が終了したならば、INカレント指定エリア32に、受信データの書き込みが完了したINデータ第1エリアを特定するコード情報(例えば「01」)を格納するとともに、次の通信サイクルでの受信データを書き込むカレントエリアをINデータ第2エリア31bに変更する(ST15)。
【0057】
そして、次の通信サイクルが開始したならば、機器Aから順に受信データを取得する。そこで、まず、機器Aからの受信が正常であったか否かを判断し(ST16)、正常の場合には、現在のカレントエリアであるINデータ第2エリア31bにおける機器Aのための領域に受信データを書き込む(ST17)。また、異常データの場合には、INデータ第1エリア31aに格納された機器AについてのデータをINデータ第2エリア31bの所定領域にコピーする(ST18)。これにより、異常データがあった場合には、INデータ第2エリア31bに格納されたデータがそのまま残るのではなく、前回の通信サイクルで書き込まれたINデータ第1エリア31aのデータをコピーすることにより、正常なデータの中で最も最新のデータが格納される。よって、機器Aについての受信データで、時系列で過去に溯った古いデータがコントローラ20側に送られるのが阻止される。
【0058】
このように、正常受信か否かを判断し、正常であれば受信データを該当する領域に書き込み、異常受信の場合には、INデータ第2エリア31bに格納された対応する機器についてのデータをコピーする処理を、機器B(ST19〜ST21),機器C(ST22〜ST24),機器D(ST25〜ST27)について順番に実行する。そして、1回のサイクルの終わりである機器Dについての処理が終了したならば、INカレント指定エリア32に、受信データの書き込みが完了したならば、INデータ第2エリア31bを特定するコード情報(例えば「10」)を格納するとともに、次の通信サイクルでの受信データを書き込むカレントエリアをINデータ第1エリア31aに変更する(ST28)。
【0059】
以後、上記したステップ3からステップ28までを繰り返し実行することにより、INデータ第1エリア31aとINデータ第2エリア31bに、通信サイクルごとに交互に受信データが書き込まれる。そして、異常があった場合には、前回通信サイクル時の処理で書き込んだデータがコピーされるので、INカレント指定エリア32に格納された最新に書き込みされたエリアには、各機器にとって最新の正常データが格納される。
【0060】
一方、コントローラ20のINデータ読み出し部21aでは、図17に示すように、電源ONとともに、読み出し対象のエリアを特定する(ST31)。具体的には、INカレント指定エリア32をアクセスし、そこに格納されたコードで特定されるINデータエリアに決定する。そして、その決定したINデータエリアに格納された受信データを一括してコピーしてローカルメモリ22に格納し、読み出し処理を行う(ST32)。さらに、受信ステータスを一緒にコピーする(ST33)。
【0061】
このようにすると、INカレント指定エリアに格納されたデータエリアは、各機器についての最新のデータが格納されていることが保証されているので、データ更新がされても、ローカルメモリ22には、常に各機器にとって最新のデータが格納されることになる。
【0062】
なお、送信データは、コントローラ20のOUTデータ書き込み部21bが、2つのOUTデータエリアの何れかに送信データを書き込み、書き込みが完了すると、その書き込んだエリアを特定するための情報をOUTカレント指定エリアに格納する。
【0063】
そして、通信機器10のOUTデータ読み込み部12bでは、電源ONとともに、OUTカレント指定エリア36をアクセスし、そこに格納されたコードで特定されるOUTデータエリアから送信データを一括してコピーし、通信チップ11に渡すことになる。なお、送信データにおいても一部データ異常が想定される場合には、上記した受信データにおける各処理を実行すると良い。
【0064】
なお、実施の形態では、データの読み出しは、カレント指定エリアをアクセスし、最新のデータが格納された領域を調べ、そこから読み出すようにしたが、本発明はこれに限ることはなく、例えば、データを書き込んだ側が、書き込み完了通知を出すようにし、データ読み出し側(コントローラ20のINデータ読み出し部21a)では、係る完了通知を受けてからデータの一括受信をするようにしても良い(図18参照)。読み出し可能エリアの初期エリアを確認する(ST41)。本形態では、最初にINデータ第1エリア31aに受信データを格納するようにしているので、初期エリアはINデータ第1エリア31aとなる。
【0065】
この状態で通信機器10側から送られてくる受信完了通知の割り込みを待つ(ST42)。受信完了通知の割り込みがあったならば、読み出し可能エリアに対してアクセスし、そこに格納された受信データを一括コピーで読み出す(ST43)。さらに、通信装置10は、INデータエリアとは別のメモリエリアに、受信ステータス、つまり、正常受信か異常受信かを判別する情報を格納しておくので、かかる受信ステータスも一括コピーする(ST44)。
【0066】
すなわち、仮に受信異常があったとしても、その機器にとっての正常データの中での最新データであることが保障され、時間的に前後したデータ、つまり古いデータが後にくることがなくなる。その結果、コントローラ20側で受信データを取得する際に、受信ステータスを利用して個々のデータについて有効/無効の判断を行う必要がなく、本形態のように一括コピーができる。その結果、読み込みに要する処理時間が短時間ですむ。さらに、受信ステータスもあわせて取得するようにしたので、コントローラ20側では、本来の通信タイミングで取得した受信データか否かを知ることができる。
【0067】
このようにデータの一括コピーを行ったならば、読み出し可能エリアの切り替えを行い(ST45)、ステップ42に戻り次の受信完了割り込みを待つ。なお、本形態ではエリアは2つであるので、現在受信データを読み出したエリアでない方を、読み出し可能エリアに設定する。以後、上記した処理を繰り返し実行することにより、INデータ第1エリア31aとINデータ第2エリア31bから交互に受信データを読み出すことができる。
【0068】
上記した実施の形態の効果を具体例をあげつつ説明する。1回目から4回目までの通信サイクルにおける受信データが図4に示すようになっていたとすると、INデータ第1エリア31aとINデータ第2エリア31bに格納されるデータの推移は、図19に示すようになる。すなわち、3回目の通信サイクルでは第1エリアに格納するとともにB,Dの2つのデータが異常であったため、それぞれ第2エリアの2回目の通信サイクルで格納されたデータをコピーする。よって、機器Bについてのデータは1となり、機器Dについてのデータは0となる。同様に、4回目の通信サイクルでは受信異常のあった機器Bからのデータは、3回目の通信サイクルで第1エリアに格納したデータをコピーし、「1」が格納される。
【0069】
そして、コントローラ20が読み込み、ローカルメモリ22に格納されるデータの推移は、第1エリアと第2エリアを交互に読み出すので、図20に示すようになる。図から明らかなように、過去の通信サイクルで受信したデータが読み出されることがなく、機器単位で時系列に正しいデータが格納されることが確認できる。
【0070】
上記した実施の形態では、共有メモリ30に複数の記憶エリアを設けた(2重化した)ものに適用した例を説明したが、本発明はこれに限ることはなく、例えば、通信機器10が持つローカルメモリ13内に複数の記憶エリアを設定し、共有メモリ30は従来どおりIN/OUTに対しそれぞれ1つずつの記憶エリアを設けるようにしたものにも適用できる。
【0071】
図21は、係る実施の形態の要部を示している。この図では、受信データを取得し、共有メモリ30内の単一の記憶エリアに格納するために必要な機能ブロックを示している。もちろん、この通信装置10にも、共有メモリ30に格納された送信データを読み出すとともに、送信する機能を備えている。
【0072】
同図に示すように、本発明との関係で言えば、通信装置10は、受信データを取得する手段である通信チップ11と、MPU12と、内部メモリたるローカルメモリ13を備え、このローカルメモリ13内に、第1記憶エリア13aと第2記憶エリア13bを設けている。そして、MPU12には、通信チップ11から送られてきた受信データを、第1,第2記憶エリア13a,13bの何れかに書き込むINデータ書き込み部12a′と、最新の受信データが書き込まれた記憶エリアに格納された受信データを一括コピーにより読み出して共有メモリ30に転送する転送部12cとを備えている。
【0073】
そして、INデータ書き込み部12a′の機能は、第1の実施の形態におけるINデータ書き込み部12aと基本的に同じである。すなわち、データの格納先が、共有メモリ30かローカルメモリ13かの相違があるものの、何れのメモリにも2つの記憶エリアがあり、格納先を交互に入れ替える。そして、受信異常があった場合には、前回格納した記憶エリアから正常な受信データを読み出して、今回格納する記憶エリアに正常なデータとして書き込む。従って、具体的な処理機能としては、図13から図16に示すフローチャートと同様である。これにより、書き込みが完了した記憶エリアには、各機器にとっての正常受信された中で最新のデータが記憶保持される。
【0074】
また、転送部12cの機能は、第1の実施の形態におけるコントローラ20のINデータ読み出し部21aの機能と同様である。つまり、ローカルメモリ13の第1,第2記憶エリア13a,13bから交互にデータを取得し、共有メモリ30に上書き更新する。そして、転送部12cは、INデータ書き込み部12a′と同一のMPU12内に実現されているので、どのタイミングで受信データの書き込みが完了したかがわかるので、書き込み完了後、その書き込んだエリアからデータを読み出し、共有メモリに書き込むことになる。処理機能としては、例えば、図18に示すフローチャートと同様にすることができ、「コピー」処理が、所定の記憶エリアから共有メモリ30への一括データ転送を実行することになる。
【0075】
また、上記した実施の形態では、共有メモリ30や、ローカルメモリ13に2つの記憶エリアを持つ2重化について説明したが、転送のためのエリアを3つ以上持つものにも適用できる。特に、上記した第1の実施の形態のように共有メモリ30に2つの記憶エリアを設けた場合、共有データへの書き込みと、読み出しのタイミングが合うと、通信装置10がINデータ第1エリア31aへ書き込んでいる時には、コントローラ20はINデータ第2エリア31bから読み出し、通信装置10がINデータ第2エリア31bへ書き込んでいる時には、コントローラ20はINデータ第1エリア31aから読み出すようにすると問題がないが、通信装置10とコントローラ20が非同期とすると、同一のエリアに対する読み出しと書き込みのタイミングが合ってしまうおそれがある。係る場合には、排他制御をすることになり、一方を待たすことになる。
【0076】
係る待ち時間を解消するために、例えば、共有メモリ30に、図22に示すように、通信機器10が取得した受信データを格納する領域として3つのINデータエリア31a〜31cを用意する。さらに、I/Oセマフォ領域として、INカレント指定エリア32とINリードロックエリア33を設けるようにすることができる。
【0077】
つまり、通信機器10のMPU12は、3つのINデータエリア31a〜31cのいずれかに受信したデータを書き込む。そして、INカレント指定エリア32は、書き込みが完了した最新のINデータエリア31a〜31c(A〜C)を特定する情報を格納する。これにより、コントローラ20側では、このINカレント指定エリア32を見ることにより、最新のI/Oデータが格納されているINデータエリアを知ることができる。さらに、後述するように、INカレント指定エリア32で指定されているエリアにはデータの書き込みは行われない。従って、コントローラ20は、自己の都合の良いタイミングで、指定されたエリアに格納された受信データを読み出すことができる。
【0078】
また、INリードロックエリア33は、コントローラ20側が現在受信データを読み出しているINデータエリア(A〜C)を特定する情報を格納する。これにより、通信機器10側では、このINリードロックエリア33を見ることにより、コントローラ20側が現在アクセス中のINデータエリアを知ることができる。つまり、少なくともこのINリードロックエリア33で指定されたINデータエリアについては、データ更新ができない領域となる。
【0079】
なお、このI/Oセマフォ領域として、各エリアに登録する情報の具体例を示すと、エリアAを特定する場合は“01h”,エリアBを特定する場合は“02h”,エリアCを特定する場合は“04h”を書き込み、特定しない(初期化する)場合は“00h”を書き込むことになる。
【0080】
このようにすると、取得した受信データの書き込み対象のINデータエリア(占有エリア)は、まずINリードロックエリア33を読み出し、現在コントローラ20がINデータ(受信データ)を読み出し中のINデータエリア(A〜C)31a〜31cを認識する。そして、空いているINデータエリアを検出し、占有エリアに決定することができる。具体的には、最新のINデータが格納されているINデータエリア、つまり、前回書き込んだエリアはわかっているので、係る最新のINデータが書き込まれておらず、しかも、読み出し中でないINデータエリアを特定する。なお、該当するINデータエリアが複数存在する場合には、何れか1つのINデータエリアを選択する。この選択の基準は、ランダムでも良いし、予め各INデータエリアに優先順位を付与しておき、優先順位の高いものを選択するなど各種の方法が採れる。この決定アルゴリズムによれば、書き込み対象のデータエリアは、コントローラが読み出しておらず、しかも、最新のデータが書き込まれてもいないので、通信機器10側のタイミングで書き込んでも相手側に影響を与えない。これにより、通信機器10とコントローラ20は、互いに任意のタイミングでデータの読み書きをすることができる。
【0081】
同様に、コントローラ20から通信機器10に渡すデータを一時的に保有するOUTデータエリア35a〜35cも3つ確保する。そして、書き込みが完了した最新のOUTデータエリア(A〜C)を特定するOUTカレント指定エリア36と、通信機器10側が現在送信データを読み出しているOUTデータエリア(A〜C)35a〜35cを特定する情報を格納するOUTリードロックエリア37を備えている。
【0082】
これにより、コントローラ20のMPU21は、OUTリードロックエリア37を見て格納可能なOUTデータエリアを決定し、そこに送信データを登録した後、OUTカレント指定エリア36に、今送信データを格納したエリアを特定する情報を記憶する。そして、通信機器10では、OUTカレント指定エリア36を見て、最新の送信データが格納されたOUTデータエリアを確認し、最新の送信データを読み出す。
【0083】
さらに、I/Oセマフォ領域のアクセス権を排他的に与えるためにアクセスフラグ38を設定している。そして、通信機器10側とコントローラ20側のいずれからも、書き込み/読み出しが可能なものを用いる。つまり、IN/OUTカレント指定エリアやIN/OUTリードロックエリアに対して、通信機器10とコントローラ20の両方から同時にアクセスできないようにするため、通信機器10並びにコントローラ20は、アクセス権を確保した後でデータの更新を行うようにしている。
【0084】
そして、この3重化された記憶エリアを用いたシステムにおける通信機器10のINデータ書き込み部の機能は、図23,図24に示すフローチャートのようになる。
【0085】
すなわち、電源が投入されたならば、カレント指定エリア32に「不定」を特定するコード情報(例えば「00」)を格納するとともに、今回受信データを書き込むカレントエリア(占有エリア)を決定する(ST51)。この決定は、上記したルールに従い、コントローラ20が読み込み中でなく、最新の受信データが書き込まれていないエリアを決定する。そして、すべてのINデータエリア31a〜31cに「0000」を格納する(ST52)。本形態では、各機器1′からの受信データは「1」/「0」であり、1回のサイクルで送られてくる受信データは、4つの機器1′と既知である。そこで、各INデータエリアは、それぞれ4ビット確保され、先頭から順に「A,B,C,D」の受信データを格納する領域とする。つまり、上記した「0000」を格納するとは、全ての機器1′からの受信データが「0」であることを意味する。
【0086】
次に、機器Aからのデータを受信したならば、正常受信か異常受信かを判断する(ST53)。そして、正常受信の場合には、取得した機器Aからの受信データをカレントエリアの所定領域(先頭のビット)に書き込む(ST54)。一方、機器Aから受信データが異常受信の場合には、前回データを書き込んだエリア、つまり、INカレント指定エリア32に格納された情報により特定されるエリアに格納された機器Aのデータを、カレントエリアの機器Aの記憶領域にコピーする(ST55)。
【0087】
このように、正常受信か否かを判断し、正常であれば受信データをカレントエリアの該当する領域に書き込み、異常受信の場合には、前回格納したINデータエリアに格納された対応する機器についてのデータをコピーする処理を、機器B(ST56〜ST58),機器C(ST59〜ST61),機器D(ST62〜ST64)について順番に実行する。そして、1回のサイクルの終わりである機器Dについての処理が終了したならば、INカレント指定エリア32に、受信データの書き込みが完了したINデータエリア(現在のカレントエリア)を特定するコード情報を格納する。さらに、次の通信サイクルの開始に先立ち受信データを書き込むカレントエリアを決定する(ST65)。そして、ステップ53に戻り、次の通信サイクルで受信した機器Aからのデータを取得し、正常であればその受信データをカレントエリアに格納し、異常の場合には、前回格納した機器Aについての正常なデータをカレントエリアの該当領域に格納する。以後、上記処理を繰り返すことにより、カレントエリアには、各機器にとっての正常受信データの最新値が記憶される。よって、ある機器についての受信データで、時系列で過去にさかのぼった古いデータがコントローラ20側に送られるのが阻止される。
【0088】
一方コントローラ20のINデータ読み出し部では、図17に示すフローチャートを実行することにより、最新のデータを順次所定のタイミングで取得することができる。ここで、ステップ31における読み出し対象エリア特定処理が、INカレント指定エリア32に格納された情報により最新の受信データが記憶されたエリアを特定することである。
【0089】
上記した実施の形態における通信機器10と、コントローラ20は、例えば、1つの装置に組み込まれていても良いし、別々に設けられた装置を組み合わせることにより構成するようにしても良い。そして、特に別々に設けた装置を用いる場合には、共有メモリ30は、通信機器10側とコントローラ20側のいずれに設置しても良い。
【0090】
一例を示すと、1つの装置としては、PLCや、図25に示すように、制御系であるPLC40と情報処理系である上位コンピュータ42との間に配置された中継装置43などがある。この中継装置は、PLC40と上位コンピュータ42との間の情報の送受を行うもので、下位のPLC40に対する通信を行う第1通信ユニット43aと、上位コンピュータ42に対する通信を行う第2通信ユニット43bと、各種の処理を行うMPU43cを備えている。MPU43cの機能を種々のものにしたことにより、中継装置43は情報を伝送するためのゲートウェイとして機能したり、上位コンピュータ42の変わりに、情報を収集する情報収集装置として機能したりする。この場合において、例えば第1通信ユニット43aが通信機器となり、MPU43cがコントローラとなる。
【0091】
一方別途形成したものとしては、例えば各機能毎にユニット化したものを組み合わせてPLCを構築するタイプがあるが、係る場合における通信ユニット(通信機器10)とCPUユニット(コントローラ20)がある。
【0092】
さらにまた、別の利用態様としては、例えば図26に示すように、パソコン45に通信ボード46を組み込んだ場合がある。すなわち、拡張ボードとしての通信ボード46は、例えばパソコン45の拡張バス48に接続され、その拡張バス48を介してパソコン本体のMPU47に連携される。具体的なデータの送受は、拡張バス用マスタ47aと拡張バス用スレーブ46cにより管理される。また、通信ボード46は、ネットワーク(通信回線)2に接続可能となっている。
【0093】
係る場合に、ネットワーク2を介して送られてきた受信データをMPU46aが受け取り、RAM46bに書き込む。そして、そのRAM46bに書き込まれた受信データがMPU47に読み込まれる。この場合に、通信ボード46が通信機器10となり、MPU47がコントローラ20側となり、RAM46bが共有メモリ30となるように構成することにより、本発明による効率的なデータの転送が行える。
【0094】
図示の場合、通信ボード46を組み込んだパソコン全体を見ると、通信機器10,コントローラ20並びに共有メモリ30を1つの装置に実装したととらえることができる。また、通信ボード46に着目すると、通信機器10と共有メモリ30を備えた装置を構成することになる。この場合に、MPU47は、係る通信機器10と共有メモリ30を備えた装置に対応可能なコントローラとなる。
【0095】
【発明の効果】
以上のように、この発明では、複数の一時記憶エリアを用い、その複数の記憶エリアの任意の記憶エリアに受信データを書き込み、その書き込み終了後に最新の受信データが書き込まれた記憶エリアを一括して読み込むようなデータ伝送を行うに際し、受信異常があった場合には、前回正常なデータを格納した他の一時記憶エリアから対応する正常なデータを読み出し、今回格納する一時記憶エリアに書き込むようにしたため、書き込み完了直後の一時記憶エリアには、時系列で古いデータが記憶されるようなことがなく、常に正常に受信されたデータの中で最新のデータが記憶される。よって、前後が逆になるような古いデータを読み込むことがない。
【図面の簡単な説明】
【図1】従来例を示す図である。
【図2】従来の機器の内部構造を示す図である。
【図3】従来の機器のメモリ,データ転送に着目した内部構造を示す図である。
【図4】各通信サイクルで受信したデータの一例を示す図である。
【図5】図4に示した受信データ例に基づく共有メモリに格納されるデータの推移を示す図である。
【図6】共有メモリから取得し、コントローラのローカルメモリに格納されたデータの推移を示す図である。
【図7】本発明が適用される機器を含むネットワークシステムの一例を示す図である。
【図8】機器の内部構造を示す図である。
【図9】共有メモリの内部構造を示す図である。
【図10】通信機器の内部構造を示す図である。
【図11】コントローラの内部構造を示す図である。
【図12】アクセス権獲得部の機能を示すフローチャートである。
【図13】INデータ書き込み部の機能を示すフローチャートの一部である。
【図14】INデータ書き込み部の機能を示すフローチャートの一部である。
【図15】INデータ書き込み部の機能を示すフローチャートの一部である。
【図16】INデータ書き込み部の機能を示すフローチャートの一部である。
【図17】INデータ読み出し部の機能を示すフローチャートである。
【図18】INデータ読み出し部の機能を示すフローチャートである。
【図19】図4に示した受信データ例に基づく共有メモリに格納されるデータの推移を示す図である。
【図20】共有メモリから取得し、コントローラのローカルメモリに格納されたデータの推移を示す図である。
【図21】本発明の第2の実施の形態の要部である通信機器10の内部構造を示す図である。
【図22】本発明の変形例における共有メモリの内部構造を示す図である。
【図23】変形例におけるINデータ書き込み部の機能を示すフローチャートの一部である。
【図24】変形例におけるINデータ書き込み部の機能を示すフローチャートの一部である。
【図25】本発明の適用例を示す図である。
【図26】本発明の適用例を示す図である。
【符号の説明】
1 機器
2 ネットワーク
10 通信機器
11 通信チップ
12 MPU
12a,12a′ INデータ書き込み部(受信データ書き込み手段)
12b OUTデータ読み出し部
12c 転送部
13 ローカルメモリ
13a 第1記憶エリア
13b 第2記憶エリア
20 コントローラ
21 MPU
21a INデータ読み出し部(受信データ読み出し手段)
21b OUTデータ書き込み部
22 ローカルメモリ
30 共有メモリ
31a〜31c INデータエリア(一時記憶エリア)
32 INカレント指定エリア
33 INリードロックエリア
35a〜35c OUTデータエリア
36 OUTカレント指定エリア
37 OUTリードロックエリア
38 アクセスフラグ

Claims (7)

  1. 通信手段が受信した受信データを、複数の一時記憶エリアのいずれかに書き込み、
    前記一時記憶エリアに対して格納された前記受信データを、時系列に沿って順次読み出して単一のメモリに格納するデータ伝送方法であって、
    前記通信手段側で受信データの一部に異常があったか否かを判断し、
    異常があった場合には、前回格納した一時記憶エリアから、前記異常のあったデータについての正常受信データを読み出し、その読み出した正常受信データを今回受信したデータとして、正常に受信した受信データとともに前記一時記憶エリアに格納するようにしたことを特徴とするデータ伝送方法。
  2. 受信データを取得する手段と、
    その取得した受信データを複数の一時記憶エリアのいずれかに対して順次書き込む受信データ書き込み手段とを備え、
    その受信データ書き込み手段は、前記受信データの一部に異常があった場合に、前回格納した一時記憶エリアから、前記異常のあったデータについての正常受信データを読み出し、その読み出した正常受信データを今回受信したデータとして、正常に受信した受信データとともに前記一時記憶エリアに格納する機能を備えたことを特徴とする通信装置。
  3. コントローラに対して共有メモリを介してデータ伝送を行う通信装置において、
    前記複数の一時記憶エリアが、前記共有メモリにより構成されていることを特徴とする請求項2に記載の通信装置。
  4. コントローラに対して共有メモリを介してデータ伝送を行う通信装置において、
    前記複数の一時記憶エリアが、前記通信装置が持つ内部メモリにより構成され、
    最新の受信データが書き込まれた受信データ記憶エリアに格納された受信データを前記共有メモリに転送する転送手段を備えたことを特徴とする請求項2に記載の通信装置。
  5. 前記共有メモリは、前記通信装置に実装されていることを特徴とする請求項3または4に記載の通信装置。
  6. 通信手段と、コントローラと、それら通信手段とコントローラの間で伝送するデータを一時的に格納する共有メモリを備えたデータ伝送システムにおいて、
    前記共有メモリは、前記通信手段が取得した受信データを書き込むための複数の受信データ記憶エリアを備え、
    前記通信手段は、最新の受信データが格納されていない受信データ記憶エリアに対して受信データを書き込む処理を行う受信データ書き込み手段を備え、
    前記受信データ書き込み手段は、受信データの一部に異常があった場合に、前記最新の受信データが格納された受信データ記憶エリアから前記異常のあったデータについての正常受信データを読み出し、その読み出した正常受信データを今回受信したデータとして、正常に受信した受信データとともに前記書き込む処理を行う機能を持ち、
    前記コントローラは、最新の受信データが書き込まれた受信データ記憶エリアに格納された受信データを読み出す受信データ読み出し手段を備えたことを特徴とするデータ伝送システム。
  7. 通信手段と、コントローラと、それら通信手段とコントローラの間で伝送するデータを一時的に格納する共有メモリを備えたデータ伝送システムにおいて、
    前記通信手段は、内部メモリに受信データを格納する複数の一時記憶エリアを持ち、
    最新の受信データが格納されていない前記一時記憶エリアに対して受信データを書き込む処理を行う受信データ書き込み手段と、
    最新の受信データが書き込まれた受信データ記憶エリアに格納された受信データを前記共有メモリに転送する転送手段を備え、
    前記受信データ書き込み手段は、受信データの一部に異常があった場合に、前記最新の受信データが格納された受信データ記憶エリアから前記異常のあったデータについての正常受信データを読み出し、その読み出した正常受信データを今回受信したデータとして、正常に受信した受信データとともに前記書き込む処理を行う機能を持ち、
    前記コントローラは、前記共有メモリに格納された受信データを読み出す受信データ読み出し手段を備えたことを特徴とするデータ伝送システム。
JP2000392909A 2000-12-25 2000-12-25 データ伝送方法及びデータ伝送システム並びに通信装置 Expired - Lifetime JP4517263B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2000392909A JP4517263B2 (ja) 2000-12-25 2000-12-25 データ伝送方法及びデータ伝送システム並びに通信装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2000392909A JP4517263B2 (ja) 2000-12-25 2000-12-25 データ伝送方法及びデータ伝送システム並びに通信装置

Publications (2)

Publication Number Publication Date
JP2002199040A JP2002199040A (ja) 2002-07-12
JP4517263B2 true JP4517263B2 (ja) 2010-08-04

Family

ID=18858822

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000392909A Expired - Lifetime JP4517263B2 (ja) 2000-12-25 2000-12-25 データ伝送方法及びデータ伝送システム並びに通信装置

Country Status (1)

Country Link
JP (1) JP4517263B2 (ja)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7143646B2 (ja) * 2018-06-27 2022-09-29 オムロン株式会社 Rfid通信ユニット、rfid通信ユニットの制御方法、およびプログラム
CN116669810B (zh) * 2020-12-28 2024-09-17 西安大医集团股份有限公司 通信连接的监测方法、医疗系统、存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000032066A (ja) * 1998-07-16 2000-01-28 Sony Corp 光ファイバ伝送の瞬断検出装置

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000032066A (ja) * 1998-07-16 2000-01-28 Sony Corp 光ファイバ伝送の瞬断検出装置

Also Published As

Publication number Publication date
JP2002199040A (ja) 2002-07-12

Similar Documents

Publication Publication Date Title
JP3189727B2 (ja) コプロセッサ内蔵パケット型メモリlsi、それを用いたメモリシステム及びそれらの制御方法
JP2004171209A (ja) 共有メモリデータ転送装置
JPH09128330A (ja) 映像表示装置
JP4184614B2 (ja) バスシステム及びその実行順序の調整方法
JP4517263B2 (ja) データ伝送方法及びデータ伝送システム並びに通信装置
CN110169017B (zh) 控制装置以及通信装置
JP2001216279A (ja) リアルタイム・システム用時分割多重メモリーを用いた、複数のプロセッサーのインターフェース及び、同期化及びアービトレーション方法
JP3169856B2 (ja) マルチノード情報処理システム
JP3667585B2 (ja) 分散メモリ型並列計算機及びそのデータ転送終了確認方法
JP3669302B2 (ja) プログラマブルコントローラ
EP0546354B1 (en) Interprocessor communication system and method for multiprocessor circuitry
JP4288137B2 (ja) 表示器システム
JPS61166647A (ja) マイクロプロセツサ装置およびアドレス可能なメモリから情報を読出すためのアクセス方法
JP4119582B2 (ja) 転送制御方法及び情報処理装置
JPH06274463A (ja) データ通信システム
JP2003521033A (ja) マイクロプロセッサシステムを動作する方法および対応するマイクロプロセッサシステム
JP4320622B2 (ja) ノード
JP4123660B2 (ja) プログラマブルコントローラ
JP2002171263A (ja) データ伝送方法及びデータ伝送システム並びに通信装置及びコントローラ
JP2951816B2 (ja) 通信制御方法
JP2000112912A (ja) 分散メモリ型並列計算機におけるリモートメモリに対するテストアンドコピーの処理方式
JP2522412B2 (ja) プログラマブルコントロ―ラと入出力装置の間の通信方法
JP4164270B2 (ja) サーボコントローラ
JP2004046392A (ja) Usbホスト制御回路
JP3265026B2 (ja) 入出力データ交換方式

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20071220

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20100414

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

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

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130528

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

Ref document number: 4517263

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20140528

Year of fee payment: 4

EXPY Cancellation because of completion of term