(57)【特許請求の範囲】
【請求項１】
複数の機器間でデータのサイクリック伝送を行うデータ伝送方法において、
データ毎に異なる第１の識別子、データ、および前記第１の識別子と同一の第２の識別子をこの並び順で所定の記憶領域に書き込んで、データと前記データの前後に付加される第１および第２の識別子とを含むデータフレームを順次に書き換えるステップと、
前記記憶領域に記憶されているデータフレームを前記書き込みの時期に同期しない一定周期で転送するステップと、
転送されたデータフレームを受信し、読み出すステップと、
前記書き込みまたは前記読み出しの時期と前記転送の時期とが重なった場合には、割り込みを発生して、前記転送の間にわたって残りの書き込みまたは読み出しを中断して、前記転送の終了後に書き込みまたは読み出しを再開するステップと、
読み出されたデータフレームに含まれる第１の識別子と第２の識別子とを比較するステップと、
比較の結果、第１の識別子と第２の識別子とが一致しない場合には、読み出されたデータフレームに、今回書き換えられたデータと前回書き換えられたままのデータとが混在すると判断するステップと、を有することを特徴とするデータ伝送方法。
【請求項２】
データフレームは、一括して読み出されることを特徴とする請求項１に記載のデータ伝送方法。
【請求項３】
前記第１および第２の識別子は、複数のデータフレームを相互に区別するために用いられる識別子であることを特徴とする請求項１または２に記載のデータ伝送方法。
【請求項４】
前記第１および第２の識別子は、一意性の保たれる最少処理単位である１ワードのビット列で構成されていることを特徴とする請求項１〜３にいずれか１つに記載のデータ伝送方法。
【請求項５】
データのサイクリック伝送を行うデータ伝送装置において、
データ毎に異なる第１の識別子、データ、および前記第１の識別子と同一の第２の識別子をこの並び順で所定の記憶領域に書き込んで、データと前記データの前後に付加される第１および第２の識別子とを含むデータフレームを順次に書き換える書込手段と、
前記記憶領域に記憶されているデータフレームを前記書き込みの時期に依存しない一定周期で転送する転送手段と、
転送されたデータフレームを受信し、読み出す読出手段と、
前記書き込みまたは前記読み出しの時期と前記転送の時期とが重なった場合には、割り込みを発生して、前記転送の間にわたって残りの書き込みまたは読み出しを中断して、前記転送の終了後に書き込みまたは読み出しを再開する制御手段と、
読み出されたデータフレームに含まれる第１の識別子と第２の識別子とを比較する比較手段と、
比較の結果、第１の識別子と第２の識別子とが一致する場合には、読み出されたデータフレームに、今回書き換えられたデータと前回書き換えられたままのデータとが混在すると判断する判断手段と、
を有することを特徴とするデータ伝送装置。
【請求項６】
前記読出手段は、データフレームを一括して読み出すことを特徴とする請求項５に記載のデータ伝送方法。
【請求項７】
前記第１および第２の識別子は、複数のデータフレームを相互に区別するために用いられる識別子であることを特徴とする請求項５または６に記載のデータ通信装置。
【請求項８】
前記第１および第２の識別子は、一意性の保たれる最少処理単位である１ワードのビット列で構成されていることを特徴とする請求項５〜７のいずれか１つに記載のデータ通信装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、データ伝送方法およびデータ伝送装置に関し、特に、データを書き込みまたは読み出すとともに、データの書き込みまたは読み出し時期に依存しない一定周期でデータを他の機器に転送するサイクリック伝送方法およびサイクリック伝送装置に関する。
【０００２】
【従来の技術】
従来から、ＦＡ機器などの複数の機器がネットワークを介して相互に接続されているネットワークシステムが利用されている。近年では、このようなネットワークシステムのなかでも、特にサイクリック伝送システムが注目されている。
【０００３】
このサイクリック伝送システムにおいては、所定のメモリ領域にデータが書き込まれ、適宜データが更新される。一方、この書き込み時期に依存しない一定周期で（サイクリックに）メモリ領域内のデータが他の機器に転送される。
【０００４】
このようなサイクリック伝送システムにおいては、データの転送時期とデータの書き込み時期とが同期していない。したがって、データの転送時期とデータの書き込み時期とが重なる場合が生じる。一般に、データが転送される場合には、割り込みが発生し、データの書き込みが中断する。この結果、書き込みが完全に終了していないデータが他の機器へ転送され、不整合なデータが読み出されるおそれが生じる。
【０００５】
また、データが受信される場合にも、割り込みが発生し、データの読み出しが中断する。この結果、不整合なデータが読み出されるおそれが生じる。
【０００６】
したがって、サイクリック伝送システムにおいては、データを他の機器へ転送する時期とデータのアクセス時期（書き込み時期または読み出し時期）とが重なる問題を考慮し、不整合なデータをその後の演算処理に使用しないように構成する必要がある。したがって、読み出されるデータが有効であるか否かを簡便に判断する技術が要望されている。
【０００７】
【発明が解決しようとする課題】
しかしながら、データが有効であるか否かを判断するために、データの読み出し処理が後回しになり、演算処理へのデータの反映が遅れるのでは、高速なデータ処理が実現できない。
【０００８】
データは、ビット列によって構成されるデータフレームに区分され、転送される。しかしながら、複数のデータフレーム間を比較することによってデータの有効性を判断するのでは、複数のデータフレームを保持し管理するための構成が必要となり、処理が複雑となる。
【０００９】
本発明は以上の問題を解決するためになされたものである。したがって、本発明の目的は、サイクリック伝送システムにおいて、データの他の機器への転送または受信時期とデータへのアクセス時期とが重なることによって不整合なデータが読み出される問題（サイクリックデータの一意性の問題）を考慮し、読み出されたデータの有効性を判断するための新規なデータ伝送方法およびデータ伝送装置を提供することである。
【００１０】
本発明の他の目的は、サイクリックデータの一意性の問題を考慮してデータの有効性を判断する場合に、データの読み出しが遅れることなく、データを処理に反映させるまでにかかる時間を短縮することができるデータ伝送方法およびデータ伝送装置を提供することである。
【００１１】
本発明の他の目的は、複数のデータフレーム間を比較することなく、一つのデータフレーム内での処理によって、データの有効性を判断することができるデータ伝送方法およびデータ伝送装置を提供することである。
【００１２】
【課題を解決するための手段】
本発明の上記目的は、下記の手段によって達成される。
【００１３】
（１）本発明のデータ伝送方法は、複数の機器間でデータのサイクリック伝送を行うデータ伝送方法において、データ毎に異なる第１の識別子、データ、および前記第１の識別子と同一の第２の識別子をこの並び順で所定の記憶領域に書き込んで、データと前記データの前後に付加される第１および第２の識別子とを含むデータフレームを順次に書き換えるステップと、前記記憶領域に記憶されているデータフレームを前記書き込みの時期に同期しない一定周期で転送するステップと、転送されたデータフレームを受信し、読み出すステップと、前記書き込みまたは前記読み出しの時期と前記転送の時期とが重なった場合には、割り込みを発生して、前記転送の間にわたって残りの書き込みまたは読み出しを中断して、前記転送の終了後に書き込みまたは読み出しを再開するステップと、読み出されたデータフレームに含まれる第１の識別子と第２の識別子とを比較するステップと、比較の結果、第１の識別子と第２の識別子とが一致しない場合には、読み出されたデータフレームに、今回書き換えられたデータと前回書き換えられたままのデータとが混在すると判断するステップと、を有することを特徴とする。
【００１４】
（２）上記データフレームは、一括して読み出される。
【００１５】
（３）上記の第１および第２の識別子は、複数のデータフレームを相互に区別するために用いられる識別子である。
【００１６】
（４）上記の第１および第２の識別子は、一意性の保たれる最少処理単位である１ワードのビット列で構成されている。
【００１７】
（５）本発明のデータ伝送装置は、データのサイクリック伝送を行うデータ伝送装置において、データ毎に異なる第１の識別子、データ、および前記第１の識別子と同一の第２の識別子をこの並び順で所定の記憶領域に書き込んで、データと前記データの前後に付加される第１および第２の識別子とを含むデータフレームを順次に書き換える書込手段と、前記記憶領域に記憶されているデータフレームを前記書き込みの時期に依存しない一定周期で転送する転送手段と、転送されたデータフレームを受信し、読み出す読出手段と、前記書き込みまたは前記読み出しの時期と前記転送の時期とが重なった場合には、割り込みを発生して、前記転送の間にわたって残りの書き込みまたは読み出しを中断して、前記転送の終了後に書き込みまたは読み出しを再開する制御手段と、読み出されたデータフレームに含まれる第１の識別子と第２の識別子とを比較する比較手段と、比較の結果、第１の識別子と第２の識別子とが一致する場合には、読み出されたデータフレームに、今回書き換えられたデータと前回書き換えられたままのデータとが混在すると判断する判断手段と、を有することを特徴とするデータ伝送装置。
【００１８】
（６）上記の読出手段は、データフレームを一括して読み出す。
【００１９】
（７）上記の第１および第２の識別子は、複数のデータフレームを相互に区別するために用いられる識別子である。
【００２０】
（８）上記の第１および第２の識別子は、一意性の保たれる最少処理単位である１ワードのビット列で構成されている。
【００２１】
【発明の効果】
請求項１および請求項５に記載の発明によれば、書き込みまたは読み出しの時期と転送の時期とが重なった場合には、割り込みを発生して、転送の間にわたって残りの書き込みまたは読み出しを中断して、転送の終了後に書き込みまたは読み出しを再開する場合であっても、第１の識別子、データ、第２の識別子をこの並び順でメモリに書き込むとともに、読み出されたデータフレームに含まれる第１の識別子と第２の識別子とが一致するか否かに応じて、読み出されたデータフレームに、今回書き換えられたデータと前回書き換えられたままのデータとが混在するか否かを判断するので、識別子およびデータの書き込み処理の順序を利用するといった新しい簡便な手法により、サイクリックデータの一意性の問題を考慮して、データの有効性を判断することができる。
【００２２】
また、複数のデータフレーム間を比較することなく、一つのデータフレーム内での処理によって、データの有効性を判断することができる。したがって、複数のデータフレームを保持および管理する構成が不要になる。
【００２３】
請求項２および請求項６に記載の発明によれば、データフレーム全体が一括して読み出されるので、データの有効性を判断する場合に、データの読み出しが遅れることなく、データを処理に反映させるまでにかかる時間を短縮することができる。
【００２４】
請求項３および請求項７に記載の発明によれば、第１および第２の識別子は、複数のデータフレームを相互に区別するために用いられる識別子であるので、異なるデータ間を区別するために用いられる通番などを識別子として兼用することができ、新たに識別子の更新処理を実行する必要がなくなる。
【００２５】
請求項４および請求項８に記載の発明によれば、前記第１および第２の識別子は、一意性の保たれる最少処理単位である１ワードのビット列で構成されているので、識別子の書き込み途中で処理が中断されることはない。したがって、読み出されたデータフレームに含まれる第１および第２の識別子を比較することによって、確実にデータの有効性を判断することができる。
【００２６】
【発明の実施の形態】
以下、図面を参照して、本発明の実施の形態を説明する。
【００２７】
図１は、本発明の実施の形態にかかるサイクリック伝送システム（データ伝送装置）の構成を示すブロック図である。
【００２８】
サイクリック伝送システムにおいて、複数の機器がネットワーク３００を介して相互に通信可能に接続されている。なお、機器１００、２００は、データの送受信を行うための機器であり、一般に局（ステーション）と呼ばれる。
【００２９】
局１００は、記憶部１１０、処理部１２０、サイクリック伝送制御部１３０、およびインタフェース１４０を有する。
【００３０】
記憶部１１０は、送信メモリエリア（自局エリア）１１２および受信メモリエリア（他局エリア）１１４を有する。送信メモリエリア１１２は、局１００から他の局２００に転送するデータおよびフラグが書き込まれる領域である。受信メモリエリア１１４は、他の局２００から受信されたデータおよびフラグが記憶される領域である。ここで、本実施の形態では、データは、所定の長さのビット列であるデータフレームに区分されて扱われる。データフレームは、実体的なデータを構成するデータ本体、データ本体の最後尾に付加されるフラグであるフラグフッタ（第１の識別子）、およびデータ本体の先頭に付加されるフラグであるフラグヘッダ（第２の識別子）を含む。
【００３１】
処理部１２０は、演算部１２２、書込部１２４、読出部１２６、およびフラグ処理部１２８を有する。演算部１２２は、データの演算処理を実行する。
【００３２】
書込部１２４は、演算部１２２による演算処理を経て得られたデータを送信メモリエリア１１２に不定期に書き込む。より具体的には、書込部１２４は、データ毎に異なるフラグフッタ、データ本体、およびフラグフッタと同一のフラグヘッダをこの並び順で送信メモリエリア１１２に書き込んで、データフレームを順次に書き換える。データフレームの構成については後述する。
【００３３】
読出部１２６は、他局から受信されて受信メモリエリア１１４内に記憶されているデータフレームを不定期に読み出す。読み出されたデータフレームは、演算部１２２の演算処理に反映される。
【００３４】
フラグ処理部１２８は、書込部１２４によって書き込まれるフラグヘッダおよびフラグフッタを作成する。また、フラグ処理部１２８は、読出部１２６によって読み出されたデータフレームに含まれるフラグフッタとフラグヘッダを比較する。また、フラグ処理部１２８は、比較の結果、フラグフッタとフラグヘッダが一致する場合には、読み出されたデータフレームに含まれるデータ本体を有効と判断する。なお、処理の詳細は、後述する。
【００３５】
サイクリック伝送制御部１３０は、書込部１２４による書き込み時期に依存しない一定周期でデータフレームをインタフェース１４０を介して転送し、または受信する。具体的には、サイクリック伝送制御部１３０は、送信メモリエリア１１２内をスキャンし、送信メモリエリア１１２内に記憶されているデータフレームを一定周期で送信する。
【００３６】
局２００は、記憶部２１０、処理部２２０、サイクリック伝送制御部２３０、およびインタフェース２４０を有する。また、記憶部２１０は、送信メモリエリア（自局エリア）２１２と、受信メモリエリア（他局エリア）２１４を有する。処理部２２０は、演算部２２２、書込部２２４、読出部２２６、およびフラグ処理部２２８を有する。各部の内容は、局１００における対応する部と同様であるので、詳しい説明を省略する。
【００３７】
次に、局１００がコマンドデータを他局２００に送信し、コマンドデータを受信した他局２００からレスポンスデータを受信する場合について説明する。ここで、コマンドデータとは、自局１００から他局２００への指令に関するデータである。レスポンスデータは、指令を受信した旨を通知するための返信データであり、転送されたデータによるデータ更新許可である。
【００３８】
図２は、コマンドデータおよびレスポンスデータのサイクリック伝送処理の概略を説明するためのシーケンスチャートである。ここでは、局１００がコマンドデータの送信側であり、局２００がコマンドデータ受信側である場合を例にとって説明する。
【００３９】
ステップＳ１では、局１００の書込部１２４は、送信メモリエリア１１２にコマンドデータを書き込んで局１００の送信メモリエリア１１２内のコマンドデータを順次に新しいコマンドデータに書き換える。
【００４０】
ステップＳ２では、局１００のサイクリック伝送制御部１３０は、局１００の送信メモリエリア１１２内のコマンドデータを局２００に一定周期で転送する。局２００によって受信されたコマンドデータは、局２００の受信メモリエリア２２４に格納される。したがって、局１００内の送信メモリエリア１１２と局２００内の受信メモリエリア２２４は、互いに同一のコマンドデータを有する。
【００４１】
ステップＳ３では、局２００の読出部２２６は、受信メモリエリア２２４内のコマンドデータを読み出す。
【００４２】
ステップＳ４では、局２００の書込部２２４は、局２００の送信メモリエリア２１２にレスポンスデータを書き込む。
【００４３】
ステップＳ５では、局２００のサイクリック伝送制御部２３０は、局２００の送信メモリエリア２１２内のレスポンスデータを一定周期で局１００に返送する。局１００によって受信されたレスポンスデータは、局１００の受信メモリエリア１２４に格納される。
【００４４】
ステップＳ６では、局１００の読出部１２６は、受信メモリエリア１２４内のレスポンスデータを読み出す。
【００４５】
実際には、コマンドデータおよびレスポンスデータは、それぞれ上述のデータフレームに区分されて処理される。以下の説明では、コマンドデータのデータフレームおよびレスポンスデータのデータフレームを、それぞれコマンドフレームおよびレスポンスフレームと称する。
【００４６】
一般に、サイクリック伝送では、送信メモリエリア１１２へのコマンドフレームの書き込み（書き換え）が順次に行われる一方、送信メモリエリア１１２内のコマンドフレームが一定周期で他局に転送される。したがって、コマンドフレームの書き込み時期（ステップＳ１）と他局へのデータ転送時期（ステップＳ２）とが重なる場合がある。この結果、書き換え途中のコマンドフレームが他局に転送され、不整合なコマンドデータが他局において読み出されるおそれが生じる。
【００４７】
同様に、コマンドフレームの読み出しの時期（ステップＳ３）と他局からのデータ受信時期（ステップＳ２）とが重なる場合がある。この結果、不整合なコマンドフレームが読み出される発生することがある。
【００４８】
以上のように不整合なデータが読み出される問題は、上述したようなサイクリックデータの一意性の問題として知られている。本発明のデータ伝送方法は、サイクリックデータの一意性の問題を考慮する。したがって、サイクリックデータの一意性の問題について簡単に説明することによって、本発明のデータ伝送方法の意義を示す。
【００４９】
図３および図４は、サイクリックデータの一意性の問題を説明するための比較例を示すタイムチャートである。図３および図４は、フラグを含まないデータ（データ本体）のみを転送する場合を示す。
【００５０】
図３は、サイクリックデータの不整合が生じない場合の一例を示す。図３（ａ）に示されるようにＮ番目のデータが書き込まれる時期とデータの転送時期とが重ならない。この結果、Ｎ番目のデータの書き込みが完了した後に、このＮ番目のデータが局２００の受信メモリエリア２１４に転送される（図３（ｂ）参照）。そして、このＮ番目のデータが正常に読み出される（図３（ｃ）参照）
図４は、サイクリックデータの不整合が生じる場合の一例を示す。サイクリック伝送制御部１３０は、書き込みや読み出しの時期に依存しない一定周期（ＲＣＴ：リフレッシュサイクルタイム）で送信メモリ内のデータフレームを送信する。
【００５１】
サイクリック伝送制御部１３０は、処理部１２０に対して送信割り込みを発生させる。この送信割り込みが発生している間（Ｔｒｓ）、書き込み処理は中断する。
【００５２】
一般にデータフレームの書き込みおよび読み出しなどの処理は、処理部１２０の種類によって定まる最少処理単位である「１ワード」を単位として行われる。本説明では、処理部は、１６ビット系の処理系であるので、１ワードは１６ビットである。
【００５３】
図４（ａ）は、全部で３ワードのデータを書き込む途中で中断した場合を示す。より具体的には、書込部１２４が１ワード分のデータを書き込んだ時点で送信割り込みが発生した場合が示されている。したがって、１ワード分のデータのみが新たなＮ番目のデータに書き換えられる一方、残りの２ワード分のデータは前回（Ｎ−１番目のデータ）のまま書き換えられずに残る。そして、全体にわたる書き換えが完了していないデータが局２００の受信メモリエリア２１４に転送される（図４（ｂ）参照）。したがって、局２００の読出部２２６は、このＮ番目のデータと前回のＮ−１番目のデータとが混在した不整合なデータを読み出してしまう（図４（ｃ）参照）。
【００５４】
また、図示していないが、局２００が一定周期（ＲＣＴ）で受信メモリエリア２１４にデータフレームを受信する場合にも、サイクリック伝送制御部２３０は、処理部２２０に対して受信割り込みを発生させる。この受信割り込みが発生している間（Ｔｒｓ）、読み出し処理は中断する。このような受信割り込みが発生する場合にも、不整合なデータが読み出される。さらに、書き込みおよび読み出しの双方が割り込みによって中断する場合にも、不整合なデータが読み出される。
【００５５】
なお、データのサイズが、最少処理単位である１ワードである場合には、データの書き込みおよび読み出しが途中で中断するということがないためデータの不整合は発生しない。
【００５６】
図５は、別の比較例を示すタイムチャートである。図５は、データ本体と、このデータ本体の最後尾に付加されるフラグとを含むデータフレームを用いる場合の処理を示している。
【００５７】
図５（ａ）は、全部で３ワードのデータ本体、および１ワードのフラグを書き込む途中で処理が中断した場合を示す。より具体的には、書込部１２４が１ワード分のデータを書き込んだ時点で送信割り込みが発生した場合が示されている。したがって、１ワード分のデータのみが新たなＮ番目のデータに書き換えられる。一方、残りの２ワード分のデータおよびフラグは、前回のデータおよび前回のフラグ（Ｎ−１番目のデータおよびＮ−１番目のフラグ）のまま書き換えられずに残る。そして、全体にわたる書き換えが完了していないデータフレームが局２００の受信メモリエリア２１４に転送される（図５（ｂ）参照）。
【００５８】
図５（ｃ）に示されているように読み出し処理においては、まずデータフレームに含まれるフラグのみが読み出される。この結果、読み出されたフラグが前回のデータフレームに含まれるフラグと比べて変化がない場合には、データ本体が不整合であると判断されるため、データ本体が読み出されない。一方、フラグが変化した場合には、有効なデータとしてデータ本体が読み出される。換言すれば、フラグの変化をトリガとして、データ本体が読み出される。したがって、不整合なデータを読み出すことを防止することができる。
【００５９】
しかしながら、図５（ｃ）に示される処理では、複数のデータフレーム間でのフラグの比較が必要になる。また、フラグのみを読み出した後に、フラグの変化をトリガとして、データ本体が読み出されるため、データ本体の読み出しが遅れ、データ本体の演算処理への反映が遅れる。
【００６０】
次に、本発明の好適な実施の形態にかかるデータ伝送方法を説明する。このデータ伝送方法は、図４に示されるようなサイクリックデータの一意性の問題を解決しつつ、図５に示されるような複数のデータフレーム間でのフラグの比較を実行する必要性をなくし、かつデータ本体の読み出しの遅れを防止することができるという意義を有する。
【００６１】
図６は、本発明の伝送方法において使用されるデータフレームを示す。
【００６２】
図６（ａ）に示されるように、本発明のデータフレームは、データ本体と、このデータ本体の前後に付加されるフラグフッタおよびフラグヘッダとを含む。フラグフッタは、データ毎に異なる一意性のある識別子である。フラグヘッダは、フラグフッタと同一の識別子である。フラグフッタおよびフラグヘッダは、ともに、一意性の保たれる最少処理単位である１ワードのビット列で構成されている書込部１２４は、フラグフッタ、データ本体、およびフラグフッタと同一のフラグヘッダをこの並び順で送信メモリエリア１１２に書き込んで、データフレームを順次書き換える。
【００６３】
図６（ｂ）は、局２００の読出部２２６によって読み出されるデータフレームの例を示す。読み出されたデータフレームに含まれるフラグフッタとフラグヘッダが一致する場合には、データフレームに含まれるデータ本体を有効と判断する。一方、フラグヘッダとフラグフッタが一致しない場合には、データフレームに含まれるデータ本体を無効と判断する。
【００６４】
図７、図８、および図９は、本発明の好適なデータ伝送方法における処理例を示すタイムチャートである。書込部１２４および読出部２２６による書き込みおよび読み出し時期に依存しない一定周期（ＲＣＴ）でデータ転送がされる点、および所定の期間（Ｔｒｓ）の送信割り込みや受信割り込みが発生する点は、図５の場合と同様である。
【００６５】
図７は、送信割り込みの発生によって書き込みが中断する場合の処理例を示す。
【００６６】
図７（ａ）は、１ワードのフラグフッタ、全部で３ワードのデータ本体、および１ワードのフラグヘッダをこの並び順で書き込む途中で処理が中断した場合を示す（Ｐ点）。より具体的には、書込部１２４がフラグフッタおよび１ワード分のデータを書き込んだ時点で送信割り込みが発生した場合が示されている。したがって、フラグフッタと１ワード分のデータのみが各々Ｎ番目のフラグフッタおよびＮ番目のデータに書き換えられる。一方、残りの２ワード分のデータおよびフラグヘッダは、前回のデータおよび前回のフラグヘッダ（Ｎ−１番目のデータおよびＮ−１番目のフラグヘッダ）のまま書き換えられずに残る。そして、全体にわたる書き換えが完了していないデータフレームが局２００の受信メモリエリア２１４に転送される（図７（ｂ）参照）。なお、送信割り込みの終了後、Ｎ番目のデータ本体およびフラグヘッダの書き込みが再開される。全体にわたる書き換えが完了したデータフレームは、次回（Ｑ点）に、転送される。
【００６７】
図７（ｃ）に示されるように、局２００の読出部２２６は、データフレーム全体を一括して読み出す。そして、フラグ処理部２２８は、データフレーム内に含まれるフラグフッタとフラグヘッダとを比較する。比較の結果、フラグフッタとフラグヘッダとが一致しない場合には（Ｐ点の場合）、フラグ処理部２２８は、データフレームに含まれるデータ本体を無効と判断する。一方、フラグフッタとフラグヘッダとが一致する場合には（Ｑ点の場合）、フラグ処理部２２８は、データフレームに含まれるデータ本体を有効と判断する。
【００６８】
図８は、受信割り込みの発生によって読み出しが中断する場合の処理例を示す。
【００６９】
図８（ａ）は、データフレームが正常に書き込まれた状態を示す。図８（ｂ）は、図８（ａ）に示されるデータフレームがＰ点において局２００の受信メモリエリア２１４に格納されることを示している。図８（ｃ）は、受信メモリエリア２１４内におけるデータフレームの読み出し途中で処理が中断した場合を示す（Ｐ点）。受信割り込みの前後で、受信メモリエリア２１４内のデータの内容が異なる。したがって、読出部２２６は、前回（Ｎ−１番目）のフラグヘッダと１ワード分の前回（Ｎ−１番目）のデータを読み出す。また、読出部２２６は、２ワード分の今回（Ｎ−１）のデータと今回（Ｎ番目）のフラグフッタを読み出す。そして、フラグ処理部２２８は、読み出されたフラグヘッダとフラグフッタとを比較する。比較の結果、フラグフッタとフラグヘッダとが一致しない場合には（Ｐ点の場合）、フラグ処理部は、データ本体を無効と判断する。一方、その後、新たに受信エリアメモリ２１４内のデータフレームが読み出される場合には、フラグフッタとフラグヘッダとが一致する。したがって、フラグ処理部２２８は、データフレームに含まれるデータ本体を有効と判断する。
【００７０】
図９は、送信割り込みの発生によって書き込みが中断するとともに、受信割り込みの発生によって読み出しが中断する場合の処理を示している。この場合にも、送信側の局１００において、フラグフッタ、データ本体、およびフラグフッタと同一のフラグヘッダをこの並び順で書き込み、受信側の局２００において、読み出されたデータフレームに含まれるフラグフッタとフラグヘッダとを比較する処理によって、データ本体の有効性を簡単に判断することができる。
【００７１】
図１０は、本実施の実施の形態における送信側の局１００の動作を示すフローチャートである。
【００７２】
演算部１２２は、所定の演算を実行する（ステップＳ１００）。書込部１２４は、データ毎に異なるフラグフッタを送信メモリエリア１１２に書き込むことによってフラグフッタの内容を更新した後（ステップＳ１０１）、データ本体の書き込みを開始する（ステップＳ１０２）。なお、データ本体は、演算処理による演算の結果として得られる。
【００７３】
書きこみ途中でデータ転送タイミング（転送時期）となった場合には（ステップＳ１０３：ＹＥＳ）、送信割り込みを発生し、データ本体の書き込みを中断する（ステップ１０４）。そして、サイクリック伝送制御部１３０は、送信メモリエリア１１２に記憶されている内容をデータフレームとして他局２００の受信メモリエリア２１４に転送する（ステップＳ１０５）。その後、書き込みの中断が解除されるのを待って（ステップＳ１０６：ＹＥＳ）、データ本体の書き込みが再開する（ステップＳ１０７）。
【００７４】
一方、書きこみ途中でデータ転送タイミングとならなかった場合には（ステップＳ１０３：ＮＯ）、データ本体の書き込みを完了した後（ステップＳ１０８）、フラグフッタと同一のフラグヘッダを送信メモリエリア１１２に書き込むことによってフラグヘッダの内容を更新する（ステップＳ１０９）。
【００７５】
その後、データ転送タイミングとなった場合には（ステップＳ１１０：ＹＥＳ）、サイクリック伝送制御部１３０は、送信メモリエリア１１２に記憶されている内容をデータフレームとして他局２００の受信メモリエリア２１４に転送する（ステップＳ１１１）。
【００７６】
他局２００からレスポンスがあるのを待って（ステップＳ１１２：ＹＥＳ）、ステップＳ１００に戻る。
【００７７】
以上の処理を用いることによって、各フラグとデータの書き込み順序を規定するだけで、データフレームに含まれるフラグフッタとフラグヘッダの異同を制御することができ、別途複雑な構成を有するタイミング調整機能やフラグ管理機能を設けることが不要となる。
【００７８】
図１１は、本実施の実施の形態における受信側の局２００の動作を示すフローチャートである。
【００７９】
書き込みおよび読み出しの時期に依存しない一定周期（ＲＣＴ）で転送されたデータフレームは、局２００の受信メモリエリア２１４に記憶される。局２００の読出部２２６は、データフレームの読み出しを開始する（ステップＳ２００）。読出部２２６は、データ本体の前後に付加されたフラグフッタおよびフラグヘッダからなるデータフレーム全体を一括して読み出すことができる。
【００８０】
読み出し途中でデータ受信タイミング（受信時期）となった場合には（ステップＳ２０１：ＹＥＳ）、受信割り込みを発生し、データ本体の読み出しを中断する（ステップＳ２０２）。そして、読み出しの中断が解除されるのを待って（ステップＳ２０３：ＹＥＳ）、データ本体の読み出しを再開し（ステップＳ２０４）、データフレームの読み出しを完了する（ステップＳ２０５）。
【００８１】
一方、書き込み途中でデータ受信タイミングとならなかった場合には（ステップＳ２０１：ＮＯ）、そのままデータフレームの読み出しを完了する（ステップＳ２０５）。
【００８２】
次に、読み出されたデータフレームに含まれるフラグヘッダとフラグフッタとが比較される。比較の結果、フラグヘッダとフラグフッタとが一致する場合には（ステップＳ２０６：ＹＥＳ）、データフレームに含まれるデータ本体が、有効であると判断され（ステップＳ２０７）、データ本体は、直ちに演算部２２２による演算処理に反映される（ステップＳ２０８）。この場合、正常にデータフレームが読み出されたので、レスポンスが局１００に返信される（ステップＳ２０９）
一方、フラグヘッダとフラグフッタとが一致しない場合には（ステップＳ２０６：ＮＯ）、データフレームに含まれるデータ本体が無効であると判断される（ステップＳ２１０）。この場合には、レスポンスは送信されない。
（変形例）
次に、本実施の形態の変形例を説明する。本変形例では、複数のデータフレーム間を相互に区別するために用いられる通番（連続番号）をフラグとして用いる。この結果、本来他の目的でデータ間を区別するために使用される通番をフラグフッダやフラグヘッダとして兼用できるので、書き込み側でフラグの更新処理を別個に行う必要がなくなる。また、本変形例では、コマンドフレームの伝送のみならず、レスポンスフレームの伝送についても、本発明のデータ伝送方法を適用する。
【００８３】
なお、本変形例では、コマンドデータ部が３２ワードのビット列で構成され、レスポンスデータ部が３ワードのビット列で構成される場合を示す。なお、各フラグは、１ワードのビット列である。
【００８４】
図１２および図１３は、本変形例におけるコマンド送信側（レスポンス受信側）である局１００の動作を示すフローチャートである。
【００８５】
ステップＳ３００は、ステップＳ１００の処理と同様であるので説明を省略する。ステップＳ３０１では、コマンドデータ本体を作成し、複数のコマンドデータ本体を互いに区別するために使用されるコマンド通番の値が更新（インクリメント）される。更新されたコマンド通番を取得し、取得された通番に基づいてコマンドデータの後に付加されるコマンドデータ用のフラグフッタ（以下「コマンドフッタ」という）が書き込まれる（ステップＳ３０２）。
【００８６】
以下、データフレームとしてコマンドフレームを用いる点などを除いて、ステップＳ３０３からステップＳ３１３の処理は、図１０に示されるステップＳ１０２からステップＳ１１２の処理と同様であるので、詳しい説明を省略する。
【００８７】
ステップＳ３１３において、他の局２００からレスポンスがあった場合には（ステップＳ３１３：ＹＥＳ）、図１３のステップ３１４に進む。これは、レスポンスフレームの受信にも、本発明のデータ伝送処理を用いるためである。以下、データフレームとしてレスポンスフレームが用いられ、フラグヘッダとして、レスポンスデータ用のフラグヘッダ（以下「レスポンスヘッダ」という）が用いられ、フラグフッタとしてレスポンスデータ用のフラグヘッダ（以下「レスポンスフッタ」という）が用いられる点を除いて、ステップＳ３１４からステップＳ３２０の処理は、図１１に示されるステップＳ２００からステップＳ２０６の処理と同様である。したがって、詳しい説明を省略し、処理内容を簡単に説明する。読出部１２６は、レスポンスデータとこのレスポンスデータに付加されるレスポンスヘッダおよびレスポンスフッタとを含むレスポンスフレームを一括して読み出す（ステップＳ３１９）。レスポンスフレームに含まれるレスポンスヘッダとレスポンスフッタとが一致する場合には（ステップＳ３２０：ＹＥＳ）、フラグ処理部１２８は、レスポンスフレームに含まれるレスポンスデータが有効であると判断する（ステップＳ３２１）。一方、レスポンスヘッダとレスポンスフッタとが一致しない場合には（ステップＳ３２０：ＮＯ）、フラグ処理部１２８は、レスポンスデータが無効であると判断する。なお、レスポンスヘッダとレスポンスフッタとが一致するまで（ステップＳ３２０：ＹＥＳ）、レスポンスフレームの読み出しが繰り返される。
【００８８】
図１４および図１５は、本変形例におけるコマンド受信側（レスポンス送信側）である局２００の動作を示すフローチャートである。
【００８９】
データフレームとしてコマンドフレームが用いられる点などを除いて、ステップＳ４００〜ステップＳ４０８の処理は、図１１のステップＳ２００〜ステップＳ２０８の処理と同様であり、ステップＳ４０９の処理は、図１１のステップＳ２１０の処理と同様である。したがって、詳しい説明を省略する。
【００９０】
図１５のステップＳ４１０では、レスポンス発行処理によりレスポンスデータが作成される。また、複数のレスポンスデータ本体を互いに区別するために使用されるレスポンス通番の値が更新（インクリメント）される。なお、コマンド通番（すなわち、コマンドフッタの値）をコピーしてレスポンス通番の値を更新してもよい。
【００９１】
更新されたレスポンス通番を取得し、取得された通番に基づいてレスポンスフッタが書き込まれる（ステップＳ４１１）。以下、データフレームとして、レスポンスフレームが用いられる点などを除いて、ステップＳ４１２〜ステップＳ４２１の処理は、図１０に示されるステップＳ１０２〜ステップＳ１１１の処理と同様であるので、詳しい説明を省略する。
【００９２】
このように、本来的にはフラグ目的ではない通番、すなわち、各コマンドやレスポンスを区別するための通番などを、フラグとして兼用することができる。また、コマンドフレームの伝送のみならず、レスポンスフレームの伝送についても、本発明のデータ伝送方法を適用することができる。
【００９３】
以上のように、本発明の好適な実施の形態を説明したが、本発明は、発明の思想の範囲内で種々の変形、省略、および付加が可能である。たとえば、上記説明では、一定長（たとえば、１ワードのコマンドヘッダ、３２ワードのデータ本体、および１ワードのコマンドフッタの合計３４ワード）のデータフレームを用いる場合を説明したが、可変長のデータフレームを用いる場合にも、本発明は適用できる。
【００９４】
また、上述のように、伝送されるデータが１ワードよりも大きい場合（２ワード以上の場合）にのみ、サイクリックデータの一意性の問題が生じる。したがって、データ本体のサイズを判別して、２ワード以上のデータ本体を伝送する場合にのみ、本発明のデータ伝送方法を適用してもよい。
【図面の簡単な説明】
【図１】  本発明の実施の形態にかかるサイクリック伝送システムの構成を示すブロック図である。
【図２】  図１のシステムによるサイクリック伝送処理の概略を示すシーケンスチャートである。
【図３】  サイクリックデータの不整合を生じない場合の比較例を示すタイムチャートである。
【図４】  サイクリックデータの不整合を生じる場合の比較例を示すタイムチャートである。
【図５】  データ本体の最後尾にフラグを付加する比較例を示すタイムチャートである。
【図６】  本発明のデータ伝送方法において使用されるデータフレームの構造を示す概念図である。
【図７】  書き込みが中断する場合における、本発明のデータ伝送方法の処理例を示すタイムチャートである。
【図８】  読み出しが中断する場合における、本発明のデータ伝送方法の処理例を示すタイムチャートである。
【図９】  書き込みおよび読み出しが中断する場合における、本発明のデータ伝送方法の処理例を示すタイムチャートである。
【図１０】  本発明の実施の形態における送信側の局１００の動作を示すフローチャートである。
【図１１】  本発明の実施の形態における送信側の局２００の動作を示すフローチャートである。
【図１２】  本発明の変形例におけるコマンド送信側の局１００の動作を示すフローチャートである。
【図１３】  図１２に後続するフローチャートである。
【図１４】  本変形例におけるコマンド受信側の動作を示すフローチャートである。
【図１５】  図１４に後続するフローチャートである。
【符号の説明】
１００、２００…局（機器）、
１１０、２２０…記憶部、
１２４、２２４…書込部（書込手段）、
１２６、２２６…読出部（読出手段）
１２８、２２８…フラグ処理部（比較手段および判断手段）
１３０、２３０…サイクリック伝送制御部（転送手段）。
【図１】
0003788282.tif 000002
【図２】
0003788282.tif 000003
【図３】
0003788282.tif 000004
【図４】
0003788282.tif 000005
【図５】
0003788282.tif 000006
【図６】
0003788282.tif 000007
【図７】
0003788282.tif 000008
【図８】
0003788282.tif 000009
【図９】
0003788282.tif 000010
【図１０】
0003788282.tif 000011
【図１１】
0003788282.tif 000012
【図１２】
0003788282.tif 000013
【図１３】
0003788282.tif 000014
【図１４】
0003788282.tif 000015
【図１５】
0003788282.tif 000016