(57)【特許請求の範囲】
【請求項１】
フィールド機器からの第１のデータおよび第２のデータを、連続したデータ列として、通信ネットワークを介して受け取ってレジスタにマッピングすることにより、前記第１のデータおよび前記第２のデータを更新するフィールド通信システムにおいて、
前記データ列を前記レジスタに書き込む書込手段と、
前記書込手段により前記データ列が書き込まれたときに、前記第１のデータおよび前記第２のデータの境界が前記レジスタのワード境界に一致するようなビット数だけ、前記書込手段により書き込まれる前記データ列を、予めシフトさせるシフト手段と、
を備え、
前記データ列をシフトさせることなく前記レジスタにマッピングしたとする場合には、前記第１のデータおよび前記第２のデータの境界が前記レジスタのワード境界に一致しないような、前記第１のデータのデータ長、前記第２のデータのデータ長、および前記ワードのワード長間の関係があり、
前記データ列は、前記第１のデータおよび前記第２のデータが前記境界を挟んで連続するように構成され、
前記シフト手段は、前記データ列の全体を、前記第１のデータおよび前記第２のデータを前記境界を挟んで連続させた状態のままシフトさせることを特徴とするフィールド通信システム。
【請求項２】
前記書込手段により書き込まれた前記データ列を、フィールド制御に使用するためにワード単位で前記レジスタから読み込む読込手段を備えることを特徴とする請求項１に記載のフィールド通信システム。
【請求項３】
前記読込手段は、前記第１のデータまたは前記第２のデータが書き込まれたワードのみを前記レジスタから読み込むことを特徴とする請求項２に記載のフィールド通信システム。
【請求項４】
前記レジスタはＭｏｄｂｕｓレジスタであることを特徴とする請求項１〜３のいずれか１項に記載のフィールド通信システム。
【請求項５】
前記第１のデータは前記フィールド機器のステータスであり、前記第２のデータは前記フィールド機器のプロセスデータ値であることを特徴とする請求項１〜４のいずれか１項に記載のフィールド通信システム。
【請求項６】
前記通信ネットワークは、無線ネットワークであることを特徴とする請求項１〜５のいずれか１項に記載のフィールド通信システム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、フィールド機器からのデータを、通信ネットワークを介して受け取ってレジスタにマッピングすることにより、前記データを更新するフィールド通信システムに関する。
【背景技術】
【０００２】
ISA100.11aフィールド無線規格に準拠した無線通信機能を備えるフィールド機器と、上位機器との間でのデータの送受信を可能とするための構成として、ISA100.11aフィールド無線規格に準拠したISA100無線ゲートウェイを介して両者を接続するものがある。また、上位機器がModbus/TCPクライアントである場合には、ISA100無線ゲートウェイにModbus/TCPサーバと、フィールド機器との間で無線通信を行うためのISA100バックボーンルータとを内蔵させることで、上記のデータの送受信が可能となる。Modbus/TCPサーバには、データをマッピングするためのModbusレジスタが設けられている。
【０００３】
この場合、フィールド機器１および無線ゲートウェイ２は、ISA100.11aフィールド無線規格に従ったPublish/Subscribe方式による無線通信を行う。フィールド機器１から無線通信により送信されたプロセスデータ等はISA100バックボーンルータを介して受信され、Modbus/TCPサーバは、受信されたプロセスデータ等をModbusレジスタにマッピングする。また、Modbus/TCPクライアントはModbus/TCPプロトコルを使用して、Modbus/TCPサーバから、Modbusレジスタにマッピングされたプロセスデータ等を取得し、制御等を実行する。このように、Modbusレジスタに逐次データをマッピングすることで、データの更新が行われる。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特開２００２−００７１６６号公報
【特許文献２】特開２００４−１２８７８５号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
Modbusレジスタは１６ビットのワードを単位として構成されている。一方、ISA100仕様で規定されたアナログ入力用のプロセスデータは、１バイトのステータスと４バイトの浮動小数点データとで構成された５バイトの構造体をとる。従来一般的な方式である４−２０ｍＡを代表とするアナログ伝送では、ステータスが存在せず、４バイトのデータであるため、Modbusレジスタへのマッピングに伴う問題は生じない。しかし、ISA100仕様で規定されたアナログ入力用のプロセスデータをModbusレジスタにマッピングする際に、１バイトのステータスと４バイトの浮動小数点データとを順次割り付けると、浮動小数点データがModbusレジスタのワード境界をまたいでしまう。このため、Modbus/TCPクライアントが浮動小数点データを使用するためには変換処理が必要となり、エンジニアリングが複雑となる。
【０００６】
本発明の目的は、フィールド機器からのデータを、利用し易い形態でレジスタに格納できるフィールド通信システムを提供することにある。
【課題を解決するための手段】
【０００７】
本発明のフィールド通信システムは、フィールド機器からの第１のデータおよび第２のデータを、連続したデータ列として、通信ネットワークを介して受け取ってレジスタにマッピングすることにより、前記第１のデータおよび前記第２のデータを更新するフィールド通信システムにおいて、前記データ列を前記レジスタに書き込む書込手段と、前記書込手段により前記データ列が書き込まれたときに、前記第１のデータおよび前記第２のデータの境界が前記レジスタのワード境界に一致するようなビット数だけ、前記書込手段により書き込まれる前記データ列を、予めシフトさせるシフト手段と、を備え、前記データ列をシフトさせることなく前記レジスタにマッピングしたとする場合には、前記第１のデータおよび前記第２のデータの境界が前記レジスタのワード境界に一致しないような、前記第１のデータのデータ長、前記第２のデータのデータ長、および前記ワードのワード長間の関係があり、前記データ列は、前記第１のデータおよび前記第２のデータが前記境界を挟んで連続するように構成され、前記シフト手段は、前記データ列の全体を、前記第１のデータおよび前記第２のデータを前記境界を挟んで連続させた状態のままシフトさせることを特徴とする。
このフィールド通信システムによれば、データ列を予めシフトさせることにより、データ列が書き込まれたときに、第１のデータおよび第２のデータの境界がレジスタのワード境界に一致するので、フィールド機器からのデータを利用し易い形態でレジスタに格納できる。
【０００８】
前記書込手段により書き込まれた前記データ列を、フィールド制御に使用するためにワード単位で前記レジスタから読み込む読込手段を備えてもよい。
【０００９】
前記読込手段は、前記第１のデータまたは前記第２のデータが書き込まれたワードのみを前記レジスタから読み込んでもよい。
【００１０】
前記レジスタはＭｏｄｂｕｓレジスタであってもよい。
【００１１】
前記第１のデータは前記フィールド機器のステータスであり、前記第２のデータは前記フィールド機器のプロセスデータ値であってもよい。
【００１２】
前記通信ネットワークは、無線ネットワークであってもよい。
【発明の効果】
【００１３】
本発明のフィールド通信システムによれば、データ列を予めシフトさせることにより、データ列が書き込まれたときに、第１のデータおよび第２のデータの境界がレジスタのワード境界に一致するので、フィールド機器からのデータを利用し易い形態でレジスタに格納できる。
【図面の簡単な説明】
【００１４】
【図１】本発明によるフィールド通信システムを適用した分散型フィールド制御システムの構成例を示すブロック図。
【図２】Modbusレジスタのレジスタ番号と、フィールド機器のデータとの対応付けを例示する図。
【図３】インプットレジスタにマッピングされるプロセスデータの格納状態等を示す図であり、（ａ）はプロセスデータをシフトする操作を、（ｂ）はプロセスデータをシフトした場合の格納状態を、（ｃ）はプロセスデータをシフトしない場合の格納状態を、それぞれ示す図。
【図４】「ステータス」のデータ構造を例示する図。
【図５】「ステータス」の値の制御に関するModbus/TCPサーバの処理を示すフローチャート。
【発明を実施するための形態】
【００１５】
以下、本発明によるフィールド通信システムの一実施形態について説明する。
【００１６】
図１は、本発明によるフィールド通信システムを適用した分散型フィールド制御システムの構成例を示すブロック図である。
【００１７】
図１に示すように、プラントにはISA100.11aフィールド無線規格に準拠した無線通信機能を備えるフィールド機器１，１，・・・が配置され、フィールド機器１，１，・・・は、それぞれISA100.11aフィールド無線規格に準拠したISA100無線ゲートウェイ２を介してModbus/TCPクライアント３と接続される。
【００１８】
図１に示すように、無線ゲートウェイ２は、Modbus/TCPサーバ２１と、フィールド機器１との間で無線通信を行うためのISA100バックボーンルータ２２とを内蔵している。Modbus/TCPサーバ２１には、Modbusレジスタ２１ａが設けられている。
【００１９】
後述するように、本実施形態のフィールド通信システムでは、Modbus/TCPサーバ２１が本発明におけるシフト手段および書込手段として機能する。
【００２０】
フィールド機器１および無線ゲートウェイ２は、ISA100.11aフィールド無線規格に従ったPublish/Subscribe方式による無線通信を行う。フィールド機器１から無線通信により送信されたプロセスデータはバックボーンルータ２２を介して受信され、Modbus/TCPサーバ２１は、受信されたプロセスデータをModbusレジスタ２１ａにマッピングする。また、Modbus/TCPクライアント３はModbus/TCPプロトコルを使用して、Modbus/TCPサーバ２１から、Modbusレジスタ２１ａにマッピングされたプロセスデータを取得する。Modbus/TCPクライアント３は、取得されたプロセスデータに基づく制御を実行する。さらに、Modbus/TCPクライアント３はModbus/TCPプロトコルを使用して、Modbus/TCPサーバ２１のModbusレジスタ２１ａに操作値をマッピングする。この操作値は、バックボーンルータ２２を介する無線通信によりフィールド機器１に与えられる。
【００２１】
このように、本実施形態のフィールド通信システムでは、Modbusレジスタ２１ａにデータをマッピングすることにより、通信対象となるデータを更新する。
【００２２】
図２は、Modbusレジスタ２１ａのレジスタ番号と、フィールド機器のデータとの対応付けを例示する図である。このような対応付けは、Modbusレジスタマッピング情報の定義ファイルにより予め定義される。図２に示すように、Modbusレジスタ２１ａの領域は、フィールド機器１から取得されたプロセスデータの読み込みに使用されるインプットレジスタと、Modbus/TCPクライアント３からの操作値などが書込まれるホールディングレジスタとに分離されている。インプットレジスタは読み込み専用の領域、ホールディングレジスタは読み込み／書き込み可能な領域としてそれぞれ使用される。
【００２３】
図２に示すように、フィールド機器で取り扱うプロセスデータ等は、ゲートウェイ名、フィールド機器名、ＵＡＰ（ユーザアプリケーション）名、データ名を順次用いた階層構造により表現される。例えば、無線ゲートウェイ２に対応するゲート名「GW0001」に属し、フィールド機器名「FIC100」、ＵＡＰ名「UAP1」、およびデータ名「UAP_STATUS」で順次特定されるプロセスデータは、「GW0001.FIC100.UAP1.UAP_STATUS」として表現され、このデータはインプットレジスタのレジスタ番号０−２に対応付けられている。
【００２４】
同様に、「GW0001.FIC100.UAP1.AI2_PV」として表現されるプロセスデータは、インプットレジスタのレジスタ番号３−５に対応付けられている。また、図２において網線を付して示している「GW0001.FIC100.UAP2. UAP_STATUS」として表現されるプロセスデータは、インプットレジスタのレジスタ番号Ｎ＋０,Ｎ＋１,Ｎ＋２に対応付けられている。
【００２５】
次に、図３（ａ）〜図３（ｃ）を用いて、フィールド機器１からプロセスデータを受け取ったModbus/TCPサーバ２１の動作について説明する。
【００２６】
図３（ａ）は、Modbus/TCPサーバ２１においてプロセスデータをシフトする操作を示している。図３（ａ）に示すように、「GW0001.FIC100.UAP2.UAP_STATUS」として表現されるプロセスデータは、互いに連続した８ビットの「ステータス」と、浮動小数点データである３２ビットの「プロセスデータ値」とからなるデータ列として構成されている。Modbus/TCPサーバ２１では、インプットレジスタへの書込みに先立って、「ステータス」および「プロセスデータ値」を構成するデータ列を１ビット分だけ後方にシフトさせる。その後、シフトにより得られたデータ列をインプットレジスタへ書き込む。
【００２７】
図３（ｂ）は、インプットレジスタに書き込まれたデータ列の格納状態を示している。
【００２８】
図３（ｂ）に示すように、書込み前にデータ列をシフトさせることにより、「ステータス」および「プロセスデータ値」の境界と、インプットレジスタのワード境界とを一致させることができる。このため、レジスタ番号Ｎ＋０には８ビットの「ステータス」の全ビットが、レジスタ番号Ｎ＋１には３２ビットの「プロセスデータ値」のうち上位１６ビットが、レジスタ番号Ｎ＋２には３２ビットの「プロセスデータ値」のうち残りのビット（下位１６ビット）が、それぞれ格納される。
【００２９】
一方、図３（ｃ）は、データ列をシフトさせることなくインプットレジスタへの書込みを行った場合の状態を示している。図３（ｃ）に示すように、データ列のシフトを行わない場合には、「プロセスデータ値」がレジスタ番号Ｎ＋０およびレジスタ番号Ｎ＋１の間でワード境界をまたがってしまう。また、レジスタ番号Ｎ＋０に「ステータス」および「プロセスデータ値」のビットが混在してしまう。
【００３０】
これに対し、本実施形態のフィールド通信システムでは、データ列を１バイト分シフトさせた後にインプットレジスタに書き込むことにより、３２ビットの「プロセスデータ値」を２ワードの領域に格納することが可能となり、「プロセスデータ値」がModbusレジスタ２１ａのワード境界をまたがる状態を回避できる。また、１ワード内における「ステータス」および「プロセスデータ値」のビットの混在を防止できる。Modbus/TCPクライアント３は、Modbusレジスタ２１ａの情報をワード単位で読み込むため、連続した２ワードを１回の要求で取得することができる。このため、例えば、Modbus/TCPクライアント３が「プロセスデータ値」のみを必要とする場合には、「プロセスデータ値」が格納された２ワード分のデータのみをひと固まりのデータとして取得し、Modbus/TCPクライアント３においてデータ型変換すれば、そのまま浮動小数点データとして扱うことが可能となる。また、「ステータス」を取得したい場合には、「ステータス」が格納された１ワード分のデータを取得すれば足り、データ中から「ステータス」を抽出する処理も不要となる。このように、Modbus/TCPクライアント３の側でデータを再構築する処理も不要となり、処理速度の向上が望めるほか、この処理のためのエンジニアリング負担も回避できる。
【００３１】
また、Modbus/TCPサーバ２１で必要となる処理は、データ列を１バイト分シフトしてインプットレジスタにコピーするという単純なものであるため、データ列に対するシフト操作が、書込みの処理速度等に影響を与えることはない。
【００３２】
図４は、「ステータス」のデータ構造を例示する図である。
【００３３】
図４に示すように、「ステータス」は２ビットの「クオリティ」と、３ビットの「サブステータス」を含んで構成される。「サブステータス」以外のビットは、フィールド機器１から送信されたデータである。
【００３４】
「クオリティ」は、フィールド機器１の自己診断に基づくデータであり、当該フィールド機器１から送信されてくるデータ値の品質を示している。この値が「０」のときは「悪い」を、「２」のときは「良い」をそれぞれ示す。また、この値が「１」のときは、対応するフィールド機器１はISA100ネットワークに参加しデータを送信できているが、レンジオーバーなどで制御に使用できないデータであることを示している。
【００３５】
「サブステータス」は、フィールド機器１との間の通信状態に基づき、Modbus/TCPサーバ２１によりModbusレジスタ２１ａに書き込まれるデータである。Modbus/TCPサーバ２１は、例えば定期的に各フィールド機器１との間で通信を試み、通信状態を確認する。通信状態が正常な場合、Modbus/TCPサーバ２１は、そのフィールド機器１から送信されてくるデータを、Modbusレジスタ２１ａの対応する領域にコピーする。しかし、フィールド機器１がISA100ネットワークに参加していない場合には対応する「サブステータス」の値を「２」に、フィールド機器１がISA100ネットワークに参加しているがデータが到着しない場合には対応する「サブステータス」の値を「６」に、データが到着していたが途中から途絶した場合には対応する「サブステータス」の値を「５」に、それぞれ置換したうえでModbusレジスタ２１ａの対応する領域に書き込む。また、「サブステータス」の値を「２」、「６」、「５」のいずれかに書き換える場合には、Modbus/TCPサーバ２１は「クオリティ」の値を、「悪い」を示す「０」に置換したうえで、Modbusレジスタ２１ａの対応する領域に書き込む。
【００３６】
図５は、Modbusレジスタ２１ａに書き込まれる「ステータス」の値の制御に関するModbus/TCPサーバ２１の処理を示すフローチャートである。
【００３７】
図５のステップＳ１〜ステップＳ１１は、フィールド機器１との間の通信状態に基づき、「サブステータス」の値を特定する処理を示している。なお、この処理では、「サブステータス」の初期値（フィールド機器１から受信されたデータのデータ値）を「０」としている。
【００３８】
図５のステップＳ１では、受信フラグの値を「０」とする。この受信フラグは、データ受信がされた履歴の有無を示している。
【００３９】
次に、ステップＳ２では、対応するデータの「サブステータス」の値を「２」とする。
【００４０】
次に、ステップＳ３では、計時タイマをリセットして計時を開始する。次に、ステップＳ４では、対応するデータが受信されたか否か判断し、判断が肯定されればステップＳ５へ進み、判断が否定されればステップＳ７へ進む。
【００４１】
ステップＳ５では、受信フラグの値を「１」とする。次にステップＳ６では、対応するデータの「サブステータス」の値を「０」とし、ステップＳ３へ戻る。
【００４２】
一方、ステップＳ７では、計時開始（ステップＳ３）から所定時間が経過したか否か判断し、判断が肯定されればステップＳ８へ進み、判断が否定されればステップＳ４へ戻る。なお、ステップＳ７で判断対象となる上記所定時間は、通信異常と判定するためのタイムアウトとなる時間に相当する。
【００４３】
ステップＳ８では、対応するフィールド機器１がISA100ネットワークに参加しているか否か判断し、判断が肯定されればステップＳ９へ進み、判断が否定されればステップＳ２へ戻る。
【００４４】
ステップＳ９では、受信フラグの値が「１」であるか否か判断し、判断が肯定されればステップＳ１０へ進み、判断が否定されればステップＳ１１へ進む。
【００４５】
ステップＳ１０では、「サブステータス」の値を「５」とし、ステップＳ３へ進む。
【００４６】
一方、ステップＳ１１では、「サブステータス」の値を「６」とし、ステップＳ３へ進む。
【００４７】
図５のステップＳ２１〜ステップＳ２４は、「クオリティ」の値を切り替えるModbus/TCPサーバ２１の処理を示している。
【００４８】
ステップＳ２１では、対応するデータの「サブステータス」の値が「２」であるか否か判断し、判断が肯定されればステップＳ２４へ進み、判断が否定されればステップＳ２２へ進む。
【００４９】
ステップＳ２２では、対応するデータの「サブステータス」の値が「５」であるか否か判断し、判断が肯定されればステップＳ２４へ進み、判断が否定されればステップＳ２３へ進む。
【００５０】
ステップＳ２３では、対応するデータの「サブステータス」の値が「６」であるか否か判断し、判断が肯定されればステップＳ２４へ進み、判断が否定されればステップＳ２１へ戻る。
【００５１】
ステップＳ２４では、対応するデータの「クオリティ」の値を「０」とし、処理を終了する。
【００５２】
このように、本実施形態のフィールド通信システムでは、「サブステータス」の値によりフィールド機器１との間の通信状態を示すとともに、「サブステータス」の値を「クオリティ」の値に反映させている。このため、Modbus/TCPクライアント３が「クオリティ」の値を読み、この値が「０」であれば当該データが信用できないと判断することができる。また、そのときの「ステータス」の値を確認することにより、異常要因の詳細を把握することができる。
【００５３】
以上説明したように、本発明のフィールド通信システムによれば、データ列を予めシフトさせることにより、データ列が書き込まれたときに、第１のデータおよび第２のデータの境界がレジスタのワード境界に一致するので、フィールド機器からのデータを利用し易い形態でレジスタに格納できる。
【００５４】
本発明の適用範囲は上記実施形態に限定されることはない。本発明は、フィールド機器からのデータを、通信ネットワークを介して受け取ってレジスタにマッピングすることにより、前記データを更新するフィールド通信システムに対し、広く適用することができる。
【符号の説明】
【００５５】
１      フィールド機器
２１    Modbus/TCPサーバ（書込手段、シフト手段）
【図１】
0005569730.tif 000002
【図４】
0005569730.tif 000003
【図５】
0005569730.tif 000004
【図２】
0005569730.tif 000005
【図３】
0005569730.tif 000006