[発明の原理]
モジュールシステムで特に問題になり易いのは、モジュールを不特定の任意の個数だけ追加することが可能かつ有効なモジュールが開発された場合である。新たに開発されたモジュールは、電源やセンサのような基本的に必須かつ個数限定的なものとは異なるので、システムの完成品が推定できなくなる。発明者は、このようなケースでの不具合の発生について着眼した。
そして、新たなモジュールが追加されるケースでは、上位側に転送されるデータを記憶するメモリのマッピングが問題になることに着眼した。すなわち、従来の対応方法としては、ユーザサイドで専門的知識に基づいてコンフィギュレーションを行なう必要がある。しかしながら、コンフィギュレーションを行なうことは、繋ぐだけですぐに使用できるモジュールであることに反することになる。
そこで、発明者は、各モジュールのメモリマップが同一になるように規定することと、上位側からのデータの読み出しが同一手順になるように規定することが必須要件になることに想到した。その上で、同一のデータ以外の各モジュールで異なるデータを転送する必要がある場合のための専用エリアを用意し、新たな追加モジュールが挿入された際に、上書きを禁止するためのフラグを用いることで、不具合の発生を低減できることに想到した。
[第1の実施例]
以下、本発明の実施例について図面を参照して説明する。図1(A)は本発明の第1の実施例に係るADモジュールと拡張モジュールとネットワークモジュール(以下、NWモジュール)とを示す図、図1(B)は計測システム(モジュールシステム)の構成を示す図である。
ADモジュール1は、下位側(図1左側)のセンサ4の通信・受給電コネクタと着脱自在に嵌合する、センサ4からの信号入力および給電用の通信・受給電メスコネクタ10と、上位側(図1右側)のモジュールの通信・受給電コネクタと着脱自在に嵌合する、データ通信および受電用の通信・受給電オスコネクタ11とを備えている。
ADモジュール1は、通信・受給電メスコネクタ10から入力されたアナログ信号をAD変換し、AD変換後のデジタルデータをさらに暗号化して、暗号化デジタルデータを蓄積する機能と、通信・受給電オスコネクタ11(または通信・受給電メスコネクタ10)から受電する機能と、受電した電力を通信・受給電メスコネクタ10(または通信・受給電オスコネクタ11)を介して外部へ給電する機能とを有している。
NWモジュール2は、下位側のモジュールの通信・受給電コネクタと着脱自在に嵌合する、データ通信および給電用の通信・受給電メスコネクタ20と、電源5の通信・受給電コネクタと着脱自在に嵌合する、電源5からの受電用の通信・受給電オスコネクタ21と、無線通信用のアンテナ22と、有線通信用の通信コネクタ28とを備えている。
NWモジュール2は、通信・受給電メスコネクタ20に接続されたモジュール(拡張モジュール3)からデータを読み出して、データをネットワークを介して外部へ無線送信または有線送信する機能と、通信・受給電オスコネクタ21(または通信・受給電メスコネクタ20)から受電する機能と、受電した電力を通信・受給電メスコネクタ20(または通信・受給電オスコネクタ21)を介して外部へ給電する機能とを有している。
拡張モジュール3は、下位側のモジュールの通信・受給電コネクタと着脱自在に嵌合する、データ通信および給電用の通信・受給電メスコネクタ30と、上位側のモジュールの通信・受給電コネクタと着脱自在に嵌合する、データ通信および受電用の通信・受給電オスコネクタ31と、表示器32とを備えている。
本実施例では、拡張モジュール3がモニタモジュールである場合について説明する。モニタモジュールは、下位側のモジュール(ADモジュール1)からのデータを蓄積する機能と、データを表示する機能と、通信・受給電オスコネクタ31(または通信・受給電メスコネクタ30)から受電する機能と、受電した電力を通信・受給電メスコネクタ30(または通信・受給電オスコネクタ31)を介して外部へ給電する機能とを有している。拡張モジュール3がモニタモジュールでなくてもよいことは言うまでもない。
センサ4は、ADモジュール1の通信・受給電メスコネクタ10と着脱自在に嵌合する、ADモジュール1への信号出力および給電用の通信・受給電オスコネクタ40を備えている。センサ4は、例えば温度、湿度、圧力、加速度、震度、降水量、酸化還元量などの計測の対象となる量を検出して、計測結果のアナログ信号(例えば4-20mA電流信号)を出力する機能と、通信・受給電オスコネクタ40から受電する機能とを備えている。
このように、ADモジュール1とNWモジュール2と拡張モジュール3とセンサ4と電源5とは、それぞれ同一規格のコネクタを備えており、センサ4の通信・受給電オスコネクタ40をADモジュール1の通信・受給電メスコネクタ10に挿入し、ADモジュール1の通信・受給電オスコネクタ11を拡張モジュール3の通信・受給電メスコネクタ30に挿入し、拡張モジュール3の通信・受給電オスコネクタ31をNWモジュール2の通信・受給電メスコネクタ20に挿入することで、図1(B)に示すようにセンサ4とADモジュール1と拡張モジュール3とNWモジュール2とを接続することが可能である。さらに、NWモジュール2の通信・受給電オスコネクタ21を電源5の通信・受給電メスコネクタ50に挿入することで、NWモジュール2と電源5とを接続することが可能である。
NWモジュール2は、電源5から電力供給を受けて動作すると共に、電源5から受電した電力を通信・受給電メスコネクタ20を介して拡張モジュール3に供給する。
拡張モジュール3は、NWモジュール2から電力供給を受けて動作すると共に、NWモジュール2から受電した電力を通信・受給電メスコネクタ30を介してADモジュール1に供給することが可能である。
ADモジュール1は、拡張モジュール3から電力供給を受けて動作すると共に、拡張モジュール3から受電した電力を通信・受給電メスコネクタ10を介してセンサ4に供給することが可能である。ただし、本発明において、センサ4への給電は必須の構成ではなく、センサ4はセンサ自身の電源で動作してもよい。
通信・受給電メスコネクタ10,20,30,50および通信・受給電オスコネクタ11,21,31,40の例としては、例えばUSBコネクタがある。コネクタはUSBに限らないことは言うまでもない。
次に、ADモジュール1とNWモジュール2と拡張モジュール3の構成と動作をより詳細に説明する。図2はADモジュール1の構成を示すブロック図である。ADモジュール1は、通信・受給電メスコネクタ10と、通信・受給電オスコネクタ11と、通信・受給電メスコネクタ10または通信・受給電オスコネクタ11を通じた信号の送受信を制御するUSBコントローラ12と、AD変換部13と、CPU(Central Processing Unit)14と、メモリ15とを備えている。
ADモジュール1の電源線には、通信・受給電メスコネクタ10のプラス側の電源端子(VBUS)と通信・受給電オスコネクタ11のプラス側の電源端子(VBUS)とを接続するプラス側の電源線16と、通信・受給電メスコネクタ10のGND端子と通信・受給電オスコネクタ11のGND端子とを接続するマイナス側の電源線とがあるが、図2ではマイナス側の電源線の記載を省略している。
CPU14は、メモリ15に格納されたプログラムに従って本実施例で説明する処理を実行し、暗号化部140とデータ送信部141とデータ読出部142(第1のデータ読出部)とメモリマップ情報記憶部143とメモリマップ情報更新部144とデータ読出部145(第2のデータ読出部)とデータ更新部146とフラグ制御部147と番号制御部148として機能する。ただし、本実施例では、メモリマップ情報更新部144とデータ読出部145とデータ更新部146とフラグ制御部147と番号制御部148は不要である。
USBコントローラ12とAD変換部13とCPU14とメモリ15とは、通信・受給電オスコネクタ11または通信・受給電メスコネクタ10から電力供給を受けて動作する。
図3はNWモジュール2の構成を示すブロック図である。NWモジュール2は、通信・受給電メスコネクタ20と、通信・受給電オスコネクタ21と、アンテナ22と、通信・受給電メスコネクタ20または通信・受給電オスコネクタ21を通じた信号の送受信を制御するUSBコントローラ23と、CPU24と、メモリ25と、無線通信用の通信回路26と、通信コネクタ28と、有線通信用の通信回路29とを備えている。
ADモジュール1の場合と同様に、NWモジュール2の電源線には、通信・受給電メスコネクタ20のプラス側の電源端子(VBUS)と通信・受給電オスコネクタ21のプラス側の電源端子(VBUS)とを接続するプラス側の電源線27と、通信・受給電メスコネクタ20のGND端子と通信・受給電オスコネクタ21のGND端子とを接続するマイナス側の電源線とがあるが、図3ではマイナス側の電源線の記載を省略している。
CPU24は、メモリ25に格納されたプログラムに従って本実施例で説明する処理を実行し、データ読出部240と通信部241とデータ送信部242とメモリマップ情報記憶部243とメモリマップ情報更新部244とデータ複写部245と設定変更部246とデータ受信部247とフラグ制御部248と番号制御部249として機能する。ただし、本実施例では、メモリマップ情報更新部244とデータ複写部245と設定変更部246とデータ受信部247とフラグ制御部248と番号制御部249は不要である。
USBコントローラ23とCPU24とメモリ25と通信回路26とは、通信・受給電オスコネクタ21または通信・受給電メスコネクタ20から電力供給を受けて動作する。
図4は拡張モジュール3(モニタモジュール)の構成を示すブロック図である。拡張モジュール3は、通信・受給電メスコネクタ30と、通信・受給電オスコネクタ31と、表示器32と、通信・受給電メスコネクタ30または通信・受給電オスコネクタ31を通じた信号の受信を制御するUSBコントローラ33と、CPU34と、メモリ35とを備えている。
ADモジュール1の場合と同様に、拡張モジュール3の電源線には、通信・受給電メスコネクタ30のプラス側の電源端子(VBUS)と通信・受給電オスコネクタ31のプラス側の電源端子(VBUS)とを接続するプラス側の電源線36と、通信・受給電メスコネクタ30のGND端子と通信・受給電オスコネクタ31のGND端子とを接続するマイナス側の電源線とがあるが、図4ではマイナス側の電源線の記載を省略している。
CPU34は、メモリ35に格納されたプログラムに従って本実施例で説明する処理を実行し、データ読出部340(第1のデータ読出部)と復号部341とデータ表示部342とデータ送信部343とメモリマップ情報記憶部344とメモリマップ情報更新部345とデータ読出部346(第2のデータ読出部)とデータ更新部347とフラグ制御部348と番号制御部349として機能する。ただし、本実施例では、メモリマップ情報更新部345とデータ読出部346とデータ更新部347とフラグ制御部348と番号制御部349は不要である。
表示器32とUSBコントローラ33とCPU34とメモリ35とは、通信・受給電オスコネクタ31または通信・受給電メスコネクタ30から電力供給を受けて動作する。
図5は本実施例の計測システムの動作を説明する図である。ADモジュール1のAD変換部13は、センサ4から通信・受給電メスコネクタ10を介して受信したアナログ信号(例えば4-20mA電流信号)をデジタルデータに変換する。ADモジュール1の暗号化部140は、AD変換後のデジタルデータをメモリ15に書き込み、さらにデジタルデータを暗号化して、暗号化デジタルデータをメモリ15に書き込む。
拡張モジュール3のデータ読出部340は、USBコントローラ33および通信・受給電メスコネクタ30を介してADモジュール1にデータ転送要求を送信することにより、ADモジュール1からデータを読み出す。
ADモジュール1のデータ送信部141は、通信・受給電オスコネクタ11およびUSBコントローラ12を介して拡張モジュール3からデータ転送要求を受信したときに、メモリ15からデータを読み出し、読み出したデータをUSBコントローラ12および通信・受給電オスコネクタ11を介して拡張モジュール3に送信する。
拡張モジュール3のデータ読出部340は、通信・受給電メスコネクタ30およびUSBコントローラ33を介してADモジュール1から読み出したデータをメモリ35に書き込む。拡張モジュール3の復号部341は、メモリ35に格納された暗号化デジタルデータを復号する。拡張モジュール3のデータ表示部342は、復号部341によって復号されたデジタルデータが示す値を、表示器32に数値表示させる。
次に、NWモジュール2のデータ読出部240は、USBコントローラ23および通信・受給電メスコネクタ20を介して拡張モジュール3にデータ転送要求を送信する。
拡張モジュール3のデータ送信部343は、通信・受給電オスコネクタ31およびUSBコントローラ33を介してNWモジュール2からデータ転送要求を受信したときに、メモリ35からデータを読み出し、読み出したデータをUSBコントローラ33および通信・受給電オスコネクタ31を介してNWモジュール2に送信する。
NWモジュール2のデータ読出部240は、通信・受給電メスコネクタ20およびUSBコントローラ23を介して拡張モジュール3から読み出したデータをメモリ25に書き込む。NWモジュール2の通信部241は、メモリ25から暗号化デジタルデータを取り出して通信回路26に渡す。通信回路26は、通信部241から渡された暗号化デジタルデータを無線信号に変換して、アンテナ22からネットワーク100上のクラウドサーバ101宛に無線送信する。
NWモジュール2は、無線通信を行ってもよいし、有線通信を行ってもよい。有線通信の場合、通信コネクタ28を介してNWモジュール2をネットワーク100と接続すればよい。通信回路29は、通信部241から渡された暗号化デジタルデータをパケットに変換して、通信コネクタ28からクラウドサーバ101宛に送信する。
クラウドサーバ101側では、暗号化デジタルデータを復号し、復号後のデジタルデータ(センサ4の計測結果)を蓄積したり、センサ4の計測結果をユーザーに提供したりすることが可能になる。
次に、本実施例の特徴的な動作について説明する。特許文献1に開示された計測システムでは、例えばADモジュール1とNWモジュール2との間に拡張モジュール3が追加された場合、下位側(図1、図5左側)から上位側(図1、図5右側)へのデータ転送を実現するためには、モジュールのアドレスや通信の設定変更が必要である。
そこで、本実施例では、下位側から上位側へのデータ転送を実現するため、各モジュールのメモリマップを同一にし、下位側から上位側へのデータの読み出し手順を各モジュールで同一手順とする。図6は本実施例における共通メモリマップの1例を示す図である。ただし、図6では、メモリ15,25,35に格納されるデータとアクセス権限のみを示し、データが格納されるエリアのアドレスの記載を省略している。
図6は、センサ4のデータ(Sensor Data)が格納されるエリアRD0のアドレスが、各モジュール1~3のメモリ15,25,35において共通であることを示している。「RD」は、上位側のモジュールによって読み出されるデータであることを示している。「WR」の場合には、上位側のモジュールによって書き込まれるデータとなる。
より具体的には、ADモジュール1のAD変換部13によってAD変換されたデータ(Sensor raw Data#1~Sensor raw Data#8)が格納されるエリアのアドレスと、ADモジュール1の暗号化部140によって暗号化された暗号化デジタルデータ(Sensor Cryptographic Data#1~Sensor Cryptographic Data#8)が格納されるエリアのアドレスとが、各モジュール1~3のメモリ15,25,35において共通である。
メモリマップ情報は、モジュール1~3のメモリマップ情報記憶部143,243,344に予め記憶されている。メモリマップ情報は、メモリ15,25,35のエリアのアドレスと、このエリアに格納されるデータの名称と、データサイズと、データに対するアクセス権限(RD/WR)の情報とを含む。
ADモジュール1の暗号化部140は、AD変換後のデジタルデータと暗号化デジタルデータとをメモリマップ情報記憶部143に記憶されたメモリマップ情報で規定されたメモリ15のエリアに書き込む。
拡張モジュール3のデータ読出部340は、メモリマップ情報記憶部344に記憶されたメモリマップ情報を基に下位側のADモジュール1に対してデータ転送要求を行うことにより、ADモジュール1のメモリ15からデータを読み出し、読み出したデータをメモリマップ情報記憶部344に記憶されたメモリマップ情報で規定されたメモリ35のエリアに書き込む。
NWモジュール2のデータ読出部240は、メモリマップ情報記憶部243に記憶されたメモリマップ情報を基に下位側の拡張モジュール3に対してデータ転送要求を行うことにより、拡張モジュール3のメモリ35からデータを読み出し、読み出したデータをメモリマップ情報記憶部243に記憶されたメモリマップ情報で規定されたメモリ25のエリアに書き込む。
こうして、本実施例では、下位側から上位側へ順次転送される共通のセンサデータについて各モジュールのメモリマップを同一にすることにより、モジュールの追加やモジュールの取り外しによって計測システムの構成が変更されたとしても、アドレスの設定変更が不要となるので、不具合の発生を低減することができる。
[第2の実施例]
次に、本発明の第2の実施例について説明する。第1の実施例では、各モジュールに共通のセンサデータの転送について説明した。一方、共通のデータ以外の各モジュールに固有のデータを転送する必要がある場合は、各モジュールに共通のメモリマップに各モジュールの専用エリアを設けることで対応できる。
本実施例においても計測システムの構成は第1の実施例と同様であるので、図1~図5の符号を用いて説明する。ただし、本実施例では、ADモジュール1のメモリマップ情報更新部144とデータ読出部145とデータ更新部146とフラグ制御部147と番号制御部148は不要であり、NWモジュール2のメモリマップ情報更新部244とデータ複写部245と設定変更部246とデータ受信部247とフラグ制御部248と番号制御部249は不要であり、拡張モジュール3のメモリマップ情報更新部345とデータ読出部346とデータ更新部347とフラグ制御部348と番号制御部349は不要である。
図7、図8は本実施例における共通メモリマップの1例を示す図である。図8では、図7のメモリマップのうち、ADモジュール1に固有のデータが格納されるエリアRD2、拡張モジュール3に固有のデータが格納されるエリアRD3の詳細のみを示している。図6と同様に、図7、図8では、メモリ15,25,35に格納されるデータとアクセス権限のみを示し、データが格納されるエリアのアドレスの記載を省略している。
センサ4のデータ(Sensor Data)が格納されるエリアRD0については図6で説明したとおりである。
エリアRD1には、NWモジュール2に固有のデータが格納される。具体的には、エリアRD1には、NWモジュール2の識別コード、エリアRD1のデータが更新された回数を示す更新カウンタ、チェックサム、計測システムにおけるNWモジュール2のID、クラウドサーバ101のアドレス、ネットワーク100と接続するための無線ルータのSSID(Service Set Identifier)、無線ルータのパスワード、センサ4が計測する量の種類(温度、湿度、圧力、加速度、震度、降水量、酸化還元量など)、センサ4が計測する量の単位、補正パラメータ(ゼロスパン、レシオ、バイアス、温度特性など)、NWモジュール2の消費電流、NWモジュール2の交換周期などのデータが格納される。なお、NWモジュール2のデータを読み出すモジュールがないため、エリアRD1のアクセス権限は不定(「-」)となっている。
エリアRD2には、ADモジュール1に固有のデータが格納される。具体的には、エリアRD2には、ADモジュール1の識別コード、エリアRD2のデータが更新された回数を示す更新カウンタ、チェックサム、計測システムにおけるADモジュール1のID、ADの分解能、AD変換周期、補正パラメータ(ゼロスパン、レシオ、バイアス、温度特性など)、ADモジュール1の消費電流、ADモジュール1の交換周期などのデータが格納される。
エリアRD3には、拡張モジュール3(拡張#1)に固有のデータが格納される。具体的には、エリアRD3には、拡張モジュール3の識別コード、エリアRD3のデータが更新された回数を示す更新カウンタ、チェックサム、計測システムにおける拡張モジュール3のID、拡張モジュール3の消費電流、拡張モジュール3の交換周期などのデータが格納される。
同様に、エリアRD4~RD9には、拡張モジュール3以外の6個の拡張モジュール(拡張#2~拡張#7)のデータが格納される。
エリアWR1には、クラウドサーバ101からNWモジュール2に書き込まれるデータが格納される。エリアWR2には、上位側のモジュールからADモジュール1に書き込まれるデータが格納される。エリアWR3には、上位側のモジュールから拡張モジュール3に書き込まれるデータが格納される。エリアWR4~WR9には、拡張モジュール3以外の6個の拡張モジュール(拡張#2~拡張#7)に書き込まれるデータが格納される。エリアRD10~RD16には、データを蓄える機能を備えたストレージモジュールが蓄積するデータ(Storage Data#1~Storage Data#7)が格納される。
第1の実施例と同様に、各モジュール1~3のメモリ15,25,35において共通のメモリマップ情報は、モジュール1~3のメモリマップ情報記憶部143,243,344に予め記憶されている。
図9は、本実施例における下位側(図9左側)から上位側(図9右側)へのデータ転送を説明する図である。
拡張モジュール3のデータ読出部340は、メモリマップ情報記憶部344に記憶されたメモリマップ情報を基に下位側のADモジュール1に対してデータ転送要求を行うことにより、ADモジュール1のメモリ15からデータを読み出し、読み出したデータをメモリマップ情報記憶部344に記憶されたメモリマップ情報で規定されたメモリ35のエリアに書き込む。
こうして、センサ4のデータ(Sensor Data)がメモリ35のエリアRD0に格納され、ADモジュール1に固有のデータ(Mod情報_RD_AD)がメモリ35のエリアRD2に格納される。
なお、データ読出部340は、データ転送時にメモリ35のエリアRD3が上書きされることを禁止する。したがって、拡張モジュール3に固有のデータ(Mod情報_RD_拡張#1)が上書きされることはない。
NWモジュール2のデータ読出部240は、メモリマップ情報記憶部243に記憶されたメモリマップ情報を基に下位側の拡張モジュール3に対してデータ転送要求を行うことにより、拡張モジュール3のメモリ35からデータを読み出し、読み出したデータをメモリマップ情報記憶部243に記憶されたメモリマップ情報で規定されたメモリ25のエリアに書き込む。
こうして、センサ4のデータ(Sensor Data)がメモリ25のエリアRD0に格納され、ADモジュール1に固有のデータ(Mod情報_RD_AD)がメモリ25のエリアRD2に格納され、拡張モジュール3に固有のデータ(Mod情報_RD_拡張#1)がメモリ25のエリアRD3に格納される。
なお、データ読出部240は、データ転送時にメモリ25のエリアRD1が上書きされることを禁止する。したがって、NWモジュール2に固有のデータ(Mod情報_RD_NW)が上書きされることはない。
こうして、本実施例では、センサ4のデータだけでなく、各モジュールに固有のデータを転送することができる。
NWモジュール2のメモリ25に格納されているデータは、第1の実施例と同様にNWモジュール2からクラウドサーバ101へ送信される。
クラウドサーバ101は、例えばNWモジュール2のメモリ25のエリアRD1に格納されていた情報およびエリアRD2に格納されていた情報に基づいて、計測機能に関する設定を行うことができる。計測機能としては、センサ4によって計測され、ADモジュール1によってAD変換されたデジタルデータが示す値を、換算式によって計測の対象となる量に換算する機能、デジタルデータを補正パラメータに基づいて補正する機能などがある。また、クラウドサーバ101は、NWモジュール2のメモリ25のエリアRD1~RD3に格納されていた交換周期の情報に基づいて、各モジュール1~3の交換時期を推定することが可能である。
こうして、本実施例では、モジュールの追加やモジュールの取り外しによって計測システムの構成が変更されたとしても、アドレスの設定変更が不要となるので、不具合の発生を低減することができる。
なお、下位側から上位側への共通データ(Sensor Data)の転送は例えば一定周期毎に行われるが、各モジュールの固有データについては最低1回の転送を行えばよい。
[第3の実施例]
次に、本発明の第3の実施例について説明する。第2の実施例では、新たな追加モジュールが挿入された際に、メモリに格納されているモジュール情報が上書きされるという課題がある。上書きされたモジュール情報がシステムに必須のモジュール(ADモジュールなど)の情報の場合はメモリマップ情報のモジュール識別コードにより必須モジュールが無いことが分かり、システムエラーとなる。
そこで、本実施例では、第1、第2の実施例と同様に共通のセンサデータについて各モジュールのメモリマップを同一にするが、モジュールに固有のデータについては各モジュールのメモリマップを同一にせず、メモリマップ情報を適宜更新する。
本実施例においても計測システムの構成は第1の実施例と同様であるので、図1~図5の符号を用いて説明する。
図10(A)~図10(C)は本実施例における下位側(図10左側)から上位側(図10右側)へのデータ転送を説明する図、図11は本実施例の上位側のモジュールの動作を説明するフローチャート、図12は下位側のモジュールの動作を説明するフローチャートである。
本実施例では、上記のとおり共通データ(Sensor Data)が格納されるエリアRD0のアドレスが、モジュール1~3のメモリ15,25,35において共通であるが、さらに読み出しフラグが格納されるエリアFLのアドレスが、モジュール1~3のメモリ15,25,35において共通となるように、モジュール1~3のメモリマップ情報が定義されている。
各モジュール1~3は、他のモジュールから電源供給が開始され、電源ONになると、初期設定を行う。この初期設定として、各モジュール1~3のフラグ制御部147,248,348は、それぞれメモリマップ情報記憶部143,243,344に記憶されたメモリマップ情報で規定されたメモリ15,25,35のエリアFLに格納されている読み出しフラグを0(規定された数値)にリセットする(図11ステップS100、図12ステップS200)。
図10(A)は初期設定によってモジュール1~3の読み出しフラグが0にリセットされた状態を示している。また、図10(A)から明らかなように、エリアRD1,RD2,RD3はモジュール1~3の専用エリアではなく、各モジュール1~3においてそれぞれ固有のデータがエリアRD1に格納されている。
拡張モジュール3のデータ読出部340は、メモリマップ情報記憶部344に記憶されたメモリマップ情報を基に下位側のADモジュール1に対して読み出しフラグの転送要求を行うことにより、ADモジュール1から読み出しフラグを読み出す(図11ステップS101)。
ADモジュール1のデータ送信部141は、拡張モジュール3からの読み出しフラグの転送要求に応じて読み出しフラグをメモリ15から読み出して拡張モジュール3に送信する(図12ステップS201,S202)。
拡張モジュール3のデータ読出部340は、ADモジュール1から読み出した読み出しフラグが0の場合(図11ステップS102においてYES)、下位側のADモジュール1に対してデータ転送要求を行う前に、メモリマップ情報記憶部344に記憶されたメモリマップ情報に基づいて、拡張モジュール3の固有データ(Mod情報_RD_拡張#1)をメモリ35上の所定の退避エリアにいったん格納する(図11ステップS103)。このデータ退避は、次のデータ読み出しによって、固有データ(Mod情報_RD_拡張#1)が上書きされることを防ぐためである。
データ読出部340は、メモリマップ情報記憶部344に記憶されたメモリマップ情報を基に下位側のADモジュール1に対してデータ転送要求を行うことにより、各モジュールの固有データエリアとして割り当てられている全てのエリアRD1,RD2,RD3・・・・のデータをADモジュール1から読み出す(図11ステップS104)。
ADモジュール1のデータ送信部141は、拡張モジュール3からのデータ転送要求に応じて、各モジュールの固有データエリアとして割り当てられている全てのエリアに格納されているデータをメモリ15から読み出して拡張モジュール3に送信する(図12ステップS203,S204)。
拡張モジュール3のデータ読出部340は、メモリマップ情報記憶部344に記憶されたメモリマップ情報に基づいて、各モジュールの固有データエリアとして割り当てられているメモリ35のエリアRD1,RD2,RD3・・・・に、ADモジュール1から読み出したデータを書き込む(図11ステップS105)。
そして、データ読出部340は、退避エリアに退避しておいた、拡張モジュール3の固有データ(Mod情報_RD_拡張#1)を、他のモジュールの固有データを格納したエリアとは別のエリアに格納する(図11ステップS106)。メモリ35に格納されたデータには、データの名称とアクセス権限(RD/WR)などの情報が付加されているので、ADモジュール1の固有データ(Mod情報_RD_AD)が格納されたエリアを認識することが可能である。そこで、ADモジュール1の固有データ(Mod情報_RD_AD)を格納したエリアとは別のエリアに、拡張モジュール3の固有データ(Mod情報_RD_拡張#1)を格納すればよい。
次に、拡張モジュール3のメモリマップ情報更新部345は、ステップS105,S106によってメモリ35に格納されたデータに基づいて、メモリマップ情報記憶部344に記憶されているメモリマップ情報のうち、各モジュールの固有データエリアとして割り当てられているメモリ35のエリアRD1,RD2,RD3・・・・のメモリマップ情報を更新する(図11ステップS107)。上記のとおり、メモリ35に格納されたデータには、データの名称とアクセス権限(RD/WR)などの情報が付加されているので、これらの情報とデータが格納されているエリアのアドレスとを基にメモリマップ情報を更新することが可能である。
拡張モジュール3のフラグ制御部348は、各モジュールの固有データエリアとして割り当てられているエリアのデータが更新されたことにより、メモリ35の読み出しフラグを0にリセットする(図11ステップS108)。
一方、ADモジュール1のフラグ制御部147は、拡張モジュール3からのデータ転送要求に対してデータ送信が終了し、拡張モジュール3によるデータの読み出しが終了した後に、メモリ15の読み出しフラグを1にセットする(図12ステップS205)。
図10(B)は、拡張モジュール3がADモジュール1からデータを読み出して更新し、ADモジュール1が読み出しフラグを1にセットした状態を示している。
NWモジュール2のデータ読出部240は、メモリマップ情報記憶部243に記憶されたメモリマップ情報を基に下位側の拡張モジュール3に対して読み出しフラグの転送要求を行うことにより、拡張モジュール3から読み出しフラグを読み出す(図11ステップS101)。
拡張モジュール3のデータ送信部343は、NWモジュール2からの読み出しフラグの転送要求に応じて読み出しフラグをメモリ35から読み出してNWモジュール2に送信する(図12ステップS201,S202)。
NWモジュール2のデータ読出部240は、拡張モジュール3から読み出した読み出しフラグが0の場合(図11ステップS102においてYES)、下位側の拡張モジュール3に対してデータ転送要求を行う前に、メモリマップ情報記憶部243に記憶されたメモリマップ情報に基づいて、NWモジュール2の固有データ(Mod情報_RD_NW)をメモリ25上の所定の退避エリアにいったん格納する(図11ステップS103)。
データ読出部240は、メモリマップ情報記憶部243に記憶されたメモリマップ情報を基に下位側の拡張モジュール3に対してデータ転送要求を行うことにより、各モジュールの固有データエリアとして割り当てられている全てのエリアRD1,RD2,RD3・・・・のデータを拡張モジュール3から読み出す(図11ステップS104)。
拡張モジュール3のデータ送信部343は、NWモジュール2からのデータ転送要求に応じて、各モジュールの固有データエリアとして割り当てられている全てのエリアに格納されているデータをメモリ35から読み出してNWモジュール2に送信する(図12ステップS203,S204)。
NWモジュール2のデータ読出部240は、メモリマップ情報記憶部243に記憶されたメモリマップ情報に基づいて、各モジュールの固有データエリアとして割り当てられているメモリ25のエリアRD1,RD2,RD3・・・・に、拡張モジュール3から読み出したデータを書き込む(図11ステップS105)。
そして、データ読出部240は、退避エリアに退避しておいた、NWモジュール2の固有データ(Mod情報_RD_NW)を、他のモジュールの固有データを格納したエリアとは別のエリアに格納する(図11ステップS106)。メモリ25に格納されたデータには、データの名称とアクセス権限(RD/WR)などの情報が付加されているので、ADモジュール1の固有データ(Mod情報_RD_AD)と拡張モジュール3の固有データ(Mod情報_RD_拡張#1)が格納されたエリアを認識することが可能である。そこで、ADモジュール1の固有データ(Mod情報_RD_AD)と拡張モジュール3の固有データ(Mod情報_RD_拡張#1)とを格納したエリアとは別のエリアに、NWモジュール2の固有データ(Mod情報_RD_NW)を格納すればよい。
次に、NWモジュール2のメモリマップ情報更新部244は、ステップS105,S106によってメモリ25に格納されたデータに基づいて、メモリマップ情報記憶部243に記憶されているメモリマップ情報のうち、各モジュールの固有データエリアとして割り当てられているメモリ25のエリアRD1,RD2,RD3・・・・のメモリマップ情報を更新する(図11ステップS107)。
NWモジュール2のフラグ制御部248は、各モジュールの固有データエリアとして割り当てられているエリアのデータが更新されたことにより、メモリ25の読み出しフラグを0にリセットする(図11ステップS108)。
一方、拡張モジュール3のフラグ制御部348は、NWモジュール2からのデータ転送要求に対してデータ送信が終了し、NWモジュール2によるデータの読み出しが終了した後に、メモリ35の読み出しフラグを1にセットする(図12ステップS205)。
図10(C)は、NWモジュール2が拡張モジュール3からデータを読み出して更新し、拡張モジュール3が読み出しフラグを1にセットした状態を示している。
図13(A)~図13(D)は本実施例におけるデータ転送の別の例を説明する図である。図13(B)は、拡張モジュール3がADモジュール1のデータを読み出すよりも先に、NWモジュール2が拡張モジュール3のデータを読み出した状態を示している。NWモジュール2が拡張モジュール3からデータを読み出したことにより、拡張モジュール3が読み出しフラグを1にセットする。
図13(C)は、拡張モジュール3がADモジュール1からデータを読み出したことにより、拡張モジュール3が読み出しフラグを0にリセットし、ADモジュール1が読み出しフラグを1にセットした状態を示している。
図13(D)は、拡張モジュール3が読み出しフラグを0にリセットしたことにより、NWモジュール2が拡張モジュール3のデータを再度読み出した状態を示している。NWモジュール2が拡張モジュール3からデータを読み出したことにより、拡張モジュール3が読み出しフラグを1にセットする。
こうして、本実施例では、モジュールの追加やモジュールの取り外しによって計測システムの構成が変更されたとしても、各モジュールの固有データに関するメモリマップ情報を自動的に更新することができるので、不具合の発生を低減することができる。
なお、図11では固有データの転送のみについて説明しており、第1、第2の実施例で説明したとおり、共通データ(Sensor Data)の転送は例えば一定周期毎に繰り返し行われる。
[第4の実施例]
次に、本発明の第4の実施例について説明する。第3の実施例では、例えば電源の瞬停などで読み出しフラグがリセットされないモジュールがある場合に、メモリマップ情報を正しく作成できない可能性がある。
そこで、本実施例では、第3の実施例のような読み出しフラグを使用せずに固有データの転送を行う。
本実施例においても計測システムの構成は第1の実施例と同様であるので、図1~図5の符号を用いて説明する。
図14(A)~図14(C)は本実施例における下位側(図14左側)から上位側(図14右側)へのデータ転送を説明する図、図15は本実施例の上位側のモジュールの動作を説明するフローチャート、図16は下位側のモジュールの動作を説明するフローチャートである。
本実施例では、上記のとおり共通データ(Sensor Data)が格納されるエリアRD0のアドレスが、モジュール1~3のメモリ15,25,35において共通であるが、さらにメモリNo.が格納されるエリアMLのアドレスが、モジュール1~3のメモリ15,25,35において共通となるように、モジュール1~3のメモリマップ情報が定義されている。
各モジュール1~3は、他のモジュールから電源供給が開始され、電源ONになると、初期設定を行う。この初期設定として、各モジュール1~3の番号制御部148,249,349は、それぞれメモリマップ情報記憶部143,243,344に記憶されたメモリマップ情報で規定されたメモリ15,25,35のエリアMLに格納されているメモリNo.を1(初期値)にリセットする(図15ステップS300、図16ステップS400)。
図14(A)は初期設定によってモジュール1~3のメモリNo.が1にリセットされた状態を示している。また、図14(A)から明らかなように、エリアRD1,RD2,RD3はモジュール1~3の専用エリアではなく、各モジュール1~3においてそれぞれ固有のデータがエリアRD1に格納されている。
拡張モジュール3のデータ読出部340は、メモリマップ情報記憶部344に記憶されたメモリマップ情報を基に下位側のADモジュール1に対してメモリNo.の転送要求を行うことにより、ADモジュール1からメモリNo.を読み出す(図15ステップS301)。
ADモジュール1のデータ送信部141は、拡張モジュール3からのメモリNo.の転送要求に応じてメモリNo.をメモリ15から読み出して拡張モジュール3に送信する(図16ステップS401,S402)。
拡張モジュール3のデータ読出部340は、ADモジュール1から読み出したメモリNo.が自装置のメモリ35のエリアMLに格納されているメモリNo.と同じかまたは大きい値の場合(図15ステップS302においてYES)、下位側のADモジュール1に対してデータ転送要求を行う前に、メモリマップ情報記憶部344に記憶されたメモリマップ情報に基づいて、拡張モジュール3の固有データ(Mod情報_RD_拡張#1)をメモリ35上の所定の退避エリアにいったん格納する(図15ステップS303)。
データ読出部340は、メモリマップ情報記憶部344に記憶されたメモリマップ情報を基に下位側のADモジュール1に対してデータ転送要求を行うことにより、各モジュールの固有データエリアとして割り当てられている全てのエリアRD1,RD2,RD3・・・・のデータをADモジュール1から読み出す(図15ステップS304)。
ADモジュール1のデータ送信部141は、拡張モジュール3からのデータ転送要求に応じて、各モジュールの固有データエリアとして割り当てられている全てのエリアに格納されているデータをメモリ15から読み出して拡張モジュール3に送信する(図16ステップS403,S404)。
拡張モジュール3のデータ読出部340は、メモリマップ情報記憶部344に記憶されたメモリマップ情報に基づいて、各モジュールの固有データエリアとして割り当てられているメモリ35のエリアRD1,RD2,RD3・・・・に、ADモジュール1から読み出したデータを書き込む(図15ステップS305)。
そして、データ読出部340は、退避エリアに退避しておいた、拡張モジュール3の固有データ(Mod情報_RD_拡張#1)を、他のモジュールの固有データを格納したエリアとは別のエリアに格納する(図15ステップS306)。
次に、拡張モジュール3のメモリマップ情報更新部345は、ステップS305,S306によってメモリ35に格納されたデータに基づいて、メモリマップ情報記憶部344に記憶されているメモリマップ情報のうち、各モジュールの固有データエリアとして割り当てられているメモリ35のエリアRD1,RD2,RD3・・・・のメモリマップ情報を更新する(図15ステップS307)。
拡張モジュール3の番号制御部349は、各モジュールの固有データエリアとして割り当てられているエリアのデータが更新されたことにより、メモリ35のエリアMLに格納されているメモリNo.を、ADモジュール1から読み出したメモリNo.に1足した値に更新する(図15ステップS308)。
図14(B)は、拡張モジュール3がADモジュール1からデータを読み出して更新し、メモリNo.を2に更新した状態を示している。
NWモジュール2のデータ読出部240は、メモリマップ情報記憶部243に記憶されたメモリマップ情報を基に下位側の拡張モジュール3に対してメモリNo.の転送要求を行うことにより、拡張モジュール3からメモリNo.を読み出す(図15ステップS301)。
拡張モジュール3のデータ送信部343は、NWモジュール2からのメモリNo.の転送要求に応じてメモリNo.をメモリ35から読み出してNWモジュール2に送信する(図16ステップS401,S402)。
NWモジュール2のデータ読出部240は、拡張モジュール3から読み出したメモリNo.が自装置のメモリ25のエリアMLに格納されているメモリNo.と同じかまたは大きい値の場合(図15ステップS302においてYES)、下位側の拡張モジュール3に対してデータ転送要求を行う前に、メモリマップ情報記憶部243に記憶されたメモリマップ情報に基づいて、NWモジュール2の固有データ(Mod情報_RD_NW)をメモリ25上の所定の退避エリアにいったん格納する(図15ステップS303)。
データ読出部240は、メモリマップ情報記憶部243に記憶されたメモリマップ情報を基に下位側の拡張モジュール3に対してデータ転送要求を行うことにより、各モジュールの固有データエリアとして割り当てられている全てのエリアRD1,RD2,RD3・・・・のデータを拡張モジュール3から読み出す(図15ステップS304)。
拡張モジュール3のデータ送信部343は、NWモジュール2からのデータ転送要求に応じて、各モジュールの固有データエリアとして割り当てられている全てのエリアに格納されているデータをメモリ35から読み出してNWモジュール2に送信する(図16ステップS403,S404)。
NWモジュール2のデータ読出部240は、メモリマップ情報記憶部243に記憶されたメモリマップ情報に基づいて、各モジュールの固有データエリアとして割り当てられているメモリ25のエリアRD1,RD2,RD3・・・・に、拡張モジュール3から読み出したデータを書き込む(図15ステップS305)。
そして、データ読出部240は、退避エリアに退避しておいた、NWモジュール2の固有データ(Mod情報_RD_NW)を、他のモジュールの固有データを格納したエリアとは別のエリアに格納する(図15ステップS306)。
次に、NWモジュール2のメモリマップ情報更新部244は、ステップS305,S306によってメモリ25に格納されたデータに基づいて、メモリマップ情報記憶部243に記憶されているメモリマップ情報のうち、各モジュールの固有データエリアとして割り当てられているメモリ25のエリアRD1,RD2,RD3・・・・のメモリマップ情報を更新する(図15ステップS307)。
NWモジュール2の番号制御部249は、各モジュールの固有データエリアとして割り当てられているエリアのデータが更新されたことにより、メモリ25のエリアMLに格納されているメモリNo.を、拡張モジュール3から読み出したメモリNo.に1足した値に更新する(図15ステップS308)。
図14(C)は、NWモジュール2が拡張モジュール3からデータを読み出して更新し、メモリNo.を3に更新した状態を示している。
図17(A)~図17(D)は本実施例におけるデータ転送の別の例を説明する図である。図17(B)は、拡張モジュール3がADモジュール1のデータを読み出すよりも先に、NWモジュール2が拡張モジュール3のデータを読み出した状態を示している。拡張モジュール3からデータを読み出したことにより、NWモジュール2がメモリ25のエリアMLに格納されているメモリNo.を2に更新する。
図17(C)は、拡張モジュール3がADモジュール1からデータを読み出したことにより、拡張モジュール3がメモリ35のエリアMLに格納されているメモリNo.を2に更新した状態を示している。
図17(D)は、拡張モジュール3がメモリNo.を2に更新したことにより、NWモジュール2が拡張モジュール3のデータを再度読み出した状態を示している。拡張モジュール3からデータを読み出したことにより、NWモジュール2がメモリ25のエリアMLに格納されているメモリNo.を3に更新する。
こうして、本実施例では、モジュールの追加やモジュールの取り外しによって計測システムの構成が変更されたとしても、各モジュールの固有データに関するメモリマップ情報を自動的に更新することができるので、不具合の発生を低減することができる。
なお、図15では固有データの転送のみについて説明しており、第1、第2の実施例で説明したとおり、共通データ(Sensor Data)の転送は例えば一定周期毎に繰り返し行われる。
[第5の実施例]
次に、本発明の第5の実施例について説明する。第3、第4の実施例では、読み出しフラグまたはメモリNo.のデータが異常値となった場合に、メモリマップ情報を正しく作成できない可能性がある。
そこで、本実施例では、第3の実施例のような読み出しフラグや第4の実施例のようなメモリNo.を使用せずに固有データの転送を行う。
本実施例においても計測システムの構成は第1の実施例と同様であるので、図1~図5の符号を用いて説明する。
図18(A)、図18(B)、図19(A)、図19(B)、図20(A)、図20(B)は本実施例における下位側から上位側へのデータ転送を説明する図、図21(A)、図21(B)は最上位のモジュールを除く各モジュールの動作を説明するフローチャート、図22(A)、図22(B)は最上位のモジュールの動作を説明するフローチャートである。図21(A)、図22(A)は下位側のモジュールから固有データを読み出すモジュールの動作を示し、図21(B)、図22(B)は上位側または下位側のモジュールからのデータ転送要求に対する動作を示す。
まず、各モジュール2,3のデータ読出部240,340は、それぞれメモリマップ情報記憶部243,344に記憶されたメモリマップ情報を基に下位側のモジュールに対してデータ転送要求を行うことにより、各モジュールの固有データエリアとして割り当てられている全てのエリアRD1,RD2,RD3・・・・に格納されているデータを下位側のモジュールから読み出す(図21(A)ステップS500、図22(A)ステップS600)。
モジュール1,3のデータ送信部141,343は、それぞれ上位側のモジュールからのデータ転送要求に応じて、各モジュールの固有データエリアとして割り当てられている全てのエリアに格納されているデータをメモリ15,35から読み出して上位側のモジュールに送信する(図21(B)ステップS511,S512)。
各モジュール2,3のデータ読出部240,340は、それぞれメモリマップ情報記憶部243,344に記憶されたメモリマップ情報に基づいて、各モジュールの固有データエリアとして割り当てられているメモリ25,35のエリアRD1,RD2,RD3・・・・に、下位側のモジュールから読み出したデータを書き込む(図21(A)ステップS501、図22(A)ステップS601)。
このとき、拡張モジュール3のデータ読出部340は、自身の固有データ(Mod情報_RD_拡張#1)が上書きされることを禁止する。同様に、NWモジュール2のデータ読出部240は、自身の固有データ(Mod情報_RD_NW)が上書きされることを禁止する。下位側のモジュールから読み出したデータは、自身の固有データを格納したエリアとは別のエリアに格納される。
図18(A)は、以上のステップS500,S501,S511,S512,S600,S601の処理により、拡張モジュール3がADモジュール1からデータを読み出すと同時に、NWモジュール2が拡張モジュール3からデータを読み出した状態を示している。
次に、NWモジュール2は、上位側の通信・受給電オスコネクタ21にモジュールが接続されていないため、最上位のモジュールとなる。NWモジュール2のデータ複写部245は、メモリマップ情報記憶部243に記憶されたメモリマップ情報に基づいて、各モジュールの固有データエリア(第1のエリア)として割り当てられているメモリ25のエリアRD1,RD2,RD3・・・・に格納されているデータを、下位側のモジュールが読み出しを行うエリア(第2のエリア)として割り当てられているメモリ25のエリアQD1,QD2,QD3・・・・にコピーする(図22(A)ステップS602)。ステップS602の処理では、有効なデータのみをコピーするので、無効なデータをコピーすることはない。エリアQD1,QD2,QD3・・・・は、それぞれエリアRD1,RD2,RD3・・・・と対応する。
モジュール1,3のデータ読出部145,346は、それぞれメモリマップ情報記憶部143,344に記憶されたメモリマップ情報を基に上位側のモジュールに対してデータ転送要求を行うことにより、下位側のモジュールが読み出しを行うエリアとして割り当てられているエリアQD1,QD2,QD3・・・・に格納されているデータを上位側のモジュールから読み出す(図21(A)ステップS502)。
モジュール2,3のデータ送信部242,343は、それぞれ下位側のモジュールからのデータ転送要求に応じて、下位側のモジュールが読み出しを行うエリアとして割り当てられている全てのエリアQD1,QD2,QD3・・・・に格納されているデータをメモリ25,35から読み出して下位側のモジュールに送信する(図21(B)ステップS513,S514、図22(B)ステップS611,S612)。
モジュール1,3のデータ読出部145,346は、それぞれメモリマップ情報記憶部143,344に記憶されたメモリマップ情報に基づいて、下位側のモジュールが読み出しを行うエリアとして割り当てられているメモリ15,35のエリアQD1,QD2,QD3・・・・に、上位側のモジュールから読み出したデータを書き込む(図21(A)ステップS503)。このときのメモリ15,35へのデータの書き込みは、最新のデータで更新する上書き保存でよい。
図18(B)は、以上のステップS602,S502,S513,S514,S611,S612,S503の処理により、NWモジュール2がメモリ25のエリアRD1,RD2のデータをエリアQD1,QD2にコピーし、拡張モジュール3がNWモジュール2からデータを読み出してメモリ35のエリアQD1,QD2にデータを書き込み、ADモジュール1が拡張モジュール3からデータを読み出してメモリ15のエリアQD1,QD2にデータを書き込んだ状態を示している。
次に、モジュール1,3のデータ更新部146,347は、それぞれメモリマップ情報記憶部143,344に記憶されたメモリマップ情報に基づいて、自身の固有データをメモリ15,35上の所定の退避エリアにいったん格納する(図21(A)ステップS504)。
モジュール1,3のデータ更新部146,347は、それぞれメモリマップ情報記憶部143,344に記憶されたメモリマップ情報に基づいて、下位側のモジュールが読み出しを行うエリアとして割り当てられているメモリ15,35のエリアQD1,QD2,QD3・・・・に格納されているデータを、対応するメモリ15,35のエリアRD1,RD2,RD3・・・・にコピーする(図21(A)ステップS505)。ステップS505の処理では、有効なデータのみをコピーするので、エリアRD1,RD2,RD3・・・・に格納されているデータが無効なデータによって上書きされることはない。
そして、モジュール1,3のデータ更新部146,347は、それぞれメモリ15,35の退避エリアに退避しておいた自身の固有データとメモリ15,35のエリアRD1,RD2,RD3・・・・にコピーしたデータとを比較する(図21(A)ステップS506)。
データ更新部146,347は、エリアRD1,RD2,RD3・・・・に自身の固有データと名称が一致するデータが無い場合(ステップS506においてNO)、他のモジュールの固有データを格納したエリアとは別のエリアに自身の固有データを格納する(図21(A)ステップS507)。第3の実施例で説明したとおり、メモリ15,35に格納されたデータには、データの名称とアクセス権限(RD/WR)などの情報が付加されているので、データの一致/不一致の判定と、他のモジュールの固有データが格納されたエリアの認識とが可能である。
エリアRD1,RD2,RD3・・・・に自身の固有データと名称が一致するデータが既に格納されている場合には、自身の固有データを再度格納する必要はない。
図19(A)は、以上のステップS504~S507の処理により、ADモジュール1がメモリ15のエリアRD1,RD2,RD3のデータを更新し、拡張モジュール3がメモリ35のエリアRD1,RD2,RD3のデータを更新した状態を示している。
次に、モジュール1~3のメモリマップ情報更新部144,244,345は、ステップS504~S507,S601によってメモリ15,25,35に格納されたデータに基づいて、メモリマップ情報記憶部143,243,344に記憶されているメモリマップ情報のうち、各モジュールの固有データエリアとして割り当てられているメモリ15,25,35のエリアRD1,RD2,RD3・・・・のメモリマップ情報を更新する(図21(A)ステップS508、図22(A)ステップS603)。
各モジュール1~3は、固有データの転送を所定回数(例えばN回)行っていない場合(図21(A)ステップS509においてNO、図22(A)ステップS604においてNO)、ステップS500,S600に戻る。こうして、図21、図22の処理が繰り返し行われる。所定回数Nは、予め定められたモジュールの最大連結数以上の数であればよい。
図19(B)は、ステップS500,S501,S511,S512,S600,S601の処理により、拡張モジュール3がADモジュール1からデータを読み出すと同時に、NWモジュール2が拡張モジュール3からデータを読み出した状態を示している。
図20(A)は、ステップS602,S502,S513,S514,S611,S612,S503の処理により、NWモジュール2がメモリ25のエリアRD1,RD2,RD3のデータをエリアQD1,QD2,QD3にコピーし、拡張モジュール3がNWモジュール2からデータを読み出してメモリ35のエリアQD1,QD2,QD3にデータを書き込み、ADモジュール1が拡張モジュール3からデータを読み出してメモリ15のエリアQD1,QD2,QD3にデータを書き込んだ状態を示している。
図20(A)は、ステップS504~S507の処理により、ADモジュール1がメモリ15のエリアRD1,RD2,RD3のデータを更新し、拡張モジュール3がメモリ35のエリアRD1,RD2,RD3のデータを更新した状態を示している。
こうして、本実施例では、モジュールの追加やモジュールの取り外しによって計測システムの構成が変更されたとしても、各モジュールの固有データに関するメモリマップ情報を自動的に更新することができるので、不具合の発生を低減することができる。
なお、図21、図22では固有データの転送のみについて説明しており、第1、第2の実施例で説明したとおり、共通データ(Sensor Data)の転送は例えば一定周期毎に繰り返し行われる。
[第6の実施例]
次に、本発明の第6の実施例について説明する。本実施例では、第5の実施例の処理の応用として、下位側のモジュールが読み出しを行うエリアに格納されているデータのうち、最上位のモジュールが設定変更したいモジュールのデータを変更することにより、下位側のモジュールの設定変更を行う。
本実施例においても計測システムの構成は第1の実施例と同様であるので、図1~図5の符号を用いて説明する。
図23(A)、図23(B)は最上位のモジュールを除く各モジュールの動作を説明するフローチャート、図24(A)、図24(B)は最上位のモジュールの動作を説明するフローチャートである。図23(A)、図24(A)は下位側のモジュールから固有データを読み出すモジュールの動作を示し、図23(B)、図24(B)は上位側または下位側のモジュールからのデータ転送要求に対する動作を示す。
図24(A)、図24(B)のステップS600~S604,S611,S612のNWモジュール2の処理は第5の実施例で説明したとおりである。
NWモジュール2の設定変更部246は、ADモジュール1の設定変更が必要な場合(図24(A)ステップS605においてYES)、下位側のモジュールが読み出しを行うメモリ25のエリアQD1,QD2,QD3・・・・に格納されているデータのうち、設定変更の対象となるADモジュール1のデータを書き替える(図24(A)ステップS606)。
同様に、設定変更部246は、拡張モジュール3の設定変更が必要な場合(ステップS605においてYES)、メモリ25のエリアQD1,QD2,QD3・・・・に格納されているデータのうち、設定変更の対象となる拡張モジュール3のデータを書き替える(ステップS606)。
設定変更が必要な場合とは、例えばNWモジュール2のデータ受信部247がクラウドサーバ101から設定データを受信した場合である。データ受信部247は、アンテナ22および通信回路26を介してクラウドサーバ101から設定データを受信する。あるいは、データ受信部247は、通信コネクタ28および通信回路29を介してクラウドサーバ101から設定データを受信する。設定変更部246は、設定変更の対象となるモジュール1,3のデータを、データ受信部247が受信した設定データに書き替える。
図23(A)、図23(B)のステップS500~S505,S508,S509,S511~S514のモジュール1,3の処理は第5の実施例で説明したとおりである。
モジュール1,3のデータ更新部146,347は、それぞれメモリ15,35の退避エリアに退避しておいた自身の固有データとメモリ15,35のエリアRD1,RD2,RD3・・・・にコピーしたデータとを比較する(図23(A)ステップS506)。
データ更新部146,347は、エリアRD1,RD2,RD3・・・・に自身の固有データと名称が一致するデータが無い場合、他のモジュールの固有データを格納したエリアとは別のエリアに自身の固有データを格納する(図23(A)ステップS507)。また、データ更新部146,347は、エリアRD1,RD2,RD3・・・・に自身の固有データと名称が一致するデータが有る場合、あるいは自身の固有データと名称が一致するが値が一致しないデータがある場合、名称が一致する固有データが有ると判定し(図23ステップS506においてYES)、退避エリアに退避しておいた自身の固有データによるデータの更新(ステップS507)は実施しない。
こうして、本実施例では、下位側のモジュールの固有データを書き替えることができ、最上位のモジュールから下位側のモジュールの設定変更を行うことができる。
なお、第1~第6の実施例では、拡張モジュールを1個としているが、複数個の拡張モジュールを接続してもよい。
また、第1~第6の実施例では、各モジュールの通信・受給電コネクタとCPUとの間の通信にUSBコントローラを用いているが、これに限るものではなく、USBコントローラを経由することなく、あるいはUSBコントローラ以外の手段を用いて、通信・受給電コネクタとCPUとの間の通信を実現してもよい。