(57)【要約】【課題】  この発明は、サイクリックメモリに書き込まれた新しい情報を、速やかに送信できるサイクリック通信同期方式を提供することである。【解決手段】  この発明のサイクリック通信同期方式は、ネットワークを介して接続されている複数の端末間で仮想的に共有するメモリ空間を設け、それぞれの端末が予め書き込む位置を決定しておき、その領域のデータを定周期で他の端末に送信することによりネットワーク全体で共有メモリを実現するサイクリック通信同期方式であって、各端末１０１は、共有メモリの自端末領域２０１を分割した単位毎にアドレスを指定してデータを読み込みネットワークへ送信するデータ送信部２００と、分割した単位毎にアドレスを指定し、該アドレスが読み込みアドレスと不一致の時にバッファメモリ４００のデータを共有メモリに書き込み、該アドレスが読み込みアドレスと一致した時は書き込まない更新手段とを備えるものである。【選択図】  図１
2011215734.tif 000002
【特許請求の範囲】
【請求項１】
ネットワークを介して接続されている複数の端末間で仮想的に共有するメモリ空間を設け、それぞれの端末が予め書き込む位置を決定しておき、その領域のデータを定周期で他の端末に送信することにより前記ネットワーク全体で共有メモリを実現するサイクリック通信同期方式であって、
前記各端末は、前記共有メモリの自端末領域を分割した単位毎にアドレスを指定してデータを読み込みネットワークへ送信するデータ送信部と、
前記分割した単位毎にアドレスを指定し、該アドレスが読み込みアドレスと不一致の時にバッファメモリのデータを前記共有メモリに書き込み、該アドレスが読み込みアドレスと一致した時は書き込まない更新手段とを備えたサイクリック通信同期方式。
【請求項２】
前記各端末は、前記共有メモリとバッファメモリとの間に設けられたＦＩＦＯメモリを更に備え、
前記分割した単位毎にアドレスを指定し、該アドレスが読み込みアドレスと不一致の時に前記ＦＩＦＯメモリのデータを前記共有メモリに書き込み、該アドレスが読み込みアドレスと一致した時は書き込まない第１の更新手段と、
前記バッファメモリから前記ＦＩＦＯメモリにデータを書き込む第２の更新手段とを備えたことを特徴とする請求項１記載のサイクリック通信同期方式。
【請求項３】
前記バッファメモリを複数備え、
前記第２の更新手段は、優先度の高いバッファメモリから前記ＦＩＦＯメモリにデータを書き込むことを特徴とする請求項２記載のサイクリック通信同期方式。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、ネットワークで接続された複数の端末間で、仮想的に共有するメモリ空間を互いに定周期のデータ送信により更新し、データの同時性を保証するサイクリック通信同期方法に関する。
【背景技術】
【０００２】
サイクリック通信同期方法とは、ネットワークで接続された複数の端末間で、それぞれの端末内に同じアドレス割り付けのメモリ（仮想的な共有メモリ；以降で、サイクリックメモリと呼ぶ）を持ち、互いに定周期のデータ送信により更新してデータの同時性を保証することで、ある端末が自端末内の該メモリ中にデータを書き込むと、他の端末ではそれぞれの端末が持つメモリの同一アドレスにそのデータが反映されるというものである。
【０００３】
前記のように、サイクリック通信同期方法は、ネットワークで接続された複数の端末間でサイクリックメモリを生成し、アプリケーションから使いやすい通信方式を定義することが可能であるという利点がある反面、書き手のアプリケーションがデータを更新している最中に、読み手のアプリケーションがデータを読み込んでしまい、一貫性のないデータを瞬間的に参照してしまう可能性がある
【０００４】
本問題に対処するために、各端末においてサイクリックメモリを２つ持ち、それぞれをアプリケーションが書き込むサイクリックメモリと、送信処理機能が読み込むサイクリックメモリに分け、アプリケーションによるサイクリックメモリ更新後に、それぞれの役目を切り替えることにより、データの更新と読み込みが同時に発生しないような同期機構を設けたサイクリック通信同期方式が特許文献１に述べられている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２００５−３０３５３４号公報（第３頁−第５頁、図１）
【発明の概要】
【発明が解決しようとする課題】
【０００６】
従来のサイクリック通信同期方式では、アプリケーションが一方のサイクリックメモリの書き込みを始めると、送信処理機能が、アプリケーションの書き込み完了まで、他方のサイクリックメモリしか読み込むことが出来ないため、一方のサイクリックメモリに書き込まれた新しい情報を、速やかに送信できないという問題があった。
【０００７】
この発明は、サイクリックメモリに書き込まれた新しい情報を、速やかに送信できるサイクリック通信同期方式を提供することを目的とする。
【課題を解決するための手段】
【０００８】
この発明のサイクリック通信同期方式は、ネットワークを介して接続されている複数の端末間で仮想的に共有するメモリ空間を設け、それぞれの端末が予め書き込む位置を決定しておき、その領域のデータを定周期で他の端末に送信することによりネットワーク全体で共有メモリを実現するサイクリック通信同期方式であって、各端末は、共有メモリの自端末領域を分割した単位毎にアドレスを指定してデータを読み込みネットワークへ送信するデータ送信部と、分割した単位毎にアドレスを指定し、該アドレスが読み込みアドレスと不一致の時にバッファメモリのデータを共有メモリに書き込み、該アドレスが読み込みアドレスと一致した時は書き込まない更新手段とを備えるものである。
【発明の効果】
【０００９】
この発明は、ネットワークを介して接続されている複数の端末間で仮想的に共有するメモリ空間を設け、それぞれの端末が予め書き込む位置を決定しておき、その領域のデータを定周期で他の端末に送信することによりネットワーク全体で共有メモリを実現するサイクリック通信同期方式であって、各端末は、共有メモリの自端末領域を分割した単位毎にアドレスを指定してデータを読み込みネットワークへ送信するデータ送信部と、分割した単位毎にアドレスを指定し、該アドレスが読み込みアドレスと不一致の時にバッファメモリのデータを共有メモリに書き込み、該アドレスが読み込みアドレスと一致した時は書き込まない更新手段とを備えるもので、サイクリックメモリに書き込まれた新しい情報を速やかに送信できるサイクリック通信同期方式を提供できる。
【図面の簡単な説明】
【００１０】
【図１】この発明の実施の形態１を示す端末Ａの送信側装置の構成図。
【図２】この発明の実施の形態１を示すサイクリック通信同期方法の説明図。
【図３】この発明の実施の形態１を示すサイクリックデータの流れの説明図。
【図４】この発明の実施の形態１を示すサイクリックデータの説明図。
【図５】この発明の実施の形態１を示すデータ送信部の読み込みのフローチャート。
【図６】この発明の実施の形態１を示すサイクリックメモリ部への書き込みのフローチャート。
【図７】この発明の実施の形態２を示す端末Ａの送信側装置の構成図。
【図８】この発明の実施の形態２を示すＦＩＦＯメモリへの書き込みのフローチャート。
【図９】この発明の実施の形態２を示すサイクリックメモリ部への書き込みのフローチャート。
【図１０】この発明の実施の形態３を示す端末Ａの送信側装置の構成図。
【図１１】この発明の実施の形態３を示すＦＩＦＯメモリへの書き込みのフローチャート。
【図１２】この発明の実施の形態４を示す端末Ａの送信側装置の構成図。
【図１３】この発明の実施の形態５を示す端末Ａの送信側装置の構成図。
【図１４】この発明の実施の形態５を示すＦＩＦＯメモリへの書き込みのフローチャート。
【図１５】この発明の実施の形態５を示すサイクリックメモリ部への書き込みのフローチャート。
【図１６】この発明の実施の形態６を示すデータ送信部の読み込みのフローチャート。
【図１７】この発明の実施の形態６を示すサイクリックメモリ部への書き込みのフローチャート。
【発明を実施するための形態】
【００１１】
実施の形態１．
図１は、実施の形態１を示す端末Ａの送信側装置の構成図である。図２は、実施の形態１を示すサイクリック通信同期方法の説明図である。図３は、実施の形態１を示すサイクリックデータの流れの説明図である。図４は、実施の形態１を示すサイクリックデータの説明図である。図５は、実施の形態１を示すデータ送信部の読み込みのフローチャートである。図６は、実施の形態１を示すサイクリックメモリ部への書き込みのフローチャートである。
図１において、１０１はネットワークにサイクリックデータを送信する端末Ａの送信側装置、２００はデータ送信部、２０１はサイクリックメモリ部の自端末領域（ｍ−Ａ）、４００はバッファメモリ部、５０１及び５０３はそれぞれのメモリ間でデータが通るデータパスである。
図２において、１００はネットワーク（ＬＡＮ）、１０１は端末Ａ、１０２は端末Ｂ、１０３は端末Ｃ、ｍ−Ａ、ｍ−Ｂ及びｍ−Ｃはサイクリックメモリ、２０１は端末Ａの書き込み領域（ｍ−Ａ）、２０２は端末Ｂの書き込み領域（ｍ−Ｂ）、２０３は端末Ｃの書き込み領域（ｍ−Ｃ）である。
【００１２】
サイクリック通信同期方法の動作について、図２をもとに説明する。
ネットワーク１００で接続された複数の端末（端末Ａ１０１、端末Ｂ１０２、端末Ｃ１０３）間で、それぞれの端末内に同じアドレス割り付けのサイクリックメモリを持ち、互いに定周期のデータ送信により、各端末がサイクリックメモリの自端末領域（例えば、端末Ａの自端末領域はｍ−Ａ）をサイクリックデータで送信して、各端末の自端末領域を更新することで、データの同時性を保証する。
【００１３】
次に、サイクリックデータの流れを、図１と図３をもとに説明する。
サイクリックデータのフォーマットは、図３のデータ領域Ｄ０で、データ幅が８bit幅で、８bit毎に、Octet1、Octet2、・・・と、アドレスが割り振られている。
データの読み込み及び書き込みは、先頭アドレスを指定して、Octet単位で行う。
なお、サイクリックデータは、図４のように、１つの Octet内に複数のデータが含まれる場合、１つの Octetで１つのデータが含まれる場合、複数の Octetで１つのデータが表現される場合などがあり、本発明の実施形態に限定されず、この発明の範囲内で種々のパターンがあることは言うまでもない。
【００１４】
データ送信部２００は、定周期のデータ送信タイミングになると、データパス５０１を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定して、データを読み込みネットワークへ送信する。
バッファメモリ部４００からサイクリックメモリ部２０１への書き込みは、データ送信部２００の読み込みを優先させて、データパス５０３を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定してデータを書き込む。
【００１５】
次に、データ送信部の読み込みについて、図５をもとに説明する。
ステップＳ１０１では、起動後に読み込み先アドレスを、０にリセットする。
【００１６】
ステップＳ１０２では、定周期のデータ送信タイミングになるまで、定周期時間ほど待機する。
【００１７】
ステップＳ１０３では、データ送信タイミングになると、読み込み先アドレスをカウントアップする。
【００１８】
ステップＳ１０４では、サイクリックメモリ部から指定アドレスのデータを読み込む。
【００１９】
ステップＳ１０５では、読み込んだデータをネットワークへ送信する。
【００２０】
ステップＳ１０６では、全データの送信を完了したかをチェックする。
未完了の場合、ステップＳ１０３を実行して、続きのデータを読み込む。
完了の場合、最初のステップＳ１０１に戻る。
【００２１】
次に、バッファメモリ部からサイクリックメモリ部への書き込みについて、図６をもとに説明する。
ステップＳ２０１では、起動後にデータの受信待ちとなり、データを受信するまで待機する。
【００２２】
ステップＳ２０２では、データを受信する。
【００２３】
ステップＳ２０３では、受信したデータから書き込み先アドレスを読み込む。
【００２４】
ステップＳ２０４では、データ送信部の読み込み先アドレスと書き込み先アドレスを確認する。
アドレスが一致した場合、１クロック待ってから再度、アドレスを確認する。
アドレスが不一致の場合、ステップＳ２０５を実行する。
【００２５】
ステップＳ２０５では、データの書き込みを行う。
【００２６】
ステップＳ２０６では、全データの書き込みを完了したかをチェックする。
未完了の場合、ステップＳ２０７を実行して、続きのデータを書き込む。
完了の場合、最初のステップＳ２０１に戻る。
【００２７】
ステップＳ２０７では、書き込み先アドレスをカウントアップする。
【００２８】
なお、サイクリックメモリ部に対する読み込み先アドレス及び書き込み先アドレスは、図３のクロック２、クロック３に示すように、それぞれをお互いが追い越さないように実施することで、サイクリックデータの同時性を保証できるため、本発明の範囲内で実施されることは言うまでもない。
【００２９】
前記のように、実施の形態１によれば、データ送信部がサイクリックメモリ部を常に読み出し可能となり、データ送信部の読み込み先アドレスと書き込み先アドレスが一致しない限り、サイクリックメモリ部への書き込みが可能となることで、最新の情報を速やかに送信できるサイクリック通信同期方式を提供できる。
また、従来方式のように、２つのサイクリックメモリを切り換える同期機構が必要なくなり、データのスループットの向上などの効果がある。
【００３０】
実施の形態２．
図７は、実施の形態２を示す端末Ａの送信側装置の構成図である。図８は、実施の形態２を示すＦＩＦＯメモリへの書き込みのフローチャートである。図９は、サイクリックメモリ部への書き込みのフローチャートである。
実施の形態１では、サイクリックメモリ部とバッファメモリ部の動作周波数が同じものである。
実施の形態２では、サイクリックメモリ部よりバッファメモリ部の動作周波数が高い場合で、サイクリックメモリ部とバッファメモリ部の間にＦＩＦＯ（First-In First-Out）メモリを設けるものである。
図７において、実施の形態１と同様の説明は省略して、３００はサイクリックメモリ部２０１とバッファメモリ部４００の間に設けたＦＩＦＯメモリ、５０２はサイクリックメモリ部２０１とＦＩＦＯメモリ３００とのデータパス、５０３はバッファメモリ部４００とＦＩＦＯメモリ３００とのデータパスである。
【００３１】
次に、サイクリックデータの流れを、図７をもとに説明する。
データ送信部２００は、定周期のデータ送信タイミングになると、データパス５０１を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定して、データを読み込みネットワークへ送信する。
バッファメモリ部４００からＦＩＦＯメモリ３００への書き込みは、データパス５０３を経由して、サイクリックメモリ部２０１を分割した単位で行う。
ＦＩＦＯメモリ３００からサイクリックメモリ部２０１への書き込みは、データ送信部２００の読み込みを優先させて、データパス５０２を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定してデータを書き込む。
【００３２】
データ送信部の読み込みは、実施の形態１と同様なので、説明を省略する。
バッファメモリ部からＦＩＦＯメモリへの書き込みについて、図８をもとに説明する。
ステップＳ２０１では、起動後にデータの受信待ちとなり、データを受信するまで待機する。
【００３３】
ステップＳ２０２では、データを受信する。
【００３４】
ステップＳ２０３では、受信したデータから書き込み先アドレスを読み込む。
【００３５】
ステップＳ２０４では、データと書き込み先アドレスをＦＩＦＯメモリへ書き込む。
【００３６】
ステップＳ２０５では、全データの書き込みを完了したかをチェックする。
未完了の場合、ステップＳ２０６を実行して、続きのデータを書き込む。
完了の場合、最初のステップＳ２０１に戻る。
【００３７】
ステップＳ２０６では、書き込み先アドレスをカウントアップする。
【００３８】
次に、ＦＩＦＯメモリからサイクリックメモリ部への書き込みについて、図９をもとに説明する。
ステップＳ３０１では、起動後にデータの受信待ちとなり、データを受信するまで待機する。
【００３９】
ステップＳ３０２では、データを受信して、ＦＩＦＯメモリが not EmptyならばステップＳ３０３を実行する。
なお、本実施形態の場合、バッファメモリ部の書き込み速度が、ＦＩＦＯメモリの書き込み速度よりも速いため、一度 not Emptyとなると、一連のデータ書き込みが終わるまで、Emptyになることはない。
【００４０】
ステップＳ３０３では、受信したデータから書き込み先アドレスを読み込む。
【００４１】
ステップＳ３０４では、データ送信部の読み込み先アドレスと書き込み先アドレスを確認する。
アドレスが一致した場合、１クロック待ってから再度、アドレスを確認する。
アドレスが不一致の場合、ステップＳ３０５を実行する。
【００４２】
ステップＳ３０５では、データの書き込みを行う。
【００４３】
ステップＳ３０６では、全データの書き込みを完了したかをチェックする。
未完了の場合、ステップＳ３０７を実行して、続きのデータを書き込む。
完了の場合、最初のステップＳ３０１に戻る。
【００４４】
ステップＳ３０７では、書き込み先アドレスをカウントアップする。
【００４５】
前記のように、実施の形態２によれば、実施の形態１と同様に、最新の情報を速やかに送信できるサイクリック通信同期方式を提供できる。
また、サイクリックメモリ部よりバッファメモリ部の動作周波数が高い場合でも、ＦＩＦＯメモリを用いることで、動作周波数の差異を吸収して、常に最新のデータをバッファメモリ部から読み込むことができる。
【００４６】
実施の形態３．
図１０は、実施の形態３を示す端末Ａの送信側装置の構成図である。図１１は、実施の形態３を示すＦＩＦＯメモリへの書き込みのフローチャートである。
実施の形態２では、サイクリックメモリ部と動作周波数が違う、１個のバッファメモリ部を設けるものである。
実施の形態３では、サイクリックメモリ部と動作周波数が同じ、複数のバッファメモリ部を設けるものである。
図１０において、実施の形態２と同様の説明は省略して、４０１〜４０３はサイクリックメモリ部２０１と動作周波数が同じ複数のバッファメモリ部、５０４〜５０６はそれぞれ４０１〜４０３とＦＩＦＯメモリ３００とのデータパスである。
【００４７】
次に、サイクリックデータの流れを、図１０をもとに説明する。
データ送信部２００は、定周期のデータ送信タイミングになると、データパス５０１を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定して、データを読み込みネットワークへ送信する。
バッファメモリ部４０１〜４０３は、それぞれ独立した入力を持ち、それぞれの書き込み準備が出来た段階で、ＦＩＦＯメモリ３００への書き込みを行う。但し、バッファメモリ部が複数あるため、他のバッファメモリ部との間で書き込みの競合が発生した場合は若い書き込み先アドレスを優先して、ＦＩＦＯメモリ３００に書き込む。
ＦＩＦＯメモリ３００からサイクリックメモリ部２０１への書き込みは、データ送信部２００の読み込みを優先させて、データパス５０２を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定してデータを書き込む。
【００４８】
データ送信部の読み込みは、実施の形態１と同様なので、説明を省略する。
バッファメモリ部からＦＩＦＯメモリへの書き込みについて、図１１をもとに説明する。
ステップＳ２０１では、起動後にデータの受信待ちとなり、データを受信するまで待機する。
【００４９】
ステップＳ２０２では、データを受信する。
【００５０】
ステップＳ２０３では、受信したデータから書き込み先アドレスを読み込む。
【００５１】
ステップＳ２０４では、他のバッファメモリ部が書き込み中でないかを確認する。
他が書き込み中の場合、ステップＳ２０５を実行する。
他が書き込み中でない場合、ステップＳ２０７を実行する。
【００５２】
ステップＳ２０５では、書き込み中の他のバッファメモリ部のデータから書き込み先アドレスを読み込む。
【００５３】
ステップＳ２０６では、書き込み先アドレスを確認して、若い書き込み先アドレスのバッファメモリ部を優先させる。
他のバッファメモリ部のアドレスが若い場合、ステップＳ２０３に戻る。
他のバッファメモリ部のアドレスが若くない場合、ステップＳ２０７を実行する。
【００５４】
ステップＳ２０７では、データと書き込み先アドレスをＦＩＦＯメモリへ書き込む。
【００５５】
ステップＳ２０８では、全データの書き込みを完了したかをチェックする。
未完了の場合、ステップＳ２０９を実行して、続きのデータを書き込む。
完了の場合、最初のステップＳ２０１に戻る。
【００５６】
ステップＳ２０９では、書き込み先アドレスをカウントアップする。
【００５７】
ＦＩＦＯメモリからサイクリックメモリ部への書き込みは、実施の形態２と同様なので、説明を省略する。
【００５８】
前記のように、実施の形態３によれば、実施の形態１と同様に、最新の情報を速やかに送信できるサイクリック通信同期方式を提供できる。
また、ＦＩＦＯメモリを用いることで、複数のバッファメモリ部からデータを読み込むことができる。
【００５９】
実施の形態４．
図１２は、実施の形態４を示す端末Ａの送信側装置の構成図である。
実施の形態３では、サイクリックメモリ部と動作周波数が同じ、複数のバッファメモリ部を設けるものである。
実施の形態４では、サイクリックメモリ部より複数のバッファメモリ部の動作周波数が高い場合である。
図１２において、実施の形態３と同様の説明は省略して、４０１〜４０３はサイクリックメモリ部２０１より動作周波数が高い複数のバッファメモリ部である。
【００６０】
次に、サイクリックデータの流れを、図１２をもとに説明する。
データ送信部２００は、定周期のデータ送信タイミングになると、データパス５０１を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定して、データを読み込みネットワークへ送信する。
バッファメモリ部４０１〜４０３は、それぞれ独立した入力を持ち、それぞれの書き込み準備が出来た段階で、ＦＩＦＯメモリ３００へ書き込みを行う。但し、バッファメモリ部が複数あるため、他のバッファメモリ部との間で書き込みの競合が発生した場合は、若い書き込み先アドレスを優先して、ＦＩＦＯメモリ３００に書き込む。
ＦＩＦＯメモリ３００からサイクリックメモリ部２０１への書き込みは、データ送信部２００の読み込みを優先させて、データパス５０２を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定してデータを書き込む。
【００６１】
データ送信部の読み込みは、実施の形態１と同様なので、説明を省略する。
また、バッファメモリ部からＦＩＦＯメモリへの書き込みは、実施の形態３と同様なので、説明を省略する。
また、ＦＩＦＯメモリからサイクリックメモリ部への書き込みは、実施の形態２と同様なので、説明を省略する。
【００６２】
前記のように、実施の形態４によれば、実施の形態１と同様に、最新の情報を速やかに送信できるサイクリック通信同期方式を提供できる。
また、サイクリックメモリ部より複数のバッファメモリ部の動作周波数が高い場合でも、ＦＩＦＯメモリを用いることで、動作周波数の差異を吸収して、複数のバッファメモリ部からデータを読み込むことができる。
【００６３】
実施の形態５．
図１３は、実施の形態５を示す端末Ａの送信側装置の構成図である。図１４は、実施の形態５を示すＦＩＦＯメモリへの書き込みのフローチャートである。図１５は、実施の形態５を示すサイクリックメモリ部への書き込みのフローチャートである。
実施の形態４では、サイクリックメモリ部より複数のバッファメモリ部の動作周波数が高い場合である。
実施の形態５では、サイクリックメモリ部より複数のバッファメモリ部の動作周波数が低い場合である。
図１３において、実施の形態４と同様の説明は省略して、４０１〜４０３はサイクリックメモリ部２０１より動作周波数が低い複数のバッファメモリ部である。
【００６４】
次に、サイクリックデータの流れを、図１３をもとに説明する。
データ送信部２００は、定周期のデータ送信タイミングになると、データパス５０１を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定して、データを読み込みネットワークへ送信する。
バッファメモリ部４０１〜４０３は、それぞれ独立した入力を持ち、それぞれの書き込み準備が出来た段階で、ＦＩＦＯメモリ３００へ書き込みを行う。但し、バッファメモリ部が複数あるため、他のバッファメモリ部との間で書き込みの競合が発生した場合は、若い書き込み先アドレスを優先して、ＦＩＦＯメモリ３００に書き込む。
ＦＩＦＯメモリ３００からサイクリックメモリ部２０１への書き込みは、データ送信部２００の読み込みを優先させて、データパス５０２を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定してデータを書き込む。
【００６５】
データ送信部の読み込みは、実施の形態１と同様なので、説明を省略する。
バッファメモリ部からＦＩＦＯメモリへの書き込みについて、図１４をもとに説明する。
まず、起動時にバッファ数を、０にリセットする。
ステップＳ２０１では、起動後にデータの受信待ちとなり、データを受信するまで待機する。
【００６６】
ステップＳ２０２では、データを受信する。
【００６７】
ステップＳ２０３では、受信したデータから書き込み先アドレスを読み込む。
【００６８】
ステップＳ２０４では、他のバッファメモリ部が書き込み中でないかを確認する。
他が書き込み中の場合、ステップＳ２０５を実行する。
他が書き込み中でない場合、ステップＳ２０７を実行する。
【００６９】
ステップＳ２０５では、書き込み中の他のバッファメモリ部のデータから書き込み先アドレスを読み込む。
【００７０】
ステップＳ２０６では、書き込み先アドレスを確認して、若い書き込み先アドレスのバッファメモリ部を優先させる。
他のバッファメモリ部のアドレスが若い場合、ステップＳ２０３に戻る。
他のバッファメモリ部のアドレスが若くない場合、ステップＳ２０７を実行する。
【００７１】
ステップＳ２０７では、データと書き込み先アドレスをＦＩＦＯメモリへ書き込む。
【００７２】
ステップＳ２０８では、バッファメモリ部毎で全データの書き込みを完了したかをチェックする。
未完了の場合、ステップＳ２０９を実行して、続きのデータを書き込む。
完了の場合、ステップＳ２１０を実行する。
【００７３】
ステップＳ２０９では、書き込み先アドレスをカウントアップする。
【００７４】
ステップＳ２１０では、バッファメモリ部毎にバッファ数をカウントアップして、最初のステップＳ２０１に戻る。
ここで、バッファメモリ部毎にバッファ数をカウントすることで、図１３のバッファメモリ部４０２のようなデータを、ＦＩＦＯメモリにおいて、２ブロック分を１つに纏めたデータとして管理する。
【００７５】
次に、ＦＩＦＯメモリからサイクリックメモリ部への書き込みについて、図１５をもとに説明する。
ステップＳ３０１では、起動後にデータの受信待ちとなり、データを受信するまで待機する。
【００７６】
ステップＳ３０２では、データを受信し、バッファ数が１以上ならばステップＳ３０３を実行する。
【００７７】
ステップＳ３０３では、受信したデータから書き込む先アドレスを読み込む。
【００７８】
ステップＳ３０４では、データ送信部の読み込み先アドレスと書き込み先アドレスを確認する。
アドレスが一致した場合、１クロック待ってから再度、アドレスを確認する。
アドレスが不一致の場合、ステップＳ３０５を実行する。
【００７９】
ステップＳ３０５では、データの書き込みを行う。
【００８０】
ステップＳ３０６では、バッファメモリ部毎で全データの書き込みを完了したかをチェックする。
未完了の場合、ステップＳ３０７を実行して、続きのデータを書き込む。
完了の場合、ステップＳ３０８を実行する。
【００８１】
ステップＳ３０７では、書き込み先アドレスをカウントアップする。
【００８２】
ステップＳ３０８では、バッファメモリ部毎にバッファ数をカウントダウンして、最初のステップＳ３０１に戻る。
なお、ステップＳ３０２とステップＳ３０８において、バッファ数で処理することで、図１３のバッファメモリ部４０２のようなデータを、２ブロック分を１つに纏めたデータとして、ＦＩＦＯメモリからサイクリックメモリ部へ書き込む。
【００８３】
前記のように、実施の形態５によれば、実施の形態１と同様に、最新の情報を速やかに送信できるサイクリック通信同期方式を提供できる。
また、サイクリックメモリ部より複数のバッファメモリ部の動作周波数が低い場合でも、ＦＩＦＯメモリを用いて、バッファメモリ部毎にデータを纏めて読み込みサイクリックメモリ部へ纏めて書き込むことで、動作周波数の差異を吸収して、複数のバッファメモリ部からデータを読み込むことができると共に、バッファメモリ部毎のデータの同時性を保証できる。
【００８４】
実施の形態６．
図１６は、実施の形態６を示すデータ送信部の読み込みのフローチャートである。図１７は、実施の形態６を示すサイクリックメモリ部への書き込みのフローチャートである。
実施の形態１では、データ送信部が読み込みを優先して、データを読み込みネットワークへ送信するものである。
実施の形態６では、データ送信部が書き込みを優先して、データを読み込みネットワークへ送信するものである。
【００８５】
次に、サイクリックデータの流れを、図１をもとに説明する。
データ送信部２００は、定周期のデータ送信タイミングになると、サイクリックメモリ部２０１への書込みを優先して、データパス５０１を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定して、データを読み込みネットワークへ送信する。
バッファメモリ部４００からサイクリックメモリ部２０１への書き込みは、データパス５０３を経由して、サイクリックメモリ部２０１を分割した単位毎にアドレスを指定してデータを書き込む。
【００８６】
次に、データ送信部の読み込みについて、図１６をもとに説明する。
ステップＳ１０１では、起動後に読み込み先アドレスを、０にリセットする。
【００８７】
ステップＳ１０２では、定周期のデータ送信タイミングになるまで、定周期時間ほど待機する。
【００８８】
ステップＳ１０３では、データ送信タイミングになると、読み込み先アドレスをカウントアップする。
【００８９】
ステップＳ１０４では、データ送信部の読み込み先アドレスと書き込み先アドレスを確認する
アドレスが一致した場合、１クロック待ってから再度、アドレスを確認する。
アドレスが不一致の場合、ステップＳ１０５を実行する。
【００９０】
ステップＳ１０５では、サイクリックメモリ部から指定アドレスのデータを読み込む。
【００９１】
ステップＳ１０６では、読み込んだデータをネットワークへ送信する。
【００９２】
ステップＳ１０７では、全データの送信を完了したかをチェックする。
未完了の場合、ステップＳ１０３を実行して、続きのデータを読み込む。
完了の場合、最初のステップＳ１０１に戻る。
【００９３】
次に、バッファメモリ部からサイクリックメモリ部への書き込みについて、図１７をもとに説明する。
ステップＳ２０１では、起動後にデータの受信待ちとなり、データを受信するまで待機する。
【００９４】
ステップＳ２０２では、データを受信する。
【００９５】
ステップＳ２０３では、受信したデータから書き込み先アドレスを読み込む。
【００９６】
ステップＳ２０４では、データの書き込みを行う。
【００９７】
ステップＳ２０５では、全データの書き込みを完了したかをチェックする。
未完了の場合、ステップＳ２０６を実行して、続きのデータを書き込む。
完了の場合、最初のステップＳ２０１に戻る。
【００９８】
ステップＳ２０６では、書き込み先アドレスをカウントアップする。
【００９９】
前記のように、実施の形態６によれば、データ送信部が書き込みを優先して、サイクリックメモリ部のデータを読み込むことにより、常に最新のデータをサイクリックメモリ部へ書き込み可能となることで、最新の情報を速やかに送信できるサイクリック通信同期方式を提供できる。
【符号の説明】
【０１００】
１０１...端末Ａの送信側装置、  ２００...データ送信部、
２０１...サイクリックメモリ部（ｍ−Ａ）、４００...バッファメモリ部、
５０１...データ送信部とサイクリックメモリ部間のデータパス、
５０３...バッファメモリ部とサイクリックメモリ部間のデータパス
【図１】
2011215734.tif 000003
【図２】
2011215734.tif 000004
【図３】
2011215734.tif 000005
【図４】
2011215734.tif 000006
【図５】
2011215734.tif 000007
【図６】
2011215734.tif 000008
【図７】
2011215734.tif 000009
【図８】
2011215734.tif 000010
【図９】
2011215734.tif 000011
【図１０】
2011215734.tif 000012
【図１１】
2011215734.tif 000013
【図１２】
2011215734.tif 000014
【図１３】
2011215734.tif 000015
【図１４】
2011215734.tif 000016
【図１５】
2011215734.tif 000017
【図１６】
2011215734.tif 000018
【図１７】
2011215734.tif 000019