(57)【特許請求の範囲】
【請求項１】
モドバスプロトコルを使用する通信装置であって、
送信パケットを受信する受信部と、
前記送信パケットからデータパケットを抽出するデータパケット抽出部と、
前記データパケットが含むデータと前記通信装置が含むハンドラ関数とを連結するモドバスマップに基づいて、前記データパケットが示す命令を獲得するデータパケット分析部と、
獲得された前記命令を実行する動作実行部と、
前記モドバスマップとリンクデータとを管理するモドバスマップ管理部と、を含み、
前記モドバスマップは、データが格納されたアドレス、データの属性を示すデータタイプ、及び前記ハンドラ関数を示すハンドラ関数名を含み、
前記リンクデータは、前記ハンドラ関数と前記ハンドラ関数名とを連結する、
通信装置。
【請求項２】
前記モドバスマップはＸＭＬファイル形式であり、
前記リンクデータはＤＬＬ形式である、請求項１に記載の通信装置。
【請求項３】
前記モドバスマップ管理部は、モドバスプロトコルマッピング変更命令を受信し、前記モドバスマップ及び前記リンクデータの少なくとも何れか一つを変更する、請求項１に記載の通信装置。
【請求項４】
前記モドバスマップ管理部は、前記モドバスプロトコルマッピング変更命令のエラーを検査する、請求項３に記載の通信装置。
【請求項５】
前記モドバスマップ管理部は、前記モドバスプロトコルマッピング変更命令により変更が要請された前記リンクデータの前記ハンドラ関数と前記ハンドラ関数名とが重複して連結されるか否かを検査する、請求項４に記載の通信装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、モドバスを用いる通信装置に関する。
【背景技術】
【０００２】
モディコン（ｍｏｄｉｃｏｎ）という会社により開発されたモドバス（Ｍｏｄｂｕｓ）は、シリアル通信プロトコルである。具体的に、モドバスは、シリアルラインで連結された装置の間の情報送信のための通信プロトコルである。また、モドバスは、シリアル通信だけでなく、ＴＣＰ／ＩＰ及びＵＤＰでも用いられることができる。具体的に、モドバスプロトコルにおいて、マスター（ｍａｓｔｅｒ）装置はスレーブ（ｓｌａｖｅ）装置にリクエストを送信し、スレーブ装置はマスター装置のリクエストに対するレスポンス（ｒｅｓｐｏｎｓｅ）を送信する。モドバスプロトコルにより、複数の装置が互いに情報を交換することができる。また、モドバスプロトコルにより、複数の装置が他の装置を制御することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明の目的は、動的モドバスプロトコルマッピングを使用する通信装置を提供することである。
【課題を解決するための手段】
【０００４】
本発明の特徴は、
モドバスプロトコルを使用する通信装置であって、
送信パケットを受信する受信部と、
前記送信パケットからデータパケットを抽出するデータパケット抽出部と、
前記データパケットが含むデータと前記通信装置が含むハンドラ関数とを連結するモドバスマップに基づいて、前記データパケットが示す命令を獲得するデータパケット分析部と、
獲得された前記命令を実行する動作実行部と、を含む。
【０００５】
さらに、本発明において、
前記モドバスマップは、データが格納されたアドレス、データの属性を示すデータタイプ、及び前記ハンドラ関数を示すハンドラ関数名を含み、
前記モドバスマップとリンクデータとを管理するモドバスマップ管理部をさらに含み、
前記リンクデータは、前記ハンドラ関数と前記ハンドラ関数名とを連結すると好適である。
【０００６】
さらに、本発明において、
前記モドバスマップはＸＭＬファイル形式であり、
前記リンクデータはＤＬＬ形式であると好適である。
【０００７】
さらに、本発明において、
前記モドバスマップ管理部は、モドバスプロトコルマッピング変更命令を受信し、前記モドバスマップ及び前記リンクデータの少なくとも何れか一つを変更すると好適である。
【０００８】
さらに、本発明において、
前記モドバスマップ管理部は、前記モドバスプロトコルマッピング変更命令のエラーを検査すると好適である。
【０００９】
さらに、本発明において、
前記モドバスマップ管理部は、前記モドバスプロトコルマッピング変更命令により変更が要請された前記リンクデータの前記ハンドラ関数と前記ハンドラ関数名とが重複して連結されるか否かを検査すると好適である。
【発明の効果】
【００１０】
本発明によれば、動的モドバスプロトコルマッピングを使用する通信装置を提供することができる。
【図面の簡単な説明】
【００１１】
【図１】本発明の一実施形態における通信システムのブロック図である。
【図２】本発明の一実施形態におけるモドバスプロトコルのデータパケットを示す図である。
【図３】本発明の一実施形態における通信装置のブロック図である。
【図４】本発明の一実施形態における通信装置の動作を示すフローチャートである。
【図５】本発明の第１別実施形態における通信装置のブロック図である。
【図６】本発明の第１別実施形態におけるモドバスプロトコルマッピングのためのモドバスマップとリンクデータとを示す図である。
【図７】本発明の第１別実施形態における通信装置がモドバスマップを変更することを示すフローチャートである。
【発明を実施するための形態】
【００１２】
以下、本発明が属する技術分野において通常の知識を有する者が容易に実施できるように、添付図面を参照して本発明の一実施形態について詳細に説明する。しかし、本発明は様々な相違する形態に具現されることができ、ここで説明する一実施形態に限定されない。そして、図面において、本発明を明確に説明するために、説明と関係のない部分は省略し、明細書全体にわたって類似の部分には類似の図面符号を付す。
【００１３】
尚、ある部分がある構成要素を「含む」ということは、特別な記載がない限り、他の構成要素を除くのでなく、他の構成要素をさらに含むことができるということを意味する。
【００１４】
以下、図１から図３を参照して、本発明の一実施形態における通信装置３００について説明する。
【００１５】
図１は本発明の一実施形態における通信システムのブロック図である。
【００１６】
モドバスプロトコルによる通信システムは、スレーブ通信装置２００、２１０、２２０にリクエスト（ｒｅｑｕｅｓｔ）を送信するマスター通信装置１００を含むことができる。また、モドバスプロトコルによる通信システムは、リクエストに対するレスポンス（ｒｅｓｐｏｎｓｅ）をマスター通信装置１００に送信するスレーブ通信装置２００、２１０、２２０を含むことができる。図１に示すように、モドバスプロトコルによる通信システムは、複数のスレーブ通信装置２００、２１０、２２０を含むことができる。モドバスプロトコルにより送信されるパケットについては、図２を参照して説明する。
【００１７】
図２は本発明の一実施形態におけるモドバスプロトコルのデータパケットを示す。
【００１８】
モドバスプロトコルのデータパケットは、データパケットが送信するデータに該当するアドレスを示すアドレス（ａｄｄｒｅｓｓ）フィールド、データパケットが送信するデータに該当する関数を示す関数（ｆｕｎｃｔｉｏｎ）フィールド、及びデータパケットが送信するデータを示すデータフィールドを含むことができる。アドレス（ａｄｄｒｅｓｓ）フィールドは、スレーブ通信装置２００、２１０、２２０のアドレス（つまり、スレーブアドレス）を含むことができる。関数（ｆｕｎｃｔｉｏｎ）フィールドは、送信するデータの意味を決定する関数コード（ｆｕｎｃｔｉｏｎ  ｃｏｄｅ）を含むことができる。また、データパケットは、データパケットの送信と受信の間でデータ損失が発生したか否かを確認するためのエラー確認フィールドを含むことができる。データパケットは、データパケットの始まりを示す開始（ｓｔａｒｔ）フィールド及びデータパケットの終わりを示す終了（Ｅｎｄ）フィールドを含むことができる。モドバスプロトコルを使用する個別装置は、データパケットのアドレスフィールド及び関数フィールドに該当するアドレス及び関数を探して、データパケットが含むデータを実行する。これについては、図３及び図４を参照して説明する。
【００１９】
図３は本発明の一実施形態における通信装置３００のブロック図である。
【００２０】
本発明の一実施形態におけるモドバスプロトコルを使用する通信装置３００は、通信部３１０（本発明に係る「受信部」に相当）と、データパケット抽出部３３０と、データパケット分析部３５０と、動作実行部３７０と、を含む。また、通信装置３００は、状況に応じて、マスター通信装置１００またはスレーブ通信装置２００、２１０、２２０になることができる。
【００２１】
通信部３１０は、他の通信装置からデータパケットを含む送信パケットを受信し、他の通信装置に送信パケットを送信する。具体的には、モドバスプロトコルがＴＣＰ／ＩＰプロトコルを支援する場合、送信パケットはＴＣＰ／ＩＰパケットであることができる。また、モドバスプロトコルがＵＤＰプロトコルを支援する場合、送信パケットはＵＤＰパケットであることができる。
【００２２】
データパケット抽出部３３０は送信パケットからデータパケットを抽出する。
【００２３】
データパケット分析部３５０は、抽出したデータパケットが含むデータを分析する。具体的に、データパケット分析部３５０は、抽出したデータパケットのアドレスフィールド、関数フィールド、及びデータフィールドに基づいて、データパケットが示す命令を獲得する。この際、データパケット分析部３５０は、データパケットのアドレスフィールド及び関数フィールドと通信装置３００が含むハンドラ関数とを連結するモドバスマップ（ｍａｐ）を用いることができる。そのために、モドバスマップは、データが何のデータであるかを示すデータの名前、データが格納されたアドレス、データの属性を示すデータタイプ、及びハンドラ関数を示す名前を含むことができる。データタイプは、具体的に、データのサイズ及び読み出し／書き込みの属性の少なくとも何れか一つを含むことができる。
【００２４】
動作実行部３７０は、データパケット分析部３５０が獲得した命令に応じて動作を実行する。通信装置３００の具体的な動作を図４を参照して説明する。
【００２５】
図４は本発明の一実施形態における通信装置３００の動作を示すフローチャートである。
【００２６】
通信部３１０は、他の通信装置からデータパケットを含む送信パケットを受信する（Ｓ１０１）。
【００２７】
データパケット抽出部３３０は、送信パケットからデータパケットを抽出する（Ｓ１０３）。具体的に、データパケット抽出部３３０は、送信パケットのペイロードフィールドからデータパケットを抽出することができる。
【００２８】
データパケット分析部３５０は、抽出したデータパケットが含むデータを分析する（Ｓ１０５）。具体的に、データパケット分析部３５０は、抽出したデータパケットのアドレスフィールド、関数フィールド、及びデータフィールドに基づいて、データパケットが示す命令を獲得することができる。また、データパケット分析部３５０は、データパケットの始まりを示す開始フィールドとデータパケットの終わりを示す終了フィールドに基づいて、データパケットが示す命令を獲得することができる。また、データパケット分析部３５０は、データパケットが含むエラー確認フィールドに基づいて、データパケットが送信過程で損傷されたか否かを確認するように構成されていても良い。この際、データパケットが損傷された場合には、データパケット分析部３５０はデータパケットが示す命令を無視することができる。
【００２９】
また、データパケット分析部３５０は、モドバスマップが含むデータ名、データが格納されたアドレス、及びデータタイプに基づいて、データパケットが示す命令を獲得することができる。
【００３０】
また、データパケット分析部３５０は、エラー確認フィールドに基づいてデータパケットが送信過程で損傷されたか否かを確認し、損傷されたデータパケットをユーザに表示するように構成されていても良い。より具体的に、データパケット分析部３５０は、データパケットの損傷を確認した場合、該当データパケット及びデータパケットが抽出された送信パケットをユーザに表示することができる。
【００３１】
動作実行部３７０は、データパケット分析部３５０が獲得した命令に応じて動作を実行する（Ｓ１０７）。
【００３２】
上述のモドバスマップは、通常、プログラム言語によりプログラムコードで具現される。したがって、個別装置の構成が変更された場合やユーザが機能変更を要請する場合、モドバスマップに該当するプログラムコードを変更して、再度コンパイルして個別装置に備えさせなければならないという不便さがあった。したがって、モドバスマップを動的に変更することができる通信装置が必要である。これについて、図５及び図６を参照して説明する。
【００３３】
図５は本発明の第１別実施形態における通信装置３００のブロック図である。
【００３４】
図５に示すように、本発明の第１別実施形態において、通信装置３００は、図３に示した一実施形態と異なって、モドバスマップ管理部３９０をさらに含む。
【００３５】
モドバスマップ管理部３９０は、モドバスマップ３９１及びリンクデータ３９３を管理する（図６参照）。具体的に、モドバスマップ管理部３９０は、モドバスプロトコルマッピング変更のための入力を受信し、モドバスプロトコルマッピングを変更することができる。具体的に、モドバスマップ管理部３９０は、データが格納されたモドバスアドレス、データタイプ、及びハンドラ関数名を含むモドバスマップ３９１と、ハンドラ関数名と、通信装置３００が含むハンドラ関数と、を連結するリンクデータ３９３を用いてモドバスプロトコルマッピングを変更することができる。これについては図６を参照して詳細に説明する。
【００３６】
図６は本発明の第１別実施形態におけるモドバスプロトコルマッピングのためのモドバスマップ３９１とリンクデータ３９３とを示す図である。
【００３７】
上述のようにモドバスマップ３９１は、データが格納されたモドバスアドレス、データタイプ、及びハンドラ関数名を含むことができる。この際、データタイプは、データの読み出し／書き込みの属性を示すことができる。また、データタイプはデータのサイズを示すことができる。また、モドバスマップ３９１はＸＭＬファイル形式であることができる。リンクデータ３９３は、ハンドラ関数名と実際に通信装置３００が含むハンドラ関数とを連結する。具体的に、ハンドラ関数名と、実際に通信装置３００が含むハンドラ関数を示すレジスタのアドレスとを連結することができる。具体的に、リンクデータ３９３はＤＬＬ（Ｄｙｎａｍｉｃ  Ｌｉｎｋ  Ｌｉｂｒａｒｙ）形式であることができる。モドバスプロトコルのアドレス、データタイプ、及びハンドラ関数名を変更しようとする場合には、通信装置３００はモドバスマップ３９１を変更することができる。また、通信装置３００のハンドラ関数に関する事項が変更された場合には、リンクデータ３９３を変更することができる。モドバスマップ管理部３９０の具体的な動作は図７を参照して説明する。
【００３８】
図７は本発明の第１別実施形態における通信装置３００がモドバスマップ３９１を変更することを示すフローチャートである。
【００３９】
モドバスマップ管理部３９０は、モドバスプロトコルマッピング変更命令を受信する（Ｓ３０１）。
【００４０】
モドバスマップ管理部３９０は、モドバスプロトコルマッピング変更命令のエラーが存在するか否かを確認する（Ｓ３０３）。具体的に、モドバスマップ管理部３９０は、変更命令により変更が要請されたモドバスマップ３９１のモドバスアドレスが存在するか否かを確認することができる。また、モドバスマップ管理部３９０は、モドバスプロトコルマッピング変更命令により変更が要請されたモドバスマップ３９１のハンドラ関数名が存在するか否かを確認するように構成されていても良い。また、モドバスマップ管理部３９０は、モドバスプロトコルマッピング変更命令により変更が要請されたリンクデータ３９３のハンドラ関数とハンドラ関数名とが重複して連結されるか否かを検査するように構成されていても良い。また、モドバスマップ管理部３９０は、モドバスプロトコルマッピング変更命令のエラーが存在する場合、それをユーザに表示するように構成されていても良い。この動作により、通信装置３００がモドバスプロトコルマッピングを誤って変更してしまうこと防止することができる。
【００４１】
モドバスマップ管理部３９０は、モドバスプロトコルマッピング変更命令のエラーが存在しない場合（Ｓ３０３でＮＯと判定された場合）、モドバスプロトコルマッピング変更命令に基づいて、モドバスマップ３９１及びリンクデータ３９３の少なくとも何れか一つを変更する（Ｓ３０５）。モドバスプロトコルのアドレス、データタイプ、及びハンドラ関数名を変更しようとする場合、モドバスマップ管理部３９０はモドバスマップ３９１を変更することができる。また、モドバスマップ管理部３９０は、通信装置３００のハンドラ関数についての事項が変更された場合、リンクデータ３９３を変更することができる。
【００４２】
また、通信装置３００は、モドバスプロトコルマッピング変更命令を受信する構成に代えて、変更されたモドバスマップ３９１及びリンクデータ３９３の少なくとも何れか一つを受信するように構成されていても良い。
【００４３】
かかる動作により、通信装置３００は、モドバスプロトコルマッピングを変更する場合にも、別のコンパイルが不要である。したがって、複数の装置において一括してモドバスプロトコルマッピングを変更することが容易になる。
【００４４】
以上、本発明の一実施形態及び第１別実施形態において説明された特徴、構造、効果などは本発明の少なくとも一つの実施形態に含まれ、必ずしも一つの実施形態にのみ限定されるものではない。さらに、各実施形態で例示された特徴、構造、効果などは、実施形態が属する分野における通常の知識を有する者であれば、他の実施形態についても組み合わせまたは変形して実施することができる。したがって、この組み合わせと変形についての内容は、本発明の範囲に含まれると解釈するべきである。
【００４５】
以上、実施形態を中心として説明したが、これは例示にすぎず、本発明を限定するためのものではなく、本発明が属する分野の通常の知識を有する者であれば、本発明の各実施形態の本質的な特性を逸脱しない範囲で、以上で例示されていない様々な変形と応用が可能である。例えば、実施形態に具体的に示した各構成要素は変形して実施することができる。そして、かかる変形と応用における相違点は、添付の特許請求の範囲で規定する本発明の範囲に含まれると解釈されるべきである。
【符号の説明】
【００４６】
３００  通信装置
３１０  通信部（受信部）
３３０  データパケット抽出部
３５０  データパケット分析部
３７０  動作実行部
３９０  モドバスマップ管理部
３９１  モドバスマップ
３９３  リンクデータ
【図１】
0006307128.tif 000002
【図２】
0006307128.tif 000003
【図３】
0006307128.tif 000004
【図４】
0006307128.tif 000005
【図５】
0006307128.tif 000006
【図６】
0006307128.tif 000007
【図７】
0006307128.tif 000008