(57)【要約】【課題】データ転送処理時間を短縮可能な、共有メモリを経由して周期的に一定量のデータ転送を行うモジュール間データ転送装置およびその方法を提供する。【解決手段】出力側モジュール１は、出力データ領域１１上にある出力データと、共有メモリ３上にある出力データの前回値とを比較する出力データ比較手段１３と、出力データに変化があった場合のみ、出力データを周期データ転送領域３１へ転送する出力データ転送手段１２と、共有メモリ３上に設けられたデータ変化フラグ領域３３のフラグをセットするデータ変化フラグセット手段１４とを備え、入力側モジュール２は、データ変化フラグ領域３３のフラグがセットされているかチェックするフラグ変化検出手段２３と、データ変化フラグ領域３３のフラグがセットされている場合のみ、周期データ転送領域３１から入力データ領域２１へデータ転送する入力データ転送手段２２を備える。【選択図】    図１
2005293093.tif 000002
【特許請求の範囲】
【請求項１】
共有メモリを経由して出力側モジュールと入力側モジュール間で周期的に一定量のデータ転送を行うモジュール間データ転送装置において、
前記出力側モジュール（１）は、出力データ領域（１１）上にある出力データと、前記共有メモリ（３）上の周期データ転送領域（３１）上にある出力データの前回値とを比較する出力データ比較手段（１３）と、
前記出力データに変化があった場合のみ、前記出力データ領域（１１）から出力データを前記周期データ転送領域（３１）へ転送する出力データ転送手段（１２）と、
前記共有メモリ（３）上に前記出力データ領域（１１）に対応して設けられたデータ変化フラグ領域（３３）のフラグをセットするデータ変化フラグセット手段（１４）とを備え、
入力側モジュール（２）は、前記データ変化フラグ領域（３３）のフラグがセットされているかチェックするフラグ変化検出手段（２３）と、
前記データ変化フラグ領域（３３）のフラグがセットされている場合のみ、前記周期データ転送領域（３１）から前記入力側モジュール（２）内の入力データ領域（２１）へデータ転送する入力データ転送手段（２２）とを備えたことを特徴とするモジュール間データ転送装置。
【請求項２】
共有メモリを経由して出力側モジュールと入力側モジュール間で周期的に一定量のデータ転送を行うモジュール間データ転送方法において、
前記出力側モジュール内の出力データ領域上にある出力データと、前記共有メモリ上の周期データ転送領域上にある出力データの前回値とを比較するステップ（ＳＴ２）と、
前記出力データに変化があった場合のみ、前記出力データ領域から出力データを前記周期データ転送領域へ転送するステップ（ＳＴ３）と、
前記共有メモリ上に前記出力データ領域に対応して設けられたデータ変化フラグ領域のフラグをセットするステップ（ＳＴ４）と、
前記出力側モジュールのデータ転送が完了すると、前記入力側モジュールは前記共有メモリ上の前記データ変化フラグ領域のフラグがセットされているかチェックするステップ（ＳＴ８）と、
前記データ変化フラグ領域のフラグがセットされている場合のみ、前記共有メモリ上の前記周期データ転送領域から前記入力側モジュール内の入力データ領域へデータ転送するステップ（ＳＴ９）を有することを特徴とするモジュール間データ転送方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、共有メモリを経由して周期的にデータ転送を行うモジュール間データ転送装置およびその方法に関する。
【背景技術】
【０００２】
モジュール間で共有メモリを経由して周期的にデータ転送を行う場合、従来技術では周期ごとに指定されたデータ領域の全てのデータを無条件に転送していた。（例えば、特許文献１参照）
図４は、従来技術によるモジュール間データ転送装置およびその方法の共有メモリ構成図である。
図４において、１は出力側モジュール、１１は出力側モジュールのローカルメモリ上にある出力データ領域、２は入力側モジュール、２１は入力側モジュールのローカルメモリ上にある入力データ領域、３は出力側モジュール１と入力側モジュール２から参照される共有メモリ、３１は共有メモリ３上に割り当てられた周期データ転送領域、３２は共有メモリ３上に割り当てられたハンドシェーク領域である。
図５は、従来技術によるモジュール間データ転送装置およびその方法の動作を示すフローチャートであり、（ａ）は出力側モジュール処理、（ｂ）は入力側モジュール処理を示している。
先ず、図４および図５を用いて、出力側モジュール１の一周期でのデータ転送処理の動作を説明する。
出力側モジュール１は、データ転送処理が開始されるとハンドシェーク領域３２により出力可能かどうかを判断し（ステップＳＴ４１）、出力可能であれば、出力側モジュール１内の出力データ領域１１から出力データを共有メモリ３上の周期データ転送領域３１へ転送する（ステップＳＴ４２）。この場合、転送されるデータが前回周期から変化していなくても無条件に全てのデータ転送を行う。全てのデータの転送を終了したと判断すると（ステップＳＴ４３）、ハンドシェーク領域３２により出力完了を入力側モジュール２に通知して処理を終了する（ステップＳＴ４４）。次の周期になると出力側モジュール１は前述のステップＳＴ４１からデータ転送処理を繰り返す。
次に、図４および図５を用いて、入力側モジュール２の一周期でのデータ転送処理の動作を説明する。
入力側モジュール２は、データ転送処理が開始されるとハンドシェーク領域３２を監視しながら出力側モジュール１のデータ転送処理が完了するまで待機し、出力側モジュール１のデータ転送処理が完了して入力側モジュール２のデータ転送処理が実行可能と判断すると（ステップＳＴ４５）、共有メモリ３上の周期データ転送領域３１から入力側モジュール２内の入力データ領域２１に対して無条件に転送し（ステップＳＴ４６）、全てのデータの転送を終了したと判断すると（ステップＳＴ４７）、ハンドシェーク領域３２に入力処理完了を通知して処理を終了する（ステップＳＴ４８）。この入力処理完了通知により、出力側モジュール１は次のデータ転送処理が可能となる。次の周期になると入力側モジュール２は前述のステップＳＴ４５からデータ転送処理を繰り返す。
このように、出力側モジュール１は指定された範囲の全てのデータを無条件にデータ転送領域３１に出力し、入力側モジュール２は周期データ転送領域３１から指定された範囲の全てのデータを無条件に入力する。
【特許文献１】特開２００１−２２９１３６  （第３頁  図１２）
【発明の開示】
【発明が解決しようとする課題】
【０００３】
ところが、従来技術のモジュール間データ転送装置およびその方法では指定された全てのデータを無条件に転送するようになっており、変化のないデータについても転送処理が行われてしまうため、データ転送処理時間が長くなるという問題点があった。そこで本発明はこのような問題点に鑑みてなされたものであり、データ転送処理時間を短縮することを可能とするモジュール間データ転送装置およびその方法を提供することを目的とする。
【課題を解決するための手段】
【０００４】
上記問題を解決するために、請求項１記載の発明は、共有メモリを経由して出力側モジュールと入力側モジュール間で周期的に一定量のデータ転送を行うモジュール間データ転送装置において、前記出力側モジュールは、出力データ領域上にある出力データと、前記共有メモリ上の周期データ転送領域上にある出力データの前回値とを比較する出力データ比較手段と、前記出力データに変化があった場合のみ、前記出力データ領域から出力データを前記周期データ転送領域へ転送する出力データ転送手段と、前記共有メモリ上に前記出力データ領域に対応して設けられたデータ変化フラグ領域のフラグをセットするデータ変化フラグセット手段とを備え、入力側モジュールは、前記データ変化フラグ領域のフラグがセットされているかチェックするフラグ変化検出手段と、前記データ変化フラグ領域）のフラグがセットされている場合のみ、前記周期データ転送領域から前記入力側モジュール内の入力データ領域へデータ転送する入力データ転送手段とを備えたことを特徴としている。
また、請求項２記載の発明は、共有メモリを経由して出力側モジュールと入力側モジュール間で周期的に一定量のデータ転送を行うモジュール間データ転送方法において、
前記出力側モジュール内の出力データ領域上にある出力データと、前記共有メモリ上の周期データ転送領域上にある出力データの前回値とを比較するステップと、前記出力データに変化があった場合のみ、前記出力データ領域から出力データを前記周期データ転送領域へ転送するステップと、前記共有メモリ上に前記出力データ領域に対応して設けられたデータ変化フラグ領域のフラグをセットするステップと、前記出力側モジュールのデータ転送が完了すると、前記入力側モジュールは前記共有メモリ上の前記データ変化フラグ領域のフラグがセットされているかチェックするステップと、前記データ変化フラグ領域のフラグがセットされている場合のみ、前記共有メモリ上の前記周期データ転送領域から前記入力側モジュール内の入力データ領域へデータ転送するステップを有することを特徴としている。
【発明の効果】
【０００５】
本発明のモジュール間データ転送装置およびその方法によれば、データ転送の出力側、入力側いずれもデータの変化を検出し、変化したデータのみを転送することで、データ転送の出力側、入力側いずれも無駄なデータ転送を省略し、データ転送処理時間を短縮することが可能である。
【発明を実施するための最良の形態】
【０００６】
以下、本発明の具体的実施例について、図に基づいて説明する。
【実施例１】
【０００７】
図１は本発明によるモジュール間データ転送装置のブロック図である。
図１において、１は出力側モジュール、２は入力側モジュール、３は出力側モジュール１と入力側モジュール２から参照される共有メモリ、１１は出力側モジュールのローカルメモリ上にある出力データ領域、１２は出力データに変化があった場合のみ出力データ領域１１から出力データを周期データ転送領域３１へ転送する出力データ転送手段、１３は出力データ領域１１上にある出力データと共有メモリ３上の周期データ転送領域３１上にある出力データの前回値とを比較する出力データ比較手段、１４は共有メモリ３上に出力データ領域に対応して設けられたデータ変化フラグ領域のフラグをセットするデータ変化フラグセット手段、２１は入力側モジュールのローカルメモリ上にある入力データ領域、２２はデータ変化フラグ領域３３のフラグがセットされている場合のみ、周期データ転送領域３１から入力側モジュール２内の入力データ領域２１へデータ転送する入力データ転送手段、２３はデータ変化フラグ領域３３のフラグがセットされているかチェックするフラグ変化検出手段、３１は共有メモリ３上に割り当てられた周期データ転送領域、３２は共有メモリ３上に割り当てられたハンドシェーク領域である。
以下、図１を用いて本実施例のモジュール間データ転送装置の動作を説明する。
出力側モジュール１は、出力データ比較手段１３により、出力データ領域１１上にある出力データと、前記共有メモリ３上の周期データ転送領域３１上にある出力データの前回値とを比較して、前記出力データに変化があった場合のみ、前記出力データ領域１１から出力データを出力データ転送手段１２により前記周期データ転送領域３１へ転送すると共に、データ変化フラグセット手段１４により前記共有メモリ３上に前記出力データ領域１１に対応して設けられたデータ変化フラグ領域３３のフラグをセットする。
入力側モジュール２は、フラグ変化検出手段２３により前記データ変化フラグ領域３３のフラグがセットされているかチェックして、前記データ変化フラグ領域３３のフラグがセットされている場合のみ、入力データ転送手段２２により前記周期データ転送領域３１から前記入力側モジュール２内の入力データ領域２１へデータ転送する。
【０００８】
図２は、本発明によるモジュール間データ転送装置およびその方法の共有メモリ構成図である。
図２において、図４と同じ符号の構成要素については、同じ構成要素を示している。また、３３は本発明により新たに加えられた共有メモリ３上に割り当てられたデータ変化フラグ領域である。
図３は、本発明によるモジュール間データ転送装置およびその方法の動作を示すフローチャートであり、（ａ）は出力側モジュール処理、（ｂ）は入力側モジュール処理を示している。
本発明の実施例を示す図２、３が、従来技術を示す図４、５と異なる点は、（１）共有メモリ３が、データを授受する周期データ転送領域３１に対して、周期データ転送領域３１の一定範囲ごとに対応してデータ変化の有無を示すデータ変化フラグ領域３３を新たに備えた点、（２）出力側モジュール１が、指定された範囲のデータの内、データに変化があったものだけを周期データ転送領域３１へ出力すると共にデータ変化フラグ領域３３のフラグをセットする点、（３）入力側モジュール２が、データ転送領域３１から指定された範囲のデータの内、データ変化フラグ領域３３のフラグによりデータに変化があったものだけを入力する点である。
先ず、図２および図３（ａ）を用いて、出力側モジュール１のデータ転送処理方法の一周期での動作を説明する。
出力側モジュール１は、データ転送処理が開始されると、ハンドシェーク領域３２により出力可能かどうか判断し（ステップＳＴ１）、出力が可能であればデータ転送を開始する（ステップＳＴ２）。次に、出力側モジュール１内の出力データ領域１１上にある出力データと、共有メモリ３上の周期データ転送領域３１上にある出力データの前回値とを比較し、データに変化がない場合はデータ転送を行わず後述のステップＳＴ５へ飛び、データに変化があった場合には、出力側モジュール１内の出力データ領域１１から出力データを共有メモリ３上の周期データ転送領域３１へ転送する（ステップＳＴ３）。次に、共有メモリ３上のデータ変化フラグ領域３３の出力データに対応したフラグをセットする（ステップＳＴ４）。以上を全てのデータに対して繰り返し、全てのデータの転送を終了したと判断すると（ステップＳＴ５）、ハンドシェーク領域３２により出力完了を入力側モジュール２に通知し処理を終了する（ステップＳＴ６）。次の周期になると出力側モジュール１は前述のステップＳＴ１からデータ転送処理を繰り返す。
次に、図２および図３（ｂ）を用いて、入力側モジュール２のデータ転送処理方法の一周期での動作を説明する。
入力側モジュール２は、データ転送処理が開始されるとハンドシェーク領域３２を監視し、出力側モジュール１のデータ転送処理が完了するまで待機し、出力側モジュール１のデータ転送処理が完了し入力側モジュール２のデータ転送処理が実行可能と判断すると（ステップＳＴ７）、共有メモリ３上のデータ変化フラグ領域３３の入力データに対応したフラグをチェックし（ステップＳＴ８）、フラグがセットされていない場合は後述のステップＳＴ２４へ飛び、データ転送を行わない。フラグがセットされていることでデータ変化を検出した場合は、共有メモリ３上の周期データ転送領域３１から入力側モジュール２内の入力データ領域２１のデータを転送する（ステップＳＴ９）。全てのデータの転送を終了したと判断すると（ステップＳＴ１０）、ハンドシェーク領域３２に入力処理完了を通知し、処理を終了する（ステップＳＴ１１）。この入力処理完了通知により、出力側モジュール１は次のデータ転送処理が可能となる。次の周期になると入力側モジュール２は前述のステップＳＴ７からデータ転送処理を繰り返す。
出力側モジューおよび入力モジュールでの上記ステップ処理は、共有メモリ３上にデータ変化フラグ領域３３を割り当てることにより、それぞれマイクロコンピュータで容易に実現が可能である。
【０００９】
以上述べたように、本発明のモジュール間データ転送装置およびその方法では、共有メモリ３上に新たに周期データ転送領域３１の範囲ごとに対応するデータ変化フラグを設けており、出力側モジュール１は指定された範囲のデータのうちデータ変化があったものだけを周期データ転送領域３１に出力し、入力側モジュール２は周期データ転送領域３１から指定された範囲のデータのうちデータ変化があったものだけを入力する構成にしたので、変化のないデータの転送処理を省略することができ、データ転送処理時間の短縮を行うことができる。
【産業上の利用可能性】
【００１０】
産業用システム電機品向けシステムコントローラなどの制御装置のモジュール間データ転送に広く適用可能である。
【図面の簡単な説明】
【００１１】
【図１】本発明によるモジュール間データ転送装置のブロック図
【図２】本発明によるモジュール間データ転送装置およびその方法の共有メモリ構成図
【図３】本発明によるモジュール間データ転送装置およびその方法の動作を示すフローチャート            （ａ）出力側モジュール処理            （ｂ）入力側モジュール処理
【図４】従来技術によるモジュール間データ転送装置およびその方法の共有メモリ構成図
【図５】従来技術によるモジュール間データ転送装置およびその方法の動作を示すフローチャート            （ａ）出力側モジュール処理            （ｂ）入力側モジュール処理
【符号の説明】
【００１２】
１    出力側モジュール
１１  出力データ領域
１２  出力データ転送手段
１３  出力データ比較手段
１４  データ変化フラグセット手段
２    入力側モジュール
２１  入力データ領域
２２  入力データ転送手段
２３  フラグ変化検出手段
３    共有メモリ
３１  周期データ転送領域
３２  ハンドシェーク領域
３３  データ変化フラグ領域
【図１】
2005293093.tif 000003
【図２】
2005293093.tif 000004
【図３】
2005293093.tif 000005
【図４】
2005293093.tif 000006
【図５】
2005293093.tif 000007