JP3861649B2 - モジュール間のメッセージ通信方式 - Google Patents
モジュール間のメッセージ通信方式 Download PDFInfo
- Publication number
- JP3861649B2 JP3861649B2 JP2001313221A JP2001313221A JP3861649B2 JP 3861649 B2 JP3861649 B2 JP 3861649B2 JP 2001313221 A JP2001313221 A JP 2001313221A JP 2001313221 A JP2001313221 A JP 2001313221A JP 3861649 B2 JP3861649 B2 JP 3861649B2
- Authority
- JP
- Japan
- Prior art keywords
- request
- response
- data
- command
- frame
- 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 - Fee Related
Links
Images
Landscapes
- Programmable Controllers (AREA)
Description
【発明の属する技術分野】
この発明は、プログラマブルコントローラを構成するCPUモジュールと通信モジュールとの間のメッセージ通信方式に関する。
【0002】
【従来の技術】
一般に、CPUモジュールと通信モジュールとの間のやりとりをメッセージ通信によって行うようにしたプログラマブルコントローラにおいては、例えば図5に示すように、要求コマンド(要求フレームF51)の発行元である通信モジュールM1においては、この要求コマンドF51に対する応答コマンド(応答フレームF61)を受信してから、次の要求コマンドを発行するための要求コマンド処理を行うようにしている。
【0003】
また、受信した要求コマンドで要求されている処理を行うことができない場合、例えば、要求コマンドで複数領域のデータの読み出しを要求され、要求された複数領域のデータ全ての読み出しを行うことができない場合には、要求コマンドに対する処理ができなかったと判定し、異常応答として応答コマンドを生成し、これを要求コマンドの送信元モジュールに返送するようにしている。
【0004】
【発明が解決しようとする課題】
しかしながら、上述のように、要求コマンドの送信元のモジュールにおいて、要求コマンドに対する応答コマンドを受信した時点で他の処理に移行するような場合、例えば、ネットワークとの通信処理を行う通信モジュールM1から、図示しない各種入出力装置を管理するCPUモジュールM2に対して、複数領域のデータの読み出し要求を行う要求コマンドを送信した場合、CPUモジュールM2では、要求コマンドをうけて指定された複数領域のデータの読み出しを行い、これをもとに応答コマンドを生成しこれを返送することになる。このとき、指定されたデータの領域数が多い場合には、その分CPUモジュールM2での処理時間がかかることになる。
【0005】
この間、CPUモジュールM2からは応答コマンドが送信されないため、要求コマンドを送信した通信モジュールM1では、要求コマンドに対する応答コマンドの受信待ち状態となり、通信モジュールM1では、この間は他の処理を行うことができないという問題がある。
また、CPUモジュールM2において、データの読み出し処理時に、何らかの異常が発生した等によって全てのデータを得ることができない場合には、要求コマンドに対する応答コマンドを得ることができなかったとして、図6に示すように、応答コマンド(応答フレームF62)にリードデータを付加せずに、トータルサイズは零として送信するようにしている。
【0006】
つまり、リード指定された複数領域のデータのうちその一部のみが異常であり、正常にリードすることができたものについても、リードデータを通信モジュールM1に送信しないようにしている。このため、リード要求を行った図示しない上位装置においては、リード処理において正常に獲得することができなかったデータだけでなく、正常に獲得することができたデータについてもリフレッシュを行うことができないという問題がある。
【0007】
そこで、この発明は、上記従来の未解決の問題点に着目してなされたものであり、要求コマンドの送信元のモジュールにおける待ち時間を削減すると共に、的確にデータのリフレッシュを行うことの可能なモジュール間のメッセージ通信方式を提供することを目的としている。
【0008】
【課題を解決するための手段】
上記目的を達成するために、本発明の請求項1に係るモジュール間のメッセージ通信方式は、内部バスで接続された、要求コマンドを送信する要求側モジュールと前記要求コマンドで指定された処理を実行する応答側モジュールとを有し、前記要求側モジュールは、送信した要求コマンドに対する応答コマンドを前記応答側モジュールから受信したときに、他の処理を実行可能な状態に移行するようになっているプログラマブルコントローラのモジュール間のメッセージ通信方式であって、前記要求コマンドを受信した応答側モジュールは、前記要求コマンドが、複数領域データの読み出し要求であるときには、前記要求コマンドを受信したことを表す承認応答を前記要求側モジュールに返送した後、前記要求コマンドに対する処理を行って前記要求コマンドに対する応答コマンドを前記要求側モジュールに送信し、前記要求コマンドを送信した要求側モジュールは、前記要求コマンドに対する承認応答を受信したとき他の処理を実行可能な状態に移行し、前記応答コマンドを受信したときに当該応答を受信したことを表す承認応答を返送するようになっていることを特徴としている。
【0009】
なお、ここでいう複数領域データは、複数の異なる領域に格納されたデータのことをいう。
また、請求項2に係るモジュール間のメッセージ通信方式は、前記要求コマンドを受信した応答側モジュールは、要求される複数領域データのうち、正常データを得ることができなかったデータが存在する場合には、正常データを得ることができたデータのみを前記応答コマンドに付加するようになっていることを特徴としている。
【0011】
【発明の実施の形態】
以下に、本発明の実施の形態を説明する。
図1は、本発明におけるモジュール間のメッセージ通信方式を適用したプログラマブルコントローラの一例を示す構成図であって、プログラマブルコントローラ(PLC)10は、ネットワークシステムを構成する図示しない各種制御装置或いは制御用パソコン等の上位装置と通信回線Lを介して接続されている。
【0012】
前記プログラマブルコントローラ10は、通信回線Lを介して他の機器との通信を行う通信モジュールM1と、上位装置から通知される、図示しない各種入出力装置への出力情報を中継すると共に、各種入出力装置からの入力情報に対し、これを所定のフォーマットに変換したり、或いは前記入力情報に基づいて所定の演算処理を行う等の処理を行ってその結果を所定の記憶領域に記憶するCPUモジュールM2と、を少なくとも備えており、これらモジュールは内部バス20によって接続されている。
【0013】
前記通信モジュールM1は、図2に示すように、通信回線Lを介して他の装置から自己のプログラマブルコントローラ宛に送信されたコマンドフレームを受信し、これに基づき所定フォーマットの要求フレームF1を生成する。そして、この生成した要求フレームF1を、前記内部バス20を介して前記CPUモジュールM2に送信して要求フレームF1に対する応答フレームF2の受信待ち状態となり、前記応答フレームF2を受信したとき、他の処理を実行可能な状態に移行する。また、上位装置から、CPUモジュールM2で記憶する複数の異なる領域に格納された複数領域データの送信指示が行われた場合には、図3に示すように、要求フレームF11を生成し、これを前記CPUモジュールM2に送信後、前記CPUモジュールM2から要求フレームF11に対するACKフレームF21の受信待ち状態となり、前記ACKフレームF21を受信したとき、他の処理を実行可能な状態に移行する。そして、ACKフレームF21に付加された通信状態が正常であれば、他の処理を実行し、通信状態が異常であれば再度要求フレームを送信する等の処理を行う。
【0014】
その後、前記CPUモジュールM2から要求フレームF11に対する応答フレームF22を受信したときには、前記CPUモジュールM2から応答フレームF22を受信したことを表すACKフレーム(承認応答)F12をCPUモジュールM2に送信する。このACKフレーム12には、例えば応答フレームF22を正常に受信したか否かを表す情報を付加する。そして、CPUモジュールM1から受信した応答フレームF22を、所定のフォーマットに変換して通信回線Lを介して要求元の装置宛に送信する。
【0015】
一方、前記CPUモジュールM2は、図2に示すように、前記通信モジュールM1から要求フレームF1を受信したときには、この要求フレームF1で指示された処理を行って応答フレームF2を生成し、これを通信モジュールM1に送信する。また、前記要求フレームF1で、CPUモジュールM2で記憶する複数領域データの送信指示が行われた場合には、図3に示すように、要求フレームF11を受信したことを通知するためのACKフレーム(承認応答)F21を通信モジュールM1に送信する。前記ACKフレームF21には、例えば、要求フレームF11を正常に受信したか否かを表す情報を付加して送信する。
【0016】
そして、CPUモジュールM2は、前記ACKフレームF21を送信した後、前記要求フレームF11で指示された処理を行い、これに応じた応答フレームF22を生成し、通信モジュールM1に送信する。そして、応答フレームF22に対する通信モジュールM1からのACKフレームF12の受信待ち状態となる。このとき、例えば、CPUモジュール2において所定の記憶領域に格納されている指定された複数領域データを読み出すことができない場合、或いは何らかの異常によって、指定された複数領域データを全て獲得することができなかった場合には、獲得することができたデータのみ前記応答フレームF22に付加し、獲得できなったものについては、獲得できなかったデータに該当する後述のリードサイズ214bを“0”に設定する。
【0017】
そして、CPUモジュールM2は、応答フレームF22に対する応答として通信モジュールM1からACKフレームF12を受信したとき、他の処理を実行可能な状態に移行し、前記ACKフレームF12で通信状況が正常として設定されている場合には他の処理を実行し、通信状況として異常が設定されている場合には、再度応答フレームを送信する等の処理を行う。
【0018】
前記CPUモジュールM2で記憶する複数領域データの読み出し要求を行うための要求フレームF11は、例えば図3に示すように構成されている。つまり、読み出すデータ数と読み出し要求であることを指示する情報(図3では、N個リード要求)111と、フレームのトータルサイズ112と、読み出し領域を指定するリードアドレス113a及び読み出しサイズを指定するリードサイズ113bとを含んで構成され、リードアドレス113a及びリードサイズ113bは、前記N個リード要求111において指定された個数N個分付加されている。
【0019】
また、要求フレームが複数領域データの読み出しを要求する要求フレームF11であるときの、前記CPUモジュールM2からのACKフレームF21は、例えば図3に示すように構成されている。つまり、N個リード要求に対する応答であることを表す情報(図3の場合、N個リード要求)221、要求フレームF11を正常に受信することができたか否かを表す状態情報222とから構成されている。
【0020】
また、要求フレームが複数領域データの読み出しを要求する要求フレームF11であるときの、これに対する前記CPUモジュールM2からの応答フレームF22は、例えば図3のF22に示すように、N個リード要求に対する応答であることを表す情報(図3の場合N個リード応答)211、要求フレームF11で指定された全てのデータを正常に読み出すことができたか否かを表すデータの獲得情報212、トータルサイズ213、リードアドレス214a及びリードサイズ214b及びリードデータ214cとから構成され、前記リードアドレス214a及びリードサイズ214b及びリードデータ214cは、前記N個リード要求111において指定されたN個分付加されている。
【0021】
また、要求フレームが複数領域データの読み出しを要求する要求フレームF11であるときの、前記通信モジュールM1からCPUモジュールM2へのACKフレーム12は、例えば図3に示すように構成されている。つまり、N個リード応答に対する応答であることを表す情報(図3の場合、N個リード応答)121、応答フレームF12を正常に受信することができたか否かを表す状態情報122とから構成されている。
【0022】
次に、上記実施の形態の動作を説明する。
今、通信回線Lを介して接続された図示しない上位装置から、プログラマブルコントローラ10宛の処理要求のコマンドフレームが送信されると、プログラマブルコントローラ10の通信モジュールM1では、自己宛のコマンドフレームであることからこれを取り込む。そして、処理要求が、プログラマブルコントローラ10で記憶している複数領域データのリード要求でないとき、例えば、連続した単一領域のリード要求である場合には、通信モジュールM1では、図2に示すように、従来と同様の手順にしたがって、要求フレームF1を作成してこれを送信し、このとき、複数領域データのリード要求ではないから、要求フレームF1に対する応答フレームF2を待つ待ち状態に移行する。一方、CPUモジュールM2では、要求フレームF1を受信すると、複数領域データのリード要求ではないから、要求フレームF1で指定された処理を行い、これに対する応答フレームF2を生成して、通信モジュールM1に送信する。通信モジュールM1では、応答フレームF2を受信したことから、待ち状態が解除され、他の処理を実行可能な状態に移行する。
【0023】
一方、上位装置から、プログラマブルコントローラ10宛に、プログラマブルコントローラ10で記憶している複数領域データをリードするよう指示するコマンドフレームが送信されると、プログラマブルコントローラ10の通信モジュールM1においては、これを取り込み、図3のF11に示す構成の要求フレームを生成する。つまり、N個のリード要求であるという情報111、トータルサイズ112、各読み出しデータ毎のリードアドレス113a、リードサイズ113bを指定する情報とから、要求フレームF11を生成し、これをCPUモジュールM2宛に送信する。そして、通信モジュールM1は、CPUモジュールM2からACKフレームF21の受信待ち状態となる。
【0024】
一方、CPUモジュールM2では、要求フレームF11を受信したことから、まず、要求フレームF11を正常に受信することができたかどうかを判定し、その受信状況を付加してACKフレームF21を通信モジュールM1に送信する。そして、要求フレームF11の指示にしたがって、リードアドレス113a及びリードサイズ113bで指定された領域から、指定されたN個のデータの読み出しを行い、指定されたデータを正常に得ることができた場合には、図3のF22に示すように、指定された領域から読み出したデータをリードサイズ214bの後に付加する。そして、要求フレームF11で指定されたデータを全て正常に得ることができた場合には、データの獲得情報212を“正常”として設定し、この応答フレームF22を通信モジュールM1に送信する。そして、通信モジュールM1からACKフレームF12の受信待ち状態となる。
【0025】
前記通信モジュールM1では、前記要求フレームF11を送信した後、これに対する応答としてACKフレームF21を受信すると、その状態情報222を参照し、正常であれば、他の処理を実行可能な状態に移行し、異常であるならば、再度要求フレームF11を送信する等の処理を行う。
そして、CPUモジュールM2から応答フレームF22を受信すると、そのデータの獲得情報212を参照し、図3の場合、正常にデータが獲得されていると設定されているから、この応答フレームF22を所定フォーマットに変換し、通信回線Lを介して、複数領域データの読み出し要求のコマンドフレームに対する応答として、要求元の上位装置宛に送信する。
【0026】
上位装置では、複数領域データの読み出し要求のコマンドフレームに対する応答のコマンドフレームを受信すると、データの獲得情報が正常と設定されていることから、全てのデータを正常に獲得できたと認識し、読み出したデータに基づいて所定の処理を実行する。
一方、CPUモジュールM2において、要求フレームF11で指定された全てのデータを正常に獲得することができなかった場合には、CPUモジュールM2では、図4に示すように、各データに対応する、リードサイズ214bのうち、正常に読み出しを行うことのできなかった、この場合データ2のリードサイズ214bとして、“0”を設定し、リードデータ214cは付加しない。そして、指定された全てのデータを獲得することができなったことから、データの獲得情報212として“異常”を設定し、応答フレームF22を通信モジュールM1宛に送信する。
【0027】
通信モジュールM1では、この応答フレームF22を所定のフォーマットに変換して上位装置に送信する。
上位装置では、読み出し要求のコマンドフレームに対する応答のコマンドフレームを受信すると、データの獲得情報212が異常と設定されていることから、全てのデータを正常に獲得することができなかったことを認識し、そのリードサイズ214bを参照し、リードサイズ214bとして“0”が設定されているデータについては、データの読み出しを正常に行うことができなかったと判定する。そして、正常に読み出しを行うことができたもののみに基づいて、例えばデータのリフレッシュ等の処理を行う。
【0028】
ここで、通信モジュールM1は、要求フレームF11をCPUモジュールM2に送信した後、CPUモジュールM2からのACKフレームF21の受信待ち状態となるため、CPUモジュールM2からACKフレームF21を受信するまでの間は、他の処理を実行することができない。しかしながら、CPUモジュールM2では、要求フレームF11を受信した時点で折り返しACKフレームF21を送信するようにしており、要求フレームF11で指定された処理を行う以前に、ACKフレームF21を送信するようにしている。
【0029】
したがって、通信モジュールM2は、応答フレームF22を受信する以前に、受信待ち状態が解除され他の処理を実行可能な状態に移行するから、通信モジュールM2での受信待ち時間を短縮することができ、その分、通信モジュールM2を効率よく作動させることができる。よって、処理効率を向上させることができる。
【0030】
また、このとき、CPUモジュールM2では、指定されたデータを全て正常に獲得することができなかった場合には、獲得できたものについては応答フレームに付加して送信するようにし、獲得できなかったものについては、応答フレームF22においてリードサイズ214bを“0”として設定することによって、獲得することのできなかったデータがどのデータであるかを通知するようにしているから、例えば上位装置等、CPUモジュールM2から読み出したデータに基づいて処理を行う装置においては、正常に獲得することができたデータについては、そのデータを獲得することができる。
【0031】
したがって、全てのデータを獲得することはできないものの、異常なデータを除く、正常なデータについては獲得することができるから、正常なデータについてはそのリフレッシュ等を行うことができる。よって、上位装置においてCPUモジュールM2から読み出したデータに基づいて行う処理を効率よく行うことができる。
【0032】
なお、上記実施の形態においては、通信モジュールM1からCPUモジュールM2に対してCPUモジュールM2で保持する複数領域データのリード要求が行われたときに、CPUモジュールM2において、要求フレームF11に対してACKフレームF21を返送するようにした場合について説明したが、通信モジュールM1及びCPUモジュールM2間に限らず、送信した要求コマンドに対する応答コマンドを受信したときに、他の処理を実行可能な状態に移行するようにメッセージ通信を行うモジュール間等であっても、同様に適用することができる。また、リード要求に限るものではなく、例えば、複数領域へのデータの書き込み等、通信モジュールM1からの要求に対する処理をCPUモジュールM2において行う場合に、その処理に比較的時間を要する場合に適用すれば効果的である。
【0033】
【発明の効果】
以上説明したように、本発明の請求項1又は請求項2に係るモジュール間のメッセージ通信方式によれば、要求コマンドを送信した要求側モジュールでは、要求コマンドの送信先の応答側モジュールから承認応答を受信した時点で、他の処理を実行可能な状態に移行することができるから、要求コマンドに対する応答を待つ待ち時間を短縮することができ、処理効率を向上させることができる。
【図面の簡単な説明】
【図1】本発明を適用したプログラマブルコントローラの一例を示す構成図である。
【図2】本発明の動作説明に供する説明図である。
【図3】本発明の動作説明に供する説明図である。
【図4】本発明の動作説明に供する説明図である。
【図5】従来の動作説明に供する説明図である。
【図6】従来の動作説明に供する説明図である。
【符号の説明】
10 プログラマブルコントローラ
L 通信回線
M1 通信モジュール
M2 CPUモジュール
Claims (2)
- 内部バスで接続された、要求コマンドを送信する要求側モジュールと前記要求コマンドで指定された処理を実行する応答側モジュールとを有し、前記要求側モジュールは、送信した要求コマンドに対する応答コマンドを前記応答側モジュールから受信したときに、他の処理を実行可能な状態に移行するようになっているプログラマブルコントローラのモジュール間のメッセージ通信方式であって、
前記要求コマンドを受信した応答側モジュールは、前記要求コマンドが、複数領域データの読み出し要求であるときには、前記要求コマンドを受信したことを表す承認応答を前記要求側モジュールに返送した後、前記要求コマンドに対する処理を行って前記要求コマンドに対する応答コマンドを前記要求側モジュールに送信し、
前記要求コマンドを送信した要求側モジュールは、前記要求コマンドに対する承認応答を受信したとき他の処理を実行可能な状態に移行し、前記応答コマンドを受信したときに当該応答を受信したことを表す承認応答を返送するようになっていることを特徴とするモジュール間のメッセージ通信方式。 - 前記要求コマンドを受信した応答側モジュールは、要求される複数領域データのうち、正常データを得ることができなかったデータが存在する場合には、正常データを得ることができたデータのみを前記応答コマンドに付加するようになっていることを特徴とする請求項1記載のモジュール間のメッセージ通信方式。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001313221A JP3861649B2 (ja) | 2001-10-10 | 2001-10-10 | モジュール間のメッセージ通信方式 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001313221A JP3861649B2 (ja) | 2001-10-10 | 2001-10-10 | モジュール間のメッセージ通信方式 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2003122406A JP2003122406A (ja) | 2003-04-25 |
JP3861649B2 true JP3861649B2 (ja) | 2006-12-20 |
Family
ID=19131740
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2001313221A Expired - Fee Related JP3861649B2 (ja) | 2001-10-10 | 2001-10-10 | モジュール間のメッセージ通信方式 |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3861649B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5152676B2 (ja) * | 2009-02-06 | 2013-02-27 | 横河電機株式会社 | プロセス制御装置 |
-
2001
- 2001-10-10 JP JP2001313221A patent/JP3861649B2/ja not_active Expired - Fee Related
Also Published As
Publication number | Publication date |
---|---|
JP2003122406A (ja) | 2003-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP4658122B2 (ja) | Dmaコントローラ、ノード、データ転送制御方法、及びプログラム | |
CN112711550B (zh) | Dma自动配置模块和片上系统soc | |
JPH04346151A (ja) | データ処理装置及びファクシミリ装置 | |
JP3861649B2 (ja) | モジュール間のメッセージ通信方式 | |
JP4008911B2 (ja) | 制御装置 | |
JP4666258B2 (ja) | データアクセスシステム | |
JPS5833970B2 (ja) | プロセッサ間通信方式 | |
JP2006171833A (ja) | Plcのデータ交換システム、及びplcのデータ交換システムの制御方法 | |
JPH05257852A (ja) | プロセスデータ処理システムおよび処理方法 | |
JPH11252150A (ja) | ネットワーク接続装置、及びネットワーク接続制御方法 | |
JPH09204311A (ja) | 情報処理システム | |
JP2003271202A (ja) | プロセスコントローラシステム | |
JPS6272040A (ja) | 情報トレ−ス方式 | |
JPS6378257A (ja) | 入出力制御装置 | |
KR100253790B1 (ko) | 중대형 컴퓨터 컨트롤러 보드의 인터페이스 방법 | |
JPH1185683A (ja) | 情報処理装置 | |
JPH04106651A (ja) | システムバスの制御装置 | |
JPH08221106A (ja) | プログラマブルコントローラ | |
JPH01123353A (ja) | マルチプロセッサ間の通信制御方式 | |
JPS60252975A (ja) | 情報処理方式 | |
JPH11110015A (ja) | Cpuモジュール間のデータ交換装置 | |
JP2003124952A (ja) | データアクセス制御方法 | |
JP2004310162A (ja) | プログラマブルコントローラ | |
JPH07334453A (ja) | メモリアクセスシステム | |
JPH04162106A (ja) | プログラマブルコントローラの遠隔入出力システム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20040415 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20060410 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060523 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060710 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20060801 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20060815 |
|
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: 20060905 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20060918 |
|
R150 | Certificate of patent or registration of utility model |
Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
LAPS | Cancellation because of no payment of annual fees |